Thank you for considering contributing to Launchpad. Contributors like you help to make Launchpad what it is today, and what it can be tomorrow!
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, assessing changes, and helping you finalize your pull requests.
Launchpad is a free software project that is open source, and we thrive on receiving contributions from our community of users and developers--including you!
There are many ways you can contribute:
- Improve the documentation
- Post videos and screenshots of Launchpad in use that we can put on the site
- Answer questions and provide support to the community of users
- Submit bug reports for any and all issues you can find
- Submit feature requests for anything you'd like to see
- Write code which can be incorporated back into Launchpad
These rules are expected to be followed by all who contribute to Launchpad--including not only community contributors, but also project maintainers and core developers.
Responsibilities:
- Ensure compatibility for every change that's accepted (Windows 7+, 32-bit and 64-bit)
- Ensure all code that goes into Launchpad is readable, maintainable, and follows the standards set forth by the rest of the codebase.
- Create issues for any significant changs you wish to make. Look for community feedback and give time for discussions to occur. Be transparent!
- Feel free to add to the codebase, but er on the side of keeping the codebase small and lightweight whenever possible.
- Always branch off of master, and base pull requests on master. PRs should be against the latest codebase, not a previous version.
- Keep releases as small as possible so that issues can be addressed. Ensure basic semantic versioning (New major release for breaking changes, new minor release for new features, and new point release for bug fixes and small changes).
- Be welcoming and inclusive of newcomers from all backgrounds and all skillsets. We are a community of gamers and developers that respect and encourage each other.
Unsure where to begin contributing to Launchpad? These are a couple of suggestions for the best ways to get started after browsing the issue queue:
- Any issue tagged with "good first issue" is a perfect place to start. They are typically related to documentation or minor code changes that should be relatively easy to pick up.
- Any issue tagged with "help wanted" means that we are actively looking for assistance, and that it should be easy for someone else to pick up and complete.
New to contributing to open source projects on GitHub? It's all based on forks and pull requests. Here's a great resource to help get started: https://makeapullrequest.com/
If your change is very minor or is documentation-only, forking and writing a PR is not necessarily required. While still great, you can also simply post your change in the issue queue for a maintainer to review and commit.
If you just want to change a few lines of code, feel free to submit a patch file to the issue queue instead. However, pull requests are preferred if possible.
If your change is larger or you would like to work with a pull request, follow these steps:
- Create your own fork of Launchpad on GitHub
- Create a branch off of master for your changes, and commit them to your fork
- Test your changes. Think they would be useful in Launchpad core?
- Check your code carefully for bugs and edge cases
- Make sure the Readme in the code reflects any required changes based on what you've done
- Submit a Pull Request against the master branch of VolantisDev/Launchpad
If you find a security vulnerability, please do NOT open an issue or disclose the vulnerability publicly. Any security issues should be sent directly to [email protected] with as much detail as you can so that we can assess the impact and come up with a solution before divulging the issue to potential attackers.
Not sure if you're dealing with a bug or a security issue? If you answer yes to any of these questions, it's a security issue:
- Can I access something that I shouldn't have access to?
- Can I do something that puts other Launchpad users at risk?
Even if you're still not sure, email [email protected] just to be safe. If it turns out it's not a security issue, no harm done!
If you're sure it's a bug and not a security issue, then you're ready to submit it!
If what happened was related to an exception in Launchpad, you can submit the exception and any additional details you have right from the error screen in Launchpad. This is preferred because it gives us information such as what function call and what line number the issue occurred at.
If you don't have an exception, but still have a bug to submit, make sure that somebody else hasn't already submitted the same issue. Then, create an issue that answers the following questions:
- What version of Launchpad are you using?
- What version of Windows are you using, and it is 64-bit or not?
- What action did you take before the bug presented itself?
- What did you expect to happen?
- What actually happened?
Launchpad's main purpose is to provide one source to go to create launchers that make games compatible with other platforms. Just about everything within Launchpad is meant to help support that purpose in one way or another.
If you find yourself wishing for a feature that doesn't exist in Launchpad,there are bound to be others out there with similar needs either now or in the future. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.
If others agree, your feature will probably get built and included in Launchpad someday! You are free to contribute to helping your feature get implemented, but your request in itself was a great contribution to the community!
All code is reviewed by the core maintainers before being accepted into the Launchpad codebase. You should hear back from a core contributor within a matter of days, but sometimes responses can take longer.
If you would like and think you should have full core maintainer access, reach out to [email protected] to get the conversation started.
After a PR is reviewed, we will provide feedback and potentially request changes. It's your job to then make those changes and re-request a review before your PR can move forward.
Once accepted, any further changes to the PR before it is merged will require a re-review.
We are working on setting up more channels for community communication in the future (such as a Discord server and a community section of the https://launchpad.games website).
In the meantime, the GitHub issue queue is the best place for discussions.