mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-17 16:37:43 +00:00
chore: replace CHANGELOG.md with git-based release notes
Remove the 15k-line auto-generated CHANGELOG.md and its conventional-changelog tooling. The bump-android-version script now derives Play Store fastlane changelogs from git log between tags instead of parsing CHANGELOG.md. - Use execFileSync with argv to avoid shell injection - Filter merge commits with --no-merges - Handle breaking-change prefix (feat!:) in regex - Truncate at line boundaries for 500-char Play Store limit - Remove conventional-changelog-cli and @conventional-changelog/git-client deps - Remove release.changelog script from package.json
This commit is contained in:
parent
7164a5e44b
commit
1272d6e7bf
4 changed files with 43 additions and 16646 deletions
15546
CHANGELOG.md
15546
CHANGELOG.md
File diff suppressed because one or more lines are too long
1094
package-lock.json
generated
1094
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -94,8 +94,7 @@
|
|||
"ng": "ng",
|
||||
"pack": "electron-builder --dir",
|
||||
"preCheck": "npm run lint && npm run test & npm run int:test && npm run e2e",
|
||||
"release": "npm run release.changelog && npm run dist",
|
||||
"release.changelog": "conventional-changelog -i CHANGELOG.md -s -p angular",
|
||||
"release": "npm run dist",
|
||||
"removeWOFF1": "node ./tools/remove-woff.js",
|
||||
"serveProd": "ng serve --configuration production",
|
||||
"start": "npm run electron:build && cross-env NODE_ENV=DEV electron .",
|
||||
|
|
@ -119,7 +118,7 @@
|
|||
"test:tz:all": "npm run test && npm run test:tz:la && npm run test:tz:tokyo && npm run test:tz:sydney && npm run test:tz:utc",
|
||||
"test:date-utils": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/util/**/format-*.spec.ts' --include='src/app/util/**/date-*.spec.ts'",
|
||||
"test:date-utils:tz": "npm run test:date-utils && cross-env TZ='America/Los_Angeles' npm run test:date-utils && cross-env TZ='Asia/Tokyo' npm run test:date-utils",
|
||||
"version": "npm run prebuild && npm run release.changelog && node ./tools/bump-android-version.js && git add -A",
|
||||
"version": "npm run prebuild && node ./tools/bump-android-version.js && git add -A",
|
||||
"prettier": "pretty-quick",
|
||||
"prettier:file": "prettier --write",
|
||||
"lint:file": "ng lint --lint-file-patterns",
|
||||
|
|
@ -224,7 +223,6 @@
|
|||
"chart.js": "^4.5.1",
|
||||
"chrono-node": "^2.9.0",
|
||||
"clipboard": "^2.0.11",
|
||||
"conventional-changelog-cli": "^5.0.0",
|
||||
"core-js": "^3.47.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"detect-it": "^4.0.1",
|
||||
|
|
@ -281,7 +279,6 @@
|
|||
"typia": "^11.0.3"
|
||||
},
|
||||
"overrides": {
|
||||
"@conventional-changelog/git-client": "^2.5.1",
|
||||
"app-builder-lib": {
|
||||
"minimatch": "10.1.1"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,8 +67,7 @@ if (isPreRelease) {
|
|||
}
|
||||
|
||||
// CREATE fastlane changelog file
|
||||
// Define the paths
|
||||
const changelogPath = path.join(__dirname, '..', 'CHANGELOG.md');
|
||||
const { execFileSync } = require('child_process');
|
||||
const outputDir = path.join(
|
||||
__dirname,
|
||||
'..',
|
||||
|
|
@ -81,25 +80,30 @@ const outputDir = path.join(
|
|||
);
|
||||
const outputFilePath = path.join(outputDir, `${versionCodeDroid}.txt`);
|
||||
|
||||
// Read the changelog.md file
|
||||
const changelogContent = fs.readFileSync(changelogPath, 'utf8');
|
||||
|
||||
// Extract the latest changes
|
||||
const lines = changelogContent.split('\n').slice(2); // Remove the first two lines;
|
||||
let latestChanges = '';
|
||||
let headerCount = 0;
|
||||
|
||||
// Get commit messages between previous tag and HEAD
|
||||
const currentTag = execFileSync('git', ['describe', '--tags', '--abbrev=0', 'HEAD'], {
|
||||
encoding: 'utf8',
|
||||
}).trim();
|
||||
const prevTag = execFileSync(
|
||||
'git',
|
||||
['describe', '--tags', '--abbrev=0', `${currentTag}~1`],
|
||||
{ encoding: 'utf8' },
|
||||
).trim();
|
||||
const gitLog = execFileSync(
|
||||
'git',
|
||||
['log', `${prevTag}...HEAD`, '--no-merges', '--pretty=format:- %s'],
|
||||
{ encoding: 'utf8' },
|
||||
);
|
||||
// Strip conventional-commit prefixes (e.g. "feat(tasks): " → "")
|
||||
let latestChanges = gitLog.replace(/^- \w+(\([^)]*\))?!?:\s*/gm, '- ');
|
||||
// Truncate to 500 chars at line boundaries for Play Store limit
|
||||
const lines = latestChanges.split('\n');
|
||||
let truncated = '';
|
||||
for (const line of lines) {
|
||||
if (line.startsWith('# [') || line.startsWith('## [')) {
|
||||
headerCount++;
|
||||
if (headerCount === 1) break;
|
||||
}
|
||||
latestChanges += line + '\n';
|
||||
if ((truncated + line + '\n').length > 500) break;
|
||||
truncated += line + '\n';
|
||||
}
|
||||
// Remove all links from the extracted text
|
||||
latestChanges = latestChanges
|
||||
.replace(/\[([^\]]+)\]\([^\)]+\)/g, '$1')
|
||||
.replace(/\s*\([a-f0-9]{7}\)\s*$/gm, '');
|
||||
latestChanges = truncated.trimEnd();
|
||||
|
||||
// Ensure the output directory exists
|
||||
if (!fs.existsSync(outputDir)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue