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

Build & Release - Conventional Commits & Changelog #105

Open
kgajowy opened this issue Jun 9, 2020 · 5 comments
Open

Build & Release - Conventional Commits & Changelog #105

kgajowy opened this issue Jun 9, 2020 · 5 comments
Labels
DX/CLI/Playground developer experience enhancement New feature or request

Comments

@kgajowy
Copy link
Contributor

kgajowy commented Jun 9, 2020

This suggestion may be potentially breaking for the current system but I believe it is worth the initial effort.

Issues/Automation to address:

  • force conventional commits (git-cz)
  • generate changelog using commits messages
  • easier release

A helper for newcomers to this standard - would be useful for new contributors to reduce the initial effort to get the submission right.

In addition to commitizen package, cz-conventional-changelog, and standard-versions packages, it's quite easy to make an automated way of generating changelog (based on commit messages) and publishing new versions.

The flow could look like:

  1. All commits to develop come with conventional commit messages, strictly related to given modules.
  2. When release time has come, use standard-version to bump package, build changelog, create the tag and publish to npm

Example of the output here

It may seem to be a little complicated but trust me - it's great automation made in an easy way. It reduces the need to manually manage What's new.

PS

All commits in PR are squashed on merge. Please use Conventional Commits when naming your PR.

There is no point in using conventional commits everywhere, as long as the PR is squashed (only the first one will be used). Please consider allowing to not squash if a PR touches multiple modules/areas and the changes/commits are correctly separated.

@czerwinskilukasz1
Copy link
Collaborator

czerwinskilukasz1 commented Jun 10, 2020

Hi Kamil,

Thanks for suggesting improvements :)

force conventional commits (git-cz)

I am for it. Conventional Commits + a hook for Github checking commit's format + commitizen package.

generate changelog using commits messages

I would put it on hold for the next two releases.

easier release

This is related to your proposed change to the branch flow, automatic versioning etc.
I would put it on hold for the next two releases.

Rationale:
AskQL is a new repo and I expect its number of issues, number of contributors, size of milestones etc. to change significantly for the time being. If we introduce a process, we should first know what issues we want to solve. While the characteristics of the repo and the behavior pattern of the contributors still change, I think it's too early to introduce processes which have heavy impact on the workflow or tie us up to a specific procedure.

The only change I would introduce soon is a standard for all the commit messages, which makes our log history much cleaner and meaningful.
Conventional Commits sounds like a great choice, a hook for checking the message format would help enforce this and the commitizen package would make it easier and more convenient for developers.

@czerwinskilukasz1
Copy link
Collaborator

@mhagmajer , what are your thoughts?

@czerwinskilukasz1
Copy link
Collaborator

@mhagmajer , any thoughts?

@czerwinskilukasz1 czerwinskilukasz1 added DX/CLI/Playground developer experience enhancement New feature or request labels Jun 26, 2020
@mhagmajer
Copy link
Contributor

Agree with all this except for the merge strategy - let's enforce one PR per feature/bug - it makes reviewing easier and faster

@czerwinskilukasz1
Copy link
Collaborator

Agree with all this except for the merge strategy - let's enforce one PR per feature/bug - it makes reviewing easier and faster

@mhagmajer Which message do you call "this"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DX/CLI/Playground developer experience enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants