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.
- zapis-1.0.0/.github/workflows/publish.yml +36 -0
- zapis-1.0.0/.gitignore +7 -0
- zapis-1.0.0/LICENSE +21 -0
- zapis-1.0.0/PKG-INFO +27 -0
- zapis-1.0.0/README.md +10 -0
- zapis-1.0.0/TEMPLATE_GUIDE.md +110 -0
- zapis-1.0.0/pyproject.toml +31 -0
- zapis-1.0.0/src/zapis/__init__.py +3 -0
|
@@ -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
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,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"]
|