:horse: Pony dependency manager tool
Pony dependency manager
Corral is beta level software.
Corral is a dependency management tool for Pony. Corral:
Check out Pony Package Dependency Management for a discussion of the research and requirements work behind Corral.
Use ponyup to install corral.
The following command is assuming that
ponyup, our toolchain multiplexer, is already installed on your machine and is available in your $PATH environment variable. If you don't have ponyup installed, please follow the ponyup installation instructions.
ponyup update corral release
After installation, add Corral's current path to $PATH environment variable if you haven't already and follow these steps to create your first project using Corral.
Make an empty folder and switch to this directory. This will be our example project to use Corral
mkdir myproject cd myproject
It will create
lock.jsonfiles. At this moment they won't have much information since you haven't added any dependencies yet.
This is the way to tell Corral that your project depends on this and you want to include it when building your project.
corral add github.com/ponylang/valbytes.git
Create a file
main.ponywith following code.
actor Main new create(env: Env) => var buf: ByteArrays = ByteArrays buf = buf + "!!" + "Hello," + " " + "World!" let greetings = buf.drop(2).string() env.out.print(greetings)
The example Pony code is using
ByteArraystype which is defined in the dependency which you have just added. Pony needs to have the source code of
ByteArraystype to compile successfully. By fetching, Corral retrieves the source and makes it available when compiling the source code
Corral will now use this information to build the project. The command below act as a wrapper for
corral run -- ponyc
If there are no errors generated then an executable
myprojectwill be created in the same folder.
You will also notice that there are two new folders
_reposin your project folder now. They were generated by the
corral fetchcommand. Please make sure to include them in your
.gitignorefile as there is no need to keep them in a versioning system since they are maintained by Corral itself.