{"schemaVersion":"2.0.0","locale":"en","title":"Contributing","description":"Start with the owner who supplied your checkout. The repository and CLI distribution currently have restricted access; a public issue tracker and contribution URL are not available","htmlUrl":"https://docs.swift-analyzer.com/project/contributing/","markdownUrl":"https://docs.swift-analyzer.com/project/contributing/index.md","productRevision":"524fa07e0ae4153c84ac12ae9eb6559df89ec2be","catalogRevision":"4558458d","docsRevision":"1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68","channel":"pre-prod","maturity":"experimental","access":"owner-provided-checkout","markdown":"# Contributing\n\nStart with the owner who supplied your checkout. The repository and CLI distribution currently have restricted access; a public issue tracker and contribution URL are not available yet.\n\n## Make a useful report\n\nInclude the documentation URL, product revision, compiler and environment, exact command, expected result and actual coverage or error. A small reproducer is more useful than a screenshot of a total. Remove unrelated private source and credentials before sharing.\n\n## Change a check\n\nWork from the approved behavior contract for that check. Record an independent expectation before changing implementation. Include positive, control and unknown-boundary cases, and preserve evidence for the admitted source forms and profile. Do not promote availability, maturity or a blocking policy from a test count alone.\n\n## Change documentation with the product\n\nA change to a command, option, default, schema, supported environment, registration or evidence requires a documentation impact review in the same change. Update the curated English source and its structured provenance, then regenerate HTML/Markdown/JSON. Run drift, example and static-site checks relevant to the changed claim.\n\nIn the owner-provided checkout, use Node 24.18.0 and npm 11.16.0. From the repository root:\n\n```sh\nnpm ci --prefix landing\nnpm ci --prefix website\nnpm run check:drift --prefix website\nnpm run test:catalog --prefix website\npython3 website/scripts/reproduce-public.py\nnpm test --prefix landing\nnpm run build --prefix landing\nnpm exec --prefix landing -- playwright install chromium firefox webkit\nnpm run test:browser --prefix website\nnpm run audit:links --prefix website\n```\n\nThe documentation test command regenerates the static site before checking its public representations. The reproduction command installs locked dependencies in a fresh temporary source directory and compares every exported file; add `--offline` only when the npm cache is complete. The link audit requires both static builds and internet access; an unresolved external target is a failure. The browser tests start local servers for the two artifacts. These commands do not publish anything.\n\nOn the documented native Swift profile, `python3 website/scripts/verify-cli-snapshot.py` builds the pinned analyzer and replays the three examples. It needs dependency access and may take several minutes. Run one outer SwiftPM build at a time. The optional macOS CI job needs a separately configured compatible runner; this documentation does not establish that one is available.\n\n## Review and publish\n\nContent and implementation evidence need review before publication. Check the exact static artifact, every link and fragment, its accessibility and browser behavior, and the rollback package. Required real assistive-technology sessions cannot be replaced by automated DOM checks. The pre-prod remains noindex.\n","anchors":["contributing","make-a-useful-report","change-a-check","change-documentation-with-the-product","review-and-publish"]}
