Versions |
0.1.0.0, 0.2.0.0, 0.2.0.1, 0.3.0.1, 0.3.0.2, 1.0.0.0, 1.1.0.0, 1.1.0.1, 1.1.0.2, 1.1.0.3, 1.2.0.0, 1.2.0.1, 1.2.0.2, 1.2.0.3, 1.2.0.4, 1.2.0.5, 1.2.0.6, 1.2.0.7, 1.2.0.8, 1.2.1.0, 1.2.1.3, 1.3.0.0, 1.4.0.0, 1.4.0.1, 1.4.0.3, 1.4.0.6, 2.0.0.2, 2.0.0.4, 2.0.0.6, 2.0.0.7, 2.0.0.8, 2.0.0.9, 2.0.0.10, 2.0.0.11, 2.0.0.12, 2.0.0.13, 2.1.0.0, 2.1.0.3, 2.1.0.5, 2.1.0.6, 2.1.0.7, 2.1.0.8, 2.1.0.9, 2.1.0.10, 2.2.0.0, 2.2.0.1, 2.2.0.2, 2.2.0.5, 2.2.0.6, 2.2.0.7, 2.2.0.8, 2.2.0.11, 2.2.0.15, 2.2.0.16, 2.2.0.17, 2.2.0.18, 2.2.1.0, 2.2.1.1, 2.3.0.0, 2.3.0.3, 2.3.0.6, 2.4.0.0, 2.4.0.3, 2.4.0.6, 2.4.1.0, 2.4.1.6, 2.4.2.0, 2.4.2.7, 2.4.2.8, 2.4.2.9, 2.4.2.18, 2.4.2.19, 2.5.0.3, 2.6.0.0, 2.6.0.1, 2.6.0.2, 2.6.0.3, 2.6.1.0, 2.6.1.1, 2.6.1.2, 2.6.1.3, 2.6.1.11, 2.6.1.16, 2.7.0.10, 2.7.0.22, 2.7.1.0, 2.7.1.1, 2.7.1.2, 2.8.0.0, 2.8.0.8, 2.9.0.0, 2.9.0.1, 2.9.0.2, 2.10.0.0, 2.10.0.2, 2.10.0.8, 2.10.0.11, 2.10.0.17, 2.10.0.20, 2.10.1.5, 2.10.1.8, 2.10.2.0, 2.10.2.2, 2.10.2.5, 2.11.0.1, 2.11.0.7, 2.11.0.8, 2.11.0.9, 2.11.0.10, 3.0.0.0, 3.0.0.1, 3.0.0.2, 3.0.0.4, 3.0.0.10, 3.0.0.11, 3.1.0.2, 3.1.0.6, 3.1.0.12, 3.2.1.2, 3.2.1.8, 3.2.2.0, 3.2.2.2, 3.2.2.3, 3.2.3.0, 3.2.4.0, 3.2.4.2, 3.2.4.4, 3.2.4.5, 3.2.4.6, 3.2.5.3, 3.2.5.6, 3.2.5.10, 3.2.5.11, 3.2.5.12, 3.2.5.13, 3.2.5.16, 3.2.5.17, 3.2.5.18, 3.2.6.0, 3.2.6.1, 3.2.6.2, 3.2.6.3, 3.2.6.4, 3.3.0.0, 3.3.0.1, 3.3.0.4, 3.3.0.4, 3.3.0.5, 3.3.0.6, 3.3.0.7, 3.4.0.0, 3.4.0.1, 3.4.0.3, 3.4.0.4, 3.4.0.5, 3.4.0.6, 3.4.0.7, 3.4.0.8, 3.5.0.0, 3.5.0.1, 3.5.0.2, 3.5.0.3 |
Change log |
CHANGELOG.md |
Dependencies |
ansi-wl-pprint, ats-pkg, base (>=4.10 && <5), binary, bytestring, bzlib, Cabal (>=2.2.0.0), cli-setup, composition-prelude (>=1.3.0.3), containers (>=0.6), dependency (>=1.2.0.0), dhall (>=1.27.0), directory (>=1.2.3.0), file-embed (>=0.0.9), filemanip, filepath, http-client, http-client-tls, language-ats (>=1.7.4.0), lzma, microlens, mtl, optparse-applicative, parallel-io, process, shake (>=0.17), shake-ats (>=1.10.2.0), shake-c (>=0.4.0.0), shake-ext (>=3.0.0.0), tar, temporary, text, unix, unix-compat, zip-archive, zlib [details] |
License |
BSD-3-Clause |
Copyright |
Copyright: (c) 2018-2019 Vanessa McHale |
Author |
Vanessa McHale |
Maintainer |
vamchale@gmail.com |
Category |
Development, ATS |
Bug tracker |
https://github.com/vmchale/atspkg/issues
|
Source repo |
head: git clone git@github.com:vmchale/atspkg.git(ats-pkg) |
Uploaded |
by vmchale at 2019-11-07T17:18:31Z |
ATSPackage
This is a build system for ATS written in Haskell and configured with Dhall. It
is not fully working, but the configuration format is now stable.
atspkg
works quite well as a build system, and acceptably well as a package manager.
Features & Non-Features
Things that atspkg
will do for you:
- Dramatically simplify CI for ATS projects
- Simplify distribution of your project
- Enable Haskell builds that depend on ATS code
- Enable ATS builds that depend on Haskell code
- Track all file dependencies
- Make contributing to your projects easier
- Run builds in parallel (like
make
)
- Install
patscc
and other ATS tooling
- Install manual pages and shell completions
- Install ATS libraries
- Dependency resolution
Things that atspkg
will not do for you:
- Give you the full flexibility of the C/ATS ecosystem
- Integrate with other ecosystems
- Provide a centralized package repository
- Cache builds (like
nix
or cabal new-build
)
Example
As an example, the following will install polyglot
:
atspkg remote https://github.com/vmchale/polyglot/archive/master.zip
As you can see, this greatly simplifies distribution and testing of programs
written in ATS.
Installation
Script
The easiest way to install is via a script, viz.
curl -sSl https://raw.githubusercontent.com/vmchale/atspkg/master/bash/install.sh | sh -s
Thereafter, you can run
atspkg upgrade
to upgrade to the latest release.
Source
If that doesn't work, you can download
Cabal and
GHC and install with
cabal update
cabal new-install ats-pkg --symlink-bindir ~/.local/bin --happy-options='-gcsa' --alex-options='-g'
Note that $HOME/.local/bin
will need to be on your PATH
.
Quick Start
Install pi with
curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/project-init
Initialize an ATS project with
pi new ats project
Then build & run it:
cd project
atspkg run
Examples
You can find several examples with explanation
here.
Global Configuration
atspkg
is configured via a file in $HOME/.config/atspkg/config.dhall
. You can
set a custom package set as follows:
let version = "master"
in
let cfg =
{ defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/${version}/ats-pkg/pkgs/pkg-set.dhall"
, path = ([] : Optional Text)
, githubUsername = "vmchale"
, filterErrors = False
}
in cfg
I recommend setting version
to whichever branch your version of atspkg
was
built from.