pony-stable
A simple dependency manager for the Pony language.
Too many ponies to keep track of?
Put them in a stable and make your life easier.
Installation
Ubuntu Linux using a DEB package (via Launchpad PPA)
For Ubuntu Linux (Trusty, Xenial, Artful, Bionic, Cosmic), the release builds are packaged and available on Launchpad PPA (ponylang/ponylang).
To install builds via Apt:
add-apt-repository ppa:ponylang/ponylang
apt-get update
apt-get install pony-stableDebian Linux using a DEB package (via Bintray)
For Debian Linux, the release builds are packaged and available on Bintray (pony-language/ponyc-debian).
To install builds via Apt (and install Bintray's public key):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D401AB61 DBE1D0A2
echo "deb https://dl.bintray.com/pony-language/pony-stable-debian /" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get -V install pony-stablemacOS
brew install pony-stableLinux using an RPM package (via COPR)
For Red Hat, CentOS, Oracle Linux, Fedora Linux, or OpenSuSE, the release builds are packaged and available on COPR (ponylang/ponylang).
Using yum for Red Hat, CentOS, Oracle Linux and other RHEL compatible systems:
yum copr enable ponylang/ponylang epel-7
yum install pony-stableSee https://bugzilla.redhat.com/show_bug.cgi?id=1581675 for why epel-7 is required on the command line.
Using DNF for Fedora Linux:
dnf copr enable ponylang/ponylang
dnf install pony-stableUsing Zypper for OpenSuSE Leap 15:
zypper addrepo --refresh --repo https://copr.fedorainfracloud.org/coprs/ponylang/ponylang/repo/opensuse-leap-15.0/ponylang-ponylang-opensuse-leap-15.0.repo
wget https://copr-be.cloud.fedoraproject.org/results/ponylang/ponylang/pubkey.gpg
rpm --import pubkey.gpg
zypper install pony-stableUsing Zypper for OpenSuSE Tumbleweed:
zypper addrepo --refresh --repo https://copr.fedorainfracloud.org/coprs/ponylang/ponylang/repo/opensuse-tumbleweed/ponylang-ponylang-opensuse-tumbleweed.repo
wget https://copr-be.cloud.fedoraproject.org/results/ponylang/ponylang/pubkey.gpg
rpm --import pubkey.gpg
zypper install pony-stableArch Linux
pacman -S pony-stableFrom Source
You will need ponyc in your PATH.
From Source (Unix):
git clone https://github.com/ponylang/pony-stable
cd pony-stable
make
sudo make installFrom Source (Windows):
git clone https://github.com/ponylang/pony-stable
cd pony-stable
make.batYou will then need to add pony-stable\bin to your PATH.
Make a project with dependencies.
GitHub
mkdir myproject && cd myproject
stable add github jemc/pony-inspect
echo '
use "inspect"
actor Main
new create(env: Env) =>
env.out.print(Inspect("Hello, World!"))
' > main.ponyGitLab
mkdir myproject && cd myproject
stable add gitlab jemc/pony-inspect
echo '
use "inspect"
actor Main
new create(env: Env) =>
env.out.print(Inspect("Hello, World!"))
' > main.ponyLocal git project
mkdir myproject && cd myproject
stable add local-git ../pony-inspect --tag=1.0.2
echo '
use "inspect"
actor Main
new create(env: Env) =>
env.out.print(Inspect("Hello, World!"))
' > main.ponyThe git tag is optional.
Local (non-git) project
mkdir myproject && cd myproject
stable add local ../pony-inspect
echo '
use "inspect"
actor Main
new create(env: Env) =>
env.out.print(Inspect("Hello, World!"))
' > main.ponyFetch dependencies.
stable fetch
# The dependencies listed in `bundle.json` will be fetched
# and/or updated into the local `.deps` directory.Cloning into '.deps/jemc/pony-inspect'...
remote: Counting objects: 131, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 131 (delta 4), reused 0 (delta 0), pack-reused 123
Receiving objects: 100% (131/131), 21.73 KiB | 0 bytes/s, done.
Resolving deltas: 100% (82/82), done.
Checking connectivity... done.
Compile in a stable environment.
stable env ponyc --debug
# The local paths to the dependencies listed in `bundle.json`
# will be included in the `PONYPATH` environment variable,
# available to `use` in the `ponyc` invocation.
# You can run any custom command here - not just `ponyc`.Building builtin -> /usr/local/lib/pony/0.2.1-204-g87fcb40/packages/builtin
Building . -> /home/jemc/1/code/hg/myproject
Building inspect -> /home/jemc/1/code/hg/myproject/.deps/jemc/pony-inspect/inspect
Generating
Writing ./myproject.o
Linking ./myproject