GSoC'23 Report - GitHub Actions
Improving Github Actions for the PEcAn Project: Report on my 2023 GSOC project.
What is Google Summer of Code?β
Google Summer of Code (GSoC) is a global program that pairs students with open source organizations to produce code and contribute to these communities while making some money. The whole idea behind this program is to encourage students to get involved in open source contributions.
As part of the program, organizations provide mentors to assist the student throughout the whole process, from learning about the community to contributing code
About PEcAnβ
The Predictive Ecosystem Analyzer (PEcAn) is an integrated ecological bioinformatics toolbox that consists of a scientific workflow system to manage the immense amounts of publicly available environmental data and a Bayesian data assimilation system to synthesize this information within state-of-the-art ecosystems models. It has
-
An application program interface (API) that encapsulates an ecosystem model and provides a standard interface, inputs, and outputs.
-
Core utilities for handling and tracking model run and the flows of information and uncertainties into and out of models and analyses.
-
An accessible web-based user interface and visualization tools.
-
An extensible collection of modules to handle specific types of analyses (sensitivity, uncertainty, ensemble), model-data syntheses (benchmarking, parameter data assimilation, state data assimilation), and data processing (model inputs and data constraints).
If you want to contribute and know more about PEcAn Project, then do join the slack channel.
π Project Details:β
-
Project Title: GitHub Actions
-
Mentor: Rob Kooper
-
Student: Rohan Sasne
-
Organization: PEcAn Project
-
Project Link: GitHub Gist
In this blog post, Iβll be discussing my journey of Google Summer of Code 2023 with PEcAn Project.
Pull Requests and Issues opened in the GSoC periodβ
All my technical contributions across all the repositories of the PEcAn project can be found below:
Google Summer of Code 2023 Work Product Submission
Student: Rohan Sasne (@RohanSasne)
Organisation: PEcAn Project
Project: GitHub Actions - Optimizing CI Pipeline and Utilizing the Whole Docker Stack for Testing
Brief Notes along with weekly progess and learnings can be found here
Overview of Work Doneβ
(Click on the title for link to PR)
The Project:
GitHub Actions is a powerful tool that enables developers to automate their workflows and streamline their software development process. Our project aimed and successfully achieved the following goals:
-
Optimized package version checks in GitHub Actions to limit the number of checks.
-
Utilized the full Docker stack for testing SIPNET.
-
Created a test that runs tests using the develop stack and writes the results to a file in a special branch.
-
Updated the dashboard to fetch data from the special branch and display the results.
Weekly Progress:β
Week 1
-
Discussed with mentor the project goals
-
Successfully created first PR and waiting for mentor/ community review
-
Helped the community on slack to find article to solve a issue
Week 2
-
CI time reduction PR finally merged, after a lot of reviews and feedback π₯³
-
Also created another PR to fix a small documentation redirect bug in the readme
Week 3
-
The PR for testing against the Docker stack using Docker-Compose is UP and in review, hopefully itβll get merged by this weekend
-
Created Another PR which was fixing the Documentation in DEV-INTRO.md and it got merged
-
Created an Issue in the Repository for code cleanup to restrict trigger of workflows in certain less necessary cases
Week 4
-
Created Pull request in the rpecanapi repository to add a API function which takes custom headers as inputs which was missing till now
-
Created an Issue in the Repository for creating an extra function in API to pass on custom headers
-
Opened a draft PR in the PEcAn status board repository
Week 5
- Created *an Issue in the Repository for reporting a bug in the POST API request of the rpecanapi repository*
Week 6 & 7
-
Created a Pull Request optimizing the code in CI pipeline, thereby reducing the repeatability of code.
-
Created an issue, elaborating discussion i had with one of the repository maintainer regarding setting up matrix to reduce the repeatability
-
Created another Pull Request to clean the unnecessary extra condition to check the Pull request on only the main branch
Week 8 & 9
-
Created an Issue in the Repository for Labeling the PR on the basis of type of changes it makes
-
Created an Issue in the Repository for running the docker workflow only after the successful completion of the CI workflow
Week 10 & 11
-
Created a PR to fix the Post API failure issue
-
Created a PR to auto label the PR for better visual clarity in the repository and to keep track of the type of PRβs made in the long run
-
Tested a false PR, to test why we hit the GitHub API rate limit :_
Week 12
- Completed the documentation part of my work submission to google :)
Wrapping Upβ
Google Summer of Code is an excellent opportunity for students to work on a project that matters while also significantly improving their coding skills and teamwork abilities.
Working on this GSoCβ23 project with PEcAn Project was an enjoyable experience. I want to express my gratitude to my mentor, **Rob Kooper** for his constant support and guidance throughout this program. Thank you so much! Working with you was a really fantastic experience, and I look forward to work with you on more open source projects in the future!
Finally, thanks to the GSoC program for providing this wonderful opportunity to work in such a great open source community, I was able to work on such a large real-world project, and I learned a lot throughout this program. I can confidently say that my coding abilities have improved over the ten weeks of GSoC.