The Future
A checklist of thoughts for the future of Odyn.
Changes
-
get:--commit -
get:--depth -
get:-- ...where...gets sourced togit clone -
get:sync-ing inside dependencies ifOdyn.lockexists inside it- fights the philosophy, so probs not... an alternative is a warning log when a
getted dep has a lockfile.
- fights the philosophy, so probs not... an alternative is a warning log when a
- fixing possible bugs
- adding bugs
-
update-self:--pre-releasequeries the latest release of Odyn regardless of stability -
update-self:--nightlyqueries the latest commit of Odyn
Additions
-
run: resolves toodin run src -collections:deps=odyn_depswheresrccould be.depending if it exists or not-
run: needs odin compiler though?
-
-
init:--migrate, adds anols.jsonentry fordeps, an emptyOdyn.lock, and an emptyodyn_deps/directory in an existing project. -
--version: why haven't this been added??? (update: it's added)-
--version: (optionally) platform-specific, (and maybe) install-method-specific message
-
-
install: clones a provided repository andodin build .(or smartly chooses a directory with an.odinfile), and puts the binary inside~/.odyn/binwhich prompted to be put inPATH.-
install --bin: fetches any pre-built binaries on the provided repository and installs that directly - needs odin compiler
-
-
search: Searches Odin packages from a "list of lists," configurable list databases. Still needs to manually install though-
odyn-*apps: specialodyn-applist (solely maintained by me, hosted on a repo for passive on-network updates) insearch, getting special treatment in Odyn, maybe anappcommand as its interface
-
Soon
- caching (less accurate term, i think it's a memo?), storing metadata of
getand duplicating local paths instead of cloning when metadata matches- more details, the
get-ted repos are automatically logged in a mini database (in~/.odyn/memo) with metadatas such as the repo name, commit hash, local directory path, all data needed for Odyn to know exactly what to clone - then, when
getgets called, it searches the log and if it finds a match, it searches for the local directory path, validates it, and then clones the directory instead of usinggit clone. - this makes
getting often used repos uses local I/O speed instead of network + I/O speed, which is generally, significantly faster. - alternatively, instead of storing local paths (which is weak and hard to validate), we can clone the repos directly in something like
~/.odyn/cache/*. the pros and cons are very visible.
- more details, the
Probably
-
odin [--version]: installs the odin compiler on your machine (probably not?)