feat: enable BREAKING with all types (#11)

This commit is contained in:
James J. Womack 2017-05-04 22:34:01 -07:00 committed by Benjamin E. Coe
parent dbaf1febd1
commit 67553aa72a
27 changed files with 334 additions and 1492 deletions

View File

@ -8,8 +8,9 @@ languages:
versions:
- 1.0.0-beta
- 1.0.0-beta.1
current_version: 1.0.0-beta
current_version: 1.0.0-beta.1
# Default author, for when none is set
author: Benjamin Coe

View File

@ -1 +0,0 @@
conventionalcommits.org

View File

@ -1,28 +0,0 @@
# ConventionalCommits.org
This repo is the home of the Conventional Commits specification.
## Repo Layout
* `./index.md`: contains the current version of the specification.
* `./spec`: contains past versions of the specification.
* `./lang`: contains various translations of the specification.
## Contributing
We'd love your help refining the language of this specification,
fixing typos, or adding more translations. Please don't hesitate
to send a pull request.
### Adding a translation
1. Create a new folder in `lang/` with the appropriate language tag.
2. Add a translated `index.md` to that folder.
3. Add a translated `spec/vX.X.X.md` for the latest spec to that folder.
4. Ensure all files have the appropriate `title` and `language` front matter (see others as an example).
5. Add the language to the `_config.yml` file.
## Thank you semver.org
We used [semver.org](https://github.com/mojombo/semver.org) as a blueprint for
both the website and structure of this specification.

View File

@ -1,35 +0,0 @@
/* -----------------------------------------------------------------------
Blueprint CSS Framework 0.9
http://blueprintcss.org
* Copyright (c) 2007-Present. See LICENSE for more info.
* See README for instructions on how to use Blueprint.
* For credits and origins, see AUTHORS.
* This is a compressed file. See the sources in the 'src' directory.
----------------------------------------------------------------------- */
/* ie.css */
body {text-align:center;}
.container {text-align:left;}
* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {display:inline;overflow-x:hidden;}
* html legend {margin:0px -8px 16px 0;padding:0;}
sup {vertical-align:text-top;}
sub {vertical-align:text-bottom;}
html>body p code {*white-space:normal;}
hr {margin:-8px auto 11px;}
img {-ms-interpolation-mode:bicubic;}
.clearfix, .container {display:inline-block;}
* html .clearfix, * html .container {height:1%;}
fieldset {padding-top:0;}
textarea {overflow:auto;}
input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;}
input.text:focus, input.title:focus {border-color:#666;}
input.text, input.title, textarea, select {margin:0.5em 0;}
input.checkbox, input.radio {position:relative;top:.25em;}
form.inline div, form.inline p {vertical-align:middle;}
form.inline label {position:relative;top:-0.25em;}
form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;}
button, input.button {position:relative;top:0.25em;}

View File

@ -1,29 +0,0 @@
/* -----------------------------------------------------------------------
Blueprint CSS Framework 0.9
http://blueprintcss.org
* Copyright (c) 2007-Present. See LICENSE for more info.
* See README for instructions on how to use Blueprint.
* For credits and origins, see AUTHORS.
* This is a compressed file. See the sources in the 'src' directory.
----------------------------------------------------------------------- */
/* print.css */
body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
.container {background:none;}
hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
hr.space {background:#fff;color:#fff;visibility:hidden;}
h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
code {font:.9em "Courier New", Monaco, Courier, monospace;}
a img {border:none;}
p img.top {margin-top:0;}
blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
.small {font-size:.9em;}
.large {font-size:1.1em;}
.quiet {color:#999;}
.hide {display:none;}
a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}

View File

@ -1,257 +0,0 @@
/* -----------------------------------------------------------------------
Blueprint CSS Framework 0.9
http://blueprintcss.org
* Copyright (c) 2007-Present. See LICENSE for more info.
* See README for instructions on how to use Blueprint.
* For credits and origins, see AUTHORS.
* This is a compressed file. See the sources in the 'src' directory.
----------------------------------------------------------------------- */
/* reset.css */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
body {line-height:1.5;}
table {border-collapse:separate;border-spacing:0;}
caption, th, td {text-align:left;font-weight:normal;}
table, td, th {vertical-align:middle;}
blockquote:before, blockquote:after, q:before, q:after {content:"";}
blockquote, q {quotes:"" "";}
a img {border:none;}
/* typography.css */
html {font-size:100.01%;}
body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
h2 {font-size:2em;margin-bottom:0.75em;}
h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
h6 {font-size:1em;font-weight:bold;}
h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
p {margin:0 0 1.5em;}
p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
a:focus, a:hover {color:#000;}
a {color:#009;text-decoration:underline;}
blockquote {margin:1.5em;color:#666;font-style:italic;}
strong {font-weight:bold;}
em, dfn {font-style:italic;}
dfn {font-weight:bold;}
sup, sub {line-height:0;}
abbr, acronym {border-bottom:1px dotted #666;}
address {margin:0 0 1.5em;font-style:italic;}
del {color:#666;}
pre {margin:1.5em 0;white-space:pre;}
pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
li ul, li ol {margin:0;}
ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
ul {list-style-type:disc;}
ol {list-style-type:decimal;}
dl {margin:0 0 1.5em 0;}
dl dt {font-weight:bold;}
dd {margin-left:1.5em;}
table {margin-bottom:1.4em;width:100%;}
th {font-weight:bold;}
thead th {background:#c3d9ff;}
th, td, caption {padding:4px 10px 4px 5px;}
tr.even td {background:#e5ecf9;}
tfoot {font-style:italic;}
caption {background:#eee;}
.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
.hide {display:none;}
.quiet {color:#666;}
.loud {color:#000;}
.highlight {background:#ff0;}
.added {background:#060;color:#fff;}
.removed {background:#900;color:#fff;}
.first {margin-left:0;padding-left:0;}
.last {margin-right:0;padding-right:0;}
.top {margin-top:0;padding-top:0;}
.bottom {margin-bottom:0;padding-bottom:0;}
/* forms.css */
label {font-weight:bold;}
fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
legend {font-weight:bold;font-size:1.2em;}
input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
input.text, input.title {width:300px;padding:5px;}
input.title {font-size:1.5em;}
textarea {width:390px;height:250px;padding:5px;}
input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
form.inline {line-height:3;}
form.inline p {margin-bottom:0;}
.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
.error a {color:#8a1f11;}
.notice a {color:#514721;}
.success a {color:#264409;}
/* grid.css */
.container {width:950px;margin:0 auto;}
.showgrid {background:url(src/grid.png);}
.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
.last, div.last {margin-right:0;}
.span-1 {width:30px;}
.span-2 {width:70px;}
.span-3 {width:110px;}
.span-4 {width:150px;}
.span-5 {width:190px;}
.span-6 {width:230px;}
.span-7 {width:270px;}
.span-8 {width:310px;}
.span-9 {width:350px;}
.span-10 {width:390px;}
.span-11 {width:430px;}
.span-12 {width:470px;}
.span-13 {width:510px;}
.span-14 {width:550px;}
.span-15 {width:590px;}
.span-16 {width:630px;}
.span-17 {width:670px;}
.span-18 {width:710px;}
.span-19 {width:750px;}
.span-20 {width:790px;}
.span-21 {width:830px;}
.span-22 {width:870px;}
.span-23 {width:910px;}
.span-24, div.span-24 {width:950px;margin-right:0;}
input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
input.span-1, textarea.span-1 {width:18px!important;}
input.span-2, textarea.span-2 {width:58px!important;}
input.span-3, textarea.span-3 {width:98px!important;}
input.span-4, textarea.span-4 {width:138px!important;}
input.span-5, textarea.span-5 {width:178px!important;}
input.span-6, textarea.span-6 {width:218px!important;}
input.span-7, textarea.span-7 {width:258px!important;}
input.span-8, textarea.span-8 {width:298px!important;}
input.span-9, textarea.span-9 {width:338px!important;}
input.span-10, textarea.span-10 {width:378px!important;}
input.span-11, textarea.span-11 {width:418px!important;}
input.span-12, textarea.span-12 {width:458px!important;}
input.span-13, textarea.span-13 {width:498px!important;}
input.span-14, textarea.span-14 {width:538px!important;}
input.span-15, textarea.span-15 {width:578px!important;}
input.span-16, textarea.span-16 {width:618px!important;}
input.span-17, textarea.span-17 {width:658px!important;}
input.span-18, textarea.span-18 {width:698px!important;}
input.span-19, textarea.span-19 {width:738px!important;}
input.span-20, textarea.span-20 {width:778px!important;}
input.span-21, textarea.span-21 {width:818px!important;}
input.span-22, textarea.span-22 {width:858px!important;}
input.span-23, textarea.span-23 {width:898px!important;}
input.span-24, textarea.span-24 {width:938px!important;}
.append-1 {padding-right:40px;}
.append-2 {padding-right:80px;}
.append-3 {padding-right:120px;}
.append-4 {padding-right:160px;}
.append-5 {padding-right:200px;}
.append-6 {padding-right:240px;}
.append-7 {padding-right:280px;}
.append-8 {padding-right:320px;}
.append-9 {padding-right:360px;}
.append-10 {padding-right:400px;}
.append-11 {padding-right:440px;}
.append-12 {padding-right:480px;}
.append-13 {padding-right:520px;}
.append-14 {padding-right:560px;}
.append-15 {padding-right:600px;}
.append-16 {padding-right:640px;}
.append-17 {padding-right:680px;}
.append-18 {padding-right:720px;}
.append-19 {padding-right:760px;}
.append-20 {padding-right:800px;}
.append-21 {padding-right:840px;}
.append-22 {padding-right:880px;}
.append-23 {padding-right:920px;}
.prepend-1 {padding-left:40px;}
.prepend-2 {padding-left:80px;}
.prepend-3 {padding-left:120px;}
.prepend-4 {padding-left:160px;}
.prepend-5 {padding-left:200px;}
.prepend-6 {padding-left:240px;}
.prepend-7 {padding-left:280px;}
.prepend-8 {padding-left:320px;}
.prepend-9 {padding-left:360px;}
.prepend-10 {padding-left:400px;}
.prepend-11 {padding-left:440px;}
.prepend-12 {padding-left:480px;}
.prepend-13 {padding-left:520px;}
.prepend-14 {padding-left:560px;}
.prepend-15 {padding-left:600px;}
.prepend-16 {padding-left:640px;}
.prepend-17 {padding-left:680px;}
.prepend-18 {padding-left:720px;}
.prepend-19 {padding-left:760px;}
.prepend-20 {padding-left:800px;}
.prepend-21 {padding-left:840px;}
.prepend-22 {padding-left:880px;}
.prepend-23 {padding-left:920px;}
div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
.pull-1 {margin-left:-40px;}
.pull-2 {margin-left:-80px;}
.pull-3 {margin-left:-120px;}
.pull-4 {margin-left:-160px;}
.pull-5 {margin-left:-200px;}
.pull-6 {margin-left:-240px;}
.pull-7 {margin-left:-280px;}
.pull-8 {margin-left:-320px;}
.pull-9 {margin-left:-360px;}
.pull-10 {margin-left:-400px;}
.pull-11 {margin-left:-440px;}
.pull-12 {margin-left:-480px;}
.pull-13 {margin-left:-520px;}
.pull-14 {margin-left:-560px;}
.pull-15 {margin-left:-600px;}
.pull-16 {margin-left:-640px;}
.pull-17 {margin-left:-680px;}
.pull-18 {margin-left:-720px;}
.pull-19 {margin-left:-760px;}
.pull-20 {margin-left:-800px;}
.pull-21 {margin-left:-840px;}
.pull-22 {margin-left:-880px;}
.pull-23 {margin-left:-920px;}
.pull-24 {margin-left:-960px;}
.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
.push-1 {margin:0 -40px 1.5em 40px;}
.push-2 {margin:0 -80px 1.5em 80px;}
.push-3 {margin:0 -120px 1.5em 120px;}
.push-4 {margin:0 -160px 1.5em 160px;}
.push-5 {margin:0 -200px 1.5em 200px;}
.push-6 {margin:0 -240px 1.5em 240px;}
.push-7 {margin:0 -280px 1.5em 280px;}
.push-8 {margin:0 -320px 1.5em 320px;}
.push-9 {margin:0 -360px 1.5em 360px;}
.push-10 {margin:0 -400px 1.5em 400px;}
.push-11 {margin:0 -440px 1.5em 440px;}
.push-12 {margin:0 -480px 1.5em 480px;}
.push-13 {margin:0 -520px 1.5em 520px;}
.push-14 {margin:0 -560px 1.5em 560px;}
.push-15 {margin:0 -600px 1.5em 600px;}
.push-16 {margin:0 -640px 1.5em 640px;}
.push-17 {margin:0 -680px 1.5em 680px;}
.push-18 {margin:0 -720px 1.5em 720px;}
.push-19 {margin:0 -760px 1.5em 760px;}
.push-20 {margin:0 -800px 1.5em 800px;}
.push-21 {margin:0 -840px 1.5em 840px;}
.push-22 {margin:0 -880px 1.5em 880px;}
.push-23 {margin:0 -920px 1.5em 920px;}
.push-24 {margin:0 -960px 1.5em 960px;}
.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
.prepend-top {margin-top:1.5em;}
.append-bottom {margin-bottom:1.5em;}
.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
hr.space {background:#fff;color:#fff;visibility:hidden;}
.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
.clearfix, .container {display:block;}
.clear {clear:both;}

View File

@ -1,30 +0,0 @@
@import url(http://fonts.googleapis.com/earlyaccess/droidarabickufi.css);
@import url(http://fonts.googleapis.com/earlyaccess/droidarabicnaskh.css);
@import url(http://fonts.googleapis.com/earlyaccess/thabit.css);
html {
font-family: 'Droid Arabic Naskh', tahoma, Helvetica, Arial, sans-serif;
line-height: 1.8em;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Droid Arabic Kufi', Arial, sans-serif;
}
h3 {
text-align: right;
font-weight: bold;
}
code {
direction: ltr !important;
background-color: #ecf0f1;
padding: 5px;
font-family: 'Thabit', 'Courier New', serif;
font-size: 18px;
}
p {
text-align: justify;
}

View File

@ -1,3 +0,0 @@
html { font-size: 16px; }
h1, h2, h3 { font-family: "Microsoft YaHei", "Heiti TC", "Heiti SC"; }

View File

@ -1,3 +0,0 @@
html { font-size: 16px; }
h1, h2, h3 { font-family: "Microsoft JhengHei", "Microsoft YaHei", "Heiti TC", "Heiti SC"; }

View File

@ -1,95 +0,0 @@
/*
CSS for semver.org
@author Mathias Bynens
@link http://mathiasbynens.be/
*/
h1, h2, ol { margin: 0; padding: 0; }
html { font: 14.4px/1.5 Helvetica, Arial, sans-serif; }
body { margin: 0 auto; padding: 0 10%; max-width: 710px; }
@-ms-viewport { width: device-width; }
html { -webkit-text-size-adjust: 100%; }
h1, h2, h3 { text-align: center; font-weight: normal; }
h1 { font-size: 43px; margin: 1.1em 0 .7em; }
h2 { margin: 2.1em 0 .7em; font-size: 24px; }
h3 { text-align: left; font-size: 15.8px; margin-bottom: .6em; }
a { color: #009; }
a:hover, a:focus { color: #000; }
ol { padding-left: 1.5em; }
p { margin: 0 0 1em; }
@media print {
body { width: 100%; }
h1, h2, h3 { font-weight: bold; }
a:after { content: ' <' attr(href) '>'; font-size: 90%; }
}
/* Nav */
ol.nav {
background-color: #333;
list-style-type: none;
margin: 0;
padding: 10px;
overflow: hidden;
}
ol.nav li {
display: inline;
font-weight: bold;
margin-right: 20px;
white-space: nowrap;
}
ol.nav li a {
color: white;
}
ol.lang {
background-color: white;
}
ol.lang li a {
color: black;
}
/* Anchor Link styling */
#spec a.anchor-link {
opacity: 0;
/* Got this background image from an AnchorJs example http://bryanbraun.github.io/anchorjs/ */
background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIwcHgiIGhlaWdodD0iMTBweCIgdmlld0JveD0iMCAwIDIwIDEwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImxpbmsiIGZpbGw9IiNGRjUyMzEiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTUsMCBMMTIuMzA0Njg3NSwwIEMxMy4yNDIxODc1LDAuNjI1IDE0LjEyMTA5MzgsMS43MzgyODEyNSAxNC4zOTQ1MzEyLDIuNSBMMTQuOTgwNDY4OCwyLjUgQzE2LjI1LDIuNSAxNy40ODA0Njg4LDMuNzUgMTcuNDgwNDY4OCw1IEMxNy40ODA0Njg4LDYuMjUgMTYuMjEwOTM3NSw3LjUgMTQuOTgwNDY4OCw3LjUgTDExLjIzMDQ2ODgsNy41IEMxMCw3LjUgOC43MzA0Njg3NSw2LjI1IDguNzMwNDY4NzUsNSBDOC43MzA0Njg3NSw0LjU1MDc4MTI1IDguODY3MTg3NSw0LjEyMTA5Mzc1IDkuMDgyMDMxMjUsMy43NSBMNi40MDYyNSwzLjc1IEM2LjMwODU5Mzc1LDQuMTYwMTU2MjUgNi4yNSw0LjU3MDMxMjUgNi4yNSw1IEM2LjI1LDcuNSA4LjczMDQ2ODc1LDEwIDExLjIzMDQ2ODgsMTAgTDE1LDEwIEMxNy41LDEwIDIwLDcuNSAyMCw1IEMyMCwyLjUgMTcuNSwwIDE1LDAgTDE1LDAgWiBNNS42MDU0Njg3NSw3LjUgTDUuMDE5NTMxMjUsNy41IEMzLjc1LDcuNSAyLjUxOTUzMTI1LDYuMjUgMi41MTk1MzEyNSw1IEMyLjUxOTUzMTI1LDMuNzUgMy43ODkwNjI1LDIuNSA1LjAxOTUzMTI1LDIuNSBMOC43Njk1MzEyNSwyLjUgQzEwLDIuNSAxMS4yNjk1MzEyLDMuNzUgMTEuMjY5NTMxMiw1IEMxMS4yNjk1MzEyLDUuNDQ5MjE4NzUgMTEuMTMyODEyNSw1Ljg3ODkwNjI1IDEwLjkxNzk2ODgsNi4yNSBMMTMuNTkzNzUsNi4yNSBDMTMuNjkxNDA2Miw1LjgzOTg0Mzc1IDEzLjc1LDUuNDI5Njg3NSAxMy43NSw1IEMxMy43NSwyLjUgMTEuMjY5NTMxMiwwIDguNzY5NTMxMjUsMCBMNSwwIEMyLjUsMCAwLDIuNSAwLDUgQzAsNy41IDIuNSwxMCA1LDEwIEw3LjY5NTMxMjUsMTAgQzYuNzU3ODEyNSw5LjM3NSA1Ljg3ODkwNjI1LDguMjYxNzE4NzUgNS42MDU0Njg3NSw3LjUgTDUuNjA1NDY4NzUsNy41IFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+") no-repeat;
position: absolute;
margin-top: 0.5em;
margin-left: -1em;
padding-right: 0.5em;
height: 16px;
width: 20px;
text-decoration: none;
}
#spec h1 a.anchor-link {
margin-left: -0.6em;
}
#spec h3 a.anchor-link {
margin-left: -1.5em;
margin-top: 0.4em;
}
#spec li a.anchor-link {
margin-top: 0.4em;
margin-left: -3em;
}
#spec [id] {
position: relative;
}
#spec [id]:hover > .anchor-link, .anchor-link:focus {
opacity: 1;
}

View File

@ -1,60 +0,0 @@
html {
font-size: 120%;
line-height: 1.75em;
}
.container {
margin-top: 2em;
margin-bottom: 2em;
width: 710px;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1em;
margin-bottom: .75em;
line-height: 1.5em;
}
h1 {
font-size: 300%;
text-align: center;
}
h2 {
margin-top: 2em;
font-size: 170%;
text-align: center;
}
h3 {
font-size: 110%;
}
p {
margin: 0 0 1em;
}
pre {
margin: 1em 0;
border: 1px solid #ddd;
padding: .25em .25em;
background-color: #eef;
}
code {
border: 1px solid #ddd;
padding: 0 .2em;
background-color: #eef;
}
pre code {
border: none;
}
ol {
padding-left: 1.5em;
}
td {
padding: .25em 1em .25em 0;
}

View File

@ -1,60 +0,0 @@
.highlight { background: #ffffff; }
.highlight .c { color: #999988; font-style: italic } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { font-weight: bold } /* Keyword */
.highlight .o { font-weight: bold } /* Operator */
.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #999999 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { font-weight: bold } /* Keyword.Constant */
.highlight .kd { font-weight: bold } /* Keyword.Declaration */
.highlight .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #009999 } /* Literal.Number */
.highlight .s { color: #d14 } /* Literal.String */
.highlight .na { color: #008080 } /* Name.Attribute */
.highlight .nb { color: #0086B3 } /* Name.Builtin */
.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
.highlight .no { color: #008080 } /* Name.Constant */
.highlight .ni { color: #800080 } /* Name.Entity */
.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
.highlight .nn { color: #555555 } /* Name.Namespace */
.highlight .nt { color: #000080 } /* Name.Tag */
.highlight .nv { color: #008080 } /* Name.Variable */
.highlight .ow { font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #009999 } /* Literal.Number.Float */
.highlight .mh { color: #009999 } /* Literal.Number.Hex */
.highlight .mi { color: #009999 } /* Literal.Number.Integer */
.highlight .mo { color: #009999 } /* Literal.Number.Oct */
.highlight .sb { color: #d14 } /* Literal.String.Backtick */
.highlight .sc { color: #d14 } /* Literal.String.Char */
.highlight .sd { color: #d14 } /* Literal.String.Doc */
.highlight .s2 { color: #d14 } /* Literal.String.Double */
.highlight .se { color: #d14 } /* Literal.String.Escape */
.highlight .sh { color: #d14 } /* Literal.String.Heredoc */
.highlight .si { color: #d14 } /* Literal.String.Interpol */
.highlight .sx { color: #d14 } /* Literal.String.Other */
.highlight .sr { color: #009926 } /* Literal.String.Regex */
.highlight .s1 { color: #d14 } /* Literal.String.Single */
.highlight .ss { color: #990073 } /* Literal.String.Symbol */
.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #008080 } /* Name.Variable.Class */
.highlight .vg { color: #008080 } /* Name.Variable.Global */
.highlight .vi { color: #008080 } /* Name.Variable.Instance */
.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */

View File

@ -1,214 +0,0 @@
<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/css/main.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<!-- Begin Jekyll SEO tag v2.1.0 -->
<title>Conventional Commits 1.0.0-beta - Conventional Commits</title>
<meta property="og:title" content="Conventional Commits 1.0.0-beta" />
<link rel="canonical" href="http://localhost:4000/" />
<meta property="og:url" content="http://localhost:4000/" />
<meta property="og:site_name" content="Conventional Commits" />
<script type="application/ld+json">
{"@context": "http://schema.org",
"@type": "WebSite",
"name": "Conventional Commits",
"headline": "Conventional Commits 1.0.0-beta",
"url": "http://localhost:4000/"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<ol class="nav lang" dir="ltr">
<li class="language language-en">
<a rel="alternate" lang="en" hreflang="en"
href="/lang/en">
english (en)
</a>
</li>
</ol>
<ol class="nav">
<li class="version version-1.0.0-beta">
<a href="/spec/v1.0.0-beta.html">
1.0.0-beta
</a>
</li>
</ol>
<div id="spec">
<h1 id="conventional-commits-100-beta">Conventional Commits 1.0.0-beta</h1>
<h2 id="summary">Summary</h2>
<p>As an open-source maintainer, squash feature branches onto <code class="highlighter-rouge">master</code> and write
a standardized commit message while doing so.</p>
<p>The commit message should be structured as follows:</p>
<hr />
<div class="highlighter-rouge"><pre class="highlight"><code>&lt;type&gt;[optional scope]: &lt;description&gt;
[optional body]
[optional footer]
</code></pre>
</div>
<hr />
<p><br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:</p>
<ol>
<li><strong>fix:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">fix</code> patches a bug in your codebase (this correlates with <a href="http://semver.org/#summary"><code class="highlighter-rouge">PATCH</code></a> in semantic versioning).</li>
<li><strong>feat:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">feat</code> introduces a new feature to the codebase (this correlates
with <a href="http://semver.org/#summary"><code class="highlighter-rouge">MINOR</code></a> in semantic versioning).</li>
<li><strong>BREAKING CHANGE:</strong> a commit that has the text <code class="highlighter-rouge">BREAKING CHANGE:</code> at the beginning of its optional body or footer section introduces a breaking API change (correlating with <a href="http://semver.org/#summary"><code class="highlighter-rouge">Major</code></a> in semantic versioning). A breaking change can be
part of either a <code class="highlighter-rouge">fix:</code> or <code class="highlighter-rouge">feat:</code> <em>type</em> commit.</li>
</ol>
<p><br />
A scope may be provided to a commits 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
not mandated by the conventional commits specification.</p>
<h2 id="introduction">Introduction</h2>
<p>In software development, its been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.</p>
<p>Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and <a href="http://keepachangelog.com/en/0.3.0/">ideally a well maintained CHANGLOG</a>) is to the ensuing
forensic process.</p>
<p>The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with <a href="http://semver.org">semver</a>,
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.</p>
<p>By introducing this convention, we create a common language that makes it easier to
debug issues across codebase boundaries.</p>
<h2 id="conventional-commits-specification">Conventional Commits Specification</h2>
<p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>.</p>
<ol>
<li>commits MUST be prefixed with a type, which consists of a verb, <code class="highlighter-rouge">feat</code>, <code class="highlighter-rouge">fix</code>, etc.,
followed by a colon and a space.</li>
<li>the type <code class="highlighter-rouge">feat</code> MUST be used when a commit adds a new feature to your application
or library.</li>
<li>the type <code class="highlighter-rouge">fix</code> MUST be used when a commit represents a bug fix for your application.</li>
<li>an optional scope MAY be provided after a type. A scope is a phrase describing
a component of the codebase, enclosed in parenthesis, e.g., <code class="highlighter-rouge">fix(parser):</code></li>
<li>A description MUST immediately follow the type and optional scope.
The description is a short description of the pull request, e.g.,
<em>fix: array parsing issue when multiple spaces were contained in string.</em></li>
<li>A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.</li>
<li>A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request, such as the issues it fixes.</li>
<li>Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text <code class="highlighter-rouge">BREAKING CHANGE</code>, followed by a colon and a space. A short
description MUST be provided after <code class="highlighter-rouge">BREAKING CHANGE: </code>, describing why the change is
breaking, e.g., <em>BREAKING CHANGE: I must now leave Earth for no raisin!</em></li>
<li>types other than <code class="highlighter-rouge">feat</code> and <code class="highlighter-rouge">fix</code> MAY be used in your commit messages.</li>
</ol>
<h2 id="why-use-conventional-commits">Why Use Conventional Commits</h2>
<ul>
<li>Automatically generating CHANGELOGs.</li>
<li>Automatically determining a semantic version bump (based on the types of commits landed).</li>
<li>Communicating the nature of changes to teammates, the public, and other stakeholders quickly.</li>
<li>Triggering build and publish processes.</li>
<li>Helping organize and analyze the nature of your own changes in a more productive fashion.</li>
<li>Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.</li>
</ul>
<h2 id="faq">FAQ</h2>
<h3 id="how-should-i-deal-with-commit-messages-in-the-initial-development-phase">How should I deal with commit messages in the initial development phase?</h3>
<p>We recommend that you proceed as if youve an already released product. Typically <em>somebody</em>, even if its your fellow software developers, is using your software. Theyll want to know whats fixed, what breaks etc.</p>
<h3 id="what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types">What do I do if the commit conforms to more than one of the commit types?</h3>
<p>Go back and make multiple commits whenever possible. Part of the beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.</p>
<h3 id="doesnt-this-discourage-rapid-development-and-fast-iteration">Doesnt this discourage rapid development and fast iteration?</h3>
<p>It discourages moving fast in a disorganized way. It helps you be able to move fast long term and across more projects with more diverse teams.</p>
<h3 id="might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided">Might Conventional Commits lead developers to limit the type of commits they make because theyll be thinking in the types provided?</h3>
<p>When used properly, Conventional Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.</p>
<h3 id="how-does-this-relate-to-semver">How does this relate to SemVer?</h3>
<p><code class="highlighter-rouge">fix</code> type commits should be translated to <code class="highlighter-rouge">PATCH</code> releases. <code class="highlighter-rouge">feat</code> type commits should be translated to <code class="highlighter-rouge">MINOR</code> releases. Commits with <code class="highlighter-rouge">BREAKING CHANGE</code> in the commits, regardless of type, should be translated to <code class="highlighter-rouge">MAJOR</code> releases.</p>
<h3 id="how-should-i-version-my-commit-type-specification-extensions-eg-jameswomackconventional-commit-spec">How should I version my commit type specification extensions, e.g. <code class="highlighter-rouge">@jameswomack/conventional-commit-spec</code>?</h3>
<p>We recommend using SemVer and publishing to an NPM-compatible registry.</p>
<h3 id="what-do-i-do-if-i-accidentally-use-the-wrong-commit-type">What do I do if I accidentally use the wrong commit type?</h3>
<h4 id="when-you-used-a-type-thats-of-the-spec-but-not-the-correct-type-eg-fix-instead-of-feat">When you used a type thats of the spec but not the correct type, e.g. <code class="highlighter-rouge">fix</code> instead of <code class="highlighter-rouge">feat</code></h4>
<p>Prior to merging or releasing the mistake, we recommend using <code class="highlighter-rouge">git rebase -i</code> to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.</p>
<h4 id="when-you-used-a-type-not-of-the-spec-eg-feet-instead-of-feat">When you used a type <em>not</em> of the spec, e.g. <code class="highlighter-rouge">feet</code> instead of <code class="highlighter-rouge">feat</code></h4>
<p>In a worst case scenario, its not the end of the world if a commit lands that does not meet the conventional commit specification. It simply means that commit will be missed by tools that are based on the standard.</p>
<h3 id="do-all-my-contributors-need-to-use-the-conventional-commit-specification">Do all my contributors need to use the conventional commit specification?</h3>
<p>No! If you use a squash based workflow on Git lead maintainers can cleanup the commit messages as theyre merged—adding no workload to casual committers. A common workflow for this is to have your git system automatically squash commits from a pull request and present a form for the lead maintainer to enter the proper git commit message for the merge.</p>
<h2 id="whos-behind-thisinspired-this">Whos 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
I was introduced to by the wondeful folks behind <a href="https://github.com/semantic-release/semantic-release">semantic-release</a> (a tool
that fully automates npm publishes).</p>
<p>The first draft of this specification has been written in collaboration with some of the
folks contributing to:</p>
<ul>
<li><a href="https://github.com/conventional-changelog/standard-version">standard-version</a>: a tool
for managing CHANGELOG generation, tagging, and version bumping, based on the
Conventional Commit standard.</li>
<li><a href="https://www.npmjs.com/package/unleash">unleash</a>: a tool for automating the
software release and publishing lifecycle.</li>
<li><a href="https://github.com/lerna/lerna">lerna</a>: a tool for managing monorepos, which grew out
of the Babel project.</li>
<li><a href="https://github.com/conventional-changelog/conventional-changelog">conventional-changelog</a>: a
set of tools for parsing conventional commit messages from git histories.</li>
</ul>
<h2 id="license">License</h2>
<p><a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons - CC BY 3.0</a></p>
</div>
<script src="/js/anchorli.js"></script>
</body>
</html>

View File

@ -1,29 +0,0 @@
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var createAnchorLink = function (id) {
var anchor = document.createElement("a");
anchor.className = "anchor-link";
anchor.href = "#" + id;
return anchor;
};
// Add IDs to all spec li elements
var specItems = document.querySelectorAll("#spec ol")[1]
.querySelectorAll('li');
for (var i = 0; i < specItems.length; i++)
{
var li = specItems[i];
li.id = 'spec-item-' + (i + 1);
}
// Add anchor link to all elemens with an ID in the spec
var headers = document.querySelectorAll('#spec [id]');
for (var i = 0; i < headers.length; i++)
{
var element = headers[i];
var anchorLink = createAnchorLink(element.id);
element.insertBefore(anchorLink, element.firstChild)
}
}
};

View File

@ -1,10 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<meta charset="utf-8">
<title>Redirecting…</title>
<link rel="canonical" href="http://localhost:4000/">
<meta http-equiv="refresh" content="0; url=http://localhost:4000/">
<h1>Redirecting…</h1>
<a href="http://localhost:4000/">Click here if you are not redirected.</a>
<script>location="http://localhost:4000/"</script>
</html>

View File

@ -1,201 +0,0 @@
<!doctype html>
<html lang="es" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/css/main.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<!-- Begin Jekyll SEO tag v2.1.0 -->
<title>Conventional Commits 1.0.0-beta - Conventional Commits</title>
<meta property="og:title" content="Conventional Commits 1.0.0-beta" />
<link rel="canonical" href="http://localhost:4000/lang/es/" />
<meta property="og:url" content="http://localhost:4000/lang/es/" />
<meta property="og:site_name" content="Conventional Commits" />
<script type="application/ld+json">
{"@context": "http://schema.org",
"@type": "WebPage",
"headline": "Conventional Commits 1.0.0-beta",
"url": "http://localhost:4000/lang/es/"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<ol class="nav lang" dir="ltr">
<li class="language language-en">
<a rel="alternate" lang="en" hreflang="en"
href="/lang/en">
english (en)
</a>
</li>
</ol>
<ol class="nav">
<li class="version version-1.0.0-beta">
<a href="/lang/es/spec/v1.0.0-beta.html">
1.0.0-beta
</a>
</li>
</ol>
<div id="spec">
<h1 id="conventional-commits-100-beta">Conventional Commits 1.0.0-beta</h1>
<h2 id="summary">Summary</h2>
<p>As an open-source maintainer, squash feature branches onto <code class="highlighter-rouge">master</code> and write
a standardized commit message while doing so.</p>
<p>The commit message should be structured as follows:</p>
<hr />
<div class="highlighter-rouge"><pre class="highlight"><code>&lt;type&gt;[optional scope]: &lt;description&gt;
[optional body]
[optional footer]
</code></pre>
</div>
<hr />
<p><br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:</p>
<ol>
<li><strong>fix:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">fix</code> patches a bug in your codebase (this correlates with <a href="http://semver.org/#summary"><code class="highlighter-rouge">PATCH</code></a> in semantic versioning).</li>
<li><strong>feat:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">feat</code> introduces a new feature to the codebase (this correlates
with <a href="http://semver.org/#summary"><code class="highlighter-rouge">MINOR</code></a> in semantic versioning).</li>
<li><strong>BREAKING CHANGE:</strong> a commit that has the text <code class="highlighter-rouge">BREAKING CHANGE:</code> at the beginning of its optional body or footer section introduces a breaking API change (correlating with <a href="http://semver.org/#summary"><code class="highlighter-rouge">Major</code></a> in semantic versioning). A breaking change can be
part of either a <code class="highlighter-rouge">fix:</code> or <code class="highlighter-rouge">feat:</code> <em>type</em> commit.</li>
</ol>
<p><br />
A scope may be provided to a commits 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
not mandated by the conventional commits specification.</p>
<h2 id="introduction">Introduction</h2>
<p>In software development, its been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.</p>
<p>Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and <a href="http://keepachangelog.com/en/0.3.0/">ideally a well maintained CHANGLOG</a>) is to the ensuing
forensic process.</p>
<p>The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with <a href="http://semver.org">semver</a>,
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.</p>
<p>By introducing this convention, we create a common language that makes it easier to
debug issues across codebase boundaries.</p>
<h2 id="conventional-commits-specification">Conventional Commits Specification</h2>
<p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>.</p>
<ol>
<li>commits MUST be prefixed with a type, which consists of a verb, <code class="highlighter-rouge">feat</code>, <code class="highlighter-rouge">fix</code>, etc.,
followed by a colon and a space.</li>
<li>the type <code class="highlighter-rouge">feat</code> MUST be used when a commit adds a new feature to your application
or library.</li>
<li>the type <code class="highlighter-rouge">fix</code> MUST be used when a commit represents a bug fix for your application.</li>
<li>an optional scope MAY be provided after a type. A scope is a phrase describing
a component of the codebase, enclosed in parenthesis, e.g., <code class="highlighter-rouge">fix(parser):</code></li>
<li>A description MUST immediately follow the type and optional scope.
The description is a short description of the pull request, e.g.,
<em>fix: array parsing issue when multiple spaces were contained in string.</em></li>
<li>A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.</li>
<li>A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request, such as the issues it fixes.</li>
<li>Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text <code class="highlighter-rouge">BREAKING CHANGE</code>, followed by a colon and a space. A short
description MUST be provided after <code class="highlighter-rouge">BREAKING CHANGE: </code>, describing why the change is
breaking, e.g., <em>BREAKING CHANGE: I must now leave Earth for no raisin!</em></li>
<li>types other than <code class="highlighter-rouge">feat</code> and <code class="highlighter-rouge">fix</code> MAY be used in your commit messages.</li>
</ol>
<h2 id="why-use-conventional-commits">Why Use Conventional Commits</h2>
<ul>
<li>Automatically generating CHANGELOGs.</li>
<li>Automatically determining a semantic version bump (based on the types of commits landed).</li>
<li>Communicating the nature of changes to teammates, the public, and other stakeholders quickly.</li>
<li>Triggering build and publish processes.</li>
<li>Helping organize and analyze the nature of your own changes in a more productive fashion.</li>
<li>Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.</li>
</ul>
<h2 id="faq">FAQ</h2>
<h3 id="how-should-i-deal-with-commit-messages-in-the-initial-development-phase">How should I deal with commit messages in the initial development phase?</h3>
<p>We recommend that you proceed as if youve an already released product. Typically <em>somebody</em>, even if its your fellow software developers, is using your software. Theyll want to know whats fixed, what breaks etc.</p>
<h3 id="what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types">What do I do if the commit conforms to more than one of the commit types?</h3>
<p>Go back and make multiple commits whenever possible. Part of the beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.</p>
<h3 id="doesnt-this-discourage-rapid-development-and-fast-iteration">Doesnt this discourage rapid development and fast iteration?</h3>
<p>It discourages moving fast in a disorganized way. It helps you be able to move fast long term and across more projects with more diverse teams.</p>
<h3 id="might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided">Might Conventional Commits lead developers to limit the type of commits they make because theyll be thinking in the types provided?</h3>
<p>When used properly, Convential Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.</p>
<h3 id="how-does-this-relate-to-semver">How does this relate to SemVer?</h3>
<p>we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if youve landed only <code class="highlighter-rouge">fix:</code> commits use a patch version, if youve landed a feature use a minor release, if youve landed a breaking change use a major release.</p>
<h3 id="what-do-i-do-if-i-accidentally-use-the-wrong-commit-type">What do I do if I accidentally use the wrong commit type?</h3>
<p>Prior to merging or releasing the mistake, we recommend using <code class="highlighter-rouge">git rebase -i</code> to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.</p>
<h3 id="do-all-my-contributors-need-to-use-the-conventional-commit-specification">Do all my contributors need to use the conventional commit specification?</h3>
<p>No, if you use a squash based workflow on Git lead maintainers can cleanup the commit messages as theyre merged adding no workload to casual committers</p>
<h2 id="whos-behind-thisinspired-this">Whos 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
I was introduced to by the wondeful folks behind <a href="https://github.com/semantic-release/semantic-release">semantic-release</a> (a tool
that fully automates npm publishes).</p>
<p>The first draft of this specification has been written in collaboration with some of the
folks contributing to:</p>
<ul>
<li><a href="https://github.com/conventional-changelog/standard-version">standard-version</a>: a tool
for managing CHANGELOG generation, tagging, and version bumping, based on the
Conventional Commit standard.</li>
<li><a href="https://www.npmjs.com/package/unleash">unlease</a>: a tool for automating the
software release and publishing lifecycle.</li>
<li><a href="https://github.com/lerna/lerna">lerna</a>: a tool for managing monorepos, which grew out
of the Babel project.</li>
<li><a href="https://github.com/conventional-changelog/conventional-changelog">conventional-changelog</a>: a
set of tools for parsing conventional commit messages from git histories.</li>
</ul>
<h2 id="license">License</h2>
<p><a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons - CC BY 3.0</a></p>
</div>
<script src="/js/anchorli.js"></script>
</body>
</html>

View File

@ -1,201 +0,0 @@
<!doctype html>
<html lang="es" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/css/main.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<!-- Begin Jekyll SEO tag v2.1.0 -->
<title>Conventional Commits 1.0.0-beta - Conventional Commits</title>
<meta property="og:title" content="Conventional Commits 1.0.0-beta" />
<link rel="canonical" href="http://localhost:4000/lang/es/spec/v1.0.0-beta.html" />
<meta property="og:url" content="http://localhost:4000/lang/es/spec/v1.0.0-beta.html" />
<meta property="og:site_name" content="Conventional Commits" />
<script type="application/ld+json">
{"@context": "http://schema.org",
"@type": "WebPage",
"headline": "Conventional Commits 1.0.0-beta",
"url": "http://localhost:4000/lang/es/spec/v1.0.0-beta.html"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<ol class="nav lang" dir="ltr">
<li class="language language-en">
<a rel="alternate" lang="en" hreflang="en"
href="/lang/en">
english (en)
</a>
</li>
</ol>
<ol class="nav">
<li class="version version-1.0.0-beta">
<a href="/lang/es/spec/v1.0.0-beta.html">
1.0.0-beta
</a>
</li>
</ol>
<div id="spec">
<h1 id="conventional-commits-100-beta">Conventional Commits 1.0.0-beta</h1>
<h2 id="summary">Summary</h2>
<p>As an open-source maintainer, squash feature branches onto <code class="highlighter-rouge">master</code> and write
a standardized commit message while doing so.</p>
<p>The commit message should be structured as follows:</p>
<hr />
<div class="highlighter-rouge"><pre class="highlight"><code>&lt;type&gt;[optional scope]: &lt;description&gt;
[optional body]
[optional footer]
</code></pre>
</div>
<hr />
<p><br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:</p>
<ol>
<li><strong>fix:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">fix</code> patches a bug in your codebase (this correlates with <a href="http://semver.org/#summary"><code class="highlighter-rouge">PATCH</code></a> in semantic versioning).</li>
<li><strong>feat:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">feat</code> introduces a new feature to the codebase (this correlates
with <a href="http://semver.org/#summary"><code class="highlighter-rouge">MINOR</code></a> in semantic versioning).</li>
<li><strong>BREAKING CHANGE:</strong> a commit that has the text <code class="highlighter-rouge">BREAKING CHANGE:</code> at the beginning of its optional body or footer section introduces a breaking API change (correlating with <a href="http://semver.org/#summary"><code class="highlighter-rouge">Major</code></a> in semantic versioning). A breaking change can be
part of either a <code class="highlighter-rouge">fix:</code> or <code class="highlighter-rouge">feat:</code> <em>type</em> commit.</li>
</ol>
<p><br />
A scope may be provided to a commits 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
not mandated by the conventional commits specification.</p>
<h2 id="introduction">Introduction</h2>
<p>In software development, its been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.</p>
<p>Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and <a href="http://keepachangelog.com/en/0.3.0/">ideally a well maintained CHANGLOG</a>) is to the ensuing
forensic process.</p>
<p>The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with <a href="http://semver.org">semver</a>,
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.</p>
<p>By introducing this convention, we create a common language that makes it easier to
debug issues across codebase boundaries.</p>
<h2 id="conventional-commits-specification">Conventional Commits Specification</h2>
<p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>.</p>
<ol>
<li>commits MUST be prefixed with a type, which consists of a verb, <code class="highlighter-rouge">feat</code>, <code class="highlighter-rouge">fix</code>, etc.,
followed by a colon and a space.</li>
<li>the type <code class="highlighter-rouge">feat</code> MUST be used when a commit adds a new feature to your application
or library.</li>
<li>the type <code class="highlighter-rouge">fix</code> MUST be used when a commit represents a bug fix for your application.</li>
<li>an optional scope MAY be provided after a type. A scope is a phrase describing
a component of the codebase, enclosed in parenthesis, e.g., <code class="highlighter-rouge">fix(parser):</code></li>
<li>A description MUST immediately follow the type and optional scope.
The description is a short description of the pull request, e.g.,
<em>fix: array parsing issue when multiple spaces were contained in string.</em></li>
<li>A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.</li>
<li>A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request, such as the issues it fixes.</li>
<li>Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text <code class="highlighter-rouge">BREAKING CHANGE</code>, followed by a colon and a space. A short
description MUST be provided after <code class="highlighter-rouge">BREAKING CHANGE: </code>, describing why the change is
breaking, e.g., <em>BREAKING CHANGE: I must now leave Earth for no raisin!</em></li>
<li>types other than <code class="highlighter-rouge">feat</code> and <code class="highlighter-rouge">fix</code> MAY be used in your commit messages.</li>
</ol>
<h2 id="why-use-conventional-commits">Why Use Conventional Commits</h2>
<ul>
<li>Automatically generating CHANGELOGs.</li>
<li>Automatically determining a semantic version bump (based on the types of commits landed).</li>
<li>Communicating the nature of changes to teammates, the public, and other stakeholders quickly.</li>
<li>Triggering build and publish processes.</li>
<li>Helping organize and analyze the nature of your own changes in a more productive fashion.</li>
<li>Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.</li>
</ul>
<h2 id="faq">FAQ</h2>
<h3 id="how-should-i-deal-with-commit-messages-in-the-initial-development-phase">How should I deal with commit messages in the initial development phase?</h3>
<p>We recommend that you proceed as if youve an already released product. Typically <em>somebody</em>, even if its your fellow software developers, is using your software. Theyll want to know whats fixed, what breaks etc.</p>
<h3 id="what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types">What do I do if the commit conforms to more than one of the commit types?</h3>
<p>Go back and make multiple commits whenever possible. Part of the beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.</p>
<h3 id="doesnt-this-discourage-rapid-development-and-fast-iteration">Doesnt this discourage rapid development and fast iteration?</h3>
<p>It discourages moving fast in a disorganized way. It helps you be able to move fast long term and across more projects with more diverse teams.</p>
<h3 id="might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided">Might Conventional Commits lead developers to limit the type of commits they make because theyll be thinking in the types provided?</h3>
<p>When used properly, Convential Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.</p>
<h3 id="how-does-this-relate-to-semver">How does this relate to SemVer?</h3>
<p>we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if youve landed only <code class="highlighter-rouge">fix:</code> commits use a patch version, if youve landed a feature use a minor release, if youve landed a breaking change use a major release.</p>
<h3 id="what-do-i-do-if-i-accidentally-use-the-wrong-commit-type">What do I do if I accidentally use the wrong commit type?</h3>
<p>Prior to merging or releasing the mistake, we recommend using <code class="highlighter-rouge">git rebase -i</code> to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.</p>
<h3 id="do-all-my-contributors-need-to-use-the-conventional-commit-specification">Do all my contributors need to use the conventional commit specification?</h3>
<p>No, if you use a squash based workflow on Git lead maintainers can cleanup the commit messages as theyre merged adding no workload to casual committers</p>
<h2 id="whos-behind-thisinspired-this">Whos 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
I was introduced to by the wondeful folks behind <a href="https://github.com/semantic-release/semantic-release">semantic-release</a> (a tool
that fully automates npm publishes).</p>
<p>The first draft of this specification has been written in collaboration with some of the
folks contributing to:</p>
<ul>
<li><a href="https://github.com/conventional-changelog/standard-version">standard-version</a>: a tool
for managing CHANGELOG generation, tagging, and version bumping, based on the
Conventional Commit standard.</li>
<li><a href="https://www.npmjs.com/package/unleash">unlease</a>: a tool for automating the
software release and publishing lifecycle.</li>
<li><a href="https://github.com/lerna/lerna">lerna</a>: a tool for managing monorepos, which grew out
of the Babel project.</li>
<li><a href="https://github.com/conventional-changelog/conventional-changelog">conventional-changelog</a>: a
set of tools for parsing conventional commit messages from git histories.</li>
</ul>
<h2 id="license">License</h2>
<p><a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons - CC BY 3.0</a></p>
</div>
<script src="/js/anchorli.js"></script>
</body>
</html>

View File

@ -1 +0,0 @@
Sitemap: http://localhost:4000/sitemap.xml

View File

@ -1,3 +0,0 @@
#!/bin/sh
bundle install

View File

@ -1,6 +0,0 @@
#!/bin/sh
set -e
bundle exec jekyll build --config _config.yml,_config_local.yml
bundle exec htmlproofer _site --check-html --disable-external

View File

@ -1,3 +0,0 @@
#!/bin/sh
bundle exec jekyll serve --config _config.yml,_config_local.yml

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://localhost:4000/lang/es/</loc>
</url>
<url>
<loc>http://localhost:4000/</loc>
</url>
<url>
<loc>http://localhost:4000/lang/es/spec/v1.0.0-beta.html</loc>
</url>
<url>
<loc>http://localhost:4000/spec/v1.0.0-beta.html</loc>
</url>
</urlset>

View File

@ -1,201 +0,0 @@
<!doctype html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="/css/main.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
<!-- Begin Jekyll SEO tag v2.1.0 -->
<title>Conventional Commits 1.0.0-beta - Conventional Commits</title>
<meta property="og:title" content="Conventional Commits 1.0.0-beta" />
<link rel="canonical" href="http://localhost:4000/spec/v1.0.0-beta.html" />
<meta property="og:url" content="http://localhost:4000/spec/v1.0.0-beta.html" />
<meta property="og:site_name" content="Conventional Commits" />
<script type="application/ld+json">
{"@context": "http://schema.org",
"@type": "WebPage",
"headline": "Conventional Commits 1.0.0-beta",
"url": "http://localhost:4000/spec/v1.0.0-beta.html"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<ol class="nav lang" dir="ltr">
<li class="language language-en">
<a rel="alternate" lang="en" hreflang="en"
href="/lang/en">
english (en)
</a>
</li>
</ol>
<ol class="nav">
<li class="version version-1.0.0-beta">
<a href="/spec/v1.0.0-beta.html">
1.0.0-beta
</a>
</li>
</ol>
<div id="spec">
<h1 id="conventional-commits-100-beta">Conventional Commits 1.0.0-beta</h1>
<h2 id="summary">Summary</h2>
<p>As an open-source maintainer, squash feature branches onto <code class="highlighter-rouge">master</code> and write
a standardized commit message while doing so.</p>
<p>The commit message should be structured as follows:</p>
<hr />
<div class="highlighter-rouge"><pre class="highlight"><code>&lt;type&gt;[optional scope]: &lt;description&gt;
[optional body]
[optional footer]
</code></pre>
</div>
<hr />
<p><br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:</p>
<ol>
<li><strong>fix:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">fix</code> patches a bug in your codebase (this correlates with <a href="http://semver.org/#summary"><code class="highlighter-rouge">PATCH</code></a> in semantic versioning).</li>
<li><strong>feat:</strong> a commit of the <em>type</em> <code class="highlighter-rouge">feat</code> introduces a new feature to the codebase (this correlates
with <a href="http://semver.org/#summary"><code class="highlighter-rouge">MINOR</code></a> in semantic versioning).</li>
<li><strong>BREAKING CHANGE:</strong> a commit that has the text <code class="highlighter-rouge">BREAKING CHANGE:</code> at the beginning of its optional body or footer section introduces a breaking API change (correlating with <a href="http://semver.org/#summary"><code class="highlighter-rouge">Major</code></a> in semantic versioning). A breaking change can be
part of either a <code class="highlighter-rouge">fix:</code> or <code class="highlighter-rouge">feat:</code> <em>type</em> commit.</li>
</ol>
<p><br />
A scope may be provided to a commits 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
not mandated by the conventional commits specification.</p>
<h2 id="introduction">Introduction</h2>
<p>In software development, its been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.</p>
<p>Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and <a href="http://keepachangelog.com/en/0.3.0/">ideally a well maintained CHANGLOG</a>) is to the ensuing
forensic process.</p>
<p>The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with <a href="http://semver.org">semver</a>,
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.</p>
<p>By introducing this convention, we create a common language that makes it easier to
debug issues across codebase boundaries.</p>
<h2 id="conventional-commits-specification">Conventional Commits Specification</h2>
<p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>.</p>
<ol>
<li>commits MUST be prefixed with a type, which consists of a verb, <code class="highlighter-rouge">feat</code>, <code class="highlighter-rouge">fix</code>, etc.,
followed by a colon and a space.</li>
<li>the type <code class="highlighter-rouge">feat</code> MUST be used when a commit adds a new feature to your application
or library.</li>
<li>the type <code class="highlighter-rouge">fix</code> MUST be used when a commit represents a bug fix for your application.</li>
<li>an optional scope MAY be provided after a type. A scope is a phrase describing
a component of the codebase, enclosed in parenthesis, e.g., <code class="highlighter-rouge">fix(parser):</code></li>
<li>A description MUST immediately follow the type and optional scope.
The description is a short description of the pull request, e.g.,
<em>fix: array parsing issue when multiple spaces were contained in string.</em></li>
<li>A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.</li>
<li>A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request, such as the issues it fixes.</li>
<li>Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text <code class="highlighter-rouge">BREAKING CHANGE</code>, followed by a colon and a space. A short
description MUST be provided after <code class="highlighter-rouge">BREAKING CHANGE: </code>, describing why the change is
breaking, e.g., <em>BREAKING CHANGE: I must now leave Earth for no raisin!</em></li>
<li>types other than <code class="highlighter-rouge">feat</code> and <code class="highlighter-rouge">fix</code> MAY be used in your commit messages.</li>
</ol>
<h2 id="why-use-conventional-commits">Why Use Conventional Commits</h2>
<ul>
<li>Automatically generating CHANGELOGs.</li>
<li>Automatically determining a semantic version bump (based on the types of commits landed).</li>
<li>Communicating the nature of changes to teammates, the public, and other stakeholders quickly.</li>
<li>Triggering build and publish processes.</li>
<li>Helping organize and analyze the nature of your own changes in a more productive fashion.</li>
<li>Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.</li>
</ul>
<h2 id="faq">FAQ</h2>
<h3 id="how-should-i-deal-with-commit-messages-in-the-initial-development-phase">How should I deal with commit messages in the initial development phase?</h3>
<p>We recommend that you proceed as if youve an already released product. Typically <em>somebody</em>, even if its your fellow software developers, is using your software. Theyll want to know whats fixed, what breaks etc.</p>
<h3 id="what-do-i-do-if-the-commit-conforms-to-more-than-one-of-the-commit-types">What do I do if the commit conforms to more than one of the commit types?</h3>
<p>Go back and make multiple commits whenever possible. Part of the beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.</p>
<h3 id="doesnt-this-discourage-rapid-development-and-fast-iteration">Doesnt this discourage rapid development and fast iteration?</h3>
<p>It discourages moving fast in a disorganized way. It helps you be able to move fast long term and across more projects with more diverse teams.</p>
<h3 id="might-conventional-commits-lead-developers-to-limit-the-type-of-commits-they-make-because-theyll-be-thinking-in-the-types-provided">Might Conventional Commits lead developers to limit the type of commits they make because theyll be thinking in the types provided?</h3>
<p>When used properly, Convential Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.</p>
<h3 id="how-does-this-relate-to-semver">How does this relate to SemVer?</h3>
<p>we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if youve landed only <code class="highlighter-rouge">fix:</code> commits use a patch version, if youve landed a feature use a minor release, if youve landed a breaking change use a major release.</p>
<h3 id="what-do-i-do-if-i-accidentally-use-the-wrong-commit-type">What do I do if I accidentally use the wrong commit type?</h3>
<p>Prior to merging or releasing the mistake, we recommend using <code class="highlighter-rouge">git rebase -i</code> to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.</p>
<h3 id="do-all-my-contributors-need-to-use-the-conventional-commit-specification">Do all my contributors need to use the conventional commit specification?</h3>
<p>No, if you use a squash based workflow on Git lead maintainers can cleanup the commit messages as theyre merged adding no workload to casual committers</p>
<h2 id="whos-behind-thisinspired-this">Whos 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
I was introduced to by the wondeful folks behind <a href="https://github.com/semantic-release/semantic-release">semantic-release</a> (a tool
that fully automates npm publishes).</p>
<p>The first draft of this specification has been written in collaboration with some of the
folks contributing to:</p>
<ul>
<li><a href="https://github.com/conventional-changelog/standard-version">standard-version</a>: a tool
for managing CHANGELOG generation, tagging, and version bumping, based on the
Conventional Commit standard.</li>
<li><a href="https://www.npmjs.com/package/unleash">unleash</a>: a tool for automating the
software release and publishing lifecycle.</li>
<li><a href="https://github.com/lerna/lerna">lerna</a>: a tool for managing monorepos, which grew out
of the Babel project.</li>
<li><a href="https://github.com/conventional-changelog/conventional-changelog">conventional-changelog</a>: a
set of tools for parsing conventional commit messages from git histories.</li>
</ul>
<h2 id="license">License</h2>
<p><a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons - CC BY 3.0</a></p>
</div>
<script src="/js/anchorli.js"></script>
</body>
</html>

View File

@ -1,9 +1,9 @@
---
title: Conventional Commits 1.0.0-beta
title: Conventional Commits 1.0.0-beta.1
redirect_from: /lang/en/
---
# Conventional Commits 1.0.0-beta
# Conventional Commits 1.0.0-beta.1
## Summary
@ -31,7 +31,7 @@ consumers of your library:
2. **feat:** a commit of the _type_ `feat` introduces a new feature to the codebase (this correlates
with [`MINOR`](http://semver.org/#summary) in semantic versioning).
3. **BREAKING CHANGE:** a commit that has the text `BREAKING CHANGE:` at the beginning of its optional body or footer section introduces a breaking API change (correlating with [`Major`](http://semver.org/#summary) in semantic versioning). A breaking change can be
part of either a `fix:` or `feat:` _type_ commit.
part of commits of any _type_. e.g., a `fix:`, `feat:` & `chore:` types would all be valid, in addition to any other _type_.
<br />
A scope may be provided to a commit's type, to provide additional contextual information and

View File

@ -1,9 +1,9 @@
---
title: Conventional Commits 1.0.0-beta
title: Conventional Commits 1.0.0-beta.1
language: es
---
# Conventional Commits 1.0.0-beta
# Conventional Commits 1.0.0-beta.1
## Summary
@ -31,7 +31,7 @@ consumers of your library:
2. **feat:** a commit of the _type_ `feat` introduces a new feature to the codebase (this correlates
with [`MINOR`](http://semver.org/#summary) in semantic versioning).
3. **BREAKING CHANGE:** a commit that has the text `BREAKING CHANGE:` at the beginning of its optional body or footer section introduces a breaking API change (correlating with [`Major`](http://semver.org/#summary) in semantic versioning). A breaking change can be
part of either a `fix:` or `feat:` _type_ commit.
part of commits of any _type_. e.g., a `fix:`, `feat:` & `chore:` types would all be valid, in addition to any other _type_.
<br />
A scope may be provided to a commit's type, to provide additional contextual information and

View File

@ -0,0 +1,163 @@
---
title: Conventional Commits 1.0.0-beta
language: es
---
# Conventional Commits 1.0.0-beta
## Summary
As an open-source maintainer, squash feature branches onto `master` and write
a standardized commit message while doing so.
The commit message should be structured as follows:
---
```
<type>[optional scope]: <description>
[optional body]
[optional footer]
```
---
<br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:
1. **fix:** a commit of the _type_ `fix` patches a bug in your codebase (this correlates with [`PATCH`](http://semver.org/#summary) in semantic versioning).
2. **feat:** a commit of the _type_ `feat` introduces a new feature to the codebase (this correlates
with [`MINOR`](http://semver.org/#summary) in semantic versioning).
3. **BREAKING CHANGE:** a commit that has the text `BREAKING CHANGE:` at the beginning of its optional body or footer section introduces a breaking API change (correlating with [`Major`](http://semver.org/#summary) in semantic versioning). A breaking change can be
part of commits of any _type_. E.g., a `fix:`, `feat:` & `chore:` types would all be valid, in addition to any other _type_.
<br />
A scope may be provided to a commit's type, to provide additional contextual information and
is contained within parenthesis, e.g., `feat(parser): adds ability to parse arrays`.
Commit _types_ other than `fix:` and `feat:` are allowed, for example [the Angular convention](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit) recommends `docs:`, `style:`, `refactor:`, `perf:`, `test:`, `chore:`, but these tags are
not mandated by the conventional commits specification.
## Introduction
In software development, it's been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.
Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and [ideally a well maintained CHANGLOG](http://keepachangelog.com/en/0.3.0/)) is to the ensuing
forensic process.
The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with [SemVer](http://semver.org),
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.
By introducing this convention, we create a common language that makes it easier to
debug issues across project boundaries.
## Conventional Commits Specification
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
1. commits MUST be prefixed with a type, which consists of a verb, `feat`, `fix`, etc.,
followed by a colon and a space.
2. the type `feat` MUST be used when a commit adds a new feature to your application
or library.
3. the type `fix` MUST be used when a commit represents a bug fix for your application.
4. an optional scope MAY be provided after a type. A scope is a phrase describing
a section of the codebase enclosed in parenthesis, e.g., `fix(parser):`
5. A description MUST immediately follow the type/scope prefix.
The description is a short description of the pull request, e.g.,
_fix: array parsing issue when multiple spaces were contained in string._
6. A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.
7. A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request (such as the issues it fixes, e.g., `fixes #13, #5`).
8. Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text `BREAKING CHANGE`, followed by a colon and a space.
9. A description MUST be provided after the `BREAKING CHANGE: `, describing what
has changed about the API, e.g., _BREAKING CHANGE: environment variables now take precedence over config files._
10. types other than `feat` and `fix` MAY be used in your commit messages.
## Why Use Conventional Commits
* Automatically generating CHANGELOGs.
* Automatically determining a semantic version bump (based on the types of commits landed).
* Communicating the nature of changes to teammates, the public, and other stakeholders.
* Triggering build and publish processes.
* Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.
## FAQ
### How should I deal with commit messages in the initial development phase?
We recommend that you proceed as if you've an already released product. Typically *somebody*, even if its your fellow software developers, is using your software. They'll want to know what's fixed, what breaks etc.
### What do I do if the commit conforms to more than one of the commit types?
Go back and make multiple commits whenever possible. Part of the benefit of Conventional Commits is its ability to drive us to make more organized commits and PRs.
### Doesnt this discourage rapid development and fast iteration?
It discourages moving fast in a disorganized way. It helps you be able to move fast long term across multiple projects with varied contributors.
### Might Conventional Commits lead developers to limit the type of commits they make because they'll be thinking in the types provided?
Conventional Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.
### How does this relate to SemVer?
`fix` type commits should be translated to `PATCH` releases. `feat` type commits should be translated to `MINOR` releases. Commits with `BREAKING CHANGE` in the commits, regardless of type, should be translated to `MAJOR` releases.
### How should I version my extensions to the Conventional Commits Specification, e.g. `@jameswomack/conventional-commit-spec`?
We recommend using SemVer to release your own extensions to this specification (and
encourage you to make these extensions!)
### What do I do if I accidentally use the wrong commit type?
#### When you used a type that's of the spec but not the correct type, e.g. `fix` instead of `feat`
Prior to merging or releasing the mistake, we recommend using `git rebase -i` to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.
#### When you used a type *not* of the spec, e.g. `feet` instead of `feat`
In a worst case scenario, it's not the end of the world if a commit lands that does not meet the conventional commit specification. It simply means that commit will be missed by tools that are based on the spec.
### Do all my contributors need to use the conventional commit specification?
No! If you use a squash based workflow on Git lead maintainers can cleanup the commit messages as they're merged—adding no workload to casual committers. A common workflow for this is to have your git system automatically squash commits from a pull request and present a form for the lead maintainer to enter the proper git commit message for the merge.
## About
The Conventional Commit specification is inspired by, and based heavily on, the [Angular Commit Guidelines](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit).
The first draft of this specification has been written in collaboration with some of the
folks contributing to:
* [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog): a
set of tools for parsing conventional commit messages from git histories.
* [unleash](https://github.com/netflix/unleash): a tool for automating the
software release and publishing lifecycle.
* [lerna](https://github.com/lerna/lerna): a tool for managing monorepos, which grew out
of the Babel project.
## Projects Using Conventional Commits
* [yargs](https://github.com/yargs/yargs): everyone's favorite pirate themed command line argument parser.
* [istanbuljs](https://github.com/istanbuljs/istanbuljs): a collection of open-source tools
and libraries for adding test coverage to your JavaScript tests.
* [standard-version](https://github.com/conventional-changelog/standard-version): Automatic versioning and CHANGELOG management, using GitHub's new squash button and the recommended Conventional Commits workflow.
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
_want your project on this list?_ [send a pull request](https://github.com/conventional-changelog/conventionalcommits.org/pulls).
## License
[Creative Commons - CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)

163
spec/v1.0.0-beta.1.md Normal file
View File

@ -0,0 +1,163 @@
---
title: Conventional Commits 1.0.0-beta.1
redirect_from: /lang/en/
---
# Conventional Commits 1.0.0-beta.1
## Summary
As an open-source maintainer, squash feature branches onto `master` and write
a standardized commit message while doing so.
The commit message should be structured as follows:
---
```
<type>[optional scope]: <description>
[optional body]
[optional footer]
```
---
<br />
The commit contains the following structural elements, to communicate intent to the
consumers of your library:
1. **fix:** a commit of the _type_ `fix` patches a bug in your codebase (this correlates with [`PATCH`](http://semver.org/#summary) in semantic versioning).
2. **feat:** a commit of the _type_ `feat` introduces a new feature to the codebase (this correlates
with [`MINOR`](http://semver.org/#summary) in semantic versioning).
3. **BREAKING CHANGE:** a commit that has the text `BREAKING CHANGE:` at the beginning of its optional body or footer section introduces a breaking API change (correlating with [`Major`](http://semver.org/#summary) in semantic versioning). A breaking change can be
part of commits of any _type_. e.g., a `fix:`, `feat:` & `chore:` types would all be valid, in addition to any other _type_.
<br />
A scope may be provided to a commit's type, to provide additional contextual information and
is contained within parenthesis, e.g., `feat(parser): adds ability to parse arrays`.
Commit _types_ other than `fix:` and `feat:` are allowed, for example [the Angular convention](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit) recommends `docs:`, `style:`, `refactor:`, `perf:`, `test:`, `chore:`, but these tags are
not mandated by the conventional commits specification.
## Introduction
In software development, it's been my experience that bugs are most often introduced
at the boundaries between applications. Unit testing works great for testing the interactions
that an open-source maintainer knows about, but do a poor job of capturing all the
interesting, often unexpected, ways that a community puts a library to use.
Anyone who has upgraded to a new patch version of a dependency, only to watch their
application start throwing a steady stream of 500 errors, knows how important
a readable commit history (and [ideally a well maintained CHANGLOG](http://keepachangelog.com/en/0.3.0/)) is to the ensuing
forensic process.
The Conventional Commits specification proposes introducing a standardized lightweight
convention on top of commit messages. This convention dovetails with [SemVer](http://semver.org),
asking software developers to describe in commit messages, features, fixes, and breaking
changes that they make.
By introducing this convention, we create a common language that makes it easier to
debug issues across project boundaries.
## Conventional Commits Specification
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
1. commits MUST be prefixed with a type, which consists of a verb, `feat`, `fix`, etc.,
followed by a colon and a space.
2. the type `feat` MUST be used when a commit adds a new feature to your application
or library.
3. the type `fix` MUST be used when a commit represents a bug fix for your application.
4. an optional scope MAY be provided after a type. A scope is a phrase describing
a section of the codebase enclosed in parenthesis, e.g., `fix(parser):`
5. A description MUST immediately follow the type/scope prefix.
The description is a short description of the pull request, e.g.,
_fix: array parsing issue when multiple spaces were contained in string._
6. A longer commit body MAY be provided after the short description. The body MUST
begin one blank line after the description.
7. A footer MAY be provided one blank line after the body. The footer SHOULD contain
additional meta-information about the pull-request (such as the issues it fixes, e.g., `fixes #13, #5`).
8. Breaking changes MUST be indicated at the very beginning of the footer or body section of a commit. A breaking change MUST consist of the uppercase text `BREAKING CHANGE`, followed by a colon and a space.
9. A description MUST be provided after the `BREAKING CHANGE: `, describing what
has changed about the API, e.g., _BREAKING CHANGE: environment variables now take precedence over config files._
10. types other than `feat` and `fix` MAY be used in your commit messages.
## Why Use Conventional Commits
* Automatically generating CHANGELOGs.
* Automatically determining a semantic version bump (based on the types of commits landed).
* Communicating the nature of changes to teammates, the public, and other stakeholders.
* Triggering build and publish processes.
* Making it easier for people to contribute to your projects, by allowing them to explore
a more structured commit history.
## FAQ
### How should I deal with commit messages in the initial development phase?
We recommend that you proceed as if you've an already released product. Typically *somebody*, even if its your fellow software developers, is using your software. They'll want to know what's fixed, what breaks etc.
### What do I do if the commit conforms to more than one of the commit types?
Go back and make multiple commits whenever possible. Part of the benefit of Conventional Commits is its ability to drive us to make more organized commits and PRs.
### Doesnt this discourage rapid development and fast iteration?
It discourages moving fast in a disorganized way. It helps you be able to move fast long term across multiple projects with varied contributors.
### Might Conventional Commits lead developers to limit the type of commits they make because they'll be thinking in the types provided?
Conventional Commits encourages us to make more of certain types of commits such as fixes. Other than that, the flexibility of Conventional Commits allows your team to come up with their own types and change those types over time.
### How does this relate to SemVer?
`fix` type commits should be translated to `PATCH` releases. `feat` type commits should be translated to `MINOR` releases. Commits with `BREAKING CHANGE` in the commits, regardless of type, should be translated to `MAJOR` releases.
### How should I version my extensions to the Conventional Commits Specification, e.g. `@jameswomack/conventional-commit-spec`?
We recommend using SemVer to release your own extensions to this specification (and
encourage you to make these extensions!)
### What do I do if I accidentally use the wrong commit type?
#### When you used a type that's of the spec but not the correct type, e.g. `fix` instead of `feat`
Prior to merging or releasing the mistake, we recommend using `git rebase -i` to edit the commit history. After release, the cleanup will be different according to what tools and processes you use.
#### When you used a type *not* of the spec, e.g. `feet` instead of `feat`
In a worst case scenario, it's not the end of the world if a commit lands that does not meet the conventional commit specification. It simply means that commit will be missed by tools that are based on the spec.
### Do all my contributors need to use the conventional commit specification?
No! If you use a squash based workflow on Git lead maintainers can cleanup the commit messages as they're merged—adding no workload to casual committers. A common workflow for this is to have your git system automatically squash commits from a pull request and present a form for the lead maintainer to enter the proper git commit message for the merge.
## About
The Conventional Commit specification is inspired by, and based heavily on, the [Angular Commit Guidelines](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit).
The first draft of this specification has been written in collaboration with some of the
folks contributing to:
* [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog): a
set of tools for parsing conventional commit messages from git histories.
* [unleash](https://github.com/netflix/unleash): a tool for automating the
software release and publishing lifecycle.
* [lerna](https://github.com/lerna/lerna): a tool for managing monorepos, which grew out
of the Babel project.
## Projects Using Conventional Commits
* [yargs](https://github.com/yargs/yargs): everyone's favorite pirate themed command line argument parser.
* [istanbuljs](https://github.com/istanbuljs/istanbuljs): a collection of open-source tools
and libraries for adding test coverage to your JavaScript tests.
* [standard-version](https://github.com/conventional-changelog/standard-version): Automatic versioning and CHANGELOG management, using GitHub's new squash button and the recommended Conventional Commits workflow.
[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
_want your project on this list?_ [send a pull request](https://github.com/conventional-changelog/conventionalcommits.org/pulls).
## License
[Creative Commons - CC BY 3.0](http://creativecommons.org/licenses/by/3.0/)