zapis 1.0.0__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.
@@ -0,0 +1,36 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ publish:
10
+ name: Build and publish
11
+ runs-on: ubuntu-latest
12
+ environment: pypi
13
+ permissions:
14
+ id-token: write # Required for OIDC trusted publishing
15
+
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python 3.11
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: '3.11'
24
+
25
+ - name: Install build
26
+ run: pip install build hatchling
27
+
28
+ - name: Clean dist
29
+ run: rm -rf dist build *.egg-info
30
+
31
+ - name: Build package
32
+ run: python -m build
33
+
34
+ - name: Publish to PyPI
35
+ uses: pypa/gh-action-pypi-publish@release/v1
36
+ # No token needed — PyPI identity verified via OIDC
zapis-1.0.0/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ dist/
2
+ build/
3
+ *.egg-info/
4
+ __pycache__/
5
+ *.pyc
6
+ .env
7
+ .venv
zapis-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ShadowStrike
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
zapis-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,27 @@
1
+ Metadata-Version: 2.5
2
+ Name: zapis
3
+ Version: 1.0.0
4
+ Summary: CTF writeup templating and export tool. by ShadowStrike.
5
+ Project-URL: Source, https://github.com/ShadowStrike-CTF/zapis
6
+ Author-email: ShadowStrike <r@strategos.au>
7
+ License: MIT
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 1 - Planning
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+
18
+ # Zapis
19
+
20
+ CTF writeup templating and export tool. by ShadowStrike.
21
+
22
+ GitHub: https://github.com/ShadowStrike-CTF/zapis
23
+
24
+ ---
25
+
26
+ © 2026 ShadowStrike. All rights reserved.
27
+ Aut Viam Inveniam Aut Faciam
zapis-1.0.0/README.md ADDED
@@ -0,0 +1,10 @@
1
+ # Zapis
2
+
3
+ CTF writeup templating and export tool. by ShadowStrike.
4
+
5
+ GitHub: https://github.com/ShadowStrike-CTF/zapis
6
+
7
+ ---
8
+
9
+ © 2026 ShadowStrike. All rights reserved.
10
+ Aut Viam Inveniam Aut Faciam
@@ -0,0 +1,110 @@
1
+ # stub_template_v1_0_10 — Substitution Guide
2
+
3
+ Replace all placeholders before use. Search-and-replace across all files.
4
+
5
+ | Placeholder | Replace with | Example |
6
+ |-------------|--------------------------------------------------|-------------------------------------------|
7
+ | PACKAGENAME | PyPI slug (ASCII, lowercase, hyphens if needed) | pechat |
8
+ | DISPLAYNAME | Display name with diacritics if applicable | Pečat |
9
+ | REPONAME | GitHub repo name (ASCII, lowercase, hyphens) | pechat |
10
+ | ONELINER | One-line description from Product Directory | Forensic file hashing and verification. |
11
+ | YEAR | Current year | 2026 |
12
+
13
+ ## What the template provides
14
+
15
+ These files are pre-built and ready to use — substitution only, no new content required:
16
+
17
+ | File | What it does |
18
+ |------|--------------|
19
+ | `pyproject.toml` | hatchling build backend, Proprietary licence, Python 3.11 floor, 3.11 + 3.12 classifiers, src layout wheel target, GitHub source URL |
20
+ | `src/PACKAGENAME/__init__.py` | Package entry point with copyright + motto header |
21
+ | `README.md` | v1.6 format — one-liner, GitHub link, copyright footer, Aut Viam motto |
22
+ | `LICENSE` | Proprietary licence under Strategos Pty Ltd (ACN 699 862 078) |
23
+ | `.gitignore` | Standard Python ignores (dist/, build/, __pycache__, *.egg-info) |
24
+ | `TEMPLATE_GUIDE.md` | This file |
25
+ | `.github/workflows/publish.yml` | Trusted OIDC publishing — fires on `git tag v*` push |
26
+
27
+ ## What you must customise
28
+
29
+ 1. Search-and-replace all five PLACEHOLDERS (table above) across every file
30
+ 2. Set YEAR to the current year (do not hardcode — check the year at time of use)
31
+ 3. README line 2: use the exact one-liner from the Product Directory in the brand attribution doc — verbatim, not paraphrased
32
+ 4. README attribution suffix: `Part of the Strategos Suite.` (Tier 1) or `by Strategos.` (Tier 2) or `by ShadowStrike.` (Tier 3) — choose per tier
33
+ 5. PyPI-side setup (one-time, per package): PyPI → Manage → Publishing → Add trusted publisher — Owner: ShadowStrike-CTF, Repository: REPONAME, Workflow: publish.yml, Environment: pypi
34
+ 6. GitHub: create environment named `pypi` in repo Settings → Environments
35
+
36
+ ## Classifier note — stubs vs live packages
37
+
38
+ **All stubs (all streams):** 3.11 + 3.12 classifiers are correct as shipped. Classifiers are metadata only — no runtime effect.
39
+
40
+ **Live SA tool packages (Phalanx, Prenos, Feniks, Pečat, Tolmač pyproject.toml):** hold 3.12 classifier until PyInstaller 3.12 Windows build verification is complete. Classifier must follow confirmed support, not advertise it in advance.
41
+
42
+ ## What a valid stub is NOT
43
+
44
+ - Not a development package — no real code, no tests, no CLI
45
+ - Not a namespace redirect unless explicitly using the namespace-pointing README variant (svest→svest-unmark pattern)
46
+ - Not published with a pre-release version suffix (a, b, rc, .dev) — those go to TestPyPI only
47
+
48
+ ## File structure
49
+
50
+ ```
51
+ stub_template_v1_0_10/
52
+ ├── pyproject.toml ← hatchling, src layout, Proprietary, 3.11 + 3.12 classifiers
53
+ ├── README.md ← v1.6 format (GitHub link, one-liner, attribution, footer)
54
+ ├── LICENSE ← Proprietary
55
+ ├── .gitignore
56
+ ├── TEMPLATE_GUIDE.md ← this file
57
+ ├── src/
58
+ │ └── PACKAGENAME/
59
+ │ └── __init__.py ← copyright + motto header
60
+ └── .github/
61
+ └── workflows/
62
+ └── publish.yml ← trusted publishing via OIDC
63
+ ```
64
+
65
+ ## Suite-wide standards locked
66
+
67
+ - Build backend: hatchling (Suite-wide — D stream and SA stream)
68
+ - Package layout: src layout — `src/PACKAGENAME/`
69
+ - Licence: Proprietary
70
+ - Python floor: 3.11
71
+ - Python classifiers (stubs): 3.11 + 3.12
72
+ - Python classifiers (live SA tools): 3.11 only until PyInstaller 3.12 Windows verification done
73
+ - Publish method (target): trusted publishing via OIDC
74
+ - Publish method (interim): manual twine
75
+
76
+ ## PyPI-side setup (one-time per package)
77
+
78
+ PyPI → Manage → Publishing → Add a trusted publisher:
79
+ - Owner: ShadowStrike-CTF
80
+ - Repository: REPONAME
81
+ - Workflow: publish.yml
82
+ - Environment: pypi
83
+
84
+ ## Trigger for publish
85
+
86
+ ```
87
+ git tag v0.0.1
88
+ git push origin v0.0.1
89
+ ```
90
+
91
+ ## Version history
92
+
93
+ ### v1.0.10 changes
94
+ - pyproject.toml: `Programming Language :: Python :: 3.12` added to classifiers
95
+ - TEMPLATE_GUIDE.md: classifier note corrected — all stubs get 3.11 + 3.12 (metadata only);
96
+ live SA tool packages defer 3.12 until PyInstaller 3.12 Windows verification complete
97
+
98
+ ### v1.0.9 changes
99
+ - pyproject.toml: `Programming Language :: Python :: 3.11` added to classifiers
100
+ - TEMPLATE_GUIDE.md: stream-specific classifier note added (superseded by v1.0.10)
101
+
102
+ ### v1.0.8 changes
103
+ - src layout: PACKAGENAME/ moved to src/PACKAGENAME/
104
+ - pyproject.toml: [tool.hatch.build.targets.wheel] added
105
+
106
+ ### v1.0.7 changes
107
+ - pyproject.toml: copyright + motto comment added to top of file
108
+
109
+ ### v1.0.6 changes (was v1.0.4 — versioning corrected)
110
+ - Build backend: hatchling; Licence: Proprietary; publish.yml added; Python 3.11 floor
@@ -0,0 +1,31 @@
1
+ # © 2026 ShadowStrike. All rights reserved.
2
+ # Aut Viam Inveniam Aut Faciam
3
+
4
+ [build-system]
5
+ requires = ["hatchling"]
6
+ build-backend = "hatchling.build"
7
+
8
+ [project]
9
+ name = "zapis"
10
+ version = "1.0.0"
11
+ description = "CTF writeup templating and export tool. by ShadowStrike."
12
+ readme = "README.md"
13
+ license = {text = "MIT"}
14
+ authors = [
15
+ {name = "ShadowStrike", email = "r@strategos.au"}
16
+ ]
17
+ requires-python = ">=3.11"
18
+ classifiers = [
19
+ "Development Status :: 1 - Planning",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "License :: OSI Approved :: MIT License",
24
+ "Operating System :: OS Independent",
25
+ ]
26
+
27
+ [project.urls]
28
+ "Source" = "https://github.com/ShadowStrike-CTF/zapis"
29
+
30
+ [tool.hatch.build.targets.wheel]
31
+ packages = ["src/zapis"]
@@ -0,0 +1,3 @@
1
+ # Zapis — CTF writeup templating and export tool.
2
+ # © 2026 ShadowStrike. All rights reserved.
3
+ # Aut Viam Inveniam Aut Faciam