Skip to content

doc: overhaul RELEASE.md and add generate-release-changelog-links exe#6585

Open
disassembler wants to merge 5 commits into
masterfrom
sl/release-process
Open

doc: overhaul RELEASE.md and add generate-release-changelog-links exe#6585
disassembler wants to merge 5 commits into
masterfrom
sl/release-process

Conversation

@disassembler

Copy link
Copy Markdown
Contributor
  • Rewrites RELEASE.md to reflect the actual release process: Intersect ownership, named sign-offs with two-stage pre-release/full-release gate (SRE now required for pre-release), component team table, honest 4-8 week cadence, dedicated testing section (continuous vs final integration vs performance), and updated versioning notes (no -pre tag suffix, GitHub release type determines pre/full status).
  • Adds Ensurable Systems alongside IOG and Tweag as contributing organisations.
  • Converts scripts/generate-release-changelog-links.hs from a cabal script into a proper cabal executable package so nix devshell users get a generate-release-changelog-links binary without running the script manually.
  • Wires the new exe into the devshell via nix/haskell.nix nativeBuildInputs.
  • Updates nix build instructions from plan-nix.json to plan-nix, noting result-json as the extra output.
  • Wraps RELEASE.md prose to 80 columns.

Description

Add your description here, if it fixes a particular issue please provide a
link
to the issue.

Checklist

  • Commit sequence broadly makes sense and commits have useful messages
  • New tests are added if needed and existing tests are updated. These may include:
    • golden tests
    • property tests
    • roundtrip tests
    • integration tests
      See Running tests for more details
  • Any changes are noted in the CHANGELOG.md for affected package
  • The version bounds in .cabal files are updated
  • CI passes. See note on CI. The following CI checks are required:
    • Code is linted with hlint. See .github/workflows/check-hlint.yml to get the hlint version
    • Code is formatted with stylish-haskell. See .github/workflows/stylish-haskell.yml to get the stylish-haskell version
    • Code builds on Linux, MacOS and Windows for ghc-9.6 and ghc-9.12
  • Self-reviewed the diff

Note on CI

If your PR is from a fork, the necessary CI jobs won't trigger automatically for security reasons.
You will need to get someone with write privileges. Please contact IOG node developers to do this
for you.

- Rewrites RELEASE.md to reflect the actual release process: Intersect
  ownership, named sign-offs with two-stage pre-release/full-release gate
  (SRE now required for pre-release), component team table, honest 4-8 week
  cadence, dedicated testing section (continuous vs final integration vs
  performance), and updated versioning notes (no -pre tag suffix, GitHub
  release type determines pre/full status).
- Adds Ensurable Systems alongside IOG and Tweag as contributing organisations.
- Converts scripts/generate-release-changelog-links.hs from a cabal script
  into a proper cabal executable package so nix devshell users get a
  generate-release-changelog-links binary without running the script manually.
- Wires the new exe into the devshell via nix/haskell.nix nativeBuildInputs.
- Updates nix build instructions from plan-nix.json to plan-nix, noting
  result-json as the extra output.
- Wraps RELEASE.md prose to 80 columns.
@disassembler disassembler requested review from a team as code owners May 30, 2026 03:59
The explicit optparse-applicative ^>= 0.18 dep (and matching import) was
blocking resolution with GHC versions that ship optparse-applicative 0.19.
All argument parsing goes through turtle, so optparse-applicative is a
transitive dep only — removing the explicit bound and the unused
Options.Applicative import fixes the solver failure without any code changes.
ansi-wl-pprint removed for the same reason: never imported, was only there
as a vestige of optparse-applicative 0.18's internal Doc type.
@disassembler disassembler force-pushed the sl/release-process branch 3 times, most recently from 4ae512c to 18e243e Compare June 1, 2026 17:44
turtle ^>= 1.6.x requires optparse-applicative < 0.19, conflicting with
the rest of the project. allow-newer would satisfy the solver but turtle
1.6.x fails to compile against 0.19 because of the breaking Doc type
change (ansi-wl-pprint -> prettyprinter).

Replace turtle usage with standard IO:
- Shell monad -> plain list IO with mapM/concat
- options/optPath/argPath/argText -> execParser/strOption/argument directly
- Pattern URL parser -> Text.breakOn/stripPrefix in Maybe monad
- printf/format -> Text concatenation and hPutStrLn stderr
- die -> exitFailure helper

Also drops foldl and prettyprinter which were only needed via turtle.
Comment thread scripts/generate-release-changelog-links/generate-release-changelog-links.cabal Outdated
Comment thread nix/haskell.nix Outdated

@carbolymer carbolymer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

👍🏻 for nixifying the script

Comment thread nix/haskell.nix
scriv
stylish-haskell
] ++ [
config.hsPkgs.generate-release-changelog-links.components.exes.generate-release-changelog-links

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this should be added to hydraJobs, to provide caching

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

…inks

- Fold exe into existing nativeBuildInputs list (remove separate ++ [])
- Add -O2 -flate-specialise -split-sections -optl-s for smaller/faster binary
- Set RTS opts to -A64m -I0 to delay GC for one-shot usage
@disassembler disassembler added this pull request to the merge queue Jun 9, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jun 9, 2026
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