Showing 32 of 32 lessons

Intermediate
📚

Building Community

Building a healthy community helps your project thrive. Learn how to foster collaboration and inclusivity.

Community ManagerGovernanceGuide
Advanced
📚

Leadership and Governance

Effective leadership and governance ensure long-term success for your open source project.

ContributorGuide
Intermediate
📚

Social Coding and Open Source Collaboration

This lesson explores social coding and open-source collaboration using platforms like GitHub. It covers contributing to projects, community engagement, and using social coding tools for collaborative development.

Community ManagerMaintainerTutorial
Intermediate
📚

Writing Documentation for Software Projects

This lesson teaches how to write effective software documentation, including API documentation, user guides, and installation instructions.

ContributorMaintainerTutorial
Intermediate
📚

Making Good Pull Requests

This lesson covers how to create high-quality pull requests for open source projects and collaborative software development teams.

ContributorMaintainerTutorial
Intermediate
📚

Issue Tracking with GitHub

This lesson covers the basics of issue tracking for software projects, including how to create, manage, and close issues on GitHub.

ContributorMaintainerTutorial
Intermediate
📚

Collaborative Git for Teams

This lesson explains how to use Git for collaborative software development, focusing on advanced Git techniques such as branching, merging, and conflict resolution.

ContributorMaintainerTutorial
Intermediate
📚

Collaboration in Open Research Projects

This lesson introduces collaboration in open research projects, focusing on using Git and GitHub to manage contributions, foster collaboration, and ensure transparency in research outputs.

MaintainerCommunity ManagerGuide
Intermediate
📚

Python Packaging

No description available

ContributorMaintainer
Intermediate
📚

Python Packaging for Beginners

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

ContributorMaintainerTutorial
📚

R Packaging

No description available

ContributorMaintainer
Beginner
📚

Introduction to Git

This lesson introduces Git, a distributed version control system, and teaches how to use it to track changes, collaborate on projects, and manage the history of a codebase.

ContributorMaintainerTutorial
📚

How to Contribute to Open Source

No description available

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.

MaintainerContributorTutorial
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.

MaintainerContributorTutorial
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.

MaintainerContributorTutorial
Beginner
📚

Starting an Open Source Project

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

ContributorMaintainerGuide
Beginner
📚

Finding Users for Your Project

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

Community ManagerUser/ConsumerGuide
Intermediate
📚

Metrics

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

MaintainerContributorGuide
Intermediate
📚

Best Practices for Maintainers

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

MaintainerCommunity ManagerGuide
Intermediate
📚

Effective Code Review

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

MaintainerContributorTutorial
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.

ContributorMaintainerTutorial
Intermediate
📚

Building Better Research Software

No description available

ContributorMaintainer
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.

ContributorMaintainerGuide
Intermediate
📚

Intermediate Research Software Development Skills (Python) Lesson Material

No description available

ContributorMaintainer
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.

ContributorMaintainerTutorial
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.

ContributorMaintainerCourse
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.

ContributorMaintainerTutorial
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.

ContributorMaintainerTutorial
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.

MaintainerContributorTutorial
📚

Reproducible Computational Environments using Containers

No description available

ContributorMaintainer
Intermediate
📚

Understanding Software Licensing

This lesson provides an overview of common open-source software licenses, their conditions, and how to choose the right one for your project.

IPGovernanceTutorial