Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Publish to PyPI

on:
release:
types: [published]

permissions: {}

jobs:
build:
name: Build distributions
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Build and check distributions
run: |
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
- uses: actions/upload-artifact@v5
with:
name: python-package-distributions
path: dist/
if-no-files-found: error

publish:
name: Publish distributions
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/geometry-validated-layout/
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v6
with:
name: python-package-distributions
path: dist/
- uses: pypa/gh-action-pypi-publish@release/v1
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ auditable layout proposals and agent-generated designs.
> may change incompatibly while downstream use cases establish the right public
> abstractions.

![A validated kitchen plan beside a refused invalid render](docs/social-preview.png)
![A validated kitchen plan beside a refused invalid render](https://raw.githubusercontent.com/davidf9999/geometry-validated-layout/main/docs/social-preview.png)

## Why This Exists

Expand Down Expand Up @@ -46,7 +46,13 @@ This refusal is part of the public contract: rendering and validation use the
same structured coordinates, so a plausible image cannot hide rejected
geometry.

## Quick Start
## Install

```bash
pip install geometry-validated-layout
```

## Run the Included Examples

```bash
git clone https://github.com/davidf9999/geometry-validated-layout.git
Expand Down Expand Up @@ -96,8 +102,9 @@ existing app/domain model -> adapter -> LayoutProject -> validate_project()
-> render only after pass
```

See the [integration guide](docs/INTEGRATION.md) for pinned installation, CLI
exit/report behavior, Python, adapter, HTTP-service, and coding-agent examples.
See the [integration guide](https://github.com/davidf9999/geometry-validated-layout/blob/main/docs/INTEGRATION.md)
for pinned installation, CLI exit/report behavior, Python, adapter,
HTTP-service, and coding-agent examples.

## Scope

Expand Down
6 changes: 3 additions & 3 deletions STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ leave material plans only in chat history.
package, and documentation audit passed before publication. GitHub private
vulnerability reporting and protected-branch CI are enabled. The `v0.1.0`
developer prerelease was published on 2026-07-22.
- Package and CLI: `geometry-validated-layout` version `0.1.0`.
- Package and CLI source version: `geometry-validated-layout` `0.1.1`.
- Python import: `geometry_validated_layout`.
- Test baseline: 12 tests, with CI coverage for Python 3.10 through 3.14.
- CI: tests, passing examples, deterministic rendering, and failing-render
refusal run on every push and pull request.
- Distribution: GitHub Releases trigger tokenless PyPI Trusted Publishing
through the protected `pypi` environment.
- Complete example: `examples/complete_kitchen/` contains synthetic YAML,
validation JSON, SVG, and usage notes.
- Integration guide: `docs/INTEGRATION.md` covers CLI, Python, adapters, service
Expand Down Expand Up @@ -59,8 +61,6 @@ leave material plans only in chat history.

## Deferred publication work

- Optional later PyPI publication; the package name was unclaimed when checked
on 2026-07-22.
- Contributor-facing issue templates and broader compatibility testing.
- Plugin packaging for distributing the generic and kitchen workflow skills.

Expand Down
15 changes: 14 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,25 @@ build-backend = "setuptools.build_meta"

[project]
name = "geometry-validated-layout"
version = "0.1.0"
version = "0.1.1"
description = "Deterministic geometry validation and rendering for coordinate-based spatial layouts"
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ name = "David Front" }]
keywords = ["computational-geometry", "layout", "spatial-validation", "svg"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"PyYAML>=6.0",
"pydantic>=2.7",
Expand All @@ -25,6 +37,7 @@ geometry-validated-layout = "geometry_validated_layout.cli:main"

[project.urls]
Homepage = "https://github.com/davidf9999/geometry-validated-layout"
Documentation = "https://github.com/davidf9999/geometry-validated-layout/blob/main/docs/INTEGRATION.md"
Issues = "https://github.com/davidf9999/geometry-validated-layout/issues"

[tool.pytest.ini_options]
Expand Down