Skip to content

Commit 7ae5aab

Browse files
committed
Merge pull request #164 from phillipj/blog-post-changelog
Release blog post script improvements
2 parents 372fd2e + 90283ca commit 7ae5aab

1 file changed

Lines changed: 28 additions & 3 deletions

File tree

scripts/release-post.js

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,24 @@
22

33
'use strict';
44

5+
/**
6+
* What's this?? It will help you create release blog
7+
* posts so you wont have to do the tedious work
8+
* of stitching together data from changelog, shasums etc,
9+
* but get a more or less complete release blog ready to go.
10+
*
11+
* Usage: $ node release-post.js [version]
12+
*
13+
* If the version argument is omitted, the latest version number
14+
* will be picked from https://nodejs.org/dist/index.json.
15+
*
16+
* It'll create a file with the blog post content
17+
* into ../locale/en/blog/release/vX.md ready for you to commit
18+
* or possibly edit by hand before commiting.
19+
*
20+
* Happy releasing!
21+
*/
22+
523
const https = require('https');
624
const fs = require('fs');
725
const path = require('path');
@@ -29,6 +47,11 @@ function download (url, cb) {
2947
// ## 2015-08-04, Version 3.0.0, @rvagg
3048
const rxReleaseSection = /## \d{4}-\d{2}-\d{2}, Version ([^,( ]+)[\s\S]*?(?=## \d{4})/g;
3149

50+
function explicitVersion() {
51+
const versionArg = process.argv[2];
52+
return versionArg ? Promise.resolve(versionArg) : Promise.reject();
53+
}
54+
3255
function findLatestVersion (cb) {
3356
return download('https://nodejs.org/dist/index.json')
3457
.then(JSON.parse)
@@ -51,7 +74,7 @@ function fetchDocs (version) {
5174
}
5275

5376
function fetchChangelog (version) {
54-
return download('https://raw.githubusercontent.com/nodejs/node/master/CHANGELOG.md')
77+
return download(`https://raw.githubusercontent.com/nodejs/node/v${version}/CHANGELOG.md`)
5578
.then(function (data) {
5679
let matches;
5780

@@ -67,7 +90,8 @@ function fetchChangelog (version) {
6790
}
6891

6992
function fetchShasums (version) {
70-
return download(`https://nodejs.org/dist/v${version}/SHASUMS256.txt.asc`);
93+
return download(`https://nodejs.org/dist/v${version}/SHASUMS256.txt.asc`)
94+
.then(null, () => '[INSERT SHASUMS HERE]');
7195
}
7296

7397
function renderPost (results) {
@@ -98,7 +122,8 @@ function slugify (str) {
98122
return str.replace(/\./g, '-');
99123
}
100124

101-
findLatestVersion()
125+
explicitVersion()
126+
.then(null, findLatestVersion)
102127
.then(fetchDocs)
103128
.then(renderPost)
104129
.then(writeToFile)

0 commit comments

Comments
 (0)