mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	git-subtree-dir: lib/gridster git-subtree-mainline:80f8419dacgit-subtree-split:a7ed9a4ade
		
			
				
	
	
		
			200 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Contributing to this project
 | 
						|
 | 
						|
Please take a moment to review this document in order to make the contribution
 | 
						|
process easy and effective for everyone involved.
 | 
						|
 | 
						|
Following these guidelines helps to communicate that you respect the time of
 | 
						|
the developers managing and developing this open source project. In return,
 | 
						|
they should reciprocate that respect in addressing your issue or assessing
 | 
						|
patches and features.
 | 
						|
 | 
						|
 | 
						|
## Using the issue tracker
 | 
						|
 | 
						|
The issue tracker is the preferred channel for [bug reports](#bugs),
 | 
						|
[features requests](#features) and [submitting pull
 | 
						|
requests](#pull-requests), but please respect the following restrictions:
 | 
						|
 | 
						|
* Please **do not** use the issue tracker for personal support requests (use
 | 
						|
  [Stack Overflow](http://stackoverflow.com)).
 | 
						|
 | 
						|
* Please **do not** derail or troll issues. Keep the discussion on topic and
 | 
						|
  respect the opinions of others.
 | 
						|
 | 
						|
 | 
						|
<a name="bugs"></a>
 | 
						|
## Bug reports
 | 
						|
 | 
						|
A bug is a _demonstrable problem_ that is caused by the code in the repository.
 | 
						|
Good bug reports are extremely helpful - thank you!
 | 
						|
 | 
						|
Guidelines for bug reports:
 | 
						|
 | 
						|
1. **Use the GitHub issue search** — check if the issue has already been
 | 
						|
   reported.
 | 
						|
 | 
						|
2. **Check if the issue has been fixed** — try to reproduce it using the
 | 
						|
   latest `master` or development branch in the repository.
 | 
						|
 | 
						|
3. **Isolate the problem** — ideally create a [reduced test
 | 
						|
   case](http://css-tricks.com/6263-reduced-test-cases/) and a live example (you can use something like [jsfiddle](http://jsfiddle.net/) or [jsbin](http://jsbin.com/)) .
 | 
						|
 | 
						|
A good bug report shouldn't leave others needing to chase you up for more
 | 
						|
information. Please try to be as detailed as possible in your report. What is
 | 
						|
your environment? What steps will reproduce the issue? What browser(s) and OS
 | 
						|
experience the problem? What would you expect to be the outcome? All these
 | 
						|
details will help people to fix any potential bugs.
 | 
						|
 | 
						|
Example:
 | 
						|
 | 
						|
> Short and descriptive example bug report title
 | 
						|
>
 | 
						|
> A summary of the issue and the browser/OS environment in which it occurs. If
 | 
						|
> suitable, include the steps required to reproduce the bug.
 | 
						|
>
 | 
						|
> 1. This is the first step
 | 
						|
> 2. This is the second step
 | 
						|
> 3. Further steps, etc.
 | 
						|
>
 | 
						|
> `<url>` - a link to the reduced test case
 | 
						|
>
 | 
						|
> Any other information you want to share that is relevant to the issue being
 | 
						|
> reported. This might include the lines of code that you have identified as
 | 
						|
> causing the bug, and potential solutions (and your opinions on their
 | 
						|
> merits).
 | 
						|
 | 
						|
 | 
						|
<a name="features"></a>
 | 
						|
## Feature requests
 | 
						|
 | 
						|
Feature requests are welcome. But take a moment to find out whether your idea
 | 
						|
fits with the scope and aims of the project. It's up to *you* to make a strong
 | 
						|
case to convince the project's developers of the merits of this feature. Please
 | 
						|
provide as much detail and context as possible.
 | 
						|
 | 
						|
**Please, use the GitHub issue search** to check if the feature has already been requested.
 | 
						|
 | 
						|
 | 
						|
<a name="pull-requests"></a>
 | 
						|
## Pull requests
 | 
						|
 | 
						|
Good pull requests - patches, improvements, new features - are a fantastic
 | 
						|
help. They should remain focused in scope and avoid containing unrelated
 | 
						|
commits.
 | 
						|
 | 
						|
**Please ask first** before embarking on any significant pull request (e.g.
 | 
						|
implementing features, refactoring code, porting to a different language),
 | 
						|
otherwise you risk spending a lot of time working on something that the
 | 
						|
project's developers might not want to merge into the project.
 | 
						|
 | 
						|
Code must follow, mostly, these [coding conventions](http://javascript.crockford.com/code.html) .
 | 
						|
 | 
						|
Adhering to the following this process is the best way to get your work
 | 
						|
included in the project:
 | 
						|
 | 
						|
1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
 | 
						|
   and configure the remotes:
 | 
						|
 | 
						|
   ```bash
 | 
						|
   # Clone your fork of the repo into the current directory
 | 
						|
   git clone https://github.com/<your-username>/gridster.js
 | 
						|
   # Navigate to the newly cloned directory
 | 
						|
   cd gridster.js
 | 
						|
   # Assign the original repo to a remote called "upstream"
 | 
						|
   git remote add upstream https://github.com/ducksboard/gridster.js
 | 
						|
   ```
 | 
						|
 | 
						|
2. If you cloned a while ago, get the latest changes from upstream:
 | 
						|
 | 
						|
   ```bash
 | 
						|
   git checkout master
 | 
						|
   git pull upstream master
 | 
						|
   ```
 | 
						|
 | 
						|
3. Create a new topic branch (off the main project development branch) to
 | 
						|
   contain your feature, change, or fix:
 | 
						|
 | 
						|
   ```bash
 | 
						|
   git checkout -b <topic-branch-name>
 | 
						|
   ```
 | 
						|
 | 
						|
4. Commit your changes in logical chunks. Please adhere to these [git commit
 | 
						|
   message guidelines](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y)
 | 
						|
   or your code is unlikely be merged into the main project. Use Git's
 | 
						|
   [interactive rebase](https://help.github.com/articles/interactive-rebase)
 | 
						|
   feature to tidy up your commits before making them public.
 | 
						|
 | 
						|
5. Merge or rebase the upstream development branch into your topic branch:
 | 
						|
 | 
						|
   ```bash
 | 
						|
   git pull --rebase upstream master
 | 
						|
   ```
 | 
						|
 | 
						|
6. Push your topic branch up to your fork:
 | 
						|
 | 
						|
   ```bash
 | 
						|
   git push origin <topic-branch-name>
 | 
						|
   ```
 | 
						|
 | 
						|
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
 | 
						|
    with a clear title and description.
 | 
						|
 | 
						|
**IMPORTANT**: By submitting a patch, you agree to allow the project owner to
 | 
						|
license your work under the same license as that used by the project.
 | 
						|
 | 
						|
 | 
						|
#commit Message Guidelines
 | 
						|
We use [automatic changelog creation](https://github.com/ajoslin/conventional-changelog), so it best if your commit messages follow the following conventions:
 | 
						|
 | 
						|
### Commit Message Format
 | 
						|
Each commit message consists of a **header**, a **body** and a **footer**.  The header has a special
 | 
						|
format that includes a **type**, a **scope** and a **subject**:
 | 
						|
 | 
						|
```
 | 
						|
<type>(<scope>): <subject>
 | 
						|
<BLANK LINE>
 | 
						|
<body>
 | 
						|
<BLANK LINE>
 | 
						|
<footer>
 | 
						|
```
 | 
						|
 | 
						|
Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
 | 
						|
to read on github as well as in various git tools.
 | 
						|
 | 
						|
### Type
 | 
						|
Must be one of the following:
 | 
						|
 | 
						|
* **feat**: A new feature
 | 
						|
* **fix**: A bug fix
 | 
						|
* **docs**: Documentation only changes
 | 
						|
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing
 | 
						|
  semi-colons, etc)
 | 
						|
* **refactor**: A code change that neither fixes a bug or adds a feature
 | 
						|
* **perf**: A code change that improves performance
 | 
						|
* **test**: Adding missing tests
 | 
						|
* **chore**: Changes to the build process or auxiliary tools and libraries such as documentation
 | 
						|
  generation
 | 
						|
 | 
						|
### Scope
 | 
						|
The scope could be anything specifying place of the commit change. For example `$location`,
 | 
						|
`$browser`, `$compile`, `$rootScope`, `ngHref`, `ngClick`, `ngView`, etc...
 | 
						|
 | 
						|
### Subject
 | 
						|
The subject contains succinct description of the change:
 | 
						|
 | 
						|
* use the imperative, present tense: "change" not "changed" nor "changes"
 | 
						|
* don't capitalize first letter
 | 
						|
* no dot (.) at the end
 | 
						|
 | 
						|
### Body
 | 
						|
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
 | 
						|
The body should include the motivation for the change and contrast this with previous behavior.
 | 
						|
 | 
						|
### Footer
 | 
						|
The footer should contain any information about **Breaking Changes** and is also the place to
 | 
						|
reference GitHub issues that this commit **Closes**.
 | 
						|
 | 
						|
**Breaking Changes** are detected as such if the Body contains a line starting with
 | 
						|
`BREAKING CHANGES:` The rest of the commit message is then used for this.
 | 
						|
 | 
						|
A detailed explanation can be found in this [document](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/). |