Giter Club home page Giter Club logo

release-flow's Introduction

Release with the flow.

SemVer-compliant release versioning/version bumping with git-flow incl. providers to update additional project files.

screenshot

Features

  • SemVer-compliant tagging of Git repository
  • SemVer-compliant tagging of additional files via file providers (includes file provider for composer.json)
  • command execution with gitflow or plain Git installation
  • interactive and non-interactive command line usage

Installation

Installation using Composer

The recommended way to install this tool is by using Composer. In your Composer project root, just do composer req hoogi91/release-flow --dev

Installation using Download

If you want to use release-flow.phar you can simply download latest version here. The usage is the same as below but just replace bin/release-flow with release-flow.phar

Configuration

If you are working on a composer-based project you can configure which VCS and file provider classes are used when executing release-flow commands. Just put a similiar config like below to your composer.json:

{
  "extra": {
    "hoogi91/release-flow": {
      "vcs": "Hoogi91\\ReleaseFlow\\VersionControl\\GitFlowVersionControl",
      "provider": [
        "Vendor\\MyReleaseFlowExtension\\FileProvder\\MyFileProvider"
      ]
    }
  }
}

Option "vcs" (string)

Version Control class that must implement interface Hoogi91\ReleaseFlow\VersionControl\VersionControlInterface and executes commands on system level.

Option "provider" (array)

File Provider classes that must implement interface Hoogi91\ReleaseFlow\FileProvider\FileProviderInterface to set/update new version string in additional project files.

Usage

get explanation to application and its commands

> bin/release-flow help

Start Command

# start interactive console to bump major, minor or patch version
> bin/release-flow start

# start interactive console and do not execute any command
> bin/release-flow start --dry-run

# start new minor release flow without interactive console
> bin/release-flow start --increment=minor --force

# get more info and help
> bin/release-flow help start

or to start a hotfix branch (patch-bump version based on master branch)

> bin/release-flow hotfix

Finish Command

# start interactive console to finish current release or hotfix branch
> bin/release-flow finish

# start interactive console and do not execute any command
> bin/release-flow finish --dry-run

# get more info and help
> bin/release-flow help finish

DEV Version Bump Command (optional usage)

DEV Version bump will not affect VCS Tags!

If you prefer a "dev" flag in your version string until next version/release is published you can simply execute the following command to execute all file providers (see above feature list) and commit the changes to VCS:

# start interactive session to e.g. update current version "2.1.5" to "2.1.6-dev" 
> bin/release-flow dev

# force update and commit of current version "2.1.5" to "2.1.6-dev" 
> bin/release-flow dev --force

Status Command

To get short version/branch information of current selected repository:

> bin/release-flow status

release-flow's People

Contributors

bonndan avatar hoogi91 avatar

Stargazers

 avatar

Watchers

 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.