GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — chore(release): add changelog generator script by andygrove · Pull Request #88 · apache/datafusion-java

Conversation

@andygrove

@andygrove andygrove commented May 26, 2026

Copy link
Copy Markdown
Member

Which issue does this PR close?

  • No tracking issue. Pure tooling addition for the release process.

Rationale for this change

The first datafusion-java release will need a changelog written between the previous tag and the release HEAD. The repo currently has no tooling for that, so a release manager would either hand-curate the list of merged PRs or copy a script from a sibling project. `datafusion-comet` already maintains a changelog generator that walks the git range, fetches PRs from the GitHub API, and categorizes them by GitHub label and Conventional Commit prefix. Adopting it here gives us the same output format and keeps future sync with comet mechanical.

What changes are included in this PR?

  • `dev/release/generate-changelog.py` — adapted from `datafusion-comet/dev/release/generate-changelog.py`. The only diffs from upstream are the project name (`apache/datafusion-java` in the GitHub API call) and the changelog heading ("DataFusion Java" instead of "DataFusion Comet"). Everything else is identical so subsequent pulls from upstream are simple.
  • `dev/release/requirements.txt` — single dependency: `PyGitHub`.

The script categorizes PRs by (in priority order):

Bucket GitHub label Conventional commit prefix
Breaking changes `api change` `!:`
Performance `performance` `perf:`
Fixed bugs `bug` `fix:`
Enhancements `enhancement` `feat:`
Documentation `documentation` `docs:` / `doc:`
Other — (none of the above)

Are these changes tested?

Smoke-tested locally against the last three merged PRs (`HEAD~3..HEAD`). The script correctly categorized two `feat:` PRs (#85, #77) as enhancements and one `chore:` PR (#87) as other, and emitted the expected markdown structure (ASF header, intro line with commit/contributor counts, per-bucket sections with author handles, credits block). The `resolve_ref` helper inherited from the upstream correctly normalizes `HEAD` to a SHA before the GitHub API call, so refs that resolve differently locally vs. on the default branch don't drift.

`python3 -c "import ast; ast.parse(open('dev/release/generate-changelog.py').read())"` is the syntactic check; the end-to-end test above covers the semantic behaviour.

Are there any user-facing changes?

No. Release-manager-facing tooling only.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@andygrove
chore(release): add changelog generator script
83a4b2b
Adapted from datafusion-comet's `dev/release/generate-changelog.py`:
walks the commit range between two refs, fetches the associated PRs
via the GitHub API, categorizes them by GitHub label and Conventional
Commit prefix (breaking / bug / perf / feat / docs / other), and emits
a markdown changelog with credits.

Only the project name (`apache/datafusion-java`) and the changelog
header ("DataFusion Java") are changed from the upstream script;
everything else is identical so future syncs are mechanical.

Usage:

  cd dev/release
  python3 -m venv venv && source venv/bin/activate
  pip3 install -r requirements.txt
  export GITHUB_TOKEN=<token>
  python3 generate-changelog.py <prev-tag> HEAD <version> > ../../CHANGELOG.md
@andygrove andygrove mentioned this pull request May 26, 2026
chore(release): prepare 0.1.0 release #89
Merged
@andygrove
andygrove merged commit 67a7be1 into apache:main May 26, 2026
1 check passed

Uh oh!

There was an error while loading. Please reload this page.

@andygrove
andygrove deleted the changelog-generator branch May 26, 2026 00:28
@andygrove andygrove mentioned this pull request May 26, 2026
chore(release): add 0.1.0 changelog and bump main to 0.2.0-SNAPSHOT #91
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@andygrove
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.