Merge pull request #57 from resin-os/nested-changelog
versionbot: Add changelog yml file
This commit is contained in:
commit
4b5debda60
4 changed files with 121 additions and 110 deletions
115
.versionbot/CHANGELOG.yml
Normal file
115
.versionbot/CHANGELOG.yml
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
- version: 2.14.3+rev3
|
||||||
|
date: 2018-09-25T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: >-
|
||||||
|
Update the poky submodule to sumo-19.0.1 [Florin Sarbu]
|
||||||
|
- version: 2.14.3+rev2
|
||||||
|
date: 2018-09-09T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Add new style docs links for NanoPi Neo Air [Florin Sarbu]'
|
||||||
|
- subject: >-
|
||||||
|
Use nanopi-neo-air.conf machine definition from the BSP layer [Florin
|
||||||
|
Sarbu]
|
||||||
|
- subject: >-
|
||||||
|
Set PREFERRED_VERSION linux-mainline to 4.17.3 for bananapi-m1-plus
|
||||||
|
[Florin Sarbu]
|
||||||
|
- subject: 'Clean-up swap, conf-notes.txt and obsolete kernel recipes [Florin Sarbu]'
|
||||||
|
- subject: 'Add LAYERSERIES_COMPAT to yocto in layer.conf [Florin Sarbu]'
|
||||||
|
- subject: 'Add versionist support [Giovanni Garufi]'
|
||||||
|
- version: 2.14.3+rev1
|
||||||
|
date: 2018-08-13T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.14.3 [Florin]'
|
||||||
|
- subject: 'Switch to Yocto Sumo 19.0.0 [Florin]'
|
||||||
|
- version: 2.14.0+rev3
|
||||||
|
date: 2018-07-26T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: >-
|
||||||
|
linux-mainline: Enable CONFIG_USB_SERIAL_OPTION necessary for modems
|
||||||
|
functionality [Sebastian]
|
||||||
|
- version: 2.14.0+rev2
|
||||||
|
date: 2018-07-25T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: >-
|
||||||
|
linux-mainline: Enable drivers for CP210x usb-serial converters
|
||||||
|
[Sebastian]
|
||||||
|
- subject: 'linux-mainline: Enable drivers for Huawei modems [Sebastian]'
|
||||||
|
- subject: >-
|
||||||
|
Update the resin-yocto-scripts submodule to
|
||||||
|
8312741e13604a9d166370349061876afb22c0fa [Sebastian]
|
||||||
|
- version: 2.14.0+rev1
|
||||||
|
date: 2018-07-17T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.14.0 [Florin]'
|
||||||
|
- version: 2.13.6+rev1
|
||||||
|
date: 2018-07-12T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.13.6 [Sebastian]'
|
||||||
|
- subject: 'linux-mainline: Revert "random: fix crng_ready() test" patch [Sebastian]'
|
||||||
|
- subject: 'coffeescript: Add instructions for flashing OrangePi Plus2 [Thodoris]'
|
||||||
|
- version: 2.13.5+rev1
|
||||||
|
date: 2018-07-08T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.13.5 [Sebastian]'
|
||||||
|
- subject: >-
|
||||||
|
Update the resin-yocto-scripts submodule to
|
||||||
|
59ccd8558435ff6424827fb36ccb43b14650f4d4 [Sebastian]
|
||||||
|
- version: 2.13.3+rev1
|
||||||
|
date: 2018-07-03T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update meta-resin submodule to version 2.13.3 [Sebastian]'
|
||||||
|
- subject: >-
|
||||||
|
linux-mainline: Update kernel to 4.17.3 version for OrangePi Plus2
|
||||||
|
[Sebastian]
|
||||||
|
- subject: >-
|
||||||
|
linux-mainline: Activate USB_SERIAL_PL2303 kernel module for
|
||||||
|
OrangePi-Plus2 [Sebastian]
|
||||||
|
- subject: 'linux-mainline: Enable i2c0 in OrangePi-Plus2 device tree [Sebastian]'
|
||||||
|
- version: 2.12.7+rev3
|
||||||
|
date: 2018-05-22T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: >-
|
||||||
|
packagegroup-resin-connectivity: Add necessary firmware for WiFi
|
||||||
|
[Sebastian]
|
||||||
|
- version: 2.12.7+rev2
|
||||||
|
date: 2018-05-15T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'hostapp-update-hooks: Fix bootloader update hook [Sebastian]'
|
||||||
|
- version: 2.12.7+rev1
|
||||||
|
date: 2018-05-10T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.12.7 [Sebastian]'
|
||||||
|
- subject: 'Add support for the OrangePi Plus2 device [Sebastian]'
|
||||||
|
- version: 2.12.6+rev1
|
||||||
|
date: 2018-05-01T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update the meta-resin submodule to version v2.12.6 [Florin]'
|
||||||
|
- version: 2.12.5+rev4
|
||||||
|
date: 2018-04-12T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Use correct deploy artifact name in coffescript [Sebastian]'
|
||||||
|
- subject: 'Use native python as u-boot tool [Sebastian]'
|
||||||
|
- subject: >-
|
||||||
|
Update resin-yocto-scripts to f7718efbbf53369aaacb7eb54e707ee8a5d4fc4b
|
||||||
|
[Sebastian]
|
||||||
|
- version: 2.12.5+rev3
|
||||||
|
date: 2018-03-29T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Remove oe-meta-go layer from .gitmodules [Sebastian]'
|
||||||
|
- version: 2.12.5+rev2
|
||||||
|
date: 2018-03-29T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: >-
|
||||||
|
Update resin-yocto-scripts to 9cecb1ca4d9d4713dd337148b7d04a17afdba772
|
||||||
|
[Sebastian]
|
||||||
|
- version: 2.12.5+rev1
|
||||||
|
date: 2018-03-25T22:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Update meta-resin submodule to version v2.12.5 [Sebastian]'
|
||||||
|
- subject: >-
|
||||||
|
Update resin-yocto-scripts to 51b8849e2a02d0d4e729bff24909d9746e0bf4c3
|
||||||
|
[Sebastian]
|
||||||
|
- version: 2.12.3+rev1
|
||||||
|
date: 2018-03-20T23:00:00.000Z
|
||||||
|
commits:
|
||||||
|
- subject: 'Add support for BananaPi-M1+ boards [Sebastian]'
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
"private": true,
|
|
||||||
"devDependencies": {
|
|
||||||
"lodash": "^4.17.10",
|
|
||||||
"semver": "^5.5.1",
|
|
||||||
"shelljs": "^0.8.2"
|
|
||||||
}
|
|
||||||
}
|
|
6
repo.yml
Normal file
6
repo.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
type: 'yocto-based OS image'
|
||||||
|
reviewers: 1
|
||||||
|
upstream:
|
||||||
|
repo: 'meta-resin'
|
||||||
|
url: 'http://github.com/resin-os/meta-resin'
|
|
@ -1,102 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const _ = require('lodash')
|
|
||||||
const fs = require('fs')
|
|
||||||
const path = require('path')
|
|
||||||
const semver = require('semver')
|
|
||||||
const shell = require('shelljs')
|
|
||||||
|
|
||||||
const getAuthor = (commitHash) => {
|
|
||||||
const authorCmd = shell.exec(`git show --quiet --format="%an" ${commitHash}`)
|
|
||||||
if (authorCmd.code !== 0) {
|
|
||||||
throw new Error(authorCmd.stderr)
|
|
||||||
}
|
|
||||||
return authorCmd.stdout.replace('\n', '')
|
|
||||||
}
|
|
||||||
|
|
||||||
const compareExtendedSemver = (a, b) => {
|
|
||||||
const semverCompare = semver.compare(a, b)
|
|
||||||
if (semverCompare !== 0) {
|
|
||||||
return semverCompare
|
|
||||||
}
|
|
||||||
return a.localeCompare(b)
|
|
||||||
}
|
|
||||||
|
|
||||||
const getMetaResinFromSubmodule = (documentedVersions, history, callback) => {
|
|
||||||
shell.exec('git submodule status layers/meta-resin', (code, stdout, stderr) => {
|
|
||||||
if (code != 0) {
|
|
||||||
return callback(new Error('Could not find meta-resin submodule'))
|
|
||||||
}
|
|
||||||
const match = /.{40} .* \(v(.+)\)/.exec(stdout)
|
|
||||||
|
|
||||||
if (!match) {
|
|
||||||
return callback(new Error(`Could not determine meta-resin version from version ${stdout}`))
|
|
||||||
}
|
|
||||||
|
|
||||||
const metaVersion = `${match[1]}+rev0`
|
|
||||||
const latestDocumented = _.trim(_.last(documentedVersions.sort(compareExtendedSemver)))
|
|
||||||
|
|
||||||
// semver.gt will ignore the revision numbers but still compare the version
|
|
||||||
// If metaVersion <= latestDocumented then the latestDocumented version is a revision of the current metaVersion
|
|
||||||
const latestVersion = semver.gt(metaVersion, latestDocumented) ? metaVersion : latestDocumented
|
|
||||||
|
|
||||||
return callback(null, latestVersion)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const updateVersionFile = (cwd, version, callback) => {
|
|
||||||
const versionFile = path.join(cwd, 'VERSION')
|
|
||||||
|
|
||||||
fs.writeFile(versionFile, version, callback)
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
addEntryToChangelog: {
|
|
||||||
preset: 'prepend',
|
|
||||||
fromLine: 3
|
|
||||||
},
|
|
||||||
getChangelogDocumentedVersions: {
|
|
||||||
preset: 'changelog-headers',
|
|
||||||
clean: /^v/
|
|
||||||
},
|
|
||||||
getGitReferenceFromVersion: 'v-prefix',
|
|
||||||
includeCommitWhen: (commit) => {
|
|
||||||
return commit.footer['changelog-entry']
|
|
||||||
},
|
|
||||||
getIncrementLevelFromCommit: (commit) => {
|
|
||||||
return 'patch'
|
|
||||||
},
|
|
||||||
incrementVersion: (currentVersion, incrementLevel) => {
|
|
||||||
const revision = Number(currentVersion[currentVersion.length - 1])
|
|
||||||
if (!_.isFinite(revision)) {
|
|
||||||
throw new Error(`Could not extract revision number from ${currentVersion}`)
|
|
||||||
}
|
|
||||||
return currentVersion.slice(0, currentVersion.length - 1) + (revision + 1)
|
|
||||||
},
|
|
||||||
getCurrentBaseVersion: getMetaResinFromSubmodule,
|
|
||||||
updateVersion: updateVersionFile,
|
|
||||||
// If a 'changelog-entry' tag is found, use this as the subject rather than the
|
|
||||||
// first line of the commit.
|
|
||||||
transformTemplateData: (data) => {
|
|
||||||
data.commits.forEach((commit) => {
|
|
||||||
commit.subject = commit.footer['changelog-entry'] || commit.subject
|
|
||||||
commit.author = getAuthor(commit.hash)
|
|
||||||
});
|
|
||||||
if (_.isEmpty(data.commits)) {
|
|
||||||
throw new Error('At least one commit must be annotated with a Changelog-entry tag')
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
},
|
|
||||||
template: [
|
|
||||||
'# v{{version}}',
|
|
||||||
'## ({{moment date "Y-MM-DD"}})',
|
|
||||||
'',
|
|
||||||
'{{#each commits}}',
|
|
||||||
'{{#if this.author}}',
|
|
||||||
'* {{capitalize this.subject}} [{{this.author}}]',
|
|
||||||
'{{else}}',
|
|
||||||
'* {{capitalize this.subject}}',
|
|
||||||
'{{/if}}',
|
|
||||||
'{{/each}}'
|
|
||||||
].join('\n')
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue