Skip to content

new(CI): Add informational API diff job (packdiff) for the library packages - #12363

Open
zlonast wants to merge 3 commits into
haskell:masterfrom
zlonast:zlonast/check-api
Open

zlonast wants to merge 3 commits into
haskell:masterfrom
zlonast:zlonast/check-api

Conversation

@zlonast

@zlonast zlonast commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

Adds an informational "Check API" job that shows, on every pull request, how the
public API of Cabal-syntax, Cabal, cabal-install-solver and Cabal-hooks
changes with respect to the PR base.

The job is not a required check and does not block merging; it exists to:

  • make API changes visible during review,
  • inform changelog entries and PVP version bumps,
  • inform backport decisions for release branches (a red job means "probably not
    a backport candidate").
$ make api-install                               # once; installs packdiff from the pinned commit
$ make api-diff                                  # all four packages, against origin/master
$ make api-diff PKG=Cabal-syntax API_BASE=3.14   # one package, against a branch/tag

Template B: This PR does not modify behaviour or interface

E.g. the PR only touches documentation or tests, does refactorings, etc.

Include the following checklist in your PR:

  • Patches conform to the coding conventions.
  • The Check API job is clean, or the API changes are documented in a changelog file.
  • Is this a PR that fixes CI? If so, it will need to be backported to older cabal release branches (ask maintainers for directions).

@zlonast

zlonast commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator Author

@ulysses4ever Hi, what do you think of this version of the check API?

@ulysses4ever

ulysses4ever commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

This looks good. Im happy to approve after you strike the test changes (apiCheck). Maybe take a screenshot for other reviewers . Two things I can suggest:

  • I don’t believe you need a whole new project file to install a package from GitHub: just fetch the tar, untar, cd into the directory and do it!
  • I’d add a checkbox into the PR template regarding this workflow. E. g. “Either the api-check is clean or the api changes are documented in the changelog file”

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants