Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 2 KB

CONTRIBUTING.md

File metadata and controls

35 lines (22 loc) · 2 KB

Contributing

Thanks for helping improve the Desktop Accounting API Python SDK.

How this repository is built

Most of this repository is generated from the Desktop Accounting API OpenAPI contract by our SDK generator. The same contract produces the Node.js, Python, .NET and Java SDKs and the API reference, so all of them change together.

  • Files that start with a Code generated by packages/sdk-generator. DO NOT EDIT. header are regenerated on every release. Changes made to them directly are overwritten.
  • The runtime (HTTP, retries, pagination, errors, webhooks), the tests, the examples and this documentation are maintained by hand. They are copied into this repository by the same release process.
  • .daapi-sdk.json records the contract digest and SDK version of each generated release.

Because of this, we usually cannot merge pull requests as they are. Open an issue or a pull request anyway: we reproduce the fix in the generator or the runtime, credit you in the changelog, and close the pull request when the regenerated release lands.

Reporting bugs

Open an issue with:

  • the SDK version (for example 0.8.0) and your Python version,
  • the operation you called, for example qbd.invoices.create,
  • the Daapi-Request-Id of the failing call (every error exposes it as its request ID),
  • what you expected and what happened.

Never paste secret keys (sk_live_..., sk_test_...), webhook signing secrets, Web Connector passwords or customer data. Report security issues privately as described in SECURITY.md. Do not open a public issue for them.

Running the checks

The toolchain is pinned in mise.toml. With mise installed:

mise install
mise run check

mise run check builds the SDK, runs the strict compiler and lint settings, the unit tests and the cross-language conformance suite in conformance/, and compiles every code sample in README.md (scripts/readme-samples.mjs; fragments are wrapped in the harnesses in readme-samples/). CI runs the same command.