Neoland Dependencies
Overviewβ
Neoland currently uses path-based dependencies for several local crates. This document explains the current state and the roadmap for production-ready dependency management.
Current Path Dependenciesβ
The following dependencies are currently referenced via local paths in Cargo.toml:
securellm-core = { path = "../securellm-bridge/crates/core" }
securellm-providers = { path = "../securellm-bridge/crates/providers" }
securellm-security = { path = "../securellm-bridge/crates/security" }
intelagent-core = { path = "../phantom-ray/phantom/intelagent/crates/core" }
hyprland-ipc = { path = "../ai-agent-os/crates/hyprland-ipc" }
Current State (Phase 0)β
| Dependency | Repository | Git Remote | Status |
|---|---|---|---|
| securellm-* | securellm-bridge | β (GitHub/GitLab) | Git repo available |
| intelagent-core | phantom-ray | β | Not a git repository |
| hyprland-ipc | ai-agent-os | β (GitHub) | Git repo available |
Issues with Path Dependenciesβ
-
Build Reproducibility: Path dependencies break reproducible builds because:
- They require a specific directory structure on the build machine
- No version pinning - changes in dependency crates can break builds unexpectedly
- Cannot be cached or shared with remote build systems
-
CI/CD: Path dependencies complicate CI/CD pipelines:
- Requires cloning multiple repositories
- Difficult to manage dependency versions across repos
- No automated dependency update mechanisms
-
Collaboration: Makes it harder for new developers:
- Must clone multiple repositories in specific directory structure
- Unclear which versions of dependencies are compatible
Production Roadmapβ
Phase 0: Foundation (Current)β
- β Document dependency structure
- β Identify blockers (phantom-ray not a git repo)
Phase 1: Git Migration (2-3 weeks)β
-
Convert phantom-ray to git repository
cd /home/kernelcore/arch/phantom-raygit initgit add .git commit -m "Initial commit"git remote add origin <repo-url>git push -u origin main -
Tag releases for all dependencies
- securellm-bridge: Create v0.1.0 tag
- phantom-ray: Create v0.1.0 tag
- ai-agent-os: Create v0.1.0 tag
-
Update Cargo.toml to use git dependencies
# Option A: Git dependenciessecurellm-core = { git = "https://github.com/org/securellm-bridge", tag = "v0.1.0" }intelagent-core = { git = "https://github.com/org/phantom-ray", tag = "v0.1.0" }hyprland-ipc = { git = "https://github.com/org/ai-agent-os", tag = "v0.1.0" }
Phase 2: Private Registry (Optional, 4-6 weeks)β
For better performance and reliability, consider publishing to a private Cargo registry:
- Set up private registry (using Cloudsmith, Artifactory, or self-hosted)
- Publish crates to registry
cargo publish --registry neoland-private
- Update Cargo.toml
securellm-core = { version = "0.1.0", registry = "neoland-private" }
Phase 3: Workspace Alternative (Optional)β
Another approach is to create a Cargo workspace that includes all dependencies:
[workspace]
members = [
"neoland",
"securellm-bridge/crates/core",
"securellm-bridge/crates/providers",
"securellm-bridge/crates/security",
"phantom-ray/phantom/intelagent/crates/core",
"ai-agent-os/crates/hyprland-ipc",
]
This maintains monorepo benefits while keeping repositories separate.
Development Setupβ
Current Requirementsβ
To build Neoland, you must have the following directory structure:
/home/kernelcore/arch/
βββ neoland/ # This repository
βββ securellm-bridge/
β βββ crates/
β βββ core/
β βββ providers/
β βββ security/
βββ phantom-ray/
β βββ phantom/
β βββ intelagent/
β βββ crates/
β βββ core/
βββ ai-agent-os/
βββ crates/
βββ hyprland-ipc/
Cloning All Dependenciesβ
cd /home/kernelcore/arch
# Clone main repository
git clone <neoland-repo-url> neoland
# Clone dependencies
git clone <securellm-bridge-url> securellm-bridge
git clone <ai-agent-os-url> ai-agent-os
# Note: phantom-ray must be cloned manually or converted to git first
Verificationβ
To verify your dependency setup:
cd /home/kernelcore/arch/neoland
cargo check
If you see errors about missing crates, verify:
- All dependency repositories are cloned
- Directory structure matches the paths in Cargo.toml
- Each dependency builds successfully on its own
Referencesβ
- Cargo Book: Specifying Dependencies
- RFC 2906: Cargo Workspaces
- Production Readiness Roadmap - See ADR-012: "Dependency Management Strategy"
Statusβ
Current Status: Path dependencies (temporary for development) Target Status: Git dependencies or private registry Blocker: phantom-ray needs to be converted to a git repository Priority: HIGH (blocks Phase 1: Security Hardening)