Thanks for contributing to Titanium Web Proxy.
| Paths | License | External PRs |
|---|---|---|
src/Titanium.Web.Proxy/, src/Titanium.Web.Proxy.Abstractions/, src/Titanium.Web.Proxy.Configuration/, src/Titanium.Cli/, related MIT tests/examples/tools/docs, website/ |
MIT | Welcome after CLA |
src/Titanium.Plus/, src/Titanium.Inspector/, src/Titanium.Xds/, src/Titanium.Cli.GeoIp/, tests/Titanium.Plus.Tests/, tests/Titanium.Inspector.Tests/, tests/Titanium.Xds.Tests/, tests/Titanium.Cli.GeoIp.Tests/ |
PolyForm Noncommercial | Maintainer allowlist only |
See CLA.md and the README License section.
- Sign the CLA if you have not already.
- Target the
developbranch (unless a maintainer directs otherwise). - Run
dotnet build src/Titanium.Web.Proxy.sln -c Releaseanddotnet testfor affected test projects. - Do not introduce third-party product names of other proxies or traffic debuggers into source, tests, CLI help, or docs.
- Keep hot-path changes minimal; preserve
ForwardHostterminate-lite eligibility when routes are unset or equivalent to a single sticky destination. - A
yamlexample inwebsite/docs/*.mdorwiki/*.mdthat is a wholetwp.yamlis taggedand skipped. A wiki page does not start with ayaml twp</code>, and `dotnet test tests/Titanium.Web.Proxy.Configuration.Tests` loads, validates, and schema-checks it. A snippet that only makes sense inside a larger file is tagged <code>yaml twp-fragment#heading that repeats its file name. - A behavior change lands with the automated test that fails if the behavior is reverted. Run
tools/run-tests.ps1 -Project <name> -Verifyon Windows so a certificate prompt or firewall alert fails the run instead of waiting. Do not write Titanium certificates into the real user or machine store.
Not for end users. Per-OS checklists and on-demand probes live under tools/:
- LOCAL-QA.md — solo checklist (E2E + probes)
- CliQaProbe — CLI help / dialects / live
run/ optional OS service - InspectorDesktopProbe — system proxy / CA / browser UX
- RpsLoadProbe — concurrent breaking-point load in requests per second (RPS)
Use the pull request template. Include tests for behavior changes. Do not weaken performance gates or skip PublicAPI analyzer updates for intentional API surface changes.
PolyForm Noncommercial paths are owned by @justcoding121. See .github/CODEOWNERS.