Add ClusterArchTestsBase for reusable architecture test rules with ArchUnit.NET#46
Add ClusterArchTestsBase for reusable architecture test rules with ArchUnit.NET#46Copilot wants to merge 10 commits into
Conversation
* Initial plan * Add AOT and trimming support: Update packages and project properties Co-authored-by: Kumara-Krishnan <[email protected]> * Add AOT compatibility to Bookmarkly.Views project Co-authored-by: Kumara-Krishnan <[email protected]> * Remove PublishTrimmed=false override from CI workflow Co-authored-by: Kumara-Krishnan <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Kumara-Krishnan <[email protected]>
…621.0 (#33) * Initial plan * Update Windows SDK version from 10.0.22000.0 to 10.0.22621.0 Co-authored-by: Kumara-Krishnan <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Kumara-Krishnan <[email protected]>
* Initial plan * Add .binlog artifacts to CI workflows for build debugging --------- Co-authored-by: Copilot <[email protected]>
…lease on self-hosted runner (#41) * Add binary log artifacts to CI build workflows (#35) * Initial plan * Add .binlog artifacts to CI workflows for build debugging Co-authored-by: Kumara-Krishnan <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Kumara-Krishnan <[email protected]> * [WIP] Run msix build and release on self-hosted runner (#38) * Initial plan * Update MSIX workflow to use self-hosted runner with VS 2026 Co-authored-by: Kumara-Krishnan <[email protected]> * Address code review: Support both VS 2022 and VS 2026 Co-authored-by: Kumara-Krishnan <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Kumara-Krishnan <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
- Create ClusterArchTestsBase project with reusable architecture rules - Add ClusterConfiguration class for module/cluster assembly naming - Add ClusterArchitectureRulesBase with 13 architecture rules covering: - Dependency rules (Entities, Library, ViewContracts, ViewModels, Views) - Access modifier rules (DataManager, Handler, UseCase, ViewModel) - Interface implementation rules (IView, IViewModel) - Update ArchitectureTests to use the base project for Bookmarkly - Add placeholder classes to enable assembly reference for testing - Add InternalsVisibleTo for ViewModels to expose internals to tests - Fix Directory.Build.props and Directory.Packages.props casing - Enable cross-platform Windows targeting for CI builds Co-authored-by: Kumara-Krishnan <[email protected]>
|
@copilot Does it cover transitive dependencies as well? |
No, the current implementation using For example, if However, in practice, transitive violations are often caught indirectly because:
If you need explicit transitive dependency checking, ArchUnit.NET doesn't provide this out-of-the-box. We could potentially add custom rules that traverse the dependency graph, but this would require additional implementation. Would you like me to add transitive dependency validation? |
d733b92 to
3f7bd70
Compare
Implements a reusable architecture test framework using ArchUnit.NET that enforces cluster-level architecture rules. Each module (A, B, C, etc.) can inherit from a shared base without duplicating test code.
ClusterArchTestsBase
New project containing:
{prefix}.Entities.Abstractions,{prefix}.ViewModels, etc.)Marker Interfaces
Added
IViewandIViewModelinBookmarkly.Entities.Abstractionsfor contract enforcement.Usage
Other Changes
InternalsVisibleTofor ViewModels to expose internals to test projectsDirectory.Build.propscasing for Linux CI compatibilityEnableWindowsTargetingfor cross-platform buildsOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.