Our software consists of several different packages that get deployed to our robotic platforms. Each package has its own repository that is stored in a BitBucket project. When we execute an official release, there are many repositories to track and migrate from the development environment to the testing and production environments. Our release cycle also involves the participation of several different stakeholders within the organization to perform various operations/actions at the various stages of this process including (but not limited to) engineering, quality assurance and marketing.
Part 1 - Design a Release Cycle
Based on the background scenario above, how would you design a software release cycle that will migrate code from the development repositories and turn them into deployable packages for our robot platform?
Part 2 - Technical Review (building cartographer)
The software build process often includes working with multiple dependencies which in turn can include their own dependencies which need to be built and deployed into production, development, and test environments. Please define a virtualized environment which will build and install Google’s cartographer project for Ubuntu 18.04. Then package this version of Cartographer and its dependencies into a deployed package(s). Finally write a brief 1-2 paragraph description of what you did, any issues you encountered, and how you addressed them.
The GitHub project for cartographer can be found here:
[login to view URL]
A document that describes your layout and design of the software release cycle.
A docker file or similar virtual environment definition which will build the cartographer package for ubuntu 18.04.
Deployable package(s) to install cartographer without recomploation.
A paragraph explaining any issues encountered during the build process for
cartographer and how these issues were resolved.