Skip to content

feat(release): publish library and CLI independently - #40

Merged
DamianReeves merged 1 commit into
mainfrom
release/separate-library-cli
Oct 27, 2026
Merged

DamianReeves merged 1 commit into
mainfrom
release/separate-library-cli

Conversation

@DamianReeves

Copy link
Copy Markdown
Member

Publish morphir==0.0.1 as the library and SDK with no third-party runtime dependencies or console commands. Restore morphir-python as a CLI-only distribution depending on the library, with version 0.0.2 because the bundled 0.0.1 is already immutable on PyPI. Keep morphir_tools imports and the morphir-python executable.

The root becomes a development workspace; package metadata lives in the two package projects. Package-specific tags select only one OIDC publisher and one GitHub release artifact set: morphir-v0.0.1 for the library and python-v0.0.2 for the CLI. Both PyPI projects trust owner finos, repo morphir-python, workflow release.yml, environment pypi. The environment now permits morphir-v* as well as the existing CLI tag prefix. The README documents the exact setup and release steps.

Qualification enforces complete sources, disjoint namespaces, library dependency/script isolation, a versioned CLI dependency, and tag/version identity. CLI promotion additionally requires the tested library wheel SHA256 to match the already published core wheel. PR CI qualifies both runtime environments and the documented uninstall/reinstall migration from the old bundle; tagged runtime scans follow the selected package. MEP extension-protocol commands and possible WASM tooling remain future CLI responsibilities.

Validation: 2,075 tests, BDD, lint/format, both type checkers including release support code, 98.50% coverage, actionlint, strict wheel/source metadata, isolated library and CLI installs, migration, CVE/license gates all pass locally. Tag/metadata/namespace regressions and missing/different published-core rejection tests pass. The CLI promotion check correctly refuses publication before the library exists on PyPI.

Tracker: morphir-ov51. Publish the library first, then qualify the CLI against that published artifact. Existing published versions and tags remain unchanged.

Publish morphir 0.0.1 as the dependency-free library and SDK. Release morphir-python 0.0.2 as the CLI, depending on the library rather than bundling its files.

Use independent package tags and OIDC publishing jobs. Verify namespace ownership, isolated installs, migration from the old bundle, and the exact published core before CLI promotion.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T14:58:35.286784Z e6021f7 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@DamianReeves
DamianReeves merged commit c5a43a4 into main Oct 27, 2026
5 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e6021f7685

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyproject.toml
Comment on lines 26 to +27
[tool.uv.workspace]
members = ["packages/morphir"]
members = ["packages/morphir", "packages/morphir-tools"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update setup instructions to install the workspace packages

For a fresh checkout, the README's Setup section still runs uv sync --all-groups, but the root is now a virtual project with no dependencies on either workspace member. That command installs the development tools without installing morphir, morphir_tools, or the CLI dependencies, so the subsequent documented checks fail on missing imports. I confirmed this with uv sync --frozen --all-groups --dry-run --offline; neither distribution appears in the install plan. Update Setup to use mise run install or add --all-packages, which uv sync --help describes as “Sync all packages in the workspace.”

Useful? React with 👍 / 👎.

@DamianReeves
DamianReeves deleted the release/separate-library-cli branch October 28, 2026 03:34
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