# Releasing AWS for Fluent Bit Steps which must performed on GitHub before we put out any images. ### How to write Change log entries The ECS CLI is a good example: https://github.com/aws/amazon-ecs-cli/blob/master/CHANGELOG.md Note that the PR or issue associated with each change is listed. Use the issue number if an issue is associated with the change; if there is no issue, use the PR. For the aws-for-fluent-bit image, the issues will likely be in one of the plugin repos; reference them in markdown like this: ``` * Feature - Allow retries for creating log group - [cloudwatch:18](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit/issues/18) ``` List features as: * “Enhancement” - a very small change or improvement. For our fluent bit plugins, something like “improve debug log messages” would be an enhancement. * “Feature” - most additions will follow under this category. For our Fluent Bit plugins, any time we add a new config option would be a feature. * “Bug” - a change which fixes something which was broken previously. Any change log with a “Feature” should lead to a Minor version bump. A Change log with only “Enhancement” entries can have a patch version bump. For more, learn about semantic versioning: https://semver.org/ ### Before releasing the images #### Cut “releases” of the AWS Fluent Bit Plugins The first step before a release is freeze development on the Fluent Bit plugins. No new PRs will be merged until after the release CM has completed. For every Fluent Bit plugin which has changes since the last AWS for Fluent Bit release, we will create a GitHub release, and a new Git Tag (the tag is auto-created with the GitHub release). We will follow SemVer. We are not releasing binaries for the Fluent Bit plugins. We will have GitHub releases just because it makes it easy to track changes of the plugins over time. Steps: 1. Submit a PR to update the Change log for the plugin. 2. Merge the PR (get an approval), and publish a GitHub release with the same contents as the Change log entry _Example Change Log Entry_ ``` ## 1.1.0 * Add `log_group_key` field to allow the log group name to be dynamically chosen for each log record (#25) ``` #### Version Bump and Change Log for AWS For Fluent Bit Submit a PR to update the version file (https://github.com/aws/aws-for-fluent-bit/blob/master/AWS_FOR_FLUENT_BIT_VERSION), along with Windows version file (https://github.com/aws/aws-for-fluent-bit/blob/mainline/windows.versions). For Windows, ensure that the `latest` as well as `stable` keys are marked appropriately and only once in `windows.versions` file. Then add an entry to the Changelog (https://github.com/aws/aws-for-fluent-bit/blob/master/CHANGELOG.md). For the AWS for Fluent Bit Change log, you will copy the “Enhancement”, “Feature” and “Bug” items from the releases for each of the plugins. This is a convenience for customers- they only need to go to one place to see what is new with each release. _Example Change Log Entry_ ``` ## 2.0.1 This release includes: * Fluent Bit 1.3.2 * Amazon CloudWatch Logs for Fluent Bit 1.1.0 * Amazon Kinesis Streams for Fluent Bit 1.0.0 * Amazon Kinesis Firehose for Fluent Bit 1.0.0 Compared to 2.0.0 this release adds: * Feature - add `log_group_key` in CloudWatch Plugin ``` #### Draft a GitHub Release Draft (but do not publish) a GitHub release for the image. *Tag Version:* v + the version. For example v2.0.1 *Release Title:* AWS for Fluent Bit 2.0.1 *Release Notes:* Same as the Change log entry. #### Check the version Run `make release` to run the image to check that the version and Fluent Bit version are correctly printed: ``` $ docker run -it amazon/aws-for-fluent-bit:latest AWS for Fluent Bit Container Image Version 2.0.0 Fluent Bit v1.3.3 ``` ### Release With those steps complete, the images can now be made public. Once the images and SSM Parameters are all public, publish the GitHub release.