CASA Software Engineering Project: Evaluate Cross Platform Package Managers
The list of CASA supported OSs
has grown from 2 (RHEL 4.x and one version of OS X) to 7, and there is ongoing pressure to increase support. CASA has been trying to distribute native packages for both 3rd party development tools and published CASA packages. At this time, CASA is not meeting OS support requirements, and does not look like it can within available resources.
Evaluate cross platform package managers to see if any help reduce the work of delivering CASA 3rd party packages to developers and CASA packages to users enough to offset the costs of adoption.
- Collect requirements.
- Collect candidates.
- Eliminate candidates as quickly as possible.
- For each of the top three remaining candidates.
- Try with trivial example
- Try with non-trivial example
- Requirements used to evaluate candidates.
- List of all candidates evaluated.
- For each reject, give reason.
- Report comparing top three candidates, with recommendation.
- Admin instructions for setting up candidate for use by users.
- User instructions for using candidate to install CASA 3rd party packages for developers.
- User instructions for using candidate to install CASA packages for users.
Candidate cross platform package managers must meet these requirements:
- Co-exist with native platform package managers for all CASA supported OSs.
- Allow us to override platform packages without breaking other software on that platform.
- Allow us to install several consistent sets of CASA 3rd party packages and CASA packages at the same time without interfering with each other. For example, to support old and new 3rd party packages while transitioning between versions.
- Not require complex configuration by users.
- Allow CASA to deliver binary packages.
- Minimize the number of platforms we must build on before publishing packages.
- Allow users to install binary packages where they like (and have write permission), without rebuilding.
- Allow users to setup a developer environment easily.
- Must not cause CASA to run more slowly.
(Note: replace this note with a one paragraph summary of the design for this project, a short bullet list of design details, or link(s) other pages documenting the design for this project.)
(Note: replace this note with a one paragraph summary of the implementation for this project, a short bullet list of implementation details, or link(s) other pages documenting the implementation for this project. Often, this will be a bullet list including the location for any source code in change control and any user accounts or computers required by this project.)
Project tasks are tracked with Jira sub-tasks under this project's master task. See CAS-5685