iridium: Automated Testing and Package Uploading

[ bsd3, development, library, program ] [ Propose Tags ]

This executable aims to automate several typical steps when uploading a new package version to hackage.

Steps currently include:

The program is configurable using a per-project .yaml file.

See the README.


[Skip to Readme]
Versions [faq] 0.1.5.1, 0.1.5.2, 0.1.5.3, 0.1.5.4, 0.1.5.5, 0.1.5.6, 0.1.5.7, 0.1.5.8
Change log ChangeLog.md
Dependencies ansi-terminal (>=0.6.2.3 && <0.7), base (>=4.7 && <4.9), bytestring (>=0.10.4.0 && <0.11), Cabal (>=1.22.5.0 && <1.23), containers (>=0.5.5.1 && <0.6), extra (>=1.4.3 && <1.5), foldl (>=1.1.5 && <1.2), http-conduit (>=2.1.8 && <2.2), iridium, lifted-base (>=0.2.3.6 && <0.3), monad-control (>=1.0.0.5 && <1.1), multistate (>=0.7.0.0 && <0.8), process (>=1.2.0.0 && <1.5), split (>=0.2.3 && <0.3), system-filepath (>=0.4.13.4 && <0.5), tagged (>=0.8.3 && <0.9), text (>=1.2.2.0 && <1.3), transformers (>=0.3.0.0 && <0.5), transformers-base (>=0.4.4 && <0.5), turtle (>=1.2.5 && <1.3), unordered-containers (>=0.2.5.1 && <0.3), unsafe (==0.0.*), vector (>=0.11.0.0 && <0.12), xmlhtml (>=0.2.3.4 && <0.3), yaml (>=0.8.16 && <0.9) [details]
License BSD-3-Clause
Copyright Copyright (C) 2016 Lennart Spitzner
Author Lennart Spitzner
Maintainer lsp@informatik.uni-kiel.de
Category Development
Home page https://github.com/lspitzner/iridium
Bug tracker https://github.com/lspitzner/iridium/issues
Source repo head: git clone git@github.com:lspitzner/iridium.git
Uploaded by lspitzner at Fri Mar 11 16:08:53 UTC 2016
Distributions NixOS:0.1.5.8
Executables iridium
Downloads 1870 total (135 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-03-11 [all 1 reports]

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for iridium-0.1.5.1

[back to package description]

iridium

Build Status Hackage

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. |