Update 2020: This is out of date as you should be using spago and creating a spago.dhall file, but pulp publish is still the way to get things into Pursuit. As bower is basically dead, I’m unsure what the future is for Pursuit with this.

I did a quick search engine run for “publish purescript package” and got no results. I asked a friend, but you may not have that sort of reference at your fingertips. This isn’t meant to be long-winded, but a brief checklist to get you there.


yarn add global bower pulp
# or
npm install -g bower pulp

The Must-Haves

The Great-To-Haves

Ready to Publish?

Push a new version tag like this.

pulp version

outputting something similar to

* Checking your package using purs publish...
Dry run completed, no errors.
* The current version is v1.0.0
You can bump the version to:
a) v2.0.0
b) v1.1.0
c) v1.0.1
Choose one, or enter a specific version:

Follow those instructions to get your tag.

Use pulp to publish which will grab the latest version from the repos releases

pulp publish

Congratulations! You have your package published.

More Information on Haves

If you don’t know what licence to pick or don’t really care that much, MIT is usually a pretty safe bet.

If your README is markdown it should at least minimally take a form similar to

# purescript-package

Your description.

[![Latest release](http://img.shields.io/github/release/username/purescript-package.svg)](https://github.com/username/purescript-package/releases)
[![Build status](https://travis-ci.org/username/purescript-package.svg?branch=master)](https://travis-ci.org/username/purescript-package)

## Installation

bower install purescript-package

Module documentation is [published on Pursuit](http://pursuit.purescript.org/packages/purescript-package).

Documentation comments take the form of -- | Comment

-- | This is a test comment for `unit`
foo ∷ Unit
foo = unit

Will publish to Pursuit with the comment “This is a test comment for unit” below the definition. This is super useful for new users of your library to read some plain English when your type is hard to follow or you want to provide addition context. It is safer to assume that you need documentation rather than not.