Skip to main content

This specification uses the keywords MUST and SHOULD to indicate the level of obligation.

  • MUST – The Client SDK must implement this as specified.
  • SHOULD – The Client SDK should implement this as specified, but alternative approaches may be used to suit specific needs or conventions.

Configuration

The Client SDK MUST support both of the following configuration methods:

  • Configuration options (e.g., config files or structs)
  • Environment variables

Account

The Client SDK MUST support using multiple BigONE accounts simultaneously.

Rate Limit

The Client SDK MUST adhere to the API rate limits defined in the BigONE Pro API documentation and actively control request frequency.

Logging

The Client SDK MUST implement logging functionality.

By default, logs from the Client SDK MUST be output to STDOUT.

The Client SDK MUST support configurable log levels and allow logs to be directed to different outputs.

Documentation

The Client SDK MUST provide complete example documentation to assist developers. The documentation SHOULD include installation, integration, configuration, and usage examples.

The Client SDK MUST provide comments for each API. These comments SHOULD include method usage, parameters, return values, and more.

Versioning

The Client SDK version number SHOULD follow the format major.minor[.maintenance].

  • major: For breaking changes or refactoring
  • minor: For new features or modifications (that may or may not be backward compatible)
  • maintenance: Patch releases that only include bug fixes and SHOULD NOT introduce API changes

The Client SDK MUST publish new versions on GitHub using tags. Tag names MUST follow the format vX.Y.Z.

The Client SDK SHOULD also use GitHub Releases to publish version details.

If the Client SDK language has a package manager, the SDK MUST publish versions to the appropriate platform (e.g., rubygems, npm, pypi, etc.). The documentation should also show how to install it from the package manager.

Changelog

The Client SDK MUST maintain a Changelog. The Changelog MUST include all changes made in each version update.