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 refactoringminor
: 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.