The IoTivity Open Source Project will follow a branch-for-release policy. Under this scheme, new feature development and the majority of bug fix activity happens against the mainline (also known as development or trunk) branch. As a release approaches, a release branch is created in order to stabilize the code for the release. Release branches should not be the target of new feature development. Bug fixes made during this release stabilization process need to be merged to mainline in a timely fashion.
If a device category specific development is needed, it should be branched from the release branch at the latest time possible, to minimize merge impacts.
New feature development will happen in branches due to the nature of the version control tools in use. However, out-of-mainline feature development should be kept to the shortest time possible to minimize merge impacts. The objective should be to get to “maintainer accepts” early, allowing further refinement to happen in mainline where it will be seen by the largest number of developers and give them the longest time to adapt to the new feature.