axodotdev / axodotdev/cargo-dist

dist-manifest 1.0

Open
#843 6 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Rust
Stars
2.1k
Forks
149
Avg merge
1d 11h
Merged PRs (30d)
32

Description

The cargo-dist [dist-manifest.json format](https://opensource.axo.dev/cargo-dist/book/reference/schema.html) is an amalgam of bolted on concepts and features and needs a major cleanup.

## per-machine info

dist-manifest is lacking a proper notion of "per-machine" output info, where things like linkage (what packages you dynamically linked, sdk/libc versions), toolchain-info (compiler version, os version), and unpredictable values (debuginfo, hashes) can be transferred. This info could be consumed by installers (checksums, sysdeps), checkers (complain about dynamic openssl), and receipts (SBOMs, attestation, reproducibility).

Linkage has a partial implementation but it's more "over there" and doesn't really scale.

The totally-global "system_info" subsection is a useless farce because of this.

## remove changelogs

changelogs, like READMEs are a classic example of "arbitrary user input that can get infinitely long and cause serious issues to a metadata system". it should ideally not be contained in the dist-manifest. This raises some questions about where if anywhere oranda should get "clean" changelogs from, but at worst we can just teach it how to "strip" the autogen tables in a github release.

Contributor guide

Open the contributing guide

Research direction

Start with the linked dist-manifest.json format schema and review the existing linkage and global system_info concepts. Map how per-machine linkage, toolchain, and unpredictable values would be represented and consumed by installers, checkers, and receipts. The work is done when the manifest design is cleaned up and changelogs are removed or reliably stripped from release metadata, including the open question around oranda.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
release
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.