GSoC 2026 | Ajay Rajera : Clean Multi-Step Configuration

Hi preCICE team,

My name is Ajay Rajera, and I am here to introduce myself for GSoC 2026. I am interested in the “Clean multi-step configuration” project.

Actually, I want to spend my summer contributing to a real-world open-source project that makes a difference in scientific computing. I have contributed to many other organizations and have gained lot of experience from it. GSoC provides the perfect opportunity to work alongside experienced mentors on complex, production-grade C++ code while making a meaningful contribution to the community.

Interest in preCICE :
The “Clean multi-step configuration” project is particularly interesting to me because it involves refactoring the XML parsing pipeline — decoupling parsing from object instantiation by introducing a Configuration AST. This kind of architectural work (AST design, multi-pass validation, dependency-ordered construction) aligns well with my interests in compiler design and software architecture.

Entry Test Results:

  1. Build preCICE from source: Installed all dependencies (CMake, Boost, Eigen, libxml2, PETSc) in WSL2 (Ubuntu 22.04) and successfully built preCICE.

  2. Ran the elastic tube 1D Tutorial: Successfully ran the elastic tube 1D tutorial.

As only 3 images are allowed so I had to remove the starting part but here is the ending part, it is clear that it is working properly.

  1. Triggered a config error and improved the error message:

I removed the <participants> tag from the <coupling-scheme:serial-implicit> block in the example config to trigger a missing required subtag error.

The problem: The original error message does not tell the user which parent tag requires the missing subtag, making it hard to locate and fix the issue:
ERROR: Tag was not found but is required to occur at least once.

My fix: Modified XMLTag::areAllSubtagsConfigured() in src/xml/XMLTag.cpp to include the parent tag name (_fullName) in both error paths:

After the fix, the error message now tells the user exactly where to look:

ERROR: Tag <participants> was not found inside <coupling-scheme:serial-implicit> but is required to occur at least once. Please add a <participants> tag as a child of <coupling-scheme:serial-implicit>.

I rebuilt preCICE and verified the improved error message with precice-config-validate. The existing XML tests pass.

I putted image showing the error message, but it said only 3 images are allowed as of now so here is the error message.

I look forward to contributing and interacting with the mentors and other contributions.

Best regards, Ajay Rajera

Github: https://github.com/Gitjay11

2 Likes

Subject: PR submitted for Issue #248 in the python-bindings repository ( Test package uploading to PyPI before releasing and creating a new version tag )

Hi everyone,

I have been looking into the open issues in the python-bindings repository, and I found issue #248 regarding testing package uploads to PyPI before a release.

I looked into the requirements and the recommended PyPA GitHub Action for this, and I have put together a solution. I just submitted a pull request that adds a manually triggered workflow to handle this safely.

You can review the PR here: Add workflow to test package upload to TestPyPI by Gitjay11 · Pull Request #253 · precice/python-bindings · GitHub

Feedbacks are appreciated, Thanks.

Hi everyone, just a quick update—I had started working on issues and pushed the changes to my personal fork, but I just saw the recent announcement pausing new GSoC PRs.

I completely understand how overwhelmed the team is right now. I will leave the code on my fork, stop work on the issues, and focus on writing my proposal.

I’m currently working on the proposal, I wanted to ask that how many pages are sufficient for the proposal. I saw a message that 4 pages are enough so is it okay? @Makis Also, I want to contribute more to the codebase so can i just put the link of the branch in the proposal?

Welcome, @Gitjay11,

yes, there was already a lot of activity directly after the accepted GSoC organizations announcement in February. There is also a general recommendation by GSoC to prioritize applications that have interacted with the organization before the proposal submission opens. These two factors led us restrict new PRs for now.

With the above said:

we want maximum 4 pages. The projects we propose are also rather small.

yes, but keep in mind that at this point there will be proposals with higher chances.

Happy to review more PRs in the context of regular open-source contributions once the GSoC spike is through.

1 Like

Helllo @Makis , yeah I saw that there is lot of loads right now. Okay I understand that, actually i was able to raise one PR but i have been learning about preCICE through documentation and the codebase. I will continue to contribute to my local codebase for now as PR is restricted.

Okay, thanks for letting me know. yeah and it will be easier to review when there is less pages.

Yeah, you are right. I actually saw it, but I think I can do it better. I will focus fully on making the proposal now. Thanks.

yeah, I will keep contributing even after the gsoc period.

Thanks, Ajay Rajera.

1 Like