Coder Social home page Coder Social logo

releaser's Introduction

Releaser

Automation of Haskell package release process.

Example usage

$ releaser
>> Assserting there are no uncommitted files
>> Looking for a cabal file in .
>> Found releaser-0.1.0.0
>> Bump cabal version from 0.1.0.0 to: 0.1.0.0
>> Bumped releaser to 0.1.0.0
>> Running $ git checkout -b v0.1.0.0
Switched to a new branch 'v0.1.0.0'
>> Assserting there are no uncommitted files
>> Running $ cabal dist
>> Looking for a cabal file in .
>> Found releaser-0.1.0.0
Warning: The sdist command is a part of the legacy v1 style of cabal usage.

Please switch to using either the new project style and the new-sdist command
or the legacy v1-sdist alias as new-style projects will become the default in
the next version of cabal-install. Please file a bug if you cannot replicate a
working v1- use case with the new-style commands.

For more information, see: https://wiki.haskell.org/Cabal/NewBuild

>> Created dist/releaser-0.1.0.0.tar.gz
>> Running $ git commit 
>> Running $ git tag --annotate --sign v0.1.0.0
>> Pushing git to origin
Enumerating objects: 25, done.
Counting objects: 100% (25/25), done.
Delta compression using up to 8 threads
Compressing objects: 100% (13/13), done.
Writing objects: 100% (19/19), 3.37 KiB | 3.37 MiB/s, done.
Total 19 (delta 8), reused 0 (delta 0)
remote: Resolving deltas: 100% (8/8), completed with 3 local objects.
remote: 
remote: Create a pull request for 'v0.1.0.0' on GitHub by visiting:
remote:      https://github.com/domenkozar/releaser/pull/new/v0.1.0.0
remote: 
To https://github.com/domenkozar/releaser.git
 * [new branch]      HEAD -> v0.1.0.0
>> Pushing git to origin
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 540 bytes | 540.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/domenkozar/releaser.git
 * [new tag]         v0.1.0.0 -> v0.1.0.0
>> Running $ cabal upload
ploading dist/releaser-0.1.0.0.tar.gz...
Package successfully published. You can now view it at
'https://hackage.haskell.org/package/releaser-0.1.0.0'.

Features

  • Releaser.Primitives module provides a bunch of functions to help automating release process.

  • releaser executable provides interactive automation for releasing package to Hackage and git.

Design decisions

  • When there's a choice for configuration, prefer a convention and avoid configuration.

  • Log each primitive action

Prior art

releaser's People

Contributors

domenkozar avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.