... | ... | @@ -2,10 +2,31 @@ |
|
|
* **v1**: Branch with new server and old API. For bug resolution.
|
|
|
* **v2**: Branch with new server and new API.
|
|
|
|
|
|
### Project organisation
|
|
|
### Versioning
|
|
|
|
|
|
The *cameo* project contains five main projects *Server*, *Console*, *Java API*, *C++ API*, *Python API* that have their own version but are dependent.
|
|
|
|
|
|
Here are the rules for the definition of the version of a project among *Server*, *Console*, *Java API*, *C++ API*:
|
|
|
* **Major**
|
|
|
* Incremented for all the projects.
|
|
|
* A new value means that the server is not compatible with a client with a smaller major version.
|
|
|
|
|
|
* **Minor**
|
|
|
* If a project among the five has a new functionality, its new minor value is the maximum of the current five minor values plus one.
|
|
|
* The *Python API* minor value must be the same as *C++ API* and the binding should be updated when the *C++ API* is updated.
|
|
|
* If the same functionality is implemented in *Server*, *C++ API*, *Java API*, they can all have the same new minor value.
|
|
|
|
|
|
E.g. the new version of *Java API* with current versions Server = 1.3.1, Console = 1.2.0, Java API = 1.3.3, C++ API = 1.4.1 is 1.5.0.
|
|
|
|
|
|
|
|
|
* **Revision**
|
|
|
* Each project has its own revision value that is incremented when a bug fix or an optimization is done.
|
|
|
|
|
|
When we need to tag the global *cameo* project:
|
|
|
* **Major**: Same as the five projects.
|
|
|
* **Minor**: Maximum of the current five minor values.
|
|
|
* **Revision**: Its own revision value that is incremented when a new tag is made with existing major and minor values.
|
|
|
|
|
|
Currently, the *Cameo* project contains the server Java classes as well as the Java API and C++ API.
|
|
|
If necessary, the C++ API could be taken out.
|
|
|
|
|
|
### Develop on a branch
|
|
|
|
... | ... | |