Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to psc-package

Intro to psc-package

Phil Freeman

June 28, 2017

More Decks by Phil Freeman

Other Decks in Programming


  1. What is psc-package? “psc-package is an executable which helps manage

    PureScript dependencies using Git.” Alternatively, it is: • A Bower replacement, and/or • A Pulp replacement • The default package manager for pure11/purerl (depending on your workflow)
  2. Quick Start Guide $ psc-package init Initializing new project in

    current directory Using the default package set for PureScript compiler version 0.10.7
  3. Quick Start Guide $ psc-package install free Updating 34 packages…

    Updating arrays … psc-package.json file was updated
  4. Other Commands • available list all available packages • dependencies

    list all transitive dependencies • sources list all active source paths • uninstall uninstall a package
  5. Package Sets How does psc-package know which package versions to

    use? It depends on which package set you use. This is configured in your psc-package.json file.
  6. psc-package.json $ cat psc-package.json { "name": "my-package", "set": "psc-0.10.7", "source":

    "https://github.com/purescript/package-sets.git", "depends": [ "prelude" ] }
  7. Package Sets A package set is just a mapping from

    package names to • Git repository • Package version and • Dependencies
  8. Package Sets Package sets are stored in Git repositories. There

    is a default repository at purescript/package-sets. Tools for maintainers: • updates Check all packages for updates • verify-set Verify the entire set builds correctly
  9. Contributing • Help maintain the package set • Add missing

    packages • Try it out and report bugs • Help write documentation • Contribute to psc-package development: ◦ Build with stack ◦ Uses the turtle shell scripting library ◦ Straightforward Haskell code
  10. Future Work • More integrations: ◦ purs publish ◦ purs

    docs ◦ purs bundle ◦ Pursuit / type search ◦ Try PureScript • Performance improvements ◦ Caching cloned repos