feat(docs): refactor contributing.md and other templates (#2606)

This commit is contained in:
Daniel Gibbs 2019-11-22 22:35:03 +00:00 committed by GitHub
parent 56583d2f24
commit bfa56e6d85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 230 additions and 55 deletions

View File

@ -3,23 +3,20 @@ name: Bug report
about: Found a bug? Raise a report
---
Follow **[this guide](https://linuxgsm.com/support/#guide)** to make sure you post the correct info.
For general support visit the **[LinuxGSM-Support](https://github.com/GameServerManagers/LinuxGSM-Support)**.
Issues raised here are **ONLY** for:
* LinuxGSM bugs.
* Feature suggestions.
* Code contributions.
Issues here are **ONLY** for:
* LinuxGSM bugs
* feature suggestions
* code contributions
Issues raised here are **NOT** for:
* General support.
* Specific game server issues (e.g CS:GO, TF2).
* Dedicated server issues (e.g Ubuntu, CentOS).
* Anything not directly related to LinuxGSM development.
Issues here are **NOT** for:
* General support
* Specific game server issues (e.g CS:GO, TF2)
* Dedicated server issues (e.g Ubuntu, CentOS)
* Anything not directly related to LinuxGSM development
For general support visit the **[LinuxGSM-Support](https://linuxgsm.com/support)**.
Any general support issues on GitHub will be migrated to [LinuxGSM-Support](https://github.com/GameServerManagers/LinuxGSM-Support).
*Please use the template below*
***Please use the template below, deleting the above text***
## User Story
@ -27,9 +24,10 @@ As a [user description], I want [desired action] so that [desired outcome].
## Basic info
* Distro: [Ubuntu 18.04]
* Game: [Garry's Mod]
* Command: [Monitor]
* **Distro:** [Ubuntu 18.04]
* **Game:** [Garry's Mod]
* **Command:** [Monitor]
* **LinuxGSM version:** [v12.34.56]
## Further Information

View File

@ -3,23 +3,21 @@ name: Feature request
about: Suggest an idea for this project
---
Follow **[this guide](https://linuxgsm.com/support/#guide)** to make sure you post the correct info.
For general support visit the **[LinuxGSM-Support](https://github.com/GameServerManagers/LinuxGSM-Support)**.
Issues here are **ONLY** for:
* LinuxGSM bugs
* feature suggestions
* code contributions
Issues raised here are **ONLY** for:
* LinuxGSM bugs.
* Feature suggestions.
* Code contributions.
Issues here are **NOT** for:
* General support
* Specific game server issues (e.g CS:GO, TF2)
* Dedicated server issues (e.g Ubuntu, CentOS)
* Anything not directly related to LinuxGSM development
Issues raised here are **NOT** for:
* General support.
* Specific game server issues (e.g CS:GO, TF2).
* Dedicated server issues (e.g Ubuntu, CentOS).
* Anything not directly related to LinuxGSM development.
Any general support issues on GitHub will be migrated to [LinuxGSM-Support](https://github.com/GameServerManagers/LinuxGSM-Support).
For general support visit the **[LinuxGSM Support](https://linuxgsm.com/support)** page.
*Please use the template below*
***Please use the template below, deleting the above text***
## User Story
@ -27,9 +25,10 @@ As a [user description], I want [desired action] so that [desired outcome].
## Basic info
* Distro: [Ubuntu 18.04]
* Game: [Garry's Mod]
* Command: [Monitor]
* **Distro:** [Ubuntu 18.04]
* **Game:** [Garry's Mod]
* **Command:** [Monitor]
* **LinuxGSM version:** [v12.34.56]
## Further Information

View File

@ -23,7 +23,7 @@ If yes Use SteamDB to get the appid. (https://steamdb.info).
## Is the server supported on Linux?
We only support Linux servers and do not support Wine.
We only support Linux servers and do **not** support Wine.
* [ ] Yes
* [ ] No

View File

@ -18,6 +18,7 @@ PR will not be merged until all steps are complete.
* [ ] This pull request links to an issue.
* [ ] This pull request uses the `develop` branch as its base.
* [ ] This pull request Subject follows the Conventinal Commits standard.
* [ ] This code follows the style guidelines of this project.
* [ ] I have performed a self-review of my own code.
* [ ] I have checked that this code is commented where required.

View File

@ -1,36 +1,213 @@
# How to contribute to LinuxGSM
# Contributing to LinuxGSM
We are really glad you're reading this, because if you are then you have shown an interest in helping make LinuxGSM great.
👍🎉 Thank you for taking the time to contribute! 🎉👍
If you haven't already, come find us on [Discord](https://linuxgsm.com/discord). From there you will have contact with other contributers of the project. We want you working on things you're excited about.
The following is a set of guidelines for contributing to LinuxGSM, which are hosted in the [GameServerManagers Organization](https://github.com/gameservermanagers) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Before working on a project we recommend that you create a issue in regards to the issue/feature. This will prevent duplicates while you work on the feature. If an issue already exists, make note that you are working on it so nobody else wastes their time working on the same project at the same time!
## Table of Contents
* [Contributing to LinuxGSM](#contributing-to-linuxgsm)
* [Table of Contents](#table-of-contents)
* [Code of Conduct](#code-of-conduct)
* [Bug/Enhancement Contributions](#---bug-enhancement-contributions---)
* [Reporting Bugs](#--reporting-bugs)
* [Before Submitting A Bug Report](#before-submitting-a-bug-report)
* [How Do I Submit A (Good) Bug Report?](#how-do-i-submit-a--good--bug-report-)
* [Suggesting Features](#--suggesting-features)
* [Before Submitting An Feature Suggestion](#before-submitting-an-feature-suggestion)
* [How Do I Submit A (Good) Feature Suggestion?](#how-do-i-submit-a--good--feature-suggestion-)
* [Game Server Requests](#---game-server-requests)
* [Before Submitting a Game Server Request](#before-submitting-a-game-server-request)
* [How Do I Submit A (Good) Game Server Suggestion?](#how-do-i-submit-a--good--feature-suggestion--1)
* [Game Server Specific Issues](#---game-server-specific-issues)
* [Code Contributions](#---code-contributions)
* [Pull Requests](#pull-requests)
* [Pull Request naming convention](#pull-request-naming-convention)
* [Testing](#testing)
* [Pull Request Status Checks](#pull-request-status-checks)
* [Test Environment](#test-environment)
* [Styleguides](#-wine-glass--styleguides)
* [Git Commit Messages](#git-commit-messages)
* [BASH Styleguide](#bash-styleguide)
* [Document Contributions](#-blue-book--document-contributions)
* [Documentation Styleguide](#documentation-styleguide)
* [Issue and Pull Request Labels](#issue-and-pull-request-labels)
## Code of Conduct
Here are some important resources:
This project and everyone participating in it are governed by the [LinuxGSM Code of Conduct](https://github.com/GameServerManagers/linuxgsm/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behaviour to [daniel.gibbs@linuxgsm.com](mailto:daniel.gibbs@linuxgsm.com).
* [Issues Page](https://github.com/GameServerManagers/LinuxGSM/issues) provides a list of areas that could use some work,
* [Developer Wiki](https://github.com/GameServerManagers/LinuxGSM/wiki) gives a detailed guide on developing LGSM,
## 🎉 Bug/Enhancement Contributions 🐛
## Testing
### 🐛Reporting Bugs
Please make sure all the code you write is working properly **before** you create a pull request. Information on debugging can be found in the following document:
This section guides you through submitting a bug report for LinuxGSM. Following these guidelines help maintainers and the community understand your report 📝, reproduce the behaviour💻, and find any related reports 🔎.
[Developer Commands](https://github.com/GameServerManagers/LinuxGSM/wiki/Developer-Commands)
Before creating bug reports, please check [this list](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#before-submitting-a-bug-report) as you might find out that you dont need to create one. When you are creating a bug report, please [include as many details as possible](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#how-do-i-submit-a-good-bug-report). Fill out [the required template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md), the information it asks for helps us resolve issues faster.
## Submitting changes
#### Before Submitting A Bug Report
Please send a [GitHub Pull Request to LinuxGSM](https://github.com/GameServerManagers/LinuxGSM/pull/new/develop) with a clear list of what you've done (read more about [pull requests](https://help.github.com/articles/about-pull-requests)). Please follow our coding conventions (below) and make sure all of your commits are atomic (one feature per commit).
* **Check the** [**documentation**](https://docs.linuxgsm.com/%5D(https://docs.linuxgsm.com/))**.** You might be able to find the cause of the problem and fix things yourself.
* **Check that the problem is not related to** [**support page**](https://linuxgsm/com/support) for links to other support options.
* **Check the** [**support page**](https://linuxgsm/com/support) for links to other support options.
* **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
Always write a clear log message for your commits. One-line messages are fine for small changes, but bigger changes should look like this:
#### How Do I Submit A (Good) Bug Report?
$ git commit -m "A brief summary of the commit
>
> A paragraph describing what changed and its impact."
This will help us in understanding your code and determining where problems may arise.
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information by filling in [the issues form](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose).
## Coding conventions
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Complete the user story** to give a summary of the issue.
* **Provide basic info** to help us understand the context of the issue.
* **Provide further info** to give specifics and more detail.
* **Give steps to reproduce** the issue, allowing developers to follow steps that lead to the issue.
* **Explain what you expect** to happen, so we know what you think should occur.
Start reading our code and you'll get the hang of it. Explore how functions are organized and you'll see how we strive for readable code.
### 🎉Suggesting Features
Please give the following document a read and adjust your code according to its specifications.
[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-and-Conventions)
This section guides you through submitting a feature suggestion for LinuxGSM, including completely new features and minor improvements to existing functionality. Following these guidelines help maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.
#### Before Submitting An Feature Suggestion
* **Check the** [**documentation**](https://docs.linuxgsm.com/%5D(https://docs.linuxgsm.com/)) to confirm that the enhancement doesnt already exist.
* **Check your** [**LinuxGSM version**](https://docs.linuxgsm.com/commands/update-lgsm)**.** A newer version of LinuxGSM may already have your enhancement.
* **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the enhancement has already been suggested. If it has **and the enhancement is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
#### How Do I Submit A (Good) Feature Suggestion?
Features are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information by filling in [the issues form](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose).
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Complete the user story** to give a summary of the issue.
* **Provide basic info** to help us understand the context of the enhancement.
* **Provide further info** to give specifics and more detail.
* **Provide any further reading** materials that might assist in developing the enhancement.
### 🎮 Game Server Requests
This section guides you through submitting a game server request for LinuxGSM, Following these guidelines help maintainers and the community understand your game server request 📝
#### Before Submitting a Game Server Request
* **Check for existing** [**game server requests**](https://github.com/GameServerManagers/LinuxGSM/labels/type%3A%20game%20server%20request) to see if the new game server has already been suggested. If it has **and if the new game server is still open**, give it a thumbs up instead of opening a new one.
### 🎮 Game Server Specific Issues
LinuxGSM is a management script that acts as a wrapper around game servers. These game servers are developed by different game developers such as Valve, Epic and Facepunch to name a few.
LinuxGSM has no control over the development and limited knowledge issues directly relating to the game servers themselves. The same also applies for any mods, add-ons, maps etc.
If there is an issue with a specific game server or mod the best action may be to contact the game/mod developers on there support forums. If it is unclear some community members might be able to help.
A [list](https://docs.linuxgsm.com/support/game-server) of known game developer forums is available on the [LinuxGSM docs](https://docs.linuxgsm.com/support/game-server).
## 💻 Code Contributions
### Pull Requests
The process described here has several goals:
* Maintain LinuxGSM quality.
* Fix problems that are important to users.
* Engage the community in working toward the best possible LinuxGSM.
* Enable a sustainable system for LinuxGSM maintainers to review contributions.
Please follow these steps to have your contribution considered by the maintainers:
1. Follow all instructions in [the template](https://github.com/GameServerManagers/LinuxGSM/blob/master/.github/pull_request_template.md)
2. Follow the [style guides](#styleguides)
3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing
What if the status checks are failing? If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.
While the prerequisites above must be satisfied before having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
#### Pull Request naming convention
When naming a pull request to ensure that it is following [Conventional Commits](https://www.conventionalcommits.org/) standards; as your pull request commits will be squashed, with the PR subject becoming the commit that is used for generating the [changelog](https://github.com/GameServerManagers/LinuxGSM/releases) for the next release.
The pull request subject line should always be able to complete the following sentence:
If applied, this commit will _your subject line here_
For example:
* If applied, this commit will _refactor subsystem X for readability_
* If applied, this commit will _update getting started documentation_
* If applied, this commit will _remove deprecated methods_
* If applied, this commit will _release version 1.0.0_
* If applied, this commit will _merge pull request #123 from user/branch_
Notice how this doesnt work for the other non-imperative forms:
* If applied, this commit will _fixed bug with Y_
* If applied, this commit will _change the behaviour of X_
* If applied, this commit will _more fixes for broken stuff_
* If applied, this commit will _sweet new API methods_
Below is an example of the subject line for a pull request.
feat(alerts): add slack support to alerts
fix(csgoserver): remove SteamCMD auth requirement 32-bit workaround
### Testing
#### Pull Request Status Checks
When a Pull Request is submitted, a series of status check tests are conducted. These tests will asses the code quality, complete CI tests etc. To get your PR merged these status checks must pass.
#### Test Environment
It is recommended that you have a testing environment available to test your code during development. To test your own cod you must change some variables within the `linuxgsm.sh` file. This will force the use of your own code branch.
```bash
## GitHub Branch Select
# Allows for the use of different function files
# from a different repo and/or branch.
githubuser="GameServerManagers"
githubrepo="LinuxGSM"
githubbranch="master"
```
### :wine_glass: Styleguides
#### Git Commit Messages
LinuxGSM uses the Conventional commits standard to allow other developers to get easy to understand, descriptive commit messages as you develop. While it is recommended that you use this standard for your commits, as your commits will eventually be squashed when your PR is merged following this standard is not strictly enforced for commits, however, it is recommended for more complex commits.
#### BASH Styleguide
LinuxGSM uses [ShellCheck](https://www.shellcheck.net/) to follow BASH best practices. It is recommended that you make use of linter tools for your text editor such as [linter-shellcheck](https://atom.io/packages/linter-shellcheck). LinuxGSM uses [Codacy](https://app.codacy.com/manual/GameServerManagers/LinuxGSM/dashboard) to analyse any Pull Requests to give you feedback on code standards.
LinuxGSM also has some of its style standards that should be followed. These are available in the [dev docs](https://dev-docs.linuxgsm.com/)
## :blue_book: Document Contributions
As well as code contributions it is possible to contribute by writing and improving documentation. Documents contributions can be submitted similarly by submitting a Pull Request.
### Documentation Styleguide
LinuxGSM has various documentation available to assist users and developers. LinuxGSM primarily uses [GitBook](http://gitbook.com/) which uses the [Markdown](https://www.markdownguide.org/) document standard. LinuxGSM uses [Codacy](https://app.codacy.com/manual/GameServerManagers/LinuxGSM/dashboard) to analyse any Pull Requests to give you feedback on markup standards.
## Issue and Pull Request Labels
This section lists the labels we use to help us track and manage issues and pull requests.
[GitHub search](https://help.github.com/articles/searching-issues/) makes it easy to use labels for finding groups of issues or pull requests you're interested in. There are several categories of labels available:
**command** Labels
Highlights the LinuxGSM command the Issue/PR relates too.
**info** Labels
Labels to help pinpoint what the issue or PR relates too.
variants:
* _distro_
* _engine_
* _game_
* _info_
**outcome** Labels
Labels that identify why an issue was closed.
**status** Labels
Labels to update people on the status of the issue.
**type** Labels
Labels identifying the type of issue, such as a bug, feature, refactor etc.