[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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [task #15855] Build directory with only two subdirectories: analysis/ and software/,
Mohammad Akhlaghi <=