We welcome pull requests that improve LinuxAid docs, modules, tooling, or workflows. This guide explains the GitHub workflow we expect contributors to follow.
- Confirm you are familiar with Git, GitHub, and your local development environment. There are plenty of good tutorials available on the internet. Here's one to get started - https://www.atlassian.com/git
- Read
README.mdto understand the project structure and coding conventions that way you understand the project better. - Look through open issues and pull requests to avoid duplicating existing work.
- Before proceeding to implement any feature, open up an issue and tag repo mastertainers so that they can give you their insights.
- Fork the repository to your GitHub account.
- Clone your fork locally:
git clone git@github.com:<your_username>/LinuxAid.git. - Add the upstream remote so you can pull the latest changes:
git remote add upstream git@github.com:Obmondo/LinuxAid.git
- Create a feature branch from
masterbefore editing files:git checkout -b feature/<branchName>
- Keep your branch current by syncing with upstream regularly:
git fetch upstreamgit rebase upstream/master
- Follow the style and structure of the files you modify.
- Keep each branch focused on a single concern; start another branch if you uncover unrelated work.
- Update documentation or tests when your change affects them.
- Run relevant checks (linters, unit tests, docs builds) before committing.
- Commit early, but consider squashing or cleaning up commits before opening a pull request if it improves clarity.
- Use descriptive commit messages that explain the motivation for each change.
- Reference related issues or discussions when helpful.
- Avoid committing generated files or local environment artifacts.
LinuxAid is designed to protect against any single-point-of-compromise affecting you:
- GPG sign all commits on branches that build packages (easily setup in .gitconfig)
- Validate signatures on runners - runners (separate from and not managed by your Git host) validate ALL GPG signatures before CI jobs run
- Protect against compromised Git hosts - even if attackers inject code, runners won't execute jobs without valid signatures
This way, malicious code cannot sneak into your release packages.
- Push your feature branch to your fork:
git push origin feature/<branchName>. - Open a pull request against
Obmondo/LinuxAid:master. - Fill in the pull request template or clearly describe:
- What changed and why
- How you tested the change
- Any follow-up work that remasters
- Be responsive to code review feedback and make follow-up commits as needed.
- Pull the updated
masterbranch from upstream so your local environment stays current. - Delete merged branches locally and on your fork to keep things organized.
Thanks for contributing to LinuxAid! Your improvements help everyone who relies on this project.