Skip to content

Commit e3c618d

Browse files
authored
Release v1.9.0 (#166)
* bump version refs to `1.9.0` * docs: some simplifications in the rational points docs * refactor: simplify constructor signatures in rational point class and superclasses * chore: remove trackgit badge from README * docs: tweak some rational points docstrings * docs: simplifications * refactor: rename the `RationalPoint` lattice method (to `is_integral_lattice_point`) * docs: further simplifications in the rational points docs * feat: add non-zero scalar division to `RationalPoint` * docs: clean up contributions page + MD + other fixes and clarifications * chore(deps): update all dev. + docs deps * docs: fix some comments in `lib` and `sequences` * docs: some more fixes + update citation file
1 parent 26b353e commit e3c618d

File tree

18 files changed

+532
-810
lines changed

18 files changed

+532
-810
lines changed

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ keywords:
2828
- sequences
2929

3030
license: MPL-2.0
31-
version: 1.8.0
32-
date-released: 2025-10-16
31+
version: 1.9.0
32+
date-released: 2025-10-25

CONTRIBUTING.md

Lines changed: 19 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,29 @@ google-site-verification
55

66
Contributors and contributions are welcome. Please read these guidelines first.
77

8-
## Git
8+
## Git `github`
99

1010
The project homepage is on [GitHub](https://github.com/sr-murthy/continuedfractions).
1111

12-
Contributors can open pull requests from a fork targeting the parent `main` [branch](https://github.com/sr-murthy/continuedfractions/tree/main). But it may be a good first step to create an
13-
[issue](https://github.com/sr-murthy/continuedfractions/issues) or open a [discussion topic](https://github.com/sr-murthy/continuedfractions/discussions).
12+
Contributors can open pull requests from a fork targeting the parent `main`[branch](https://github.com/sr-murthy/continuedfractions/tree/main). But it may be a good first step to create an [issue](https://github.com/sr-murthy/continuedfractions/issues) or open
13+
a [discussion topic](https://github.com/sr-murthy/continuedfractions/discussions).
1414

15-
## Repo
15+
## Repo `folder`
1616

1717
You will need to clone the repository first. As there are no dependencies there isn't much to set up, so this should be pretty simple. The minimum recommended version of Python is 3.10 as some of the type hinting may be incompatible with earlier versions.
1818

19-
## Dependencies & PDM
19+
## Dependencies `cubes`
2020

21-
The package uses only standard libraries, and no third party libraries are used. See the [project TOML](https://github.com/sr-murthy/continuedfractions/blob/main/pyproject.toml) for more information.
21+
Only standard libraries are used. See the [project TOML](https://github.com/sr-murthy/continuedfractions/blob/main/pyproject.toml)
22+
for more information.
2223

23-
Some development dependencies are specified in the `[tool.pdm.dev-dependencies]` section of the TOML including some
24-
`'test'` dependencies, such as [pytest](https://docs.pytest.org/en/8.0.x/) and [pytest-cov](https://pytest-cov.readthedocs.io/).
24+
Development dependencies are specified in the `[tool.pdm.dev-dependencies]` section of the TOML but these are purely indicative.
2525

26-
[PDM](https://pdm-project.org/latest) is used to manage all dependencies and publish packages to PyPI. It is also used to automate certain tasks, such as running tests, as described in the section.
26+
[PDM](https://pdm-project.org/latest) is used to manage all dependencies. It is also used to automate certain tasks, such as running
27+
tests, as described in the section.
2728

28-
There are no root-level `requirements*.txt` files - but only a single (default, version-controlled, cross-platform) [pdm.lock](https://github.com/sr-murthy/continuedfractions/blob/main/pdm.lock) lockfile, which defines metadata for all TOML-defined development dependencies, including the currently empty set of production dependencies, and their sub-dependencies etc. This can be used to install all development dependencies, including the project itself, in editable mode where available:
29+
There are no root-level `requirements*.txt` files - but only a single (default, version-controlled, cross-platform)
30+
[pdm.lock](https://github.com/sr-murthy/continuedfractions/blob/main/pdm.lock) lockfile. The lockfile is used with PDM to install all development dependencies, including the project itself, in editable mode where available:
2931

3032
``` shell
3133
pdm install -v --dev
@@ -56,34 +58,13 @@ pdm export -v -f requirements --dev -o docs/requirements.txt
5658

5759
For more information on PDM lockfiles and installing requirements see the [PDM documentation](https://pdm-project.org/latest/).
5860

59-
## Tests
61+
## Tests `microscope`
6062

61-
Tests are defined in the `tests` folder, and should be run with [pytest](https://pytest-cov.readthedocs.io/en/latest/).
63+
Tests are defined in the `tests` folder and can be run directly or via the [Makefile](https://github.com/sr-murthy/continuedfractions/blob/main/Makefile), e.g. `make unitests` will run the unit tests. Linting can be performed with `make lint`, which requires [ruff](https://docs.astral.sh/ruff/) (specified in the dev. dependencies in the TOML). The doctests can be run with `make doctests`.
6264

63-
There is a [Makefile](https://github.com/sr-murthy/continuedfractions/blob/main/Makefile) with different targets for linting (`lint`), running doctests (`doctests`) and unit tests (`unittests`):
65+
## Documentation `book`
6466

65-
``` shell
66-
make lint
67-
make unittests
68-
make doctests
69-
```
70-
71-
Unit tests can be run all at once using `make unittests` or individually using `pytest`, e.g. running the test class for the `~continuedfractions.lib.continued_fraction_rational` function:
72-
73-
``` shell
74-
python -m pytest -sv tests/units/test_lib.py::TestContinuedFractionRational
75-
```
76-
77-
The doctests are intended to test the docstring code examples, but can also be considered a form of acceptance tests. They can be run all at once using `make doctests`, or individually by library using `python -m doctest`, e.g. running all the doctests in
78-
`~continuedfractions.sequences` (from the repo root):
79-
80-
``` shell
81-
PYTHONPATH=src python -m doctest -v src/continuedfractions/sequences.py
82-
```
83-
84-
## Documentation
85-
86-
[Project documentation](https://continuedfractions.readthedocs.io/en/latest/) is defined and built using [Sphinx](https://www.sphinx-doc.org/en/master/), and deployed to [Read The Docs](https://readthedocs.org). Currently, the building and deployment steps for documentation are manual, and not automated in a CI pipeline.
67+
[Project documentation](https://continuedfractions.readthedocs.io/en/latest/) is written and built using [Sphinx](https://www.sphinx-doc.org/en/master/), and deployed to [Read The Docs](https://readthedocs.org).
8768

8869
The Sphinx documentation source pages and assets are contained in the `docs/` subfolder. The HTML pages can be built locally on any branch (from the project root) using:
8970

@@ -105,14 +86,11 @@ or via [PDM](https://pdm.fming.dev/latest/):
10586
pdm install -v --dev --no-editable --no-self
10687
```
10788

108-
## CI
89+
## CI `circle-play`
10990

11091
The main CI workflows are defined in the [CI YML](https://github.com/sr-murthy/continuedfractions/blob/main/.github/workflows/ci.yml)
11192
and the [CodeQL Analysis YML](https://github.com/sr-murthy/continuedfractions/blob/main/.github/workflows/codeql-analysis.yml).
112-
Currently, pipelines for all branches include a tests stage that includes Ruff linting, unit tests,and doctests, in that order.
113-
114-
## Versioning and Releases
11593

116-
The latest release is `1.8.0`.
94+
## Versioning and Releases `upload`
11795

118-
There is currently no dedicated pipeline for releases - both [GitHub releases](https://github.com/sr-murthy/continuedfractions/releases) and [PyPI packages](https://pypi.org/project/continuedfractions) are published manually, but both have the same version tag.
96+
The latest release is `1.9.0`, and releases are created, tagged and published manually, not via a workflow.

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
[![License: MPL
99
2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
1010
[![Docs](https://readthedocs.org/projects/continuedfractions/badge/?version=latest)](https://continuedfractions.readthedocs.io/en/latest/?badge=latest)
11-
<a href="https://trackgit.com">
12-
<img src="https://us-central1-trackgit-analytics.cloudfunctions.net/token/ping/lsudelfvcxb7f1xm6i4l" alt="trackgit-views" />
13-
</a>
1411
[![PyPI version](https://img.shields.io/pypi/v/continuedfractions?logo=python&color=41bb13)](https://pypi.org/project/continuedfractions)
1512
[![Downloads](https://static.pepy.tech/badge/continuedfractions)](https://pepy.tech/project/continuedfractions)
1613

docs/conf.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@
1919
# https://www.sphinx-doc.org/en/master/usage/configuration.html
2020

2121
# -- Path setup --------------------------------------------------------------
22-
23-
# If extensions (or modules to document with autodoc) are in another directory,
24-
# add these directories to sys.path here. If the directory is relative to the
25-
# documentation root, use os.path.abspath to make it absolute, like shown here.
2622
#
2723
sys.path.insert(0, os.path.abspath('.'))
2824
sys.path.insert(0, os.path.dirname(os.path.abspath('.')))
@@ -56,13 +52,13 @@
5652
# Native docs language
5753
language = 'en'
5854

59-
# Minimum required version of Sphinx
55+
# Minimum required version of Sphinx - not required ATM
6056
#needs_sphinx >= '7.2.5'
6157

6258
# Set primary domain to null
6359
primary_domain = None
6460

65-
# Global substitutions
61+
# Global substitutions - not all used
6662
rst_epilog = f"""
6763
.. |author| replace:: **{author}**
6864
.. |copyright| replace:: **{copyright}**
@@ -77,9 +73,8 @@
7773
# Publish author(s)
7874
show_authors = True
7975

80-
# Add any Sphinx extension module names here, as strings. They can be
81-
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
82-
# ones.
76+
# Sphinx extensions - not all are used or required, but still listed
77+
# in case they may be required at some point.
8378
extensions = ['jupyter_sphinx',
8479
'matplotlib.sphinxext.plot_directive',
8580
'myst_parser',
@@ -147,15 +142,14 @@
147142

148143
# List of patterns, relative to source directory, that match files and
149144
# directories to ignore when looking for source files.
150-
# This pattern also affects html_static_path and html_extra_path.
151145
exclude_patterns = ['_build',
152146
'Thumbs.db',
153147
'.DS_Store',]
154148

155149
# The name of the Pygments (syntax highlighting) style to use.
156150
pygments_style = 'sphinx'
157151

158-
# A list of prefixes that are ignored when creating the module index. (new in Sphinx 0.6)
152+
# A list of prefixes that are ignored when creating the module index.
159153
modindex_common_prefix = ["continuedfractions."]
160154

161155
doctest_global_setup = "import continuedfractions"
@@ -184,7 +178,7 @@
184178
'release_target': f'https://github.com/sr-murthy/continuedfractions/releases/tag/{release}'
185179
}
186180

187-
# -- Options for HTML output -------------------------------------------------
181+
# -- Options for HTML output ----------------------------------------------------------
188182
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
189183

190184
# General (non-theme) HTML output options
@@ -194,14 +188,14 @@
194188
"sources/continued-fractions": [],
195189
"sources/sequences": [],
196190
"sources/rational-points": [],
197-
"sources/contributing": [],
198191
"sources/continuedfractions/*": ["sidebar-nav-bs"],
192+
"sources/contributing": [],
199193
}
200194

201195
# HTML theme options
202196
html_theme = 'pydata_sphinx_theme'
203197
html_theme_options = {
204-
'collapse_navigation': True,
198+
'collapse_navigation': False,
205199
'footer_end': ['author'],
206200
'footer_start': ['copyright', 'sphinx-version', 'theme-version'],
207201
'icon_links': [

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ In terms of Python versions, any version from 3.10+ should be fine on any platfo
4646
sources/continued-fractions
4747
sources/rational-points
4848
sources/sequences
49-
sources/contributing
5049
sources/api-reference
50+
sources/contributing
5151

5252
Indices and tables
5353
==================

0 commit comments

Comments
 (0)