81 lines
3 KiB
Markdown
81 lines
3 KiB
Markdown
# 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.
|
|
|
|
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](https://github.com/go-delve/delve)
|
|
|
|
## Feature Requests
|
|
|
|
Use the [feature request issue template](https://git.mstar.dev/mstar/linstrom/issues/new?template=.gitea%2fissue_template%2ffeature_request.yaml)
|
|
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.
|
|
|
|
> [!NOTE]
|
|
> There are no translations. Yet
|
|
> However, once added, they will be somewhere in the frontend-reactive directory
|
|
|
|
## 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
|
|
|
|
### 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!
|