Development Operations#

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) [1]. 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.

Todo

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?)

  1. Understand the differences between Git and Github.

  2. Clone and manage repositories from Github.

  3. Understand the Tudat Git workflow.

  4. Make your first contribution to Tudat.

  1. Understand that “dependency hell” exists and how to avoid it.

  2. Understand MAJOR.MINOR.PATCH and when each of them are bumped.

  3. Understand the order of precedence for version labels.

  4. Obtain an overview of the Rever activities relevant to a Tudat developer.

  5. Understand what happens when rever <new_version_number> is executed.

  6. Be comfortable with the News Workflow for automated changelogs.

This section describes the processes and tools that go into the following executable command using Conda:

conda install tudatpy  # -c tudat-team
  1. Understand what conda-forge is, and what their role is with respect to Conda packages.

  2. Understand how conda-smithy builds, tests and packages across target OS’.

  3. Know how to inspect build status’ of packages on Azure and re-trigger them.

  4. Understand common problems encountered in this workflow and how to resolve them.

https://anaconda.org/tudat-team/tudatpy/badges/version.svg https://anaconda.org/tudat-team/tudatpy/badges/platforms.svg