CodeFests

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 June 2023:
Unit Testing Framework for the UFS
Monday, June 19, 2023 – Friday, June 23, 2023
Hosted on Google Meet with breakout rooms
The Data, Testing, and Optimization (DTO) Team has built a framework using CTest to enable unit testing in the UFS Weather Model and its associated applications. Using CTest will allow users to test functional code quickly and provide a sanity check that new user-implemented features work as intended. 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 unit testing framework, and get feedback from EPIC’s subject matter experts.
A robust unit testing framework will provide the UFS community the ability to speed up development and quickly test innovative ideas. The EPIC Team will host a community event that shows users how to create and understand the unit testing framework that the applications will utilize. This will allow users of all skill levels the ability to make sure that their ideas work at a fundamental level without the need for longer regression, dependency, and integration testing. The community will engage together to add as many unit tests as possible after developing an understanding of the provided framework. As a community, we can improve the level of unit testing to where ideas can become innovations significantly faster.
Unit Testing Benefits:
- Test new functional code
- Make sure code additions do not break existing functionality
- Allow a compilation of high-quality unit tests to show the overall health of an application
- Increase the speed of development by having a quick and efficient testing capability for the overall application
Objective:
Show users how to create and understand the unit testing framework that the applications will utilize.
Participants/Eligibility:
Anyone interested in using the unit testing framework. Limited to 100 participants.
Judging Criteria:
Monday, June 19, 2023 through Friday, June 23, 2023 9am – 5pm EDT
An impromptu video teleconferencing link will be provided and monitored over the course of the event for assistance or questions to help participants be successful.
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
9am – 5 pm EST
Impromptu video teleconferencing link will be provided and monitored over the course of the event for assistance or questions to help participants be successful.
Past CodeFests
- EPIC Spring CodeFest 2023
- EPIC Winter Break CodeFest 2022
- EPIC Winter Hackathon 2022
- EPIC Fall Hackathon 2022
- EPIC Summer Hackathon 2022
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://epic-sandbox-content.s3.amazonaws.com/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.

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.