Contributing
Contributions happen in crsdk/alpha-sdk-api. The REST server, the OpenAPI specification and this documentation site all live in that one repository, so a change to an endpoint updates the implementation, the contract and the docs in the same commit.
Local setup
Section titled “Local setup”-
Clone the repository
Terminal window git clone https://github.com/crsdk/alpha-sdk-api.git -
Download the Camera Remote SDK from Sony
Accept the licence on the official Sony download page, then place it with the
crsdkCLI — it extracts the SDK into the right layout for you:Terminal window crsdk install --zip /path/to/CrSDK.zip -
Install build prerequisites
CMake and a C++ toolchain. JSON is vendored in
api/server/third_party/jsoncpp, and OpenSSL was deliberately removed, so there are no other runtime dependencies to install. -
Build the server
Terminal window crsdk build -
Run it
Terminal window ./CameraWebAppThen confirm it is alive:
Terminal window curl http://localhost:8080/api/server/status
What you must not commit
Section titled “What you must not commit”shared/core/ holds Sony’s stock SDK sample helpers, fetched locally and
not tracked here. Never edit them. The REST server’s own device logic is MIT
code under api/server/src/device/, and that is where changes belong.
CI enforces this on the public repository: a job fails the build if any SDK source, SDK binary, or compiled artefact is committed.
Pull request checklist
Section titled “Pull request checklist”- No Sony SDK files, SDK binaries, build folders, camera media or local credentials are added.
- The OpenAPI contract and the implementation agree — a new endpoint is not
done until
api/openapi.yamldescribes it. - If
api/openapi.yamlchanged: the docs undersite/src/content/docs/were updated in the same PR, andcrsdk gen:mcpwas run and committed (a multi-step tool also gets a hand-written composite inmcp/src/tools/). CI’sspec-docs-syncandmcpjobs enforce this. See thealpha-sdk-sync-artifactsskill. - The change is backwards-compatible — no removed/renamed/retyped spec elements or tightened validation (or it carries an approved breaking-change plan).
- Unit and static checks pass; relevant end-to-end checks from
docs/TESTING.mdwere run, or skipped with a stated reason. - Hardware-dependent behaviour lists camera model, firmware, connection mode and SDK version. “Works on my camera” is not a test note.
- Any model-specific claim is backed by the SDK documentation or the camera help guides — not inferred from one body.