/ivor

The steam powered Idris package manager

Primary LanguageIdris

Ivor

The steam powered Idris package manager. Ivor gives you isolated and reproducable Idris builds.

Getting started

Ivor currently doesn't ship prebuilt binaries, so you'll have to install the dependencies and build it manually:

git clone https://github.com/ziman/lightyear.git 
cd lightyear 
git checkout dbcd847ed7a9e62fa0b502b3d89cca43a96f256c 
idris --install lightyear.ipkg 
cd .. 

git clone https://github.com/emptyflash/tomladris.git 
cd tomladris 
git checkout ec324128ebe8b446e84d8be60b0ed085d07fd36d 
idris --install tomladris.ipkg 
cd .. 

git clone https://github.com/emptyflash/idris-ipkg-parser 
cd idris-ipkg-parser 
git checkout 35cc2f54d4f3b3710f637d0a8c897bfbb32fe183 
idris --install ipkgparser.ipkg 
cd ..

idris --build ivor.ipkg
mv ivor.run /usr/local/ivor

Next you can create an ivor.toml file in the root of your project that looks something like this:

name = "ivor"
version = "1.0.0"
description = "The steam powered Idris package manager"

opts = "-p effects -p contrib"
main = "Ivor"
executable = "ivor.run"
sourceDirectory = "src"

[dependencies]
ziman/lightyear = "dbcd847ed7a9e62fa0b502b3d89cca43a96f256c"
emptyflash/tomladris = "ec324128ebe8b446e84d8be60b0ed085d07fd36d"
emptyflash/idris-ipkg-parser = "35cc2f54d4f3b3710f637d0a8c897bfbb32fe183"

The dependencies look like user/repo = "git sha". This is likely to change as I figure out how to handle transitive dependencies. Right now you'll have to flatten out your deps and make sure they're in the right order. All the other flags match up with Idris' ipkg file.

Once you have an ivor.toml you can run:

  • ivor install to install the dependencies,
  • ivor build to build your project,
  • ivor repl to hop in the repl with all of your dependencies,
  • ivor test to run the tests.

If you have any problems please open an issue!