Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gitex-flow

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gitex-flow

A git flow extension that provides some additional automation and feature improvements. The aim of the project is to offer a complete process chain in order to organize the releases of your projects as easily as possible.

  • 1.0.2
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

gitex-flow

gitex-flow is a node.js framework extending git flow that provides an all-in-one approach to a release and deployment strategy and process. The framework offers automated tools that allow you to embed the release strategy in your development process.

Table of content

Introduction

In my experience as software developer, one of the most important parts of a software project is a precisely defined and largely automated release and deployment process.

Continous deployments are mostly an essential part of the project requirements, especially for agile projects. A deployment can be very error prune and time expensive. For this reason, it is worth investing in making the deployment process as simple as possible. Another common and important requirement is to notify the user of changes from one version to another. Transparency is important in increasing the acceptance of the software and allows to participate the user into the software project.

When a project gets bigger and more complicated or several developers work on it, a defined release process becomes more and more important. For this reason, it's advisable to think about the release process as early as possible in the project.

Criterias of a deployment process

The following list defines some criterias of a release and deployment process:

  1. Deployed versions can be recovered.
  2. Deployed versions can be fixed.
  3. Deployed versions do not influence each other.
  4. Current development should not influence deployed versions.
  5. Changes between versions should be captured in a changelog.
  6. All versions should have a standardized version numbers.
  7. Integration of the release process in the IDE.

Differentiation from other projects

For any listed criteria exist some suitable solutions and principles:

git-flow: A git deployment strategy.

semantic versioning (SemVer): A semantic version strategy.

conventional commits: A git commit message standard.

standard-version: A tool providing automated versioning and changelog generation designed for github flow.

Additionally there are some very helpful articles about this topic:

No.Criteriagit-flowSemVerConventional commitsstandard-version
1Deployed versions can be recovered.
2Deployed versions can be fixed.
3Deployed versions do not influence each other.
4Current development should not influence deployed versions.
5Changes between versions should be captured as a changelog.
6All versions should have a standardized version numbers.
7Integration of the release process in the IDE.

The aim of this project is to offer a well-coordinated overall concept that integrates all of the listed principles and tools into the git flow workflow.

User documentation

If you like to use gitex-flow in your node.js project you can use gitex-flow as a npm script.

Prerequisite

Installation

#> npm install --save-dev gitex-flow

After installation add the following lines to the scripts section in your package.json of your project:

"scripts": {
    ...
    "feature:start": "gitex-flow feature start",
    "feature:finish": "gitex-flow feature finish",
    "release:start": "gitex-flow release start",
    "release:finish": "gitex-flow release finish",
    "hotfix:start": "gitex-flow hotfix start",
    "hotfix:finish": "gitex-flow hotfix finish",
    "bugfix:start": "gitex-flow bugfix start",
    "bugfix:finish": "gitex-flow bugfix finish",
    "support:start": "gitex-flow support start",
    "support:finish": "gitex-flow support finish"
    ...
}

Usage / Workflow

gitex-flow has mostly the same commands and API as git flow. There are only some simplifying changens and functional extensions which are fully backward compatible.

Feature

Features are branches that are based on the develop branch, which add new functionality to the program. Feature branches can exist across many releases and can be updated regularly with the latest changes the develop branch.

#> npm run feature:start -- <name>
...
#> npm run feature:finish -- <name>
BugFix

Bugfix branches are similar to feature branches, but are used for fixing bugs. This is useful for bugs which are not fixable as a hotfix (breaking change, low prio bug).

#> npm run bugfix:start -- <name>
...
#> npm run bugfix:finish -- <name>
Release

Releases are branches that are based on the develop branch, which freezes the current code and mark a feature stop. The code from the release branch can be published to the consolidation (test) system. Only bugfixes are allowed to be commited on the release branch. If the release is stable, the release branch can be finished and merged into the master branch.

#> npm run release:start -- [name]
...
#> npm run release:finish -- [name]
Extension features
  • If no name is set, the branch name is generated automatically with the next minor semantic version string based on the latest released version.
  • If the release is started, the version from package.json is updated
  • If the release is started, the CHANGELOG.md is updated with the changes since the last release
HotFix

Hotfixes are bug fixes based on a released version.

#> npm run hotfix:start -- [name]
...
#> npm run hotfix:finish -- [name]
Extension features
  • If no name is set, the branch name is generated automatically with the next minor semantic version string based on the latest released version.
  • If the hotfix is started, the version from package.json is updated
  • Before the hotfix is finished, the CHANGELOG.md is updated with the bugfixs are mode on the hotfix branch
Support

Support branches are based on a released version to provide long time support of a program version.

#> npm run support:start -- <name> <base>
...
#> npm run support:finish -- <name> <base>

Developer documentation (API)

If you like to use gitex-flow in your code, you can use the typescript gitex-flow API.

gitex-flow is implemented as a wrapper of a arbitary git flow implementation.

import { AvhGitFlow, GFlow } from 'gitex-flow';

const gitFlow = new AvhGitFlow();
const gflow = new GFlow(gitFlow);
// ...

The full API documentation can be found here.

Keywords

FAQs

Package last updated on 31 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc