dddlib is a Python library that collects commonly used building blocks for DDD implementations.
This repository uses a workspace layout, and the library itself and the CLI are managed as separate packages.
- dddlib: Provides infrastructure for domain model base classes, value objects, entities, aggregate roots, domain events, errors, and messages.
- dddlib_cli: Provides a CLI built on
dddlib.
This repository follows GitFlow.
develop: integration branch for daily developmentfeature/*: individual features and fixes are developed fromdevelopand merged back intodeveloprelease/*: final adjustments before release are developed fromdevelopand merged intomainanddevelophotfix/*: urgent fixes are branched frommainand merged intomainanddevelopmain: production branch
GitHub Actions is configured as follows:
- CI runs on pull requests and pushes for
develop,release/*, andhotfix/* - CD is triggered manually for a version tag on
mainand publishes to TestPyPI or PyPI
Release notes and publication follow these steps:
- Prepare the release content on
release/*. - Merge the release branch into
main. - Tag the
maincommit with a version tag such asv1.2.3. - Write the release notes for that tag in GitHub Release or
CHANGELOG.md. - Run the CD workflow manually with
publish_target=testpypiandrelease_ref=v1.2.3. - Verify the package on TestPyPI.
- Run the CD workflow again with
publish_target=pypiand the same tag when the verification is successful.
Detailed usage is delegated to each package README.
- For installation and basic usage of the library, see dddlib
- For CLI startup instructions and command lists, see dddlib_cli
See LICENSE.md for this project.