diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index e9f2d000b..cbf5f2662 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -8,6 +8,51 @@ body:
attributes:
value: |
Thanks for taking the time to fill out this bug report!
+ - type: dropdown
+ id: severity
+ attributes:
+ label: Severity
+ description: Triage metadata used for prioritization.
+ options:
+ - "severity: low"
+ - "severity: medium"
+ - "severity: high"
+ - "severity: critical"
+ validations:
+ required: true
+ - type: dropdown
+ id: reproducibility
+ attributes:
+ label: Reproducibility
+ description: Triage metadata used for prioritization.
+ options:
+ - "reproducible: always"
+ - "reproducible: sometimes"
+ - "reproducible: unable"
+ validations:
+ required: true
+ - type: dropdown
+ id: regression
+ attributes:
+ label: Regression
+ description: Triage metadata used for prioritization.
+ options:
+ - "regression: yes"
+ - "regression: no"
+ - "regression: unknown"
+ validations:
+ required: true
+ - type: dropdown
+ id: affects-latest
+ attributes:
+ label: Affects latest release
+ description: Triage metadata used for prioritization.
+ options:
+ - "latest-release: yes"
+ - "latest-release: no"
+ - "latest-release: unknown"
+ validations:
+ required: true
- type: input
id: user-story
attributes:
@@ -16,6 +61,14 @@ body:
placeholder: As a [user description], I want [desired action] so that [desired outcome].
validations:
required: true
+ - type: input
+ id: script-name
+ attributes:
+ label: Script name
+ description: LinuxGSM script name in use.
+ placeholder: vhserver
+ validations:
+ required: true
- type: input
id: game
attributes:
@@ -66,6 +119,22 @@ body:
- "command: send"
validations:
required: true
+ - type: textarea
+ id: expected-behavior
+ attributes:
+ label: Expected behavior
+ description: What should happen?
+ placeholder: Describe the expected result.
+ validations:
+ required: true
+ - type: textarea
+ id: actual-behavior
+ attributes:
+ label: Actual behavior
+ description: What actually happens?
+ placeholder: Describe the observed result.
+ validations:
+ required: true
- type: textarea
id: further-info
attributes:
@@ -74,11 +143,19 @@ body:
placeholder: Tell us what you see!
validations:
required: true
+ - type: checkboxes
+ id: prechecks
+ attributes:
+ label: Pre-checks
+ description: Confirm standard troubleshooting has been completed.
+ options:
+ - label: I ran update and validate before reporting this issue.
+ required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
- description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ description: Include the exact command used and the full related output (debug/details if available). This will be automatically formatted into code.
render: shell
- type: textarea
id: steps
@@ -90,3 +167,5 @@ body:
2. Click on '....'
3. Scroll down to '....'
4. See error
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index d2113c6ca..f9eb19b0c 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -6,3 +6,6 @@ contact_links:
- name: Discord Server
about: Join the LinuxGSM Discord community server. Discuss your LinuxGSM setup, get help and advice
url: https://linuxgsm.com/discord
+ - name: Report a security vulnerability
+ about: Please report security vulnerabilities privately, not in public issues.
+ url: https://github.com/GameServerManagers/LinuxGSM/security/advisories/new
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index f1a8ccaf6..67d7508e1 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -8,6 +8,17 @@ body:
attributes:
value: |
Thanks for taking the time to fill out this feature request!
+ - type: dropdown
+ id: priority
+ attributes:
+ label: Priority
+ description: How important is this feature to you?
+ options:
+ - "priority: low"
+ - "priority: medium"
+ - "priority: high"
+ validations:
+ required: true
- type: input
id: user-story
attributes:
@@ -64,12 +75,41 @@ body:
- "command: update-lgsm"
- "command: wipe"
- "command: send"
+ validations:
+ required: false
+ - type: textarea
+ id: problem-statement
+ attributes:
+ label: Problem statement
+ description: What is painful today, and why is this needed?
+ placeholder: Describe the current limitation or pain point.
+ validations:
+ required: true
+ - type: dropdown
+ id: scope-impact
+ attributes:
+ label: Scope and impact
+ description: Which area would this change impact?
+ options:
+ - "scope: single game"
+ - "scope: multiple games"
+ - "scope: all servers"
+ - "scope: documentation only"
+ - "scope: ci/cd or automation"
+ - "scope: other"
validations:
required: true
- type: textarea
id: further-info
attributes:
label: Further information
- description: A clear description of what the feature is and any ideas on how to achieve this.
+ description: A clear description of the proposed solution and any implementation ideas.
validations:
required: true
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: Alternatives considered
+ description: Describe alternatives or workarounds you considered.
+ validations:
+ required: false
diff --git a/.github/ISSUE_TEMPLATE/server_request.yml b/.github/ISSUE_TEMPLATE/server_request.yml
index 31dbc6b81..849bcaa21 100644
--- a/.github/ISSUE_TEMPLATE/server_request.yml
+++ b/.github/ISSUE_TEMPLATE/server_request.yml
@@ -7,7 +7,7 @@ body:
- type: markdown
attributes:
value: |
- Thanks for taking the time to fill out this game server!
+ Thanks for taking the time to fill out this game server request!
- type: input
id: game-server
attributes:
@@ -15,11 +15,19 @@ body:
description: What game server would you like to add?
validations:
required: true
+ - type: checkboxes
+ id: dedicated-server
+ attributes:
+ label: Dedicated server
+ description: Confirm this is a dedicated server request and not client hosting.
+ options:
+ - label: "Yes, this is a dedicated server (not client hosting)."
+ required: true
- type: checkboxes
id: on-linux
attributes:
label: Linux support
- description: Does this game server have Linux support? (not wine)
+ description: Does this game server have native Linux server support? (not wine)
options:
- label: "Yes"
validations:
@@ -38,20 +46,40 @@ body:
id: steam-id
attributes:
label: Steam appid
- description: What is the Steam appid of the game server? Use SteamDB to get the appid. (https://steamdb.info).
+ description: What is the Steam appid of the dedicated server? Required when Steam is Yes. Use SteamDB to get the appid (https://steamdb.info).
placeholder: "892970"
validations:
required: false
+ - type: textarea
+ id: official-docs
+ attributes:
+ label: Official dedicated server documentation
+ description: Provide official documentation links for installing/running the dedicated server.
+ placeholder: |
+ https://example.com/docs/server-setup
+ https://example.com/docs/dedicated-server
+ validations:
+ required: true
+ - type: textarea
+ id: linux-binary-proof
+ attributes:
+ label: Linux binary proof
+ description: Provide evidence that Linux server binaries are available (official docs/download links/version notes).
+ placeholder: |
+ https://example.com/downloads/linux-dedicated-server
+ https://example.com/release-notes/linux-server
+ validations:
+ required: true
- type: textarea
id: guides
attributes:
label: Guides
- description: Links to guides on how to install the game server
+ description: Links to community or third-party guides on how to install the game server.
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
- description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/GameServerManagers/LinuxGSM/blob/master/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 9f6864e57..d95b4278e 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -12,18 +12,40 @@ Fixes #[issue]
- [ ] Refactor (restructures existing code).
- [ ] Comment update (typo, spelling, explanation, examples, etc).
+## Testing
+
+Please list the exact validation you performed and the outcome.
+
+- Commands/tests run:
+- Result:
+- Environment used (distro/version):
+
+## Risk and rollback
+
+- Risk level: low / medium / high
+- Rollback plan:
+
+## Breaking changes
+
+- [ ] No breaking changes.
+- [ ] Breaking changes included (describe below).
+
+## Documentation impact
+
+- [ ] No documentation update required.
+- [ ] User documentation update required.
+- [ ] Developer documentation update required.
+
## Checklist
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 uses the develop branch as its base.
- [ ] This pull request subject follows the Conventional Commits standard.
- [ ] This code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
-- [ ] I have checked that this code is commented where required.
- [ ] I have provided a detailed enough description of this PR.
-- [ ] I have checked if documentation needs updating.
## Documentation
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index fb935a066..4b118cd09 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -2,131 +2,158 @@
## Our Pledge
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, caste, color, religion, or sexual identity
-and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-- Demonstrating empathy and kindness toward other people
-- Being respectful of differing opinions, viewpoints, and experiences
-- Giving and gracefully accepting constructive feedback
-- Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-- Focusing on what is best not just for us as individuals, but for the
- overall community
-
-Examples of unacceptable behavior include:
-
-- The use of sexualized language or imagery, and sexual attention or
- advances of any kind
-- Trolling, insulting or derogatory comments, and personal or political attacks
-- Public or private harassment
-- Publishing others' private information, such as a physical or email
- address, without their explicit permission
-- Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
+We pledge to make our community welcoming, safe, and equitable for all.
+
+We are committed to fostering an environment that respects and promotes the
+dignity, rights, and contributions of all individuals, regardless of characteristics
+including race, ethnicity, caste, color, age, physical characteristics,
+neurodiversity, disability, sex or gender, gender identity or expression, sexual
+orientation, language, philosophy or religion, national or social origin,
+socio-economic position, level of education, or other status. The same privileges of
+participation are extended to everyone who participates in good faith and in
+accordance with this Covenant.
+
+## Encouraged Behaviors
+
+While acknowledging differences in social norms, we all strive to meet our
+community's expectations for positive behavior. We also understand that our words
+and actions may be interpreted differently than we intend based on culture,
+background, or native language.
+
+With these considerations in mind, we agree to behave mindfully toward each other
+and act in ways that center our shared values, including:
+
+1. Respecting the **purpose of our community**, our activities, and our ways of gathering.
+2. Engaging **kindly and honestly** with others.
+3. Respecting **different viewpoints** and experiences.
+4. **Taking responsibility** for our actions and contributions.
+5. Gracefully giving and accepting **constructive feedback**.
+6. Committing to **repairing harm** when it occurs.
+7. Behaving in other ways that promote and sustain the **well-being of our community**.
+
+## Restricted Behaviors
+
+We agree to restrict the following behaviors in our community. Instances,
+threats, and promotion of these behaviors are violations of this Code of Conduct.
+
+1. **Harassment.** Violating explicitly expressed boundaries or engaging in
+ unnecessary personal attention after any clear request to stop.
+2. **Character attacks.** Making insulting, demeaning, or pejorative comments
+ directed at a community member or group of people.
+3. **Stereotyping or discrimination.** Characterizing anyone's personality or
+ behavior on the basis of immutable identities or traits.
+4. **Sexualization.** Behaving in a way that would generally be considered
+ inappropriately intimate in the context or purpose of the community.
+5. **Violating confidentiality.** Sharing or acting on someone's personal or
+ private information without their permission.
+6. **Endangerment.** Causing, encouraging, or threatening violence or other harm
+ toward any person or group.
+7. Behaving in other ways that **threaten the well-being** of our community.
+
+### Other Restrictions
+
+1. **Misleading identity.** Impersonating someone else for any reason, or
+ pretending to be someone else to evade enforcement actions.
+2. **Failing to credit sources.** Not properly crediting the sources of content
+ you contribute.
+3. **Promotional materials.** Sharing marketing or other commercial content in a
+ way that is outside the norms of the community.
+4. **Irresponsible communication.** Failing to responsibly present content which
+ includes, links or describes any other restricted behaviors.
+
+## Reporting an Issue
+
+Tensions can occur between community members even when they are trying their best
+to collaborate. Not every conflict represents a code of conduct violation, and this
+Code of Conduct reinforces encouraged behaviors and norms that can help avoid
+conflicts and minimize harm.
+
+When an incident does occur, it is important to report it promptly. To report a
+possible violation, please use one of the following methods:
+
+- **GitHub (private):** [Submit a private security advisory](https://github.com/GameServerManagers/LinuxGSM/security/advisories/new)
+- **Discord:** Contact a moderator via the [LinuxGSM Discord server](https://linuxgsm.com/discord)
+
+Community Moderators take reports of violations seriously and will make every
+effort to respond in a timely manner. They will investigate all reports of code of
+conduct violations, reviewing messages, logs, and recordings, or interviewing
+witnesses and other participants. Community Moderators will keep investigation and
+enforcement actions as transparent as possible while prioritizing safety and
+confidentiality. In order to honor these values, enforcement actions are carried out
+in private with the involved parties, but communicating to the whole community may
+be part of a mutually agreed upon resolution.
+
+## Addressing and Repairing Harm
+
+If an investigation by the Community Moderators finds that this Code of Conduct
+has been violated, the following enforcement ladder may be used to determine how
+best to repair harm, based on the incident's impact on the individuals involved
+and the community as a whole. Depending on the severity of a violation, lower
+rungs on the ladder may be skipped.
+
+1. **Warning**
+ 1. Event: A violation involving a single incident or series of incidents.
+ 2. Consequence: A private, written warning from the Community Moderators.
+ 3. Repair: Examples of repair include a private written apology, acknowledgement
+ of responsibility, and seeking clarification on expectations.
+
+2. **Temporarily Limited Activities**
+ 1. Event: A repeated incidence of a violation that previously resulted in a
+ warning, or the first incidence of a more serious violation.
+ 2. Consequence: A private, written warning with a time-limited cooldown period
+ designed to underscore the seriousness of the situation and give the community
+ members involved time to process the incident. The cooldown period may be
+ limited to particular communication channels or interactions with particular
+ community members.
+ 3. Repair: Examples of repair may include making an apology, using the cooldown
+ period to reflect on actions and impact, and being thoughtful about
+ re-entering community spaces after the period is over.
+
+3. **Temporary Suspension**
+ 1. Event: A pattern of repeated violation which the Community Moderators have
+ tried to address with warnings, or a single serious violation.
+ 2. Consequence: A private written warning with conditions for return from
+ suspension. In general, temporary suspensions give the person being suspended
+ time to reflect upon their behavior and possible corrective actions.
+ 3. Repair: Examples of repair include respecting the spirit of the suspension,
+ meeting the specified conditions for return, and being thoughtful about how to
+ reintegrate with the community when the suspension is lifted.
+
+4. **Permanent Ban**
+ 1. Event: A pattern of repeated code of conduct violations that other steps on
+ the ladder have failed to resolve, or a violation so serious that the Community
+ Moderators determine there is no way to keep the community safe with this
+ person as a member.
+ 2. Consequence: Access to all community spaces, tools, and communication channels
+ is removed. In general, permanent bans should be rarely used, should have
+ strong reasoning behind them, and should only be resorted to if working through
+ other remedies has failed to change the behavior.
+ 3. Repair: There is no possible repair in cases of this severity.
+
+This enforcement ladder is intended as a guideline. It does not limit the ability
+of Community Moderators to use their discretion and judgment, in keeping with the
+best interests of our community.
## Scope
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
+This Code of Conduct applies within all community spaces, and also applies when an
+individual is officially representing the community in public or other spaces.
+Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-[INSERT CONTACT METHOD].
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series
-of actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
-
## Attribution
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.1, available at
-[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
-
-Community Impact Guidelines were inspired by
-[Mozilla's code of conduct enforcement ladder][mozilla coc].
+This Code of Conduct is adapted from the Contributor Covenant, version 3.0,
+permanently available at .
-For answers to common questions about this code of conduct, see the FAQ at
-[https://www.contributor-covenant.org/faq][faq]. Translations are available
-at [https://www.contributor-covenant.org/translations][translations].
+Contributor Covenant is stewarded by the Organization for Ethical Source and
+licensed under CC BY-SA 4.0. To view a copy of this license, visit
+.
-[homepage]: https://www.contributor-covenant.org
-[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
-[mozilla coc]: https://github.com/mozilla/diversity
-[faq]: https://www.contributor-covenant.org/faq
-[translations]: https://www.contributor-covenant.org/translations
+For answers to common questions about Contributor Covenant, see the FAQ at
+. Translations are provided at
+. Additional enforcement and
+community guideline resources can be found at
+. The enforcement ladder was
+inspired by the work of [Mozilla's code of conduct team](https://github.com/mozilla/inclusion).