docs(decisions): add DR-001 for unit test design#105
Conversation
Documents the four design decisions made in PR eclipse-score#94: - py_itf_unittest macro (thin wrapper, no plugin machinery) - surgical Bazel target splitting for atomic deps - pytest bootstrap via shared main.py - pytest-mock over unittest.mock References: eclipse-score#94
90f8b3d to
67d2f1b
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new “Decisions” documentation section to capture design decision records (DRs) for ITF, starting with DR-001 describing the unit test infrastructure decisions introduced in PR #94.
Changes:
- Add
docs/decisions/with an index page and the first decision record (DR-001-infra). - Wire the new decisions section into the main Sphinx docs toctree.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
docs/index.rst |
Adds decisions/index to the site-level toctree so the section appears in the docs build. |
docs/decisions/index.rst |
Introduces the Decisions landing page and a globbed toctree for infra DRs. |
docs/decisions/DR-001-infra.md |
Documents the rationale and selected options for the unit test infrastructure design from PR #94. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pahmann
left a comment
There was a problem hiding this comment.
Thanks for the DR. This looks like a solid and pragmatic approach.
I’m not a Bazel nor py_test expert, so please take this more as a question from an OSS perspective: have we considered leveraging existing pytest integrations in the Bazel ecosystem (e.g. py_pytest_test-style rules) instead of maintaining a custom main.py bootstrap?
The current approach works well, but introducing a custom macro + bootstrap adds project-specific infrastructure. Aligning more closely with community-maintained rules could help reduce maintenance overhead and lower the entry barrier for external contributors who are already familiar with standard pytest setups.
This wouldn’t necessarily require changing the external model. Maybe keep py_itf_unittest as a thin wrapper, but delegate the implementation to an existing pytest-aware rule.
Not a blocker, just a suggestion to consider for better long-term alignment with the Bazel OSS ecosystem.
Summary
docs/decisions/directory with an index and the first Decision Recordpy_itf_unittestmacro (thin wrapper, no plugin machinery)main.pybootstrap pattern for pytest under Bazelpytest-mockoverunittest.mockDR-{number}-{category}.md, glob-based toctree per category)decisions/indexinto the Sphinx toctreeRelated: #94
Discussion: https://github.com/orgs/eclipse-score/discussions/2867
Test plan
bazel build //docs)