diff --git a/_config.yml b/_config.yml index 74f266e..a6c742d 100644 --- a/_config.yml +++ b/_config.yml @@ -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 diff --git a/_site/CNAME b/_site/CNAME deleted file mode 100644 index d0bb166..0000000 --- a/_site/CNAME +++ /dev/null @@ -1 +0,0 @@ -conventionalcommits.org diff --git a/_site/README.md b/_site/README.md deleted file mode 100644 index 904ac26..0000000 --- a/_site/README.md +++ /dev/null @@ -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. diff --git a/_site/css/blueprint/ie.css b/_site/css/blueprint/ie.css deleted file mode 100644 index f336f0e..0000000 --- a/_site/css/blueprint/ie.css +++ /dev/null @@ -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;} \ No newline at end of file diff --git a/_site/css/blueprint/print.css b/_site/css/blueprint/print.css deleted file mode 100644 index fdb8220..0000000 --- a/_site/css/blueprint/print.css +++ /dev/null @@ -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%;} \ No newline at end of file diff --git a/_site/css/blueprint/screen.css b/_site/css/blueprint/screen.css deleted file mode 100644 index 2c2b328..0000000 --- a/_site/css/blueprint/screen.css +++ /dev/null @@ -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;} \ No newline at end of file diff --git a/_site/css/lang/ar.css b/_site/css/lang/ar.css deleted file mode 100644 index 462f1a6..0000000 --- a/_site/css/lang/ar.css +++ /dev/null @@ -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; -} diff --git a/_site/css/lang/zh-CN.css b/_site/css/lang/zh-CN.css deleted file mode 100644 index f1ee22c..0000000 --- a/_site/css/lang/zh-CN.css +++ /dev/null @@ -1,3 +0,0 @@ -html { font-size: 16px; } - -h1, h2, h3 { font-family: "Microsoft YaHei", "Heiti TC", "Heiti SC"; } diff --git a/_site/css/lang/zh-TW.css b/_site/css/lang/zh-TW.css deleted file mode 100644 index 24cc633..0000000 --- a/_site/css/lang/zh-TW.css +++ /dev/null @@ -1,3 +0,0 @@ -html { font-size: 16px; } - -h1, h2, h3 { font-family: "Microsoft JhengHei", "Microsoft YaHei", "Heiti TC", "Heiti SC"; } diff --git a/_site/css/main.css b/_site/css/main.css deleted file mode 100644 index bd472a4..0000000 --- a/_site/css/main.css +++ /dev/null @@ -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; -} diff --git a/_site/css/screen.css b/_site/css/screen.css deleted file mode 100644 index ee0c7a4..0000000 --- a/_site/css/screen.css +++ /dev/null @@ -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; -} \ No newline at end of file diff --git a/_site/css/syntax.css b/_site/css/syntax.css deleted file mode 100644 index 2774b76..0000000 --- a/_site/css/syntax.css +++ /dev/null @@ -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 */ diff --git a/_site/index.html b/_site/index.html deleted file mode 100644 index 1d9145b..0000000 --- a/_site/index.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - -Conventional Commits 1.0.0-beta - Conventional Commits - - - - - - - - - - - -
-

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]
-
-
-
- -


-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 in semantic versioning).
  2. -
  3. feat: a commit of the type feat introduces a new feature to the codebase (this correlates - with MINOR in semantic versioning).
  4. -
  5. 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 in semantic versioning). A breaking change can be - part of either a fix: or feat: type commit.
  6. -
- -


-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 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) 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, -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 codebase 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.

