Merge pull request #57 from resin-os/nested-changelog

versionbot: Add changelog yml file
This commit is contained in:
Florin Sarbu 2018-09-26 08:23:18 +03:00 committed by GitHub
commit 4b5debda60
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 121 additions and 110 deletions

115
.versionbot/CHANGELOG.yml Normal file
View 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]'

View file

@ -1,8 +0,0 @@
{
"private": true,
"devDependencies": {
"lodash": "^4.17.10",
"semver": "^5.5.1",
"shelljs": "^0.8.2"
}
}

6
repo.yml Normal file
View file

@ -0,0 +1,6 @@
---
type: 'yocto-based OS image'
reviewers: 1
upstream:
repo: 'meta-resin'
url: 'http://github.com/resin-os/meta-resin'

View file

@ -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')
}