This framework will describe a consistent, high-quality approach to Software Engineering at HDI.
It is an opinionated approach intending to support rapid development, across numerous projects, by a fungible workforce who can swap between assignments with the minimum friction.
It builds on the twelve-factor app methodology and is intended to be compatible with the NHS Digital Software Engineering Quality Framework and other frameworks like the GDS Way.
The most significant difference here is that we will be opinionated and make technological and process choices. Everyone is encouraged to discuss and submit Pull Requests (PRs) if they want changes to the choices made, but by making those choices, we can automate many tedious background tasks that are currently manual.
It consists of a GitHub Pages website, available at https://healthdatainsight.github.io/way_of_working, and command line tool.
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
To add a keep a changelog v1.1.0 changelog to your project, use the following at the command line:
way_of_working init changelog
To add a Contributor Covenant Code of Conduct v2.1 to your project, use the following at the command line:
way_of_working init code_of_conduct --contact-method [CONTACT METHOD]
You will need to enter a contact method, usually an email address. Please thoroughly read the enforcement guidelines section of the code and discuss the implications of adopting the code of conduct.
To add the Markdown Any Decision Records (MADR) v3.0.0 framework to your project, run the following at the command line:
way_of_working init decision_record
To create a new decision record, run:
way_of_working new decision_record [NAME]
Where [NAME]
is the title of your decision record, for example:
way_of_working new decision_record "Use Markdown Any Decision Records"
To add alex to your project, run the following at the command line:
way_of_working init inclusive_language
to run alex in your project, run:
way_of_working exec inclusive_language
To add MegaLinter to your project, run the following at the command line:
way_of_working init linter
to run MegaLinter in your project, run:
way_of_working exec linter
To add all the Way of Working components to your project, run:
way_of_working init all --contact-method [CONTACT METHOD]
Providing the Code of Conduct [CONTACT METHOD]
described above.
More help on using the command line tool is found by using:
way_of_working help
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.
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.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the WayOfWorking project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.