Skip to content
/ codeuw Public

Repository of resources and tasks for contributing to scientific software projects

Notifications You must be signed in to change notification settings

uw-ssec/codeuw

Repository files navigation

CodeUW

CodeUW gives UW students the opportunity to gain hands-on coding experience by contributing to scientific software. The repo maintains a collection of tasks across a variety of projects from the Scientific Software Engineering Center (SSEC). The tasks are defined by SSEC engineers and are meant to be small and self-contained pieces of work that can be done in under a week.

By working on these tasks, students have the opportunity to work with SSEC engineers, who will act as mentors, review the code and provide feedback.

Pre-requisites

  • Being a UW student
  • Familiarity with GitHub:
    • Having a github account
    • Knowledge of basic operations, such as pulling/forking a repo, creating branches, making commits and pushing.
    • This is a good resource for getting started on GitHub.
  • Programming experience
    • Fluency in the task's programming language. Most tasks will use python, although certain tasks may require other languages.
    • For python, familiarity with virtual environments and package managers such as venv, pip and conda.

Picking up a task

  • Search through the list of tasks in the repo to find a suitable one. Tasks are categorized in 3 levels:
    • L1: Simple task that can be done in a few hours. These tasks have low coding complexity and won't require much project ramp-up time. Great task to practice the life-cycle of a pull request.
    • L2: Moderate task which may take a couple of days. Will likely require setting up a virtual environment to run the project and get a good understanding of a portion of it, e.g. a module.
    • L3: A step up from L2, likely to take about a week. This type will be either higher coding complexity or have broader scope (ie. multiple modules).
  • Assign the task to yourself. The expectation is that you'll complete the task within the expected timeline (per level) so make sure you'll be able to devote a few hours a day to this.
  • Email the the task owner (SSEC engineer) to let them know you'll be working on this and to ask any initial questions/clarifications

Working on a task

It may be helpful to review this tutorial on how to contribute to open source projects. A typical task workflow is:

  • Fork the code repository specified in the task and clone it locally.
  • Review the repo's README.md and CONTRIBUTING.md files to understand what is required to run and modify this code.
  • Create a branch in your local repo to implement the task.
  • Commit your changes to the branch and push it to the remote repo.
  • Create a pull request, adding the task owner as the reviewer.

About

Repository of resources and tasks for contributing to scientific software projects

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages