project-guide 1.4.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.
- project_guide-1.4.0/.github/FUNDING.yml +2 -0
- project_guide-1.4.0/.github/dependabot.yml +19 -0
- project_guide-1.4.0/.github/workflows/ci.yml +73 -0
- project_guide-1.4.0/.github/workflows/deploy-docs.yml +54 -0
- project_guide-1.4.0/.github/workflows/publish.yml +51 -0
- project_guide-1.4.0/.github/workflows/test.yml +49 -0
- project_guide-1.4.0/.gitignore +21 -0
- project_guide-1.4.0/.project-guides.yml +3 -0
- project_guide-1.4.0/.pyve/config +6 -0
- project_guide-1.4.0/.tool-versions +1 -0
- project_guide-1.4.0/CHANGELOG.md +405 -0
- project_guide-1.4.0/LICENSE +201 -0
- project_guide-1.4.0/PKG-INFO +481 -0
- project_guide-1.4.0/README.md +446 -0
- project_guide-1.4.0/docs/guides/README.md +35 -0
- project_guide-1.4.0/docs/guides/best-practices-guide.md +277 -0
- project_guide-1.4.0/docs/guides/debug-guide.md +469 -0
- project_guide-1.4.0/docs/guides/descriptions-guide.md +461 -0
- project_guide-1.4.0/docs/guides/developer/codecov-setup-guide.md +181 -0
- project_guide-1.4.0/docs/guides/developer/production-mode.md +437 -0
- project_guide-1.4.0/docs/guides/documentation-setup-guide.md +808 -0
- project_guide-1.4.0/docs/guides/project-guide.md +442 -0
- project_guide-1.4.0/docs/site/.gitignore +2 -0
- project_guide-1.4.0/docs/site/about/changelog.md +131 -0
- project_guide-1.4.0/docs/site/about/license.md +68 -0
- project_guide-1.4.0/docs/site/developer-guide/contributing.md +201 -0
- project_guide-1.4.0/docs/site/developer-guide/development.md +340 -0
- project_guide-1.4.0/docs/site/developer-guide/testing.md +379 -0
- project_guide-1.4.0/docs/site/getting-started/configuration.md +94 -0
- project_guide-1.4.0/docs/site/getting-started/installation.md +72 -0
- project_guide-1.4.0/docs/site/getting-started/quick-start.md +97 -0
- project_guide-1.4.0/docs/site/images/project-guide-banner-landing.png +0 -0
- project_guide-1.4.0/docs/site/images/project-guide-header-readme.png +0 -0
- project_guide-1.4.0/docs/site/index.html +522 -0
- project_guide-1.4.0/docs/site/user-guide/commands.md +221 -0
- project_guide-1.4.0/docs/site/user-guide/overrides.md +297 -0
- project_guide-1.4.0/docs/site/user-guide/workflow.md +282 -0
- project_guide-1.4.0/docs/specs/.archive/stories-v1.3.1.md +698 -0
- project_guide-1.4.0/docs/specs/descriptions.md +119 -0
- project_guide-1.4.0/docs/specs/features.md +351 -0
- project_guide-1.4.0/docs/specs/stories.md +223 -0
- project_guide-1.4.0/docs/specs/tech-spec.md +577 -0
- project_guide-1.4.0/mkdocs.yml +78 -0
- project_guide-1.4.0/project_guides/__init__.py +17 -0
- project_guide-1.4.0/project_guides/__main__.py +18 -0
- project_guide-1.4.0/project_guides/cli.py +489 -0
- project_guide-1.4.0/project_guides/config.py +132 -0
- project_guide-1.4.0/project_guides/exceptions.py +42 -0
- project_guide-1.4.0/project_guides/sync.py +276 -0
- project_guide-1.4.0/project_guides/templates/.project-guides.yml.template +3 -0
- project_guide-1.4.0/project_guides/templates/guides/README.md +35 -0
- project_guide-1.4.0/project_guides/templates/guides/best-practices-guide.md +342 -0
- project_guide-1.4.0/project_guides/templates/guides/debug-guide.md +469 -0
- project_guide-1.4.0/project_guides/templates/guides/descriptions-guide.md +461 -0
- project_guide-1.4.0/project_guides/templates/guides/developer/codecov-setup-guide.md +181 -0
- project_guide-1.4.0/project_guides/templates/guides/developer/production-mode.md +437 -0
- project_guide-1.4.0/project_guides/templates/guides/documentation-setup-guide.md +808 -0
- project_guide-1.4.0/project_guides/templates/guides/project-guide.md +452 -0
- project_guide-1.4.0/project_guides/version.py +15 -0
- project_guide-1.4.0/pyproject.toml +113 -0
- project_guide-1.4.0/tests/__init__.py +13 -0
- project_guide-1.4.0/tests/test_cli.py +369 -0
- project_guide-1.4.0/tests/test_config.py +118 -0
- project_guide-1.4.0/tests/test_integration.py +245 -0
- project_guide-1.4.0/tests/test_purge.py +126 -0
- project_guide-1.4.0/tests/test_sync.py +409 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Maintain dependencies for GitHub Actions
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
labels:
|
|
9
|
+
- "dependencies"
|
|
10
|
+
- "github-actions"
|
|
11
|
+
|
|
12
|
+
# Maintain dependencies for pip
|
|
13
|
+
- package-ecosystem: "pip"
|
|
14
|
+
directory: "/"
|
|
15
|
+
schedule:
|
|
16
|
+
interval: "weekly"
|
|
17
|
+
labels:
|
|
18
|
+
- "dependencies"
|
|
19
|
+
- "python"
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
15
|
+
python-version: ['3.11', '3.12', '3.13']
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: |
|
|
27
|
+
python -m pip install --upgrade pip
|
|
28
|
+
pip install -e ".[dev]"
|
|
29
|
+
|
|
30
|
+
- name: Run linting
|
|
31
|
+
run: |
|
|
32
|
+
ruff check project_guides/ tests/
|
|
33
|
+
|
|
34
|
+
- name: Run type checking
|
|
35
|
+
run: |
|
|
36
|
+
mypy project_guides/
|
|
37
|
+
|
|
38
|
+
- name: Run tests with coverage
|
|
39
|
+
run: |
|
|
40
|
+
pytest tests/ --cov=project_guides --cov-report=xml --cov-report=term
|
|
41
|
+
|
|
42
|
+
- name: Upload coverage to Codecov
|
|
43
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
|
|
44
|
+
uses: codecov/codecov-action@v4
|
|
45
|
+
with:
|
|
46
|
+
file: ./coverage.xml
|
|
47
|
+
fail_ci_if_error: false
|
|
48
|
+
|
|
49
|
+
build:
|
|
50
|
+
runs-on: ubuntu-latest
|
|
51
|
+
needs: test
|
|
52
|
+
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/checkout@v4
|
|
55
|
+
|
|
56
|
+
- name: Set up Python
|
|
57
|
+
uses: actions/setup-python@v5
|
|
58
|
+
with:
|
|
59
|
+
python-version: '3.11'
|
|
60
|
+
|
|
61
|
+
- name: Install build dependencies
|
|
62
|
+
run: |
|
|
63
|
+
python -m pip install --upgrade pip
|
|
64
|
+
pip install build
|
|
65
|
+
|
|
66
|
+
- name: Build package
|
|
67
|
+
run: python -m build
|
|
68
|
+
|
|
69
|
+
- name: Upload build artifacts
|
|
70
|
+
uses: actions/upload-artifact@v4
|
|
71
|
+
with:
|
|
72
|
+
name: dist
|
|
73
|
+
path: dist/
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Deploy Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
pages: write
|
|
12
|
+
id-token: write
|
|
13
|
+
|
|
14
|
+
concurrency:
|
|
15
|
+
group: "pages"
|
|
16
|
+
cancel-in-progress: false
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
build:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout
|
|
23
|
+
uses: actions/checkout@v4
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0
|
|
26
|
+
|
|
27
|
+
- name: Set up Python
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: '3.11'
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: |
|
|
34
|
+
pip install -e ".[docs]"
|
|
35
|
+
|
|
36
|
+
- name: Build documentation
|
|
37
|
+
run: |
|
|
38
|
+
mkdocs build --strict
|
|
39
|
+
|
|
40
|
+
- name: Upload artifact
|
|
41
|
+
uses: actions/upload-pages-artifact@v4
|
|
42
|
+
with:
|
|
43
|
+
path: ./site
|
|
44
|
+
|
|
45
|
+
deploy:
|
|
46
|
+
environment:
|
|
47
|
+
name: github-pages
|
|
48
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
needs: build
|
|
51
|
+
steps:
|
|
52
|
+
- name: Deploy to GitHub Pages
|
|
53
|
+
id: deployment
|
|
54
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
publish:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
environment: pypi
|
|
11
|
+
permissions:
|
|
12
|
+
id-token: write # Required for trusted publishing
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: '3.11'
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install -e ".[dev]"
|
|
27
|
+
|
|
28
|
+
- name: Run tests
|
|
29
|
+
run: |
|
|
30
|
+
pytest tests/ --cov=project_guides
|
|
31
|
+
|
|
32
|
+
- name: Run linting
|
|
33
|
+
run: |
|
|
34
|
+
ruff check project_guides/ tests/
|
|
35
|
+
|
|
36
|
+
- name: Run type checking
|
|
37
|
+
run: |
|
|
38
|
+
mypy project_guides/
|
|
39
|
+
|
|
40
|
+
- name: Install build dependencies
|
|
41
|
+
run: |
|
|
42
|
+
pip install build twine
|
|
43
|
+
|
|
44
|
+
- name: Build package
|
|
45
|
+
run: python -m build
|
|
46
|
+
|
|
47
|
+
- name: Check package
|
|
48
|
+
run: twine check dist/*
|
|
49
|
+
|
|
50
|
+
- name: Publish to PyPI
|
|
51
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
schedule:
|
|
9
|
+
# Run tests weekly on Monday at 00:00 UTC
|
|
10
|
+
- cron: '0 0 * * 1'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
19
|
+
python-version: ['3.11', '3.12', '3.13']
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
|
|
24
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
25
|
+
uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: ${{ matrix.python-version }}
|
|
28
|
+
|
|
29
|
+
- name: Install dependencies
|
|
30
|
+
run: |
|
|
31
|
+
python -m pip install --upgrade pip
|
|
32
|
+
pip install -e ".[dev]"
|
|
33
|
+
|
|
34
|
+
- name: Run tests
|
|
35
|
+
run: |
|
|
36
|
+
pytest tests/ -v --cov=project_guides --cov-report=term-missing
|
|
37
|
+
|
|
38
|
+
- name: Generate coverage report
|
|
39
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
|
|
40
|
+
run: |
|
|
41
|
+
pytest tests/ --cov=project_guides --cov-report=xml
|
|
42
|
+
|
|
43
|
+
- name: Upload coverage
|
|
44
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
|
|
45
|
+
uses: codecov/codecov-action@v4
|
|
46
|
+
with:
|
|
47
|
+
file: ./coverage.xml
|
|
48
|
+
flags: unittests
|
|
49
|
+
name: codecov-umbrella
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# macOS only
|
|
2
|
+
.DS_Store
|
|
3
|
+
|
|
4
|
+
# Python build and test artifacts
|
|
5
|
+
__pycache__
|
|
6
|
+
*.egg-info
|
|
7
|
+
.coverage
|
|
8
|
+
coverage.xml
|
|
9
|
+
htmlcov/
|
|
10
|
+
.pytest_cache/
|
|
11
|
+
|
|
12
|
+
# Pyve virtual environment
|
|
13
|
+
.pyve/testenv
|
|
14
|
+
.envrc
|
|
15
|
+
.env
|
|
16
|
+
.venv
|
|
17
|
+
build/
|
|
18
|
+
dist/
|
|
19
|
+
|
|
20
|
+
# MkDocs build output
|
|
21
|
+
/site/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
python 3.14.3
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [1.4.0] - 2026-04-03
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Reserved `project-guide` package name on PyPI**
|
|
14
|
+
- Added `project-guide` as a second CLI entry point (maps to the same `project_guides.cli:main`)
|
|
15
|
+
- Both `project-guides` and `project-guide` commands work identically
|
|
16
|
+
- Existing users are unaffected; new users should install `project-guide`
|
|
17
|
+
- The old `project-guides` entry point will be removed in v1.5.0
|
|
18
|
+
|
|
19
|
+
## [1.3.1] - 2026-03-25
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- **Prompt before overwriting user-modified guides**
|
|
23
|
+
- `update` command now prompts `Overwrite <guide>? [y/N]` for each modified file
|
|
24
|
+
- User can accept or decline per-file — declined files are reported as skipped
|
|
25
|
+
- `--force` flag skips the prompt, creates a `.bak` backup, and overwrites automatically
|
|
26
|
+
- `--dry-run` shows modified files with a note that they would be prompted
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- `sync_guides()` now returns 5-tuple `(updated, skipped, current, missing, modified)`
|
|
30
|
+
- `modified`: files with user edits detected but not yet acted on (caller decides)
|
|
31
|
+
- `--force` moves modified files directly to `updated` list after creating backup
|
|
32
|
+
- `update` output now shows "Updated (backed up):" label when `--force` is used
|
|
33
|
+
- Test suite expanded to 59 tests with `test_sync_guides_force_overwrites_modified_with_backup`
|
|
34
|
+
|
|
35
|
+
## [1.3.0] - 2026-03-25
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
- **Content-based change detection** in `update` command
|
|
39
|
+
- New `file_matches_template()` function uses SHA-256 hash to compare file content with templates
|
|
40
|
+
- Detects user modifications even when version numbers match
|
|
41
|
+
- `status` command now shows "(modified)" for files with user edits
|
|
42
|
+
- **Missing file detection** in `update` command
|
|
43
|
+
- Missing files are now properly detected and reported separately
|
|
44
|
+
- `update` command displays missing files in cyan with "+" indicator
|
|
45
|
+
- Missing files are always created, even if version numbers match
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
- **Critical bug**: `update` command incorrectly reported "all guides are up to date" when files were missing
|
|
49
|
+
- **Critical bug**: `update` command didn't detect user modifications to guide files
|
|
50
|
+
- `sync_guides()` now returns 4-tuple `(updated, skipped, current, missing)` instead of 3-tuple
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
- Enhanced `status` command output to differentiate between:
|
|
54
|
+
- Outdated version: "(update available)"
|
|
55
|
+
- User modifications: "(modified)"
|
|
56
|
+
- Missing files: "(missing)"
|
|
57
|
+
- Test suite expanded from 53 to 58 tests with 5 new comprehensive tests
|
|
58
|
+
|
|
59
|
+
## [1.2.7] - 2026-03-10
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
- **README banner image URL**
|
|
63
|
+
- Changed from relative path to absolute GitHub URL for PyPI compatibility
|
|
64
|
+
- Banner now displays correctly on https://pypi.org/project/project-guides/
|
|
65
|
+
|
|
66
|
+
## [1.2.6] - 2026-03-10
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
- **Version comparison bug in sync_guides**
|
|
70
|
+
- Fixed logic to properly mark guides as "current" when installed_version matches package_version
|
|
71
|
+
- Added check for non-existent files when versions match
|
|
72
|
+
- Updated test to use dynamic version import instead of hardcoded value
|
|
73
|
+
|
|
74
|
+
## [1.2.5] - 2026-03-10
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- **Updated README.md** with comprehensive documentation integration
|
|
78
|
+
- Added header banner image
|
|
79
|
+
- Updated description with Two-clause Technical Description
|
|
80
|
+
- Added Documentation badge linking to GitHub Pages
|
|
81
|
+
- Added dedicated Documentation section with links to full docs
|
|
82
|
+
- Updated "Why project-guides?" with Friendly Brief Description and HITLoop explanation
|
|
83
|
+
- Updated Key Features with content from Feature Cards
|
|
84
|
+
- **Updated pyproject.toml** metadata
|
|
85
|
+
- Added project.urls section (Homepage, Documentation, Repository, Issues, Changelog)
|
|
86
|
+
- Expanded keywords to 18 items matching descriptions.md
|
|
87
|
+
|
|
88
|
+
## [1.2.4] - 2026-03-10
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
- **GitHub Actions workflow** for automated documentation deployment
|
|
92
|
+
- `.github/workflows/deploy-docs.yml` for deploying to GitHub Pages
|
|
93
|
+
- Triggers on push to main branch and manual workflow_dispatch
|
|
94
|
+
- Builds with strict mode to fail on warnings
|
|
95
|
+
- Deploys to https://pointmatic.github.io/project-guides/
|
|
96
|
+
|
|
97
|
+
## [1.2.3] - 2026-03-10
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
- **Comprehensive documentation pages** in `docs/site/`
|
|
101
|
+
- Getting Started: installation.md, quick-start.md, configuration.md
|
|
102
|
+
- User Guide: commands.md, workflow.md, overrides.md
|
|
103
|
+
- Developer Guide: contributing.md, development.md, testing.md
|
|
104
|
+
- About: license.md, changelog.md
|
|
105
|
+
- All pages include cross-references and internal links
|
|
106
|
+
- Documentation verified with `mkdocs build --strict`
|
|
107
|
+
|
|
108
|
+
## [1.2.2] - 2026-03-10
|
|
109
|
+
|
|
110
|
+
### Added
|
|
111
|
+
- **Custom branded landing page** at `docs/site/index.html`
|
|
112
|
+
- Dark theme with teal accent colors
|
|
113
|
+
- Hero section with tagline and banner image
|
|
114
|
+
- Friendly Brief Description explaining HITLoop workflow
|
|
115
|
+
- Quick Start section with 7-step workflow
|
|
116
|
+
- 15 Feature Cards organized into 3 categories (Core, Operational, Philosophy)
|
|
117
|
+
- Responsive design with navigation and footer
|
|
118
|
+
|
|
119
|
+
## [1.2.1] - 2026-03-10
|
|
120
|
+
|
|
121
|
+
### Added
|
|
122
|
+
- **MkDocs documentation infrastructure**
|
|
123
|
+
- `mkdocs.yml` configuration with Material theme
|
|
124
|
+
- Dark/light mode toggle with teal accent
|
|
125
|
+
- Navigation structure for all documentation sections
|
|
126
|
+
- Markdown extensions (admonition, superfences, highlight, etc.)
|
|
127
|
+
- Plugins: search, git-revision-date-localized
|
|
128
|
+
- `docs/site/.gitignore` for MkDocs cache
|
|
129
|
+
- Updated root `.gitignore` to ignore `/site/` build output
|
|
130
|
+
- Added `[docs]` optional dependency group in pyproject.toml
|
|
131
|
+
|
|
132
|
+
## [1.2.0] - 2026-03-10
|
|
133
|
+
|
|
134
|
+
### Added
|
|
135
|
+
- **Canonical project descriptions** in `docs/specs/descriptions.md`
|
|
136
|
+
- Project name, taglines (short and long), one-liner
|
|
137
|
+
- Friendly Brief Description explaining HITLoop workflow
|
|
138
|
+
- Two-clause Technical Description
|
|
139
|
+
- Benefits list (10 items)
|
|
140
|
+
- Technical Description (3 paragraphs)
|
|
141
|
+
- Keywords (18 items including HITLoop)
|
|
142
|
+
- Quick Start section (7 essential steps)
|
|
143
|
+
- Feature Cards (15 cards in 3 categories)
|
|
144
|
+
- Usage Notes mapping descriptions to consumer files
|
|
145
|
+
|
|
146
|
+
### Changed
|
|
147
|
+
- **Updated README.md** with canonical descriptions
|
|
148
|
+
- Line 8: Two-clause Technical Description
|
|
149
|
+
- Line 12: Friendly Brief Description (first sentence)
|
|
150
|
+
- **Updated pyproject.toml**
|
|
151
|
+
- Description field: Long Tagline
|
|
152
|
+
- **Updated docs/specs/features.md**
|
|
153
|
+
- Line 11: Two-clause Technical Description
|
|
154
|
+
- **Enhanced project-guide.md template**
|
|
155
|
+
- Added "How to Use This Guide" section
|
|
156
|
+
- Clarified "proceed" language for step-by-step workflow
|
|
157
|
+
|
|
158
|
+
## [1.1.3] - 2026-03-09
|
|
159
|
+
|
|
160
|
+
### Added
|
|
161
|
+
- **GitHub repository setup section** in `production-mode.md` guide
|
|
162
|
+
- Branch protection rules with UI-matching checklist format
|
|
163
|
+
- Security settings: Dependency graph, Dependabot alerts, security updates, grouped updates
|
|
164
|
+
- GitHub Actions permissions guidance (Read-only by default)
|
|
165
|
+
- Uses `default` branch for flexibility (works with `main` or `master`)
|
|
166
|
+
|
|
167
|
+
### Changed
|
|
168
|
+
- **Updated `project-guide.md` prerequisites**
|
|
169
|
+
- Clarified developer must provide OR LLM must ask for requirements
|
|
170
|
+
- Documented that project idea is often in `docs/specs/concept.md`
|
|
171
|
+
- **Updated `templates/guides/README.md`**
|
|
172
|
+
- Added production mode workflow to developer guide list
|
|
173
|
+
- Clarified LLMs may reference developer guides for step-by-step instructions
|
|
174
|
+
|
|
175
|
+
## [1.1.2] - 2026-03-09
|
|
176
|
+
|
|
177
|
+
### Changed
|
|
178
|
+
- **Modernized Git commands** in `production-mode.md` guide template
|
|
179
|
+
- Updated `git checkout` to `git switch` for switching branches
|
|
180
|
+
- Updated `git checkout -b` to `git switch -c` for creating branches
|
|
181
|
+
- Updated `git branch -d` to `git branch --delete` for clarity
|
|
182
|
+
- Updated `git branch -D` to `git branch --delete --force` for explicit force deletion
|
|
183
|
+
- All workflow examples, quick references, and troubleshooting sections updated
|
|
184
|
+
- **Refactored test suite** to eliminate version number scatter
|
|
185
|
+
- Tests now use `__version__` import instead of hardcoded version strings
|
|
186
|
+
- Makes tests self-maintaining across version bumps
|
|
187
|
+
- Only `version.py` needs updating for future releases
|
|
188
|
+
|
|
189
|
+
## [1.1.0] - 2026-03-03
|
|
190
|
+
|
|
191
|
+
### Added
|
|
192
|
+
- **`purge` command** to remove all project-guides files from a project
|
|
193
|
+
- `--force` flag to skip confirmation prompt
|
|
194
|
+
- Removes `.project-guides.yml` and guides directory
|
|
195
|
+
- Handles missing files gracefully
|
|
196
|
+
- Comprehensive error handling
|
|
197
|
+
- 5 new tests for purge command (total: 53 tests)
|
|
198
|
+
|
|
199
|
+
### Changed
|
|
200
|
+
- Updated README with purge command documentation
|
|
201
|
+
- Command count increased from 6 to 7
|
|
202
|
+
|
|
203
|
+
## [1.0.0] - 2026-03-03
|
|
204
|
+
|
|
205
|
+
### Added
|
|
206
|
+
- First stable release! 🎉
|
|
207
|
+
- Production-ready with 48 tests and 82% coverage
|
|
208
|
+
- Complete documentation and guides
|
|
209
|
+
- GitHub Actions CI/CD workflows
|
|
210
|
+
- Automated PyPI publishing on release
|
|
211
|
+
|
|
212
|
+
### Changed
|
|
213
|
+
- Development status updated to Production/Stable
|
|
214
|
+
- All features complete and tested
|
|
215
|
+
|
|
216
|
+
## [0.15.0] - 2026-03-03
|
|
217
|
+
|
|
218
|
+
### Added
|
|
219
|
+
- Comprehensive README with badges, installation instructions, and full command reference
|
|
220
|
+
- Quick start guide with 4-step workflow
|
|
221
|
+
- Troubleshooting section with common issues and solutions
|
|
222
|
+
- Contributing guidelines and development setup instructions
|
|
223
|
+
- Support links for issues, discussions, and documentation
|
|
224
|
+
|
|
225
|
+
### Changed
|
|
226
|
+
- Enhanced documentation throughout
|
|
227
|
+
|
|
228
|
+
## [0.14.0] - 2026-03-03
|
|
229
|
+
|
|
230
|
+
### Added
|
|
231
|
+
- Code quality tools: ruff linter and mypy type checker
|
|
232
|
+
- Comprehensive linting rules (E, W, F, I, N, UP, B, C4, SIM)
|
|
233
|
+
- Type hints throughout codebase
|
|
234
|
+
- `types-PyYAML` for type stubs
|
|
235
|
+
- GitHub Actions workflows (ci.yml, publish.yml, test.yml)
|
|
236
|
+
- Dependabot configuration for automated dependency updates
|
|
237
|
+
- GitHub Sponsors funding configuration placeholder
|
|
238
|
+
- Open Source Sustainability section in best-practices-guide.md
|
|
239
|
+
|
|
240
|
+
### Changed
|
|
241
|
+
- All code passes ruff and mypy checks with zero errors
|
|
242
|
+
- Line length configured to 100 characters
|
|
243
|
+
|
|
244
|
+
## [0.13.0] - 2026-03-03
|
|
245
|
+
|
|
246
|
+
### Added
|
|
247
|
+
- Integration tests for end-to-end workflows
|
|
248
|
+
- Test for full init → override → update workflow
|
|
249
|
+
- Test for version upgrade scenarios
|
|
250
|
+
- Test for force update with backups
|
|
251
|
+
- Test for multiple projects in isolation
|
|
252
|
+
- Test for dry-run mode
|
|
253
|
+
- Test for specific guide updates
|
|
254
|
+
|
|
255
|
+
### Changed
|
|
256
|
+
- Test coverage increased to 82% (48 tests total)
|
|
257
|
+
|
|
258
|
+
## [0.12.0] - 2026-03-03
|
|
259
|
+
|
|
260
|
+
### Added
|
|
261
|
+
- Colored CLI output using `click.secho()`
|
|
262
|
+
- Explicit exit codes for different error types:
|
|
263
|
+
- 0 for success
|
|
264
|
+
- 1 for general errors
|
|
265
|
+
- 2 for file I/O errors
|
|
266
|
+
- 3 for configuration errors
|
|
267
|
+
- Formatted tables with proper alignment in status output
|
|
268
|
+
|
|
269
|
+
### Changed
|
|
270
|
+
- All CLI commands now use colored output for better UX
|
|
271
|
+
- Error messages are more visually distinct
|
|
272
|
+
|
|
273
|
+
## [0.11.0] - 2026-03-03
|
|
274
|
+
|
|
275
|
+
### Added
|
|
276
|
+
- Custom exception classes for structured error handling:
|
|
277
|
+
- `ProjectGuidesError` - Base exception
|
|
278
|
+
- `ConfigError` - Configuration-related errors
|
|
279
|
+
- `SyncError` - Sync operation failures
|
|
280
|
+
- `GuideNotFoundError` - Missing guide templates
|
|
281
|
+
- Helpful error messages with actionable suggestions
|
|
282
|
+
- Error handling for missing config files
|
|
283
|
+
- Error handling for invalid YAML
|
|
284
|
+
- Error handling for permission errors
|
|
285
|
+
- Error handling for invalid guide names
|
|
286
|
+
|
|
287
|
+
### Changed
|
|
288
|
+
- All modules updated to use custom exceptions
|
|
289
|
+
- CLI commands catch and format errors appropriately
|
|
290
|
+
|
|
291
|
+
## [0.10.0] - 2026-03-03
|
|
292
|
+
|
|
293
|
+
### Added
|
|
294
|
+
- `overrides` command to list all overridden guides
|
|
295
|
+
- Display override reason, version, and last updated date
|
|
296
|
+
|
|
297
|
+
## [0.9.0] - 2026-03-03
|
|
298
|
+
|
|
299
|
+
### Added
|
|
300
|
+
- `override` command to mark guides as customized
|
|
301
|
+
- `unoverride` command to remove override status
|
|
302
|
+
- Override tracking in configuration with reason and metadata
|
|
303
|
+
|
|
304
|
+
### Changed
|
|
305
|
+
- Update command now skips overridden guides by default
|
|
306
|
+
- Force flag creates backups when updating overridden guides
|
|
307
|
+
|
|
308
|
+
## [0.8.0] - 2026-03-03
|
|
309
|
+
|
|
310
|
+
### Added
|
|
311
|
+
- `update` command to sync guides to latest version
|
|
312
|
+
- `--guides` flag to update specific guides only
|
|
313
|
+
- `--force` flag to update even overridden guides (with backups)
|
|
314
|
+
- `--dry-run` flag to preview changes without applying
|
|
315
|
+
|
|
316
|
+
## [0.7.0] - 2026-03-03
|
|
317
|
+
|
|
318
|
+
### Added
|
|
319
|
+
- `status` command to show guide installation status
|
|
320
|
+
- Display current vs. installed version
|
|
321
|
+
- Show which guides are current, outdated, or overridden
|
|
322
|
+
- Color-coded status indicators
|
|
323
|
+
|
|
324
|
+
## [0.6.0] - 2026-03-03
|
|
325
|
+
|
|
326
|
+
### Added
|
|
327
|
+
- `sync_guides()` orchestration function
|
|
328
|
+
- Override checking during sync
|
|
329
|
+
- Version comparison logic
|
|
330
|
+
- Dry-run mode support
|
|
331
|
+
- Force update with automatic backups
|
|
332
|
+
|
|
333
|
+
### Changed
|
|
334
|
+
- Sync module now handles complex update scenarios
|
|
335
|
+
|
|
336
|
+
## [0.5.0] - 2026-03-03
|
|
337
|
+
|
|
338
|
+
### Added
|
|
339
|
+
- `backup_guide()` function with timestamp-based naming
|
|
340
|
+
- `compare_versions()` function using `packaging.version`
|
|
341
|
+
- Version comparison for update detection
|
|
342
|
+
|
|
343
|
+
## [0.4.0] - 2026-03-03
|
|
344
|
+
|
|
345
|
+
### Added
|
|
346
|
+
- `copy_guide()` function to copy templates to target directory
|
|
347
|
+
- Force flag to overwrite existing files
|
|
348
|
+
- Subdirectory support for developer guides
|
|
349
|
+
- Permission error handling
|
|
350
|
+
|
|
351
|
+
## [0.3.0] - 2026-03-03
|
|
352
|
+
|
|
353
|
+
### Added
|
|
354
|
+
- Template bundling as package data
|
|
355
|
+
- `get_template_path()` function using `importlib.resources`
|
|
356
|
+
- `get_all_guide_names()` function to list available guides
|
|
357
|
+
- Support for developer subdirectory guides
|
|
358
|
+
|
|
359
|
+
## [0.2.0] - 2026-03-03
|
|
360
|
+
|
|
361
|
+
### Added
|
|
362
|
+
- Configuration model with dataclasses
|
|
363
|
+
- `Config.load()` and `Config.save()` methods
|
|
364
|
+
- YAML serialization/deserialization
|
|
365
|
+
- Override tracking in configuration
|
|
366
|
+
- `GuideOverride` dataclass for metadata
|
|
367
|
+
|
|
368
|
+
## [0.1.0] - 2026-03-03
|
|
369
|
+
|
|
370
|
+
### Added
|
|
371
|
+
- Initial package structure with Hatchling
|
|
372
|
+
- Basic CLI framework with Click
|
|
373
|
+
- `init` command to initialize project guides
|
|
374
|
+
- `--target-dir` and `--force` flags
|
|
375
|
+
- Apache 2.0 license
|
|
376
|
+
- Core guide templates:
|
|
377
|
+
- project-guide.md
|
|
378
|
+
- best-practices-guide.md
|
|
379
|
+
- debug-guide.md
|
|
380
|
+
- documentation-setup-guide.md
|
|
381
|
+
- developer/codecov-setup-guide.md
|
|
382
|
+
- developer/github-actions-guide.md
|
|
383
|
+
|
|
384
|
+
[Unreleased]: https://github.com/pointmatic/project-guides/compare/v1.4.0...HEAD
|
|
385
|
+
[1.4.0]: https://github.com/pointmatic/project-guides/compare/v1.3.1...v1.4.0
|
|
386
|
+
[1.3.1]: https://github.com/pointmatic/project-guides/compare/v1.3.0...v1.3.1
|
|
387
|
+
[1.1.3]: https://github.com/pointmatic/project-guides/compare/v1.1.2...v1.1.3
|
|
388
|
+
[1.1.2]: https://github.com/pointmatic/project-guides/compare/v1.1.0...v1.1.2
|
|
389
|
+
[1.1.0]: https://github.com/pointmatic/project-guides/compare/v1.0.0...v1.1.0
|
|
390
|
+
[1.0.0]: https://github.com/pointmatic/project-guides/compare/v0.15.0...v1.0.0
|
|
391
|
+
[0.15.0]: https://github.com/pointmatic/project-guides/compare/v0.14.0...v0.15.0
|
|
392
|
+
[0.14.0]: https://github.com/pointmatic/project-guides/compare/v0.13.0...v0.14.0
|
|
393
|
+
[0.13.0]: https://github.com/pointmatic/project-guides/compare/v0.12.0...v0.13.0
|
|
394
|
+
[0.12.0]: https://github.com/pointmatic/project-guides/compare/v0.11.0...v0.12.0
|
|
395
|
+
[0.11.0]: https://github.com/pointmatic/project-guides/compare/v0.10.0...v0.11.0
|
|
396
|
+
[0.10.0]: https://github.com/pointmatic/project-guides/compare/v0.9.0...v0.10.0
|
|
397
|
+
[0.9.0]: https://github.com/pointmatic/project-guides/compare/v0.8.0...v0.9.0
|
|
398
|
+
[0.8.0]: https://github.com/pointmatic/project-guides/compare/v0.7.0...v0.8.0
|
|
399
|
+
[0.7.0]: https://github.com/pointmatic/project-guides/compare/v0.6.0...v0.7.0
|
|
400
|
+
[0.6.0]: https://github.com/pointmatic/project-guides/compare/v0.5.0...v0.6.0
|
|
401
|
+
[0.5.0]: https://github.com/pointmatic/project-guides/compare/v0.4.0...v0.5.0
|
|
402
|
+
[0.4.0]: https://github.com/pointmatic/project-guides/compare/v0.3.0...v0.4.0
|
|
403
|
+
[0.3.0]: https://github.com/pointmatic/project-guides/compare/v0.2.0...v0.3.0
|
|
404
|
+
[0.2.0]: https://github.com/pointmatic/project-guides/compare/v0.1.0...v0.2.0
|
|
405
|
+
[0.1.0]: https://github.com/pointmatic/project-guides/releases/tag/v0.1.0
|