Partner Projects Programme

:green_circle: Check out Open Code-Walkthrough Sessions for Partner Projects. :green_circle:

The Partner Projects program is an effort to provide FOSS Hack participants with time and mentorship to be able to contribute to existing open-source projects.

Context

We had attempted this programme as a small experiment during FOSS Hack 3.0, which didn’t pick up well as expected.

What could have improved ?

  1. The plan and structure was set up quite late.
  2. Lack of bandwidth to manage and follow-up.
  3. Setup up workflows that reduces overheads
  4. Follow-up systems for feedback.
  5. Spreading awareness

Hence, this edition, we are attempting a revamped version of this programme, in addition to it being a mock-run for structuring Season of Commits.


We are very much open to feedback and suggestions as comments in thread, that would help in structuring this better.

We are also welcoming volunteers, do comment your interest in this thread as well.

Proposed Structure of the Programme

1. Curation of partner projects:

  • Our aim is to have between 5 - 10 open source projects looking for contributions and can spend some time and resources.
  • Each project ought to have a dedicated issue list for the participants to look through.
  • The projects will be listed on the FOSS Hack website, linked to their issue boards.
  • Community and commercial projects will be categorised separately.

2. Opening issue list to participants:

  • A participant/team can go through the list of projects and issues to choose issues to work on and submit a proposal on respective issue comments.
  • Based on the proposals received, the maintainer can assign issues after the opening window closes.

3. Prep Period

  • Proposing a period of 15 days.

  • The participants with issue assigned can enlist their projects on the FOSS Hack platform.

  • Interact with the maintainers to get an onboarding on the project, codebase queries, issue-related queries etc.

    • Issue related queries are preferred to be done on issue discussions threads.
    • General queries can be made on dedicated project discussion channels, the FOSS Hack Telegram group can also be utilised for the same.

4. Hacking:

  • Code commits are to be made during the hackathon period: 27th - 28th July (36 hours).
  • Queries, doubts etc can also be made and cleared during this time.

5. Evaluation:

  • We would like the maintainers to review the list of PRs submitted for the project and merge them based on merit and value added.

Proposed Timeline

Title Date
Finalising partner projects 10 June 2024
Open issue list to participants 13 June - 3rd July
Coordination, issue assignment, onboarding 4th July - 10 July
Prep phase 12 July - 26 July
Hacking 27 July - 28 July
Evaluation 29 July - 19 August

Expectations from maintainers

  1. Curate an issue-list and add a fosshack label to those issues. The issues should be:

    • Non-trivial and with enough substance to solve.

    • Solvable within a window of 30 hours along with the prep from 15 days.

    • 2 or 3 similar issues can also be collated into a single issue and considered.

    • Issues should be well-drafted to make them understandable.

    • Issues could be of varying nature - bugs, feats, architecture, design, documentation etc…

  2. Look through proposal requests and assign issues to contributors

  3. Utilise the prep-phase to provide support to contributors, which could include:

    • Providing an onboarding to the project.
    • Helping to understand the codebase
    • Resolving queries
  4. Provide a forum to have discussions on general project queries.(issue specific can be done on issue discussions).

    • Preferably GitHub discussions can be used.
    • FOSS Hack Telegram group could also be used to make announcements about discussion calls if any etc.
  5. Review PRs and merge them if significant to the project.

    • The maintainers are allowed to suggest changes to the PR after submission to make them more efficient

Prizes and Recognition

  1. The prizes in cash would be decided upon after the contributions are made and merged.

  2. For commercial projects, prizes could be provided by the projects.

    • The project maintainers would have the descretion to judge the contributions and decide prizes.
  3. In the case of community projects, the prizes could be pooled from the FOSS Hack prize pool.

    • Feedback will be taken from the maintainers and contributions re-evaluated by the judges to decide upon this.

Next Steps

  • We have been having open discussions with a few project maintainers about their thoughts on the programme, and few of them are interested to explore.

  • An open call for projects will help us to make the selection process more effective.

    • We will release a Call for Interest for Partner Projects in 2 days. While do share suggestions of potential projects welcoming contributions in this thread, and we’ll follow-up with them too.
  • As important as it is to onboard projects, it’s also crucial to spread awareness among potential contributors as well - need to plan this section

References

6 Likes

This is an amazing initiative. The rules and guidelines of this initiative align well with our ethos at Vibinex about commercial FOSS. Looking forward to this year’s FOSS Hack!

3 Likes

Call for projects

We opened a call to propose partner projects, that can be part of this programme.
https://fossunited.org/fosshack/partner-projects

A tentative list of projects that got confirmed:

Edited: 3rd July, 2024

Curated some recommendations for partner projects, that can be referred to while curating issues and setting workflows.

The partner projects issues for FOSS Hack’24 are now open to explore! :tada:

At FOSS Hack, you can either build a FOSS project from scratch or contribute to an existing FOSS or commercial open source project. These issues can be considered as potential problem statements if you are unsure of which project/what contribution to make.

Check out the list of partner projects - FOSS Hack 2024 | Partner Projects

1 Like

Updates about Partner Projects

  • All projects have now been added to webpage with their issue boards and discussion links.
  • Current Stats for projects:
    • Community FOSS: 9
    • Commercial: 4

Activity

  • Folks have started proposing to the issues, and are asking queries regarding same.

