pipecraft 0.44.4 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/templates/release-it.cjs.tpl.d.ts.map +1 -1
- package/dist/templates/release-it.cjs.tpl.js +5 -100
- package/dist/templates/release-it.cjs.tpl.js.map +1 -1
- package/dist/templates/workflows/shared/operations-tag-promote.d.ts.map +1 -1
- package/dist/templates/workflows/shared/operations-tag-promote.js +15 -2
- package/dist/templates/workflows/shared/operations-tag-promote.js.map +1 -1
- package/dist/utils/release-it-config.d.ts +26 -0
- package/dist/utils/release-it-config.d.ts.map +1 -0
- package/dist/utils/release-it-config.js +125 -0
- package/dist/utils/release-it-config.js.map +1 -0
- package/dist/utils/versioning.d.ts.map +1 -1
- package/dist/utils/versioning.js +4 -97
- package/dist/utils/versioning.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-it.cjs.tpl.d.ts","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"release-it.cjs.tpl.d.ts","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,uBAAuB,CAAA;AAoBlF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,aAAa,iBAUrC,CAAA"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { renderTemplate, toFile } from '@featherscloud/pinion';
|
|
16
16
|
import { logger } from '../utils/logger.js';
|
|
17
|
+
import { buildReleaseItConfig } from '../utils/release-it-config.js';
|
|
17
18
|
/**
|
|
18
19
|
* Generate release-it configuration content
|
|
19
20
|
*
|
|
@@ -25,106 +26,10 @@ import { logger } from '../utils/logger.js';
|
|
|
25
26
|
* @param {any} ctx.semver.bumpRules - Version bump rules mapping
|
|
26
27
|
* @returns {string} JavaScript configuration content
|
|
27
28
|
*/
|
|
28
|
-
const releaseItTemplate = (ctx) =>
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
build: 'ignore',
|
|
33
|
-
ci: 'patch',
|
|
34
|
-
docs: 'patch',
|
|
35
|
-
chore: 'minor',
|
|
36
|
-
style: 'patch',
|
|
37
|
-
fix: 'patch',
|
|
38
|
-
perf: 'patch',
|
|
39
|
-
refactor: 'patch',
|
|
40
|
-
feat: 'minor',
|
|
41
|
-
major: 'major'
|
|
42
|
-
};
|
|
43
|
-
// Get user-defined bump rules from config
|
|
44
|
-
const userBumpRules = ctx.config?.semver?.bumpRules || ctx.semver?.bumpRules || {};
|
|
45
|
-
// Merge user rules with defaults (user rules take precedence)
|
|
46
|
-
const mergedRules = { ...baseDefaults, ...userBumpRules };
|
|
47
|
-
// Convert to formatted string for the config file
|
|
48
|
-
const rulesEntries = Object.entries(mergedRules)
|
|
49
|
-
.map(([type, level]) => ` ${type}: '${level}'`)
|
|
50
|
-
.join(',\n');
|
|
51
|
-
return `const DEFAULT_PREFIXES = {
|
|
52
|
-
${rulesEntries}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
module.exports = {
|
|
56
|
-
DEFAULT_PREFIXES,
|
|
57
|
-
"git": {
|
|
58
|
-
"requireCleanWorkingDir": false,
|
|
59
|
-
"commit": false,
|
|
60
|
-
"pushArgs": ["--tags"],
|
|
61
|
-
"tagMatch": "v[0-9]*.[0-9]*.[0-9]*" // Required to exclude non-versioning tags
|
|
62
|
-
},
|
|
63
|
-
"github": {
|
|
64
|
-
"release": true,
|
|
65
|
-
"releaseName": "Release \${version}"
|
|
66
|
-
},
|
|
67
|
-
"npm": {
|
|
68
|
-
"ignoreVersion": true,
|
|
69
|
-
"publish": false,
|
|
70
|
-
"skipChecks": true
|
|
71
|
-
},
|
|
72
|
-
"hooks": {
|
|
73
|
-
'after:release': "echo \${version} > .release-version"
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"plugins": {
|
|
78
|
-
"@release-it/conventional-changelog": {
|
|
79
|
-
"whatBump": (commits,options)=>{
|
|
80
|
-
let defaults = DEFAULT_PREFIXES;
|
|
81
|
-
|
|
82
|
-
let types = (options?.preset?.types || [])
|
|
83
|
-
.reduce((a, v) => {
|
|
84
|
-
return { ...a, [v.type]: v.release}
|
|
85
|
-
}, {})
|
|
86
|
-
|
|
87
|
-
// Config wins over the preset. DEFAULT_PREFIXES already carries the user's
|
|
88
|
-
// semver.bumpRules merged over Pipecraft's baseline, so it is the stated
|
|
89
|
-
// intent; the preset only supplies types the config never mentions. Merging
|
|
90
|
-
// the other way round silently discarded configured rules.
|
|
91
|
-
types = Object.assign({},types,defaults)
|
|
92
|
-
let breakings = 0
|
|
93
|
-
let features = 0
|
|
94
|
-
let levelSet = ['major','minor','patch','ignore']
|
|
95
|
-
|
|
96
|
-
// Handle empty commits array - return null to skip release
|
|
97
|
-
if (!commits || commits.length === 0) {
|
|
98
|
-
return {
|
|
99
|
-
level: null,
|
|
100
|
-
reason: 'No commits found - skipping release'
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
let levels = commits.map(commit => {
|
|
105
|
-
let level = levelSet.indexOf(types[commit.type])
|
|
106
|
-
level = level<0?3:level
|
|
107
|
-
if (commit.notes.length > 0) {
|
|
108
|
-
breakings += commit.notes.length
|
|
109
|
-
}
|
|
110
|
-
if(commit.type === 'feat'){
|
|
111
|
-
features += 1;
|
|
112
|
-
}
|
|
113
|
-
return level
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
let level = Math.min.apply(Math, levels)
|
|
117
|
-
return {
|
|
118
|
-
level: level,
|
|
119
|
-
reason: breakings === 1
|
|
120
|
-
? \`There is \${breakings} BREAKING CHANGE and \${features} features\`
|
|
121
|
-
: \`There are \${breakings} BREAKING CHANGES and \${features} features\`
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}`;
|
|
127
|
-
};
|
|
29
|
+
const releaseItTemplate = (ctx) =>
|
|
30
|
+
// `generate` and `init --with-versioning` both write .release-it.cjs. One builder, so
|
|
31
|
+
// they cannot drift apart again — see src/utils/release-it-config.ts and #496.
|
|
32
|
+
buildReleaseItConfig(ctx.config ?? ctx);
|
|
128
33
|
/**
|
|
129
34
|
* Release-It configuration generator
|
|
130
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-it.cjs.tpl.js","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsB,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"release-it.cjs.tpl.js","sourceRoot":"","sources":["../../src/templates/release-it.cjs.tpl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsB,cAAc,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAEpE;;;;;;;;;;GAUG;AACH,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAE,EAAE;AACrC,sFAAsF;AACtF,+EAA+E;AAC/E,oBAAoB,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE,CAC7C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACjB,IAAI,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAA;IAC3D,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC;KACD,IAAI,CAAC,cAAc,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACrF,IAAI,CAAC,GAAG,CAAC,EAAE;IACV,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC7C,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-tag-promote.d.ts","sourceRoot":"","sources":["../../../../src/templates/workflows/shared/operations-tag-promote.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"operations-tag-promote.d.ts","sourceRoot":"","sources":["../../../../src/templates/workflows/shared/operations-tag-promote.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAgB9D,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,aAAa,CAAC,EAAE,cAAc,GAAG,OAAO,CAAA;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,iBAAiB,GAAG,mBAAmB,EAAE,CAyJ/F"}
|
|
@@ -5,6 +5,18 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { createValueFromString } from '../../../utils/ast-path-operations.js';
|
|
7
7
|
import { getActionReference } from '../../../utils/action-reference.js';
|
|
8
|
+
/**
|
|
9
|
+
* Only promote commits GitHub authored, or a run a maintainer started deliberately.
|
|
10
|
+
*
|
|
11
|
+
* A merged pull request produces a commit whose committer is `noreply@github.com`, because
|
|
12
|
+
* GitHub creates it. A fast-forward promotion preserves that, so the marker survives the
|
|
13
|
+
* whole branch flow. A commit pushed by hand keeps its author's address and does not
|
|
14
|
+
* promote — which stops a hotfix typed on the wrong branch from cutting a release.
|
|
15
|
+
*
|
|
16
|
+
* `workflow_dispatch` stays open so a promotion can always be triggered on purpose.
|
|
17
|
+
*/
|
|
18
|
+
const PROMOTION_SOURCE_GATE = "(github.event.head_commit.committer.email == 'noreply@github.com' || " +
|
|
19
|
+
"github.event_name == 'workflow_dispatch')";
|
|
8
20
|
/**
|
|
9
21
|
* Create tag, promote, and release job operations
|
|
10
22
|
*/
|
|
@@ -27,7 +39,8 @@ export function createTagPromoteReleaseOperations(ctx) {
|
|
|
27
39
|
`github.ref_name == '${initialBranch}'`,
|
|
28
40
|
"needs.version.result == 'success'",
|
|
29
41
|
"needs.version.outputs.version != ''",
|
|
30
|
-
"needs.gate.result == 'success'" // Gate job must succeed
|
|
42
|
+
"needs.gate.result == 'success'", // Gate job must succeed
|
|
43
|
+
PROMOTION_SOURCE_GATE
|
|
31
44
|
];
|
|
32
45
|
// Default needs: version + gate (gate already checks all test jobs)
|
|
33
46
|
const tagNeedsArray = ['version', 'gate'];
|
|
@@ -105,7 +118,7 @@ export function createTagPromoteReleaseOperations(ctx) {
|
|
|
105
118
|
`,
|
|
106
119
|
value: createValueFromString(`
|
|
107
120
|
needs: [ version, tag ]
|
|
108
|
-
if: \${{ always() && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && needs.version.result == 'success' && needs.version.outputs.version != '' && (needs.tag.result == 'success' || needs.tag.result == 'skipped') && (${buildPromotableBranchesCondition(validBranchFlow)}) }}
|
|
121
|
+
if: \${{ always() && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && ${PROMOTION_SOURCE_GATE} && needs.version.result == 'success' && needs.version.outputs.version != '' && (needs.tag.result == 'success' || needs.tag.result == 'skipped') && (${buildPromotableBranchesCondition(validBranchFlow)}) }}
|
|
109
122
|
runs-on: ubuntu-latest
|
|
110
123
|
steps:
|
|
111
124
|
- uses: actions/checkout@v5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-tag-promote.js","sourceRoot":"","sources":["../../../../src/templates/workflows/shared/operations-tag-promote.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EAEtB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"operations-tag-promote.js","sourceRoot":"","sources":["../../../../src/templates/workflows/shared/operations-tag-promote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single source of `.release-it.cjs`
|
|
3
|
+
*
|
|
4
|
+
* Two callers write this file and they used to disagree, so a user's config depended on
|
|
5
|
+
* which command they ran last:
|
|
6
|
+
*
|
|
7
|
+
* - `pipecraft generate` renders `src/templates/release-it.cjs.tpl.ts`
|
|
8
|
+
* - `pipecraft init --with-versioning` calls `setupVersionManagement()`, which calls
|
|
9
|
+
* `VersionManager.generateReleaseItConfig()`
|
|
10
|
+
*
|
|
11
|
+
* Every divergence between them turned out to be a bug: #483 (each read bump rules from a
|
|
12
|
+
* different config key) and #287 (one returned `Infinity` for an empty commit list). #496
|
|
13
|
+
* closed the last two, on `github.release` and on whether `options.preset.types` is read,
|
|
14
|
+
* by moving the whole thing here. The template's behaviour won, so `generate` output is
|
|
15
|
+
* unchanged; `tests/fixtures/release-it-golden.cjs` pins that.
|
|
16
|
+
*
|
|
17
|
+
* @module utils/release-it-config
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Build the contents of `.release-it.cjs`.
|
|
21
|
+
*
|
|
22
|
+
* @param config - the Pipecraft config. `semver.bumpRules` is the schema-required location;
|
|
23
|
+
* `versioning.bumpRules` is the deprecated spelling and loses to it.
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildReleaseItConfig(config: any): string;
|
|
26
|
+
//# sourceMappingURL=release-it-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-it-config.d.ts","sourceRoot":"","sources":["../../src/utils/release-it-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAuGxD"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single source of `.release-it.cjs`
|
|
3
|
+
*
|
|
4
|
+
* Two callers write this file and they used to disagree, so a user's config depended on
|
|
5
|
+
* which command they ran last:
|
|
6
|
+
*
|
|
7
|
+
* - `pipecraft generate` renders `src/templates/release-it.cjs.tpl.ts`
|
|
8
|
+
* - `pipecraft init --with-versioning` calls `setupVersionManagement()`, which calls
|
|
9
|
+
* `VersionManager.generateReleaseItConfig()`
|
|
10
|
+
*
|
|
11
|
+
* Every divergence between them turned out to be a bug: #483 (each read bump rules from a
|
|
12
|
+
* different config key) and #287 (one returned `Infinity` for an empty commit list). #496
|
|
13
|
+
* closed the last two, on `github.release` and on whether `options.preset.types` is read,
|
|
14
|
+
* by moving the whole thing here. The template's behaviour won, so `generate` output is
|
|
15
|
+
* unchanged; `tests/fixtures/release-it-golden.cjs` pins that.
|
|
16
|
+
*
|
|
17
|
+
* @module utils/release-it-config
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Build the contents of `.release-it.cjs`.
|
|
21
|
+
*
|
|
22
|
+
* @param config - the Pipecraft config. `semver.bumpRules` is the schema-required location;
|
|
23
|
+
* `versioning.bumpRules` is the deprecated spelling and loses to it.
|
|
24
|
+
*/
|
|
25
|
+
export function buildReleaseItConfig(config) {
|
|
26
|
+
// Base default prefixes for conventional commits
|
|
27
|
+
const baseDefaults = {
|
|
28
|
+
test: 'ignore',
|
|
29
|
+
build: 'ignore',
|
|
30
|
+
ci: 'patch',
|
|
31
|
+
docs: 'patch',
|
|
32
|
+
chore: 'minor',
|
|
33
|
+
style: 'patch',
|
|
34
|
+
fix: 'patch',
|
|
35
|
+
perf: 'patch',
|
|
36
|
+
refactor: 'patch',
|
|
37
|
+
feat: 'minor',
|
|
38
|
+
major: 'major'
|
|
39
|
+
};
|
|
40
|
+
// Get user-defined bump rules from config
|
|
41
|
+
const userBumpRules = config?.semver?.bumpRules || config?.versioning?.bumpRules || {};
|
|
42
|
+
// Merge user rules with defaults (user rules take precedence)
|
|
43
|
+
const mergedRules = { ...baseDefaults, ...userBumpRules };
|
|
44
|
+
// Convert to formatted string for the config file
|
|
45
|
+
const rulesEntries = Object.entries(mergedRules)
|
|
46
|
+
.map(([type, level]) => ` ${type}: '${level}'`)
|
|
47
|
+
.join(',\n');
|
|
48
|
+
return `const DEFAULT_PREFIXES = {
|
|
49
|
+
${rulesEntries}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
module.exports = {
|
|
53
|
+
DEFAULT_PREFIXES,
|
|
54
|
+
"git": {
|
|
55
|
+
"requireCleanWorkingDir": false,
|
|
56
|
+
"commit": false,
|
|
57
|
+
"pushArgs": ["--tags"],
|
|
58
|
+
"tagMatch": "v[0-9]*.[0-9]*.[0-9]*" // Required to exclude non-versioning tags
|
|
59
|
+
},
|
|
60
|
+
"github": {
|
|
61
|
+
"release": true,
|
|
62
|
+
"releaseName": "Release \${version}"
|
|
63
|
+
},
|
|
64
|
+
"npm": {
|
|
65
|
+
"ignoreVersion": true,
|
|
66
|
+
"publish": false,
|
|
67
|
+
"skipChecks": true
|
|
68
|
+
},
|
|
69
|
+
"hooks": {
|
|
70
|
+
'after:release': "echo \${version} > .release-version"
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
"plugins": {
|
|
75
|
+
"@release-it/conventional-changelog": {
|
|
76
|
+
"whatBump": (commits,options)=>{
|
|
77
|
+
let defaults = DEFAULT_PREFIXES;
|
|
78
|
+
|
|
79
|
+
let types = (options?.preset?.types || [])
|
|
80
|
+
.reduce((a, v) => {
|
|
81
|
+
return { ...a, [v.type]: v.release}
|
|
82
|
+
}, {})
|
|
83
|
+
|
|
84
|
+
// Config wins over the preset. DEFAULT_PREFIXES already carries the user's
|
|
85
|
+
// semver.bumpRules merged over Pipecraft's baseline, so it is the stated
|
|
86
|
+
// intent; the preset only supplies types the config never mentions. Merging
|
|
87
|
+
// the other way round silently discarded configured rules.
|
|
88
|
+
types = Object.assign({},types,defaults)
|
|
89
|
+
let breakings = 0
|
|
90
|
+
let features = 0
|
|
91
|
+
let levelSet = ['major','minor','patch','ignore']
|
|
92
|
+
|
|
93
|
+
// Handle empty commits array - return null to skip release
|
|
94
|
+
if (!commits || commits.length === 0) {
|
|
95
|
+
return {
|
|
96
|
+
level: null,
|
|
97
|
+
reason: 'No commits found - skipping release'
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
let levels = commits.map(commit => {
|
|
102
|
+
let level = levelSet.indexOf(types[commit.type])
|
|
103
|
+
level = level<0?3:level
|
|
104
|
+
if (commit.notes.length > 0) {
|
|
105
|
+
breakings += commit.notes.length
|
|
106
|
+
}
|
|
107
|
+
if(commit.type === 'feat'){
|
|
108
|
+
features += 1;
|
|
109
|
+
}
|
|
110
|
+
return level
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
let level = Math.min.apply(Math, levels)
|
|
114
|
+
return {
|
|
115
|
+
level: level,
|
|
116
|
+
reason: breakings === 1
|
|
117
|
+
? \`There is \${breakings} BREAKING CHANGE and \${features} features\`
|
|
118
|
+
: \`There are \${breakings} BREAKING CHANGES and \${features} features\`
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}`;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=release-it-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-it-config.js","sourceRoot":"","sources":["../../src/utils/release-it-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAW;IAC9C,iDAAiD;IACjD,MAAM,YAAY,GAA2B;QAC3C,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf,CAAA;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,UAAU,EAAE,SAAS,IAAI,EAAE,CAAA;IAEtF,8DAA8D;IAC9D,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,aAAa,EAAE,CAAA;IAEzD,kDAAkD;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,MAAM,KAAK,GAAG,CAAC;SAC/C,IAAI,CAAC,KAAK,CAAC,CAAA;IAEd,OAAO;EACP,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0EV,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAInC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,IAAI,MAAM;IAMjC;;;;;;;;;;;;;;;OAeG;IACH,wBAAwB,IAAI,MAAM;IA8BlC;;;;;;;;OAQG;IACH,mBAAmB,IAAI,MAAM;IAO7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,IAAI,IAAI;IAkC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IAsBhC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,2BAA2B,IAAI,OAAO;IAmBtC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,IAAI,MAAM;IAa3B;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAwB1D"}
|
package/dist/utils/versioning.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { execSync } from 'child_process';
|
|
18
18
|
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
19
19
|
import { join } from 'path';
|
|
20
|
+
import { buildReleaseItConfig } from './release-it-config.js';
|
|
20
21
|
/**
|
|
21
22
|
* Manager for semantic versioning and release automation.
|
|
22
23
|
*
|
|
@@ -72,103 +73,9 @@ export class VersionManager {
|
|
|
72
73
|
* ```
|
|
73
74
|
*/
|
|
74
75
|
generateReleaseItConfig() {
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
78
|
-
// a project configured the way the schema requires got none of its rules.
|
|
79
|
-
const userBumpRules = {
|
|
80
|
-
...(this.config.versioning?.bumpRules ?? {}),
|
|
81
|
-
...(this.config.semver?.bumpRules ?? {})
|
|
82
|
-
};
|
|
83
|
-
// Keep these in step with src/templates/release-it.cjs.tpl.ts.
|
|
84
|
-
const baseDefaults = {
|
|
85
|
-
test: 'ignore',
|
|
86
|
-
build: 'ignore',
|
|
87
|
-
ci: 'patch',
|
|
88
|
-
docs: 'patch',
|
|
89
|
-
chore: 'minor',
|
|
90
|
-
style: 'patch',
|
|
91
|
-
fix: 'patch',
|
|
92
|
-
perf: 'patch',
|
|
93
|
-
refactor: 'patch',
|
|
94
|
-
feat: 'minor',
|
|
95
|
-
major: 'major'
|
|
96
|
-
};
|
|
97
|
-
const mergedRules = { ...baseDefaults, ...userBumpRules };
|
|
98
|
-
const rulesEntries = Object.entries(mergedRules)
|
|
99
|
-
.map(([type, level]) => ` ${type}: '${level}'`)
|
|
100
|
-
.join(',\n');
|
|
101
|
-
const staticConfig = {
|
|
102
|
-
git: {
|
|
103
|
-
requireCleanWorkingDir: false,
|
|
104
|
-
commit: false,
|
|
105
|
-
pushArgs: ['--tags'],
|
|
106
|
-
tagMatch: 'v[0-9]*.[0-9]*.[0-9]*'
|
|
107
|
-
},
|
|
108
|
-
github: {
|
|
109
|
-
release: false
|
|
110
|
-
},
|
|
111
|
-
npm: {
|
|
112
|
-
ignoreVersion: true,
|
|
113
|
-
publish: false,
|
|
114
|
-
skipChecks: true
|
|
115
|
-
},
|
|
116
|
-
hooks: {
|
|
117
|
-
'after:release': 'echo ${version} > .release-version'
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
// whatBump has to be emitted as source. Serialising the whole config with
|
|
121
|
-
// JSON.stringify silently dropped it — and it is the only thing that reads the bump
|
|
122
|
-
// rules, so the generated file ignored them entirely.
|
|
123
|
-
return `const DEFAULT_PREFIXES = {
|
|
124
|
-
${rulesEntries}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
module.exports = {
|
|
128
|
-
...${JSON.stringify(staticConfig, null, 2).replace(/\n/g, '\n ')},
|
|
129
|
-
plugins: {
|
|
130
|
-
'@release-it/conventional-changelog': {
|
|
131
|
-
whatBump: commits => {
|
|
132
|
-
const bumpRules = DEFAULT_PREFIXES
|
|
133
|
-
let breakings = 0
|
|
134
|
-
let features = 0
|
|
135
|
-
const levelSet = ['major', 'minor', 'patch', 'ignore']
|
|
136
|
-
|
|
137
|
-
// Math.min() with no arguments is Infinity, which release-it cannot use as a bump
|
|
138
|
-
// level. Return an explicit "no release" instead, matching release-it.cjs.tpl.ts.
|
|
139
|
-
if (!commits || commits.length === 0) {
|
|
140
|
-
return { level: null, reason: 'No commits found - skipping release' }
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
const level = Math.min(
|
|
144
|
-
...commits.map(commit => {
|
|
145
|
-
let level = levelSet.indexOf(bumpRules[commit.type] || 'ignore')
|
|
146
|
-
level = level < 0 ? 3 : level
|
|
147
|
-
|
|
148
|
-
if (commit.notes.length > 0) {
|
|
149
|
-
breakings += commit.notes.length
|
|
150
|
-
}
|
|
151
|
-
if (commit.type === 'feat') {
|
|
152
|
-
features += 1
|
|
153
|
-
}
|
|
154
|
-
return level
|
|
155
|
-
})
|
|
156
|
-
)
|
|
157
|
-
|
|
158
|
-
return {
|
|
159
|
-
level: level,
|
|
160
|
-
reason:
|
|
161
|
-
breakings === 1
|
|
162
|
-
? \`There is \${breakings} BREAKING CHANGE and \${features} features\`
|
|
163
|
-
: \`There are \${breakings} BREAKING CHANGES and \${features} features\`
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
module.exports.DEFAULT_PREFIXES = DEFAULT_PREFIXES
|
|
171
|
-
`;
|
|
76
|
+
// Same builder `generate` uses, so `init --with-versioning` cannot produce a different
|
|
77
|
+
// file than the pipeline would. See src/utils/release-it-config.ts and #496.
|
|
78
|
+
return buildReleaseItConfig(this.config);
|
|
172
79
|
}
|
|
173
80
|
/**
|
|
174
81
|
* Generate commitlint configuration file content.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/utils/versioning.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pipecraft",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.45.0",
|
|
4
4
|
"description": "Automated CI/CD pipeline generator for trunk-based development. Generates intelligent GitHub Actions workflows with domain-based change detection, semantic versioning, and branch flow management. Full documentation: https://pipecraft.thecraftlab.dev",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|