Git Product home page Git Product logo

shipit's Introduction

NAME
    ShipIt - software release tool

SYNOPSIS
     shipit

OVERVIEW
    Releasing a new version of software takes a lot of steps... finding the
    next version number (and making sure you didn't already use that version
    number before), making sure your changelog is updated, making sure your
    "make dist" results in a tarball that builds, commiting changes (with
    updated version number), tagging, and uploading the tarball somewhere.

    Or maybe more steps. Or not some of the above. Maybe you forgot
    something! And maybe you manage multiple projects, and each project has
    a different release process.

    This is all a pain in the ass.

    You want to be hacking, not jumping through hoops.

    Your contributors want to see their patches actually make it into a
    release, which won't happen if you're afraid of releases.

    shipit automates all the hell. It makes life beautiful.

HOW TO USE
    Three steps: run "shipit --write-config" to make a dummy/template
    config, edit config file, then run "shipit" again

  Step 1/3: Write out template config file
    In the root directory of your project, run:

      $ shipit --write-config

    And it'll bring up your $EDITOR, so you can do step 2...

  Step 2/3: Tweak your config file
    The default config file is something like:

      # auto-generated shipit config file.
      steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist

      # svn.tagpattern = MyProj-%v
      # svn.tagpattern = http://code.example.com/svn/tags/MyProj-%v

      # CheckChangeLog.files = ChangeLog, MyProj.CHANGES

    Tweak away. You may want to add the "UploadCPAN" step at the end of
    steps, as it isn't included by default. It requires cpan-upload or
    cpan-upload-http installed.

    The comma-separate steps are ShipIt::Step subclasses. Each one may or
    may accept additional config, as you can see the CheckChangeLog step
    does. (although CheckChangeLog by default figures it out, how your
    changelog files are named)

    All values have sensible defaults, and any missing/extra keys generate
    errors.

    For more info on svn.tagpattern, see ShipIt::VC::SVN.

  Step 3/3: Run 'shipit' again
    From the root directory of your project, where your new .shipit config
    file is, type shipit:

       you@host:~/proj$ shipit

    And then it does the rest, after verifying with you the version number
    you want to release.

    If you're really cautious, run with "shipit --dry-run" instead.

CONTRIBUTING
    If you'd like to contribute to ShipIt (with either a bug report or
    patch), see:

    http://contributing.appspot.com/shipit

shipit's People

Contributors

bradfitz avatar miyagawa avatar charsbar avatar possum avatar jhelwig avatar yannk avatar jbarratt avatar

Stargazers

Dave Lambley avatar

Watchers

Dave Lambley avatar 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.