napkinstack 0.7.4__tar.gz → 0.7.6__tar.gz
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.
- {napkinstack-0.7.4 → napkinstack-0.7.6}/PKG-INFO +4 -4
- {napkinstack-0.7.4 → napkinstack-0.7.6}/README.md +3 -3
- {napkinstack-0.7.4 → napkinstack-0.7.6}/pyproject.toml +1 -1
- {napkinstack-0.7.4 → napkinstack-0.7.6}/pyproject.toml.orig +1 -1
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/hygiene.py +5 -4
- {napkinstack-0.7.4 → napkinstack-0.7.6}/LICENSE +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/__init__.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/assurance.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/cli.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/compat.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/discovery.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/doctor.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/__init__.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/boundaries.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/manifests.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/plan.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/fitness/pr_scope.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/landed.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/modules.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/project.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/provenance.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/pull_request.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/settings.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/skills.py +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/contracts/AGENTS.md +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/contracts/MANIFEST.yaml +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/contracts/README.md +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/contracts/docs/runbook.md +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/contracts/tests/.gitkeep +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/AGENTS.md +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/MANIFEST.yaml +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/README.md +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/docs/adr/.gitkeep +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/src/.gitkeep +0 -0
- {napkinstack-0.7.4 → napkinstack-0.7.6}/src/napkinstack/templates/module/tests/.gitkeep +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: napkinstack
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
4
4
|
Summary: Engineering framework for several teams and their agents working in one repository: modules, contracts, guardrails in CI.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -20,7 +20,7 @@ modules, contracts, guardrails in CI. On the Django or Rails model, one command
|
|
|
20
20
|
the project, which then receives new versions on demand; no application stack is imposed.
|
|
21
21
|
Positioning and vocabulary: [`PRODUCT.md`](PRODUCT.md) §1.
|
|
22
22
|
|
|
23
|
-
> **Status: v0.7.
|
|
23
|
+
> **Status: v0.7.6, published** on [PyPI](https://pypi.org/project/napkinstack/).
|
|
24
24
|
> What each version changes, engine and project apart: [`CHANGELOG.md`](CHANGELOG.md).
|
|
25
25
|
> What is open: [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
26
26
|
|
|
@@ -84,8 +84,8 @@ To try it without installing anything, or to install it from this repository ins
|
|
|
84
84
|
registry — always pinned to a release tag:
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.
|
|
88
|
-
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.
|
|
87
|
+
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.6" nstack init my-project
|
|
88
|
+
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.6"
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
**Two channels, one published artefact.** The registry publishes: the PyPI artefact of a
|
|
@@ -5,7 +5,7 @@ modules, contracts, guardrails in CI. On the Django or Rails model, one command
|
|
|
5
5
|
the project, which then receives new versions on demand; no application stack is imposed.
|
|
6
6
|
Positioning and vocabulary: [`PRODUCT.md`](PRODUCT.md) §1.
|
|
7
7
|
|
|
8
|
-
> **Status: v0.7.
|
|
8
|
+
> **Status: v0.7.6, published** on [PyPI](https://pypi.org/project/napkinstack/).
|
|
9
9
|
> What each version changes, engine and project apart: [`CHANGELOG.md`](CHANGELOG.md).
|
|
10
10
|
> What is open: [`docs/governance/workstreams.md`](docs/governance/workstreams.md).
|
|
11
11
|
|
|
@@ -69,8 +69,8 @@ To try it without installing anything, or to install it from this repository ins
|
|
|
69
69
|
registry — always pinned to a release tag:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.
|
|
73
|
-
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.
|
|
72
|
+
uvx --from "git+https://github.com/NapkinStack/engineering-os@v0.7.6" nstack init my-project
|
|
73
|
+
uv tool install "napkinstack @ git+https://github.com/NapkinStack/engineering-os@v0.7.6"
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
**Two channels, one published artefact.** The registry publishes: the PyPI artefact of a
|
|
@@ -12,9 +12,10 @@ Rules:
|
|
|
12
12
|
|
|
13
13
|
Refused: the home of a named user, on any of the three systems, and a tilde followed by a
|
|
14
14
|
real folder. Accepted, because they are true on every machine: a tilde followed by a
|
|
15
|
-
dot-directory (`~/.config`, `~/.cache`, `~/.ssh` — tooling is documented legitimately)
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
dot-directory (`~/.config`, `~/.cache`, `~/.ssh` — tooling is documented legitimately) and
|
|
16
|
+
its macOS counterpart, `~/Library`, where every Mac keeps software's own files and a macOS
|
|
17
|
+
app documents its storage (D97); a tilde inside an address, the repository's placeholders
|
|
18
|
+
(`<workspace>`), environment variables, and the home of an image's own user — `node`, `vscode`, `runner`, `codespace`,
|
|
18
19
|
`gitpod`, `jovyan` — which is the same wherever the image runs (D41).
|
|
19
20
|
|
|
20
21
|
The patterns are written so that this file, the rule's tests and any document describing
|
|
@@ -45,7 +46,7 @@ IMAGE_USERS = r"(?:node|vscode|runner|codespace|gitpod|jovyan)(?![A-Za-z0-9_.-])
|
|
|
45
46
|
SEGMENT = r"[A-Za-z0-9_.-]+"
|
|
46
47
|
HOME_PATH = re.compile(
|
|
47
48
|
rf"(?:/home/(?!{IMAGE_USERS}){SEGMENT}|/Users/{SEGMENT}|[A-Za-z]:\\Users\\{SEGMENT}"
|
|
48
|
-
r"|(?<![\w/:])~(?=/[A-Za-z0-9]))"
|
|
49
|
+
r"|(?<![\w/:])~(?=/[A-Za-z0-9])(?!/Library(?![\w.-])))"
|
|
49
50
|
r"[^\s'\"`,;)\]]*"
|
|
50
51
|
)
|
|
51
52
|
ACTION = ("write what the step needs: a path relative to the repository, a placeholder such "
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|