- -
    -
  1. commits MUST be prefixed with a type, which consists of a verb, feat, fix, etc., -followed by a colon and a space.
  2. -
  3. the type feat MUST be used when a commit adds a new feature to your application - or library.
  4. -
  5. the type fix MUST be used when a commit represents a bug fix for your application.
  6. -
  7. 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., fix(parser):
  8. -
  9. A description MUST immediately follow the type and optional scope. - The description is a short description of the pull request, e.g., - fix: array parsing issue when multiple spaces were contained in string.
  10. -
  11. A longer commit body MAY be provided after the short description. The body MUST -begin one blank line after the description.
  12. -
  13. 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.
  14. -
  15. 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. A short - description MUST be provided after BREAKING CHANGE: , describing why the change is - breaking, e.g., BREAKING CHANGE: I must now leave Earth for no raisin!
  16. -
  17. types other than feat and fix MAY be used in your commit messages.
  18. -
- -

Why Use Conventional Commits

- - - -

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 beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.

- -

Doesn’t 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 and across more projects with more diverse teams.

- -

Might Conventional Commits lead developers to limit the type of commits they make because they’ll be thinking in the types provided?

- -

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.

- -

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 commit type specification extensions, e.g. @jameswomack/conventional-commit-spec?

- -

We recommend using SemVer and publishing to an NPM-compatible registry.

- -

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 standard.

- -

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.

- -

Who’s Behind This/Inspired This?

- -

The Conventional Commit standard is inspired by the Angular Commit Guidelines, which -I was introduced to by the wondeful folks behind semantic-release (a tool - that fully automates npm publishes).

- -

The first draft of this specification has been written in collaboration with some of the -folks contributing to:

- - - -

License

- -

Creative Commons - CC BY 3.0

- -
- - - diff --git a/_site/js/anchorli.js b/_site/js/anchorli.js deleted file mode 100644 index 3b8a201..0000000 --- a/_site/js/anchorli.js +++ /dev/null @@ -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) - } - } -}; diff --git a/_site/lang/en/index.html b/_site/lang/en/index.html deleted file mode 100644 index f98f9a9..0000000 --- a/_site/lang/en/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - Redirecting… - - -

Redirecting…

- Click here if you are not redirected. - - diff --git a/_site/lang/es/index.html b/_site/lang/es/index.html deleted file mode 100644 index 5e501da..0000000 --- a/_site/lang/es/index.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - -Conventional Commits 1.0.0-beta - Conventional Commits - - - - - - - - - - - -
-

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]
-
-
-
- -


-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 in semantic versioning).
  2. -
  3. feat: a commit of the type feat introduces a new feature to the codebase (this correlates - with MINOR in semantic versioning).
  4. -
  5. 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 in semantic versioning). A breaking change can be - part of either a fix: or feat: type commit.
  6. -
- -


-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 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) 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, -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 codebase 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.

- -
    -
  1. commits MUST be prefixed with a type, which consists of a verb, feat, fix, etc., -followed by a colon and a space.
  2. -
  3. the type feat MUST be used when a commit adds a new feature to your application - or library.
  4. -
  5. the type fix MUST be used when a commit represents a bug fix for your application.
  6. -
  7. 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., fix(parser):
  8. -
  9. A description MUST immediately follow the type and optional scope. - The description is a short description of the pull request, e.g., - fix: array parsing issue when multiple spaces were contained in string.
  10. -
  11. A longer commit body MAY be provided after the short description. The body MUST -begin one blank line after the description.
  12. -
  13. 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.
  14. -
  15. 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. A short - description MUST be provided after BREAKING CHANGE: , describing why the change is - breaking, e.g., BREAKING CHANGE: I must now leave Earth for no raisin!
  16. -
  17. types other than feat and fix MAY be used in your commit messages.
  18. -
- -

Why Use Conventional Commits

- - - -

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 beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.

- -

Doesn’t 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 and across more projects with more diverse teams.

- -

Might Conventional Commits lead developers to limit the type of commits they make because they’ll be thinking in the types provided?

-

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.

- -

How does this relate to SemVer?

- -

we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if you’ve landed only fix: commits use a patch version, if you’ve landed a feature use a minor release, if you’ve landed a breaking change use a major release.

- -

What do I do if I accidentally use the wrong commit type?

- -

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.

- -

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

- -

Who’s Behind This/Inspired This?

- -

