@hackage iridium0.1.5.1
Automated Testing and Package Uploading
Categories
License
BSD-3-Clause
Maintainer
lsp@informatik.uni-kiel.de
Links
Versions
Installation
Dependencies (24)
- Cabal >=1.22.5.0 && <1.23
- ansi-terminal >=0.6.2.3 && <0.7
- base >=4.7 && <4.9
- bytestring >=0.10.4.0 && <0.11
- containers >=0.5.5.1 && <0.6
- extra >=1.4.3 && <1.5 Show all…
Dependents (0)
iridium
Introduction
iridium is a fancy wrapper around cabal upload. It aims to automate
several typical steps when releasing a new package version to hackage.
Steps currently include:
-
Compilation and running tests using multiple compiler versions. (the different compilers must already be installed.)
-
Checking that the changelog mentions the latest version.
-
Checking that the upper bounds of dependencies are up-to-date by making use of stackage snapshots.
-
Uploading of both the package itself and the documentation.
Usage
Install iridium, run iridium in the directory containing the cabal package. It won't do anything without confirmation.
$ iridium
Checking compilation and tests with different compiler versions
Checking with compiler ghc-7.8.4: clear.
Checking with compiler ghc-7.10.3: clear.
Checking upper bounds using stackage: clear.
Checking documentation: clear.
Checking basic compilation: clear.
Checking that all dependencies have upper bounds: clear.
Checking package validity: clear.
Comparing local version to hackage version: clear.
[git]
Testing for uncommitted changes: clear.
Summary:
Package: iridium
Version: 0.1.2.0
Warning count: 0
Error count: 0
Not -Wall clean:
[git]
Branch: master
Actions: Upload package, Upload documentation
> Continue [y]es [n]o? > y
Performing upload..
Building source dist for iridium-0.1.2.0...
Preprocessing library iridium-0.1.2.0...
Preprocessing executable 'iridium' for iridium-0.1.2.0...
Source tarball created: dist/iridium-0.1.2.0.tar.gz
Hackage password:
Uploading dist/iridium-0.1.2.0.tar.gz...
Ok
Upload successful.
Performing doc upload..
[.. some haddock spam ..]
Documentation tarball created: dist/iridium-0.1.2.0-docs.tar.gz
Hackage password:
Uploading documentation dist/iridium-0.1.2.0-docs.tar.gz...
Ok
Documentation upload successful.
$
Configuration
An iridium.yaml file will be created on first invocation.
Tests
| Test | Description |
|---|---|
| hlint | forM_ hs-source-dirs $ \dir -> (\dir -> call "hlint " ++ dir) |
| testsuites | run cabal test when compiling. |
| upper-bounds-stackage | Check that upper bounds are up-to-date by using a stackage cabal.config. This is not the best way, because not all packages are on stackage, but it is better than nothing. |
| upper-bounds-exist | Check that all dependencies have upper bounds. (You do want to conform with the PVP, right?) |
| documentation | Check that haddocks can be created without problems (calling cabal haddock). |
| changelog | Check if the changelog mentions (contains) the latest version. |