nexB / scancode.io

ScanCode.io is a server to script and automate software composition analysis pipelines with ScanPipe pipelines. This project is sponsored by NLnet project https://nlnet.nl/project/vulnerabilitydatabase/ Google Summer of Code, nexB and others generous sponsors!
https://scancodeio.readthedocs.io
Apache License 2.0
95 stars 81 forks source link

Rethink current CHANGELOG as Release Notes #1075

Open tdruez opened 5 months ago

tdruez commented 5 months ago

The changelog can be automatically generated from the commits at release time.

What would be more interesting instead of maintaining the current changelog at https://github.com/nexB/scancode.io/blob/main/CHANGELOG.rst would be to provide "Release notes" including pertinent information about new features, new pipelines, deprecation, etc... Similar to Django's release notes https://docs.djangoproject.com/en/5.0/releases/5.0/

swastkk commented 5 months ago

Hey @tdruez I was thinking to work on this, the possible procedure would be

  1. Writing a Script for categorising the type of commit and addition of that detailed commit in the CHANGELOG.rst using the
  2. Adding the Script to run in the workflow file and automated Addition to the CHANGELOG.rst just like that in the https://github.com/nexB/scancode.io/releases
  3. After the PR is merged, detailed commit message will be in CHANGELOG explaining the CHanges made in the Codebase.

And that's it.

tdruez commented 5 months ago

And that's it.

Not exactly, my point is to have detailed notes along a release about what's new and what requires special attention for upgrading. Similar to https://docs.djangoproject.com/en/5.0/releases/5.0/

swastkk commented 4 months ago

And that's it.

Not exactly, my point is to have detailed notes along a release about what's new and what requires special attention for upgrading. Similar to https://docs.djangoproject.com/en/5.0/releases/5.0/

So that CHANGELOG would be hard coded since you are mentioning in https://docs.djangoproject.com/en/5.0/releases/5.0/ instead of that automatically generated from the PR's squashed commit having detailed description of the changes made in the codebase and automatically added in the CHANGELOG?

tdruez commented 4 months ago

My suggestion:

swastkk commented 4 months ago

I have a idea to automate this process like instead of having CHANGELOG , we should also go with the approach that the https://github.com/django/django/ has used of having https://github.com/django/django/tree/main/docs/releases with each file created on the new release with all this using a GitHub Action The GitHub Action will work at the time of release, take up the Target of the change branch, Tag of the version details and getting the commit details on that branch and then adding in the form of the release file or changes in the CHANGELOG.

tdruez commented 4 months ago

The content in https://github.com/django/django/tree/main/docs/releases seems to be manually added though.

swastkk commented 4 months ago

The content in https://github.com/django/django/tree/main/docs/releases seems to be manually added though.

But we can came up with something automated stuff, lemme try this on a empty repo of myself and if works i will implement over scancode.io whatsay?

tdruez commented 4 months ago

@swastkk I think you are missing my initial point:

The changelog can be automatically generated from the commits at release time. What would be more interesting instead of maintaining the current changelog at would be to provide "Release notes" including pertinent information about new features, new pipelines, deprecation, etc...

swastkk commented 4 months ago

Ya I understood that thing, you are saying like we use to maintain the ChangeLog on time to time basis but this changelog is easily generated at release time, so we have to develop a method to get the Changelog file updated on the release time or alternatively creating a New release file with version.md containing all the information about the changelog on version release.

swastkk commented 4 months ago

For Example

v33.1.0

A data migration is included to facilitate the migration of existing data. Only the new names are available in the web UI but the REST API and CLI are backward compatible with the old names. Issue #1044

swastkk commented 4 months ago

image

Implemented both approaches with GitHub action working on the

on:
  release:
    types: [published]

but with that on each version release, having detailed information about the changes made in the codebase. Which approch do you think suits the scancode project? For examplary purpose i took the release notes of scancode.io