This directory contains practical examples of atom manifests for reference and learning. Each example demonstrates different aspects of dependency management, composition, and packaging in the Eka ecosystem.
You can interact with these examples using the eka CLI tool. To do so:
- Temporarily add an entry pointing to an example in the ekala.toml file in the repository root
- Use
eka resolveto generate lock files - Use
eka addto add new dependencies
Note: Lock expression bootstrapping is still under development, so examples include basic Nix expressions to import lock expressions for evaluation.
This example demonstrates dependency management in Eka, showcasing:
- Package Metadata: Basic atom identification and versioning
- Set Definitions: Named collections of atom repositories with support for multiple mirrors, enabling decentralized atoms (repository identity determined by initialization commit)
- Composition: Using composer atoms that provide well-known APIs (like
atom-nixfor the atom module system) - Atom Dependencies: Dependencies from other atom sets with version constraints
- Direct Dependencies: Various Nix dependency types including:
- Git repositories with branch tracking
- Tarball archives
- Patch files
- Build dependencies with unpacking
The atom re-exports its dependencies, making them available for interaction (e.g., in a Nix REPL).
Files:
atom.toml: The manifest file with detailed comments explaining each sectionatom.lock: Auto-generated lock file (useeka resolveto update)src/mod.nix: Simple atom-nix module that exposes dependencies
More examples demonstrating advanced features, are planned.