@adbayb/stack 2.33.0 → 2.34.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/configs/eslint/presets/node.js +2 -1
- package/configs/eslint/presets/react.js +45 -36
- package/configs/eslint/presets/unicorn.js +5 -0
- package/dist/index.js +21 -27
- package/package.json +20 -20
- package/templates/multi-projects/.github/renovate.json +0 -3
- package/templates/multi-projects/.github/workflows/continuous_delivery.yml +4 -3
- package/templates/multi-projects/.github/workflows/conventional_commit.yml +1 -1
- package/templates/multi-projects/.github/workflows/dependency_changelog.yml +1 -1
- package/templates/multi-projects/.github/workflows/workflow.yml +1 -1
- package/templates/multi-projects/package.json.tmpl +16 -3
- package/templates/single-project/.github/renovate.json +0 -3
- package/templates/single-project/.github/workflows/continuous_delivery.yml +4 -3
- package/templates/single-project/.github/workflows/conventional_commit.yml +1 -1
- package/templates/single-project/.github/workflows/dependency_changelog.yml +1 -1
- package/templates/single-project/.github/workflows/workflow.yml +1 -1
- package/templates/single-project/package.json.tmpl +16 -3
|
@@ -7,77 +7,83 @@ import {
|
|
|
7
7
|
} from "../constants.js";
|
|
8
8
|
import { createConfig } from "../helpers.js";
|
|
9
9
|
|
|
10
|
-
const {
|
|
11
|
-
configs: { all: reactPluginConfig },
|
|
12
|
-
} = reactPlugin;
|
|
13
|
-
|
|
14
10
|
export const config = createConfig(
|
|
15
11
|
{
|
|
16
12
|
files: JAVASCRIPT_LIKE_FILES,
|
|
17
|
-
plugins:
|
|
13
|
+
plugins: {
|
|
14
|
+
"@eslint-react": reactPlugin,
|
|
15
|
+
},
|
|
18
16
|
rules: {
|
|
19
|
-
"@eslint-react/
|
|
20
|
-
"@eslint-react/dom
|
|
21
|
-
"@eslint-react/dom/no-dangerously-set-innerhtml-with-children":
|
|
17
|
+
"@eslint-react/dom-no-dangerously-set-innerhtml": "error",
|
|
18
|
+
"@eslint-react/dom-no-dangerously-set-innerhtml-with-children":
|
|
22
19
|
"error",
|
|
23
|
-
"@eslint-react/dom
|
|
24
|
-
"@eslint-react/dom
|
|
25
|
-
"@eslint-react/dom
|
|
26
|
-
"@eslint-react/dom
|
|
27
|
-
"@eslint-react/dom
|
|
28
|
-
"@eslint-react/dom
|
|
29
|
-
"@eslint-react/dom
|
|
30
|
-
"@eslint-react/dom
|
|
31
|
-
"@eslint-react/dom
|
|
32
|
-
"@eslint-react/dom
|
|
33
|
-
"@eslint-react/dom
|
|
34
|
-
"@eslint-react/dom
|
|
35
|
-
"@eslint-react/dom
|
|
36
|
-
"@eslint-react/dom
|
|
20
|
+
"@eslint-react/dom-no-find-dom-node": "error",
|
|
21
|
+
"@eslint-react/dom-no-flush-sync": "error",
|
|
22
|
+
"@eslint-react/dom-no-hydrate": "error",
|
|
23
|
+
"@eslint-react/dom-no-missing-button-type": "error",
|
|
24
|
+
"@eslint-react/dom-no-missing-iframe-sandbox": "error",
|
|
25
|
+
"@eslint-react/dom-no-render": "error",
|
|
26
|
+
"@eslint-react/dom-no-render-return-value": "error",
|
|
27
|
+
"@eslint-react/dom-no-script-url": "error",
|
|
28
|
+
"@eslint-react/dom-no-string-style-prop": "error",
|
|
29
|
+
"@eslint-react/dom-no-unknown-property": "error",
|
|
30
|
+
"@eslint-react/dom-no-unsafe-iframe-sandbox": "error",
|
|
31
|
+
"@eslint-react/dom-no-unsafe-target-blank": "error",
|
|
32
|
+
"@eslint-react/dom-no-use-form-state": "error",
|
|
33
|
+
"@eslint-react/dom-no-void-elements-with-children": "error",
|
|
37
34
|
"@eslint-react/error-boundaries": "error",
|
|
38
35
|
"@eslint-react/exhaustive-deps": "warn",
|
|
36
|
+
"@eslint-react/globals": "error",
|
|
39
37
|
"@eslint-react/immutability": "error",
|
|
38
|
+
"@eslint-react/jsx-no-children-prop": "error",
|
|
39
|
+
"@eslint-react/jsx-no-children-prop-with-children": "error",
|
|
40
40
|
"@eslint-react/jsx-no-comment-textnodes": "error",
|
|
41
|
-
"@eslint-react/jsx-
|
|
42
|
-
"@eslint-react/jsx-
|
|
43
|
-
"@eslint-react/
|
|
41
|
+
"@eslint-react/jsx-no-key-after-spread": "error",
|
|
42
|
+
"@eslint-react/jsx-no-leaked-dollar": "error",
|
|
43
|
+
"@eslint-react/jsx-no-leaked-semicolon": "error",
|
|
44
|
+
"@eslint-react/jsx-no-namespace": "error",
|
|
45
|
+
"@eslint-react/jsx-no-useless-fragment": "error",
|
|
46
|
+
"@eslint-react/naming-convention-context-name": "error",
|
|
47
|
+
"@eslint-react/naming-convention-id-name": "error",
|
|
48
|
+
"@eslint-react/naming-convention-ref-name": "error",
|
|
44
49
|
"@eslint-react/no-access-state-in-setstate": "error",
|
|
45
|
-
"@eslint-react/no-
|
|
50
|
+
"@eslint-react/no-array-index-key": "error",
|
|
46
51
|
"@eslint-react/no-class-component": "error",
|
|
47
52
|
"@eslint-react/no-context-provider": "error",
|
|
48
53
|
"@eslint-react/no-create-ref": "error",
|
|
49
54
|
"@eslint-react/no-direct-mutation-state": "error",
|
|
50
55
|
"@eslint-react/no-duplicate-key": "error",
|
|
51
56
|
"@eslint-react/no-forward-ref": "error",
|
|
57
|
+
"@eslint-react/no-implicit-children": "error",
|
|
58
|
+
"@eslint-react/no-implicit-key": "error",
|
|
59
|
+
"@eslint-react/no-implicit-ref": "error",
|
|
52
60
|
"@eslint-react/no-leaked-conditional-rendering": "error",
|
|
53
61
|
"@eslint-react/no-missing-component-display-name": "error",
|
|
54
62
|
"@eslint-react/no-missing-key": "error",
|
|
55
63
|
"@eslint-react/no-misused-capture-owner-stack": "error",
|
|
56
64
|
"@eslint-react/no-nested-component-definitions": "error",
|
|
57
65
|
"@eslint-react/no-nested-lazy-component-declarations": "error",
|
|
58
|
-
"@eslint-react/no-unnecessary-use-callback": "error",
|
|
59
|
-
"@eslint-react/no-unnecessary-use-memo": "error",
|
|
60
66
|
"@eslint-react/no-unnecessary-use-prefix": "error",
|
|
61
67
|
"@eslint-react/no-unstable-context-value": "error",
|
|
62
68
|
"@eslint-react/no-unstable-default-props": "error",
|
|
63
|
-
"@eslint-react/no-unused-class-component-members": "error",
|
|
64
69
|
"@eslint-react/no-unused-props": "error",
|
|
70
|
+
"@eslint-react/no-unused-state": "error",
|
|
65
71
|
"@eslint-react/no-use-context": "error",
|
|
66
|
-
"@eslint-react/no-useless-fragment": "error",
|
|
67
72
|
"@eslint-react/purity": "error",
|
|
68
73
|
"@eslint-react/refs": "error",
|
|
74
|
+
"@eslint-react/rsc-function-definition": "error",
|
|
69
75
|
"@eslint-react/rules-of-hooks": "error",
|
|
70
76
|
"@eslint-react/set-state-in-effect": "error",
|
|
71
77
|
"@eslint-react/set-state-in-render": "error",
|
|
72
|
-
"@eslint-react/
|
|
73
|
-
"@eslint-react/unstable-rules-of-state": "error",
|
|
78
|
+
"@eslint-react/static-components": "error",
|
|
74
79
|
"@eslint-react/unsupported-syntax": "error",
|
|
75
80
|
"@eslint-react/use-memo": "error",
|
|
76
81
|
"@eslint-react/use-state": "error",
|
|
77
|
-
"@eslint-react/web-api
|
|
78
|
-
"@eslint-react/web-api
|
|
79
|
-
"@eslint-react/web-api
|
|
80
|
-
"@eslint-react/web-api
|
|
82
|
+
"@eslint-react/web-api-no-leaked-event-listener": "error",
|
|
83
|
+
"@eslint-react/web-api-no-leaked-fetch": "error",
|
|
84
|
+
"@eslint-react/web-api-no-leaked-interval": "error",
|
|
85
|
+
"@eslint-react/web-api-no-leaked-resize-observer": "error",
|
|
86
|
+
"@eslint-react/web-api-no-leaked-timeout": "error",
|
|
81
87
|
},
|
|
82
88
|
},
|
|
83
89
|
{
|
|
@@ -88,6 +94,9 @@ export const config = createConfig(
|
|
|
88
94
|
* Until the React X plugin provides a `disableTypeChecked`-like preset, we must maintain the rule list manually
|
|
89
95
|
* following the [documentation](https://eslint-react.xyz/docs/configuration/configure-project-config#type-information).
|
|
90
96
|
*/
|
|
97
|
+
"@eslint-react/no-implicit-children": "off",
|
|
98
|
+
"@eslint-react/no-implicit-key": "off",
|
|
99
|
+
"@eslint-react/no-implicit-ref": "off",
|
|
91
100
|
"@eslint-react/no-leaked-conditional-rendering": "off",
|
|
92
101
|
"@eslint-react/no-unused-props": "off",
|
|
93
102
|
},
|
|
@@ -19,6 +19,7 @@ export const config = createConfig({
|
|
|
19
19
|
"unicorn/consistent-empty-array-spread": "error",
|
|
20
20
|
"unicorn/consistent-existence-index-check": "error",
|
|
21
21
|
"unicorn/consistent-function-scoping": "error",
|
|
22
|
+
"unicorn/consistent-template-literal-escape": "error",
|
|
22
23
|
"unicorn/custom-error-definition": "error",
|
|
23
24
|
"unicorn/error-message": "error",
|
|
24
25
|
"unicorn/escape-case": "error",
|
|
@@ -33,6 +34,7 @@ export const config = createConfig({
|
|
|
33
34
|
},
|
|
34
35
|
},
|
|
35
36
|
],
|
|
37
|
+
"unicorn/isolated-functions": "error",
|
|
36
38
|
"unicorn/new-for-builtins": "error",
|
|
37
39
|
"unicorn/no-abusive-eslint-disable": "error",
|
|
38
40
|
"unicorn/no-array-callback-reference": "error",
|
|
@@ -67,6 +69,7 @@ export const config = createConfig({
|
|
|
67
69
|
"unicorn/no-useless-collection-argument": "error",
|
|
68
70
|
"unicorn/no-useless-error-capture-stack-trace": "error",
|
|
69
71
|
"unicorn/no-useless-fallback-in-spread": "error",
|
|
72
|
+
"unicorn/no-useless-iterator-to-array": "error",
|
|
70
73
|
"unicorn/no-useless-length-check": "error",
|
|
71
74
|
"unicorn/no-useless-promise-resolve-reject": "error",
|
|
72
75
|
"unicorn/no-useless-spread": "error",
|
|
@@ -113,6 +116,7 @@ export const config = createConfig({
|
|
|
113
116
|
"unicorn/prefer-response-static-json": "error",
|
|
114
117
|
"unicorn/prefer-set-has": "error",
|
|
115
118
|
"unicorn/prefer-set-size": "error",
|
|
119
|
+
"unicorn/prefer-simple-condition-first": "error",
|
|
116
120
|
"unicorn/prefer-single-call": "error",
|
|
117
121
|
"unicorn/prefer-spread": "error",
|
|
118
122
|
"unicorn/prefer-string-raw": "error",
|
|
@@ -136,6 +140,7 @@ export const config = createConfig({
|
|
|
136
140
|
"unicorn/require-module-attributes": "error",
|
|
137
141
|
"unicorn/require-number-to-fixed-digits-argument": "error",
|
|
138
142
|
"unicorn/switch-case-braces": "error",
|
|
143
|
+
"unicorn/switch-case-break-position": "error",
|
|
139
144
|
"unicorn/template-indent": "error",
|
|
140
145
|
"unicorn/text-encoding-identifier-case": "error",
|
|
141
146
|
"unicorn/throw-new-error": "error",
|
package/dist/index.js
CHANGED
|
@@ -73,13 +73,6 @@ const createError = (bin, error)=>{
|
|
|
73
73
|
}
|
|
74
74
|
return new Error(errorMessage);
|
|
75
75
|
};
|
|
76
|
-
const checkPackageManager = async ()=>{
|
|
77
|
-
try {
|
|
78
|
-
await helpers.exec("npx only-allow pnpm");
|
|
79
|
-
} catch {
|
|
80
|
-
throw createError("pnpm", "The project must use `pnpm` as a node package manager tool. Follow this installation guide https://pnpm.io/installation");
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
76
|
const getNpmVersion = async ()=>{
|
|
84
77
|
try {
|
|
85
78
|
return await helpers.exec("pnpm -v");
|
|
@@ -87,17 +80,8 @@ const getNpmVersion = async ()=>{
|
|
|
87
80
|
throw createError("pnpm", "The project must use `pnpm` as a node package manager tool. Follow this installation guide https://pnpm.io/installation");
|
|
88
81
|
}
|
|
89
82
|
};
|
|
90
|
-
const getStackCommand = (command
|
|
91
|
-
|
|
92
|
-
* `isNodeRuntime` allows executing node bin executables in a non node environment such as in git hooks context
|
|
93
|
-
* Npx is used to make executable resolution independent from the build tool (npx is the built-in Node tool)
|
|
94
|
-
* `--no` flag to prevent installation prompt and throw an error if the binary is not installed.
|
|
95
|
-
*/ return [
|
|
96
|
-
...isNodeRuntime ? [] : [
|
|
97
|
-
"npx --no"
|
|
98
|
-
],
|
|
99
|
-
`stack ${command}`
|
|
100
|
-
].join(" ");
|
|
83
|
+
const getStackCommand = (command)=>{
|
|
84
|
+
return `pnpm stack ${command}`;
|
|
101
85
|
};
|
|
102
86
|
const hasDependency = (packageName)=>{
|
|
103
87
|
return Boolean(require$1.resolve(packageName));
|
|
@@ -208,6 +192,14 @@ const createBuildCommand = (program)=>{
|
|
|
208
192
|
});
|
|
209
193
|
};
|
|
210
194
|
|
|
195
|
+
const checkChangelog = async ()=>{
|
|
196
|
+
try {
|
|
197
|
+
return await helpers.exec("changeset status --since=origin/main");
|
|
198
|
+
} catch (error) {
|
|
199
|
+
throw createError("changeset", error);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
211
203
|
const checkCode = eslint({
|
|
212
204
|
isFixMode: false
|
|
213
205
|
});
|
|
@@ -338,6 +330,7 @@ const checkType = async ()=>{
|
|
|
338
330
|
};
|
|
339
331
|
|
|
340
332
|
const ONLY_VALUES = [
|
|
333
|
+
"changelog",
|
|
341
334
|
"commit",
|
|
342
335
|
"code",
|
|
343
336
|
"dependency",
|
|
@@ -368,6 +361,12 @@ const createCheckCommand = (program)=>{
|
|
|
368
361
|
skip ({ filter }) {
|
|
369
362
|
return filter === "commit"; // No need to build if only commit is checked
|
|
370
363
|
}
|
|
364
|
+
}).task({
|
|
365
|
+
async handler () {
|
|
366
|
+
await checkChangelog();
|
|
367
|
+
},
|
|
368
|
+
label: label$4("Check changelog compliance"),
|
|
369
|
+
skip: ifFilterDefinedAndNotEqualTo("changelog")
|
|
371
370
|
}).task({
|
|
372
371
|
async handler () {
|
|
373
372
|
await checkDependency();
|
|
@@ -464,7 +463,7 @@ const PRESERVE_FILES = [
|
|
|
464
463
|
"node_modules"
|
|
465
464
|
];
|
|
466
465
|
|
|
467
|
-
var version = "2.
|
|
466
|
+
var version = "2.34.0";
|
|
468
467
|
|
|
469
468
|
const createCreateCommand = (program)=>{
|
|
470
469
|
program.command({
|
|
@@ -704,20 +703,15 @@ const createInstallCommand = (program)=>{
|
|
|
704
703
|
}).task({
|
|
705
704
|
async handler () {
|
|
706
705
|
const lineBreakMatcher = String.raw`\n|\r\n`;
|
|
707
|
-
const
|
|
708
|
-
await installGitHook("pre-commit", `${
|
|
706
|
+
const stackCommand = getStackCommand(`fix $(node -e 'console.log(require("child_process").execSync("git status --porcelain", {encoding: "utf8"}).split(/${lineBreakMatcher}/).filter(Boolean).map(item => item.split(" ").at(-1)).join(" "))')`);
|
|
707
|
+
await installGitHook("pre-commit", `${stackCommand} && git add -A`);
|
|
709
708
|
},
|
|
710
709
|
label: label("Install `git.pre-commit` hook")
|
|
711
710
|
}).task({
|
|
712
711
|
async handler () {
|
|
713
|
-
await installGitHook("commit-msg", getStackCommand("check --filter commit"
|
|
712
|
+
await installGitHook("commit-msg", getStackCommand("check --filter commit"));
|
|
714
713
|
},
|
|
715
714
|
label: label("Install `git.commit-msg` hook")
|
|
716
|
-
}).task({
|
|
717
|
-
async handler () {
|
|
718
|
-
await checkPackageManager();
|
|
719
|
-
},
|
|
720
|
-
label: label("Check the package manager")
|
|
721
715
|
});
|
|
722
716
|
};
|
|
723
717
|
const label = (message)=>`${message} 📲`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adbayb/stack",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.34.0",
|
|
4
4
|
"description": "My opinionated JavaScript-based toolchain",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"stack",
|
|
@@ -39,37 +39,37 @@
|
|
|
39
39
|
"templates"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@changesets/changelog-github": "^0.
|
|
43
|
-
"@changesets/cli": "^2.
|
|
44
|
-
"@commitlint/cli": "^
|
|
45
|
-
"@commitlint/config-conventional": "^
|
|
46
|
-
"@eslint-react/eslint-plugin": "^
|
|
47
|
-
"@eslint/compat": "^2.0
|
|
42
|
+
"@changesets/changelog-github": "^0.7.0",
|
|
43
|
+
"@changesets/cli": "^2.31.0",
|
|
44
|
+
"@commitlint/cli": "^21.0.1",
|
|
45
|
+
"@commitlint/config-conventional": "^21.0.1",
|
|
46
|
+
"@eslint-react/eslint-plugin": "^5.7.8",
|
|
47
|
+
"@eslint/compat": "^2.1.0",
|
|
48
48
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
49
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
50
|
-
"eslint": "^10.
|
|
49
|
+
"@vitest/eslint-plugin": "^1.6.17",
|
|
50
|
+
"eslint": "^10.3.0",
|
|
51
51
|
"eslint-config-prettier": "^10.1.8",
|
|
52
52
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
53
53
|
"eslint-plugin-depend": "^1.5.0",
|
|
54
54
|
"eslint-plugin-import-x": "^4.16.2",
|
|
55
|
-
"eslint-plugin-jsdoc": "^62.
|
|
55
|
+
"eslint-plugin-jsdoc": "^62.9.0",
|
|
56
56
|
"eslint-plugin-mdx": "^3.7.0",
|
|
57
|
-
"eslint-plugin-n": "^
|
|
58
|
-
"eslint-plugin-perfectionist": "^5.
|
|
57
|
+
"eslint-plugin-n": "^18.0.1",
|
|
58
|
+
"eslint-plugin-perfectionist": "^5.9.0",
|
|
59
59
|
"eslint-plugin-prettier": "^5.5.5",
|
|
60
|
-
"eslint-plugin-sonarjs": "^4.0.
|
|
61
|
-
"eslint-plugin-unicorn": "^
|
|
60
|
+
"eslint-plugin-sonarjs": "^4.0.3",
|
|
61
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
62
62
|
"fdir": "^6.5.0",
|
|
63
|
-
"globals": "^17.
|
|
64
|
-
"prettier": "^3.8.
|
|
63
|
+
"globals": "^17.6.0",
|
|
64
|
+
"prettier": "^3.8.3",
|
|
65
65
|
"prettier-plugin-packagejson": "^3.0.2",
|
|
66
66
|
"termost": "^1.9.0",
|
|
67
|
-
"turbo": "^2.
|
|
68
|
-
"typescript": "^6.0.
|
|
69
|
-
"typescript-eslint": "^8.
|
|
67
|
+
"turbo": "^2.9.12",
|
|
68
|
+
"typescript": "^6.0.3",
|
|
69
|
+
"typescript-eslint": "^8.59.3"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@types/node": "24.12.
|
|
72
|
+
"@types/node": "24.12.4",
|
|
73
73
|
"quickbundle": "2.16.0"
|
|
74
74
|
},
|
|
75
75
|
"publishConfig": {
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
pull-requests: write
|
|
21
21
|
steps:
|
|
22
22
|
- uses: actions/checkout@v6
|
|
23
|
-
- uses: pnpm/action-setup@
|
|
23
|
+
- uses: pnpm/action-setup@v6
|
|
24
24
|
- uses: actions/setup-node@v6
|
|
25
25
|
with:
|
|
26
26
|
cache: pnpm
|
|
@@ -30,8 +30,9 @@ jobs:
|
|
|
30
30
|
- name: Publish pre-release version(s)
|
|
31
31
|
if: "!contains(github.event.head_commit.message, 'chore: release package(s)')"
|
|
32
32
|
run: |
|
|
33
|
-
pnpm --filter="!." --filter="!./
|
|
34
|
-
|
|
33
|
+
pnpm --filter="!." --filter="!./applications/*" --filter="!./examples/*" --filter="!./tools/*" --recursive exec \
|
|
34
|
+
node -e "const fs=require('fs'),pkg=JSON.parse(fs.readFileSync('package.json'));pkg.version=pkg.version+'-next-${GITHUB_SHA::7}';fs.writeFileSync('package.json',JSON.stringify(pkg,null,2)+'\n');"
|
|
35
|
+
pnpm --filter="!." --filter="!./applications/*" --filter="!./examples/*" --filter="!./tools/*" --recursive exec pnpm publish --tag next --no-git-checks
|
|
35
36
|
- name: Create release pull request
|
|
36
37
|
if: "!contains(github.event.head_commit.message, 'chore: release package(s)')"
|
|
37
38
|
uses: changesets/action@v1
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
```
|
|
42
42
|
# Delete a previous comment when the issue has been resolved
|
|
43
43
|
- if: ${{ steps.check_pr_rule.outputs.error_message == null }}
|
|
44
|
-
uses: marocchino/sticky-pull-request-comment@
|
|
44
|
+
uses: marocchino/sticky-pull-request-comment@v3
|
|
45
45
|
with:
|
|
46
46
|
header: check_pr_comment
|
|
47
47
|
delete: true
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
git config --global user.email adbayb@gmail.com
|
|
22
22
|
git config --global user.name 'Ayoub Adib'
|
|
23
23
|
- name: Create changelog entry
|
|
24
|
-
uses: actions/github-script@
|
|
24
|
+
uses: actions/github-script@v9
|
|
25
25
|
# Credits to https://github.com/backstage/backstage/blob/bcc11651add5a2589898dfb9d665ebb9d412201b/.github/workflows/sync_renovate-changesets.yml
|
|
26
26
|
with:
|
|
27
27
|
script: |
|
|
@@ -18,8 +18,21 @@
|
|
|
18
18
|
},
|
|
19
19
|
"prettier": "@adbayb/stack/prettier",
|
|
20
20
|
"packageManager": "pnpm@{{npmVersion}}",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
21
|
+
"devEngines": {
|
|
22
|
+
"packageManager": [
|
|
23
|
+
{
|
|
24
|
+
"name": "pnpm",
|
|
25
|
+
"version": "{{npmVersion}}",
|
|
26
|
+
"onFail": "download"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "npm"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"runtime": {
|
|
33
|
+
"name": "node",
|
|
34
|
+
"version": ">=24.0.0",
|
|
35
|
+
"onFail": "error"
|
|
36
|
+
}
|
|
24
37
|
}
|
|
25
38
|
}
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
pull-requests: write
|
|
21
21
|
steps:
|
|
22
22
|
- uses: actions/checkout@v6
|
|
23
|
-
- uses: pnpm/action-setup@
|
|
23
|
+
- uses: pnpm/action-setup@v6
|
|
24
24
|
- uses: actions/setup-node@v6
|
|
25
25
|
with:
|
|
26
26
|
cache: pnpm
|
|
@@ -30,8 +30,9 @@ jobs:
|
|
|
30
30
|
- name: Publish pre-release version(s)
|
|
31
31
|
if: "!contains(github.event.head_commit.message, 'chore: release package(s)')"
|
|
32
32
|
run: |
|
|
33
|
-
pnpm --filter="!." --filter="!./
|
|
34
|
-
|
|
33
|
+
pnpm --filter="!." --filter="!./applications/*" --filter="!./examples/*" --filter="!./tools/*" --recursive exec \
|
|
34
|
+
node -e "const fs=require('fs'),pkg=JSON.parse(fs.readFileSync('package.json'));pkg.version=pkg.version+'-next-${GITHUB_SHA::7}';fs.writeFileSync('package.json',JSON.stringify(pkg,null,2)+'\n');"
|
|
35
|
+
pnpm --filter="!." --filter="!./applications/*" --filter="!./examples/*" --filter="!./tools/*" --recursive exec pnpm publish --tag next --no-git-checks
|
|
35
36
|
- name: Create release pull request
|
|
36
37
|
if: "!contains(github.event.head_commit.message, 'chore: release package(s)')"
|
|
37
38
|
uses: changesets/action@v1
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
```
|
|
42
42
|
# Delete a previous comment when the issue has been resolved
|
|
43
43
|
- if: ${{ steps.check_pr_rule.outputs.error_message == null }}
|
|
44
|
-
uses: marocchino/sticky-pull-request-comment@
|
|
44
|
+
uses: marocchino/sticky-pull-request-comment@v3
|
|
45
45
|
with:
|
|
46
46
|
header: check_pr_comment
|
|
47
47
|
delete: true
|
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
git config --global user.email adbayb@gmail.com
|
|
22
22
|
git config --global user.name 'Ayoub Adib'
|
|
23
23
|
- name: Create changelog entry
|
|
24
|
-
uses: actions/github-script@
|
|
24
|
+
uses: actions/github-script@v9
|
|
25
25
|
# Credits to https://github.com/backstage/backstage/blob/bcc11651add5a2589898dfb9d665ebb9d412201b/.github/workflows/sync_renovate-changesets.yml
|
|
26
26
|
with:
|
|
27
27
|
script: |
|
|
@@ -18,8 +18,21 @@
|
|
|
18
18
|
},
|
|
19
19
|
"prettier": "@adbayb/stack/prettier",
|
|
20
20
|
"packageManager": "pnpm@{{npmVersion}}",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
21
|
+
"devEngines": {
|
|
22
|
+
"packageManager": [
|
|
23
|
+
{
|
|
24
|
+
"name": "pnpm",
|
|
25
|
+
"version": "{{npmVersion}}",
|
|
26
|
+
"onFail": "download"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "npm"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"runtime": {
|
|
33
|
+
"name": "node",
|
|
34
|
+
"version": ">=24.0.0",
|
|
35
|
+
"onFail": "error"
|
|
36
|
+
}
|
|
24
37
|
}
|
|
25
38
|
}
|