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
mastervia 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 installto install dependencies. - Run
bundle exec rspecto run test suite. Or alternatively,make testto run the test suite in an isolated Docker environment. - Run
bundle exec rubocopto run linter. Or alternatively,make lintto run the linter in an isolated Docker environment. - Run
reekto run another linter.... more details TODO - Make changes.
Docker Environment
- Clone / checkout the repository.
- Ensure you have Docker installed with the
dockerCLI client in yourPATH. - Run
make shellto get ashshell within a Alpine-based Ruby container, withbundle installalready executed. - Test suite and linter can be run within this environment with
bundle exec rspecandbundle 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
masterbranch, 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
VERSIONfile. - 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
VERSIONfile. - Update
CHANGELOG.mdwith the new version, listing allfeat:andfix:commits as items changed since the previous version. - Commit the changes to
VERSIONandCHANGELOG.mdas achore(release):type commit. - Create a git tag on the
chore(release):commit matching the new version, with avprefix.
- Read the current version from the
- Push the
releasebranch, 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