mirror of
https://github.com/kalkih/mini-graph-card.git
synced 2025-12-20 00:35:56 +01:00
chore: add contributing guidelines to the project (#937)
--------- Co-authored-by: Jonas De Kegel <jonas@fluid.desi>
This commit is contained in:
95
CONTRIBUTING.md
Normal file
95
CONTRIBUTING.md
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# Guide for contributing to mini-graph-card
|
||||||
|
|
||||||
|
Welcome to `mini-graph-card` and thank you for contributing!
|
||||||
|
|
||||||
|
In this document, you will find information on
|
||||||
|
* [contributing](#contributing) to and
|
||||||
|
* [maintaining](#maintaining) the project.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
## Issues
|
||||||
|
|
||||||
|
If you encounter any issues or have feature requests, please submit them via [GitHub Issues](https://github.com/kalkih/mini-graph-card/issues).
|
||||||
|
Before submitting a new issue, please check to see if a similar one has already been reported.
|
||||||
|
If you find an existing issue that describes the problem you're experiencing, please add a comment to the existing issue rather than creating a new one.
|
||||||
|
|
||||||
|
## HA Community Forum
|
||||||
|
|
||||||
|
Before posting on the HA community forum, please make sure to search the forum to see if your question or issue has already been addressed.
|
||||||
|
You can use [this link](https://community.home-assistant.io/search?q=mini-graph-card) to search for topics related to mini-graph-card.
|
||||||
|
|
||||||
|
If you don't find a relevant topic on the forum, feel free to create a new topic to discuss your question or issue.
|
||||||
|
Please provide as much detail as possible, including your configuration and any error messages you may be seeing, to help others understand and troubleshoot your issue.
|
||||||
|
|
||||||
|
|
||||||
|
## Important notes for pull requests
|
||||||
|
|
||||||
|
We are glad that you are planning to contribute to the project! :tada:
|
||||||
|
|
||||||
|
As the project maintainers are currently very limited in time, please discuss new features and enhancements via an issue first, to avoid getting your PR rejected after your hard work.
|
||||||
|
|
||||||
|
Refer to the [maintaining](#maintaining) section for more information and some general considerations on the types of changes that will likely be accepted at this time.
|
||||||
|
|
||||||
|
## Technical guidelines
|
||||||
|
|
||||||
|
The *base branch* for your contributions should be the `dev` branch to ensure compatibility with the latest code being validated.
|
||||||
|
|
||||||
|
*Documentation* should go to the `README.md`file.
|
||||||
|
Please make sure all features and options are documented correctly there.
|
||||||
|
If new options are added, mark them as `NEXT_VERSION` in the `since` column.
|
||||||
|
The release script will replace this with the correct version.
|
||||||
|
|
||||||
|
We follow *semantic versioning* conventions and enforce it using GitHub release actions.
|
||||||
|
This means, we require semantic commit messages, following the [angular conventional commit](https://www.conventionalcommits.org) style.
|
||||||
|
For PRs, this is ensured using a GitHub action.
|
||||||
|
The commit messages will also show up in the Release Notes, so take some time to get them right.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Maintaining
|
||||||
|
|
||||||
|
## Current situation
|
||||||
|
|
||||||
|
Unfortunately, the project currently lacks maintainers with enough time at their hands to actively develop this project further.
|
||||||
|
Also, `mini-graph-card` is already very feature-rich and has grown quite a complex codebase.
|
||||||
|
|
||||||
|
Thus, we try to avoid introducing new features, especially if they add complexity to the code, or are in other ways prone to introducing new bugs.
|
||||||
|
We are, however, committed to making bug fixes available in a timely manner.
|
||||||
|
We will also invest in this project staying compatible with new releases of home assistant.
|
||||||
|
|
||||||
|
|
||||||
|
## Guide for merging PRs
|
||||||
|
|
||||||
|
*Bug fixes* are the priority.
|
||||||
|
They should either just fix the bug in very limited spots or, ideally, even reduce complexity.
|
||||||
|
When a bug fix is submitted, we should take some time to think about how things could be done in a better way.
|
||||||
|
|
||||||
|
PRs with only bug fixes may be merged by a single maintainer.
|
||||||
|
If major refactoring is involved, the following paragraphs might apply.
|
||||||
|
|
||||||
|
*Refactoring* code should be well justified, as it is prone to introduce side effects.
|
||||||
|
Good reasons could be reducing complexity or restoring compatibility with new releases of home assistant.
|
||||||
|
Refactoring code should be well tested before committing.
|
||||||
|
|
||||||
|
PRs including refactoring code should be approved at least by a maintainer and one other person.
|
||||||
|
Good candidates might be the authors of related issues or a second maintainer.
|
||||||
|
If you are not sure, don't hesitate to involve other maintainers.
|
||||||
|
|
||||||
|
Adding *new features* should in general be avoided, in order to maintain the stability of the codebase.
|
||||||
|
However, we may consider accepting new features if they have a minimal impact on the existing code and are not expected to cause any issues in the foreseeable future, particularly in terms of their interaction with existing features.
|
||||||
|
For instance, a new feature may be considered, if it can be implemented by improving a few lines of code or by using separate code that is clearly distinguished from the existing code.
|
||||||
|
|
||||||
|
Nonetheless, if there are third-party tools available that can solve a requested feature, we should generally choose to reject the feature request.
|
||||||
|
This is especially true for layout options, which can often be achieved using generic packages like `card-mod`.
|
||||||
|
|
||||||
|
PRs including new features should be approved in the same way as refactoring code.
|
||||||
|
|
||||||
|
|
||||||
|
## New releases
|
||||||
|
|
||||||
|
Releases are published using a GitHub action.
|
||||||
|
It must be triggered manually and it can be run on the `dev` branch for pre-releases or on the `master` branch for official releases.
|
||||||
|
We create frequent pre-releases (if there are changes) to ship improvements in a timely manner.
|
||||||
@@ -615,7 +615,9 @@ $ npm run watch
|
|||||||
|
|
||||||
*The new `mini-graph-card-bundle.js` will be build and ready inside `/dist`.*
|
*The new `mini-graph-card-bundle.js` will be build and ready inside `/dist`.*
|
||||||
|
|
||||||
**If you plan to submit a PR, please base it on the `dev` branch.**
|
Note that the `dev` branch is the most up-to-date and matches our beta releases.
|
||||||
|
|
||||||
|
Please refer to the [Contribution Guidelines](./CONTRIBUTING.md) if you're interested in contributing to the project. (And thanks for considering!)
|
||||||
|
|
||||||
## Getting errors?
|
## Getting errors?
|
||||||
Make sure you have `javascript_version: latest` in your `configuration.yaml` under `frontend:`.
|
Make sure you have `javascript_version: latest` in your `configuration.yaml` under `frontend:`.
|
||||||
|
|||||||
Reference in New Issue
Block a user