linux-system-roles / auto-maintenance

Linux system roles wide automated repo maintenance
MIT License
25 stars 15 forks source link

ci: Generate changelog and get new release ver with conventional commits #266

Closed spetrosi closed 1 year ago

spetrosi commented 1 year ago

@richm I removed have_bug_fixes and have_other_changes that you suggested adding because I manage newlines in format_commit, please do a final review.

richm commented 1 year ago

I renamed the master branch to main

git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
spetrosi commented 1 year ago

@richm One more topic maybe for a larger discussion, it's in my newest commit. We can enable Squash and merge on all repos, this might introduce commits not complying with conv commits format in the case when a user e.g. does a typo when submitting the squashed commit via GitHub web UI. To avoid this, we can verify that commits indeed follow the format in role-make-version-changelog.sh. The drawback is that it requires npm rpm, @commitlint/cli and @commitlint/config-conventional npm packages. @commitlint/cli npm packages can be installed globally (with npm install -g). @commitlint/config-conventional is required in the working directory (installing with --global doesn't work) due to https://github.com/conventional-changelog/commitlint/issues/613 which is not likely to be fixed ever soon. Good news is that it doesn't require installing with sudo so the script can do it.

richm commented 1 year ago

I guess rebase and then we can merge

richm commented 1 year ago

@richm One more topic maybe for a larger discussion, it's in my newest commit. We can enable Squash and merge on all repos, this might introduce commits not complying with conv commits format in the case when a user e.g. does a typo when submitting the squashed commit via GitHub web UI. To avoid this, we can verify that commits indeed follow the format in role-make-version-changelog.sh. The drawback is that it requires npm rpm, @commitlint/cli and @commitlint/config-conventional npm packages. @commitlint/cli npm packages can be installed globally (with npm install -g). @commitlint/config-conventional is required in the working directory (installing with --global doesn't work) due to conventional-changelog/commitlint#613 which is not likely to be fixed ever soon. Good news is that it doesn't require installing with sudo so the script can do it.

For example, with python pip, I can do something like pip install something --user and it will be installed in ~/.local, which means no sudo, but it means I need to put ~/.local/bin in my $PATH. Is there something like that with npm ?

richm commented 1 year ago

Is it still possible to run this the old way, where I can manually edit CHANGELOG.md and submit a PR?

spetrosi commented 1 year ago

Is it still possible to run this the old way, where I can manually edit CHANGELOG.md and submit a PR?

You still can manually enter a new tag. The script still opens CHANGELOG.md for editing after putting all items in the respective category. And I didn't change how the script creates PRs.