Skip to content

fix: the PyPI page links the docs, issues and changelog, and a stale saved answer says the layout moves before 1.0 - #1763

Merged
FBumann merged 3 commits into
mainfrom
claude/confident-goodall-2iuw8n
Sep 25, 2026
Merged

FBumann merged 3 commits into
mainfrom
claude/confident-goodall-2iuw8n

Conversation

@FBumann

@FBumann FBumann commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Prompt: Also do this

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] names Documentation, Repository, Issues and Changelog, 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 only repository.
  • README.md: the links to CONTRIBUTING.md and docs/about/prior-art.md are now absolute: GitHub for the first, Read the Docs for the second.
  • src/specsolve/relational/parquet.py: both LayoutError messages say "The layout moves before 1.0" instead of "while the package is on 0.0.1aN". The docstring of test_an_answer_in_another_layout_is_refused_by_name follows. 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 uv environment (dev + docs groups, gurobi and xpress extras), because pixi cannot be installed here:

  • ruff check . and ruff format --check . pass.
  • pytest -n auto: 4139 passed, 250 skipped, 1 xfailed.
  • zensical build --strict: no issues.
  • uv build, then twine check: passed. The wheel's metadata has the four Project-URL lines and no direct reference.
  • python -m tools.changelog check and entry pass.

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 in src/.

🤖 Generated with Claude Code

https://claude.ai/code/session_016Pv7LzSgzt7Yn2K3ioyJXw

…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
@read-the-docs-community

read-the-docs-community Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 specsolve | 🛠️ Build #34757766 | 📁 Comparing 8a0b9c8 against latest (a4be39a)

  🔍 Preview build  

1 file changed
± about/changelog/index.html

@codspeed

codspeed Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 24 untouched benchmarks
⏩ 82 skipped benchmarks1


Comparing claude/confident-goodall-2iuw8n (8a0b9c8) with main (8c783ca)2

Open in CodSpeed

Footnotes

  1. 82 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

  2. No successful run was found on main (fef9c80) during the generation of this report, so 8c783ca was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

@FBumann
FBumann enabled auto-merge (squash) September 25, 2026 12:09
@FBumann
FBumann merged commit c6af367 into main Sep 25, 2026
13 checks passed
@FBumann
FBumann deleted the claude/confident-goodall-2iuw8n branch September 25, 2026 12:10
@FBumann FBumann mentioned this pull request Sep 25, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants