Skip to content

Releases: narusenia/ordo

v0.1.4

29 Jun 07:33
v0.1.4
4e4ce1c

Choose a tag to compare

Ordo v0.1.4

Install

Script (Linux / macOS):

curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | sh

Cargo:

cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.4

Manual 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 runordo run now accepts --features, --all-features, and --no-default-features, matching ordo build. Previously these flags were only available on ordo 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, its MATHLIB_LOGGING and MATHLIB_SIMD defines are passed to any project that includes mathlib's headers. (#40)
  • dep_name/feature forwarding syntax — Features can forward to dependency features using Cargo-style syntax:
    [features]
    full = ["mathlib/simd", "mathlib/logging"]
    Enabling full on the parent also enables simd and logging on the mathlib dependency. (#40)
  • Path dependency features = [...] — Extra features can be specified directly on path dependencies:
    mathlib = { path = "../../libs/mathlib", features = ["simd"] }
    These features are activated when the dependency is built. (#40)

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

24 Jun 05:02
v0.1.3
ba3864b

Choose a tag to compare

Ordo v0.1.3

Install

Script (Linux / macOS):

curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | sh

Cargo:

cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.3

Manual 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. --profile flag, opt-level, debug, lto, defines, compiler/linker flags. (#29)
  • Feature flags — Cargo-style [features] with dep:name activation, --features, --no-default-features, --all-features. Generates ORDO_FEATURE_* defines. (#30)
  • Dev dependencies[dev-dependencies] section, included only in test builds. Shown in ordo tree with [dev] marker. (#31)
  • Alias & link-namealias field for renaming packages locally, link-name for overriding library names at link time. --alias and --link-name flags in ordo add. (#32)
  • Multi-addordo add accepts 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. Supports cfg(macos), cfg(linux), cfg(windows), cfg(unix), architecture conditions, and not()/all()/any() combinators. (#36)

Full Changelog: v0.1.2...v0.1.3

Pull Requests

v0.1.2

18 Jun 05:22
v0.1.2
e1040bc

Choose a tag to compare

Ordo v0.1.2

Install

Script (Linux / macOS):

curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | sh

Cargo:

cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.2

Manual 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 --style flag, ORDO_CLI_STYLE env var, or [cli] style in Ordo.toml. (#13, #14, #15)
  • Workspace support — Full workspace builds with DAG-ordered member compilation, shared target/ and Ordo.lock at root, -p/--package flag for ordo build and ordo run. (#5, #8, #9, #10)
  • Lua build scriptswith = "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 duplicate Finished lines. (#16, #17, #18)
  • Lock file versionsOrdo.lock now records actual resolved versions from each provider instead of 0.0.0 stubs. 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 update is 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

17 Jun 03:16
v0.1.1
313936e

Choose a tag to compare

Ordo v0.1.1

Install

Script (Linux / macOS):

curl -fsSL https://raw.githubusercontent.com/narusenia/ordo/main/install.sh | sh

Cargo:

cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.1

Manual 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 buildsmylib = { 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 (no src/) skip the build step. Circular dependency detection included. (#1)
  • Dependency caching — Build now generates Ordo.lock and caches resolved dependency info in target/.dep-cache.json. On subsequent builds with unchanged deps, all provider queries (vcpkg install, conan resolve, pkg-config, etc.) are skipped entirely. (#3)
  • --locked flag — Error if Ordo.lock is out of sync with Ordo.toml. Useful for CI.
  • --frozen flag — 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 tree display — Fixed indentation of detail lines (libs, include paths). Tree connector lines () now render in normal color instead of dim. (#4)
  • ordo tree fetch 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 componentsclippy, rustfmt, rust-src now declared in mise.toml. Added fmt, fmt:fix, doc mise tasks.
  • rustfmt applied — Codebase-wide formatting pass.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

16 Jun 20:05
633395a

Choose a tag to compare

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 | sh

Cargo:

cargo install --git https://github.com/narusenia/ordo.git --tag v0.1.0

Manual 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 run

Requirements

  • Ninja build system
  • A C/C++ compiler (Clang, GCC, or MSVC)
  • Optional: vcpkg, Conan 2.x, pkg-config (for dependency providers)