🛠

Maintaining & Sustaining Software

For maintainers, project leads, and tech stewards.

← Back to All Pathways

Other

Intermediate
🛠

Best Practices for Maintainers

Making your life easier as an open source maintainer, from documenting processes to leveraging your community.

💬 Give Feedback
MaintainerCommunity ManagerStatic Documents
Intermediate
🛠

Building Better Research Software

This short course is teaching tools and practices for producing and sharing quality, sustainable and FAIR (Findable, Accessible, Interoperable and Reusable) research software to support open and reproducible research. The course can be delivered over 2 full or 4 half days.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

CI/CD for Research Software with GitLab CI

This lesson covers the implementation of CI/CD pipelines in research software projects, focusing on automating tests, builds, and deployments using GitLab CI.

💬 Give Feedback
MaintainerContributorShort Training Courses
Intermediate
🛠

Continuous Integration and Delivery with GitHub Actions

This lesson covers how to set up continuous integration and continuous delivery pipelines for automated testing and deployment in software projects.

💬 Give Feedback
MaintainerContributorShort Training Courses
Intermediate
🛠

Effective Code Review

This lesson teaches best practices for conducting and participating in code reviews, emphasizing clear communication and collaborative problem solving.

💬 Give Feedback
MaintainerContributorShort Training Courses
Beginner
🛠

Finding Users for Your Project

Launching a successful open source project involves more than just code. Start your journey here.

💬 Give Feedback
Community ManagerStatic Documents
Intermediate
🛠

Intermediate Python Development

This lesson covers intermediate Python development skills such as writing reusable code, using virtual environments, testing with pytest, and managing dependencies.

Prerequisites

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Intermediate Research Software Development Skills (Python) Lesson Material

This course aims to teach a core set of established, intermediate-level software development skills and best practices for working as part of a team in a research environment using Python as an example programming language (see detailed learning objectives below).

💬 Give Feedback
ContributorMaintainerShort Training Courses
Beginner
🛠

Introduction to Docker for Research NOTE THIS IS NOW CALLED Introduction to Docker and Podman

This lesson covers the fundamentals of Docker, including creating containers, managing Docker images, and using Docker for software reproducibility and deployment.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Metrics

Tracking the success of your project helps you make informed decisions and communicate impact effectively.

💬 Give Feedback
MaintainerContributorStatic Documents
Intermediate
🛠

Modular Programming with Python

This lesson covers modular programming in Python, explaining how to write reusable code in modules, organize codebases, and test them to improve collaboration and maintainability.

Prerequisites

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Python Package Development Best Practices

This lesson covers best practices for building Python packages, focusing on scientific software. It explains how to structure packages, write tests, manage dependencies, and distribute packages via PyPI.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Python Packaging for Beginners

This lesson teaches the essential steps for packaging Python projects and publishing them on PyPI.

Prerequisites

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Python Packaging

This lesson teaches how to create and publish packages in Python. We assume a basic understanding of Python, and assume learners are comfortable using simple commands in a Bash shell.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Beginner
🛠

R Packaging

This workshop will provide you with the basics for writing your own packages in R.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Beginner
🛠

Reproducible Computational Environments using Containers

This session aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments. Such environments are useful for ensuring reproducible research outputs, for example.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Intermediate
🛠

Reproducible Research

This lesson covers the principles of reproducible research, including data management, version control, and the use of tools like Git to ensure that research can be replicated.

💬 Give Feedback
ContributorMaintainerStatic Documents
Intermediate
🛠

Research Software Engineering with Python Course

This course provides an overview of key skills for Research Software Engineers, including software design, version control with Git, testing with pytest, and project management.

💬 Give Feedback
ContributorMaintainerShort Training Courses
Beginner
🛠

Starting an Open Source Project

Launching a successful open source project involves more than just code. Start your journey here.

💬 Give Feedback
ContributorMaintainerStatic Documents
Intermediate
🛠

Testing and Test-Driven Development

This lesson covers how to write tests for your code, understand test-driven development, and use testing frameworks like pytest in Python.

Prerequisites

💬 Give Feedback
MaintainerContributorShort Training Courses
Intermediate
🛠

Unit Testing and TDD in Python

This lesson covers how to write and run unit tests in Python, including an introduction to test-driven development (TDD) and its benefits.

Prerequisites

💬 Give Feedback
MaintainerContributorShort Training Courses