gnuastro-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sr #110613] Google Summer of Code (GSoC) 2022


From: Mohammad Akhlaghi
Subject: [sr #110613] Google Summer of Code (GSoC) 2022
Date: Sat, 19 Feb 2022 16:39:57 -0500 (EST)

URL:
  <https://savannah.gnu.org/support/?110613>

                 Summary: Google Summer of Code (GSoC) 2022
                 Project: GNU Astronomy Utilities
            Submitted by: makhlaghi
            Submitted on: Sat 19 Feb 2022 09:39:55 PM UTC
                Category: All Gnuastro
                Priority: 5 - Normal
                Severity: 3 - Normal
              Item Group: Enhancement
                  Status: In Progress
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None

    _______________________________________________________

Details:

RECOMMENDED STEPS TO START DEVELOPING IN GNUASTRO

This is for those interested in participating in Gnuastro's development
focused on GSoC 2022. It is based on the successful completion GSoC 2021 and
2020 and their related discussions in 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. 

0 Install Gnuastro (either using Conda or from Source)
00 Conda Installation instructions: https://anaconda.org/conda-forge/gnuastro
00 Install Gnuastro's dependencies
<http://www.gnu.org/software/gnuastro/manual/html_node/Dependencies.html>. In
particular, if you use the most common GNU/Linux operating systems, to start
with, we recommend using your package manager
<http://www.gnu.org/software/gnuastro/manual/html_node/Dependencies-from-package-managers.html>.
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 <http://ftp.gnu.org/gnu/gnuastro/gnuastro-latest.tar.gz> and
install it as described in the Quick start
<https://www.gnu.org/software/gnuastro/manual/html_node/Quick-start.html>. 
0 There is a full chapter on tutorials
<https://www.gnu.org/software/gnuastro/manual/html_node/Tutorials.html>, if
you have time go through all of them, if not, the general tutorial
<https://www.gnu.org/software/gnuastro/manual/html_node/General-program-usage-tutorial.html>
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. 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. 
0 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
<https://savannah.gnu.org/bugs/?group=gnuastro> or tasks
<https://savannah.gnu.org/task/?group=gnuastro>. Some more easier tasks are:
task #16114, task #16096, task #16075, task #16073, 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.
0 You are now ready to start developing. But you will need the Gnuastro's
version controlled source
<https://www.gnu.org/software/gnuastro/manual/html_node/Version-controlled-source.html>,
which needs to be bootstrapped
<https://www.gnu.org/software/gnuastro/manual/html_node/Bootstrapping.html>.
And bootstrapping has its own dependencies
<https://www.gnu.org/software/gnuastro/manual/html_node/Bootstrapping-dependencies.html>.
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. 
0 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
<https://www.gnu.org/software/gnuastro/manual/html_node/Crop.html>. 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. 
0 Read the Developing chapter
<https://www.gnu.org/software/gnuastro/manual/html_node/Developing.html> 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
<https://www.gnu.org/software/gnuastro/manual/html_node/Program-source.html>
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 ;-)!

0 Build you own fork of Gnuastro (as described in the Forking tutorial. 
0 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). 
0 Once you have a nice mental image of the program, you are ready to start
working on your selected bug/task. 
0 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. 




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?110613>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]