Ship the license and the real version in the doltlite crate - #2559
Conversation
The published crate carried neither its license text nor its engine version. assemble.sh staged LICENSE.md, but the manifest's include list omitted it and license is an SPDX expression rather than license-file, so cargo dropped it from the package -- confirmed absent from the crates.io 0.50.2 tarball. The vendored amalgamation embeds mbedtls, ed25519 and BLAKE3, whose notices live in that file. DOLTLITE_VERSION reaches ordinary builds as a compiler flag from doltlite.mk, never as amalgamation text, so the crate compiled against the placeholder and dolt_version() answered "doltlite-amalgamation". build.rs now defines it from CARGO_PKG_VERSION, which assemble.sh stamps from the release tag. The package smoke test asserts both: LICENSE.md survives into the extracted tarball, and dolt_version() reports the crate's own version. Both assertions fail on the unfixed crate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
DoltLite source coverage
Merged 203 pooled raw profiles from the distributed Linux correctness jobs. Per-file coverage (98 files)
|
|
SummaryCoverage spans the core database workflow, including data queries, error handling, branching, commits, merges, history, and Unix consumer execution. It also exercises release packaging and licensing, version stamping and pairing, rebuild behavior, minimum supported tooling, and edge cases such as missing or mismatched expected versions and failed package retries. Safe to merge — the exercised application and release behaviors are healthy, with no PR-attributable regressions, new failures, or previously flagged failures remaining. Any environmental limitations noted during individual checks do not indicate a merge blocker. Tests run by Ito
Tip Reply with @itoqa to send us feedback on this test run. |
DoltLite performance vs PR base
blobpk details
compositepk details
int details
textpk details
vc details
All relative performance gates passed. |

Fixes #2543.
Two defects in the published
doltlitecrate, both confirmed against the live crates.io 0.50.2 artifact.No license text.
assemble.shstagesLICENSE.mdinto the crate, butCargo.toml'sincludelist omitted it, andlicense = "Apache-2.0"is an SPDX expression rather thanlicense-file, so cargo excluded it from the package. The vendored amalgamation embeds mbedtls, ed25519 and BLAKE3, whose notices live in that file. AddingLICENSE.mdtoincludeships it.No engine version.
DOLTLITE_VERSIONreaches ordinary builds as a-Dflag fromdoltlite.mkand is never baked into the amalgamation text, so the crate compiled against the#ifndeffallback anddolt_version()answered"doltlite-amalgamation".build.rsnow defines it fromCARGO_PKG_VERSION, whichassemble.shstamps from the release tag — so the crate reports the same string as the tag it was published from.Evidence
test-package.shgains both assertions — it packages the crate exactly ascargo publishwould, extracts that tarball, and builds the smoke test against the extracted copy:LICENSE.mddolt_version()must be stamped (not the placeholder), and must equal the crate versionFail-before / pass-after, run locally against a freshly regenerated amalgamation:
ERROR: packaged crate has no LICENSE.mdFAIL: dolt_version is stamped...+FAIL: dolt_version matches the crate versionAlso verified the real-release path rather than only the
0.0.0staging version: assembling at0.50.2produces a tarball containingLICENSE.md, anddolt_version()returns exactlyv0.50.2. Run under cargo 1.68.1, which is the crate's declared MSRV.🤖 Generated with Claude Code