fix: the PyPI page links the docs, issues and changelog, and a stale saved answer says the layout moves before 1.0 - #1763
Merged
Conversation
…saved answer says the layout moves before 1.0 - `[project.urls]` names Documentation, Repository, Issues and Changelog, as mathspec's does. - The README's two relative links are absolute, so they resolve on PyPI. - The two LayoutError messages say the layout moves before 1.0, rather than while the package is on 0.0.1aN. - RELEASING.md's early-development section no longer promises tighter CI by 0.1.0; a Python matrix behind a gate job stays the first step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016Pv7LzSgzt7Yn2K3ioyJXw
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016Pv7LzSgzt7Yn2K3ioyJXw
Merging this PR will not alter performance
Comparing Footnotes
|
…all-2iuw8n # Conflicts: # CHANGELOG.md
FBumann
enabled auto-merge (squash)
September 25, 2026 12:09
Merged
FBumann
added a commit
that referenced
this pull request
Sep 25, 2026
> **Prompt:** Prepare the release PR > [!NOTE] > The following content was generated by AI. This releases **0.1.0**, the first final release on PyPI after 0.1.0rc1. Merging it tags `v0.1.0`, opens the GitHub release, and publishes to PyPI once the `pypi` environment is approved. The notes name the three breaks since rc1. <details><summary>The version, what the notes claim, and how they were checked</summary> **Why 0.1.0 and not 0.2.0.** PyPI holds only `0.1.0rc1`, which is a pre-release that a user must pin to get. AGENTS.md says a release that breaks a file or an import raises the minor version. A release candidate is where such breaks are expected before the final version, so this final release stays 0.1.0 and lists each break since rc1. If you want 0.2.0 instead, only the heading changes. **The section** - `## Upcoming version` becomes `## 0.1.0 (2026-09-25)`, and a new empty `## Upcoming version` sits above it. - A short opening says the package is on PyPI, and a paragraph defines spec and model, which specsolve now uses as mathspec 0.2.0 does. - The three breaks since rc1, from #1768: - the archive member `model.yaml` is now `spec.yaml`; - specsolve requires mathspec 0.2.0, where `model=` is now `spec=` and `mathspec.model` is now `mathspec.spec`; - messages now say "spec" for the file. - The four PR lines since rc1 (#1767, #1768, #1764 and #1763) stay as they were. The #1767 line came in by merging `main`, which resolved the conflict on the heading. **Checked** - `python -m tools.changelog check`, after the merge: "releases 0.1.0 on merge". - `python -m tools.changelog notes 0.1.0` prints the section as the release notes. - `pytest tests/test_changelog.py`: 39 passed. - The recovery step in the notes was run against this tree. An archive with `model.yaml` is refused with a `LayoutError`. After its member is renamed to `spec.yaml`, `load_archive` reads it and returns the same objective. **Not checked:** the release workflow itself, which runs only on merge. </details> 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Xh8mtkAfVLEGYCTtwy3oqd Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It came with the four items of section 3 of #1752's checklist, "Before this PR merges: what the PyPI page shows", pasted below it.
Note
The following content was generated by AI.
The four items in section 3 of #1752's checklist. The PyPI page gets links to the docs, issues and changelog. The README's links resolve there. Two error messages drop "0.0.1aN". RELEASING.md stops promising tighter CI by 0.1.0.
What changed, gates, departures
Changes
pyproject.toml:[project.urls]namesDocumentation,Repository,IssuesandChangelog, as docs: the installation page and the PyPI project page say pip install mathspec, and the README's links resolve on PyPI energy-models/mathspec#707 did. It used to name onlyrepository.README.md: the links toCONTRIBUTING.mdanddocs/about/prior-art.mdare now absolute: GitHub for the first, Read the Docs for the second.src/specsolve/relational/parquet.py: bothLayoutErrormessages say "The layout moves before 1.0" instead of "while the package is on 0.0.1aN". The docstring oftest_an_answer_in_another_layout_is_refused_by_namefollows. The test matches on the rewrite ("solve the model again and save it"), not on this clause.RELEASING.md, "Relaxed while in early development": it said "Tighten these before 0.1.0". It now says a Python matrix behind a gate job is the first thing to add back when CI is tightened, without a date. I changed the sentence rather than add the matrix. The interpreter is pinned once in[tool.pixi.dependencies], so a matrix needs a pixi feature per Python version. That is its own PR.CHANGELOG.md: this PR's line under## Upcoming version.Gates, run in a
uvenvironment (dev + docs groups,gurobiandxpressextras), because pixi cannot be installed here:ruff check .andruff format --check .pass.pytest -n auto: 4139 passed, 250 skipped, 1 xfailed.zensical build --strict: no issues.uv build, thentwine check: passed. The wheel's metadata has the fourProject-URLlines and no direct reference.python -m tools.changelog checkandentrypass.Departure from Part 2: one PR for four checklist items rather than one each. They are small, all serve the first PyPI page, and the checklist groups them. The type is
fix, the topmost row, because of the messages insrc/.🤖 Generated with Claude Code
https://claude.ai/code/session_016Pv7LzSgzt7Yn2K3ioyJXw