GSOC 2026(Add JSON output to different tools in C)

Anna Petrasova, Corey White, Vaclav Petras
My name is Salih Tangel, and I am a Master’s student currently working as a Research Assistant. I am writing to express my strong interest in the ‘JSON output for C modules’ project for the upcoming GSoC 2026 cycle.

I have already set up the GRASS development environment and have been analyzing the implementation of G_json in modules like g.region and g.list. I’ve noticed that the transition is well underway but not yet complete across the entire codebase.

Since I am proficient in C and familiar with the GIS ecosystem, I believe I can contribute significantly to standardizing these outputs. Could you please let me know if there is a ‘roadmap’ for the remaining modules, or if I should identify a set of modules to propose for this year’s cycle?

Thank you for your time and for all the work you do for the GRASS community.

Hi Salih,

Thank you for your interest! Sorry for the slow response, I am just now setting up the GRASS GSoC page with ideas - this page will still change as we update the topics.

Yes, we plan to open this topic again, but since most of the tools are already implemented, we are considering to expand this topic to include Python tools as well. I still need to identify the tools, on the C side we would e.g. like to rewrite v.db.select using parson library, v.build could have a json output and couple more. Among Python based tools, many temporal tools would benefit from json (e.g. t.list, t.rast.list…).

There will be other topics as well, so you can consider e.g. OpenMP parallelization.

For any of the topics we would like the prospective participants to open one or more PRs solving a bug or implementing something related to the project topic to verify the project is a good match. I hope to have some suggestions on test of skills listed for each topic as we update the ideas page. But you can always check open issues.

Best,
Anna

2 Likes

Hi Anna,

Following up on the JSON modernization goals, I have successfully set up the GRASS build environment on a macOS M4.

As a first step to test the workflow, I modified v.net (report.c) to include a JSON output option using the parson library (via gjson.h). I’ve verified that the new parameter is correctly integrated and recognized after a full build.

Now that , I am ready to tackle v.db.select as you suggested, or dive into the Python-based temporal tools like t.list.

(Note: I encountered some PDAL detection issues on M4, which I bypassed for now to focus on the JSON implementation.)

Sorry if I missed it, but did you submit a PR for the v.net changes? It would be good to add test and documentation for that.

1 Like

Hi Yes, I have just submitted the Pull Request. I made sure to include both the automated tests and the documentation updates as you suggested.

Here is the link to the PR: https://github.com/OSGeo/grass/pull/6999

I’m a bit new to this workflow, so please let me know if everything looks correct or if I need to adjust anything. What would be the next steps after this, and is there anything else you need me to work on or improve? Thank you.

Also, just a quick note: I included some basic status tracking and error handling in the JSON output to make it more robust. If this makes the PR too large for a first contribution, I’m happy to simplify it. Just let me know what you prefer

Hi Anna, since I had an exam this week so I was busy studying. I’ve finally managed to complete the changes as requested and I’m happy to send this pull request. Thank you for your patience!