mainGNU Astronomy Utilities - Support: sr #110827, Google Summer of Code (GSoC) 2024


sr #110827: Google Summer of Code (GSoC) 2024

Submitter:  Mohammad Akhlaghi <makhlaghi>
Submitted:  Sun 29 Jan 2023 01:57:10 PM UTC
Category:  All Gnuastro Priority:  5 - Normal
Severity:  3 - Normal Item Group:  * New feature
Status:  In Progress Privacy:  Public
Assigned to:  None Open/Closed:  Open
Operating System:  None
* Mandatory Fields

Add a New Comment Rich Markup

Jump to the original submission

Sun 14 May 2023 07:23:07 PM UTC, comment #6: 

GSoC 2023 finished and one project was awarded to Gnuastro :-).

Mohammad Akhlaghi <makhlaghi>
Group administrator
Wed 01 Mar 2023 01:03:46 PM UTC, comment #5: 

A minor correction for the last word of my previous comment (replacing "preferred" with "nice", since I felt "prefered" would add too much weight which it doesn't really have!):

"So having Python experience at the start is not a requirement (but of course, would be nice)."

Mohammad Akhlaghi <makhlaghi>
Group administrator
Wed 01 Mar 2023 12:57:53 PM UTC, comment #4: 

Hi Patrick, more than 90% of the work is going to be in C. Because even the Python aspects of this project will be using the underlying C library of Python/Numpy. The remaining 10% will be Python, but by the time that becomes necessary, you will know so much about the underlying Python machinery that it should be pretty easy to use it in the testing of your work in Python. We also have many other collaborators that use Python regularly to help in testing your work in Python. So having Python experience at the start is not a requirement (but of course, would be preferred).

Mohammad Akhlaghi <makhlaghi>
Group administrator
Wed 01 Mar 2023 11:08:13 AM UTC, comment #3: 

Hi Mohammad, what language are we going to code with? The only one I'm familiar with is C.

Patrick Akinsowon <patricksowon>
Tue 31 Jan 2023 02:47:16 PM UTC, comment #2: 

Hi Siyang. You don't need any astronomy background to work on this year's proposed GSoC project of Gnuastro.

Of course, having an interest in astronomy will help you enjoy the bigger-picture of what you are doing (to be able to follow how people use your work in astronomy research). But on a technical level, it is irrelevant and you can complete this project perfectly with no knowledge of astronomy.

In other words, your knowledge of, or interest in, astronomy is not scored when selecting candidates. However, following good/recommended practices in coding and being able to solve problems elegantly is valued highly ;-).

Mohammad Akhlaghi <makhlaghi>
Group administrator
Tue 31 Jan 2023 12:09:09 AM UTC, comment #1: 

Hi Mohammad, how much domain knowledge in astronomy do contributors need?

Siyang He <decaf>
Sun 29 Jan 2023 01:57:10 PM UTC, original submission:  


This is for those interested in participating in Gnuastro's development focused on GSoC 2023. It is based on the successful completion GSoC 2022, 2021 and 2020 and their related discussions in sr #110613 sr #110457 and sr #110195.

The basic point is that you should first install and run the programs to get a feeling of their over-all purpose and usage, then start getting your hands dirty into the coding. The following list should be a rough guide on how to do this.

  1. Install Gnuastro (either using Conda or from Source)
    1. Conda Installation instructions:
    2. Install Gnuastro from source. To do that, you will first need to install its dependencies. To start, we recommend using your package manager for installing the dependencies. Later, when you get more advanced, you can install them from source also. Once the dependencies are ready, install the latest Gnuastro from the officially released tarball and install it as described in the Quick start guide.
  2. Do the tutorials to get a feeling of the purpose and usage of Gnuastro. There is a full chapter on several tutorials. If you have time go through all of them, it is great! Otherwise, the general tutorial should be enough. It is a little long, but shouldn't take more than three or four hours. You don't necessarily have to understand the full depth of the science behind the steps. Just try to open the images (inputs and outputs) and things should be clear. This tutorial touches upon most Gnuastro programs will give you a very good feeling of it (and thus help you develop good ideas to write in the GSoC proposal.
  3. Having done the tutorial, you may have your own ideas on what to improve (which would be GREAT!), or you can have a look at the list of bugs or tasks. Some tasks are: task #16251, task #16222, task #16114, task #16096, task #16075, task #15138, task #15136, task #15109, task #15053, task #14986, task #14908, task #14643, task #14419 or task #14364. If they aren't already taken, you can post a comment on the task and start focusing on it. A major positive point in the selection process is to make at least one commit in Gnuastro before the GSoC selection process.
  4. You are now ready to start developing. But you will need Gnuastro's version controlled source, which needs to be bootstrapped. And bootstrapping has its own dependencies. So install the bootstrapping dependencies, then follow the bootstrapping guide to prepare the raw source for building/developing. After bootstrapping, you can configure and install Gnuastro's version controlled source just like the tarball.
  5. Depending on the task/bug that you have selected to work on, please read the description of that particular program. For example if the bug/task is related to the Crop program, read the Crop section of the manual. This will give you an over-all feeling of the overall working style of the program and help guide you mentally when you are reading the source.
  6. Read the Developing chapter of the Gnuastro manual. Please read this section carefully because it will really help you get a smooth start on the source code and our style. In particular the Program source section describes the common structure of files and programming structure of the programs. Don't forget to read the other sections of this chapter too ;-)!
  7. Build you own fork of Gnuastro (as described in the Forking tutorial).
  8. Go into the source of the program you want to work on, and start reading the code from `main.c' (which has the starting `main()' function). Follow the functions and comments until the end of the program (beware that some programs can be large and complex, you can usually tell this by the number of files in its source directory).
  9. Once you have a nice mental image of the program, you are ready to start working on your selected bug/task. So put a comment in the respective task/bug to get in touch :-).

Please don't hesitate to ask any GSoC-related (general) question here, but if your discussion is about a certain task/bug, please don't post it here, use the bug/task's own page.

Mohammad Akhlaghi <makhlaghi>
Group administrator


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by patricksowon (Posted a comment)
  • -email is unavailable- added by decaf (Posted a comment)
  • -email is unavailable- added by makhlaghi (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.


    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2024-03-20 makhlaghi StatusDone In Progress
        Open/ClosedClosed Open
        SummaryGoogle Summer of Code (GSoC) 2023 Google Summer of Code (GSoC) 2024
    2023-05-14 makhlaghi StatusIn Progress Done
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-b921.
    Corresponding source code