The Conventional Commit standard is inspired by the Angular Commit Guidelines, which -I was introduced to by the wondeful folks behind semantic-release (a tool - that fully automates npm publishes).

- -

The first draft of this specification has been written in collaboration with some of the -folks contributing to:

- - - -

License

- -

Creative Commons - CC BY 3.0

- -
- - - diff --git a/_site/lang/es/spec/v1.0.0-beta.html b/_site/lang/es/spec/v1.0.0-beta.html deleted file mode 100644 index 21a099f..0000000 --- a/_site/lang/es/spec/v1.0.0-beta.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - -Conventional Commits 1.0.0-beta - Conventional Commits - - - - - - - - - - - -
-

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]
-
-
-
- -


-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 in semantic versioning).
  2. -
  3. feat: a commit of the type feat introduces a new feature to the codebase (this correlates - with MINOR in semantic versioning).
  4. -
  5. 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 in semantic versioning). A breaking change can be - part of either a fix: or feat: type commit.
  6. -
- -


-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 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) 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, -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 codebase 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.

- -
    -
  1. commits MUST be prefixed with a type, which consists of a verb, feat, fix, etc., -followed by a colon and a space.
  2. -
  3. the type feat MUST be used when a commit adds a new feature to your application - or library.
  4. -
  5. the type fix MUST be used when a commit represents a bug fix for your application.
  6. -
  7. 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., fix(parser):
  8. -
  9. A description MUST immediately follow the type and optional scope. - The description is a short description of the pull request, e.g., - fix: array parsing issue when multiple spaces were contained in string.
  10. -
  11. A longer commit body MAY be provided after the short description. The body MUST -begin one blank line after the description.
  12. -
  13. 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.
  14. -
  15. 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. A short - description MUST be provided after BREAKING CHANGE: , describing why the change is - breaking, e.g., BREAKING CHANGE: I must now leave Earth for no raisin!
  16. -
  17. types other than feat and fix MAY be used in your commit messages.
  18. -
- -

Why Use Conventional Commits

- - - -

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 beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.

- -

Doesn’t 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 and across more projects with more diverse teams.

- -

Might Conventional Commits lead developers to limit the type of commits they make because they’ll be thinking in the types provided?

-

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.

- -

How does this relate to SemVer?

- -

we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if you’ve landed only fix: commits use a patch version, if you’ve landed a feature use a minor release, if you’ve landed a breaking change use a major release.

- -

What do I do if I accidentally use the wrong commit type?

- -

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.

- -

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

- -

Who’s Behind This/Inspired This?

- -

The Conventional Commit standard is inspired by the Angular Commit Guidelines, which -I was introduced to by the wondeful folks behind semantic-release (a tool - that fully automates npm publishes).

- -

The first draft of this specification has been written in collaboration with some of the -folks contributing to:

- - - -

License

- -

Creative Commons - CC BY 3.0

- -
- - - diff --git a/_site/robots.txt b/_site/robots.txt deleted file mode 100644 index d297064..0000000 --- a/_site/robots.txt +++ /dev/null @@ -1 +0,0 @@ -Sitemap: http://localhost:4000/sitemap.xml diff --git a/_site/script/bootstrap b/_site/script/bootstrap deleted file mode 100755 index 7d35d75..0000000 --- a/_site/script/bootstrap +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -bundle install diff --git a/_site/script/cibuild b/_site/script/cibuild deleted file mode 100755 index b9f02a3..0000000 --- a/_site/script/cibuild +++ /dev/null @@ -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 diff --git a/_site/script/server b/_site/script/server deleted file mode 100755 index 9ffed55..0000000 --- a/_site/script/server +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -bundle exec jekyll serve --config _config.yml,_config_local.yml diff --git a/_site/sitemap.xml b/_site/sitemap.xml deleted file mode 100644 index 7bdb949..0000000 --- a/_site/sitemap.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - -http://localhost:4000/lang/es/ - - -http://localhost:4000/ - - -http://localhost:4000/lang/es/spec/v1.0.0-beta.html - - -http://localhost:4000/spec/v1.0.0-beta.html - - diff --git a/_site/spec/v1.0.0-beta.html b/_site/spec/v1.0.0-beta.html deleted file mode 100644 index 1c298f0..0000000 --- a/_site/spec/v1.0.0-beta.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - -Conventional Commits 1.0.0-beta - Conventional Commits - - - - - - - - - - - -
-

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]
-
-
-
- -


