You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release v0.3.3: About command and release automation enhancements (#417)
* feat: add 'morphir about' command and enhance release automation for v0.3.3
This release adds several enhancements to improve user experience and release automation.
Added:
- 'morphir about' command with embedded changelog
- Displays version, platform info, and build details
- --changelog flag shows full embedded CHANGELOG.md with markdown rendering
- --json flag for programmatic access
- Automatic CHANGELOG.md sync during build process
- Install script version parameter support
- install.sh and install.ps1 now accept version argument
- Example: ./install.sh v0.3.2
- Defaults to latest release if no version specified
Fixed:
- Release script CI wait logic
- Now actively polls for CI completion (10min timeout)
- Shows progress indicators
- Prevents releases when CI is running or failed
Changed:
- Build process now automatically syncs CHANGELOG.md
- Added sync-changelog just recipe
- GoReleaser hooks updated
- Generated file added to .gitignore
Version: v0.3.3
Module versions updated to v0.3.3
Generated with [Claude Code](https://claude.com/claude-code)
* docs: add Morphir Go preview documentation with installation guide
Added comprehensive documentation for Morphir Go as a developer preview feature.
Positions it appropriately as an insider/preview release while morphir-elm
remains the stable production path.
Includes:
- Multiple installation methods (scripts, go install, binaries)
- Quick start examples
- Current status and roadmap
- Troubleshooting guide
- Clear warnings about preview status
Generated with [Claude Code](https://claude.com/claude-code)
* docs: add Morphir Go preview to sidebar navigation
Added morphir-go-preview.md to the Getting Started section of the
documentation sidebar, making it easily discoverable for users exploring
the new Go implementation.
Generated with [Claude Code](https://claude.com/claude-code)
* fix: revert module versions to v0.3.2 for release PR
Module versions should reference the current published version (v0.3.2)
until v0.3.3 tags are created during the release process. The release
script will create the v0.3.3 tags, then those modules become available.
During development with go.work, local modules are used anyway.
After release and tag push, users can update to v0.3.3.
This fixes the CI build failure.
Generated with [Claude Code](https://claude.com/claude-code)
* feat: add --no-color flag and NO_COLOR env support to about command
Enhanced the 'morphir about --changelog' command with color control:
- Colorful markdown rendering by default using glamour
- --no-color flag to disable colors
- Honors NO_COLOR environment variable (https://no-color.org/)
- Automatic fallback to plain text if rendering fails
Usage:
morphir about --changelog # Colorful (default)
morphir about --changelog --no-color # Plain text
NO_COLOR=1 morphir about --changelog # Plain text via env
Generated with [Claude Code](https://claude.com/claude-code)
* docs: update CHANGELOG with color control details for about command
Added details about colorful markdown rendering by default with
--no-color flag and NO_COLOR environment variable support.
Generated with [Claude Code](https://claude.com/claude-code)
* fix: make build recipes cross-platform for Windows PowerShell support
- Replace bash shebangs with just's os() function
- Detect Windows and use appropriate commands (PowerShell vs bash)
- Ensures morphir.exe extension on Windows
- Fixes 'cygpath executable not found' error in PowerShell
* fix: make additional recipes cross-platform
- Convert run, run-dev, verify, mod-tidy, install-dev to use os() function
- Simplifies conditional logic for PowerShell/bash script execution
- Ensures all user-facing recipes work in Windows PowerShell
* fix: add sync-changelog dependency to CI-related recipes
- Add sync-changelog as dependency to test, lint, verify, fmt-check recipes
- Create test-external recipe for testing builds without go.work
- Update CI workflow to use just test-external instead of inline commands
- Fix formatting in about.go (gofmt alignment)
This ensures CHANGELOG.md is synced before any Go compilation that
needs the embedded file, and allows CI behavior to be tested locally.
Copy file name to clipboardExpand all lines: .beads/issues.jsonl
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,7 @@
1
1
{"id":"morphir-1","title":"Define VEntry and virtual filesystem (VFS) core types","description":"Implement VEntry interface and core entry types (file, folder, document, node, archive) with metadata; add VFS mounts with precedence, shadowing, and RO/RW zones.","status":"tombstone","priority":1,"issue_type":"task","created_at":"2026-01-05T07:23:53.714204329-06:00","created_by":"damian","updated_at":"2026-01-05T07:24:56.26231129-06:00","deleted_at":"2026-01-05T07:24:56.26231129-06:00","deleted_by":"damian","delete_reason":"delete","original_type":"task"}
2
+
{"id":"morphir-648","title":"Fix version embedding in binary - morphir --version shows 'dev' instead of release version","description":"The morphir binary built by GoReleaser doesn't have the version string embedded. Running `morphir --version` shows 'dev' instead of the actual release version (e.g., 'v0.3.2').\n\nRoot cause: .goreleaser.yaml ldflags may not be correctly injecting the version.\n\nImpact: Low priority - cosmetic issue, but affects user experience when checking installed version.\n\nFix: Update .goreleaser.yaml to properly inject version via ldflags.","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-01-05T15:30:53.4044773-06:00","created_by":"Damian Reeves","updated_at":"2026-01-05T15:54:40.5287193-06:00","closed_at":"2026-01-05T15:54:40.5287193-06:00","comments":[{"id":1,"issue_id":"morphir-648","author":"MANDO\\damre","text":"Verified that version embedding works correctly in GoReleaser builds. The issue was confusion between GoReleaser binaries (which DO embed version) and go install binaries (which don't). GoReleaser binaries correctly show version.","created_at":"2026-01-05T21:54:51Z"}]}
3
+
{"id":"morphir-bri","title":"Create platform-specific install scripts (no Go required)","description":"Create installation scripts that download pre-built binaries from GitHub releases without requiring Go to be installed.\n\nRequirements:\n- Support Linux, macOS, and Windows\n- Default to latest release if no version specified\n- Allow installing specific version: `install.sh v0.3.2`\n- Download appropriate binary for platform/architecture\n- Install to standard location (e.g., /usr/local/bin, ~/.local/bin)\n- Verify checksums for security\n- No Go installation required\n\nScripts needed:\n- install.sh (Linux/macOS)\n- install.ps1 (Windows PowerShell)\n\nBenefits:\n- Easier onboarding for users without Go\n- Faster installation (no compilation)\n- Consistent with other CLI tools\n- Works in restricted environments where go install is blocked","status":"closed","priority":1,"issue_type":"feature","created_at":"2026-01-05T15:31:23.5639931-06:00","created_by":"Damian Reeves","updated_at":"2026-01-05T15:55:49.5746976-06:00","closed_at":"2026-01-05T15:55:49.5746976-06:00","comments":[{"id":3,"issue_id":"morphir-bri","author":"MANDO\\damre","text":"Install scripts already exist and work well. Enhanced them to support version parameter. Usage: ./install.sh v0.3.3 or ./install.ps1 v0.3.3","created_at":"2026-01-05T21:55:49Z"}]}
4
+
{"id":"morphir-c1z","title":"Improve release script CI wait logic with polling","description":"The release script checks CI status but doesn't actively wait for completion. If CI is still running, the script shows a warning but may proceed or stop depending on user input.\n\nEnhancement: Add polling loop with timeout to automatically wait for CI to complete before proceeding with release.\n\nBenefits:\n- Reduces manual intervention needed\n- Prevents releases when CI is failing\n- Provides better user experience\n\nImplementation:\n- Poll `gh run list --branch=main --limit=1` every 30 seconds\n- Timeout after 10 minutes\n- Show progress indicators","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-05T15:31:08.7186722-06:00","created_by":"Damian Reeves","updated_at":"2026-01-05T15:55:08.2111142-06:00","closed_at":"2026-01-05T15:55:08.2111142-06:00","comments":[{"id":2,"issue_id":"morphir-c1z","author":"MANDO\\damre","text":"Implemented CI wait logic with 10-minute timeout and 30-second polling interval. Shows progress indicators and prevents releases when CI is still running.","created_at":"2026-01-05T21:55:08Z"}]}
2
5
{"id":"morphir-go-0ij","title":"Implement type/value/pattern BDD features","description":"Create feature files and step definitions for type, value, and pattern IR","status":"closed","priority":2,"issue_type":"feature","created_at":"2026-01-02T09:53:09.644422177-06:00","created_by":"damian","updated_at":"2026-01-02T10:24:58.230594854-06:00","closed_at":"2026-01-02T10:24:58.230594854-06:00","close_reason":"Implemented type decode feature file with V1/V3 Unit, Variable, Record scenarios","dependencies":[{"issue_id":"morphir-go-0ij","depends_on_id":"morphir-go-0w4","type":"blocks","created_at":"2026-01-02T09:53:32.129434012-06:00","created_by":"damian"}]}
3
6
{"id":"morphir-go-0w4","title":"Implement distribution BDD features","description":"Create distribution decode/roundtrip feature files and step definitions","status":"closed","priority":1,"issue_type":"feature","created_at":"2026-01-02T09:53:09.483178948-06:00","created_by":"damian","updated_at":"2026-01-02T10:24:45.713170764-06:00","closed_at":"2026-01-02T10:24:45.713170764-06:00","close_reason":"Implemented distribution decode feature file with V1/V3 scenarios and step definitions","dependencies":[{"issue_id":"morphir-go-0w4","depends_on_id":"morphir-go-pg0","type":"blocks","created_at":"2026-01-02T09:53:31.975895759-06:00","created_by":"damian"}]}
4
7
{"id":"morphir-go-1e2","title":"Workspace Members Support (like Cargo/npm workspaces)","description":"Implement support for workspace members in Morphir configuration, similar to Cargo, npm, or yarn workspaces. A morphir workspace can consist of multiple member projects in subdirectories, declared via globs. Member projects should have a [project] section for project-specific details. Also support classic morphir.json format from finos/morphir-elm for compatibility.","status":"closed","priority":2,"issue_type":"epic","created_at":"2026-01-02T20:02:10.842231252-06:00","created_by":"damian","updated_at":"2026-01-02T21:00:29.335990902-06:00","closed_at":"2026-01-02T21:00:29.335990902-06:00","close_reason":"All subtasks completed. Implemented workspace member support with: morphir.json parser, glob-based discovery with doublestar, ProjectSection config, member loading/resolution, LoadedWorkspace type, and comprehensive BDD tests (18 scenarios). Supports direct paths, globs, recursive patterns, extension filtering (.toml, .json, .{toml,json}), exclude patterns, and morphir-elm compatibility."}
0 commit comments