Skip to content

Commit e410240

Browse files
committed
V2
1 parent 3124055 commit e410240

File tree

4 files changed

+180
-70
lines changed

4 files changed

+180
-70
lines changed

package.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@
99
],
1010
"scripts": {
1111
"build": "yarn useDist && node --experimental-strip-types scripts/build.ts && yarn useSrc",
12-
"changelog": "github-changelog-generator --owner GMOD --repo jbrowse-components",
13-
"changelog": "conventional-changelog -p angular",
14-
1512
"useDist": "node scripts/runInWorkspaces.js useDist '@jbrowse/plugin*' '@jbrowse/text-indexing'",
1613
"useSrc": "node scripts/runInWorkspaces.js useSrc '@jbrowse/plugin*' '@jbrowse/text-indexing'",
1714
"lint": "eslint --report-unused-disable-directives --max-warnings 0",
@@ -78,9 +75,7 @@
7875
"@types/set-value": "^4.0.1",
7976
"@types/string-template": "^1.0.2",
8077
"@types/tmp": "^0.2.1",
81-
"@uphold/github-changelog-generator": "^2.0.0",
82-
83-
78+
"@octokit/rest": "^20.0.0",
8479
"babel-loader": "^10.0.0",
8580
"babel-plugin-react-compiler": "^19.1.0-rc.1",
8681
"browserslist": "^4.18.1",
@@ -112,7 +107,6 @@
112107
"jest-environment-jsdom": "^29.7.0",
113108
"jest-fetch-mock": "^3.0.3",
114109
"jest-image-snapshot": "^6.1.0",
115-
116110
"mini-css-extract-plugin": "^2.4.5",
117111
"mobx": "^6.0.0",
118112
"mobx-react": "^9.0.0",

scripts/generateChangelog.js

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
const { Octokit } = require("@octokit/rest");
2+
3+
async function getMergedPullRequestsBetweenTags(
4+
owner,
5+
repo,
6+
tagA,
7+
tagB,
8+
githubToken
9+
) {
10+
const octokit = new Octokit({ auth: githubToken });
11+
const mergedPRs = new Map(); // Use a Map to store unique PRs by their ID
12+
13+
try {
14+
// 1. Get the comparison between the two tags to find all commits in the range
15+
// Note: tagA should be the older tag, tagB the newer one.
16+
// The '...' (three dots) notation means commits reachable from tagB but not from tagA.
17+
const compareResponse = await octokit.repos.compareCommits({
18+
owner,
19+
repo,
20+
base: tagA,
21+
head: tagB,
22+
});
23+
24+
const commits = compareResponse.data.commits;
25+
26+
if (!commits || commits.length === 0) {
27+
return [];
28+
}
29+
30+
// 2. For each commit, find associated pull requests
31+
for (const commit of commits) {
32+
try {
33+
const prsForCommitResponse = await octokit.repos.listPullRequestsAssociatedWithCommit({
34+
owner,
35+
repo,
36+
commit_sha: commit.sha,
37+
});
38+
39+
// 3. Filter for merged pull requests and add to our unique list
40+
for (const pr of prsForCommitResponse.data) {
41+
// A PR is considered merged if it has a 'merged_at' timestamp
42+
if (pr.merged_at) {
43+
if (!mergedPRs.has(pr.id)) {
44+
mergedPRs.set(pr.id, {
45+
number: pr.number,
46+
title: pr.title,
47+
html_url: pr.html_url,
48+
merged_at: pr.merged_at,
49+
user: pr.user.login,
50+
});
51+
}
52+
}
53+
}
54+
} catch (commitPrError) {
55+
// Continue to the next commit even if one fails
56+
}
57+
}
58+
59+
return Array.from(mergedPRs.values());
60+
} catch (error) {
61+
throw error;
62+
}
63+
}
64+
65+
async function main() {
66+
const [owner, repo, tagA, tagB, githubToken] = process.argv.slice(2);
67+
68+
if (!owner || !repo || !tagA || !tagB || !githubToken) {
69+
console.error("Usage: node generateChangelog.js <owner> <repo> <tagA> <tagB> <githubToken>");
70+
process.exit(1);
71+
}
72+
73+
try {
74+
const prs = await getMergedPullRequestsBetweenTags(owner, repo, tagA, tagB, githubToken);
75+
prs.sort((a, b) => new Date(a.merged_at) - new Date(b.merged_at)); // Sort by merge date
76+
77+
let changelog = "";
78+
if (prs.length > 0) {
79+
prs.forEach((pr) => {
80+
changelog += `- #${pr.number}: ${pr.title} (by @${pr.user}) [${new Date(pr.merged_at).toLocaleDateString()}](${pr.html_url})\n`;
81+
});
82+
} else {
83+
changelog = "No merged pull requests found in the specified range.\n";
84+
}
85+
console.log(changelog);
86+
} catch (error) {
87+
console.error(`Error generating changelog: ${error.message}`);
88+
process.exit(1);
89+
}
90+
}
91+
92+
main();

scripts/release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ mv tmp.json website/docusaurus.config.json
4545

4646
# Generates a changelog with a section added listing the packages that were
4747
# included in this release
48-
CHANGELOG=$(GITHUB_TOKEN="$GITHUB_AUTH" yarn changelog)
48+
CHANGELOG=$(node scripts/generateChangelog.js GMOD jbrowse-components v$PREVIOUS_VERSION v$VERSION "$GITHUB_AUTH")
4949
# Add the changelog to the top of CHANGELOG.md
5050
echo "$CHANGELOG" >tmp.md
5151
echo "" >>tmp.md

yarn.lock

Lines changed: 86 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2203,56 +2203,100 @@
22032203
mkdirp "^1.0.4"
22042204
rimraf "^3.0.2"
22052205

2206-
"@octokit/endpoint@^6.0.1":
2207-
version "6.0.12"
2208-
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658"
2209-
integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==
2206+
"@octokit/auth-token@^4.0.0":
2207+
version "4.0.0"
2208+
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7"
2209+
integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==
2210+
2211+
"@octokit/core@^5.0.2":
2212+
version "5.2.2"
2213+
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.2.tgz#252805732de9b4e8e4f658d34b80c4c9b2534761"
2214+
integrity sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==
2215+
dependencies:
2216+
"@octokit/auth-token" "^4.0.0"
2217+
"@octokit/graphql" "^7.1.0"
2218+
"@octokit/request" "^8.4.1"
2219+
"@octokit/request-error" "^5.1.1"
2220+
"@octokit/types" "^13.0.0"
2221+
before-after-hook "^2.2.0"
2222+
universal-user-agent "^6.0.0"
2223+
2224+
"@octokit/endpoint@^9.0.6":
2225+
version "9.0.6"
2226+
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.6.tgz#114d912108fe692d8b139cfe7fc0846dfd11b6c0"
2227+
integrity sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==
22102228
dependencies:
2211-
"@octokit/types" "^6.0.3"
2212-
is-plain-object "^5.0.0"
2229+
"@octokit/types" "^13.1.0"
22132230
universal-user-agent "^6.0.0"
22142231

2215-
"@octokit/graphql@^4.6.1":
2216-
version "4.8.0"
2217-
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3"
2218-
integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==
2232+
"@octokit/graphql@^7.1.0":
2233+
version "7.1.1"
2234+
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.1.tgz#79d9f3d0c96a8fd13d64186fe5c33606d48b79cc"
2235+
integrity sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==
22192236
dependencies:
2220-
"@octokit/request" "^5.6.0"
2221-
"@octokit/types" "^6.0.3"
2237+
"@octokit/request" "^8.4.1"
2238+
"@octokit/types" "^13.0.0"
22222239
universal-user-agent "^6.0.0"
22232240

2224-
"@octokit/openapi-types@^12.11.0":
2225-
version "12.11.0"
2226-
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
2227-
integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
2241+
"@octokit/openapi-types@^24.2.0":
2242+
version "24.2.0"
2243+
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-24.2.0.tgz#3d55c32eac0d38da1a7083a9c3b0cca77924f7d3"
2244+
integrity sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==
22282245

2229-
"@octokit/request-error@^2.1.0":
2230-
version "2.1.0"
2231-
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677"
2232-
integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==
2246+
"@octokit/[email protected]":
2247+
version "11.4.4-cjs.2"
2248+
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz#979a10d577bce7a393e8e65953887e42b0a05000"
2249+
integrity sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==
2250+
dependencies:
2251+
"@octokit/types" "^13.7.0"
2252+
2253+
"@octokit/plugin-request-log@^4.0.0":
2254+
version "4.0.1"
2255+
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz#98a3ca96e0b107380664708111864cb96551f958"
2256+
integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==
2257+
2258+
"@octokit/[email protected]":
2259+
version "13.3.2-cjs.1"
2260+
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz#d0a142ff41d8f7892b6ccef45979049f51ecaa8d"
2261+
integrity sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==
2262+
dependencies:
2263+
"@octokit/types" "^13.8.0"
2264+
2265+
"@octokit/request-error@^5.1.1":
2266+
version "5.1.1"
2267+
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.1.tgz#b9218f9c1166e68bb4d0c89b638edc62c9334805"
2268+
integrity sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==
22332269
dependencies:
2234-
"@octokit/types" "^6.0.3"
2270+
"@octokit/types" "^13.1.0"
22352271
deprecation "^2.0.0"
22362272
once "^1.4.0"
22372273

2238-
"@octokit/request@^5.6.0":
2239-
version "5.6.3"
2240-
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0"
2241-
integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==
2242-
dependencies:
2243-
"@octokit/endpoint" "^6.0.1"
2244-
"@octokit/request-error" "^2.1.0"
2245-
"@octokit/types" "^6.16.1"
2246-
is-plain-object "^5.0.0"
2247-
node-fetch "^2.6.7"
2274+
"@octokit/request@^8.4.1":
2275+
version "8.4.1"
2276+
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.1.tgz#715a015ccf993087977ea4365c44791fc4572486"
2277+
integrity sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==
2278+
dependencies:
2279+
"@octokit/endpoint" "^9.0.6"
2280+
"@octokit/request-error" "^5.1.1"
2281+
"@octokit/types" "^13.1.0"
22482282
universal-user-agent "^6.0.0"
22492283

2250-
"@octokit/types@^6.0.3", "@octokit/types@^6.16.1":
2251-
version "6.41.0"
2252-
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
2253-
integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
2284+
"@octokit/rest@^20.0.0":
2285+
version "20.1.2"
2286+
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.1.2.tgz#1d74d0c72ade0d64f7c5416448d5c885f5e3ccc4"
2287+
integrity sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==
2288+
dependencies:
2289+
"@octokit/core" "^5.0.2"
2290+
"@octokit/plugin-paginate-rest" "11.4.4-cjs.2"
2291+
"@octokit/plugin-request-log" "^4.0.0"
2292+
"@octokit/plugin-rest-endpoint-methods" "13.3.2-cjs.1"
2293+
2294+
"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.7.0", "@octokit/types@^13.8.0":
2295+
version "13.10.0"
2296+
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.10.0.tgz#3e7c6b19c0236c270656e4ea666148c2b51fd1a3"
2297+
integrity sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==
22542298
dependencies:
2255-
"@octokit/openapi-types" "^12.11.0"
2299+
"@octokit/openapi-types" "^24.2.0"
22562300

22572301
"@pkgjs/parseargs@^0.11.0":
22582302
version "0.11.0"
@@ -3251,16 +3295,6 @@
32513295
"@typescript-eslint/types" "8.38.0"
32523296
eslint-visitor-keys "^4.2.1"
32533297

3254-
"@uphold/github-changelog-generator@^2.0.0":
3255-
version "2.0.0"
3256-
resolved "https://registry.yarnpkg.com/@uphold/github-changelog-generator/-/github-changelog-generator-2.0.0.tgz#ff31f71382c4c6e96790b2cd6725aaba0aa55721"
3257-
integrity sha512-I+6T8C9nZU2pa390ls07/yQGQx7vbHLPAoFoc0DQ9bNUJsOfnK35ybq7WSMeF2t7Z7Eb8XY4914HFlyo4I13aw==
3258-
dependencies:
3259-
"@octokit/graphql" "^4.6.1"
3260-
commander "^6.2.1"
3261-
ini "^1.3.8"
3262-
moment "^2.29.1"
3263-
32643298
32653299
version "3.2.4"
32663300
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-3.2.4.tgz#8362124cd811a5ee11c5768207b9df53d34f2433"
@@ -4018,6 +4052,11 @@ [email protected]:
40184052
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
40194053
integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
40204054

4055+
before-after-hook@^2.2.0:
4056+
version "2.2.3"
4057+
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
4058+
integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==
4059+
40214060
better-opn@^3.0.2:
40224061
version "3.0.2"
40234062
resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-3.0.2.tgz#f96f35deaaf8f34144a4102651babcf00d1d8817"
@@ -4614,11 +4653,6 @@ commander@^5.0.0:
46144653
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
46154654
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
46164655

4617-
commander@^6.2.1:
4618-
version "6.2.1"
4619-
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
4620-
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
4621-
46224656
commander@^8.3.0:
46234657
version "8.3.0"
46244658
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
@@ -7367,7 +7401,7 @@ [email protected]:
73677401
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
73687402
integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
73697403

7370-
ini@^1.3.5, ini@^1.3.8, ini@~1.3.0:
7404+
ini@^1.3.5, ini@~1.3.0:
73717405
version "1.3.8"
73727406
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
73737407
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
@@ -7615,11 +7649,6 @@ is-plain-object@^2.0.4:
76157649
dependencies:
76167650
isobject "^3.0.1"
76177651

7618-
is-plain-object@^5.0.0:
7619-
version "5.0.0"
7620-
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
7621-
integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
7622-
76237652
is-potential-custom-element-name@^1.0.1:
76247653
version "1.0.1"
76257654
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
@@ -9063,11 +9092,6 @@ mobx@^6.0.0, mobx@^6.6.0:
90639092
resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.13.7.tgz#70e5dda7a45da947f773b3cd3b065dfe7c8a75de"
90649093
integrity sha512-aChaVU/DO5aRPmk1GX8L+whocagUUpBQqoPtJk+cm7UOXUk87J4PeWCh6nNmTTIfEhiR9DI/+FnA8dln/hTK7g==
90659094

9066-
moment@^2.29.1:
9067-
version "2.30.1"
9068-
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
9069-
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
9070-
90719095
90729096
version "2.0.0"
90739097
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"

0 commit comments

Comments
 (0)