Skip to content

chore: release v0.3.2#412

Merged
DamianReeves merged 6 commits intomainfrom
release/v0.3.2
Jan 5, 2026
Merged

chore: release v0.3.2#412
DamianReeves merged 6 commits intomainfrom
release/v0.3.2

Conversation

@DamianReeves
Copy link
Member

Summary

This PR prepares v0.3.2 release, which fixes the critical go install compatibility issue discovered in v0.3.1.

Problem

In v0.3.1, fails with:

The go.mod file for the module providing named packages contains one or
more replace directives. It must not contain directives that would cause
it to be interpreted differently than if it were the main module.

Root Cause: The v0.3.1 tag points to source code that still contains replace directives. While our GoReleaser workflow removes these directives during the build process, the published tag source code retains them, breaking go install.

Solution

Remove replace directives from source code entirely:

  1. cmd/morphir/go.mod: Removed 3 replace directives
  2. pkg/tooling/go.mod: Removed 2 replace directives
  3. tests/bdd/go.mod: Removed 1 replace directive

Updated module version references to v0.3.2

For local development, developers should rely on go.work which provides workspace-based module resolution without needing replace directives in go.mod files.

Changes

  • Remove all replace directives from go.mod files
  • Update internal module references to v0.3.2
  • Update CHANGELOG.md with v0.3.2 release notes
  • Document workflow trigger limitations

Testing

Pre-flight checks will verify:

  • All modules build (just verify)
  • All tests pass (just test)
  • go install works with v0.3.2 modules
  • go work-based development still functions

Post-Merge

After merging, I'll:

  1. Create v0.3.2 tags
  2. Manually trigger release workflow (automatic trigger has known issues)
  3. Verify go install github.com/finos/morphir/cmd/morphir@v0.3.2 succeeds

@netlify
Copy link

netlify bot commented Jan 5, 2026

Deploy Preview for angry-raman-7c44f6 canceled.

Name Link
🔨 Latest commit 64baf7b
🔍 Latest deploy log https://app.netlify.com/projects/angry-raman-7c44f6/deploys/695c205655abca0008ae3dd3

Critical fix for go install compatibility:
- Remove all replace directives from source code
- Update module version references to v0.3.2
- Update CHANGELOG with v0.3.2 release notes

This ensures go install github.com/finos/morphir/cmd/morphir@v0.3.2
works correctly without replace directive errors.

Development workflow now relies on go.work for local module resolution.
The CI was failing because go.mod files referenced v0.3.2 which doesn't
exist yet. We need to use the current released version (v0.3.1) until
v0.3.2 is actually released.

The release script will update these versions to v0.3.2 as part of the
release commit before creating tags.
Added critical documentation about why release PRs must use current
released versions in go.mod files instead of the version being released.

This ensures CI can pass before the new version exists, as CI needs to
download module dependencies that won't be available until after release.
- Created setup-workspace.sh/ps1 scripts for dynamic module discovery
- CI now automatically sets up go.work before all build/test jobs
- Added external consumption test for release PRs (without go.work)
- Updated morphir-developer skill with new workflow documentation

This ensures:
- Consistent behavior between local dev and CI
- Cross-module changes work seamlessly in all PRs
- Release PRs verify external consumption correctness
- No hardcoded module lists - fully dynamic
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jan 5, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

Add CI_RELEASE_FAQ.md to help developers understand:
- How CI tests PR code (not old published versions)
- How go.work ensures CI uses local modules
- How multi-module PRs work
- How release workflow handles versioning
- Common troubleshooting scenarios

Update README.md and DEVELOPING.md to link to the new FAQ.

This addresses developer confidence questions about the
chicken-and-egg situation with module versions and ensures
all contributors understand our automated workspace setup.
Fix CI failure where go.work already exists by removing
existing go.work and go.work.sum files before initialization.

This makes the script idempotent - it can be run multiple times
safely without errors.

Updated both setup-workspace.sh and setup-workspace.ps1.
@DamianReeves DamianReeves merged commit cab55dc into main Jan 5, 2026
17 checks passed
@DamianReeves DamianReeves deleted the release/v0.3.2 branch January 5, 2026 21:14
DamianReeves added a commit that referenced this pull request Jan 5, 2026
* chore: release v0.3.2

Critical fix for go install compatibility:
- Remove all replace directives from source code
- Update module version references to v0.3.2
- Update CHANGELOG with v0.3.2 release notes

This ensures go install github.com/finos/morphir/cmd/morphir@v0.3.2
works correctly without replace directive errors.

Development workflow now relies on go.work for local module resolution.

* fix: use v0.3.1 module versions until v0.3.2 is released

The CI was failing because go.mod files referenced v0.3.2 which doesn't
exist yet. We need to use the current released version (v0.3.1) until
v0.3.2 is actually released.

The release script will update these versions to v0.3.2 as part of the
release commit before creating tags.

* docs: document module version coordination for release PRs

Added critical documentation about why release PRs must use current
released versions in go.mod files instead of the version being released.

This ensures CI can pass before the new version exists, as CI needs to
download module dependencies that won't be available until after release.

* feat: add go.work automation to CI with external consumption test

- Created setup-workspace.sh/ps1 scripts for dynamic module discovery
- CI now automatically sets up go.work before all build/test jobs
- Added external consumption test for release PRs (without go.work)
- Updated morphir-developer skill with new workflow documentation

This ensures:
- Consistent behavior between local dev and CI
- Cross-module changes work seamlessly in all PRs
- Release PRs verify external consumption correctness
- No hardcoded module lists - fully dynamic

* docs: add comprehensive CI/Release workflow FAQ

Add CI_RELEASE_FAQ.md to help developers understand:
- How CI tests PR code (not old published versions)
- How go.work ensures CI uses local modules
- How multi-module PRs work
- How release workflow handles versioning
- Common troubleshooting scenarios

Update README.md and DEVELOPING.md to link to the new FAQ.

This addresses developer confidence questions about the
chicken-and-egg situation with module versions and ensures
all contributors understand our automated workspace setup.

* fix: make workspace setup script idempotent

Fix CI failure where go.work already exists by removing
existing go.work and go.work.sum files before initialization.

This makes the script idempotent - it can be run multiple times
safely without errors.

Updated both setup-workspace.sh and setup-workspace.ps1.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant