Skip to content

Commitlint config for conventional system extensions for scopes and more

License

Notifications You must be signed in to change notification settings

blackxored/commitlint-config-conventional-system

Repository files navigation

commitlint-config-conventional-system

Commitlint config for conventional system extensions for scopes and more

Semantically Released Build Status Code Coverage version downloads Styled with Prettier AirBnB style guide

MIT License All Contributors PRs Welcome Commitizen friendly Code of Conduct

Watch on GitHub Star on GitHub Tweet

commitlint configuration for system and apps with defined scopes, commit types and more. By defining standard components of a system or app and using them as scopes, plus adding a few related to commit types, we ensure consistency across our projects.

These are scopes that should be common in most systems, we call these components:

  • auth: Authentication, login, OAuth, etc.
  • forms: General user input, forms, etc.
  • navigation: Navigation, history and routing.
  • networking": Network-related code, connectivity checks, offline persistence, etc.
  • notifications: Notification code, in-app notifications, push notifications, etc.
  • profile: User profile, friends, followers, etc.
  • settings: Settings and preferences.
  • system: A general catch-all, for changes that impact many areas of the system.

We define 4 scopes you can use if you're interested in highlighted which platform is affected by the changes:

  • core: Shared code.
  • native: Mobile platforms.
  • desktop: Desktop platforms.
  • web: Web platforms.

And finally, we define general scopes that refer to the nature of the change:

  • build
  • deps
  • packaging
  • release

But more importantly, we allow you to customize these. system refers to the above. You can include your packages in the packages section, and you can customize your components, along with descriptions.

Installing / Getting Started

Create a .commitlint-patterns.json at the root of your respository. See examples/commitlint-pattern.json.

Extend your config with this one. In commitlint.config.js:

module.exports = {
  extends: ['config-conventional-system']
}

Prerequisites

  • commitlint

Developing

Built With

  • Ramda

Setting up Dev

Here's a brief intro about what a developer must do in order to start developing the project further:

git clone https://github.com/blackxored/commitlint-config-conventional-system
cd commitlint-config-conventional-system
yarn

And state what happens step-by-step. If there is any virtual environment, local server or database feeder needed, explain here.

Versioning

We use SemVer for versioning. In addition, it's automatic via semantic-release, and our commit convention.

For the versions available, see the Releases on this repository.

Configuration

Here you should write what are all of the configurations a user can enter when using the project.

Tests

yarn test

Style guide

We base our code style on AirBnB's style guide and we check with ESLint and automatically format our code with Prettier.

License

This project is licensed under the MIT License - see the license file for details.

Contributing

If you're interested in contributing to this project in any form, please read our Contribution Guidelines.

Code of Conduct

We've adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

Contributors

Thanks goes to these people (emoji key):


Adrian Perez

💻 📖 🚇 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!