Usually in an enterprise environment, you develop, test and deploy software systems in stages, with a development, staging or testing, and production environment. There needs to be a way to properly tag and deploy a production ready configuration, as well as continue to work on a new version, collaborate and manage branches. All these are typical methods of software development.
Since development in the Nuxeo Content Services Platform is mainly done with our Nuxeo Studio online tool, we often get asked how Nuxeo supports this process. Let’s take a look at this process today.
The Source Control section of Studio provides Branch Management as well as tagging releases and viewing all changes.
Releases and Tags
All changes in Studio are tracked and can be tagged, marked for release, or reverted to. A Tag allows you to reference a set of changes, by name. It’s then possible to directly revert to that named set or download the Jar file or Package directly. This can be useful during development to mark certain set of changes that are working, while continuing development on new areas or testing. You can also collaborate easily by sharing the name with others.
The Release is similar to a Tag, but it includes named versions. It also appears in your registered Nuxeo instance for download.
During development, you’d want to use the Update button in the Admin section, to directly update the instance with the latest saved change of your Studio project. Also all release tags are shown below that to allow you to deploy a known version.
Just using these two features helps facilitate multiple environments. You would have multiple instances for Dev, Stage/Testing and Production of Nuxeo, and can update to the appropriate Release versions on each, while continuing development within Studio.
Branch Management
Furthermore, Studio also allows for Branching. When you create a Branch you can have even better control of releases to multiple environments. Now you can have a Production branch with its own tags and release versions. This will make it possible to make minor fixes for testing, while another branch can be used for new features in development.
You can switch Branches and have multiple development paths at the same time.
These features provide Source Control as is typical in a software development environment while still being fully hosted and managed by Nuxeo.