Skip to content

Releases: TradeMe/spec-check

v0.2.0-alpha.1

31 Oct 02:34
b4464da

Choose a tag to compare

v0.2.0-alpha.1 Pre-release
Pre-release

Added

  • Implemented Issue #42: improved reference resolution and flexible file classification (typed / unmanaged / external / excluded), added .specignore support, and CLI flags for strict validation and external URL checking (#44)

Docs

  • Investigation and solution notes for Issue #42 added to technical-notes/issue-42-investigation.md (#43)

Changed

  • Reference resolution flow updated to support the new classification system and fallbacks for unmanaged files; added tests and integration scenarios for mixed typed/unmanaged content (#44)

v0.1.4

30 Oct 03:28
c259334

Choose a tag to compare

Added

  • New builtin DSL types: SpecificationModule and PrinciplesModule for validating project specs (#39)
  • DSL validation step added to CI workflow (#39)

Fixed

  • Fixed reference_resolver.py using non-existent target_module attribute instead of target_type (#39)
  • Fixed missing "addresses" keyword detection in reference relationship inference (#39)
  • Fixed missing MarkdownDocument import in DSL validator (#39)
  • Added support for location="metadata" in identifier extraction (#39)

Changed

  • Restructured project specs to pass DSL validation (#39)
  • Removed duplicate job catalog files from specs/jobs/ (#39)
  • Added "Addresses" sections to Requirements linking to Jobs (#39)

v0.1.3

28 Oct 20:13
ac91822

Choose a tag to compare

Fixed

  • Fixed spec-check --version to report correct package version from metadata instead of hardcoded 0.1.0 (#32)
  • Fixed spec-check lint to automatically ignore all VCS control directories (.git, .hg, .svn, .bzr) regardless of .gitignore (#31)

v0.1.2

28 Oct 09:40
476a079

Choose a tag to compare

Fixed

  • Added missing validate_count() and parse_cardinality() methods to Reference model (#28)
  • Fixed DSL validator to use target_type instead of non-existent target_module/target_class attributes

v0.1.1

28 Oct 08:14
35dedc9

Choose a tag to compare

Fixed

  • Release workflow now automatically publishes to PyPI in the same workflow
  • Added pull-requests: write permission to enable PR commenting
  • Eliminated manual intervention requirement for PyPI publishing
  • Fixed AttributeError in DSL validator where section_def.level was incorrectly used instead of section_def.heading_level (#25)

Changed

  • Merged release creation and PyPI publishing into single workflow for reliability
  • Improved PR comments to show publishing status

v0.1.0

28 Oct 06:15
0ea0b3a

Choose a tag to compare

Added

  • PyPI publishing configuration with automated workflows
  • Comprehensive PyPI metadata (keywords, classifiers, project URLs)
  • GitHub Actions workflow for automated PyPI publishing using trusted publishing (OIDC)
  • TestPyPI publishing support for testing releases
  • PUBLISHING.md with detailed publishing guide
  • CHANGELOG.md following Keep a Changelog format
  • Version check workflow to prevent unauthorized version changes
  • Automated TestPyPI publishing for PRs
  • Pre-release publishing support
  • File allowlist linter (spec-check lint)
    • Validates all files match gitignore-style patterns
    • Respects .gitignore by default
    • Supports complex patterns including character classes
  • Markdown link validator (spec-check check-links)
    • Validates internal links and anchors
    • Checks external URLs for accessibility
    • Supports private URL patterns
    • Concurrent external URL checking
  • Spec coverage validator (spec-check check-coverage)
    • Extracts requirements from spec files
    • Validates test coverage using pytest markers
    • Reports coverage percentage and uncovered requirements
  • Structure validator (spec-check check-structure)
    • Enforces consistent spec-to-test structure alignment
    • Supports flexible naming conventions
    • Allows unit tests without corresponding specs
  • Unique spec ID validator (spec-check check-unique-specs)
    • Validates spec IDs are unique across files
    • Validates requirement IDs are unique within specs
  • Markdown schema validator (spec-check check-schema)
    • Validates markdown files against configurable schemas
    • Supports EARS requirement validation
    • Configurable metadata and heading requirements
  • Configuration via pyproject.toml
  • CLI with comprehensive help text
  • Support for Python 3.10, 3.11, 3.12, 3.13

Changed

  • Development status updated to Alpha
  • Added flit as dev dependency for building distributions