aboutsummaryrefslogtreecommitdiff
path: root/README-hacking.md
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-02-01 18:30:02 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-02-01 18:38:44 +0000
commitf41be41e376dfd521881ad2e6137360e549777de (patch)
treef01dfde240cf065ea161b073ac6663a4941a2ed4 /README-hacking.md
parentd65b1ccd97fab64062804ace0e0ec5914e1029c1 (diff)
Group name is now part of the local configuration
Until now, the group name to build the project actually went into the Git source of the project! This doesn't allow exact reproducibility on different machines (where the group name may be different). With this commit, the `for-group' script has been modified to accept the group name as its first argument and pass that onto `configure' and Make. This is much better now, because not only the existance of a group installation is checked, but also the name of the group. It also made things simpler (in particular in `LOCAL.mk.in').
Diffstat (limited to 'README-hacking.md')
-rw-r--r--README-hacking.md34
1 files changed, 13 insertions, 21 deletions
diff --git a/README-hacking.md b/README-hacking.md
index 5fd74b6..ddc9460 100644
--- a/README-hacking.md
+++ b/README-hacking.md
@@ -339,21 +339,21 @@ Make steps must be called with special conditions which are managed in the
`for-group` file.
Let's see how this design is implemented. When the `./configure` finishes,
-it makes a `Makefile` in the top directory. This Makefile is just a
-symbolic link to `reproduce/src/make/top.mk`. Please open and inspect it as
-we go along here. The first step (un-commented line) is to import the local
-configuration (answers to the questions `./configure` asked you). They are
-defined in the configuration-Makefile `reproduce/config/pipeline/LOCAL.mk`
-which was also built by `./configure` (based on the `LOCAL.mk.in`
-template).
+it a `Makefile` will be placed in the top directory. This `Makefile` is
+just a symbolic link to `reproduce/src/make/top.mk`. Please open and
+inspect it as we go along here. The first step (un-commented line) is to
+import the local configuration (answers to the questions `./configure`
+asked you). They are defined in the configuration-Makefile
+`reproduce/config/pipeline/LOCAL.mk` which was also built by `./configure`
+(based on the `LOCAL.mk.in` template).
The next non-commented set of lines define the ultimate target of the whole
-pipeline (`paper.pdf`). But a sanity check is necessary for situations when
-the user is not careful (for example has configured the pipeline for group
-access but forgets to run the pipeline with `./for-group`, or the
-opposite). Therefore we use a Make conditional to define the `all` target
-based on the group permissions being consistent between the initial
-configuration and the current run.
+pipeline (`paper.pdf`). But to avoid mistakes, a sanity check is necessary
+to see if Make is being run with the same group settings as the configure
+script (for example when the pipeline is configured for group access using
+the `./for-group` script, but Make isn't). Therefore we use a Make
+conditional to define the `all` target based on the group permissions being
+consistent between the initial configuration and the current run.
If there is a problem `all` will not depend on anything and will just print
a warning to inform you of the problem. When the group conditions are fine,
@@ -621,14 +621,6 @@ advanced in later stages of your work.
with. Also check and update this file one last time when you are ready
to publish your work (and its reproduction pipeline).
- - **`for-group`**: If you will be working on this pipeline with
- colleagues, and the build steps involve many files, or are slow, you
- need to share the build directory. This script is designed for such
- scenarios. So open this file and give the name of the Unix name of
- your group to the `thisgroup` variable. You can see the list of groups
- you are a member of with the `groups` command. You can ask your system
- administrator to define a group with specific members if necessary.
-
- **Your first commit**: You have already made some small and basic
changes in the steps above and you are in the `master` branch. So, you
can officially make your first commit in your project's history. But