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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Git Conventions #19

Open
wants to merge 20 commits into
base: master
from
Open

Git Conventions #19

wants to merge 20 commits into from

Conversation

@talon
Copy link
Owner

talon commented Feb 13, 2020

The Vision

A git CLI utility for writing conventional commits used to derive semantically versioned tags, that plays nicely with monorepos.

Background

commitizen (apart from being impossible for me to type correctly) relies too much on NPM conventions and requires more complex adapters to configure than is probably necessary, as evidenced by this one for lerna which right off the bat throws you into a lerna mess and isn't actively maintained.

Version 2.0.0 is compatible with lerna version 3 only, if you need support for lerna 2 (more specifically, lerna 2.0.0.beta.31).

Please note that this repository is not actively maintained as it's not actively used here. We are more than happy to accept PRs however. 馃榾

standard-version is great at deriving the version from the commits and it's likely possible to use it in a monorepo by utilizing the lifecycle scripts but since this depends on conventional commits I'm gonna put them together and trim it down.

Implementation

guttin these fishies with Occam's Razor 馃敧馃悷

git-conventions commit

will follow this specification. Out-of-the-box a sensible subset of commit types will be available no configuration required. For monorepos, when a commit affects a specific source(s) that will be identified as affects: [source(s)] in the commit footer.

git-conventions version

  • tests
  • implementation

will do the same kinda versioning logic as standard-version but it's only gonna tag the repo. Updating version files and/or generating CHANGELOGS should be apart of a release step. For monorepos, tags will take the shape of [source]@[version] where the versioning is done off only commits found that affects that directory

Preview: https://github.com/talon/javascript-registry/tree/feat/git-conventional/packages/git-conventions

talon added 3 commits Feb 13, 2020
鈥t/git-conventional
affects: @talon/git-conventions
affects: @talon/git-conventions
@talon

This comment has been minimized.

Copy link
Owner Author

talon commented Feb 15, 2020

affects: @talon/git-conventions
@talon talon self-assigned this Feb 15, 2020
talon added 13 commits Feb 16, 2020
affects: @talon/git-conventions

also added prompts for type, description, scope and body
affects: @talon/git-conventions

currently only one sources folder is supported, but you can customize the name! 馃槉
affects: @talon/git-conventions

BREAKING CHANGE:
remove footer and breaking
affects: @talon/git-conventions

vorpal used an old version of inquirer without the reactive API
switching to yargs + inquirer opened up the rxjs flow
which looks a lot better and is way easier to use
affects: @talon/git-conventions
affects: git-conventions
affects: git-conventions
TODOs to pave the way

affects: git-conventions
using git-conventions commit manually for now

affects:
BREAKING CHANGES: use git-conventions commit instead of the husky commit hook
rudimentary but ready to be sculpted

affects: git-conventions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant
You can鈥檛 perform that action at this time.