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 changelog generation and commit message convention #30

Closed
dignifiedquire opened this issue Jul 25, 2016 · 12 comments
Closed

Add changelog generation and commit message convention #30

dignifiedquire opened this issue Jul 25, 2016 · 12 comments
Assignees

Comments

@daviddias
Copy link
Member

ref: ipfs/community#145

@victorb
Copy link
Member

victorb commented Jul 27, 2016

Semantic Release (wonderful utility for automatic package publishing) is using the Angular convention, worth looking into: https://github.com/semantic-release/semantic-release#default-commit-message-format

@dignifiedquire
Copy link
Member Author

@victorbjelkholm also look at the last link in the original issue, standard-version does something similar as far as I understand

@dignifiedquire
Copy link
Member Author

Nvm semantic-release is much more comprehensive, need to look at that, could be super nice for us

@victorb
Copy link
Member

victorb commented Jul 27, 2016

@dignifiedquire ah, that's true. standard-version mentions semantic-release over here: https://github.com/conventional-changelog/standard-version#how-is-standard-version-different-from-semantic-release

Seems like standard-version does a subset of what semantic-release does (like pushing and publishing)

@dignifiedquire
Copy link
Member Author

This is a rough draft of things I suggest to adapt, for making the release process as automated as possible while generating high quality releases.

  • Use the angular commit convention
    • enforced through a commit hook and a travis check (maybe gitcop or sth similar)
    • squash all commits into sensible units (this means 1 commit per PR in most cases)
    • strongly encourage the use of https://github.com/commitizen/cz-cli to make wrong commit messages less probable
  • Bump all modules to 1.0.0 to allow proper semver, with these rules
    • Bug fixes -> patch release
    • Features -> minor release
    • Breaking changes -> major release
  • Use the new aegir-release as described below

Steps for new aegir-release

  • Run lint
  • Run tests
  • Run build
  • Using conventional-changelog to generate a changelog
    • Manual review and changes to the changelog
  • git commit package.json CHANGELOG.md
  • Use recommended-bump to suggest the new version
  • git tag <version>
  • git push
  • Push changelog to github releases

Misc notes

  • Investigate using something like http://npmjs.org/listr to give a nice progress output
  • Make this task standalone so it can be used by others that do not use the rest of the aegirpipleline

@dignifiedquire
Copy link
Member Author

dignifiedquire commented Aug 1, 2016

Todos:

@dignifiedquire
Copy link
Member Author

First version is released in 7.0.0

@daviddias
Copy link
Member

daviddias commented Sep 7, 2016

What do we need to do to finish this one? Let's review it during the next sprint call (//cc @RichardLitt @flyingzumwalt)

@daviddias
Copy link
Member

This is done, right?

@dignifiedquire
Copy link
Member Author

@diasdavid still don't have commit validation on CI

@daviddias daviddias added the status/ready Ready to be worked label Dec 5, 2016
@daviddias daviddias added status/deferred Conscious decision to pause or backlog and removed status/ready Ready to be worked labels Jan 29, 2017
@daviddias daviddias mentioned this issue Jul 5, 2017
25 tasks
@dignifiedquire
Copy link
Member Author

I don't think commit validation on CI is particularly great, we can use the squash option to easily fix commits on merge

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

3 participants