Skip to content

Set every module's version to 0.1.0 for the 0.1.0 tag (#65) - #146

Merged
alaineid merged 1 commit into
mainfrom
release-0.1.0-version
Oct 6, 2026
Merged

alaineid merged 1 commit into
mainfrom
release-0.1.0-version

Conversation

@alaineid

@alaineid alaineid commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Refs #65.

Sets the five module version strings to 0.1.0, so a build of the 0.1.0 tag reports its own version. On main all five say 0.1.0-dev, and a fresh package built from a local 0.1.0 tag printed OpenJevCore 0.1.0-dev.

This PR must merge before the 0.1.0 tag. Tag its merge commit instead of #145's. #145's post-merge steps already allow for this ("once the version PR has merged too, tagging its commit instead"). The two PRs touch no file in common.

Files changed

  • Sources/OpenJevCore/Version.swift, Sources/OpenJevDiffusionGemma/Version.swift, Sources/OpenJevEncoders/Version.swift, Sources/OpenJevLetterReadout/Version.swift, Sources/OpenJevServer/Version.swift: "0.1.0-dev" becomes "0.1.0". The doc comment's second sentence ("The -dev suffix marks unreleased work toward 0.1.0.") now states the rule, in the same words in all five files: the release's version at its tag, and the next release's version with a -dev suffix between releases (docs/development.md, "Versioning and releases", the section Prepare release 0.1.0: versioning policy, changelog, security notes, Swift Package Index settings, code owners, issue templates, adopters and release notes (#65) #145 adds).
  • Tests/OpenJevCoreTests/VersionTests.swift:6, Tests/OpenJevServerTests/VersionTests.swift:6, Tests/OpenJevDiffusionGemmaTests/VersionTests.swift:6, Tests/OpenJevEncodersTests/EncoderPackageSpecTests.swift:220: expect "0.1.0".
  • Tests/OpenJevCLITests/ArgumentParsingTests.swift:170, Tests/OpenJevCLITests/BinaryTests.swift:20: expect "0.1.0\n", what openjev --version prints (it prints openJevCoreVersion).

Other 0.1.0-dev in the repository

A search of all 663 tracked files, with lines joined and comment markers dropped so a string split across lines still matches, found 27 occurrences: the 11 above and 16 run records, which this PR leaves as written because they say which build produced published numbers.

  • 12 JevBench result files, "version": "0.1.0-dev" next to the run's commit (31ef11f, c77cca9 or 2414408). Tools/jevbench/servers.py:150 records openjev --version there:
    • Tools/jevbench/results/: jevk5-0.2-swift.json, laya-1.0-swift.json, openjev-0.1-swift.json, verdict-1.4-swift.json
    • Tools/jevbench/results/typesafe102/: the same four files
    • Tools/jevbench/results/jevk5-conversions/{4bit,bf16}/ and their typesafe102/: jevk5-0.2-swift.json
  • docs/quality.md:358, :359, :361, :363, the "Machines and versions" table: "OpenJevSwift 0.1.0-dev at" the same commits.

#145's branch has the same 27 and no others.

Tests

Run on f71d1b0 with Swift 6.4 on macOS 27.0.1, Apple M3 Max.

$ swift build
Build complete! (101.79 secs.)

No warnings in Sources, Tests or Package.swift: of the log's 77, 76 are in .build/checkouts and one is Swift Build's note about MLX's bundle.

$ make lint
swift format lint --strict --recursive --parallel Package.swift Sources Tests

Exit 0, no findings.

$ OPENJEV_MLX_CACHE_LIMIT_GB=4 swift test --filter 'VersionTests|EncoderPackageSpecTests|ArgumentParsingTests|BinaryTests'
✔ Test "OpenJevServer reports the package version" passed after 0.001 seconds.
✔ Test run with 1 test in 0 suites passed after 0.001 seconds.
✔ Test "The module reports the package version" passed after 0.001 seconds.
✔ Test run with 10 tests in 1 suite passed after 0.001 seconds.
✔ Test "OpenJevDiffusionGemma reports the package version" passed after 0.001 seconds.
✔ Test run with 1 test in 0 suites passed after 0.001 seconds.
✔ Test "OpenJevCore reports the package version" passed after 0.001 seconds.
✔ Test run with 1 test in 0 suites passed after 0.001 seconds.
✔ Test "The root prints its help, its subcommands and the version" passed after 0.008 seconds.
✔ Test "--version prints the package version and exits 0" passed after 1.041 seconds.
✔ Test run with 13 tests in 2 suites passed after 1.270 seconds.

