@mriekki/project-forge 4.24.0 → 4.24.1
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/assets/components.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "4.24.
|
|
4
|
+
"version": "4.24.1",
|
|
5
5
|
"defaultProfile": "greenfield-project",
|
|
6
6
|
"profiles": {
|
|
7
7
|
"greenfield-project": {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"components": {
|
|
15
15
|
"core": {
|
|
16
|
-
"revision": "
|
|
17
|
-
"version": "4.2.
|
|
16
|
+
"revision": "59f5657bbb6f1edc45d1e8619ab1d0875b7907e0",
|
|
17
|
+
"version": "4.2.1",
|
|
18
18
|
"distribution": "greenfield-workspace",
|
|
19
19
|
"descriptor": "assets/core/distribution.json",
|
|
20
20
|
"sourceRoot": "assets/generated/core",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "4.24.
|
|
4
|
+
"version": "4.24.1",
|
|
5
5
|
"components": {
|
|
6
6
|
"core": {
|
|
7
|
-
"revision": "
|
|
8
|
-
"version": "4.2.
|
|
7
|
+
"revision": "59f5657bbb6f1edc45d1e8619ab1d0875b7907e0",
|
|
8
|
+
"version": "4.2.1",
|
|
9
9
|
"distribution": "greenfield-workspace",
|
|
10
10
|
"files": [
|
|
11
11
|
{
|
|
@@ -376,12 +376,12 @@
|
|
|
376
376
|
{
|
|
377
377
|
"source": "tools/setup_maintenance/maintenance.py",
|
|
378
378
|
"destination": "tools/project-forge-setup/maintenance.py",
|
|
379
|
-
"sha256": "
|
|
379
|
+
"sha256": "55d22445834108d2fb7f2ac8aa4a5c5b0326c01f67e5f305b8284e4f15a0dcd8"
|
|
380
380
|
},
|
|
381
381
|
{
|
|
382
382
|
"source": "core/process/WORKSTATION_MAINTENANCE.md",
|
|
383
383
|
"destination": "docs/process/WORKSTATION_MAINTENANCE.md",
|
|
384
|
-
"sha256": "
|
|
384
|
+
"sha256": "beff0c78e9ef139f6e611176f02ee5b188387be1ee876d67401c5212566c36cb"
|
|
385
385
|
}
|
|
386
386
|
]
|
|
387
387
|
},
|
|
@@ -12,6 +12,7 @@ The helper reads `DEV_ENVIRONMENT.json` and the selected `tools/dev-environment/
|
|
|
12
12
|
|
|
13
13
|
## Boundaries
|
|
14
14
|
|
|
15
|
+
- The currently reviewed generic package-manager allowlist is RTK, GitHub CLI, Git and fnm only. All other catalog entries require separate specialized upgrade policy; Docker Desktop, VS Code and Python are explicitly excluded from this generic updater.
|
|
15
16
|
- Never automatically update project-pinned toolchain versions, application dependencies/lockfiles, generated package provenance, Project Forge-managed assets, Docker Desktop, SSH trust, or deployment targets.
|
|
16
17
|
- Package-managed Project Forge updates remain owned by `/project-forge-update`. Modern Web Guidance remains on its approved exact version and independent from normal workstation tool updates.
|
|
17
18
|
- Missing selected catalog entries, unsupported managers or unknown pinned-release integrity are manual-review gaps. An adopted repository without Bootstrap's selected tool catalog must use its existing, human-approved setup/update mechanisms instead of an invented Project Forge catalog.
|
|
@@ -14,6 +14,8 @@ from pathlib import Path
|
|
|
14
14
|
TOOL_ID = re.compile(r"^[a-z0-9][a-z0-9-]*$")
|
|
15
15
|
VERSION = re.compile(r"(?<!\d)(\d+\.\d+\.\d+)(?!\d)")
|
|
16
16
|
PACKAGE_ID = re.compile(r"^[a-zA-Z0-9_.@/+:-]+$")
|
|
17
|
+
# Catalog identities alone do not authorize broad workstation upgrades.
|
|
18
|
+
SAFE_MANAGER_UPDATE_IDS = frozenset({"rtk", "github-cli", "git", "fnm"})
|
|
17
19
|
|
|
18
20
|
|
|
19
21
|
def platform() -> str:
|
|
@@ -73,7 +75,9 @@ def inventory(root: Path) -> list[dict]:
|
|
|
73
75
|
update = "MANUAL_REVIEW"
|
|
74
76
|
if pin:
|
|
75
77
|
update = "PROJECT_PINNED"
|
|
76
|
-
elif rc == 0 and
|
|
78
|
+
elif (rc == 0 and name in SAFE_MANAGER_UPDATE_IDS and
|
|
79
|
+
data.get("category") in ("machine-tool", "runtime-manager") and
|
|
80
|
+
manager in ("winget", "brew") and isinstance(package, str) and PACKAGE_ID.fullmatch(package)):
|
|
77
81
|
update = "MANAGER_CHECK"
|
|
78
82
|
elif rc == 0 and manager == "project-forge-pinned-release":
|
|
79
83
|
expected = semver(spec.get("version"))
|