When developing our products, we follow the standard guidelines to writing and documenting code that exist for the specific programming language being used. Please familiarize yourself with the main coding standards of the languages used in the Pip.Services Toolkit and be sure to follow them when developing.
Before creating a pull-request or committing code to a repository, be sure to fully test the code using the standard testing mechanisms available in the programming language you are working with. Tests should cover all developed components and provide enough coverage of the code’s functionality. However, the time it takes for all of the tests to run should not exceed 1-2 minutes.When running and developing tests, it’s necessary to plan a mechanism of safely sending and receiving personal data that might be necessary for the tests (logins, passwords, access keys, etc.). And this information should NEVER end up in the repository!
When creating new modules and components, be sure to include a file that contains a detailed description of the created elements. The following sections must be included:
This information should be placed in a README.md file, located at the root of the repository. Use the following two repositories as examples:
https://github.com/pip-services-infrastructure/pip-clients-metrics-dart
https://github.com/pip-services3-go/pip-services3-container-go
The written code needs to contain an API description, generated using standard mechanisms for the programming language being used. The API description should be placed in the ‘doc’ or ‘docs’ folder - whichever is standard for the language at hand. This folder should also contain the files describing the configuration and instructions on downloading and installing the product. Follow the link below to see an example:
https://github.com/pip-services3-go/pip-services3-elasticsearch-go/tree/master/docs
When changing existing products, add a short description of the changes that were made to the CHANGELOG.md file, making sure to indicate the date, version, and author of the changes.For example:
## 1.0.1 - 20/06/2020
- Fixed small issue in Main component
Our team keeps to the following versioning strategy: