• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tari-project / tari / 26628635933
60%

Build:
DEFAULT BRANCH: development
Ran 29 May 2026 10:03AM UTC
Jobs 1
Files 702
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 May 2026 09:08AM UTC coverage: 61.276% (-0.07%) from 61.346%
26628635933

push

github

web-flow
fix(common): make StaticApplicationInfo work for crates.io consumers (#7860)

## Summary

TL;DR for Humans: the StaticApplicationInfo assumes you're in a git
repo, which isnt the case on crates.io, meaning compilation fails. This
PR handles this by reading the version filled in by crates.io in the
CARGO_MANIFEST_DIR Cargo.toml

Fixes `tari_common`'s `StaticApplicationInfo` build helper so that
crates depending on tari/minotari **via crates.io** (rather than as
in-tree workspace members or git pins) actually get a usable
`APP_VERSION_NUMBER`. Today the helper returns `""` for registry
consumers, which downstream gets baked into `consts::APP_VERSION_NUMBER`
and causes `minotari_node` to panic at startup parsing `""` as semver.

This unblocks moving downstream consumers (e.g. tari-ootle) off git pins
onto published crates.io versions.

## Why it's broken on crates.io today

`StaticApplicationInfo::initialize()` calls `find_git_root()`, which
walks up from `CARGO_MANIFEST_DIR` looking for a `.git` directory, then
reads the `Cargo.toml` at that location and pulls the version from
`[workspace.package].version`.

When the helper runs from
`~/.cargo/registry/src/index.crates.io-XXX/<crate>-X.Y.Z/`:

1. **No `.git` anywhere up the registry source tree.** The walk had a
hardcoded 10-iteration cap on `..` joins (not on real ancestors),
bailed, and returned `CARGO_MANIFEST_DIR` — the unpacked crate's own
dir.
2. **The crate's own `Cargo.toml` is the published one.** Cargo strips
workspace inheritance on publish and substitutes literals into
`[package].version`, so `[workspace.package]` doesn't exist in the
published manifest.
3. The helper only read `[workspace.package].version`, so it returned
`""`.
4. That empty string ended up as `consts::APP_VERSION_NUMBER`, and
`minotari_node/src/bootstrap.rs` does
`APP_VERSION_NUMBER.parse::<Version>().expect("Unable to parse
application version. Not valid semver")` → panic on startup.

## Fix

In `common/src/build/applicat... (continued)

53 of 70 new or added lines in 1 file covered. (75.71%)

121 existing lines in 15 files now uncovered.

71797 of 117169 relevant lines covered (61.28%)

223003.53 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
43.09
43.09% common/src/build/application.rs

Coverage Regressions

Lines Coverage ∆ File
70
74.23
-13.81% base_layer/core/src/blocks/genesis_block.rs
12
61.55
-1.39% comms/core/src/connectivity/manager.rs
7
67.76
-3.27% comms/core/src/protocol/messaging/protocol.rs
6
92.14
-1.27% comms/dht/src/outbound/broadcast.rs
4
80.54
-0.83% comms/core/src/noise/socket.rs
4
94.23
-2.56% comms/core/src/protocol/messaging/outbound.rs
3
64.41
-1.27% comms/core/src/connectivity/requester.rs
3
68.84
-1.51% comms/core/src/test_utils/mocks/connectivity_manager.rs
2
85.65
-0.46% base_layer/p2p/src/services/liveness/service.rs
2
43.09
43.09% common/src/build/application.rs
2
80.15
-0.48% comms/core/src/connection_manager/peer_connection.rs
2
81.36
-3.39% comms/core/src/pipeline/outbound.rs
2
83.12
-0.32% comms/core/src/protocol/rpc/client/mod.rs
1
36.36
-9.09% comms/dht/src/outbound/error.rs
1
33.96
-1.89% comms/dht/src/outbound/message.rs
Jobs
ID Job ID Ran Files Coverage
1 26628635933.1 29 May 2026 10:03AM UTC 702
61.28
GitHub Action Run
Source Files on build 26628635933
  • Tree
  • List 702
  • Changed 19
  • Source Changed 1
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26628635933
  • 3241ca91 on github
  • Prev Build on development (#26581360379)
  • Next Build on development (#26636618717)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc