@vestfoldfylke/vfk-cli 2.1.0 ā 2.2.3
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/README.md +23 -3
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/open-url.d.ts.map +1 -1
- package/dist/lib/open-url.js +15 -7
- package/dist/lib/open-url.js.map +1 -1
- package/dist/tools/nilsrelease.d.ts +2 -0
- package/dist/tools/nilsrelease.d.ts.map +1 -0
- package/dist/tools/nilsrelease.js +206 -0
- package/dist/tools/nilsrelease.js.map +1 -0
- package/dist/tools/release.d.ts.map +1 -1
- package/dist/tools/release.js +0 -1
- package/dist/tools/release.js.map +1 -1
- package/dist/types/tools.d.ts +9 -0
- package/dist/types/tools.d.ts.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -59,15 +59,35 @@ Steps performed:
|
|
|
59
59
|
- Generate release notes based on commits found
|
|
60
60
|
- Create release draft link with title, description (release notes) and tag
|
|
61
61
|
|
|
62
|
+
## vfk nilsrelease [patch|minor|major]
|
|
63
|
+
Create a release with changelog based on conventional commits since last release.<br />
|
|
64
|
+
Will update project version if needed, create a release draft on GitHub with changelog and tag the release commit.
|
|
65
|
+
|
|
66
|
+
Steps performed:
|
|
67
|
+
- Check current branch is default branch and that current branch is up-to-date with origin and has no uncommitted changes
|
|
68
|
+
- Run tests to ensure code is working before creating release
|
|
69
|
+
- Find latest version tag
|
|
70
|
+
- Get and analyze commits since last release tag (if no tag found, will create initial release)
|
|
71
|
+
- If no commits found, will exit with error message
|
|
72
|
+
- If chosen pr type is lower than the highest type found in commits, will exit with error message
|
|
73
|
+
- Determining new version based on chosen release type, commits found and latest version tag
|
|
74
|
+
- Bump project version file(s) if needed
|
|
75
|
+
- Node.js: package.json, package-lock.json
|
|
76
|
+
- dotnet: *.csproj (the first one found that contains a <Version> tag)
|
|
77
|
+
- Commit version bump and push to origin
|
|
78
|
+
- Generate release notes based on commits found
|
|
79
|
+
- Create release draft link with title, description (release notes) and tag
|
|
80
|
+
|
|
62
81
|
### Usage
|
|
63
82
|
```bash
|
|
64
|
-
vfk
|
|
65
|
-
vfk
|
|
83
|
+
vfk nilsrelease patch
|
|
84
|
+
vfk nilsrelease minor
|
|
85
|
+
vfk nilsrelease major
|
|
66
86
|
```
|
|
67
87
|
|
|
68
88
|
## Development
|
|
69
89
|
- Clone or fork repo
|
|
70
|
-
- `npm i
|
|
90
|
+
- `npm i`
|
|
71
91
|
- `npm link` This will make the `vfk` command point to your local project (uninstall @vestfoldfylke/vfk-cli first, if it does not work)
|
|
72
92
|
- Test usage on some dummy repo from GitHub
|
|
73
93
|
- Remember `npm run build` before testing the cli when you have made changes
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --enable-source-maps
|
|
2
2
|
import pkg from "../package.json" with { type: "json" };
|
|
3
|
+
import { nilsrelease } from "./tools/nilsrelease.js";
|
|
3
4
|
import { pr } from "./tools/pr.js";
|
|
4
5
|
import { release } from "./tools/release.js";
|
|
5
6
|
const usage = `vfk <command>
|
|
6
7
|
|
|
7
8
|
Usage:
|
|
8
9
|
|
|
9
|
-
vfk pr <type>
|
|
10
|
-
vfk release
|
|
11
|
-
vfk
|
|
12
|
-
vfk
|
|
10
|
+
vfk pr <type> create a GitHub pull request of the specified type (patch, minor, major)
|
|
11
|
+
vfk release create a GitHub release with auto-release notes and tag from project version
|
|
12
|
+
vfk nilsrelease <type> create a GitHub release with auto-release notes and tag from project version without creating a pull request (will update project version and push directly to default branch, use only if your name is Nils, or you like to live dangerously)
|
|
13
|
+
vfk help display this help message
|
|
14
|
+
vfk --version display the current version of VFK CLI
|
|
13
15
|
`;
|
|
14
16
|
const selectedTool = process.argv[2] || "";
|
|
15
17
|
const args = process.argv.slice(3);
|
|
@@ -24,6 +26,9 @@ switch (selectedTool) {
|
|
|
24
26
|
case "release":
|
|
25
27
|
release(...args);
|
|
26
28
|
break;
|
|
29
|
+
case "nilsrelease":
|
|
30
|
+
nilsrelease(...args);
|
|
31
|
+
break;
|
|
27
32
|
case "help":
|
|
28
33
|
console.log(usage);
|
|
29
34
|
break;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,MAAM,KAAK,GAAG;;;;;;;;;CASb,CAAA;AAID,MAAM,YAAY,GAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAU,IAAI,EAAE,CAAA;AAE1D,MAAM,IAAI,GAAa,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE5C,QAAQ,YAAY,EAAE,CAAC;IACtB,KAAK,WAAW,CAAC;IACjB,KAAK,IAAI;QACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACxB,MAAK;IACN,KAAK,IAAI;QACR,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QACX,MAAK;IACN,KAAK,SAAS;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAChB,MAAK;IACN,KAAK,aAAa;QACjB,WAAW,CAAC,GAAG,IAAI,CAAC,CAAA;QACpB,MAAK;IACN,KAAK,MAAM;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,MAAK;IACN,KAAK,EAAE;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,MAAK;IACN;QACC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;AAC7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-url.d.ts","sourceRoot":"","sources":["../../src/lib/open-url.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,UAAS,MAAW,KAAG,
|
|
1
|
+
{"version":3,"file":"open-url.d.ts","sourceRoot":"","sources":["../../src/lib/open-url.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,UAAS,MAAW,KAAG,IAoC3D,CAAA"}
|
package/dist/lib/open-url.js
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
2
|
export const openUrl = (url, message = "") => {
|
|
3
3
|
let command;
|
|
4
|
+
let args;
|
|
4
5
|
url = url.replaceAll("(", "%28").replaceAll(")", "%29");
|
|
5
6
|
switch (process.platform) {
|
|
6
7
|
case "darwin": // macOS
|
|
7
|
-
command =
|
|
8
|
+
command = "open";
|
|
9
|
+
args = [url];
|
|
8
10
|
break;
|
|
9
11
|
case "win32": // Windows
|
|
10
|
-
command =
|
|
12
|
+
command = "cmd.exe";
|
|
13
|
+
args = ["/c", "start", '""', url.replaceAll("&", "^&")];
|
|
11
14
|
break;
|
|
12
15
|
default: // Linux and other POSIX-like systems
|
|
13
|
-
command = `xdg-open
|
|
16
|
+
command = `xdg-open`;
|
|
17
|
+
args = [url];
|
|
14
18
|
break;
|
|
15
19
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
const childProcess = spawn(command, args, { stdio: "inherit" });
|
|
21
|
+
childProcess.on("error", (error) => {
|
|
22
|
+
console.error(`Error opening URL: ${error.message}`);
|
|
23
|
+
});
|
|
24
|
+
childProcess.on("close", (code) => {
|
|
25
|
+
if (code === null || code !== 0) {
|
|
26
|
+
console.error(`Error opening URL. Process exited with code ${code}`);
|
|
19
27
|
return;
|
|
20
28
|
}
|
|
21
29
|
const messageStr = message.length > 0 ? `${message}: ` : "";
|
package/dist/lib/open-url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-url.js","sourceRoot":"","sources":["../../src/lib/open-url.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"open-url.js","sourceRoot":"","sources":["../../src/lib/open-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAQ,EAAE;IAClE,IAAI,OAAe,CAAA;IACnB,IAAI,IAAc,CAAA;IAElB,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEvD,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1B,KAAK,QAAQ,EAAE,QAAQ;YACtB,OAAO,GAAG,MAAM,CAAA;YAChB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YACZ,MAAK;QACN,KAAK,OAAO,EAAE,UAAU;YACvB,OAAO,GAAG,SAAS,CAAA;YACnB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;YACvD,MAAK;QACN,SAAS,qCAAqC;YAC7C,OAAO,GAAG,UAAU,CAAA;YACpB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YACZ,MAAK;IACP,CAAC;IAED,MAAM,YAAY,GAAiB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE7E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;QAChD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,+CAA+C,IAAI,EAAE,CAAC,CAAA;YACpE,OAAM;QACP,CAAC;QAED,MAAM,UAAU,GAAW,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nilsrelease.d.ts","sourceRoot":"","sources":["../../src/tools/nilsrelease.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,MAAM,EAAE,KAAG,IA0M/C,CAAA"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import yoctoSpinner, {} from "yocto-spinner";
|
|
2
|
+
import { commitAndPush, conventionalCommitTypes, getCommitsSinceTag, getLatestReleaseTag, getRepoInfo, repoIsReadyForRelease, sortCommitsByType } from "../lib/git.js";
|
|
3
|
+
import { openUrl } from "../lib/open-url.js";
|
|
4
|
+
import { generateReleaseNotes } from "../lib/release-notes.js";
|
|
5
|
+
import { runTests } from "../lib/run-tests.js";
|
|
6
|
+
import { getNextVersion, getProjectInfo, getSemverReleaseType, SUPPORTED_SEMVER_TYPES_BY_PRIORITY, updateProjectVersion } from "../lib/semver.js";
|
|
7
|
+
const toolHelp = `
|
|
8
|
+
VFK Release Tool
|
|
9
|
+
|
|
10
|
+
Usage:
|
|
11
|
+
vfk nilsrelease patch Create a patch release (bug fixes) directly without a PR
|
|
12
|
+
vfk nilsrelease minor Create a minor release (new features) directly without a PR
|
|
13
|
+
vfk nilsrelease major Create a major release (breaking changes) directly without a PR
|
|
14
|
+
|
|
15
|
+
Description:
|
|
16
|
+
This tool helps you create a GitHub release (and git tag) for your project.
|
|
17
|
+
It checks that your repository is clean and up-to-date, determines the next version
|
|
18
|
+
based on semantic versioning, bumps the version, creates pretty release notes and
|
|
19
|
+
provides a link to create the release on GitHub.
|
|
20
|
+
`;
|
|
21
|
+
export const nilsrelease = (...args) => {
|
|
22
|
+
if (args.length === 0 || args[0] === "help" || !SUPPORTED_SEMVER_TYPES_BY_PRIORITY.includes(args[0])) {
|
|
23
|
+
console.log(toolHelp);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const repoInfo = getRepoInfo();
|
|
27
|
+
// yocto-spinner og yocto-colors
|
|
28
|
+
let spinner = yoctoSpinner({
|
|
29
|
+
text: "Checking if repo is clean and up-to-date..."
|
|
30
|
+
}).start();
|
|
31
|
+
try {
|
|
32
|
+
repoIsReadyForRelease(repoInfo);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
spinner.error(`Repository is not ready for release: ${error instanceof Error ? error.message : String(error)}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
spinner.success("Repository is clean and up-to-date");
|
|
39
|
+
const releaseData = {
|
|
40
|
+
semverType: args[0],
|
|
41
|
+
latestTag: null,
|
|
42
|
+
projectInfo: null,
|
|
43
|
+
releaseType: null,
|
|
44
|
+
nextVersion: null,
|
|
45
|
+
commits: null,
|
|
46
|
+
releaseNotes: null
|
|
47
|
+
};
|
|
48
|
+
spinner = yoctoSpinner({ text: "Getting project info..." }).start();
|
|
49
|
+
try {
|
|
50
|
+
releaseData.projectInfo = getProjectInfo();
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
spinner.error(`Failed to get project info: ${error instanceof Error ? error.message : String(error)}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
spinner.success(`Project version is ${releaseData.projectInfo.version} (${releaseData.projectInfo.type})`);
|
|
57
|
+
// Run tests before proceeding
|
|
58
|
+
spinner = yoctoSpinner({ text: "Running tests..." }).start();
|
|
59
|
+
try {
|
|
60
|
+
runTests(releaseData.projectInfo);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
spinner.error(`Tests failed, please fix the errors before you create a release: ${error instanceof Error ? error.message : String(error)}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
spinner.success("All tests passed");
|
|
67
|
+
spinner = yoctoSpinner({ text: "Finding latest release tag..." }).start();
|
|
68
|
+
try {
|
|
69
|
+
releaseData.latestTag = getLatestReleaseTag();
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
spinner.error(`Failed to get latest release tag: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
spinner.success(releaseData.latestTag ? `Latest release tag is ${releaseData.latestTag}` : "No release tags found, will use project version");
|
|
76
|
+
// Get commits since latest release tag (and check that there are commits)
|
|
77
|
+
spinner = yoctoSpinner({ text: releaseData.latestTag ? `Getting git log commits since latest release tag ${releaseData.latestTag}` : "No latest tag found, getting all commits" }).start();
|
|
78
|
+
try {
|
|
79
|
+
releaseData.commits = getCommitsSinceTag(releaseData.latestTag);
|
|
80
|
+
if (releaseData.commits.length === 0) {
|
|
81
|
+
spinner.error(`No commits found. Why do you want to create a release with no new changes??? š`);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
spinner.success(`Found ${releaseData.commits.length} commit(s) since latest tag ${releaseData.latestTag}`);
|
|
85
|
+
spinner = yoctoSpinner({ text: "Analyzing commit types..." }).start();
|
|
86
|
+
const sortedCommits = sortCommitsByType(releaseData.commits);
|
|
87
|
+
if (!sortedCommits) {
|
|
88
|
+
spinner.error("Sorted commits is null??? Contact idiot-developers.");
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
// Determine the highest semver type present in the commits
|
|
92
|
+
const commitTypesByPriority = [...SUPPORTED_SEMVER_TYPES_BY_PRIORITY, "maintenance", "other"];
|
|
93
|
+
const highestCommitType = commitTypesByPriority.find((type) => sortedCommits?.[type] && sortedCommits[type].length > 0);
|
|
94
|
+
if (!highestCommitType) {
|
|
95
|
+
spinner.error("No commit types found. Probably no commits at all, but we already checked that??? Contact idiot-developers.");
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
const requestedTypeIndex = commitTypesByPriority.indexOf(releaseData.semverType); // Lower index means higher priority
|
|
99
|
+
const highestTypeIndex = commitTypesByPriority.indexOf(highestCommitType);
|
|
100
|
+
if (highestTypeIndex < requestedTypeIndex) {
|
|
101
|
+
spinner.error(`The requested PR type "${releaseData.semverType}" is lower than the highest commit type "${highestCommitType}" in the branch. Please review your commits and choose a higher PR type.`);
|
|
102
|
+
// List the commits beautifully-ish in the terminal
|
|
103
|
+
console.log(`Commits by type:`);
|
|
104
|
+
for (const type of commitTypesByPriority) {
|
|
105
|
+
if (sortedCommits?.[type] && sortedCommits[type].length > 0) {
|
|
106
|
+
console.log(`\n${type.toUpperCase()} COMMITS:`);
|
|
107
|
+
for (const commit of sortedCommits[type]) {
|
|
108
|
+
console.log(`- ${commit.subject} (${commit.hash})`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
// Check if there are commits that do not follow conventional commit types
|
|
115
|
+
if (sortedCommits.other.length > 0) {
|
|
116
|
+
yoctoSpinner().start().warning(`There are ${sortedCommits.other.length} commit(s) of type "other". Remember to prefix with conventional commit types for proper versioning.`);
|
|
117
|
+
// List out conventional commit types
|
|
118
|
+
console.log(`\t - Conventional commit types (suffix the type with : or - ) are: ${Object.values(conventionalCommitTypes).flat().join(", ")}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
spinner.error(`Failed to get commits: ${error instanceof Error ? error.message : String(error)}`);
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
spinner.success(`Commits validated for release type "${releaseData.semverType}"`);
|
|
126
|
+
// Check if we need to update project version based on latest tag and release type, and do it if needed
|
|
127
|
+
spinner = yoctoSpinner({ text: "Determining next version..." }).start();
|
|
128
|
+
try {
|
|
129
|
+
releaseData.nextVersion = getNextVersion(releaseData.latestTag, releaseData.projectInfo, releaseData.semverType);
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
spinner.error(`Failed to determine next version: ${error instanceof Error ? error.message : String(error)}`);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
spinner.success(`Next version is ${releaseData.nextVersion.version} (${releaseData.nextVersion.description})${releaseData.nextVersion.isInitialRelease ? ", this is the initial release" : ""}`);
|
|
136
|
+
// If project version is different from next version, update project version
|
|
137
|
+
if (releaseData.projectInfo.version !== releaseData.nextVersion.version) {
|
|
138
|
+
spinner = yoctoSpinner({
|
|
139
|
+
text: `Updating ${releaseData.projectInfo.type}-project version in ${releaseData.projectInfo.paths.join(" and ")} to ${releaseData.nextVersion.version}...`
|
|
140
|
+
}).start();
|
|
141
|
+
try {
|
|
142
|
+
updateProjectVersion(releaseData.projectInfo, releaseData.nextVersion.version);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
spinner.error(`Failed to update project version: ${error instanceof Error ? error.message : String(error)}`);
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
spinner.success(`${releaseData.projectInfo.type}-project version in ${releaseData.projectInfo.paths.join(" and ")} updated from ${releaseData.projectInfo.version} to ${releaseData.nextVersion.version}`);
|
|
149
|
+
spinner = yoctoSpinner({
|
|
150
|
+
text: "Committing version update and pushing to remote :: "
|
|
151
|
+
}).start();
|
|
152
|
+
try {
|
|
153
|
+
// Commit and push changes
|
|
154
|
+
commitAndPush(`chore: bump version to ${releaseData.nextVersion.version}`);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
spinner.error(`Failed to commit and push changes: ${error instanceof Error ? error.message : String(error)}`);
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
// Update current project version to match what we just updated/confirmed, to make sure that the correct version is used when generating release notes and the release link
|
|
161
|
+
releaseData.projectInfo.version = releaseData.nextVersion.version;
|
|
162
|
+
// Push the latest commit to releaseData.commits so that the release notes include the commit that bumps the version
|
|
163
|
+
if (!releaseData.commits) {
|
|
164
|
+
spinner.error("Release data commits is null??? Contact idiot-developers.");
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
const versionBumpCommit = getCommitsSinceTag(releaseData.commits[0]?.hash)[0]; // Get the latest commit, which should be the version bump commit we just made
|
|
168
|
+
if (!versionBumpCommit) {
|
|
169
|
+
spinner.error("Could not find version bump commit in git log??? Contact idiot-developers.");
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
releaseData.commits.unshift(versionBumpCommit);
|
|
173
|
+
spinner.success("Version update committed and pushed to remote, local project version updated to match the new version, and version bump commit added to release data commits");
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
spinner = yoctoSpinner({
|
|
177
|
+
text: `${releaseData.projectInfo.type}-project version in ${releaseData.projectInfo.paths.join(" and ")} is already up to date.`
|
|
178
|
+
});
|
|
179
|
+
spinner.start();
|
|
180
|
+
spinner.success();
|
|
181
|
+
}
|
|
182
|
+
// Finn ut av hva slags semver type release vi skal lage basert pƄ latestTag og project version
|
|
183
|
+
spinner = yoctoSpinner({ text: "Determining release type (semver) based on latest release tag and next project version..." }).start();
|
|
184
|
+
try {
|
|
185
|
+
releaseData.releaseType = getSemverReleaseType(releaseData.latestTag, releaseData.projectInfo);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
spinner.error(`Failed to determine semver type: ${error instanceof Error ? error.message : String(error)}`);
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
spinner.success(`Determined release type (semver) is ${releaseData.releaseType}. Release-tag will be ${releaseData.nextVersion.version}`);
|
|
192
|
+
try {
|
|
193
|
+
releaseData.releaseNotes = generateReleaseNotes(releaseData);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
spinner.error(`Failed to generate release notes: ${error instanceof Error ? error.message : String(error)}`);
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
spinner.success("Release notes generated");
|
|
200
|
+
// Then we create a PR from a query link to GitHub with the right info filled in
|
|
201
|
+
const releaseTitle = `Release ${releaseData.nextVersion.version}`;
|
|
202
|
+
const releaseBody = releaseData.releaseNotes;
|
|
203
|
+
const releaseLink = `${repoInfo.githubUrl}/releases/new?tag=${encodeURIComponent(releaseData.nextVersion.version)}&title=${encodeURIComponent(releaseTitle)}&body=${encodeURIComponent(releaseBody)}`;
|
|
204
|
+
openUrl(releaseLink, "š Create your release here if it did not open automatically");
|
|
205
|
+
};
|
|
206
|
+
//# sourceMappingURL=nilsrelease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nilsrelease.js","sourceRoot":"","sources":["../../src/tools/nilsrelease.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAgB,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtK,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,kCAAkC,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAIjJ,MAAM,QAAQ,GAAG;;;;;;;;;;;;;CAahB,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAc,EAAQ,EAAE;IACtD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC,EAAE,CAAC;QAC7H,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,MAAM,QAAQ,GAAa,WAAW,EAAE,CAAA;IACxC,gCAAgC;IAChC,IAAI,OAAO,GAAY,YAAY,CAAC;QACnC,IAAI,EAAE,6CAA6C;KACnD,CAAC,CAAC,KAAK,EAAE,CAAA;IACV,IAAI,CAAC;QACJ,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAA;IAErD,MAAM,WAAW,GAAoB;QACpC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAwB;QAC1C,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;KAClB,CAAA;IAED,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACnE,IAAI,CAAC;QACJ,WAAW,CAAC,WAAW,GAAG,cAAc,EAAE,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,sBAAsB,WAAW,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAA;IAE1G,8BAA8B;IAC9B,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAC5D,IAAI,CAAC;QACJ,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,oEAAoE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAEnC,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACzE,IAAI,CAAC;QACJ,WAAW,CAAC,SAAS,GAAG,mBAAmB,EAAE,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,yBAAyB,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAA;IAE7I,0EAA0E;IAC1E,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,oDAAoD,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,0CAA0C,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAC1L,IAAI,CAAC;QACJ,WAAW,CAAC,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC/D,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAA;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,MAAM,+BAA+B,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1G,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACrE,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,2DAA2D;QAC3D,MAAM,qBAAqB,GAAoB,CAAC,GAAG,kCAAkC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;QAE9G,MAAM,iBAAiB,GAA8B,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAmB,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAA;YAC5H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,MAAM,kBAAkB,GAAW,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,CAAC,oCAAoC;QAC7H,MAAM,gBAAgB,GAAW,qBAAqB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACjF,IAAI,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,CACZ,0BAA0B,WAAW,CAAC,UAAU,4CAA4C,iBAAiB,0EAA0E,CACvL,CAAA;YACD,mDAAmD;YACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YAC/B,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;gBAC1C,IAAI,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;oBAC/C,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;oBACpD,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,0EAA0E;QAC1E,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,aAAa,aAAa,CAAC,KAAK,CAAC,MAAM,sGAAsG,CAAC,CAAA;YAC7K,qCAAqC;YACrC,OAAO,CAAC,GAAG,CAAC,sEAAsE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9I,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,uCAAuC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAA;IAEjF,uGAAuG;IACvG,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACvE,IAAI,CAAC;QACJ,WAAW,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;IACjH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,WAAW,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEhM,4EAA4E;IAC5E,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,KAAK,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzE,OAAO,GAAG,YAAY,CAAC;YACtB,IAAI,EAAE,YAAY,WAAW,CAAC,WAAW,CAAC,IAAI,uBAAuB,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,OAAO,KAAK;SAC3J,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,CAAC;YACJ,oBAAoB,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,OAAO,CACd,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,uBAAuB,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,WAAW,CAAC,WAAW,CAAC,OAAO,OAAO,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CACzL,CAAA;QAED,OAAO,GAAG,YAAY,CAAC;YACtB,IAAI,EAAE,qDAAqD;SAC3D,CAAC,CAAC,KAAK,EAAE,CAAA;QACV,IAAI,CAAC;YACJ,0BAA0B;YAC1B,aAAa,CAAC,0BAA0B,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QAED,2KAA2K;QAC3K,WAAW,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAA;QAEjE,oHAAoH;QACpH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,8EAA8E;QAC5J,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAA;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE9C,OAAO,CAAC,OAAO,CAAC,8JAA8J,CAAC,CAAA;IAChL,CAAC;SAAM,CAAC;QACP,OAAO,GAAG,YAAY,CAAC;YACtB,IAAI,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,uBAAuB,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB;SAChI,CAAC,CAAA;QACF,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC;IAED,+FAA+F;IAC/F,OAAO,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,2FAA2F,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACrI,IAAI,CAAC;QACJ,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IAC/F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC3G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,uCAAuC,WAAW,CAAC,WAAW,yBAAyB,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAA;IAEzI,IAAI,CAAC;QACJ,WAAW,CAAC,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAA;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAE1C,gFAAgF;IAChF,MAAM,YAAY,GAAG,WAAW,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,CAAA;IACjE,MAAM,WAAW,GAAW,WAAW,CAAC,YAAY,CAAA;IAEpD,MAAM,WAAW,GAAG,GAAG,QAAQ,CAAC,SAAS,qBAAqB,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,kBAAkB,CAAC,YAAY,CAAC,SAAS,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;IAErM,OAAO,CAAC,WAAW,EAAE,8DAA8D,CAAC,CAAA;AACrF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/tools/release.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../src/tools/release.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,MAAM,EAAE,KAAG,IA+F3C,CAAA"}
|
package/dist/tools/release.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/tools/release.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAgB,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC3G,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAIvE,MAAM,QAAQ,GAAG
|
|
1
|
+
{"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/tools/release.ts"],"names":[],"mappings":"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"}
|
package/dist/types/tools.d.ts
CHANGED
|
@@ -15,4 +15,13 @@ export type ReleaseData = {
|
|
|
15
15
|
commits: GitLogCommit[] | null;
|
|
16
16
|
releaseNotes: string | null;
|
|
17
17
|
};
|
|
18
|
+
export type NilsReleaseData = {
|
|
19
|
+
semverType: SupportedSemverType;
|
|
20
|
+
latestTag: string | null;
|
|
21
|
+
projectInfo: ProjectInfo | null;
|
|
22
|
+
releaseType: ReleaseType | null;
|
|
23
|
+
nextVersion: NextVersion | null;
|
|
24
|
+
commits: GitLogCommit[] | null;
|
|
25
|
+
releaseNotes: string | null;
|
|
26
|
+
};
|
|
18
27
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA"}
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,mBAAmB,CAAA;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vestfoldfylke/vfk-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"description": "A command line interface for our pleasure",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/vestfoldfylke/vfk-cli#readme",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"semver": "^7.7.
|
|
45
|
-
"yocto-spinner": "^1.
|
|
44
|
+
"semver": "^7.7.4",
|
|
45
|
+
"yocto-spinner": "^1.1.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@biomejs/biome": "2.
|
|
49
|
-
"@types/node": "^
|
|
48
|
+
"@biomejs/biome": "2.4.12",
|
|
49
|
+
"@types/node": "^25.6.0",
|
|
50
50
|
"@types/semver": "^7.7.1",
|
|
51
|
-
"tsx": "^4.
|
|
52
|
-
"typescript": "^
|
|
51
|
+
"tsx": "^4.21.0",
|
|
52
|
+
"typescript": "^6.0.3"
|
|
53
53
|
}
|
|
54
54
|
}
|