DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) :citewiki:DevOps
. Tudat relies on open source solutions for development; GitHub for its hosted version control system (VCS), Conda
for it's package manager, and Azure
for it's continuous integration (CI) service.
Discuss with team whether learning goals should be presented at this level or whether a clean practical use case of the section should be presented. (i.e. Package Management: conda install tudatpy
, what goes on behind the scenes into making this possible?)
github
Code Collaboration
^^^
- Understand the differences between Git and Github.
- Installing and configuring the
git
command for use. - Create, clone and manage repositories from Github.
- Understand the Tudat Git workflow.
bullhorn
Release Versioning
^^^
- Understand what "dependency hell" is and how to avoid it.
- Understand
MAJOR.MINOR.PATCH
and when each of them are bumped. - Understand what happens when
rever <new_version_number>
is executed. - Understand how to maintain the automated changelog.
cubes
Package Management
^^^
This section describes the processes and tools that go into the following executable command using Conda:
conda install tudatpy # -c tudat-team
cloud-upload
Continuous Deployment
^^^
- Understand what
conda-forge
is, and what their role is with respect to Conda packages. - Understand how
conda-smithy
builds, tests and packages across target OS'. - Know how to inspect build status' of packages on Azure and re-trigger them.
- Understand common problems encountered in this workflow and how to resolve them.
devops/code_collaboration devops/release_versioning devops/package_manager devops/continuous_deployment