Repository navigation
1.0.3, one version everywhere; CI and tag-driven release; bump script - #3
Merged
Merged
Conversation
…; a wheel that builds from a plain checkout Versions: datalayer_decks/__version__.py is the one source (hatch reads it; the CLI and extension manifests import it), the three package.json files are copies, and dev/bump_version.py (make bump-patch|minor|major) moves all four or none. Aligned on 1.0.3, above every published number (npm @datalayer/decks 1.0.2, decks-plugin-ai-agents 1.0.1; PyPI has no datalayer-decks yet). ci.yaml builds and tests both halves on push and pull request; release.yaml publishes on a v* tag through trusted publishing (environments pypi and npm): the wheel and sdist of datalayer-decks, @datalayer/decks and @datalayer/decks-plugin-ai-agents. Both check the reactor out beside the repository at REACTOR_REF, the layout the TypeScript configuration resolves @datalayer/reactor from. RELEASE.md documents it. What a plain checkout lacked and the workspace hoisted, found by building from clean exports: @types/node (the typecheck covers src/__tests__); a process shim, stream, assert and prettier 3's estree plugin reachable from the plugin's own node_modules (absolute aliases in app/rsbuild.config.ts, the primer-addons checkout alias now conditional on the checkout being there); the federation entry named remoteEntry.js as extension.py expects (@module-federation/rsbuild-plugin 2.x hashes it by default); and the built share/ halves declared as hatch artifacts, without which the git-ignored files were left out of the wheel's shared-data. repository and publishConfig on the two published package.json files, for npm provenance.
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical and moderate unresolved findings affect clean builds, release safety, and version consistency.
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
This PR centralizes versioning at 1.0.3, improves frontend packaging, and adds CI plus trusted publishing workflows.
Changes:
- Adds synchronized Python/npm version metadata and bump tooling.
- Adds CI and tag-driven PyPI/npm releases.
- Fixes federation builds and wheel artifact inclusion.
- Documents the release process.
| File | Reviewed change | Final review finding |
|---|---|---|
RELEASE.md |
Documents release and trusted publishing. | No finding. |
pyproject.toml |
Enables dynamic versioning and packaged assets. | No finding. |
plugins/ai-agents/package.json |
Updates plugin metadata and version. | No finding. |
package.json |
Updates npm metadata and dependencies. | Moderate: Runtime plugin manifest still hard-codes version 1.0.0 (1 vote). |
Makefile |
Adds version bump commands. | No finding. |
extension/rsbuild.config.ts |
Names the federation entry file. | No finding. |
dev/bump_version.py |
Synchronizes version files. | Moderate: Writes are not atomic or all-or-none (1 vote); runtime manifests are omitted (1 vote). |
datalayer_decks/extension.py |
Uses the centralized extension version. | No finding. |
datalayer_decks/cli.py |
Uses the centralized CLI version. | No finding. |
datalayer_decks/__version__.py |
Defines the canonical version. | No finding. |
datalayer_decks/__init__.py |
Exports the version. | No finding. |
app/rsbuild.config.ts |
Adds build aliases and conditional paths. | No finding. |
app/package.json |
Adds browser shims and dependencies. | Critical: Clean wheel builds do not install app dependencies before invoking the app build (1 vote). |
.gitignore |
Ignores release outputs. | No finding. |
.github/workflows/release.yaml |
Publishes tagged packages. | Moderate: Cancelled publishing jobs can still permit the release job to run (4 votes). |
.github/workflows/ci.yaml |
Adds CI for Python and TypeScript components. | No finding. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+34
to
+37
| "assert": "^2.1.0", | ||
| "prettier": "^3.3.0", | ||
| "process": "^0.11.10", | ||
| "stream-browserify": "^3.0.0", |
| release: | ||
| name: GitHub release | ||
| needs: [build, pypi, npm] | ||
| if: always() && needs.build.result == 'success' && needs.pypi.result != 'failure' && needs.npm.result != 'failure' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


datalayer_decks/__version__.pyis the one source (hatch reads it; the CLI and extension manifests import it), the threepackage.jsonfiles are copies, anddev/bump_version.py(make bump-patch|minor|major, like jupyter-mcp-server's) moves all four or none. Aligned on 1.0.3, above every published number (npm@datalayer/decks1.0.2,@datalayer/decks-plugin-ai-agents1.0.1; PyPI has nodatalayer-decksyet).ci.yamlbuilds and tests both halves on push and pull request.release.yamlpublishes on av*tag through trusted publishing (environmentspypiandnpm): the wheel and sdist ofdatalayer-decks,@datalayer/decksand@datalayer/decks-plugin-ai-agents. Both check the reactor out beside the repository atREACTOR_REF(v1.0.4), the layout the TypeScript configuration resolves@datalayer/reactorfrom.RELEASE.mddocuments the flow and the trusted-publisher settings.@types/node; aprocessshim,stream,assertand prettier 3's estree plugin reachable from the plugin's own node_modules (absolute aliases inapp/rsbuild.config.ts; the primer-addons checkout alias is now conditional on the checkout being there); the federation entry namedremoteEntry.jsasextension.pyexpects (@module-federation/rsbuild-plugin2.x hashes it by default); the builtshare/halves declared as hatch artifacts, without which the git-ignored files were left out of the wheel.repositoryandpublishConfigon the two publishedpackage.jsonfiles, for npm provenance.Packages to register for trusted publishing (owner
datalayer, repositorydecks, workflowrelease.yaml):datalayer-decks(new project: pending publisher)pypi@datalayer/decksnpm@datalayer/decks-plugin-ai-agentsnpmTag
v1.0.3after merge.