diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..61ca591 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,14 @@ +--- +default_stages: + - commit + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: end-of-file-fixer + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: "v3.0.2" + hooks: + - id: prettier diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..e69de29 diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..24d3b9f --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,6 @@ +overrides: + - files: "*.md" + options: + parser: remark + proseWrap: always + printWidth: 80 diff --git a/README.md b/README.md index 99ebc5c..40f25da 100644 --- a/README.md +++ b/README.md @@ -1 +1,8 @@ -# gsoc \ No newline at end of file +# Google Summer of Code + +> "Google Summer of Code is a global, online program focused on bringing new +> contributors into open source software development. GSoC Contributors work +> with an open source organization on a 12+ week programming project under the +> guidance of mentors." + +Source: [Google Summer of Code](https://summerofcode.withgoogle.com/) diff --git a/organization-questionnaire/gsoc2024.md b/organization-questionnaire/gsoc2024.md new file mode 100644 index 0000000..567bd7a --- /dev/null +++ b/organization-questionnaire/gsoc2024.md @@ -0,0 +1,58 @@ +# Open Science Labs Organization Questionnaire for GSoC 2024 + +This file contains the Open Science Labs organization's questionnaire for Google +Summer of Code (GSoC) 2024. + +## Why does your organization want to participate in Google Summer of Code? + +Open Science Labs aims to uplift small projects that often go unnoticed by big +open-source organizations. Google Summer of Code will be the perfect platform to +give these projects the recognition they need to attract new contributors and +develop new code. + +Open Science Labs plans to participate as an umbrella organization, with the +sub-organization being open-science or open-source. The participation will +enable these smaller projects to grow, become self-sufficient, and, in the +future, apply for grants available only to well-established projects. Open +Science Labs has previously successfully participated in GSoC under the NumFOCUS +umbrella. + +## What would your organization consider to be a successful GSoC program? + +A successful Google Summer of Code program will include developing good quality +code, documentation, and infrastructure, as well as an increase in engagement +within the sub-organizations and Open Science Labs as a whole. The student's +decision to keep contributing to the project after the official funding ends +will also be an essential factor in the success of this program. Finally, the +projects and the mentors learning how to welcome and onboard new contributors +regularly will also contribute to the program's success. + +## How will you keep mentors engaged with their GSoC contributors? + +Open Science Labs admins will regularly check with every project regarding their +progress and if they need any additional support. The admins themselves will be +mentoring a few projects; hence, they will be involved in the mentoring process. +Furthermore, we plan on conducting biweekly surveys for both the mentors and the +students so that we can identify any potential gaps and act on them. Lastly, +asking the students to write biweekly blogs will allow us to monitor their +progress and how involved the mentors are in the project. + +## How will you keep your GSoC contributors on schedule to complete their projects? + +We will require the students to write biweekly blogs on our website to track +their progress and to keep them motivated. Open Science Labs as a whole will +involve them in our community and developer meetings, instilling a sense of +belonging. We will also encourage them to present their work in topical meetings +held during the summer. Finally, we will regularly meet with the +sub-organisations to keep track of the work. + +## How will you get your GSoC contributors involved in your community during GSoC? + +Open Science Labs is a very welcoming community. Our organization has members +from multiple countries, and most meetings are held in Spanish and English to +accommodate everyone. We will invite every selected student to these meetings +and make them feel welcome. We will also encourage them to present their work in +blogs and topical meetings, where they can interact with students and mentors +working under a different sub-organization. Finally, we will share the students' +work with our partners and on our social media channels to boost their +visibility within the open-source scientific community. diff --git a/organization-questionnaire/gsoc2025_proposal.md b/organization-questionnaire/gsoc2025_proposal.md new file mode 100644 index 0000000..2eb5e34 --- /dev/null +++ b/organization-questionnaire/gsoc2025_proposal.md @@ -0,0 +1,109 @@ +# Open Science Labs Organization Questionnaire for GSoC 2025 (Proposal) + +## About Open Science Labs + +### Short description + +Open Science Labs is a global community dedicated to creating an open space for +teaching, learning, and sharing information about open science and computational +tools. Our community develops tools that address real-world problems and +collaborates with other projects and workgroups to improve technology and create +international opportunities for our community. + +### Long description + +Open Science Labs is a global community dedicated to creating an open space for +teaching, learning, and sharing information about open science and computational +tools. Our community develops tools that address real-world problems and +collaborates with other projects and workgroups to improve technology and create +international opportunities for our community. Although our focus may seem +broad, we initially prioritize supporting Research Software Engineers (RSEs) who +often face computational challenges in their work. We recognize that many +colleagues in scientific fields may not be familiar with programming languages, +computational libraries, version control systems, databases, DevOps, and other +computational tools. Therefore, we aim to provide a safe and open space for +individuals to learn and share their knowledge. Our community is open to +everyone, including students, professors, and industry professionals, as we +believe that the challenges and technologies used in these fields are frequently +similar, if not the same (in many cases). + +## Primary open source license + +BSD 3 Clause: + +## Why does your org want to participate in GSoC? + +Open Science Labs aims to participate in Google Summer of Code (GSoC) to further +its mission of promoting open science and collaborative development. By +participating in the program, the organization will be able to connect with +students from diverse academic backgrounds and skill levels, empowering them to +contribute their unique perspectives and skills to open source projects and +apply their knowledge to real-world, impactful work. Furthermore, Open Science +Labs will serve as an umbrella organization, partnering with promising open +science and open source projects that often lack visibility to help them get the +recognition and support they deserve. + +## What would your organization consider to be a successful GSoC for your org? + +Open Science Labs would consider GSoC successful if it achieves meaningful +outcomes in line with its mission. This includes empowering students by +providing them with mentorship, guidance and the opportunity to develop valuable +skills in open source development. Success would also be reflected in the +advancement of open source tools, with students contributing to the improvement +of existing tools or the creation of new ones that benefit the open science +community. In addition, fostering a sense of collaboration and community among +participants, both during and after the program, would be a key indicator of +success. Ultimately, a successful GSoC would not only drive innovation and +growth for the open source projects, but also inspire students to continue +contributing to these projects, further increasing the organization's impact. + +## How will you keep mentors engaged with their GSoC contributors? + +At Open Science Labs, the commitment of mentors to their GSoC participants is +rooted in our core values of collaboration, innovation, and openness, as well as +our commitment to education and community growth. Mentors at OSL are naturally +passionate about fostering learning and development, which drives their +commitment to mentoring students throughout the program. Additionally, many of +them are authors and/or maintainers of the projects. At Open Science Labs we +emphasize the importance of peer-to-peer learning, where mentors not only share +their expertise, but also gain fresh perspectives from students. By aligning +mentorship with our formula for success - empowering the community through +tools, resources and support - we ensure that mentors stay motivated and +invested in helping contributors succeed, ultimately contributing to the lasting +impact of open science and technology. + +## How will you keep your GSoC contributors on schedule to complete their projects? + +To keep GSoC contributors on schedule and ensure the successful completion of +their projects, Open Science Labs will implement a structured yet flexible +approach. This includes establishing clear milestones and deliverables from the +start, scheduling regular check-ins for progress reviews and feedback, and +encouraging the use of project management tools. Mentors will actively guide +contributors, fostering open communication and providing support to overcome +challenges. By breaking down larger goals into manageable tasks and maintaining +a supportive environment, Open Science Labs will ensure contributors stay +motivated, productive, and on track to deliver impactful results. Additionally, +with an open and active community, students can raise any questions in the chat +channels on Discord. + +## How will you get your GSoC contributors involved in your community during GSoC? + +To get GSoC contributors involved in the Open Science Labs community during +GSoC, we will leverage our welcoming and inclusive environment. Students will be +encouraged to present their work in blogs and topical meetings, helping them +gain confidence and interact with peers and mentors across sub-organizations. +Their work will be shared with partners and on social media to boost visibility +within the open-source scientific community. To further integrate them, +contributors will participate in community events, workshops, and collaborative +projects, fostering a sense of belonging and active engagement within the Open +Science Labs ecosystem. Additionally, they will have opportunities to share +their interests and connect with like-minded collaborators. + +## Anything else we should know? (Optional) + +Open Science Labs has previously successfully participated in GSoC under the +NumFOCUS umbrella. + +## Is your organization part of any government? + +No diff --git a/project-ideas/gsoc2024.md b/project-ideas/gsoc2024.md index a47b4f1..367cd44 100644 --- a/project-ideas/gsoc2024.md +++ b/project-ideas/gsoc2024.md @@ -1,20 +1,40 @@ # GSoC 2024 project ideas for Open Science Labs -The Open Science Labs (OSL) community is thrilled to announce our participation in the Google Summer of Code 2024, under NumFOCUS. We warmly welcome and encourage individuals from all around the globe to apply to GSoC with Open Science Labs. +The Open Science Labs (OSL) community is thrilled to announce our participation +in the Google Summer of Code 2024, under NumFOCUS. We warmly welcome and +encourage individuals from all around the globe to apply to GSoC with Open +Science Labs. ## About Open Science Labs -Open Science Labs is a global community dedicated to creating an open space for teaching, learning, and sharing information about open science and computational tools. Our community develops tools that address real-world problems and collaborates with other projects and workgroups to improve technology and create international opportunities for our community. - -Although our focus may seem broad, we initially prioritize supporting Research Software Engineers (RSEs) who often face computational challenges in their work. We recognize that many colleagues in scientific fields may not be familiar with programming languages, computational libraries, version control systems, databases, DevOps, and other computational tools. Therefore, we aim to provide a safe and open space for individuals to learn and share their knowledge. Our community is open to everyone, including students, professors, and industry professionals, as we believe that the challenges and technologies used in these fields are frequently similar, if not the same (in many cases). +Open Science Labs is a global community dedicated to creating an open space for +teaching, learning, and sharing information about open science and computational +tools. Our community develops tools that address real-world problems and +collaborates with other projects and workgroups to improve technology and create +international opportunities for our community. + +Although our focus may seem broad, we initially prioritize supporting Research +Software Engineers (RSEs) who often face computational challenges in their work. +We recognize that many colleagues in scientific fields may not be familiar with +programming languages, computational libraries, version control systems, +databases, DevOps, and other computational tools. Therefore, we aim to provide a +safe and open space for individuals to learn and share their knowledge. Our +community is open to everyone, including students, professors, and industry +professionals, as we believe that the challenges and technologies used in these +fields are frequently similar, if not the same (in many cases). ### Organization -Open Science Labs is primarily organized by its steering council, collaborators, and interns. You can access the current list of our active members on our website: https://opensciencelabs.org/about/team/. +Open Science Labs is primarily organized by its steering council, collaborators, +and interns. You can access the current list of our active members on our +website: https://opensciencelabs.org/about/team/. -To ensure a welcoming and safe environment for all members, OSL has established a Code of Conduct, which you can find here: https://opensciencelabs.org/about/coc/. +To ensure a welcoming and safe environment for all members, OSL has established +a Code of Conduct, which you can find here: +https://opensciencelabs.org/about/coc/. -If you're interested in learning more about our organization and governance, please visit our website: https://opensciencelabs.org/about/governance/. +If you're interested in learning more about our organization and governance, +please visit our website: https://opensciencelabs.org/about/governance/. --- @@ -59,11 +79,12 @@ https://github.com/osl-incubator/scicookie/blob/main/CODE_OF_CONDUCT.md ### Details - Prerequisites: - - Python - - Object-oriented programming (OOP) - - YAML + - Python + - Object-oriented programming (OOP) + - YAML - Expected Time: 350 hours -- Potential Mentor(s): Saransh Chopra, Ivan Ogasawara, Anavelyz Perez, Yurely Camacho, Ever Vino +- Potential Mentor(s): Saransh Chopra, Ivan Ogasawara, Anavelyz Perez, Yurely + Camacho, Ever Vino ### References @@ -77,20 +98,28 @@ https://github.com/osl-incubator/scicookie/blob/main/CODE_OF_CONDUCT.md ### Abstract -PyDataStructs project aims to be a Python package for various data structures and algorithms (including their parallel implementations). We are also working on providing C++ backend via Python C-API for high performance use cases. It is a partner project under Open Science Labs (see, https://opensciencelabs.org/affiliations/partnership/partners/). +PyDataStructs project aims to be a Python package for various data structures +and algorithms (including their parallel implementations). We are also working +on providing C++ backend via Python C-API for high performance use cases. It is +a partner project under Open Science Labs (see, +https://opensciencelabs.org/affiliations/partnership/partners/). Why PyDataStructs? - **Single package for all your data structures and algorithms** -- **Consistent and Clean Interface** - The APIs we have provided are consistent with each other, clean, and easy to use. We make sure of that before adding any new data structure or algorithm. -- **Well Tested** - We thoroughly test our code before making any new addition to PyDataStructs. 99 percent lines of our code have already been tested by us. - +- **Consistent and Clean Interface** - The APIs we have provided are consistent + with each other, clean, and easy to use. We make sure of that before adding + any new data structure or algorithm. +- **Well Tested** - We thoroughly test our code before making any new addition + to PyDataStructs. 99 percent lines of our code have already been tested by us. ### Current state -* The first release i.e., PyDataStructs 0.0.1 is available at https://pydatastructs.readthedocs.io/en/0.0.1/index.html. -* Open issues on Github - https://github.com/codezonediitj/pydatastructs/issues. -* We have participated previously in programs like KWoC (organised by IIT Kharagpur), GSSoC. +- The first release i.e., PyDataStructs 0.0.1 is available at + https://pydatastructs.readthedocs.io/en/0.0.1/index.html. +- Open issues on Github - https://github.com/codezonediitj/pydatastructs/issues. +- We have participated previously in programs like KWoC (organised by IIT + Kharagpur), GSSoC. ### Expected outcomes @@ -98,22 +127,22 @@ Python tests running with Backend.CPP as the backend. ### Details -Students are requested to discuss before applying. -Discussing via email (gdp.1807@gmail.com and anutosh.bhat.21@gmail.com) would be the best. +Students are requested to discuss before applying. Discussing via email +(gdp.1807@gmail.com and anutosh.bhat.21@gmail.com) would be the best. -* Prerequisites: - * Experience with Python, C++ - * Ability to read and implement algorithms - * Knowledge of Python C-API is not necessary but would be an additional benefit. -* Expected time: 350 hours -* Potential mentor(s): Gagandeep Singh, Anutosh Bhat, Ivan Ogasawara, Ever Vino +- Prerequisites: + - Experience with Python, C++ + - Ability to read and implement algorithms + - Knowledge of Python C-API is not necessary but would be an additional + benefit. +- Expected time: 350 hours +- Potential mentor(s): Gagandeep Singh, Anutosh Bhat, Ivan Ogasawara, Ever Vino ### References -* https://pydatastructs.readthedocs.io/en/latest/ -* https://github.com/codezonediitj/pydatastructs - * https://github.com/codezonediitj/pydatastructs/issues - +- https://pydatastructs.readthedocs.io/en/latest/ +- https://github.com/codezonediitj/pydatastructs + - https://github.com/codezonediitj/pydatastructs/issues --- @@ -121,27 +150,34 @@ Discussing via email (gdp.1807@gmail.com and anutosh.bhat.21@gmail.com) would be ### Abstract -Implement an algorithm to compare the provenance from two (or more) trials (i.e., executions of an experiment) to check their reproducibility. The provenance stored in the relational (sqlite) database by noWorkflow 2 contains intermediate variable values from a trial. These values could be compared to check how much or where executions deviate from each other. +Implement an algorithm to compare the provenance from two (or more) trials +(i.e., executions of an experiment) to check their reproducibility. The +provenance stored in the relational (sqlite) database by noWorkflow 2 contains +intermediate variable values from a trial. These values could be compared to +check how much or where executions deviate from each other. ### Current state -It currently has some methods to explicitly tag variables of different trials and methods to compare them. It would be nice to have a way to compare the whole trial and estimate how much a trial deviate from another. +It currently has some methods to explicitly tag variables of different trials +and methods to compare them. It would be nice to have a way to compare the whole +trial and estimate how much a trial deviate from another. ### Tasks -* Compare trials of the same script -* Estimate how much on trial deviate from another -* Consider different scripts and execution flows -* Indicate which parts of the scripts are not reproducible +- Compare trials of the same script +- Estimate how much on trial deviate from another +- Consider different scripts and execution flows +- Indicate which parts of the scripts are not reproducible ### Expected outcomes -* Each task has a different outcome +- Each task has a different outcome ### Details -* Prerequisites: - * Python - * SQL or SQLAlchemy ORM -* Expected time: 350 hours -* Potential mentor(s): João Felipe Pimentel, Ivan Ogasawara, Ever Vino, Anavelyz Perez, Yurely Camacho +- Prerequisites: + - Python + - SQL or SQLAlchemy ORM +- Expected time: 350 hours +- Potential mentor(s): João Felipe Pimentel, Ivan Ogasawara, Ever Vino, Anavelyz + Perez, Yurely Camacho