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

Add a CHANGELOG.md file in each package #6161

Open
MarcLoupias opened this issue Oct 30, 2024 · 3 comments
Open

Add a CHANGELOG.md file in each package #6161

MarcLoupias opened this issue Oct 30, 2024 · 3 comments

Comments

@MarcLoupias
Copy link

MarcLoupias commented Oct 30, 2024

Is your feature request related to a problem? Please describe.

Currently, checking changelog for a dedicated package is a real pain. The changelog for all package is concentrated in the GitHub release feature.

Let's say i use @std/log and @std/fs for a project and i want to check the changelog for theses packages only. I need to browse the entire release list and filter mentally to list the changes concerning my project. Horrible UX.

It was the same before jsr but the releases numbers and the packages numbers matches so it was easier to filter with message commit scope.

Describe the solution you'd like

Add a generated CHANGELOG.md file in each std root package with the changes related to each package only.

Describe alternatives you've considered

Currently, instead of browsing releases pages we can run a git log command from the repo itself.

For example :

$ git log --pretty=format:"* %H %s %Cgreen%d%Creset - %an, %ad" --date=short -- fs/
* 10ee73dbbcf6e55fca62d1dccb7c086911030f28 chore: release 2024.10.24 (#6145)  (tag: release-2024.10.24) - denobot, 2024-10-24
* c0427a02bbbaf3fb2fa32c001fa26f49529b9130 refactor(fs): fix uncaught errors in browsers (#6135)  - Parsa Yazdani, 2024-10-24
* eeb3c9b151bda01cc1241d30ae20e527e78d5ec8 chore: release 2024.09.24 (#6043)  (tag: release-2024.09.24) - denobot, 2024-09-24
* 0b2497f16e9d31e287f3336bd78fc95cbd248cfd fix: update codebase to work with Deno RC (#6018)  - Asher Gomez, 2024-09-20
* f84e735a9a4a304c6c3f4e0122ac39effaf38af8 docs(fs): clarify permissions requirements for `exists[Sync]()` (#5983)  - Asher Gomez, 2024-09-17
* 58dbbd6bd276d1056f86ef12aa8e034a6be83ca0 chore: enable `no-console` lint rule (#5975)  - Asher Gomez, 2024-09-13
* 43102325b7ceabf543311c02af1dc18ae9c374ab test: use `Deno.errors.NotCapable` where appropriate (#5935)  - Asher Gomez, 2024-09-11
* 67e9cfa0ffae278a5e9653e7548b9437368aadd8 chore: release 2024.09.04 (#5908)  (tag: release-2024.09.04) - denobot, 2024-09-04
* 4d4bd0eb92802b898436d1b8e969ca686da2c9d2 refactor(archive,async,cli,csv,dotenv,encoding,expect,fmt,front-matter,fs,http,internal,log,net,path,semver,testing,text,webgpu,yaml): enable `"exactOptionalPropertyTypes"` option (#5892)  - Kenta Moriuchi, 2024-09-04
* 2b3683b6fb1e3908ad0c3ba28e213f6fc3bebb5c chore: release 2024.08.26 (#5824)  (tag: release-2024.08.26) - denobot, 2024-08-26
* a8a1d42aa7eff784d2aa09dae56c85e4c3db30b4 refactor(fs): align additional error messages (#5802)  - Ian Bull, 2024-08-26
* 0e4f294cdf0238ae2b765ecbebae70a9a2306f26 chore: release 2024.08.02 (#5621)  (tag: release-2024.08.02) - denobot, 2024-08-02
* 606838bace84675f9adba8ee3549352f13f6d672 docs(fmt,fs,text,yaml): fix Markdown alerts (#5568)  - Asher Gomez, 2024-07-29
* e511eb05ce359744588e83dc78f23cdc9c507f8d docs(fs): fix incorrect examples for walk (#5559)  - ryu, 2024-07-27
* 031c32c96e254625ae3ca73abde5a8a6de8d66ff docs(fs): make `preserveTimestamps` note more prominent (#5543)  - Asher Gomez, 2024-07-25
* cb1e09bb8972a7b142dabd4dd377d7c848de468f chore(fs): release `fs@1.0.0` (#5214)  - Asher Gomez, 2024-07-25
* d6a6d8b806dc815f050eea3110b28cb392ed00ea BREAKING(fs): throw `Deno.errors.NotSupported` instead of `SubdirectoryMoveError` in `move[Sync]()` (#5532)  - Asher Gomez, 2024-07-25
* 0dc7ce1a1ca14180f00470de4f7328c028bfe884 BREAKING(fs): throw `Deno.errors.NotFound` instead of `WalkError` in `walk[Sync]()` (#5477)  - Asher Gomez, 2024-07-24
* c349da2e43307801f1549f14a4356ac2eb6b8c11 chore(fs): remove redundant constructor examples (#5511)  - Asher Gomez, 2024-07-23

But it is quite confusing as there is no tag related to the package version. It seems that starting with jsr support we have now a tag for global releases named release-yyyy.mm.dd that needs to be mapped with jsr packages version number.

That's what i have to said, maybe it is not the right place.

@kt3k
Copy link
Member

kt3k commented Nov 1, 2024

Releases.md includes all changes since 2021 in this repo. Does this work for your need?

@MarcLoupias
Copy link
Author

MarcLoupias commented Nov 1, 2024

That's what is published in what i call the "GitHub" release feature.

I will try to rephrase what i said to be more understandable.

Before the move to jsr (before the tag named start-jsr), we had a match between release name and packages version number. So it was easier to check the changelog between current version and wanted version.

Now we have a different naming pattern for release, tags are named release-yyyy.mm.dd, and packages have kept the semver version number but they have their own version number each.

It is a lot harder de read.

As a std consumer, before updating a dependency, i like to read the changelog. Let's say i want to update @std/fs from 0.229.3 to 1.0.5, i check the releases published in GitHub (or the release md file you have mentioned, it is the same) : It is harder to read now then before the jsr move because now release naming is different from package number.

Ultimately, i would like to have a CHANGELOG.md file in the @std/fs listing all the revisions for that package only, version per version. It would be a lot easier rather then doing it manually browsing version to version.

But maybe most of people update their deps blindly and don't care of such a feature, i just wanted to point it to deno/std authors ;)

@kt3k
Copy link
Member

kt3k commented Nov 4, 2024

Filtering out all std/fs changes from Releases.md shouldn't be that difficult. Again Releases.md includes all past releases/changes, and all std/fs changes are listed under the heading of the form @std/fs X.Y.Z. You should be able to list all fs changes by searching for std/fs in that single file.

It's possible to create CHANGELOG.md in each sub package, but it feels like unnecessary duplicate information to me

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

No branches or pull requests

2 participants