linstrom/CONTRIBUTING.md
mstar 37a34720c0
Some checks are pending
/ test (push) Waiting to run
Work on meta information
2025-03-28 13:35:32 +01:00

3.3 KiB

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 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.

For the frontend, the browser tools should be all that's needed. The backend logs messages to stderr and, if configured, to a rotating log file as defined in the configuration. The debugger here is delve

Feature Requests

Use the feature request issue template 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 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, include the issue number in the branch name:

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:

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. It might not get approved, or you might have to make some additional changes to your code - but don't give up!