Expand description
§cargo-dist-schema
This crate exists to serialize and deserialize the dist-manifest.json produced by dist. Ideally it should be reasonably forward and backward compatible with different versions of this format.
The root type of the schema is DistManifest.
Re-exports§
pub use target_lexicon;
Modules§
- macros
- Internal macros for cargo-dist
Macros§
- declare_
strongly_ typed_ string - Motivation
Structs§
- AptPackage
Name - An APT package name, cf. https://en.wikipedia.org/wiki/APT_(software)
- AptPackage
Name Ref - An APT package name, cf. https://en.wikipedia.org/wiki/APT_(software)
- Artifact
- A distributable artifact that’s part of a Release
- Artifact
Id - The unique ID of an Artifact
- Artifact
IdRef - The unique ID of an Artifact
- Asset
- An asset contained in an artifact (executable, license, etc.)
- Asset
Info - Info about an Asset (binary)
- Checksum
Extension - A lowercase descriptor for a checksum algorithm, like “sha256” or “blake2b”.
- Checksum
Extension Ref - A lowercase descriptor for a checksum algorithm, like “sha256” or “blake2b”.
- Checksum
Value - A checksum value, usually the lower-cased hex string of the checksum
- Checksum
Value Ref - A checksum value, usually the lower-cased hex string of the checksum
- Chocolatey
Package Name - A chocolatey package name, cf. https://community.chocolatey.org/packages
- Chocolatey
Package Name Ref - A chocolatey package name, cf. https://community.chocolatey.org/packages
- CiInfo
- CI backend info
- Container
Config - GitHub config that’s common between different kinds of jobs (global, local)
- Container
Config Input - GitHub config that’s common between different kinds of jobs (global, local)
- Container
Image - A container image, like
quay.io/pypa/manylinux_2_28_x86_64 - Container
Image Ref - A container image, like
quay.io/pypa/manylinux_2_28_x86_64 - Dash
Script - A bit of shell script (that can run with
/bin/sh), ran on CI runners. Can be multi-line. - Dash
Script Ref - A bit of shell script (that can run with
/bin/sh), ran on CI runners. Can be multi-line. - Dist
Manifest - A report of the releases and artifacts that dist generated
- Dynamic
Library Asset - A C dynamic library artifact (so/dylib/dll)
- Environment
Variables - Release-specific environment variables
- Executable
Asset - An executable artifact (exe/binary)
- Github
Attestations Filters - Used to capture GitHub Attestations filters
- Github
CiInfo - Github CI backend
- Github
Global JobConfig - Used in
github/release.yml.j2to template out “global” build jobs (plan, global assets, announce, etc) - Github
Hosting - Github Hosting
- Github
Local JobConfig - Used in
github/release.yml.j2to template out “local” build jobs - Github
Matrix - Github CI Matrix
- Github
Runner - The name of a Github Actions Runner, like
ubuntu-22.04ormacos-13 - Github
Runner Config - GitHub config that’s common between different kinds of jobs (global, local)
- Github
Runner Config Input - The version of
GithubRunnerConfigthat’s deserialized from the config file: it has optional fields that are computed later. - Github
Runner Ref - The name of a Github Actions Runner, like
ubuntu-22.04ormacos-13 - Glibc
Version - Minimum glibc version required to run software
- Homebrew
Package Name - A homebrew package name, cf. https://formulae.brew.sh/
- Homebrew
Package Name Ref - A homebrew package name, cf. https://formulae.brew.sh/
- Hosting
- Possible hosting providers
- Library
- Represents a dynamic library located somewhere on the system
- Linkage
- Information about dynamic libraries used by a binary
- Package
Install Script - A bit of shell script to install brew/apt/chocolatey/etc. packages
- Package
Install Script Ref - A bit of shell script to install brew/apt/chocolatey/etc. packages
- Package
Version - A package version
- Package
Version Ref - A package version
- PipPackage
Name - A pip package name
- PipPackage
Name Ref - A pip package name
- Powershell
Script - A bit of powershell script, ran on CI runners. Can be multi-line.
- Powershell
Script Ref - A bit of powershell script, ran on CI runners. Can be multi-line.
- Release
- A Release of an Application
- Static
Library Asset - A C static library artifact (a/lib)
- System
Info - Info about a system used to build this announcement.
- Triple
Name - A rustc-like target triple/tuple (e.g. “x86_64-pc-windows-msvc”)
- Triple
Name Ref - A rustc-like target triple/tuple (e.g. “x86_64-pc-windows-msvc”)
- Version
Info - Info about a manifest version
Enums§
- Artifact
Kind - A kind of Artifact
- Asset
Kind - An artifact included in a Distributable
- Build
Environment - Information about the build environment on this system
- Format
- More coarse-grained version info, indicating periods when significant changes were made
- GhaRun
Step - A GitHub Actions “run” step, either bash or powershell
- Github
Attestations Phase - Phase in which to generate GitHub attestations
- Package
Manager - Represents the package manager a library was installed by
- PrRun
Mode - Type of job to run on pull request
- String
Like Or - A value or just a string
Constants§
- DIST_
EPOCH_ 1_ MAX - The first epoch of cargo-dist, after this version a bunch of things changed and we don’t support that design anymore!
- DIST_
EPOCH_ 2_ MAX - Second epoch of cargo-dist, after this we stopped putting versions in artifact ids. This changes the download URL, but everything else works the same.
- SELF_
VERSION - The current version of cargo-dist-schema
Functions§
- check_
version - Take serialized json and minimally parse out version info
- format_
of_ version - Get the format for a given version
Type Aliases§
- AssetId
- The unique ID of an Asset
- Github
Runners - Github runners configuration (which github image/container should be used to build which target).
- Local
Path - A local system path on the machine dist was run.
- RelPath
- A relative path inside an artifact
- Sorted
Set - A sorted set of values
- System
Id - The unique ID of a System