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

1 Like

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.