Skip to content

Commit bad0a2c

Browse files
committed
PyArchRules release-0.1.0b0
Prepare first beta release (add rules, tests, update mkdocs)
1 parent 26ef7ff commit bad0a2c

File tree

15 files changed

+1271
-19
lines changed

15 files changed

+1271
-19
lines changed

.github/workflows/docs.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
deploy:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Configure Git Credentials
22+
run: |
23+
git config user.name github-actions[bot]
24+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
25+
26+
- name: Install uv
27+
uses: astral-sh/setup-uv@v5
28+
with:
29+
enable-cache: true
30+
31+
- name: Set up Python
32+
uses: actions/setup-python@v5
33+
with:
34+
python-version: 3.12
35+
36+
- name: Set cache ID
37+
run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
38+
39+
- name: Cache dependencies
40+
uses: actions/cache@v4
41+
with:
42+
key: mkdocs-material-${{ env.cache_id }}
43+
path: ~/.cache
44+
restore-keys: |
45+
mkdocs-material-
46+
47+
- name: Install dependencies
48+
run: uv sync
49+
50+
- name: Deploy documentation
51+
run: uv run mkdocs gh-deploy --force
File renamed without changes.

Makefile

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
.PHONY: lint format test clean help
1+
.PHONY: lint format test clean docs docs-serve docs-deploy help
22

33
help:
44
@echo "Available commands:"
5-
@echo " make lint - Run code quality checks (black, isort, ruff)"
6-
@echo " make format - Auto-format code with black and isort"
7-
@echo " make test - Run all tests"
8-
@echo " make clean - Remove build artifacts and cache"
5+
@echo " make lint - Run code quality checks (black, isort, ruff)"
6+
@echo " make format - Auto-format code with black and isort"
7+
@echo " make test - Run all tests"
8+
@echo " make docs - Build documentation"
9+
@echo " make docs-serve - Serve documentation locally with live reload"
10+
@echo " make docs-deploy - Deploy documentation to GitHub Pages"
11+
@echo " make clean - Remove build artifacts and cache"
912

1013
lint:
1114
uv run black --check .
@@ -20,8 +23,17 @@ format:
2023
test:
2124
uv run pytest tests/
2225

26+
docs:
27+
uv run mkdocs build
28+
29+
docs-serve:
30+
uv run mkdocs serve
31+
32+
docs-deploy:
33+
uv run mkdocs gh-deploy --force
34+
2335
clean:
24-
rm -rf dist/ build/ *.egg-info src/*.egg-info
36+
rm -rf dist/ build/ *.egg-info src/*.egg-info site/
2537
find . -type d -name __pycache__ -exec rm -rf {} +
2638
find . -type f -name "*.pyc" -delete
2739

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,16 @@
44

55
<p align="center">
66
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a>
7-
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.12+-blue.svg" alt="Python 3.12+"></a>
7+
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python 3.10+"></a>
8+
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/status-beta%200.1.0b0-orange.svg" alt="Status Alpha"></a>
9+
<a href="https://mspitb.github.io/pyarchrules/"><img src="https://img.shields.io/badge/docs-mkdocs-blue.svg" alt="Documentation"></a>
810
</p>
911

1012

13+
## Documentation
14+
15+
📚 **[Full Documentation](https://mspitb.github.io/pyarchrules/)** - Getting Started, Configuration, CLI Reference, Use Cases
16+
1117
## Features
1218

1319
- 🏗️ **Structure validation** - enforce directory tree requirements

docs/docs/assets/logo-full.svg

Lines changed: 109 additions & 0 deletions
Loading

docs/docs/assets/logo.svg

Lines changed: 86 additions & 0 deletions
Loading

docs/docs/changelog.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Changelog
2+
3+
All notable changes are documented here.
4+
Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
5+
Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
---
8+
9+
## [0.0.1a2] — 2026-02-19
10+
11+
### Added
12+
13+
- `pyarchrules check` — validates architecture from the CLI
14+
- `pyarchrules init-project` — initialises `pyproject.toml` config
15+
- `pyarchrules add-service` / `remove-service` / `list-services` commands
16+
- `TreeRule` — validates directory tree structure
17+
- `DependenciesRule` — validates internal module import direction
18+
- `AllowedServiceDependenciesRule` — validates cross-service imports
19+
- `MustContainFoldersRule` DSL rule with `allow_extra` parameter
20+
- `PyArchRules` Python API with `for_service()` / `validate()` interface
21+
- `PyArchConfig` for reading/writing `pyproject.toml` via `tomlkit`
22+
- Pydantic-backed `ProjectSpec` and `ServiceSpec` models
23+
- `ConsoleViolationReporter` for human-readable output
24+
- `RuleEvalResult` with `is_valid`, `error_count`, `warning_count`
25+
26+
> ⚠️ **Alpha** — API may change before 1.0.
27+
28+
---
29+
30+
## [0.0.1a1] — 2026-01-01
31+
32+
Initial private release.

0 commit comments

Comments
 (0)