finos / finos/morphir-dotnet

[EPIC] Deployment Architecture Refactor

Open
#208 3 comments 0 reactions 1 assignee Claimed by @DamianReeves View on GitHub
approved enhancement epic priority:high
Dominant language
F#
Stars
14
Forks
12
PR merge metrics
No merged PRs in 30d

Description

## Overview

Refactor morphir-dotnet deployment architecture to fix critical packaging issues, separate tool from executable distribution, implement comprehensive build testing, and establish changelog-driven versioning.

**Problem**: Current deployment failed due to package naming mismatches and lack of automated validation. No clear separation between dotnet tool and standalone executable distribution.

**Solution**: See comprehensive PRD: [deployment-architecture-refactor.md](https://github.com/finos/morphir-dotnet/blob/feature/deployment-architecture-refactor/docs/content/contributing/design/prds/deployment-architecture-refactor.md)

## Quick Summary

### Decisions Made
- ✅ **Decision 1**: Separate projects (Morphir.Tool + Morphir)
- ✅ **Decision 2**: Hybrid testing (structure validation → local install → TestContainers)
- ✅ **Decision 3**: Split Build.cs by domain + extract helpers
- ✅ **Decision 4**: Dual distribution (NuGet + GitHub releases)
- ✅ **Decision 5**: CHANGELOG.md as single source of truth via Ionide.KeepAChangelog

### Implementation Phases

**Phase 1**: Project Structure & Build Organization (3-4 days)
- Create Morphir.Tool project
- Split Build.cs into partial classes
- Extract helper classes
- Remove deprecated code

**Phase 2**: Changelog-Driven Versioning (2-3 days)
- Integrate Ionide.KeepAChangelog
- Implement PrepareRelease target
- Auto pre-release version bumping

**Phase 3**: Build Testing Infrastructure (3-4 days)
- Create Morphir.Build.Tests project
- Package structure + metadata tests
- Local installation tests
- CI integration

**Phase 4**: Deployment & Distribution (2-3 days)
- Update deployment workflow
- GitHub release automation
- Install script updates

**Phase 5**: Documentation (1-2 days)
- Update AGENTS.md, CLAUDE.md, README.md
- Create DEPLOYMENT.md
- Write BDD feature files

**Total Timeline**: 11-16 days

## Sub-Issues

Will create individual issues for each phase once this epic is approved.

## Related PRD

📄 **Full PRD**: [deployment-architecture-refactor.md](https://github.com/finos/morphir-dotnet/blob/feature/deployment-architecture-refactor/docs/content/contributing/design/prds/deployment-architecture-refactor.md)

Contains:
- Complete design decisions with rationale
- Detailed implementation tasks
- BDD acceptance criteria
- Testing strategy
- Risk analysis
- Success metrics
- Architecture diagrams

## Acceptance Criteria

- [ ] Zero deployment failures due to package naming
- [ ] All packages have same version from CHANGELOG.md
- [ ] Build tests catch 100% of package structure issues
- [ ] Clear persona-based installation documentation
- [ ] Successful deployment to NuGet + GitHub releases

## Questions?

Please review the full PRD and comment with any questions or concerns.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.