Odyn, reproducible vendoring tool for Odin (v0.1.0)

Hey! I built a vendoring tool for Odin called Odyn.

The pitch is simple: odyn get user/repo clones a dependency into odyn_deps/ and pins the exact commit in Odyn.lock. odyn sync reproduces that exact state on any machine. It doesn’t have a registry or solver, so it’s not a “package manager” in the traditional sense.

odyn init myproject
cd myproject

odyn get odin-community/math
odyn sync

odyn init scaffolds your project and generates ols.json with the deps: collection.

Commands: init, get, sync, status, update, remove

Platforms: Linux (x86_64, aarch64, i686, RISC-V, musl), Windows (x86_64, i686), FreeBSD (x86_64, i686). macOS coming in 0.2.0.

Repo: razkar/odyn: Not a package manager for Odin. Odyn is a reproducible vendoring tool for the Odin programming language that can be replicated with Git and a man with a spreadsheet. Dependency manager maybe. - Codeberg.org

It’s a 0.1.0 so it’s early, but the core workflow is solid and tested. Would love feedback from people who actually use Odin day to day!

1 Like

i opened the codeberg page, noticed the word “cargo” and immediately closed the tab.

veni, vidi, cessi. :grin:

p.s.
just use git submodules.

1 Like

Fair enough, Odyn is essentially git clone + a lockfile under the hood. If you’re happy with submodules you’re already doing the same thing, just manually.

what do you mean by “manually”? your tool imitates the functionality of git submodules and adds complexity by using an unnecessary collection as a crutch.

The collection just maps deps: to odyn_deps/ in ols.json so the language server knows where to look, a QoL decision. As for submodules, yes, it’s similar, except odyn sync works without knowing submodule science.

what “science”?

cd myproject
git submodule add <package-url>

the new package is ready to use and ols works. its version is locked and the commit id is stored in the git index of your project.

git clone --recurse-submodules <project-url>

is all you need to clone your project and restore all dependencies later.

your tool is a bad idea, it imitates and obscures git functionality and adds unnecessary complexity. it also goes against odin’s philosophy (Package Managers are Evil - gingerBill).

…and, seriously, the fact that this is coded in rust instead of odin just reinforces my feeling that i’m wasting my time here anyway.

From Bill’s article you linked:

‘Copying and vendoring each package manually, and fixing the specific versions down is the most practical approach.’

That’s literally what Odyn automates, nothing more.

now you’re just resorting to trolling. the reference to the philosophy wasn’t the main point of my last post and you are taking a single, selective sentence out of context, twisting its meaning and using it as an “argument from authority”, a logical fallacy. i am not playing that game- i’m outta here.