Prepare for v0.2.0, raise the numpy floor, refresh the lock, and let the browser wrap the docs - #45
Conversation
AI AnalysisPurpose of the changes:Update project dependencies and documentation for better clarity and accuracy.
|
numpy moves from >=2.1 to >=2.3.2, the oldest release carrying wheels for every Python the project supports. 2.1 has none for 3.14, which the test matrix covers, and it had aged past the two years of releases the floor is meant to span. xarray stays at >=2026.4.0: it is the first release that does not trip `filterwarnings = ["error"]` when paired with numpy 2.5. `urls` becomes a `[project.urls]` table with one entry per line, which is also what lets it gain a `Changelog` pointing at CHANGELOG.md. A table has to sit below the bare keys of `[project]`, so it moves down the file. The docs no longer restate any dependency's version, in the install instructions or in the two developer pages, since pyproject.toml is where those live.
Fifteen packages move, all of them tooling apart from a numpy patch: towncrier 25.8.0 to 26.9.0, ruff 0.16.4 to 0.16.6, ty 0.0.74 to 0.0.79, zensical 0.0.57 to 0.0.59, coverage, hypothesis, click, cattrs, fonttools, kiwisolver, platformdirs, deepmerge, griffelib, mkdocstrings-python, and numpy 2.5.2 to 2.5.3. The new ruff carries `pytest-fixture-autouse`, which reads `autouse=True` as something to avoid. The two fixtures it lands on close the figures a test opened and hand each test an empty registry, and both have to run for every test in the file, so the rule joins the `tests/**` ignores rather than the fixtures losing what makes them work.
f41bd85 to
06a3099
Compare
AI Analysis
Purpose of the changes:Update package versions in the lock file to their latest releases, ensuring compatibility and access to new features and bug fixes.
|
Every paragraph across the site, the README and the changelog is now one line. A newline inside a paragraph was never a line break the reader saw, so the wrap column was a convention held by hand on every edit and lost on every reflow; the rendered page is unchanged either way. Nothing else moves. Fenced code keeps its own line breaks, and so do headings, tables, list structure, mkdocstrings directives with the YAML options block under them, and the HTML comments the documentation checker reads. The site builds to the same HTML as before, byte for byte once the whitespace outside a `<pre>` is collapsed, which is the whitespace a browser collapses too.
The Releasing steps stopped at the GitHub Release, leaving the version on `main` sitting at the number that just shipped, so a development checkout was indistinguishable from the release. Step 7 bumps it to the next patch as a development version, and says why `uv sync` belongs with the bump: the format version is read from the installed metadata. A paragraph after the steps says to move the patch and not the minor. The minor is the format version both file headers carry, so bumping it in advance stamps a version into every file written for the rest of the cycle that the eventual release may refuse. It moves in the pull request that changes the format, next to the migration that release registers.
AI Analysis
Purpose of the changes:The changes aim to improve the documentation of the QProgram's capabilities, serialization, and control flow mechanisms, enhancing clarity and accessibility for developers working with the system.
|
AI Analysis
Purpose of the changes:This commit introduces version 0.2.0 of the QProgram, adding significant functionality, improving documentation, and fixing various issues related to measurement and waveform processing.
|
`towncrier build` renders the fifteen fragments under `changelog/` into a `## 0.2.0` section and deletes them. The version needed no change: #42 already moved it to 0.2.0 mid-cycle, since the format version is derived from it. The rendered entries are then ordered by what a reader needs first rather than by pull request number, so within each heading the changes to how the library is used come before the documentation ones. A paragraph opens the section with the one thing an 0.1.0 user has to know: a file written by that release no longer loads, and files written from here on are carried up by a migration instead.
e30e132 to
6c36cdf
Compare
AI Analysis
Purpose of the changes:This commit introduces version 0.2.0 of the QProgram library, implementing significant changes to file format compatibility, migration handling, and enhanced plotting functionalities, along with extensive documentation updates.
|
|



Raises the numpy floor from
>=2.1to>=2.3.2, the oldest release with wheels for every Python the test matrix covers. 2.1 has no 3.14 wheels, and it had aged past the two years of releases the floor is meant to span. xarray stays where it is: 2026.4.0 is the first release that does not tripfilterwarnings = ["error"]when paired with numpy 2.5.urlsbecomes a[project.urls]table with one entry per line and gains aChangeloglink, and the docs stop restating dependency versions that pyproject.toml already carries.Then the lock file is refreshed. Fifteen packages move, all tooling apart from a numpy patch, the largest being towncrier 25.8.0 to 26.9.0 and ruff 0.16.4 to 0.16.6. The new ruff adds
pytest-fixture-autouse, which lands on the two fixtures that close a test's figures and empty the registry between tests; both need to run for every test in their file, so the rule joins thetests/**ignores.Every paragraph across the site, the README and the changelog becomes one line, since a newline inside a paragraph was never a line break the reader saw and the wrap column had to be held by hand on every edit. Fenced code, headings, tables, list structure, mkdocstrings directives with their YAML options blocks, and the HTML comments the documentation checker reads all keep their own line breaks, and the site renders to the same HTML as before once the whitespace outside a
<pre>is collapsed. Separately, the Releasing section gains the step that was missing at the end: what happens to the version onmainafter a release, and why the patch moves rather than the minor, the minor being the format version both file headers carry.Finally,
towncrier buildrenders the fifteen fragments underchangelog/into a## 0.2.0section and deletes them. The version needed no change, since #42 already moved it to 0.2.0 mid-cycle for the format version to be derived from it. The rendered entries are then ordered by what a reader needs first rather than by pull request number, so within each heading the changes to how the library is used come before the documentation ones, and a paragraph opens the section with the one thing an 0.1.0 user has to know: a file written by that release no longer loads, and files written from here on are carried up by a migration instead.