KeeFetch / Contributing
Make the next fetch better.
Build KeeFetch, run its offline tests, add providers and contribute documentation.
Build locally
Use the .NET SDK, .NET Framework 4.8 targeting pack and KeePass 2.60. Production remains C# 5 compatible because KeePass compiles PLGX through a legacy compiler. Tests use the project's separate language setting.
git clone https://github.com/tzii/KeeFetch.git
cd KeeFetch
dotnet restore KeeFetch.Tests/KeeFetch.Tests.csproj
dotnet build KeeFetch.csproj -c Release -p:LangVersion=5 -warnaserror
dotnet test KeeFetch.Tests/KeeFetch.Tests.csproj -c ReleaseSet -p:KeePassPath=... if KeePass is outside the default Program Files path. See CONTRIBUTING for host setup and full gates.
Validate before review
Run the warning-free Release build, full MSTest suite, Windows PowerShell benchmark self-tests, profile export check, PLGX manifest check, version check and release-workflow self-tests. Website changes also need the offline verifier and viewport smoke checks.
powershell -File eng/benchmark/test-benchmark-harness.ps1
powershell -File eng/export-profile-data.ps1 -Check
python eng/sync-site-profiles.py --check
python eng/verify-site.py
git diff --checkLinux checks supplement the Windows gate. The fingerprinted harness uses Windows PowerShell JSON-array semantics; do not silently reinterpret evidence under PowerShell 7.
Add a provider
Implement the candidate-returning provider contract, stable provider ID, capabilities and configuration behavior. Use the shared HTTP transport and destination policy. Cover ranking, cancellation and error behavior with offline fake-transport regressions. Update both SDK and PLGX production manifests as needed.
Keep the study reproducible
Managed profiles are generated from reviewed evidence. Do not hand-edit the generated catalog or reuse evidence after changing its binary, experiment, corpus or execution harness. Preserve actual machine-review provenance.
Package and propose
KeePass PLGX creation uses the legacy KeeFetch.plgx.csproj and all listed source/resources. Validate the resulting artifact in a disposable KeePass host. Explain the problem, resulting behavior and relevant tests in your pull request.