Skip to content

Latest commit

 

History

History
88 lines (51 loc) · 2.04 KB

File metadata and controls

88 lines (51 loc) · 2.04 KB

Contributing

Read GOVERNANCE.md before proposing major changes.

Follow the shared Xquik contribution policy.

Set Up

Install uv, then run:

./scripts/bootstrap

The bootstrap installs supported Python runtimes and locked dependencies.

Without uv, install requirements-dev.lock inside an isolated environment.

Never commit credentials or runtime environment files.

Generated Code

Most SDK files come from the public OpenAPI contract.

Preserve generated method names and response contracts.

Avoid generated-file changes when a generator fix exists.

Place stable examples outside generated directories.

Verify Changes

Run focused tests while editing.

Run every gate before requesting review.

./scripts/lint
./scripts/test
./scripts/coverage
./scripts/audit
uvx --from reuse==6.2.0 reuse lint
./scripts/check-reproducible

Statement coverage must remain at least 90%.

Branch coverage must remain at least 80%.

Add regression tests for every corrected defect.

TEST_API_BASE_URL accepts literal loopback addresses only.

This guard prevents tests from mutating remote services.

Build From Source

Build both public distributions:

uv build

Install the wheel inside a clean environment for integration testing.

Submit changes

Use clear Conventional Commit subjects and sign commits with git commit --signoff. Follow the shared review policy.

Report Security Issues

Never disclose suspected vulnerabilities in public issues.

Follow SECURITY.md for private reporting.

Releases

Publish an immutable v* release after its commit reaches main.

The protected pypi environment uses PyPI trusted publishing.

Manual workflow runs must target a version tag.

Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.