2.8 KiB
Contributing
First, thank you for your interest in contributing to my project. Below is a list of requirements that everyone should follow.
-
To avoid wasting your time and effort, please ensure all ideas get discussed first. Either visit the Ideas discussion board and open a thread there, or create a new issue. I ask that you do this to avoid the potential of rejecting work already done in a pull request.
-
For Markdown changes, Any and all changes must pass configured markdownlint rules (see the
.markdownlint.json
files in this repository for project-specific adjustments to those rules). -
For C# changes, code must conform to the project's style. My day to day coding is done in Jetbrains Rider. If using that IDE, doing a simple Code Cleanup on modified source files should be enough. If you're using Visual Studio or some other editor, you are on your own. Formatting rules are stored in
src/.editorconfig
andsrc/TrashUpdater.sln.DotSettings
.
Docker Development
The project's Dockerfile
build requires the Recyclarr build output to be placed in a specific
location in order to succeed. The location is below, relative to the clone root:
docker/artifacts/recyclarr-${{runtime}}
Where ${{runtime}}
is one of the runtimes compatible with dotnet publish
, such as
linux-musl-x64
.
There is a convenience script named docker/Build-Artifacts.ps1
that will perform a build and place
the output in the appropriate location for you. This simplifies the process of testing docker
locally to these steps:
-
Run the convenience script to build and publish Recyclarr to the Docker artifacts directory:
pwsh ci/Build-Artifacts.ps1
Note: The runtime defaults to
linux-musl-x64
but you can pass in an override as the first placeholder argument to the above command. -
Execute a Docker build locally via compose:
docker compose build --no-cache --progress plain
-
Run the container to test it:
docker compose run --rm recyclarr sonarr
Build Arguments
TARGETPLATFORM
(Default: empty)
Required. Specifies the runtime architecture of the image and is used to pull the correct prebuilt binary from the specified Github Release. See the table in the Platform Support section for a list of valid values.
Platform Support
Docker Platform | Recyclarr Runtime |
---|---|
linux/arm/v7 |
linux-musl-arm |
linux/arm64 |
linux-musl-arm64 |
linux/amd64 |
linux-musl-x64 |