Skip to content

Introducing package CHANGELOGs #131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Feb 10, 2021

Conversation

ycombinator
Copy link
Contributor

@ycombinator ycombinator commented Feb 8, 2021

What does this PR do?

This PR enhances the package spec to require CHANGELOG.yml files at the root folder of every package.

Why is it important?

So package consumers can track changes to packages across versions.

Checklist

Related issues

@elasticmachine
Copy link

elasticmachine commented Feb 8, 2021

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: Pull request #131 updated

  • Start Time: 2021-02-10T14:29:15.964+0000

  • Duration: 2 min 2 sec

  • Commit: ebe7262

Trends 🧪

Image of Build Times

@ycombinator ycombinator mentioned this pull request Feb 8, 2021
8 tasks
@ycombinator ycombinator requested a review from mtojek February 8, 2021 21:12
@ycombinator ycombinator marked this pull request as ready for review February 8, 2021 21:12
Copy link
Contributor

@mtojek mtojek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Looking forward to seeing this in action.

@ycombinator
Copy link
Contributor Author

ycombinator commented Feb 9, 2021

@mtojek Thanks for reviewing this PR but I thought of a couple of things after I put up this PR so I wanted to raise them here and get your opinions:

  1. According to the current implementation in this PR, the changelog.yml file must go at the root folder of the package. I also considered adding it to the docs folder but decided against it as I thought we should keep the docs folder for any human-readable formats like .md. I can imagine, in the future, elastic-package build generating a docs/changelog.md file from changelog.yml if we have a use case for it.

  2. According to the current implementation in this PR, the changelog.yml file contains changes for all versions of the package. An alternative approach would be for the changelog.yml file to contain changes only for the current version of the package. This would have some advantages and disadvantages:

    • Advantage: every package version does not have to contain it's own changelog entries and also changelog entries from past package versions. If a package is released frequently, the changelog.yml in each subsequent version would not grow larger and larger over time.
    • Advantage: the package author would not need to repeat the version in the changelog.yml from the manifest.yml. We can simply assume that the contents of changelog.yml apply to the version mentioned in the manifest.yml.
    • Disadvantage: when bumping up a package version, the package author would need to remember to clear out the existing changelog.yml and start with a clean slate for the new version.
    • Disadvantage: not sure if this is a disadvantage per se, but if a client (e.g. the Fleet UI) wants to consume the entire set of changes between two versions of a package or for all versions of a package, we would need a mechanism to stitch together changelogs from individual package versions into a larger list. This could be done via a new Package Registry API.

@mtojek
Copy link
Contributor

mtojek commented Feb 10, 2021

According to the current implementation in this PR, the changelog.yml file must go at the root folder of the package. I also considered adding it to the docs folder but decided against it as I thought we should keep the docs folder for any human-readable formats like .md. I can imagine, in the future, elastic-package build generating a docs/changelog.md file from changelog.yml if we have a use case for it.

Most likely it's personal preference, but it's easier to find if there is a changelog package if it's in the root, close to the README.md. I'm fine with other solution too (put it in docs/).

According to the current implementation in this PR, the changelog.yml file contains changes for all versions of the package. An alternative approach would be for the changelog.yml file to contain changes only for the current version of the package. This would have some advantages and disadvantages:

I think it might be easier to keep the changelog file additive and don't clean it before releases. Actually it might be convenient not to jump over versions to check when a feature has been released.

@ycombinator
Copy link
Contributor Author

Thanks for the feedback, @mtojek. Based on it, I'm going with the changes in this PR as-is.

@ycombinator ycombinator merged commit 3f48d5a into elastic:master Feb 10, 2021
@ycombinator ycombinator deleted the pkg-changelogs branch February 10, 2021 15:22
@ruflin
Copy link
Collaborator

ruflin commented Feb 15, 2021

Thanks for getting this in. Looking forward to see this showing up in the packages.

rw-access pushed a commit to rw-access/package-spec that referenced this pull request Mar 23, 2021
* Remove details

* Fixing more typos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants