Trello Client
A simple gem for interacting with basic endpoints of the Trello RestAPI. https://rubygems.org/gems/trello_client_lite
Tracking
Track this project on the following trello board: https://trello.com/b/TLbMg2RX/trelloclientlite
Installation
Add this line to your application's Gemfile:
gem 'trello_client_lite',
And then execute:
bundle install
Or install it yourself as:
gem install trello_client_lite
And require it:
require 'trello_client_lite'
For usage see: https://gitlab.com/charlescampbell1/trello_client/-/blob/master/USAGE.md
Contributing
This project has a few rules which applies to all contributions:
- All commits must follow the Convention
Commits specification. This is less
scary than it sounds:
- It mostly involves adding a small prefix to each commit message that
indicates what type of commit it is. Common types are
feat:
,fix:
,chore:
,test:
,docs:
,refactor:
. See here for a complete list. - A optional scope can also be provided. For example if adding a feature
within the "server" scope, the commit message prefix would be
feat(server):
. - Commits which introduce breaking changes MUST have a
!
before the:
in the commit message type prefix, or MUST format its main body asBREAKING CHANGE: <description>
. Ideally, do both for good measure.
- It mostly involves adding a small prefix to each commit message that
indicates what type of commit it is. Common types are
- All changes must be added to
master
via Pull Requests. - All Pull Requests must be merged by doing a fast-forward only merge. The repository should already be setup to enforce this.
Following these rules enables automatic version bumping and changelog generation, based on the commit history alone. And it also leads to a cleaner and more structured commit history overall, as each commit needs to fit into a specific type.
Development
Local Machine
- Ensure you have Ruby version 2.5.0 or later installed.
- Clone / checkout the repository.
- Run
bundle install
to install dependencies. - Run
bundle exec rspec
to run test suite. Or alternatively,make test
to run the test suite in an isolated Docker environment. - Run
bundle exec rubocop
to run linter. Or alternatively,make lint
to run the linter in an isolated Docker environment. - Run
reek
to run another linter.... more details TODO - Make changes.
Docker Environment
- Clone / checkout the repository.
- Ensure you have Docker installed with the
docker
CLI client in yourPATH
. - Run
make shell
to get ash
shell within a Alpine-based Ruby container, withbundle install
already executed. - Test suite and linter can be run within this environment with
bundle exec rspec
andbundle exec rubocop
, just like in the Local Machine environment. - Make changes.
Release
Once enough changes have made it into master
that it's worthy a of new
release, it's time to bump the version.
Requirements
- Node.js
- On macOS this can be installed with:
brew install node
- standard-version NPM package — Installed with:
npm install -g standard-version
Cutting a Release
- From the
master
branch, create a new branch calledrelease
:git checkout -b release
- Run:
make new-version
— Under the hood this runsnpx standard-version
, which will:- Read the current version from the
VERSION
file. - Look at all commits since the most recent git tag to determine if those changes yield a MAJOR, MINOR or PATCH change.
- Determine what the new version number is, and write said new version number
too the
VERSION
file. - Update
CHANGELOG.md
with the new version, listing allfeat:
andfix:
commits as items changed since the previous version. - Commit the changes to
VERSION
andCHANGELOG.md
as achore(release):
type commit. - Create a git tag on the
chore(release):
commit matching the new version, with av
prefix.
- Read the current version from the
- Push the
release
branch, but not the git tag:git push origin release
- Open a Pull Request.
- Once the Pull Request is merged and back in master build the gem:
make build
- Push this gem to rubygems.org:
make release