Planned to do:

  • Announcing projects via social handles

  • Need to plan awareness outreach about the programme:

    • Writing a FOSS Hack newsletter to all former FOSS Hack participants :white_check_mark:
    • Start code-walkthrough sessions with community projects :white_check_mark:

Open Code Walkthrough Sessions

The code-walkthrough sessions for partner projects would be helpful to understand more about the project and get your queries from the maintainers.

It will be an open call happening on Jitsi, and can be joined via:

Session Timings

The sessions will be flexible and will be arranged based on the maintainers’ bandwidth.

Planned Sessions:

:white_check_mark: Amaze File Manager - 2024-07-04T12:30:00Z→2024-07-04T13:30:00Z

:white_check_mark: FreeCAD - 2024-07-05T13:30:00Z→2024-07-05T14:30:00Z

:white_check_mark: Compilerd - 2024-07-06T11:30:00Z→2024-07-06T12:30:00Z

:orange_circle: Keyshade - 2024-07-18T12:30:00Z→2024-07-18T13:30:00Z


This isnt solely focused for partner projects too. Any other project who’re looking for contributors at FOSS Hack and would like to talk about, do propose in this thread.

These sessions are recorded. Find the recordings in this playlist.

1 Like

Summary of Hosted Code-Walkthrough Sessions

We hosted 3 code-walkthroughs over the past week. The recordings of these have been uploaded to YouTube and shared. This is intended to serve as an extended resource for contributors even after FOSS Hack.

Amaze File Manager

Amaze File Manager is a simple and attractive Material Design file manager for Android. Vishnu Sanal and Vishal Nehra from Team Amaze joined us to share the vision behind Amaze File Manager and provided a full walkthrough of the project.

The session covered the following:

  • The story of Amaze File Manager
  • Features and setting up the project
  • Code walkthrough - File Listing, Hybrid Files, etc.
  • Discussion of a few doubts and issues
  • Important pointers to keep in mind for contributors

Some questions asked:

  1. For NFS-type filesystems, does the Amaze File Manager implement the NFS spec to communicate with Network devices, or do we rely on 3rd party or base kernel to implement that part?

We use libraries – we cannot do kernel-level manipulation on Android without root access.

  1. How are R/W failures handled, particularly any failures which would cause corruption?

We basically have redundancy for everything – we try using multiple APIs if one doesn’t work. We make sure that the files are never corrupted by ensuring that the original copies of irrecoverable files are modified only after the operation succeeds, etc.


FreeCAD

FreeCAD is an open-source parametric 3D modeler made primarily to design real-life objects of any size. Ajinkya Dahale and Yorik van Havre from the FreeCAD Community joined us to share more about the project, walk us through the codebase, and discuss some issues in the project.

We had a good discussion about the scopes for contributions to the project, initiated by @Shree_Kumar.

Notes shared by Ajinkya:

  • Vision: To provide a professional-grade free and open-source 3D modeler.

  • Languages: C++ and Python

  • Key resources:

  • Dependencies: OCCT, Qt, Coin3D, Python, and some others (including optional ones)

  • Set-up procedure: Depends on platform (Windows, Linux, or Mac). Refer to instructions in the handbook/wiki.

  • Structure:

    • Core: Setup of the application, handling of objects, parametric relationships, file opening/saving. Separation between UI-related functionality (src/Gui) and non-UI, which can run on the command-line/API (src/App). Core is fully coded in C++ for speed and stability.

    • Modules: Each module deals with specific areas, object types, and interface setups (called Workbenches). Like core, each module is also divided into “App” (command line/API) and “GUI”. Some modules are coded in C++, others in Python, and some with both languages. Examples:

      • Part (src/Mod/Part): Main interface to OCCT, provides OCCT geometry to most other modules (C++)

      • Sketcher (src/Mod/Sketcher): Provides tools to build constrained 2D shapes (C++)

      • Draft (src/Mod/Draft): Provides more classical tools to create 2D shapes like line, rectangle, etc. (Python)

      • PartDesign (src/Mod/PartDesign): Adds tools around Part and defines a strict modeling environment aimed at creating single objects (C++)

      • FEM (src/Mod/FEM): Tools to perform Finite Element Analyses on objects by applying forces on them (Mix of Python and C++)

  • Tests: Unit tests are contained in …/tests/…, written in C++. More comprehensive tests are contained within each module, mainly in Python using the API.

  • Contributing: GIT is used to work with the FreeCAD source code. Contributing involves:

    • Cloning the FreeCAD repo onto one’s own computer

    • Creating a clean branch

    • Making changes to the code

    • Verifying that your changes work: Compile FreeCAD and test

    • Committing these changes

    • Pushing the branch containing the changes to a public repo (e.g., one’s own GitHub repo)

    • Creating a Pull Request to have that code change merged into the main FreeCAD repo


CompilerD

Compilerd is an online code judge for evaluating code submissions, maintained by the Kalvium Community. Anirudh from the Kalvium team joined us to share more about Compilerd and provided a full walkthrough of the project.

The session covered the following:

  • More context about the project and its specifics
  • Features and setting up the project
  • Code walkthrough
  • Discussion of a few doubts and all fosshack labeled issues

Relevant Links

Special thanks to @SphericalKat for joining the discussion and sharing relevant feedback and comments!