foundry-rs / foundry

Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
https://getfoundry.sh
Apache License 2.0
8.31k stars 1.75k forks source link

Add and maintain a CHANGELOG #1165

Closed PaulRBerg closed 1 year ago

PaulRBerg commented 2 years ago

First things first: I recently started using Foundry for real after first dabbling with it a few months ago, and I absolutely love it so far! This is indeed ridiculously fast.

But then, it looks like Foundry has been through a major update (v0.2). I think it's nice that there is a high-level change log in the announcement article, but as an engineer I was looking for a more detailed list.

I know this is a chore and my issue might come across as annoying since there are so many other exciting things that you're already working on. But as consumers of this tool, we care about what's inside and when the logic changes we'd like to know both why and how. This is especially important in Ethereum due to immutability.

In terms of CHANGELOG standards, I can recommend the Common Changelog standard. You can find a boilerplate on keepachangelog.com.

Finally, unlike with the nightly releaser, the end-user changelog would best be maintained manually; I want to echo the reasons given here:

The purpose of a commit is to document one atomic step in the process by which the code evolves from one state to another. The purpose of a change log is to document the noteworthy differences between these states.

As is the difference between good comments and the code itself, so is the difference between a change log and the commit log: one describes the why, the other the how.

In other words, git commit messages will in most cases involve detailed plumbing that doesn't belong in a change log. Rather than require developers to write commit messages with information suitable for a change log, why not instead just require them to document their changes in one directly?

onbjerg commented 2 years ago

We will eventually maintain a changelog when we cut our first stable release - until then, I think it is just added development costs and makes us less agile.

We're still moving very fast and breaking things, and I think we'll keep doing that at least for a while. This is also the reason that we don't keep a lot of nightlies around; we want people to update regularly until we stabilize.

That's my take on it at least - curious to hear if @gakonst @mattsse have the same opinion.

PaulRBerg commented 2 years ago

Fair enough. In this case, maybe at least we could add a warning in the README to let users know that they should expect lots of breaking changes?

mds1 commented 1 year ago

I think this can be closed since there's now https://github.com/foundry-rs/foundry/blob/master/CHANGELOG.md and v1 will be released soon. Btw @Evalir seems there's a changelog standard linked above if you were interested in following that