-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 in semantic versioning).
  2. -
  3. feat: a commit of the type feat introduces a new feature to the codebase (this correlates - with MINOR in semantic versioning).
  4. -
  5. 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 in semantic versioning). A breaking change can be - part of either a fix: or feat: type commit.
  6. -
- -


-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 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) 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, -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 codebase 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.

- -
    -
  1. commits MUST be prefixed with a type, which consists of a verb, feat, fix, etc., -followed by a colon and a space.
  2. -
  3. the type feat MUST be used when a commit adds a new feature to your application - or library.
  4. -
  5. the type fix MUST be used when a commit represents a bug fix for your application.
  6. -
  7. 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., fix(parser):
  8. -
  9. A description MUST immediately follow the type and optional scope. - The description is a short description of the pull request, e.g., - fix: array parsing issue when multiple spaces were contained in string.
  10. -
  11. A longer commit body MAY be provided after the short description. The body MUST -begin one blank line after the description.
  12. -
  13. 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.
  14. -
  15. 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. A short - description MUST be provided after BREAKING CHANGE: , describing why the change is - breaking, e.g., BREAKING CHANGE: I must now leave Earth for no raisin!
  16. -
  17. types other than feat and fix MAY be used in your commit messages.
  18. -
- -

Why Use Conventional Commits

- - - -

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 beautify of Conventional Commits is its ability to drive us to make more organized commits and PRs.

- -

Doesn’t 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 and across more projects with more diverse teams.

- -

Might Conventional Commits lead developers to limit the type of commits they make because they’ll be thinking in the types provided?

-

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.

- -

How does this relate to SemVer?

- -

we encourage you do use Conventional Commits in conjunction with semantic-versioning. When you publish a version of your library, if you’ve landed only fix: commits use a patch version, if you’ve landed a feature use a minor release, if you’ve landed a breaking change use a major release.

- -

What do I do if I accidentally use the wrong commit type?

- -

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.

- -

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

- -

Who’s Behind This/Inspired This?

- -

The Conventional Commit standard is inspired by the Angular Commit Guidelines, which -I was introduced to by the wondeful folks behind semantic-release (a tool - that fully automates npm publishes).

- -

The first draft of this specification has been written in collaboration with some of the -folks contributing to:

- - - -

License

- -

Creative Commons - CC BY 3.0

- -
- - - diff --git a/index.md b/index.md index a36a605..a8baae5 100644 --- a/index.md +++ b/index.md @@ -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_.
A scope may be provided to a commit's type, to provide additional contextual information and diff --git a/lang/es/index.md b/lang/es/index.md index ad1e042..802fbd0 100644 --- a/lang/es/index.md +++ b/lang/es/index.md @@ -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_.
A scope may be provided to a commit's type, to provide additional contextual information and diff --git a/lang/es/spec/v1.0.0-beta.1.md b/lang/es/spec/v1.0.0-beta.1.md new file mode 100644 index 0000000..8227811 --- /dev/null +++ b/lang/es/spec/v1.0.0-beta.1.md @@ -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: + +--- + +``` +[optional scope]: + +[optional body] + +[optional footer] +``` +--- + +
+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_. + +
+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. + +### Doesn’t 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/) diff --git a/spec/v1.0.0-beta.1.md b/spec/v1.0.0-beta.1.md new file mode 100644 index 0000000..a8baae5 --- /dev/null +++ b/spec/v1.0.0-beta.1.md @@ -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: + +--- + +``` +[optional scope]: + +[optional body] + +[optional footer] +``` +--- + +
+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_. + +
+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. + +### Doesn’t 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/)