@tayloredtechnology/oneflow

1.1.2 • Public • Published

OneFlow

This is a CLI driven NPM (and/or) automatic GitHub Release manager following the OneFlow approach to Git Branch Management.

For those unfamilliar, OneFlow takes the best practice approaches of Trunk Based Development & Git Flow and streamlines them in a way that CI releases approaches i.e. Semantic Release are still supported along with complex Enterprise release requirements.

All information on operation is available via the CLI itself, this documentation helps with getting familar with the commands.

Deployment

Essentials

OneFlow needs access to GitHub and optionally NPM.

  • For GitHub Access a Personal Access Token is needed with repo only access.
  • For Optional NPM its necessary to login to your user account via the terminal, OneFlow will automatically use this config information. Information on logging into NPM can be found at Publishing NPM Packages
  • Angular Commit Log Styling is necessary as SemVer bumps for branches and releases are automatically determined via Standard Version

ENV's

While these values can be passed into the command line, its more convenient to assign them globally.

  • GITHUB_TOKEN: Personal Access Token for releasing to GitHub {Required}
  • GITHUB_ENDPOINT: To Support GitHub Enterprise. { Default: https://api.github.com }

Installing

Global or Local installation are possible: For Global

npm i -g @tayloredtechnology/oneflow

OneFlow is now available via of or oneflow

For Local

npm i -D @tayloredtechnology/oneflow

Add relevant script entries to package.json for using OneFlow

Examples

Create a new feature

@branch develop 
oneflow new feature startDev

# branch feature/startDev will be created and switched to

Finish feature development

@branch feature/startDev
oneflow end feature

# branch will be merged and deleted

Prepare for a GitHub only release

# assuming package.json -> version = 0.2.1

@branch develop
oneflow new release --gitonly

# assumed patch was required (same process if minor or major bump required)
# branch release/v0.2.2-rc.0 will be created and switched to
# Release Candidate v0.2.2-rc.0 will be pre-released on GitHub
# if --gitonly omitted will publish respecting tags correct release tags to NPM

Increment an existing patch release

# from example above

@branch release/v0.2.2-rc.0
oneflow new release --gitonly

# branch release/v0.2.2-rc.0 will be migrated to release/v0.2.2-rc.1
# Release Candidate v0.2.2-rc.1 will be pre-released to GitHub

Finish A Release

@branch release/v0.2.2-rc.1
oneflow end release --gitonly

# branch will be merged and deleted
# Release v0.2.2 will be published to GitHub

Develop a HotFix

# assuming last release v1.2.3

@branch develop
oneflow new hotfix

# branch hotfix/v1.2.4 will be created and switched to

Finish a HotFix

@branch hotfix/v1.2.4
oneflow end hotfix

# branch hotfix/v1.2.4 will be merged and deleted
# Release v1.2.4 will be published to GitHub

Development

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  • Node 6.12.x or higher (LTS when development commenced)

Installing

A step by step series of examples that tell you how to get a development env running

git clone git@github.com:TayloredTechnology/oneflow.git
cd oneflow
npm install

Running the tests

TAP is used for all tests

# Execute all application tests
npm test

Code Coverage is provided by CodeCov.

And coding style tests

XO is used with Prettier for linting & code style.

npm run lint

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the Mozilla Public License Version 2.0 - see the LICENSE file for details

Acknowledgments

  • NPM Community for consistenly making packages that accelerate development work
  • Test Anything Protocol for consistenly accelerating Feature Driven Design

Readme

Keywords

none

Package Sidebar

Install

npm i @tayloredtechnology/oneflow

Weekly Downloads

0

Version

1.1.2

License

SEE LICENSE IN LICENSE

Unpacked Size

75.5 kB

Total Files

29

Last publish

Collaborators

  • keidrych