gnuastro-devel
[Top][All Lists]
Advanced

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

[sr #110827] Google Summer of Code (GSoC) 2023


From: Mohammad Akhlaghi
Subject: [sr #110827] Google Summer of Code (GSoC) 2023
Date: Sun, 29 Jan 2023 08:57:12 -0500 (EST)

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

                 Summary: Google Summer of Code (GSoC) 2023
                 Project: GNU Astronomy Utilities
               Submitter: 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
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Sun 29 Jan 2023 01:57:10 PM UTC By: Mohammad Akhlaghi <makhlaghi>
RECOMMENDED STEPS TO START DEVELOPING IN GNUASTRO

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:
https://anaconda.org/conda-forge/gnuastro
        2. Install Gnuastro from source
<https://www.gnu.org/software/gnuastro/manual/html_node/Quick-start.html>. To
do that, you will first need to install its dependencies. To start, we
recommend using your package manager for installing the dependencies
<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 guide
<https://www.gnu.org/software/gnuastro/manual/html_node/Quick-start.html>.
2. Do the tutorials to get a feeling of the purpose and usage of Gnuastro.
There is a full chapter on several tutorials
<https://www.gnu.org/software/gnuastro/manual/html_node/Tutorials.html>. If
you have time go through all of them, it is great! Otherwise, 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. 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
<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.
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
<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.
6. 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 section
<https://www.gnu.org/software/gnuastro/manual/html_node/Program-source.html>
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
<https://www.gnu.org/software/gnuastro/manual/html_node/Forking-tutorial.html>).
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.







    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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