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

feat: use semver.org as a basis for conventionalcommits.org #2

Merged
merged 15 commits into from
Apr 8, 2017

Conversation

bcoe
Copy link
Contributor

@bcoe bcoe commented Apr 3, 2017

Using semver.org as a jumping off point, @jameswomack and I sat down this weekend and took a stab at some of the initial content for conventionalcommits.org (which I've bought the domain name for).

Here's what I think the next steps are:

  • the specification is rough (I wanted something as simple as possible, but that the existing angular convention would fit within) I would love help with fleshing things out (and opinions on the general direction) Folks should provide feedback about content in ./index.md.
  • I've bought conventionalcommits.org, but need to put up a redirector with TLS for it ... Does anyone have an opinion about the easiest/cheapest (ideally free_ist_) way to terminate SSL for a GitHub page? -- this is made somewhat more complicated by the fact that I'm not using the conventional-changelog.github.io URL I believe (I think some sites like CloudFlare assume you are using this canonical address).
  • Once we have an initial spec up that we're happy with, I was planning on updating standard-version's documentation to reference this spec in its documentation (@evocateur perhaps we could also update the docs for the --conventional-commits flag we added to lerna?, and @jameswomack perhaps you could update unleash's docs?).
  • Do we want to use something other than Jekyll? @JaKXz want to take a stab at doing something in React with the same feature set (the ability to translate to multiple languages, support multiple spec versions mainly, linkable section headings).

I'm excited about this spec! I think we're putting a flag in the ground for the community, and regardless of the release management tool people use, this will help encourage more standardization between projects.

Look forward to feedback, CC: @JaKXz, @evocateur, @Tapppi, @stevemao, @jameswomack, @boennemann, @ajoslin.

@stevemao
Copy link
Member

stevemao commented Apr 3, 2017

Also cc @btford @vojtajina @pkozlowski-opensource @pdehaan @petebacondarwin @mhevery @IgorMinar (early developers of conventional-changelog)

@petebacondarwin
Copy link

FYI I recently wrote a new changelog generator: github.com/petebacondarwin/changez
with an Angular blueprint: https://github.com/petebacondarwin/changez-angular.

@jameswomack
Copy link
Collaborator

@bcoe I think the type vs. body|footer clarifications in the spec were quite helpful

@jameswomack
Copy link
Collaborator

Once we have an initial spec up that we're happy with...

I'll update the Unleash docs as soon as were ready here @bcoe

@bcoe
Copy link
Contributor Author

bcoe commented Apr 3, 2017

@jameswomack which part do you think needs clarification (regarding type, vs., body, vs. footer) mind perhaps taking a stab at the copy.

@bcoe
Copy link
Contributor Author

bcoe commented Apr 4, 2017

I ended up just paying for a $7 dyno on Heroku, and getting a free Let's Encrypt certificate (this sort of thing is a lot easier than it used to be apparently).

https://conventionalcommits.org/

Is up, but let's not advertise it to anyone until we do a few rounds of editing on this site.


<h2 id="whos-behind-thisinspired-this">Who’s Behind This/Inspired This?</h2>

<p>The Conventional Commit standard is inspired by the <a href="https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit">Angular Commit Guidelines</a>, which
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 feel free to submit a patch with this; otherwise I'll do it after the work day today.

A scope may be provided to a commit’s type, to provide additional contextual information and
is contained within parenthesis, e.g., <code class="highlighter-rouge">feat(parser): adds ability to parse arrays</code>.</p>

<p>Commit <em>types</em> other than <code class="highlighter-rouge">fix:</code> and <code class="highlighter-rouge">feat:</code> are allowed, for example <a href="https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format">the angular convention</a> recommends <code class="highlighter-rouge">docs:</code>, <code class="highlighter-rouge">style:</code>, <code class="highlighter-rouge">refactor:</code>, <code class="highlighter-rouge">perf:</code>, <code class="highlighter-rouge">test:</code>, <code class="highlighter-rouge">chore:</code>, but these tags are
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.
Also should we use "Angular" instead of "angular" throughout the site?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stevemao sounds good 👍 I will loop back through and fix this.

@stevemao
Copy link
Member

stevemao commented Apr 4, 2017

@bcoe I'm not sure if it's fair to pay everything from your own pocket? How do other sites like semver.org work?

@stevemao
Copy link
Member

stevemao commented Apr 4, 2017

@petebacondarwin Just curious if the Angular team would be interested in this project? EG: pointing Commit Message Guidelines in your docs to this site instead of this Google docs. The site should cover all the information in your docs.

I'm not sure why you created another changelog generator, but if conventional-changelog doesn't do what you expect, let us know. I want to echo myself that this project was actually first started by your team so this should still serve you guys. We want to offload your work of changelog generation and maintaining Commit Message Guidelines :)

@stevemao
Copy link
Member

stevemao commented Apr 4, 2017

Oh, we should probably mention commitizen, which is a very popular tool to generate conventional commits. cc @LinusU @jimthedev @kentcdodds

@jimthedev
Copy link

@stevemao @bcoe Hi and thanks for including us.

One thing to note about commitizen is that we are a tool to commit but also have userland adapters which basically allows the maintainer to decide what style of commit messages their CI requires / expects. Adapters allow people to define their own prompts that commiters will see when doing a commit in that repo. Most* people use the cz-conventional-changelog adapter. It basically follows the original angular commit style. With that said, there are adapters that use emoji, Jira smart commit formatting and other internal styles for commit messages. This means that although much of the tooling relies upon you using cz-conventional-changelog and the angular style of conventional commits, not all do. You can look for commitizen adapters and probably get a pretty good idea of the various ways people are styling their commits outside of conventional commits. If you only really care about the cz-conventional-changelog/angular style then check out https://github.com/commitizen/cz-conventional-changelog.

The hardest part has been that I'd love to add metadata into the spec so that we could allow people to use their own convention/adapter but still be able to label intent behind a given field. This would still let us parse out the intent behind it while allowing some level of customization. The trouble is that as you add more markup, the less likely it is possible for those not using tools to be able to contribute by hand using regular git commit. We've walked a fine line by basically saying that you can have the flexibility of commitizen but you're on your own when it comes to integrating with tools like semantic-release or others if you use anything other than cz-conventional-changelog / angular.

@bcoe
Copy link
Contributor Author

bcoe commented Apr 5, 2017

@jimthedev I hear where you're coming from ... a big part of why I think "Conventional Commits" should be a trimmed down version of the angular convention, is to leave more room for flexibility., e.g., we only really care about:

feat:, fix:, BREAKING CHANGE:, and having a description on the commit (this wouldn't exclude descriptions that are largely emoji. 😄 😉 👻 )

Any thoughts about edits, wording changes, compromises, etc., we could make that would better suit your use-case?

@bcoe bcoe merged commit dbaf1fe into master Apr 8, 2017
@bcoe bcoe deleted the conventional-commits-spec branch April 8, 2017 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants