diff --git a/.github/workflows/changelog_verifier.yml b/.github/workflows/changelog_verifier.yml new file mode 100644 index 000000000..387176f63 --- /dev/null +++ b/.github/workflows/changelog_verifier.yml @@ -0,0 +1,23 @@ +name: "Changelog Verifier" +on: + push: + branches-ignore: + - 'whitesource-remediate/**' + - 'backport/**' + pull_request: + types: [opened, edited, review_requested, synchronize, reopened, ready_for_review, labeled, unlabeled] + +jobs: + # Enforces the update of a changelog file on every pull request + verify-changelog: + if: github.repository == 'opensearch-project/anomaly-detection' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ref: ${{ github.event.pull_request.head.sha }} + + - uses: dangoslen/changelog-enforcer@v3 + with: + skipLabels: "autocut, skip-changelog" \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..02527e3f6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,28 @@ +# CHANGELOG +All notable changes to this project are documented in this file. + +Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) + +## [Unreleased 3.0](https://github.com/opensearch-project/anomaly-detection/compare/2.x...HEAD) +### Features +### Enhancements +### Bug Fixes +### Infrastructure + +### Documentation + +### Maintenance +### Refactoring + +## [Unreleased 2.x](https://github.com/opensearch-project/anomaly-detection/compare/2.19...2.x) +### Features + + +### Enhancements +- Github workflow for changelog verification ([#1413](https://github.com/opensearch-project/anomaly-detection/pull/1413)) +### Bug Fixes + +### Infrastructure +### Documentation +### Maintenance +### Refactoring \ No newline at end of file diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index 6143100bd..a66823e27 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -11,6 +11,7 @@ - [Backports](#backports) - [Gradle Plugins](#gradle-plugins) - [Distribution Download Plugin](#distribution-download-plugin) + - [Changelog](#changelog) ## Developer Guide @@ -102,3 +103,26 @@ The Distribution Download plugin downloads the latest version of OpenSearch by d ``` ./gradlew integTest -PcustomDistributionUrl="https://ci.opensearch.org/ci/dbc/bundle-build/1.2.0/1127/linux/x64/dist/opensearch-1.2.0-linux-x64.tar.gz" ``` + +## Changelog + +AD maintains version specific changelog by enforcing a change to the ongoing [CHANGELOG](CHANGELOG.md) file adhering to the [Keep A Changelog](https://keepachangelog.com/en/1.1.0/) format. + +Briefly, the changes are curated by version, with the changes to the main branch added chronologically to `Unreleased` version. Further, each version has corresponding sections which list out the category of the change - `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`. + +#### How to add my changes to [CHANGELOG](CHANGELOG.md)? + +As a contributor, you must ensure that every pull request has the changes listed out within the corresponding version and appropriate section of [CHANGELOG](CHANGELOG.md) file. + +Adding in the change is two step process - +1. Add your changes to the corresponding section within the CHANGELOG file with dummy pull request information, publish the PR + +`Your change here ([#PR_NUMBER](PR_URL))` + +2. Update the entry for your change in [`CHANGELOG.md`](CHANGELOG.md) and make sure that you reference the pull request there. + +[Example PR](https://github.com/opensearch-project/flow-framework/pull/998/files#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR24) + +For future release notes, all entries can be directly copied to the release notes and then deleted from either the 2.x or 3.0 section as a cleanup. For example, see: https://github.com/opensearch-project/flow-framework/pull/1036/files + +For changes that don't require an entry, we can add the 'skip-changelog' label to the PR. This will allow the changelog workflow to pass without adding an entry."