Thank you for considering contributing to HarvesterHarvester! We welcome contributions of all kinds, from code to documentation, and we're excited to work with you to improve our project.
If you'd like to help, but you're unsure where to start, see the 'to do' section below for some ideas.
Here are some guidelines to help you get started.
Clone the repository to your local machine using:
git clone https://github.com/IcePanorama/HarvesterHarvester.git
# or ...
git clone git@github.com:IcePanorama/HarvesterHarvester.git
Create a new branch for your changes:
git checkout -b feature/your-feature
Make your changes to the code or documentation. Be sure to follow our coding style and conventions.
We use clang-format for auto-formatting. If you are unable to run clang-format on your machine for whatever reason, please follow the GNU C conventions.
Finally, if possible, prior to committing/pushing your changes run make full
to test the program using Valgrind first.
Commit your changes with a descriptive commit message:
git add .
git commit -m "Add a feature or fix a bug"
Push your changes to the repository:
git push origin feature/your-feature
Go to the original repository on GitHub and open a pull request. Provide a clear description of the changes you’ve made and any additional context or information that may be helpful for reviewers.
We are committed to providing a welcoming and inclusive community for everyone. Please read and follow our Code of Conduct.
-
Coding Standards: Follow the coding standards used in this project. Refer to our style guide for more information.
-
Commit Messages: Write clear and concise commit messages.
-
Documentation: Update documentation if your changes affect existing functionality or introduce new features.
-
Testing: If possible, run
make full
prior to committing/pushing your changes. This will test your program with Valgrind.
If you find a bug or have a feature request, please open an issue in the issue tracker. Provide as much detail as possible to help us understand and address the issue.
For any questions or additional information, feel free to reach out to us via email open-harvester@proton.me or open a discussion on GitHub.
Thank you for contributing to HarvesterHarvester! Your help is invaluable and appreciated.
- Handle SIGINT/Windows-equivalent of SIGINT gracefully
- Currently, if a user presses
CTRL+C
while the program is executing, this causes a memory leak.- To see this in action, run
make test
and then pressCTRL+C
.
- To see this in action, run
- An ideal solution would free any outstanding, allocated memory and close open file handlers before exiting
- Ideally, this solution should also be cross-platform, if at all possible.
- Could possibly be worth converting the program to use an arena and a custom malloc just for the ease of freeing memory in a case such as this.
- Currently, if a user presses
- Create a guide for building the project from source for Windows users.
- Handle internal dat file extraction from CDs without requiring game files to be copied to the user's hard drive.
- Version 1.0.0 is unoptimised as I'm currently not 100% sure this will work on all devices.
- Future release builds should be made with the -O2 flag.
- Future versions should have a Windows version of the static library
- Currently only ships with the linux
libhh.a
file.
- Currently only ships with the linux