Skip to content

πŸ—ΊοΈ ForgingBlocks v1.0.0 Roadmap OverviewΒ #76

Description

@gbrennon

ForgingBlocks v1.0.0 Roadmap

Scope: Pure Python DDD library/toolkit β€” not a framework.
Integrations with web frameworks, ORMs, databases, etc. belong in separate adapter repos.

Current State (v0.4.4)

Layer Status Coverage
Foundation β€” Result, ValueObject, Port, Messages, Specification, Errors, AutoFreeze, AutoHash, Validation Rules, Context, Meta βœ… Complete 98%
Domain β€” Entity, AggregateRoot, ValueObject, Specifications, Domain Validators, Permission Checkers βœ… Complete 100%
Application β€” UseCase, MessageHandler/CommandHandler/EventHandler/QueryHandler, Outbound Ports (Repository, UoW, EventStore, EventBus, FileSystem, Logger, Cache, HttpClient, Notifier), Application Errors βœ… Complete 100%
Infrastructure β€” In-memory implementations (EventStore, EventBus, MessageBus, Repository, UoW, Cache), BaseRepository, AggregateRepository, StdlibLogger, OSFileSystem, URLLibClient, Serializable βœ… Complete 98%
Presentation β€” Middleware/Pipeline, PresentationAdapter, RequestAdapter/ResponseAdapter, ErrorPresenter, Built-in Middleware (ErrorHandling, Logging, Timing, Validation) βœ… Complete 100%

1010 tests passing, 98% coverage, 0 pyright errors, 0 ruff errors.

v1.0.0 Definition

ForgingBlocks v1.0.0 is a stable, documented, well-tested pure DDD toolkit for Python. It provides the building blocks for domain-driven design without imposing frameworks, ORMs, or transport layers.

What v1.0.0 Guarantees

  • SemVer compliance β€” public API follows semantic versioning
  • API stability β€” no breaking changes in minor/patch releases
  • Documented surface β€” every public symbol documented and exported via __all__
  • Tested behavior β€” β‰₯90% test coverage on all core modules
  • Type-safe β€” strict pyright compliance

What Is NOT v1.0.0 (out of scope for this repo)

The following are explicitly not part of v1.0.0 and should be pursued in separate adapter repos or post-v1 releases:

Item Reason
HTTP/REST adapters (FastAPI, Flask, Django) Framework integration β†’ separate adapter repos
Database adapters (SQLAlchemy, raw SQL) ORM integration β†’ separate adapter repos
CLI scaffolding tools Developer experience tool β†’ separate project
IDE/LSP integration Editor integration β†’ separate project
Plugin system Extensibility β†’ post-v1.x
Performance benchmarks (10k RPS) Not a library concern
Enterprise features (SSO, multi-tenancy, K8s) Out of scope for a building-block library

Remaining Work for v1.0.0

[ ] 1. API Stability Audit

  • Review every __init__.py __all__ for consistency
  • Ensure all public names follow the same conventions
  • Mark any internal-only items with leading underscore or remove from __all__
  • Publish API stability policy

[ ] 2. Docs Completeness Audit

  • Verify every public symbol has a docstring
  • Verify every module appears in reference docs
  • Fix any missing or broken autodoc pages

[ ] 3. Test Coverage Closure

  • Push remaining uncovered lines to 100% on src/forging_blocks/
  • Current: 98% β€” remaining gaps in frozen_state.py, hashable_converter.py, event_buses, aggregate_repository, unit_of_work

[ ] 4. pyproject.toml & Metadata Review

  • Update classifiers for v1.0.0
  • Ensure Python version support is accurate
  • Review project description and keywords

[ ] 5. Release v1.0.0

  • Bump version, generate CHANGELOG
  • Create release PR, merge, publish
  • Deploy docs

How to Contribute

  • Report bugs via GitHub Issues
  • Submit PRs for the remaining v1.0.0 checklist items
  • Build adapter packages in separate repos (e.g., forging-blocks-fastapi, forging-blocks-sqlalchemy)
  • For feature requests after v1.0.0, see the post-v1 roadmap section

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions