Git Product home page Git Product logo

stepup's Introduction

StepUp: a project to step up your projects

StepUp is a tool to manage versioning. That means you can bump the version of your project, for example, from v3.0.11 to v4.0.0, check the current version, summarize all the history of versions in a changelog and more.

StepUp is based on source control management features (i.e. tags, branches, commits, notes etc), so it doesn't need to keep files with the current version (but it supports it, if you want), it has visibility of all history of changes and versions (doesn't matter if they are spread in many different branches), which adds a variety of possibilities in terms of management, depending on your project needs.

Installation

gem install step-up

First of all

Your installed git-scm version must be v1.7.1 or higher.

The Basics

Checking current project version

stepup [version]

An example of output would be

v0.2.0+3

Consider that your project has a tag named "v0.2.0". The "+3" part of the output above means the project has three commits since last version tag. The format of the version is totally customizable, and we will cover in more detail later.

Stepping up a version

stepup version create [--level LEVEL_NAME] [--no-editor]

where LEVEL_NAME, by default, could be

  • major
  • minor
  • patch
  • tiny

This command will ask user to input a message for the version and will increment the version number accordingly.

Each level corresponds to a position in the version mask. Considering default settings, this means:

v0.0.0.9 => vMAJOR.MINOR.PATCH.TINY

The versioning increment is based on the last version tag found in the repository, and works as follows:

v0.5.3.2 => v0.5.3.3 (TINY increment)
v0.5.3.2 => v0.5.4   (PATCH increment)
v0.5.3.2 => v0.6.0   (MINOR increment)
v0.5.3.2 => v1.0.0   (MAJOR increment)

As you can see, the TINY level is omitted when its value is zero. The mask allows you to configure the less relevant levels this way.

Checking out the changelog

stepup changelog [--top=N]

StepUp beyond basics

Working with notes

With StepUp we are able to attach additional comments on existing commit objects. The great goal of this Gem is giving to developers an easy way to manage these notes.

The note is created with a command as the example below:

$ stepup notes add --section bugfixes -m "support for old installations"

It's possible to use the same command with no paramenters. This way an wizard will guide through the process. Still with this example we can check the created note with the following command:

$ stepup notes
---
Bugfixes:

  - support for old installations

The command above fetches the entire commit history, gets each note and organizes them in sections. Found notes are displayed as a changelog message.

Creating rich changelogs

With a culture of notating all the relevant developments, its possible to retrieve a summary of a range of versions besides that specifying what kind of information will be retrieved. For example, imagine that you want to see all the features implemented in your application since the version v1.10.1 up to v2.0.0

stepup notes --since v1.10.1 upto v2.0.0 --sections pre_deploy pos_deploy

The result would be something like the following:

Showing notes since v1.10.1 up to v2.0.0 (including notes of tags: v1.10.1, v1.10.2, v1.51.0, v2.0.0)
---
Pre-Deploy:

  - dependency of version v10 of project XYZ
  - it needed to rename the following file
    - config/environment_variables.yml.sample -> config/environment_variables.yml
  - rake articles:index

Pos-Deploy:

  - Reindex articles
    - rake articles:index
  - rake db:seed
  - rake categories:reload

Project

Report bugs and suggestions

Authors

Collaborators

stepup's People

Contributors

kawamanza avatar

Watchers

Ryan L. Foster 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.