Skip to content
This repository has been archived by the owner on Jul 11, 2024. It is now read-only.

Commit

Permalink
Remove Placeholders and Add GSoC blog (#24)
Browse files Browse the repository at this point in the history
* replace placeholder content and add tweet section

* Add Rohan's GSoC blog
  • Loading branch information
allgandalf authored Sep 14, 2023
1 parent 16f6074 commit 1acc066
Show file tree
Hide file tree
Showing 7 changed files with 225 additions and 23 deletions.
2 changes: 1 addition & 1 deletion blog/2021-08-23-gsoc-blog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
slug: eshan-gsoc-2021-report
title: GSoC '21 Report- Webpage Updates
title: GSoC'21 Report- Webpage Updates
author: Eshan Tripathi
author_title: GSoC'21 participant @PEcAn Project
author_url: https://github.com/eshantri
Expand Down
173 changes: 173 additions & 0 deletions blog/2023-08-28-rohansblog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
---
slug: rohan-gsoc-2023-report
title: GSoC'23 Report - GitHub Actions
author: Rohan Sasne
author_title: GSoC'23 participant @PEcAn Project
author_url: https://github.com/RohanSasne
author_image_url: https://avatars.githubusercontent.com/u/110545952?v=4
tags: [gsoc, gsoc23]
---

![](https://miro.medium.com/v2/resize:fit:720/format:webp/1*C7eMsCNLVVlmP8AShnW70w.jpeg)
## What is Google Summer of Code?

[Google Summer of Code (GSoC)](https://summerofcode.withgoogle.com/) is a global program that pairs students with [open source](https://en.wikipedia.org/wiki/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](https://summerofcode.withgoogle.com/organizations/) provide mentors to assist the student throughout the whole process, from learning about the community to contributing code

<!--truncate-->

## 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](https://join.slack.com/t/pecanproject/shared_invite/zt-50h22ydz-o5Nfj64XYMkR7oAu0Lm8BA)**.

## 👉 Project Details:

* **Project Title: GitHub Actions**

* **Mentor:** [Rob Kooper](https://github.com/robkooper)

* **Student:** [Rohan Sasne](https://github.com/RohanSasne/)

* **Organization:** [PEcAn Project](https://github.com/PecanProject)

* **Project Link:** [GitHub Gist](https://gist.github.com/RohanSasne/40b7e6479d2a273bbde6f658e99a9c28)

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](https://github.com/RohanSasne))
**Organisation**: [PEcAn Project](https://pecanproject.github.io/)
**Project**: [GitHub Actions - Optimizing CI Pipeline and Utilizing the Whole Docker Stack for Testing](https://summerofcode.withgoogle.com/programs/2023/projects/etmBQV5Q)

---


Brief Notes along with weekly progess and learnings can be found [here](https://docs.google.com/document/d/1408RhFI-laNDIJylCzj_l9WjbiXy2eYujn_WDlX2auA/edit?usp=sharing)

## Overview of Work Done
(Click on the title for link to PR)


| PR Title |
| :------: |
|[docs: Fixed 2 typos in gsoc webpage](https://github.com/PecanProject/PecanProject.github.io/pull/24)|
|[build: Reduce Workflow Time for CI GitHub Action](https://github.com/PecanProject/pecan/pull/3176) |
|[docs: Update README.md for correct hyperlink redirect](https://github.com/PecanProject/pecan/pull/3179) |
|[docs: Fix Small Typo in DEV-INTRO.md](https://github.com/PecanProject/pecan/pull/3185) |
|[build: Test Models Against the Full Docker Stack ](https://github.com/PecanProject/pecan/pull/3183)|
|[feat: create connectHost function to input Host header](https://github.com/PecanProject/rpecanapi/pull/18)|
|[build: Add Docker Compose File and Add Model Test Workflow](https://github.com/PecanProject/pecan-status-board/pull/11)|
|[fix: Test the Pull Request on Push to all Branches](https://github.com/PecanProject/pecan-status-board/pull/12)|
| [build: Optimize CI Pipeline Code](https://github.com/PecanProject/pecan/pull/3195)|
| [build: Add PRLabeler GitHub Action Workflow](https://github.com/PecanProject/pecan/pull/3204) |
| [fix: rabbitmq_post_message in Submit.Worflow Post API](https://github.com/PecanProject/pecan/pull/3205) |


| Issues Opened |
| :------: |
|[Should the new SIPNET test run on every PR or should it be scheduled on weekly basis](https://github.com/PecanProject/pecan/issues/3184) |
|[Running CI and Renderbook workflow only for merge request, merge queue and Master Branch](https://github.com/PecanProject/pecan/issues/3187) |
|[New Connect function to accept header requests](https://github.com/PecanProject/rpecanapi/issues/19) |
| [API POST request gives internal server error](https://github.com/PecanProject/rpecanapi/issues/20) |
| [Further reduce code duplication by setting the check command as a matrix variable](https://github.com/PecanProject/pecan/issues/3194) |
| [Should the Docker workflow run only when the CI tests are successful](https://github.com/PecanProject/pecan/issues/3198) |
| [Labeling the Pull Request based on the type of changes it is making](https://github.com/PecanProject/pecan/issues/3199) |
|[GitHub actions failing](https://github.com/PecanProject/pecan/issues/3210)|

**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](https://github.com/PecanProject/pecan/pull/3176) 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](https://github.com/PecanProject/pecan/pull/3176), after a lot of reviews and feedback 🥳*

* *Also created another [PR to fix a small documentation redirect bug](https://github.com/PecanProject/pecan/pull/3179) in the readme*

Week 3

* *The [PR for testing against the Docker stack using Docker-Compose](https://github.com/PecanProject/pecan/pull/3183) is UP and in review, hopefully it’ll get merged by this weekend*

* *Created [Another PR](https://github.com/PecanProject/pecan/pull/3185) which was fixing the Documentation in DEV-INTRO.md and it got **merged***

* *Created [an Issue in the Repository](https://github.com/PecanProject/pecan/issues/3187) for code cleanup to restrict trigger of workflows in certain less necessary cases*

Week 4

* *Created [Pull request](https://github.com/PecanProject/rpecanapi/pull/18) 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](https://github.com/PecanProject/rpecanapi/issues/19) for creating an extra function in API to pass on custom headers*

* *Opened a [draft PR](https://github.com/PecanProject/pecan-status-board/pull/11) in the PEcAn status board repository*

Week 5

* Created [*an Issue in the Repository](https://github.com/PecanProject/rpecanapi/issues/20) 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](https://github.com/PecanProject/pecan/pull/3195), thereby reducing the repeatability of code.*

* *Created [an issue](https://github.com/PecanProject/pecan/issues/3194), elaborating discussion i had with one of the repository maintainer regarding setting up matrix to reduce the repeatability*

* *Created [another Pull Request](https://github.com/PecanProject/pecan-status-board/pull/12) 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](https://github.com/PecanProject/pecan/issues/3187) for Labeling the PR on the basis of type of changes it makes*

* *Created [an Issue in the Repository](https://github.com/PecanProject/pecan/issues/3198) for running the docker workflow only after the successful completion of the CI workflow*

Week 10 & 11

* *Created a [PR](https://github.com/PecanProject/pecan/pull/3205) to fix the Post API failure issue*

* *Created a [PR](https://github.com/PecanProject/pecan/pull/3204) 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](https://github.com/PecanProject/pecan/pull/3209), 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](https://github.com/robkooper)** 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.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"file-loader": "^6.2.0",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-twitter-widgets": "^1.11.0",
"url-loader": "^4.1.1"
},
"browserslist": {
Expand Down
49 changes: 29 additions & 20 deletions src/components/HomepageFeatures.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,28 @@ import nsf from "../../static/img/nsf.png";
import nasa from "../../static/img/nasa-logo.png";
import dep from "../../static/img/dep-energysvg.png";
import energy from "../../static/img/energy-bio.png";
import { Timeline } from "react-twitter-widgets";
const FeatureList = [
{
title: "A state-of-the-art ecosystem model",
Svg: require("../../static/img/nature.svg").default,
description: (
<>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ex earum
corporis, ea molestias doloribus provident nemo necessitatibus eum non.
Quam debitis impedit non accusantium a molestias rem necessitatibus,
soluta fugit.
The Predictive Ecosystem Analyzer (PEcAn) is an integrated informatics toolbox for ecosystem modeling.
PEcAn consists of:

<dl>
<dt><b>An application program interface (API):</b></dt>
<dd>It encapsulates an ecosystem model, providing a common interface, inputs, and output.</dd>

<dt><b>Web-based user interface</b></dt>
<dd>An accessible web-based user interface and visualization tools</dd>

<dt><b>Extensible collection of modules</b></dt>
<dd>An extensible collection of modules to handle specific types of analyses , model-data syntheses , and data processing </dd>
</dl>


</>
),
},
Expand All @@ -22,22 +34,7 @@ const FeatureList = [
Svg: require("../../static/img/environment.svg").default,
description: (
<>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ex earum
corporis, ea molestias doloribus provident nemo necessitatibus eum non.
Quam debitis impedit non accusantium a molestias rem necessitatibus,
soluta fugit.
</>
),
},
{
title: "Made using best available models",
Svg: require("../../static/img/environmental_study.svg").default,
description: (
<>
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ex earum
corporis, ea molestias doloribus provident nemo necessitatibus eum non.
Quam debitis impedit non accusantium a molestias rem necessitatibus,
soluta fugit.
PEcAn is and will always be a <b>free</b> and <b>open source</b> software for the betterment of the scientific community and humanity.
</>
),
},
Expand Down Expand Up @@ -126,6 +123,18 @@ export default function HomepageFeatures() {
<img src={dep} className={styles.image} />
<img src={energy} className={styles.image} />
</div>
<div className={styles.timeline}>
<Timeline
dataSource={{
sourceType: "profile",
screenName: "PEcAnProject"
}}
options={{
height: '400rem',
width: '50rem'
}}
/>
</div>
</div>
</div>
);
Expand Down
7 changes: 7 additions & 0 deletions src/components/HomepageFeatures.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@
align-items: center;
flex-direction: column;
}
.timeline {
margin: 5rem 0 0;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
.imageContainer {
display: flex;
justify-content: space-between;
Expand Down
4 changes: 2 additions & 2 deletions static/utils/contributors.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ const contributors = [
},
{
name: "Tony Gardella",
email: "[email protected]",
role: "PEcAn Co-PI",
email: "",
role: "",
profession: "Project Manager, Boston University",
img: "https://pecanproject.github.io/images/tonyg_pic.jpg",
}
Expand Down
12 changes: 12 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5488,6 +5488,11 @@ loader-utils@^2.0.0:
emojis-list "^3.0.0"
json5 "^2.1.2"

loadjs@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/loadjs/-/loadjs-4.2.0.tgz#2a0336376397a6a43edf98c9ec3229ddd5abb6f6"
integrity sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==

locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
Expand Down Expand Up @@ -7079,6 +7084,13 @@ react-textarea-autosize@^8.3.2:
use-composed-ref "^1.3.0"
use-latest "^1.2.1"

react-twitter-widgets@^1.11.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/react-twitter-widgets/-/react-twitter-widgets-1.11.0.tgz#77daa682e15a0839d9a4124dd0958995f3438a43"
integrity sha512-PMCLJQc30iqy01y1b2+HnMfCX+ZkOxWaPKJb4BhHgOgjSjoZb68K5T0nq3q+3YbX9K7OH0bhptgDihtBG/BqRQ==
dependencies:
loadjs "^4.2.0"

react@^17.0.1:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
Expand Down

0 comments on commit 1acc066

Please sign in to comment.