Skip to content

build: use placeholder version for semantic-release#204

Merged
arbrandes merged 3 commits intoopenedx:mainfrom
arbrandes:placeholder-version
Mar 26, 2026
Merged

build: use placeholder version for semantic-release#204
arbrandes merged 3 commits intoopenedx:mainfrom
arbrandes:placeholder-version

Conversation

@arbrandes
Copy link
Copy Markdown
Contributor

Description

Now that semantic-release manages versioning, the version in package.json is no longer manually maintained. This sets it to 0.0.0-dev to make that explicit.

The CLI's version display is also updated to detect the placeholder: when it matches 0.0.0-*, the short git hash is appended in parentheses (e.g., 0.0.0-dev (3a1b2c4)) so the exact checkout is identifiable. For published packages, the real version set by semantic-release is shown as before.

LLM usage notice

Built with assistance from Claude models (mostly Opus 4.6).

arbrandes and others added 2 commits March 25, 2026 18:36
semantic-release manages the version at publish time, so the version
in package.json is not manually maintained. Use 1.999.0 as a
placeholder that satisfies any ^1.X.Y range in workspace consumers
without a prerelease suffix (which would break semver matching).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When the package.json version is the semantic-release placeholder
(0.0.0-dev), the CLI now appends the short git hash in parentheses so
the exact checkout is identifiable.  For published packages, the real
version set by semantic-release is shown as before.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@brian-smith-tcril brian-smith-tcril left a comment

Choose a reason for hiding this comment

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

One small comment with a question but LGTM!

Comment on lines +21 to +24
const candidates = [
path.resolve(__dirname, '../../package.json'),
path.resolve(__dirname, '../../../package.json'),
];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I know we had the "it could be in ../../ or ../../../ logic before this, but it's not fully clear to me why. Not blocking, just curious/looking for possible ways to simplify this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good instincts. This was only necessary before the move to publishing everything under dist/. Now we only need the one path. 👍🏼

The compiled CLI always lives at dist/tools/cli/openedx.js, now, so the
package root is always exactly three levels up.  The previous
candidate-list approach included a two-level path that could never
match once we adopted this layout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@arbrandes arbrandes merged commit 5387ffc into openedx:main Mar 26, 2026
5 checks passed
@arbrandes arbrandes deleted the placeholder-version branch March 26, 2026 18:54
@openedx-semantic-release-bot
Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0-alpha.17 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants