CodeFests - Earth Prediction Innovation Center

CodeFests

EPIC CodeFests banner

Welcome to EPIC CodeFests!

A codefest is a gathering of cross-functional community members to complete a short, rapid development project around a specific topic. The goal is to create functioning software around a desired feature by the event’s completion. EPIC offers hackathons on a quarterly basis; check back regularly to register!

Next CodeFest:

UPCOMING EVENT

CodeFest Fall 2023:

Unit Testing Framework for the UFS

September 18-22, 2023

9am – 5pm EDT
Hosted on Google Meet with breakout rooms

The EPIC Team has built a framework using CTest to enable unit testing in the UFS Weather Model and its associated applications. The CTest framework will allow users to test functional code quickly and check that new user-implemented features work as intended. The event will be hosted September 18-22, 2023, on Google Meet with breakout rooms. This week-long virtual CodeFest is open to participants of all experience levels. Join up with folks from around the country, work together to fix theoretical vulnerabilities and issues in the UFS unit testing framework, and get feedback from EPIC’s subject matter experts. Participants/Eligibility: Anyone interested in using the unit testing framework.

The next CodeFest event will be held on June 19-23, 2023

Check this page for updates

New content is coming soon!

 

Short-Range Weather CodeFest 2022: UW Toolkit

December 5-9, 2022

Hosted on Google Meet with breakout rooms

The EPIC Team is hosting a week-long virtual CodeFest open to participants of all experience levels. Join up with folks from around the country, work together to fix theoretical vulnerabilities and issues in the Unified Workflow Toolkit, and get feedback from EPIC’s subject matter experts. 

Objective: Create functioning software around a desired feature by the event’s completion. This event will work on the Unified Workflow (UW) tools: https://github.com/ufs-community/workflow-tools. The Unified Workflow (UW) Toolkit provides the mechanism for moving data, submitting jobs, and generating and managing configuration files for the SRW Application. 

Participants/Eligibility: Anyone interested in the UW Toolkit or weather forecasting code. Limited to 100 participants.

Judging Criteria: Points will be provided based on the number of successfully mitigated findings in SonarQube.

CodeFest Agenda

Times listed in Eastern Standard Time

Past CodeFests

EPIC CodeFest June 2024: Land Data Assimilation (DA) System

Outcomes and Value

The EPIC team put together an informative week-long event that mixed hands-on learning and presentations to build the community's skills in understanding and contributing to the Land DA System. Eleven people signed up for the event, and there was a core group of six users that attended the weekly activities. Activities over the week started with education and training on command line and GitHub contribution processes. Then participants built the Land DA System on AWS and on local machines. Using Packer to build Land DA was a great way to show users how to get started easily with the application. 

Content covered over the course of the week included: 

  • Hands-on review of basic GitHub commands
  • Information on accessing cloud resources
  • Advanced GitHub training and information on contributing to GitHub repositories
  • A walkthrough of building and running Land DA on AWS cloud
  • Building the cloud infrastructure needed to replicate this experiment
  • Building other supported applications in the cloud

The largest feedback we received was related to finding a way to replicate this work. The following two links will allow participants to do this: https://github.com/NOAA-EPIC/packer-srwcluster and https://s3.amazonaws.com/epic.sandbox.content/landDA-offline-AWS.txt. In general, feedback on application support was that building UFS applications locally on Mac OS and other non-supported systems can be very challenging. Users may need to update software to ensure the same build environment. It would be helpful to have scripts that are included with future releases to better support local builds of these applications and to better support academia. 

EPIC CodeFest September 2023: Unit Testing Framework for the UFS

Outcomes and Value

The EPIC team put together an informative presentation to align the community around how we can increase the unit/functional testing capability. We had 17 users sign up for the Code Fest around unit testing. The event included walking through how to run, debug, look at success, look at failures, and manipulate and rerun unit tests. This was the last part in a series to really push the community at putting more time into testing. The slide presentation above is a great example of how a user can come in with very limited knowledge and leave with working examples of how they can be effective at checking in unit tests with their working innovation code. To look at the presentation slides after the event, they are published here: https://s3.amazonaws.com/epic.sandbox.content/code_fest_unit_testing.pdf . After the code fest, two colleagues at University of California San Diego and Cooperative Institute for Research in the Atmosphere (CIRA) talked to us about use case that we have been working on. They need the ability to build and run UFS on their academic HPC systems, and we have a story backlogged to work with them so that academia can deploy and start utilizing/teaching UFS and its associated applications.

