๐ Style Guide & Linting Rules
For significant changes, pull requests should get approval from at least one of the following before being merged.
- @drn
- @marcferna
- millenniumiguana
To release changes to the Rubygem that is packaged within this project, first update the version constant, the Gemfile.lock, and create a git tag. Once complete, changes can be released to rubygems.org via the following commands:
cd ruby
./deploy
The [email protected] credentials in 1Password in the Eng vault can be used if
prompted.
- trailing whitespace should be pruned
- newlines should exist at the end of every file
- line lengths
- 80 characters default
- 50 characters for git commit summaries
- 72 characters for git commit explanatory text
 
- 2 character soft tabs for indentation
- tabs should always be translated to spaces
- a single indent should be exactly 2 spaces
- TA-0000. Capitalized, short (<= 50 characters).
- Prefixed with a corresponding JIRA ticket number.
- Summary should be less than 50 characters or less.
- More detailed explanatory text following if necessary, wrapped at 72 characters. Explanatory text should be separated from the summary with a line break.
- Tags indicate that an action is necessary after the commit is deployed or checked out locally. We have the following conventions.
- More on Git Commit Messages
All ruby linting is performed via Rubocop.
To add Thanx rubocop rules to any Ruby project, install the thanx-style rubygem.
Install
# Gemfile
gem 'thanx-style'
$ bundle
Configure
# .rubocop.yml
inherit_gem:
  thanx-style: rubocop.yml
Lint
$ rubocop
Environment
$DANGER_GITHUB_API_TOKEN
Configuration
# .circleci/config.yml
lint:
  docker:
    - ...
  steps:
    - ...
    - run:
        name: Lint
        command: bundle exec thanx-rubocop
    - store_test_results:
        path: test-results
    - run:
        name: Danger Report Rubocop Results
        command: bundle exec thanx-report-rubocop
        when: always
test:
  docker:
    - ...
  steps:
    - ...
    - run:
        name: Tests
        command: bundle exec thanx-rspec
    - store_test_results:
        path: test-results
    - store_artifacts:
        path: coverage
    - run:
        name: Danger Report RSpec Results
        command: bundle exec thanx-report-rspec
        when: always