Forgot the most relevant point: it can automatically include the generated 
release notes in the git tag that is generated which translates to release 
notes when pushed.

On Fri, Jan 13 2023 at 9:31 AM, Zach Daniel < zachary.s.dan...@gmail.com > 
wrote:

> 
> My library git_ops https://github.com/zachdaniel/git_ops is a native
> elixir solution for managing a change log with tags for releases. Im sure
> it could be improved, but it’s a solid foundation that a lot of people are
> using today. Plus, the conventional commit format is a well known already
> specified pattern: https://www.conventionalcommits.org/en/v1.0.0/
> 
> 
> It provides a mix task that automatically determines the next version
> based on the types of commits, and writes any relevant commits to a
> changelog file.
> 
> 
> In standardizing the changelog practices, you could also standardize the
> commit/next version practices.
> 
> 
> 
> 
> On Fri, Jan 13 2023 at 6:28 AM, Jonatan Männchen < jona...@maennchen.ch >
> wrote:
> 
>> Hi Everyone,
>> 
>> I had a discussion with Andrea (@whatyouhide) about how to handle
>> changelogs in elixir itself as well as core libraries.The way how those
>> libraries implement changelogs is important both to auto-discovery of
>> changes with auto updating tools like renovate and also because it is a
>> place for guidance / inspiration for independent library creators.
>> 
>> 
>> This proposal is only about the mechanism of publishing changelogs. It is
>> not about the contents.
>> 
>> 
>> *Current state:*
>> 
>> 
>> 
>> * Core
>> 
>> * Elixir
>> 
>> * per minor release: CHANGELOG.md file
>> * GitHub release is automatically created
>> * Artifacts are stored in release
>> * manual copy of text into GitHub release
>> 
>> 
>> 
>> * ExDoc
>> 
>> * global CHANGELOG.md file
>> * manual copy of entry into GitHub releases
>> 
>> 
>> 
>> * GenStage
>> 
>> * global CHANGELOG.md file
>> * no GitHub releases
>> 
>> 
>> 
>> * ElixirMake
>> 
>> * global CHANGELOG.md file
>> * no GitHub releases
>> 
>> 
>> 
>> 
>> 
>> 
>> * Phoenix
>> 
>> * per minor release CHANGELOG.md
>> * some GitHub releases were created, not up-to-date
>> 
>> 
>> 
>> * Tzdata
>> 
>> * global CHANGELOG.md
>> * no GitHub releases
>> 
>> 
>> 
>> * Jason
>> 
>> 
>> * global CHANGELOG.md
>> 
>> * manual GitHub releases
>> 
>> 
>> 
>> 
>> * Plug Cowboy
>> 
>> * per major version CHANGELOG.md
>> 
>> * manual GitHub releases
>> 
>> 
>> 
>> 
>> * Telemetry
>> 
>> * global CHANGELOG.md
>> * outdated GitHub releases
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> *Possibilities for standardization:* (i can think of, reply with others if
>> you think something is missing)
>> 
>> 
>> 
>> 
>> * Only CHANGELOG.md
>> 
>> * Changelogs are written by hand and not published via GitHub releases
>> * Drawbacks
>> 
>> * Hard to automatically discover changes (for example Renovate Bot)
>> * not as well integrated in GitHub itself as GitHub releases
>> * does not support extra artifacts like binaries
>> 
>> 
>> 
>> * Advantage
>> 
>> * simple
>> * no extra manual labor
>> 
>> 
>> 
>> 
>> 
>> 
>> * CHANGELOG.md + GitHub releases manual copy
>> 
>> * On release the CHANGELOG.md file is extended with no information. After
>> the release the notes are copied over into a new GitHub release manually.
>> * Drawbacks
>> 
>> * Needs extra manual labor
>> * Entries can be missing because people forgot to do it
>> 
>> 
>> 
>> 
>> 
>> 
>> * CHANGELOG.md & Automated GitHub release note
>> 
>> * On release the CHANGELOG.md file is extended and a GitHub workflow will
>> parse the CHANGELOG.md and use the text to create a release.
>> * Drawbacks
>> 
>> * Introduces some complexity & maintenance by adding CI workflows
>> 
>> 
>> 
>> 
>> 
>> 
>> * GitHub releases & automatic appending of CHANGELOG.md file with release
>> notes
>> 
>> * To release a person would create a GitHub release and a workflow would
>> automatically prepend the changes to the CHANGELOG.md file
>> * Drawbacks
>> 
>> * Same as the option before
>> 
>> * Workflow is more complicated because it would need to commit code by
>> itself
>> * Imposes a more rigid process on the release workflow while other options
>> are more flexible.
>> 
>> 
>> 
>> 
>> 
>> 
>> * Only GitHub releases
>> 
>> * Changes are only published via GitHub releases
>> * Drawbacks
>> 
>> * not portable if the community ever migrates away from GitHub
>> * the CHANGELOG.md file does either not exist in published libraries or
>> would need to be generated on demand out of the releases
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> *My personal favorite solution so far:*
>> *
>> *
>> CHANGELOG.md & Automated GitHub release note
>> 
>> 
>> The reason for that preference is that it is relatively easy to automate
>> and that it offers the best if both worlds.
>> 
>> 
>> *Implementation*
>> *
>> * I’m happy to provide a shared action as well as PRs for all core
>> libraries.
>> 
>> 
>> Such a shared action could possibly be hosted at ErlEF since it could be a
>> „community recommendation“.
>> 
>> 
>> Thanks & Best,
>> Jonatan
>> 
>> 
>> 
>> 
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-core/7744dfd3-e94e-45ed-bb10-ca6d5c732550n%40googlegroups.com
>> (
>> https://groups.google.com/d/msgid/elixir-lang-core/7744dfd3-e94e-45ed-bb10-ca6d5c732550n%40googlegroups.com?utm_medium=email&utm_source=footer
>> ).
>> 
>> 
> 
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/lcumb1t9.9c802f47-0dde-47f3-9483-1e24ef1612b5%40we.are.superhuman.com.

Reply via email to