diff --git a/2026/astropy/astropy-core_hardening-yorgos.md b/2026/astropy/astropy-core_hardening-yorgos.md new file mode 100644 index 0000000..da9cad9 --- /dev/null +++ b/2026/astropy/astropy-core_hardening-yorgos.md @@ -0,0 +1,54 @@ +# Hardening astropy’s core stability - Yorgos Vasilantonakis + + +## Contributor Information +* **Name:** Yorgos Vasilantonakis +* **Time-zone:** EET (GMT+2) +* **Matrix/slack/IRC Handle:** +* **Github/forge username:** toastmt +* **Blog:** +* **Blog RSS feed:** +* **PR link(s):** #19452 WIP: Standalone C-level tests for 1D convolution (GSoC 2026) (https://github.com/astropy/astropy/pull/19452) + +### Background +My name is Yorgos and I'm currently doing a CS conversion degree, building on my previous BSc in Physics. Over the last year I have focused on C and Python. I was drawn to this project because it perfectly bridges my two backgrounds. It allows me to apply my recent CS focus to the mathematical concepts I studied in physics. + +### Interest in OpenAstronomy +Coming from a physics background I've worked with free and open-source programs and have come to appreciate all the software that powers modern scientific discovery. As someone who grew up with sci-fi and astronomy magazines and books, I find the prospect of contributing to a major astronomical codebase like Astropy to be incredibly exciting. I think the specific project idea looks interesting, as it alligns with my current interest in C, and it seems like something I could be useful for. + +## Project Proposal Application +**Proposal Title:** Hardening astropy’s core stability + +**Organisation:** Astropy + +### **Summary:** +I am drawn to this project because it sits exactly at the intersection of my skill sets. My primary programming focus is in C, making Astropy's C core an ideal environment for me to contribute. I am also very interested in analyzing performance-critical C code in a real world codebase. + +### Deliverables +* **1.** Direct tests for astropy/convolution/src/_convolve.c +* **2.** Direct tests for astropy/timeseries/periodograms/bls/bls.c +* **3.** Direct tests for astropy/wcs/src/ files +* **4.** CI/CD pipeline and documentation + +### Description/timeline + +|Period|Description| +|------|-----------| +|Community Bonding period| Map all C-functions to be tested in the project, set up the dev environment, assign priorities and testing implementation strategy with mentors.| +| week 1-2 | convolution: Expand the current prototype tests into a full testing package for convolve.c. Focus on edge cases (NaNs, empty arrays, infinity).| +| week 3-4 | bls: Create a full c test package to validate the mathematical accuracy of the bls.c periodogram core.| +| week 5-10 | wcs: Work to create tests for the c files in the world coordinate system folder.| +| week 11-12 | Handle final bug fixes, CI/CD test integration, write documentation. | + +## GSoC + +### Have you participated previously in GSoC? When? With which project? +No +### Are you also applying to other projects? +No +### Schedule availability +I'll be fully available during the time of the programme, no holidays planned + + +## Other comments +I have spent some time trying to understand the logic in some of the c files in the astropy codebase. To better understand the implementation I concentrated on the convolve.c file which implements convolution algorithms for 1D, 2D and 3D. I compiled the file and developed a small standalone testing file that interacts directly with the convolve1d_c function at the C level, and which contains a few simple tests for the 1D case. This has helped me understand the 1D convolution algorithm well.