Repository Structure
The repository is designed with a consistent structure that is intended to be easy to approach as either a contributor or a team member. Structure of the repository follows language-specific guidelines.
Repositories are named according to the language:
- tcp-sdk-for-net (C#)
- tcp-sdk-for-js (JavaScript)
- tcp-sdk-for-python (Python)
- tcp-sdk-for-java (Java)
The folder structure of the SDK repository is organized into build, sdk, and samples at the top level:
- /build - Scripts to build, test, and deploy the package libraries into a package management system
- /sdk - Primary SDK source code folder for each service components
- /samples - Code samples in the form of short code snippets and sample applications
The following documentation exists as markdown files in the root folder, and describe the guidelines of that language-specific SDK.
- README.md - Answers the what, why, and how of the project
- GETTING_STARTED.md - Contains information about practices of the development environment, code coverage, documenting the comments, and more
- CODE_OF_CONDUCT.md - Explains how to engage and address any problems among the members of project community
- CHANGE_LOG.md - Describes the what activities have occurred in the repository, with version number and release notes
- SUPPORT.md - Explains how to file issues and get help
The /sdk folder contains folders for each service, which in turn contain folders for each package that is associated with that service.
{ align=left }
Repository Branching
The Trimble Cloud Platform SDK repository follows GitFlow branching strategy. Before raising a pull request, developers should:
- Take a branch from the the develop branch and work on the feature or bugfix. Rebase the code.
- To reduce the clutter of branches and to enable a common workflow, contributors should create forks of the develop repository and work in the forks. Once work is ready in the fork then a pull request can be submitted back to the develop repository.
The following diagram illustrates the branching workflow for the Trimble Cloud Platform SDK repository:

Main Branches
The main repository branches are:
- main - It is default branch that exists perpetually and must always be in a working state.
- develop - This branch has the same role as master; it always reflects the latest delivered development changes for the next release.
Feature Branches
Features should be branched off from develop and kept in a local or forked repository. The branch naming is as follows:
feature/<feature_name>Once the work is ready, rebase the changes on top of develop branch and submit a pull request to the develop branch.
Hotfix Branches
Under some circumstances we may need to service a specific version of the code with a hotfix. In these cases, we create a branch off from main and name the hotfix branch as follows:
hotfix/<hotfix_name>Release Branches
This branch is for the preparation of release packages. Branch the release branch from develop and then merge back to both develop and master along with tags. A release branch should be named as follows:
release/<release_name>Once the release is shipped with a new version, the SDK team deletes the particular release branch.