coloph-env 0.1.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.
- coloph_env-0.1.0/.github/workflows/ci.yml +23 -0
- coloph_env-0.1.0/.github/workflows/publish.yml +54 -0
- coloph_env-0.1.0/.gitignore +10 -0
- coloph_env-0.1.0/AGENTS.md +16 -0
- coloph_env-0.1.0/LICENSE +674 -0
- coloph_env-0.1.0/PKG-INFO +135 -0
- coloph_env-0.1.0/README.md +123 -0
- coloph_env-0.1.0/docs/releasing.md +33 -0
- coloph_env-0.1.0/pyproject.toml +38 -0
- coloph_env-0.1.0/scripts/release.py +53 -0
- coloph_env-0.1.0/scripts/smoke.py +21 -0
- coloph_env-0.1.0/src/coloph_env/__init__.py +8 -0
- coloph_env-0.1.0/src/coloph_env/__main__.py +3 -0
- coloph_env-0.1.0/src/coloph_env/cli.py +58 -0
- coloph_env-0.1.0/src/coloph_env/lint.py +104 -0
- coloph_env-0.1.0/src/coloph_env/py.typed +0 -0
- coloph_env-0.1.0/src/coloph_env/schema.py +161 -0
- coloph_env-0.1.0/tests/test_cli_lint.py +83 -0
- coloph_env-0.1.0/tests/test_schema.py +152 -0
- coloph_env-0.1.0/uv.lock +373 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on: [push, pull_request]
|
|
3
|
+
permissions:
|
|
4
|
+
contents: read
|
|
5
|
+
jobs:
|
|
6
|
+
test:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
strategy:
|
|
9
|
+
matrix:
|
|
10
|
+
python: ['3.12', '3.13', '3.14']
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
|
|
13
|
+
with:
|
|
14
|
+
persist-credentials: false
|
|
15
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9
|
|
16
|
+
with:
|
|
17
|
+
version: '0.12.10'
|
|
18
|
+
enable-cache: false
|
|
19
|
+
- run: uv sync --locked --python '${{ matrix.python }}' --group dev
|
|
20
|
+
- run: uv run ruff check .
|
|
21
|
+
- run: uv run ruff format --check .
|
|
22
|
+
- run: uv run mypy
|
|
23
|
+
- run: uv run pytest
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
permissions: {}
|
|
6
|
+
jobs:
|
|
7
|
+
build:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
|
|
13
|
+
with:
|
|
14
|
+
ref: ${{ github.event.release.tag_name }}
|
|
15
|
+
persist-credentials: false
|
|
16
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9
|
|
17
|
+
with:
|
|
18
|
+
version: '0.12.10'
|
|
19
|
+
enable-cache: false
|
|
20
|
+
- run: uv sync --locked --python 3.12 --group dev
|
|
21
|
+
- run: uv run ruff check .
|
|
22
|
+
- run: uv run ruff format --check .
|
|
23
|
+
- run: uv run mypy
|
|
24
|
+
- run: uv run pytest
|
|
25
|
+
- run: uv run python scripts/release.py build --tag "$RELEASE_TAG"
|
|
26
|
+
env:
|
|
27
|
+
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
|
28
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
|
|
29
|
+
with:
|
|
30
|
+
name: distributions
|
|
31
|
+
path: dist/
|
|
32
|
+
publish:
|
|
33
|
+
needs: build
|
|
34
|
+
runs-on: ubuntu-latest
|
|
35
|
+
environment: pypi
|
|
36
|
+
permissions:
|
|
37
|
+
contents: read
|
|
38
|
+
id-token: write
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
|
|
41
|
+
with:
|
|
42
|
+
ref: ${{ github.event.release.tag_name }}
|
|
43
|
+
persist-credentials: false
|
|
44
|
+
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9
|
|
45
|
+
with:
|
|
46
|
+
version: '0.12.10'
|
|
47
|
+
enable-cache: false
|
|
48
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
|
|
49
|
+
with:
|
|
50
|
+
name: distributions
|
|
51
|
+
path: dist/
|
|
52
|
+
- run: uv run --no-project --python 3.12 python scripts/release.py publish --tag "$RELEASE_TAG"
|
|
53
|
+
env:
|
|
54
|
+
RELEASE_TAG: ${{ github.event.release.tag_name }}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Working on coloph-env
|
|
2
|
+
|
|
3
|
+
Keep this package small. Solve established problems with explicit behavior.
|
|
4
|
+
Keep design and implementation in the same feature issue.
|
|
5
|
+
Use plain English and concrete examples. Read README.md for the public contract.
|
|
6
|
+
Public documents must stand alone. Never link or refer to private repositories.
|
|
7
|
+
|
|
8
|
+
Keep every configuration value explicit. Do not add field defaults or lazy loading.
|
|
9
|
+
Keep application schemas, runtime identity, deployment, and secret storage outside this package.
|
|
10
|
+
Use structured validation errors. Never include input values or parser exception text in diagnostics.
|
|
11
|
+
Unexpected parser exceptions must propagate. Catch ValueError for invalid input only.
|
|
12
|
+
|
|
13
|
+
Before a release, run Ruff, mypy, pytest, and the artifact smoke tests in docs/releasing.md.
|
|
14
|
+
Keep the package version in pyproject.toml. Never duplicate it in source code.
|
|
15
|
+
Release tags must identify the tested commit on the public main branch.
|
|
16
|
+
Never replace a published version or tag. Publish changes under a new version.
|