EPIC CodeFest June 2023: Unit Testing Framework for the UFS

Outcomes and Value

The EPIC team delivered a compelling presentation to unite the community around increasing our unit testing capabilities. We had 15 users sign up for the Code Fest focused on unit testing. This event covered how to run, debug, review successes and failures, and manipulate and rerun unit tests. It was the second in a series aimed at encouraging the community to dedicate more time to testing. The linked slide presentation is an excellent example of how a user can start with limited knowledge and leave with practical examples of how they can effectively incorporate unit tests with their working innovation code. The presentation slides can be accessed after the event here: https://s3.amazonaws.com/epic.sandbox.content/code_fest_unit_testing.pdf

EPIC CodeFest April 2023: Unit Testing Framework for the UFS

Outcomes and Value

The EPIC team put on a great presentation to align the community around how we can increase the unit testing capability. We had 18 users sign up for the Code Fest around unit testing by Dr. Yi-Cheng Teng. He put on a powerful demonstration around running unit tests. It included walking through how to run, debug, look at success, look at failures, and manipulate and rerun unit tests. The slide presentation below is a great example of how a user can come in with very limited knowledge and leave with working examples of how they can be effective at checking unit tests with their working innovation code. To look at the presentation slides after the event, they are published here: https://s3.amazonaws.com/epic.sandbox.content/code_fest_unit_testing.pdf

Short-Range Weather Application: The Unified Workflow Toolkit

Outcomes and Value

This Challenge was a way for the community to start working with UFS repositories from a modern take. The Unified Workflow repository is 100% python, and has unit testing, code standards, and code re-use built in. So, this was the first training that taught users how to checkout repositories, make contributions and then submit their peer-reviews for analysis. The unified workflow repository will be a great way for the broader community to learn about the UFS applications by starting with a repository that is more easily understood. This will drive users to let us know what other tools they would find beneficial, and be a  gateway to start understanding the more research intensive application repositories.

New ideas: It was brought up that industry uses more modern tools such as Jupyter notebooks, and more modern libraries. We should work with operations at NOAA to have a process to more easily scan libraries that the community would like to use so that we can help modern ideas continue to drive innovation, and shape legacy processes that need to modernize.

Outcomes and Value

The Hack-a-thon went really well this time.  The OCE thinks it went well, because we had so many students that were engaged throughout the week (~12).  We had a conference help channel open all week, and some users came in and asked some really great questions. The winner mitigated over 700 vulnerabilities, which was a serious undertaking for them (out of a possible 750)! Working on small bugs like this is a great way to get hands on experience into a new baseline, and walk away with a better understanding of how the repositories are structured and the level of effort needed to engage further.

Screenshot of Winter Hackathon 2022 project
Screenshot of Winter Hackathon 2022 project.

Outcomes and Value

The best way to learn new repositories and get familiar with new applications is to work small bugs and cyber fixes. This hackathon was the second in a two-part series begun in the Summer Hackathon. It focused on reworking the bugs and vulnerabilities in the SRW and MRW baselines. This allowed the community to have a clean cyber scan all while getting used to the baseline and SonarQube. Future hackathons will look at other baselines and continue to familiarize community members with the entire suite of repositories that support the UFS community.

Outcomes and Value

The best way to learn new repositories and get familiar with new applications is to work small bugs and cyber fixes. This hackathon was the first in a two-part series focused on reworking the bugs and vulnerabilities in the SRW and MRW baselines. This allowed the community to have a clean cyber scan all while getting used to the baseline and SonarQube. Future hackathons will look at other baselines and continue to familiarize community members with the entire suite of repositories that support the UFS community.