reproduce-devel
[Top][All Lists]
Advanced

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

[task #15855] Build directory with only two subdirectories: analysis/ an


From: Mohammad Akhlaghi
Subject: [task #15855] Build directory with only two subdirectories: analysis/ and software/
Date: Sat, 26 Dec 2020 11:19:09 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0

URL:
  <https://savannah.nongnu.org/task/?15855>

                 Summary: Build directory with only two subdirectories:
analysis/ and software/
                 Project: Reproducible paper template
            Submitted by: makhlaghi
            Submitted on: Sat 26 Dec 2020 04:19:07 PM UTC
         Should Start On: Sat 26 Dec 2020 12:00:00 AM UTC
   Should be Finished on: Sat 26 Dec 2020 12:00:00 AM UTC
                Category: Analysis
                Priority: 5 - Normal
                  Status: Need Info
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

Currently, the build directory contains the 'software/' directory that hosts
all the built software, a 'tex/' subdirectory for the final building of the
paper, and many other directories containing intermediate/final data of the
specific project. 

But this is against our modularity and minimal complexity principles: built
software and built data are separate things can they should be separated.

So I am proposing that the './project configure' step (that is in charge of
constructing the build directory structure) sets the build directory, or
'$(BDIR)', to only contain two sub-directories: 'software/' and 'analysis/'. 

One consequence of this is that the 'analysis/' subdirectory can be optionally
mounted on a separate partition. The need for this actually came up for some
new users of Maneage in a Docker image. Docker is great because it can fix
portability problems on systems that we haven't yet supported (even Windows!),
or had a chance to fix low-level issues on. However, Docker doesn't have a GUI
interface. So to see the built PDF of intermediate data, you need to copy the
built data to the host system, which is annoying during working on a project.

But once this task is done, we can easily mount
<https://docs.docker.com/storage> the '$(BDIR)/analysis' directory on the host
system. Hence, while the software environment is run within Docker, the
intermediate/final data and PDFs will also be available on the host
immediately. Also, the data won't consume space within the container, making
it easy to transfer the software environment of a project and the raw data
(not with the extra intermediate data that can be reproduced).

Implementing it on existing Maneaged projects is also not hard: any where in
the customized project subMakefiles that we have used '$(BDIR)', we just have
to replace it with '$(BDIR)/analysis'. In fact, in 'initialize.mk' we can
define a variable like 'badir=$(BDIR)/analysis' and simply change '$(BDIR)' to
'$(badir)' and re-build the project.

Please share you thoughts about this: if you agree or disagree, both view
points would be appreciated ;-).




    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/task/?15855>

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




reply via email to

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