Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: enable build-specific documentation roots #7455

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

david-christiansen
Copy link
Contributor

This PR enables the use of the build-time configuration of the Lean reference manual URL and updates the release checklist to account for the reference manual.

This is a follow-up to #7240, after the required stage0 update.

The release process described here uses the same location for the reference manual for RCs and stable releases. This is for two reasons:

  1. The only changes between them should be a modification of the embedded version string and updates to the final release's release notes, once those are included.
  2. It ensures that a compatible manual is available at the moment that the new release appears, so any delay getting it deployed won't be visible to users.

This PR enables the use of the build-time configuration of the Lean
reference manual URL and updates the release checklist to account for
the reference manual.

This is a follow-up to leanprover#7240, after the required `stage0` update.
@github-actions github-actions bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Mar 12, 2025
@leanprover-community-bot
Copy link
Collaborator

Mathlib CI status (docs):

  • ❗ Batteries/Mathlib CI will not be attempted unless your PR branches off the nightly-with-mathlib branch. Try git rebase d1d2f215adc90e88120f6b4cdda8d264c0e5de00 --onto 8fc8e8ed19ef218022f5a94cbf5e472e3b777e44. You can force Mathlib CI using the force-mathlib-ci label. (2025-03-12 13:30:10)

@@ -165,6 +168,7 @@ We'll use `v4.7.0-rc1` as the intended release version in this example.
- In `src/CMakeLists.txt`,
- verify that you see `set(LEAN_VERSION_MINOR 7)` (for whichever `7` is appropriate); this should already have been updated when the development cycle began.
- change the `LEAN_VERSION_IS_RELEASE` line to `set(LEAN_VERSION_IS_RELEASE 1)` (this should be a change; on `master` and nightly releases it is always `0`).
- change the `LEAN_MANUAL_ROOT` line to `set(LEAN_MANUAL_ROOT "https://.../4.7.0/")`, with the correct version, after confirming the deployment location for the reference manual for this release. (this should be a change; on `master` and nightly releases it is always `""`).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just replace the ... with the URL from release_checklist.py?

@@ -135,7 +135,8 @@ def check_cmake_version(repo_url, branch, version_major, version_minor, github_t
f"set(LEAN_VERSION_MAJOR {version_major})",
f"set(LEAN_VERSION_MINOR {version_minor})",
f"set(LEAN_VERSION_PATCH 0)",
f"set(LEAN_VERSION_IS_RELEASE 1)"
f"set(LEAN_VERSION_IS_RELEASE 1)",
f"set(LEAN_MANUAL_ROOT \"https://lean-lang.org/doc/reference/{version_major}.{version_minor}.0/\")"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I don't really understand why we need an extra line here. Shouldn't this just be determined from the existing variables?

@@ -20,6 +20,7 @@ if (LEAN_SPECIAL_VERSION_DESC)
elseif (NOT LEAN_VERSION_IS_RELEASE)
string(APPEND LEAN_VERSION_STRING "-pre")
endif()
set(LEAN_MANUAL_ROOT "") # Set this to the correct location for releases and release candidates. Include the trailing slash.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly here, I think the comment should tell the human what the URL should be, if they need to set it by hand!

@@ -124,6 +126,7 @@ We'll use `v4.6.0` as the intended release version as a running example.
- Create and push the tag
- Merge the tag into `stable`
- Run `script/release_checklist.py v4.6.0` again to check that everything is in order.
- Deploy the reference manual for the release to the specified URL, replacing the version that was deployed for the RC.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how to do this step! What am I actually meant to do here?

Comment on lines +209 to +210
- Deploy the reference manual for the release candidate to the URL specified above. It will be replaced by
the final release's manual as part of the release process.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly here. What do I need to do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants