0.0
The project is in a healthy, maintained state
RubyGem for the HDI way of working.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 2.6.18
~> 1.13
~> 3.1
~> 1.2
 Project Readme

Way of Working

Way of Working Badge

Gem Version
MegaLinter Inclusive Language

Introduction

This tool underpins the Way of Working framework, used to describe a consistent, high-quality approach to Software Engineering. It is intended as an opinionated approach supporting rapid development, across numerous projects, by a fungible workforce who can swap between assignments with the minimum friction.

It consists command line tool that uses a modular, plugin-based system to gain functionality, allowing for organisations to pick and choose different solutions for the same feature. Organisations can create their own gem which defines the specific plugin dependencies which form their way of working. See the Way of Working for HDI as an example.

There are subcommands that plugins hook into which enable them to add GitHub actions, configuration and other files to a project and GitHub pages outlining the tooling choice and thinking behind it.

Below is a list of plugins that have been implemented so far:

Feature Plugin Description
Changelog changelog-keepachangelog Implements keepachangelog v1.1
Code Linting code_linting-hdi Implements a combination of MegaLinter and RuboCop built on NDRS standards
Code of Conduct code_of_conduct-contributor_covenant Implements Contributor Covenant v2.1
Decision Records decision_record-madr Implements MADR v3
Inclusive Language inclusive_language-alex Implements alex
Pull Request Template pull_request_template-hdi Implements a bespoke PR template

Installation

Install the gem and add to the application's Gemfile by executing:

bundle add way_of_working

If bundler is not being used to manage dependencies, install the gem by executing:

gem install way_of_working

Usage

Initialise All Components

To add all the Way of Working components to your project, run:

way_of_working init all --contact-method [CONTACT METHOD]

You will need to provide the Code of Conduct [CONTACT METHOD], usually an email address, for community leaders to receive reports of unacceptable behavior.

Help

More help on using the command line tool is found by using:

way_of_working help

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment. This RubyGem was created using bundle gem --exe way_of_working.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.

When creating plugins, the convention is to create them within the WayOfWorking and feature namespaces. E.g.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/HealthDataInsight/way_of_working. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the WayOfWorking project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.