mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-23 19:26:33 +00:00
chore: integrate versionist (#594)
Versionist is a small utility to automatically generate CHANGELOGs based on a certain commit convention. This PR adds a new `changelog` npm script that calls Versionist to preppend a new CHANGELOG entry based on our current structure. Dealing with links to changes between versions in GitHub is hard to automatise with a tool like Versionist. We chose to get rid of such links since they are a nice to have, but don't provide any meaningful value to maintainers, since they can manually see the diffs with `git diff`. Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
This commit is contained in:
parent
f02202c244
commit
31e02f64b8
34
CHANGELOG.md
34
CHANGELOG.md
@ -3,7 +3,7 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
## [v1.0.0-beta.11] - 2016-07-17
|
## v1.0.0-beta.11 - 2016-07-17
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Upgrade `etcher-image-write` to v5.0.2.
|
- Upgrade `etcher-image-write` to v5.0.2.
|
||||||
|
|
||||||
## [v1.0.0-beta.10] - 2016-06-27
|
## v1.0.0-beta.10 - 2016-06-27
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -49,13 +49,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Add a GitHub issue template.
|
- Add a GitHub issue template.
|
||||||
- Open DevTools in "undocked" mode by default.
|
- Open DevTools in "undocked" mode by default.
|
||||||
|
|
||||||
## [v1.0.0-beta.9] - 2016-06-20
|
## v1.0.0-beta.9 - 2016-06-20
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
- Don't interpret image file name information between dots as image extensions.
|
- Don't interpret image file name information between dots as image extensions.
|
||||||
|
|
||||||
## [v1.0.0-beta.8] - 2016-06-15
|
## v1.0.0-beta.8 - 2016-06-15
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Write a document explaining Etcher's architecture.
|
- Write a document explaining Etcher's architecture.
|
||||||
|
|
||||||
## [v1.0.0-beta.7] - 2016-05-26
|
## v1.0.0-beta.7 - 2016-05-26
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -97,7 +97,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Upgrade Electron to v1.1.1.
|
- Upgrade Electron to v1.1.1.
|
||||||
- Various improvements to the build system.
|
- Various improvements to the build system.
|
||||||
|
|
||||||
## [v1.0.0-beta.6] - 2016-05-12
|
## v1.0.0-beta.6 - 2016-05-12
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Remove implicit "Enable" from settings screen items.
|
- Remove implicit "Enable" from settings screen items.
|
||||||
|
|
||||||
## [v1.0.0-beta.5] - 2016-05-04
|
## v1.0.0-beta.5 - 2016-05-04
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Deprecate GNU/Linux `.tar.gz` installers in favor of AppImages.
|
- Deprecate GNU/Linux `.tar.gz` installers in favor of AppImages.
|
||||||
|
|
||||||
## [v1.0.0-beta.4] - 2016-04-22
|
## v1.0.0-beta.4 - 2016-04-22
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Upgrade Electron to v0.37.6.
|
- Upgrade Electron to v0.37.6.
|
||||||
- Integrate Etcher CLI in this git repository.
|
- Integrate Etcher CLI in this git repository.
|
||||||
|
|
||||||
## [v1.0.0-beta.3] - 2016-04-17
|
## v1.0.0-beta.3 - 2016-04-17
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Make GNU/Linux binary lowercase.
|
- Make GNU/Linux binary lowercase.
|
||||||
- Replace all occurrences of "burn" with "flash".
|
- Replace all occurrences of "burn" with "flash".
|
||||||
|
|
||||||
## [v1.0.0-beta.2] - 2016-04-07
|
## v1.0.0-beta.2 - 2016-04-07
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Heavy general refactoring.
|
- Heavy general refactoring.
|
||||||
|
|
||||||
## [v1.0.0-beta.1] - 2016-03-28
|
## v1.0.0-beta.1 - 2016-03-28
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -218,15 +218,3 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Make sure error is logged if its trapped with an error dialog.
|
- Make sure error is logged if its trapped with an error dialog.
|
||||||
- Fix broken state when going to settings from the success screen.
|
- Fix broken state when going to settings from the success screen.
|
||||||
- Fix `Cannot read property 'length' of undefined` frequent issue.
|
- Fix `Cannot read property 'length' of undefined` frequent issue.
|
||||||
|
|
||||||
[v1.0.0-beta.11]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.10...v1.0.0-beta.11
|
|
||||||
[v1.0.0-beta.10]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.9...v1.0.0-beta.10
|
|
||||||
[v1.0.0-beta.9]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.8...v1.0.0-beta.9
|
|
||||||
[v1.0.0-beta.8]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.7...v1.0.0-beta.8
|
|
||||||
[v1.0.0-beta.7]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.6...v1.0.0-beta.7
|
|
||||||
[v1.0.0-beta.6]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.5...v1.0.0-beta.6
|
|
||||||
[v1.0.0-beta.5]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.4...v1.0.0-beta.5
|
|
||||||
[v1.0.0-beta.4]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.3...v1.0.0-beta.4
|
|
||||||
[v1.0.0-beta.3]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.2...v1.0.0-beta.3
|
|
||||||
[v1.0.0-beta.2]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.1...v1.0.0-beta.2
|
|
||||||
[v1.0.0-beta.1]: https://github.com/resin-io/etcher/compare/v1.0.0-beta.0...v1.0.0-beta.1
|
|
||||||
|
@ -12,16 +12,7 @@ Preparing a new version
|
|||||||
- Bump the version number in the `package.json`'s `builder.win.version`
|
- Bump the version number in the `package.json`'s `builder.win.version`
|
||||||
property.
|
property.
|
||||||
|
|
||||||
- Add a new entry to `CHANGELOG.md` describing what has been added, changed, or
|
- Add a new entry to `CHANGELOG.md` by running `npm run changelog`.
|
||||||
removed. Please use the imperative mode and capitalize the first letter of
|
|
||||||
each item.
|
|
||||||
|
|
||||||
- Link the `CHANGELOG.md` entry to the GitHub page displaying the diffs between
|
|
||||||
the previous and the current version.
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
https://github.com/resin-io/etcher/compare/<previous>...<current>
|
|
||||||
```
|
|
||||||
|
|
||||||
- Re-take `screenshot.png` so it displays the latest version in the bottom
|
- Re-take `screenshot.png` so it displays the latest version in the bottom
|
||||||
right corner.
|
right corner.
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run lint && electron-mocha --recursive --renderer tests/gui -R min",
|
"test": "npm run lint && electron-mocha --recursive --renderer tests/gui -R min",
|
||||||
"sass": "node-sass ./lib/gui/scss/main.scss > build/css/main.css",
|
"sass": "node-sass ./lib/gui/scss/main.scss > build/css/main.css",
|
||||||
"lint": "eslint lib tests scripts bin",
|
"lint": "eslint lib tests scripts bin versionist.conf.js",
|
||||||
|
"changelog": "versionist",
|
||||||
"start": "electron lib/start.js",
|
"start": "electron lib/start.js",
|
||||||
"shrinkwrap": "node ./scripts/shrinkwrap.js"
|
"shrinkwrap": "node ./scripts/shrinkwrap.js"
|
||||||
},
|
},
|
||||||
@ -99,7 +100,8 @@
|
|||||||
"eslint": "^2.13.1",
|
"eslint": "^2.13.1",
|
||||||
"jsonfile": "^2.3.1",
|
"jsonfile": "^2.3.1",
|
||||||
"mochainon": "^1.0.0",
|
"mochainon": "^1.0.0",
|
||||||
"node-sass": "^3.8.0"
|
"node-sass": "^3.8.0",
|
||||||
|
"versionist": "^2.1.0"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"commitizen": {
|
"commitizen": {
|
||||||
|
92
versionist.conf.js
Normal file
92
versionist.conf.js
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016 Resin.io
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
subjectParser: 'angular',
|
||||||
|
|
||||||
|
getGitReferenceFromVersion: 'v-prefix',
|
||||||
|
|
||||||
|
editChangelog: true,
|
||||||
|
|
||||||
|
editVersion: false,
|
||||||
|
|
||||||
|
addEntryToChangelog: {
|
||||||
|
preset: 'prepend',
|
||||||
|
fromLine: 5
|
||||||
|
},
|
||||||
|
|
||||||
|
includeCommitWhen: (commit) => {
|
||||||
|
return commit.footer['Changelog-Entry'];
|
||||||
|
},
|
||||||
|
|
||||||
|
getIncrementLevelFromCommit: (commit) => {
|
||||||
|
return commit.footer['Change-Type'];
|
||||||
|
},
|
||||||
|
|
||||||
|
transformTemplateData: (data) => {
|
||||||
|
data.features = data.commits.filter((commit) => {
|
||||||
|
return commit.subject.type === 'feat';
|
||||||
|
});
|
||||||
|
|
||||||
|
data.fixes = data.commits.filter((commit) => {
|
||||||
|
return commit.subject.type === 'fix';
|
||||||
|
});
|
||||||
|
|
||||||
|
data.misc = data.commits.filter((commit) => {
|
||||||
|
return ![ 'fix', 'feat' ].includes(commit.subject.type);
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
|
||||||
|
template: [
|
||||||
|
'## v{{version}} - {{moment date "Y-MM-DD"}}',
|
||||||
|
'{{#if features.length}}',
|
||||||
|
'',
|
||||||
|
'### Features',
|
||||||
|
'',
|
||||||
|
'{{#each features}}',
|
||||||
|
'{{#with footer}}',
|
||||||
|
'- {{capitalize Changelog-Entry}}',
|
||||||
|
'{{/with}}',
|
||||||
|
'{{/each}}',
|
||||||
|
'{{/if}}',
|
||||||
|
'{{#if fixes.length}}',
|
||||||
|
'',
|
||||||
|
'### Fixes',
|
||||||
|
'',
|
||||||
|
'{{#each fixes}}',
|
||||||
|
'{{#with footer}}',
|
||||||
|
'- {{capitalize Changelog-Entry}}',
|
||||||
|
'{{/with}}',
|
||||||
|
'{{/each}}',
|
||||||
|
'{{/if}}',
|
||||||
|
'{{#if misc.length}}',
|
||||||
|
'',
|
||||||
|
'### Misc',
|
||||||
|
'',
|
||||||
|
'{{#each misc}}',
|
||||||
|
'{{#with footer}}',
|
||||||
|
'- {{capitalize Changelog-Entry}}',
|
||||||
|
'{{/with}}',
|
||||||
|
'{{/each}}',
|
||||||
|
'{{/if}}'
|
||||||
|
].join('\n')
|
||||||
|
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user