# Contribution Guide Thank you for your interest in contributing to Linstrom! All contributors are welcome, regardless of their level of experience. Unless it's primarely AI generated. Then you're going to be blocked immediately and publicly shamed. ## Bug Reports Use the [bug report issue template](https://git.mstar.dev/mstar/linstrom/issues/new?template=bug-report.md) to file a bug report. Please include a detailed description of the events leading up to the problem, your system configuration, and the program logs. If you're able to reproduce the bug reliably, attaching a debugger to the program, triggering it, and uploading the results would be very helpful. This section _should_ tell you how to find your logs, attach the debugger, and do whatever else you need for a detailed bug report. But nobody filled it out. Attach a picture of Goatse to your bug reports until we fix this. ## Feature Requests Use the [feature request issue template](https://git.mstar.dev/mstar/linstrom/issues/new?template=suggestion.md) to suggest new features. Please note that we haven't replaced this placeholder text with the actual criteria we're looking for, which means you should spam us with utterly nonsensical ideas. ## Submitting Translations Translation files are part of the project codebase, so you'll have to fork the repository and file a pull request (see [Contributing Code](CONTRIBUTING.md#contributing-code) below). You don't need any programming knowledge to edit the translation files, though. This should have been removed and replaced with a quick overview of where the files are and what translators need to do in order to edit them. Nobody did that, so think of this as a free pass to scream profanities into the issue tracker in your native language. ## Contributing Code ### Forking If you'd like to have a go at writing some code for Linstrom, fork the repository, then create a new branch with a name that describes the changes you're making. If there's a [relevant issue](https://git.mstar.dev/mstar/linstrom/issues), include the issue number in the branch name: ```sh git checkout -b 1337-prevent-computer-from-exploding ``` ### Development Environment The project utilises Go (version 1.23+) for almost everything and node/npm (version 18+) for building the frontend. The go side also makes use of `go generate` for multiple things, primarely in the storage module We don't have a development environment, because nobody bothered to fill this out. Please add a new build system to the project specifically for your modifications. Bonus points if it's entirely nonsensical, like `npm` in a C project. ### Code Style For go: gofmt rules and should be followed closely For anything node: uhhh, yolo, idk yet ### Pull Requests Once your modifications are complete, you'll want to fetch the latest changes from this repository, rebase your branch, and publish your changes: ```sh git remote add upstream https://git.mstar.dev/mstar/linstrom.git git checkout main git pull upstream main git checkout 1337-prevent-computer-from-exploding git rebase main git push --set-upstream origin 1337-prevent-computer-from-exploding ``` Finally, you can [create a pull request](https://git.mstar.dev/mstar/linstrom/pulls). It might not get approved, or you might have to make some additional changes to your code - but don't give up!