mirror of
https://github.com/Smaug123/WoofWare.Myriad
synced 2025-10-05 20:18:43 +00:00
56 lines
2.6 KiB
Markdown
56 lines
2.6 KiB
Markdown
# Contributing
|
|
|
|
The main project fork lives [on GitHub](https://github.com/Smaug123/WoofWare.Myriad).
|
|
|
|
Contributions are welcome, but I am generally very opinionated about both style and content.
|
|
I also can't commit to looking at anything in a particularly timely manner (or at all, though I expect I will try).
|
|
|
|
In general my aesthetics lead me to accept correctness fixes much more readily than other changes.
|
|
|
|
## Issues
|
|
|
|
Please raise bug reports and feature requests as Issues on [the main GitHub project](https://github.com/Smaug123/WoofWare.Myriad/issues).
|
|
|
|
## Pull requests
|
|
|
|
Before embarking on a large change, I strongly recommend checking via a GitHub Issue first that I'm likely to accept it.
|
|
|
|
You may find that the following guidelines will help you produce a change that I accept:
|
|
|
|
* Keep your change as small and focused as is practical.
|
|
* Ensure that your change is thoroughly tested.
|
|
* Document any choices you make which are not immediately obvious.
|
|
* Explain why your change is necessary or desirable.
|
|
|
|
## On your first checkout
|
|
|
|
There are pull request checks on this repo, enforcing [Fantomas](https://github.com/fsprojects/fantomas/)-compliant formatting according to the [G-Research style guidelines](https://github.com/G-Research/fsharp-formatting-conventions/).
|
|
After checking out the repo, you may wish to add a pre-push hook to ensure locally that formatting is complete, rather than having to wait for the CI checks to tell you that you haven't formatted your code.
|
|
Consider performing the following command to set this up in the repo:
|
|
```bash
|
|
git config core.hooksPath hooks/
|
|
```
|
|
Before your first push (but only once), you will need to install the [.NET local tools](https://docs.microsoft.com/en-us/dotnet/core/tools/local-tools-how-to-use) which form part of the pre-push hook:
|
|
```bash
|
|
dotnet tool restore
|
|
```
|
|
|
|
In future, some commits (such as big-bang formatting commits) may be recorded for convenience in `.git-blame-ignore-revs`.
|
|
Consider performing the following command to have `git blame` ignore these commits, when we ever create any:
|
|
```bash
|
|
git config blame.ignoreRevsFile .git-blame-ignore-revs
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
I try to keep this repository's dependencies as few as possible, because (for example) any consumer of the source generator will also consume this project via the attributes.
|
|
When adding dependencies, you will need to `nix run .#fetchDeps` to obtain a new copy of [the dependency lockfile](./nix/deps.nix).
|
|
|
|
## Branch strategy
|
|
|
|
Releases are made from the `main` branch.
|
|
|
|
## License
|
|
|
|
This project is licensed with the MIT license, a copy of which you can find at the repository root.
|