The block is an excerpt: the six changed tests and each product's summary. Exit 0, 26 tests in five products. openJevLetterReadoutVersion has no test of its own, before or after this PR.

$ .build/debug/openjev --version
0.1.0

The full suite, which on this Mac also runs the DiffusionGemma model tests from the Hugging Face cache:

$ OPENJEV_MLX_CACHE_LIMIT_GB=4 swift test
✔ Test run with 139 tests in 14 suites passed after 1.416 seconds.
✔ Test run with 28 tests in 3 suites passed after 0.326 seconds.
✔ Test run with 32 tests in 6 suites passed after 0.312 seconds.
✔ Test run with 97 tests in 16 suites passed after 171.060 seconds.
✔ Test run with 231 tests in 37 suites passed after 535.068 seconds.
✔ Test run with 261 tests in 35 suites passed after 5.891 seconds.
✔ Test run with 42 tests in 5 suites passed after 6.922 seconds.
✔ Test run with 10 tests in 1 suite passed after 0.107 seconds.

Exit 0 after 729 s, 840 tests and no failures. In order, the runs are OpenJevServerTests, OpenJevLiveTests, OpenJevLetterReadoutTests, OpenJevEncodersTests, OpenJevDiffusionGemmaTests, OpenJevCoreTests, OpenJevCLITests and OpenJevBenchTests. The skips are the opt-in tests: 16 need OPENJEV_LIVE_URL, 13 need the Upstream/openjev checkout (make upstream), 4 need OPENJEV_JEVK5_MODEL, 2 need OPENJEV_TEST_DOWNLOAD and 1 needs a stage dump.

After the tag

A follow-up PR should move the five strings and the six tests to the next -dev version, 0.1.1-dev or 0.2.0-dev (your choice), as the "Version strings" rule in docs/development.md says.

The five Version.swift constants say "0.1.0" instead of "0.1.0-dev", so a build of the 0.1.0
tag reports its own version (`openjev --version` prints openJevCoreVersion). Their doc comment
now states the rule from docs/development.md, "Versioning and releases": the release's version
at its tag, and the next release's version with a `-dev` suffix between releases. The six tests
that pinned "0.1.0-dev" expect "0.1.0".
Copilot AI balanced review requested due to automatic review settings October 6, 2026 18:45

Copilot AI left a comment

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.

Copilot review overview

🟡 Changes recommended

The LetterReadout version remains the only changed module version without direct regression coverage.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Updates all module and CLI version reporting to 0.1.0 for the release tag.

Changes:

  • Sets five module versions to 0.1.0.
  • Updates existing version assertions and CLI expectations.
  • Documents the release/development version convention.
File Description
Sources/​OpenJevCore/​Version.swift Updates Core version.
Sources/​OpenJevDiffusionGemma/​Version.swift Updates DiffusionGemma version.
Sources/​OpenJevEncoders/​Version.swift Updates Encoders version.
Sources/​OpenJevLetterReadout/​Version.swift Updates LetterReadout version.
Sources/​OpenJevServer/​Version.swift Updates Server version.
Tests/​OpenJevCoreTests/​VersionTests.swift Expects the release version.
Tests/​OpenJevDiffusionGemmaTests/​VersionTests.swift Expects the release version.
Tests/​OpenJevEncodersTests/​EncoderPackageSpecTests.swift Expects the release version.
Tests/​OpenJevServerTests/​VersionTests.swift Expects the release version.
Tests/​OpenJevCLITests/​ArgumentParsingTests.swift Updates parsed CLI version expectation.
Tests/​OpenJevCLITests/​BinaryTests.swift Updates binary output expectation.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

/// Every OpenJevSwift module reports the same Semantic Versioning string: the release's version at
/// its tag, and the next release's version with a `-dev` suffix between releases
/// (docs/development.md, "Versioning and releases").
public let openJevLetterReadoutVersion = "0.1.0"
@alaineid
alaineid merged commit ce8d549 into main Oct 6, 2026
8 checks passed
@alaineid
alaineid deleted the release-0.1.0-version branch October 6, 2026 19:00
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.

2 participants