Repository navigation
Assemble release notes with eisenbote - #1787
Merged
Merged
Conversation
eisenbote (https://github.com/fe-lang/eisenbote) replaces towncrier and newsfragments/validate_files.py. It reads the existing [tool.towncrier] settings in pyproject.toml and produces the same release notes. `make notes` builds eisenbote with the Fe compiler about to be released, which also exercises the native backend on a real program, and falls back to eisenbote's last working executable if that build fails. `make release`, `make push-tag` and CI use `eisenbote check` for the fragment directory. eisenbote is expected next to this repository (EISENBOTE=../eisenbote).
Move the release notes settings from pyproject.toml, which only held them for towncrier, to eisenbote.toml, and drop the towncrier name from the changelog's start marker. The release notes are unchanged.
The Makefile keeps its own clone of eisenbote in target/eisenbote and updates it to eisenbote's latest master, instead of expecting a checkout next to the repository. EISENBOTE still selects another checkout. CI runs the new `make check-notes`.
EISENBOTE_BUILD=0 uses eisenbote's last working executable instead of building it with this Fe. The build step says how to do that, since fe prints nothing for minutes while it compiles.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
Security findingsAdvisory findings (1)ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Collaborator
Author
|
@sbillig I gave this a good manual test. We should be good. |
There was a problem hiding this comment.
🛡️ Codex Security Review · Automatically triggered
Here are some automated security review suggestions for this pull request.
Reviewed commit: e6621f918d
ℹ️ About Codex security reviews in GitHub
This is an experimental Codex feature. Security reviews are triggered when:
- You comment "@codex security review"
- A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review
Once complete, Codex will leave suggestions, or a comment if no findings are found.
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.
Replaces towncrier and
newsfragments/validate_files.pywitheisenbote, a towncrier replacement
written in Fe for the native backend. Fragments are written as before. For our
settings the output is byte-identical to towncrier; eisenbote's tests check this
by replaying all past Fe releases.
Process
make notes version=Xbuilds the compiler from this checkout, buildseisenbote with it, writes
CHANGELOG.md, removes the consumed fragments andcommits.
make releaseandmake push-taguseeisenbote check --empty; CI usesmake check-notes.target/eisenbote;EISENBOTE=<path>uses another checkout.pyproject.tomltoeisenbote.toml.Dogfooding
Each release builds and runs a Fe program (a workspace with a git dependency,
native I/O and heap buffers) with the compiler being released, before tagging.
Writing it already turned up several compiler bugs, which have separate fix
branches.
Fallback
eisenbote's CI builds it daily against Fe master and publishes passing builds as
its
last-workingrelease. If building eisenbote with this Fe fails,make notesuses that executable;EISENBOTE_BUILD=0uses it directly.