diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..a0c93053a2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,51 @@ + + +# Apache Polaris Changelog + +This changelog is used to give users and contributors condensed information about the contents of Polaris releases. +Entries are grouped in sections like _Highlights_ or _Upgrade notes_, the provided sections can be adjusted +as necessary. Empty sections will not end up in the release notes. Contributors are encouraged to incorporate +CHANGELOG updates into their PRs when appropriate. Reviewers should be mindful of the impact of PRs and +request adding CHANGELOG notes for breaking (!) changes and possibly other sections as appropriate. + +## [Unreleased] + +### Highlights + +### Upgrade notes + +### Breaking changes + +### New Features + +### Changes + +### Deprecations + +### Fixes + +### Commits + +## [1.0.0-incubating] + +- TODO: backfill 1.0.0 release notes + +[Unreleased]: https://github.com/apache/polaris/commits +[1.0.0-incubating]: https://github.com/apache/polaris/releases/tag/apache-polaris-1.0.0-incubating-rc2 diff --git a/build.gradle.kts b/build.gradle.kts index 1604778cf9..3b08d60e56 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,6 +32,7 @@ plugins { id("eclipse") id("polaris-root") alias(libs.plugins.rat) + alias(libs.plugins.jetbrains.changelog) // workaround for https://github.com/kordamp/jandex-gradle-plugin/issues/25 alias(libs.plugins.jandex) apply false } @@ -217,3 +218,23 @@ copiedCodeChecks { } } } + +changelog { + repositoryUrl.set("https://github.com/apache/polaris") + title.set("Apache Polaris Changelog") + versionPrefix.set("apache-polaris-") + header.set(provider { "${version.get()}" }) + groups.set( + listOf( + "Highlights", + "Upgrade notes", + "Breaking changes", + "New Features", + "Changes", + "Deprecations", + "Fixes", + "Commits", + ) + ) + version.set(provider { project.version.toString() }) +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 91508b6b59..e67061536d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -102,3 +102,4 @@ jandex = { id = "org.kordamp.gradle.jandex", version = "2.1.0" } openapi-generator = { id = "org.openapi.generator", version = "7.12.0" } quarkus = { id = "io.quarkus", version.ref = "quarkus" } rat = { id = "org.nosphere.apache.rat", version = "0.8.1" } +jetbrains-changelog = { id = "org.jetbrains.changelog", version = "2.2.1"} \ No newline at end of file diff --git a/site/content/release-guide.md b/site/content/release-guide.md index 7ba9a76069..4d9968150b 100644 --- a/site/content/release-guide.md +++ b/site/content/release-guide.md @@ -113,6 +113,27 @@ git commit -a git push ``` +Update `CHANGELOG.md`: +``` +./gradlew patchChangelog +git commit -a +git push +``` + +Note: You should submit a PR to propagate (automated) CHANGELOG updates from the release +branch to `main`. + +If more changes are cherry-picked for the next RC, and those change introduce CHANGELOG entries, +follow this update process: +* Manually add an `-rcN` suffix to the previously generated versioned CHANGELOG section. +* Rerun the `patchChangelog` command +* Manually remove RC sections from the CHANGELOG +* Submit a PR to propagate CHANGELOG updates from the release branch to `main`. + +Note: the CHANGELOG patch commit should probably be the last commit on the release branch when +an RC is cut. If more changes are cherry-picked for the next RC, it is best to drop the +CHANGELOG patch commit, apply cherry-picks, and re-run `patchChangelog`. + Note: You should also submit a PR on `main` branch to bump the version in the `version.txt` file. ### Create release tag