Releases: narusenia/ordo
Releases · narusenia/ordo
v0.1.4
Ordo v0.1.4
Install
Script (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | shCargo:
cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.4Manual download:
| Platform | Binary |
|---|---|
| Linux x86_64 | ordo-linux-x86_64 |
| Linux aarch64 | ordo-linux-aarch64 |
| macOS x86_64 | ordo-macos-x86_64 |
| macOS aarch64 | ordo-macos-aarch64 |
| Windows x86_64 | ordo-windows-x86_64.exe |
What's Changed
Features
- Feature flags in
ordo run—ordo runnow accepts--features,--all-features, and--no-default-features, matchingordo build. Previously these flags were only available onordo build. (#39) - Feature propagation across dependencies — Feature defines from path dependencies and workspace members now propagate to consumer compilations. When mathlib is built with
--all-features, itsMATHLIB_LOGGINGandMATHLIB_SIMDdefines are passed to any project that includes mathlib's headers. (#40) dep_name/featureforwarding syntax — Features can forward to dependency features using Cargo-style syntax:Enabling[features] full = ["mathlib/simd", "mathlib/logging"]
fullon the parent also enablessimdandloggingon themathlibdependency. (#40)- Path dependency
features = [...]— Extra features can be specified directly on path dependencies:These features are activated when the dependency is built. (#40)mathlib = { path = "../../libs/mathlib", features = ["simd"] }
Fixes
- Cached path dep feature defines — When a workspace member was already built and cached, its feature defines were not attached to the
FetchedDep. Consumer compilations now correctly resolve and propagate the dep's feature defines even on cache hits. (#40)
Full Changelog: v0.1.3...v0.1.4
Pull Requests
- feat: add --features/--all-features/--no-default-features to ordo run by @narusenia in #39
- feat: feature propagation for workspace and path dependencies by @narusenia in #40
v0.1.3
Ordo v0.1.3
Install
Script (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | shCargo:
cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.3Manual download:
| Platform | Binary |
|---|---|
| Linux x86_64 | ordo-linux-x86_64 |
| Linux aarch64 | ordo-linux-aarch64 |
| macOS x86_64 | ordo-macos-x86_64 |
| macOS aarch64 | ordo-macos-aarch64 |
| Windows x86_64 | ordo-windows-x86_64.exe |
What's Changed
Features
- Build profiles — Full profile support with
[profile.dev],[profile.release], custom named profiles.--profileflag, opt-level, debug, lto, defines, compiler/linker flags. (#29) - Feature flags — Cargo-style
[features]withdep:nameactivation,--features,--no-default-features,--all-features. GeneratesORDO_FEATURE_*defines. (#30) - Dev dependencies —
[dev-dependencies]section, included only in test builds. Shown inordo treewith[dev]marker. (#31) - Alias & link-name —
aliasfield for renaming packages locally,link-namefor overriding library names at link time.--aliasand--link-nameflags inordo add. (#32) - Multi-add —
ordo addaccepts multiple packages:ordo add raylib fmt glfw -P vcpkg. Partial failure support with summary. (#33) - System-level providers — New passive providers:
brew(macOS),nix,pacman(Arch Linux). Detection-only — verify installed packages and retrieve paths. (#34) - Project-level providers — New active providers:
clib(C library registry),nuget(.NET/C++ packages). Download and install into project directory. (#35) - Platform-conditional dependencies —
[target.'cfg(macos)'.dependencies]syntax. Supportscfg(macos),cfg(linux),cfg(windows),cfg(unix), architecture conditions, andnot()/all()/any()combinators. (#36)
Full Changelog: v0.1.2...v0.1.3
Pull Requests
- feat: full build profile support by @narusenia in #29
- feat: feature flags support by @narusenia in #30
- feat: dev-dependencies support in resolver and tree by @narusenia in #31
- feat: alias and link-name fields for dependencies by @narusenia in #32
- feat: support multiple packages in ordo add by @narusenia in #33
- feat: add system-level providers (brew, nix, pacman) by @narusenia in #34
- feat: add project-level providers (clib, nuget) by @narusenia in #35
- feat: platform-conditional dependencies by @narusenia in #36
v0.1.2
Ordo v0.1.2
Install
Script (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | shCargo:
cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.2Manual download:
| Platform | Binary |
|---|---|
| Linux x86_64 | ordo-linux-x86_64 |
| Linux aarch64 | ordo-linux-aarch64 |
| macOS x86_64 | ordo-macos-x86_64 |
| macOS aarch64 | ordo-macos-aarch64 |
| Windows x86_64 | ordo-windows-x86_64.exe |
What's Changed
Features
- CLI output styles — Three output modes:
default(icons + spinners),minimal(plain text, Ninja passthrough),cargo-like(Cargo-style right-aligned verbs). Configure via--styleflag,ORDO_CLI_STYLEenv var, or[cli] stylein Ordo.toml. (#13, #14, #15) - Workspace support — Full workspace builds with DAG-ordered member compilation, shared
target/andOrdo.lockat root,-p/--packageflag forordo buildandordo run. (#5, #8, #9, #10) - Lua build scripts —
with = "build.lua"for git dependencies enables custom build logic. (#6)
Fixes
- Path dependency caching — Workspace members built via DAG order are cached in
built_deps. No redundant rebuilds when multiple members share a path dependency. Eliminates duplicateFinishedlines. (#16, #17, #18) - Lock file versions —
Ordo.locknow records actual resolved versions from each provider instead of0.0.0stubs. Covers vcpkg, pkg-config, conan, git, and path deps. (#12, #19) - Lock file checksums — Git dependencies now include
checksum = "git:<commit-hash>"for supply chain integrity. (#11, #20) - Resolver lock pinning — Resolver reads pinned versions from
Ordo.lock(like Cargo). Dependency cache freshness check works correctly with non-semver versions.ordo updateis the explicit way to bump. (#21, #22) - Workspace shared deps — Workspace member builds correctly resolve shared dependencies and transitive includes. (#7)
Full Changelog: v0.1.1...v0.1.2
Pull Requests
- feat: workspace support by @narusenia in #5
- feat: Lua build scripts for git dependencies by @narusenia in #6
- fix: workspace member builds fail to resolve shared deps by @narusenia in #7
- feat: add visual separator between workspace member builds by @narusenia in #8
- feat: add -p/--package flag to ordo run for workspace members by @narusenia in #9
- refactor: centralize workspace target/ and Ordo.lock at root by @narusenia in #10
- feat: add CLI style mode foundation (Context + --style flag) by @narusenia in #13
- refactor: introduce trait StyleOutput and migrate all commands by @narusenia in #14
- feat: implement MinimalStyle and CargoLikeStyle output modes by @narusenia in #15
- fix: cache built path dependencies to avoid redundant rebuilds by @narusenia in #18
- fix: populate actual resolved versions in Ordo.lock by @narusenia in #19
- feat: populate checksum field in Ordo.lock for git dependencies by @narusenia in #20
- refactor: resolver pins versions from Ordo.lock by @narusenia in #22
v0.1.1
Ordo v0.1.1
Install
Script (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | shCargo:
cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.1Manual download:
| Platform | Binary |
|---|---|
| Linux x86_64 | ordo-linux-x86_64 |
| Linux aarch64 | ordo-linux-aarch64 |
| macOS x86_64 | ordo-macos-x86_64 |
| macOS aarch64 | ordo-macos-aarch64 |
| Windows x86_64 | ordo-windows-x86_64.exe |
What's Changed
Repository
- Migrated from Codeberg to GitHub as the primary repository.
Features
- Path dependency builds —
mylib = { path = "./mylib" }now fully works. Path deps are recursively built, with include paths and library artifacts automatically passed to the parent build. Header-only deps (nosrc/) skip the build step. Circular dependency detection included. (#1) - Dependency caching — Build now generates
Ordo.lockand caches resolved dependency info intarget/.dep-cache.json. On subsequent builds with unchanged deps, all provider queries (vcpkg install, conan resolve, pkg-config, etc.) are skipped entirely. (#3) --lockedflag — Error ifOrdo.lockis out of sync withOrdo.toml. Useful for CI.--frozenflag — Disallow network access; require existing dependency cache.ordo add --no-verify— Add a dependency without contacting the provider. Useful for offline use. (#2)- Cache hit feedback — Shows
✔ Resolved N dependencies (cached)when deps are loaded from cache.
Fixes
- vcpkg resolve spinner — vcpkg resolve/fetch in build now shows a spinner instead of blocking silently. (#4)
ordo treedisplay — Fixed indentation of detail lines (libs, include paths). Tree connector lines (│) now render in normal color instead of dim. (#4)ordo treefetch spinner — Added spinner during dependency info fetching.
CI / Infra
- CI parallelization — Split CI into 4 parallel jobs:
rustfmt,clippy,test(ubuntu + macOS),rustdoc. Added concurrency groups,RUSTFLAGS: -D warnings, and a summary gate job. - mise-managed Rust components —
clippy,rustfmt,rust-srcnow declared inmise.toml. Addedfmt,fmt:fix,docmise tasks. - rustfmt applied — Codebase-wide formatting pass.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Ordo v0.1.0
A modern project orchestrator for C and C++ with a Cargo-like developer experience.
Install
Script (Linux / macOS):
curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | shCargo:
cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.0Manual download:
| Platform | Binary |
|---|---|
| Linux x86_64 | ordo-linux-x86_64 |
| Linux aarch64 | ordo-linux-aarch64 |
| macOS x86_64 | ordo-macos-x86_64 |
| macOS aarch64 | ordo-macos-aarch64 |
| Windows x86_64 | ordo-windows-x86_64.exe |
Highlights
- Project scaffolding — `ordo new`, `ordo init` with interactive mode
- Build system — Ninja-based build with automatic compiler detection (Clang, GCC, MSVC), C/C++ source separation, progress display
- Dependency management — 5 provider backends:
- vcpkg — auto-bootstrap, batch install, version pinning with `overrides`
- Conan — PkgConfigDeps generator, auto profile detection
- pkg-config — system library discovery
- system — direct `-l` linking
- git — clone + cache with `git:user/repo@tag` shorthand
- CLI commands — `ordo add`, `ordo update`, `ordo tree`, `ordo build`, `ordo run`, `ordo clean`
- Rich terminal UI — spinners with streaming detail lines, colored progress, interactive prompts
- macOS framework linking — automatic `-framework` flag extraction from `.pc` files
Quick Start
ordo new myapp
cd myapp
ordo add vcpkg:fmt@11.2.0
ordo build
ordo runRequirements
- Ninja build system
- A C/C++ compiler (Clang, GCC, or MSVC)
- Optional: vcpkg, Conan 2.x, pkg-config (for dependency providers)