Skip to content

mix_package

Synthetic vendored package generated from a locked Mix dependency graph.

Description

mix_package is emitted by mix_dependencies; it is not intended for manual declaration. Each target represents one Mix application and carries the exact version, source identity, checksums, repository, and Git revision available in mix.lock.

The target runs the compiler pipeline registered by the vendored Mix project. Dependency bytecode paths are declared inputs, Hex runs in offline mode, and the package writes its application bytecode into a target-owned build directory. Private application files are copied into a separate declared output.

Only the Mix build manager is accepted today. A Rebar manager, Make manager, or custom dependency compile command fails before actions are declared. This prevents Once from silently compiling a package with the wrong semantics.

Resolver-Owned Attributes

AttributeTypeMeaning
_mix_lockedboolProves the target was generated with locked identity data
_mix_package_namestringHex registry package name
_mix_sourcestringStable Hex or Git source identity
_mix_checksumstringHex package checksum
_mix_outer_checksumstringHex registry checksum
_mix_revisionstringLocked Git revision
_mix_repositorystringHex repository or Git repository identity
_mix_managerslist<string>Build managers reported by Mix and the lockfile
_mix_custom_compileboolWhether the dependency overrides its compile command
_mix_source_rootstringPackage-relative vendored source root
_mix_manifeststringRoot Mix manifest used during resolution
_mix_lockfilestringRoot authoritative lockfile

The target also receives the application metadata attributes shared with elixir_library, including app_name, version, and mix_env.

Dependency Edges

EdgeAcceptsDescription
depselixir_appLocked package dependencies reported by Mix

Providers

The target emits elixir_app.

Provider Record

FieldTypeMeaning
app_namestringMix application name
package_namestringRegistry package name
versionstringLocked package version or Git revision
sourcestringStable locked source identity
checksumstringHex package checksum when present
outer_checksumstringHex registry checksum when present
revisionstringGit revision when present
repositorystringHex repository or Git repository
managerslist<string>Native build manager metadata
ebin_dirstringCompiled application bytecode directory
priv_dirstringPrivate application output directory
transitive_elixir_appslist<record>This package plus reachable package applications
transitive_sourceslist<string>Vendored sources for this package and its dependencies

Capabilities

CapabilityOutput groups
buildbytecode

Sources

Released under an open-source license.