Skip to content
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

Improve changelog template #1028

Closed
arboleya opened this issue May 30, 2023 · 14 comments · Fixed by #1872
Closed

Improve changelog template #1028

arboleya opened this issue May 30, 2023 · 14 comments · Fixed by #1872
Assignees
Labels
chore Issue is a chore

Comments

@arboleya
Copy link
Member

arboleya commented May 30, 2023

A few notes:

  • The version is mentioned only once, at the top
  • Changes are grouped by patch|minor|major
  • Empty groups can be hidden (like major, in the example below)
  • For each commit, there's a list of the packages affected by it

Release - 0.43.1

Patch:

  • Support EVM Address type, by @danielbate (See #995)
    • @fuel-ts/address
    • @fuel-ts/interfaces
    • @fuel-ts/abi-coder
  • Another Patch Message.. @arboleya (See #NNN)
    • @fuel-ts/abc
    • @fuel-ts/xyz

Minor:

Breaking Changes:

Here we'd repeat only the breaking ones.


Originally posted by @arboleya in #1022 (comment)

@Dhaiwat10
Copy link
Member

I'll take care of this along with #970

@Dhaiwat10 Dhaiwat10 self-assigned this Jun 1, 2023
@arboleya arboleya added settings chore Issue is a chore labels Dec 7, 2023
@Dhaiwat10 Dhaiwat10 removed their assignment Dec 11, 2023
@arboleya
Copy link
Member Author

@arboleya
Copy link
Member Author

arboleya commented Feb 5, 2024

We really need to devise a solution to these noisy changelogs.

@arboleya
Copy link
Member Author

arboleya commented Feb 5, 2024

@arboleya arboleya changed the title Shrink custom changelog template even more Improve changelog template Feb 9, 2024
@nedsalk nedsalk self-assigned this Mar 10, 2024
@nedsalk
Copy link
Contributor

nedsalk commented Mar 12, 2024

Here's a bit of a different take but in the same spirit of reducing noise:

  • There are no groupings by patch|minor|major because the title of the changelog already contains what type of update it is (RELEASE - 0.77.0 is a minor update),
  • All the affected packages of the release are listed once under the title for completion's sake,
  • Changes are grouped into breaking and non-breaking and each change is shown only once,
  • Changes are sub-grouped into features, fixes, refactors, chores, and docs,
  • Breaking changes are formatted the same way as non-breaking changes,
  • The affected packages are put into a one-liner instead of a bullet point list (looks less cluttered)

Also note that I didn't format the changes as bullet points. That is because the changeset's description can have bullet points themselves, be multiline, etc. All of its formatting would be affected by a bullet point dash before it.


RELEASE - 0.77.0

fuels, @fuel-ts/abi-coder, @fuel-ts/account, @fuel-ts/address, @fuel-ts/contract, @fuel-ts/crypto, @fuel-ts/errors, @fuel-ts/hasher, @fuel-ts/merkle, @fuel-ts/transactions

Breaking Changes

Yay, no breaking changes!

Non-breaking Changes

Features

Added requestMiddleware to ProviderOptions as a way to allow the user the modification of each fetch call's request, by @nedsalk (see #1822)
(packages: @fuel-ts/account)

Fixes

fix: disallow transferring <= 0 amounts, by @Dhaiwat10 (see #1827)
(packages: @fuel-ts/account, @fuel-ts/errors)

Chores

Migrate implementations of sha256, keccak and scrypt to @noble/hashes, by @danielbate (see #1786)
(packages: @fuel-ts/abi-coder, @fuel-ts/account, @fuel-ts/address, @fuel-ts/contract, @fuel-ts/crypto, @fuel-ts/errors, @fuel-ts/hasher, @fuel-ts/merkle, @fuel-ts/transactions)

Add try/catch block when parsing GraphQL stream data response, by @Torres-ssf (see #1839)
(packages: @fuel-ts/account, @fuel-ts/errors)

@arboleya
Copy link
Member Author

arboleya commented Mar 15, 2024

I liked the new grouping. 👌

But let's try to reduce noise even more.

A few assumptions:

  1. PR titles should be short and sweet
  2. Changesets must follow the PR title (and nothing else 👈 )
  3. PR Descriptions may contain, in this order:
    1. The issue it is closing
    2. Breaking change notes
    3. Summary, notes, details, etc.

See:

  • PR example below, inspired by #1826
  • Changelog example in the next comment

Breaking

// old API
const predicate = new Predicate(bytecode, provider, abi, configurableConstants);

// new API
const predicate = new Predicate({
  bytecode,
  abi, // optional
  provider,
  inputData, // optional
  configurableConstants, // optional
});

Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

@arboleya
Copy link
Member Author

arboleya commented Mar 15, 2024

Release - 0.43.1

Breaking


Features

Fixes

  • #1847 Handling empty changesets in release4 workflow, by @nedsalk

@petertonysmith94
Copy link
Contributor

petertonysmith94 commented Mar 15, 2024

#1028 (comment)

This decreases the noise massively and better summarises the release into a small digest.

Is it worth adding all the affected packages for the release as a whole? Like @nedsalk had here.

Release - 0.43.1

fuels, @fuel-ts/abi-coder, @fuel-ts/account, @fuel-ts/address, @fuel-ts/contract, @fuel-ts/crypto, @fuel-ts/errors, @fuel-ts/hasher, @fuel-ts/merkle, @fuel-ts/transactions
...
...

@Torres-ssf
Copy link
Contributor

Torres-ssf commented Mar 15, 2024

Release - 0.43.1

Breaking

  • Features:

    • #1356 Add launchTestNode utility, by @nedsalk
    • #1826 Improve Predicate DX; accepting data in the constructor,
      ...

I really liked this proposed version. It's very clean and easy to read

@arboleya
Copy link
Member Author

@petertonysmith94 I don't think we should list the affected packages in the release notes.

We bump all packages together on each release anyway; it's like everything changed.

However, each package will still have its changelog file.

@petertonysmith94
Copy link
Contributor

@arboleya All very valid points. I retract my previous suggestion.

@nedsalk
Copy link
Contributor

nedsalk commented Mar 15, 2024

We can differentiate between breaking and non-breaking changes with $\color{red}{\bf{(!)}}$, put the breaking changes first and simplify it further:

Release - 0.43.1

Features

Fixes

Chores

@arboleya
Copy link
Member Author

I see value in grouping all breaks and using a text version; it appears more neutral.

The red icons also look somewhat off to me.

@nedsalk
Copy link
Contributor

nedsalk commented Mar 15, 2024

I see value in grouping all breaks

You're right. I'll be implementing your version in the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chore Issue is a chore
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants