Tags

Tags give the ability to mark specific points in history as being important
  • v1.0.0

    protected Release: Release v1.0.0
    ✅ Path Header Scanner v1.0.0 — First Stable Release
    
    Path Header Scanner v1.0.0 is the first stable production release of the
    configuration-driven CLI for previewing, validating, inserting, and updating
    repository-relative path headers.
    
    The release promotes the functionality validated in `v1.0.0-rc.1` and defines
    the initial compatibility baseline for commands, configuration, supported
    languages, mutation safety, and extension points.
    
    - Preview-first recursive scanning with explicit `--apply` for changes.
    - Missing and stale path-header detection with language-aware corrections.
    - Python, JavaScript and TypeScript, Shell, PHP, HTML, and Markdown support.
    - Predictable repository-relative paths and configurable ignore rules.
    - Safe initialization and scanning through an authoritative `--dry-run` mode.
    - Namespaced `.config/path_header_scanner/config.toml` configuration.
    - Rich help, progress, summaries, concise actionable errors, reliable failure exits, and configurable debug logging.
    - Automated tests, MkDocs documentation, modular Make workflows, Docker, Compose, GitHub Actions, and GitLab CI.
    - Release pipelines that derive provider registry destinations from the active repository, require reviewed annotated tags, preserve safely rendered full tag-message notes with populated metadata and literal Docker commands, publish exact prerelease images, and publish stable images under exact, minor, major, and `latest` tags.
    
    Start with a preview:
    
    ```bash
    path-header-scanner scan app
    ```
    
    Apply changes only after reviewing the preview:
    
    ```bash
    path-header-scanner scan app --apply
    ```
    
    Use `--dry-run` whenever automation or configuration might enable mutation. It
    overrides apply mode and keeps target-project files unchanged. Diagnostic logs
    may still be written to their configured destination.
    
    The project separates CLI, configuration, scanner, processor, updater, language
    strategies, initialization, services, UI, and utilities into focused modules.
    This makes new language support and workflow improvements easier to locate,
    test, debug, maintain, and extend.
    
    Authorized users can install the stable package from the private GitLab
    registry. Configure pip authentication with a deploy token limited to
    `read_package_registry`, then use the token-free project index URL:
    
    ```bash
    python -m pip install \
      --index-url "https://gitlab.com/api/v4/projects/<project-id>/packages/pypi/simple" \
      "path-header-scanner==1.0.0"
    ```
    
    Supply credentials through an approved protected pip credential mechanism or
    its interactive authentication flow. Never commit tokens or include them in
    shared command history. Only the protected release pipeline publishes packages;
    unprotected tags remain validation-only.
    
    - Version: `v1.0.0`
    - Previous version: `v1.0.0-rc.1`
    - Previous stable version: none
    - Release lineage: pre-RC checkpoints 1–4 → first RC v1.0.0-rc.1 → post-RC stabilization → first stable v1.0.0
    - Strategy: Semantic Versioning
    - Package compatibility: Python 3.11+
    - Standard development/container runtime: Python 3.14
    - Stability: Stable for the documented command set
    - Container tags: `v1.0.0`, `v1.0`, `v1`, and `latest`; exact version recommended for reproducible automation
    
    Thank you for testing the release candidate and helping establish the first
    stable Path Header Scanner release line.
    
    _Release: v1.0.0_
    _Author: Devalltect / Rizky Fernandes_
  • v1.0.0-rc.1

    protected Release: Release v1.0.0-rc.1
    🚧 Path Header Scanner v1.0.0-rc.1 — First Production Release Candidate
    
    Path Header Scanner v1.0.0-rc.1 is the first formal release candidate for a
    configuration-driven CLI that previews, validates, inserts, and updates
    repository-relative path headers across supported source and documentation
    files.
    
    There is no previous production release to upgrade from. This candidate defines
    the initial supported CLI, configuration, safety model, language coverage, and
    automation foundation that will become v1.0.0 after release-candidate validation.
    
    - Preview-first scanning: files remain unchanged unless `--apply` is selected.
    - Recursive discovery and validation of missing, valid, and stale path headers.
    - Language-aware support for Python, JavaScript and TypeScript, Shell, PHP, HTML, and Markdown.
    - Explicit target and working-directory selection for predictable repository-relative headers.
    - Configurable ignore rules for Git metadata, environments, caches, dependencies, and build output.
    - `path-header-scanner init` for generating the namespaced project configuration.
    - `path-header-scanner scan <target>` for previewing or applying reviewed corrections.
    - Rich command help, banners, progress, summaries, and failure reporting.
    - Concise, actionable command errors with reliable nonzero exits and debug-only implementation tracebacks.
    - Console and rotating-file logging for troubleshooting.
    - Local, Docker, Docker Compose, and modular Make workflows.
    - Automated tests, MkDocs documentation, GitHub Actions, and GitLab CI support.
    - Hardened delivery pipelines that use the active repository's registry namespace, require non-empty annotated release tags, preserve safely rendered complete tag-message release notes with populated metadata and literal Docker commands, keep RC images on their exact tag, and reserve `latest` for stable releases.
    - Private GitLab PyPI delivery for `path-header-scanner`, with the RC tag
      published as canonical package version `1.0.0rc1` only after the protected
      release pipeline passes.
    
    Authorized users can install the candidate from the private GitLab package
    registry. Configure pip authentication with a deploy token limited to
    `read_package_registry`, then use the token-free project index URL:
    
    ```bash
    python -m pip install \
      --index-url "https://gitlab.com/api/v4/projects/<project-id>/packages/pypi/simple" \
      "path-header-scanner==1.0.0rc1"
    ```
    
    Supply the deploy-token username and token through an approved protected pip
    credential mechanism or its interactive authentication flow. Never place tokens
    in committed configuration or shared command history. Unprotected tags validate
    the same artifacts but cannot publish them.
    
    Path Header Scanner is intentionally conservative:
    
    - A normal scan is a preview and does not change target files.
    - `--apply` is required before eligible files are updated.
    - `--dry-run` prevents mutations even if `--apply` or configured apply mode is present.
    - Initialization dry-run does not create configuration directories or files and does not prompt for overwrite.
    - Read-only discovery and validation still run during dry-run so the preview remains useful.
    - Diagnostic logs may be written to the configured log destination, but target-project files remain unchanged.
    
    Preview a target:
    
    ```bash
    path-header-scanner scan app
    ```
    
    Apply reviewed corrections:
    
    ```bash
    path-header-scanner scan app --apply
    ```
    
    Force an explicit simulation, including when apply mode is configured:
    
    ```bash
    path-header-scanner scan app --apply --dry-run
    ```
    
    Preview project initialization:
    
    ```bash
    path-header-scanner init --dry-run
    ```
    
    Project settings live in:
    
    ```text
    .config/path_header_scanner/config.toml
    ```
    
    Configuration can define scan defaults, ignored content, logging, banner
    behavior, apply mode, and dry-run mode. Explicit CLI options take precedence for
    the current invocation.
    
    Each supported language uses syntax appropriate to that file type. The scanner
    preserves relevant leading content, including shebangs and language-specific
    special lines, while inserting or replacing only the managed path header.
    
    Markdown path headers use HTML comments intentionally so generated documentation
    remains readable without displaying internal header metadata.
    
    - CLI parsing and presentation are separated from scan and update behavior.
    - Language strategies provide focused extension points for additional file types.
    - Scanner, processor, and updater responsibilities can be tested independently.
    - Initialization planning is separated from persistence to enforce dry-run safety.
    - Modular Make, Docker, Compose, CI, lint, format, test, package, and documentation workflows support repeatable development.
    
    Please validate the candidate on a disposable or version-controlled test project:
    
    1. Install v1.0.0-rc.1 in an isolated Python environment.
    2. Run `path-header-scanner --help` and command-specific help.
    3. Preview initialization with `path-header-scanner init --dry-run`.
    4. Initialize and review `.config/path_header_scanner/config.toml`.
    5. Preview representative source and documentation targets.
    6. Verify `--apply --dry-run` leaves every target file unchanged.
    7. Apply a reviewed scan and inspect the resulting path headers and summary.
    8. Report unsupported syntax, incorrect relative paths, unsafe writes, or confusing output before v1.0.0 is promoted.
    
    This release candidate brings together four untagged development checkpoints.
    The product and general delivery foundation belongs to checkpoint 1; private
    GitLab package delivery belongs to checkpoint 2; source-checkout maintenance
    belongs to checkpoint 3; and safe GitHub Release rendering belongs to checkpoint
    4. RC.1 promotes their reviewed, cumulative result rather than introducing a
    separate implementation checkpoint.
    
    Recorded development validation is not final release sign-off. Complete the
    RC checks against the exact candidate commit before publishing its tag, and
    validate the workflows relevant to your project before production use.
    
    - Version: `v1.0.0-rc.1`
    - Previous version: none — first formal release
    - Strategy: Semantic Versioning
    - Package compatibility: Python 3.11+
    - Standard development/container runtime: Python 3.14
    - Stability: Release candidate; validate before production automation
    - Stable target: `v1.0.0`
    
    The stable release may include final cleanup, documentation corrections, and
    fixes discovered during RC validation, without changing the documented safety
    model unexpectedly.
    
    Thank you for validating the first Path Header Scanner production release line.
    
    _Release candidate: v1.0.0-rc.1_
    _Author: Devalltect / Rizky Fernandes_