Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Warning

Waldo is not required for Roblox development. Wally is the package manager and it works perfectly well on its own. Waldo is simply just a convenience over the top of it.

Waldo never installs packages. waldo add edits wally.toml and stops, so run wally install yourself, or let whatever build step you already have do it for you.

This exists for people who "can't be asked" to hand-edit wally.toml every time they want a package. That is the whole pitch.

🧣 Waldo

Waldo is the add command Wally does not have.

What it does

waldo add resolves the latest compatible version, writes it into the right section of wally.toml, and stops.

$ waldo add sleitnick/trove
added Trove = "sleitnick/trove@1.8.0" to [dependencies]
run `wally install` to fetch it

Ask for a version and Waldo writes what you typed. waldo add roblox/roact@1.4.4 is a compatible range and not a pin, because that is what the syntax means to Wally. Waldo inherits that rather than inventing around it.

waldo remove roblox/roact is the way back out. waldo list shows what is in there already.

Installation

Rokit is the shortest way in. It asks you to trust the tool the first time and remembers the answer.

$ rokit add morgann1/waldo

Prebuilt archives for Windows, macOS and Linux hang off every release. Unzip one and put waldo on your PATH.

Building it yourself needs Rust 1.85 or newer, because the crate is on edition 2024.

$ cargo install --git https://github.com/morgann1/waldo --tag v1.1.0 --locked

Examples

Put it in a different section. -S is [server-dependencies] and -D is [dev-dependencies]. The section is created if it is not there yet.

$ waldo add lm-loleris/profilestore -S
added Profilestore = "lm-loleris/profilestore@1.0.3" to [server-dependencies]

$ waldo add roblox/testez -D
added Testez = "roblox/testez@0.4.1" to [dev-dependencies]

Name it yourself. The alias is what your Luau code will require, and Waldo derives one from the package name unless you say otherwise.

$ waldo add lm-loleris/profilestore -S -A profile_store
added profile_store = "lm-loleris/profilestore@1.0.3" to [server-dependencies]

Move an existing dependency to another version.

$ waldo add roblox/roact@1.4.2
updated Roact from roblox/roact@1.4.4 to roblox/roact@1.4.2

Take one back out. A section left empty goes with it.

$ waldo remove roblox/roact
removed Roact from [dependencies]
run `wally install` to update Packages

See what is already there. Waldo reads the file and never the index.

$ waldo list
[dependencies]
  Promise  evaera/promise@4.0.0
  Roact    roblox/roact@1.4.4

[server-dependencies]
  ProfileStore  lm-loleris/profilestore@1.0.3

[dev-dependencies]
  TestEZ  roblox/testez@0.4.1

Shared code replicates to clients and server code must not, so a server package in [dependencies] is refused. This is an error and never a warning.

$ waldo add lm-loleris/profilestore
error: `lm-loleris/profilestore` is a server package, so it cannot go in
`[dependencies]`. Shared code replicates to clients, and server code must not. Try `-S`.

Misspell a package and Waldo looks for what you meant.

$ waldo add roblox/ract
error: could not find `roblox/ract` in the index. Did you mean `roblox/react`?

About

🧣 Waldo is the add command Wally does not have.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages