taskGNU Astronomy Utilities - Tasks: task #14172, When in a Git repository, store...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

task #14172: When in a Git repository, store commit describe in output

Submitter:  Mohammad Akhlaghi <makhlaghi>
Submitted:  Thu 06 Oct 2016 02:39:32 PM UTC
   
 
Should Start On:  Wed 05 Oct 2016 03:00:00 PM UTC Should be Finished on:  Wed 05 Oct 2016 03:00:00 PM UTC
Category:  All Gnuastro Priority:  5 - Normal
Item Group:  Enhancement Status:  Done
Privacy:  Public Assigned to:  None
Percent Complete:  100% Open/Closed:  Closed
Effort:  0.00

Sun 09 Oct 2016 03:00:17 PM UTC, comment #1: 

This was done and has been pushed to the main repository.

Mohammad Akhlaghi <makhlaghi>
Group administrator
Thu 06 Oct 2016 02:39:32 PM UTC, original submission:  

One of the main reasons to build Gnuastro was to help/encourage reproducibility of scientific results. When the scientific research is defined in a version controlled system (for example NoiseChisel paper's reproduction pipeline, keeping the Git commit information that produced the data-products would be very helpful.

Recenly I have been doing this manually using Gnuastro's Header program on the ultimate FITS image outputs (for example see bug #49274).

Since we want to encourage such reproducible research results, I think it would be an interesting job do this automatically within Gnuastro. The suggested scenario of this task would go like this: if Gnuastro is run within a Git version controlled directory, then store the commit's description (similar to the output of `git describe') in any Gnuastro output product (FITS file or ASCII table).

Fortunately Git comes with the libgit library. So we don't need to make system calls, we can use the library to get the commit information if Gnuastro's tools are run within a Git version controlled directory.

Libgit can be set as an optional dependency and checked at configure time, so the work above is only done if the user actually has libgit.

This feature can be put in `lib/fits.c' and `lib/txtarray.c' that create the final outputs of all the programs, so the actual Gnuastro programs don't have to worry about it. In this way, the library users can benefit from it.

Gnulib's `build-aux/git-version-gen' adds an interesting feature to `git describe': if there is uncommited work in the version controlled directory, it adds a `-dirty' suffix to Git's `describe' output. This is a very useful sanity check. So the users of the research data-product (or the authors of the research themselves) can be sure that when the higher-level products was produced, everything was committed. I think this would be very useful and we can also implement this feature while we are doing this task.

If you have any comments, concerns, or criticisms, please share them here ;-)....

Mohammad Akhlaghi <makhlaghi>
Group administrator

 

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

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 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.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-10-09 makhlaghi StatusPostponed Done
        Percent Complete0% 100%
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code