<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paper-concept.git/project, branch maneage</title>
<subtitle>Paper (Towards Long-term and Archivable Reproducibility)</subtitle>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/'/>
<entry>
<title>./project: new --refresh-bib to force-build bibliography</title>
<updated>2022-04-15T03:37:21+00:00</updated>
<author>
<name>Pedram Ashofteh Ardakani</name>
<email>pedramardakani@pm.me</email>
</author>
<published>2022-04-13T14:50:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=7726397841af9d676b5115992bf4fc34ff8a0c81'/>
<id>7726397841af9d676b5115992bf4fc34ff8a0c81</id>
<content type='text'>
Until now, the bibliography was only re-built when 'tex/src/references.tex'
was modified. This is useful in many regular cases because building the
bibliography can slow down the build and it is in-efficient to built it in
every edit of the text of the paper. However, it can be inconvenient when a
change in the paper's bibliography is necessary, without actually editing
'references.tex' (for example when you are removing a citation from the
text).

This happens because Make is only sensitive to file modification time. In
this case, Make does not see the need to create a new 'bib' file because
the 'tex/src/reference' is not changed, and only the 'paper.tex' is
changed. Make is totally 'blind' to the new 'citation' defined in
'paper.tex'.

As a workaround, until now users were forced to manually change the
'tex/src/references.tex' file modification date: either by altering the
content, or using the 'touch' command.

With this commit, the '--refresh-bib' is added to './project' arguments to
address this issue. It will just 'touch' the 'tex/src/references.tex' file
before calling Make. In effect, this will 'force' Make to create the
bibliography file, even if 'tex/src/references.tex' hasn't been updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now, the bibliography was only re-built when 'tex/src/references.tex'
was modified. This is useful in many regular cases because building the
bibliography can slow down the build and it is in-efficient to built it in
every edit of the text of the paper. However, it can be inconvenient when a
change in the paper's bibliography is necessary, without actually editing
'references.tex' (for example when you are removing a citation from the
text).

This happens because Make is only sensitive to file modification time. In
this case, Make does not see the need to create a new 'bib' file because
the 'tex/src/reference' is not changed, and only the 'paper.tex' is
changed. Make is totally 'blind' to the new 'citation' defined in
'paper.tex'.

As a workaround, until now users were forced to manually change the
'tex/src/references.tex' file modification date: either by altering the
content, or using the 'touch' command.

With this commit, the '--refresh-bib' is added to './project' arguments to
address this issue. It will just 'touch' the 'tex/src/references.tex' file
before calling Make. In effect, this will 'force' Make to create the
bibliography file, even if 'tex/src/references.tex' hasn't been updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>IMPORTANT: Updates to almost all software</title>
<updated>2022-01-21T00:15:24+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2021-10-04T00:51:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=8463df97c6f26ec4d22cd5828bb0574fd5e450d2'/>
<id>8463df97c6f26ec4d22cd5828bb0574fd5e450d2</id>
<content type='text'>
This commit primarily affects the configuration step of Maneage'd projects,
and in particular, updated versions of the many of the software (see
P.S.). So it shouldn't affect your high-level analysis other than the
version bumps of the software you use (and the software's possibly
improve/changed behavior).

The following software (and thus their dependencies) couldn't be updated as
described below:
  - Cryptography: isn't building because it depends on a new
    setuptools-rust package that has problems
    (https://savannah.nongnu.org/bugs/index.php?61731), so it has been
    commented in 'versions.conf'.
  - SecretStorage: because it depends on Cryptography.
  - Keyring: because it depends on SecretStorage.
  - Astroquery: because it depends on Keyring.

This is a "squashed" commit after rebasing a development branch of 60
commits corresponding to a roughly two-month time interval. The following
people contributed to this branch.
  - Boudewijn Roukema added all the R software infrastructure and the R
    packages, as well as greatly helping in fixing many bugs during the
    update.
  - Raul Infante-Sainz helped in testing and debugging the build.
  - Pedram Ashofteh Ardakani found and fixed a bug.
  - Zahra Sharbaf helped in testing and found several bugs.

Below a description of the most noteworthy points is given.

  - Software tarballs: all updated software now have a unified format
    tarball (ustar; if not possible, pax) and unified compression (Lzip) in
    Maneage's software repository in Zenodo
    (https://doi.org/10.5281/zenodo.3883409). For more on this See
    https://savannah.nongnu.org/task/?15699 . This won't affect any extra
    software you would like to add; you can use any format recognized by
    GNU Tar, and all common compression algorithms. This new requirement is
    only for software that get merged to the core Maneage branch.

  - Metastore (and thus libbsd and libmd) moved to highlevel: Metastore
    (and the packages it depends on) is a high-level product that is only
    relevant during the project development (like Emacs!): when the user
    wants the file meta data (like dates) to be unchanged after checking
    out branches. So it should be considered a high-level software, not
    basic. Metastore also usually causes many more headaches and error
    messages, so personally, I have stopped using it! Instead I simply
    merge my branches in a separate clone, then pull the merge commit: in
    this way, the files of my project aren't re-written during the checkout
    phase and therefore their dates are untouched (which can conflict with
    Make's dates on configuration files).

  - The un-official cloned version of Flex (2.6.4-91 until this commit) was
    causing problems in the building of Netpbm, so with this commit, it has
    been moved back to version 2.6.4.

  - Netpbm's official page had version 10.73.38 as the latest stable
    tarball that was just released in late 2021. But I couldn't find our
    previously-used version 10.86.99 anywhere (to see when it was released
    and why we used it! Its at last more than one year old!). So the
    official stable version is being used now.

  - Improved instructions in 'README.md' for building software environment
    in a Docker container (while having project source and output data
    products on the local system; including the usage of the host's
    '/dev/shm' to speed up temporary operations).

  - Until now, the convention in Maneage was to put eight SPACE characters
    before the comment lines within recipes. This was done because by
    default GNU Emacs (also many other editors) show a TAB as eight
    characters. However, in other text editors, online browsers, or even
    the Git diff, a TAB can correspond to a different number of
    characters. In such cases, the Maneage recipes wouldn't look too
    interesting (the comments and the recipe commands would show a
    different indentation!).

    With this commit, all the comment lines in the Makefiles within the
    core Maneage branch have a hash ('#') as their first character and a
    TAB as the second. This allows the comment lines in recipes to have the
    same indentation as code; making the code much more easier to read in a
    general scenario including a 'git diff' (editor agnostic!).

P.S. List of updated software with their old and new versions
 - Software with no version update are not mentioned.
 - The old version of newly added software are shown with '--'.

Name (Basic)              Old version    New version
------------              -----------    -----------
Bzip2                     1.0.6          1.0.8
CURL                      7.71.1         7.79.1
Dash                      0.5.10.2       0.5.11.5
File                      5.39           5.41
Flock                     0.2.3          0.4.0
GNU Bash                  5.0.18         5.1.8
GNU Binutils              2.35           2.37
GNU Coreutils             8.32           9.0
GNU GCC                   10.2.0         11.2.0
GNU M4                    1.4.18         1.4.19
GNU Readline              8.0            8.1.1
GNU Tar                   1.32           1.34
GNU Texinfo               6.7            6.8
GNU diffutils             3.7            3.8
GNU findutils             4.7.0          4.8.0
GNU gmp                   6.2.0          6.2.1
GNU grep                  3.4            3.7
GNU gzip                  1.10           1.11
GNU libunistring          0.9.10         1.0
GNU mpc                   1.1.0          1.2.1
GNU mpfr                  4.0.2          4.1.0
GNU nano                  5.2            6.0
GNU ncurses               6.2            6.3
GNU wget                  1.20.3         1.21.2
Git                       2.28.0         2.34.0
Less                      563            590
Libxml2                   2.9.9          2.9.12
Lzip                      1.22-rc2       1.22
OpenSLL                   1.1.1a         3.0.0
Patchelf                  0.10           0.13
Perl                      5.32.0         5.34.0
Podlators                 --             4.14

Name (Highlevel)          Old version    New version
----------------          -----------    -----------
Apachelog4cxx             0.10.0-603     0.12.1
Astrometry.net            0.80           0.85
Boost                     1.73.0         1.77.0
CFITSIO                   3.48           4.0.0
Cmake                     3.18.1         3.21.4
Eigen                     3.3.7          3.4.0
Expat                     2.2.9          2.4.1
FFTW                      3.3.8          3.3.10
Flex                      2.6.4-91       2.6.4
Fontconfig                2.13.1         2.13.94
Freetype                  2.10.2         2.11.0
GNU Astronomy Utilities   0.12           0.16.1-e0f1
GNU Autoconf              2.69.200-babc  2.71
GNU Automake              1.16.2         1.16.5
GNU Bison                 3.7            3.8.2
GNU Emacs                 27.1           27.2
GNU GDB                   9.2            11.1
GNU GSL                   2.6            2.7
GNU Help2man              1.47.11        1.48.5
Ghostscript               9.52           9.55.0
ICU                       --             70.1
ImageMagick               7.0.8-67       7.1.0-13
Libbsd                    0.10.0         0.11.3
Libffi                    3.2.1          3.4.2
Libgit2                   1.0.1          1.3.0
Libidn                    1.36           1.38
Libjpeg                   9b             9d
Libmd                     --             1.0.4
Libtiff                   4.0.10         4.3.0
Libx11                    1.6.9          1.7.2
Libxt                     1.2.0          1.2.1
Netpbm                    10.86.99       10.73.38
OpenBLAS                  0.3.10         0.3.18
OpenMPI                   4.0.4          4.1.1
Pixman                    0.38.0         0.40.0
Python                    3.8.5          3.10.0
R                         4.0.2          4.1.2
SWIG                      3.0.12         4.0.2
Util-linux                2.35           2.37.2
Util-macros               1.19.2         1.19.3
Valgrind                  3.15.0         3.18.1
WCSLIB                    7.3            7.7
Xcb-proto                 1.14           1.14.1
Xorgproto                 2020.1         2021.5

Name (Python)             Old version    New version
-------------             -----------    -----------
Astropy                   4.0            5.0
Beautifulsoup4            4.7.1          4.10.0
Beniget                   --             0.4.1
Cffi                      1.12.2         1.15.0
Cryptography              2.6.1          36.0.1
Cycler                    0.10.0         0.11.0+}
Cython                    0.29.21        0.29.24
Esutil                    0.6.4          0.6.9
Extension-helpers         --             0.1
Galsim                    2.2.1          2.3.3
Gast                      --             0.5.3
Jinja2                    --             3.0.3
MPI4py                    3.0.3          3.1.3
Markupsafe                --             2.0.1
Numpy                     1.19.1         1.21.3
Packaging                 --             21.3
Pillow                    --             8.4.0
Ply                       --             3.11
Pyerfa                    --             2.0.0.1
Pyparsing                 2.3.1          3.0.4
Pythran                   --             0.11.0
Scipy                     1.5.2          1.7.3
Setuptools                41.6.0         58.3.0
Six                       1.12.0         1.16.0
Uncertainties             3.1.2          3.1.6
Wheel                     --             0.37.0

Name (R)                  Old version    New version
--------                  -----------    -----------
Cli                       --             2.5.0
Colorspace                --             2.0-1
Cowplot                   --             1.1.1
Crayon                    --             1.4.1
Digest                    --             0.6.27
Ellipsis                  --             0.3.2
Fansi                     --             0.5.0
Farver                    --             2.1.0
Ggplot2                   --             3.3.4
Glue                      --             1.4.2
GridExtra                 --             2.3
Gtable                    --             0.3.0
Isoband                   --             0.2.4
Labeling                  --             0.4.2
Lifecycle                 --             1.0.0
Magrittr                  --             2.0.1
MASS                      --             7.3-54
Mgcv                      --             1.8-36
Munsell                   --             0.5.0
Pillar                    --             1.6.1
R-Pkgconfig               --             2.0.3
R6                        --             2.5.0
RColorBrewer              --             1.1-2
Rlang                     --             0.4.11
Scales                    --             1.1.1
Tibble                    --             3.1.2
Utf8                      --             1.2.1
Vctrs                     --             0.3.8
ViridisLite               --             0.4.0
Withr                     --             2.4.2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit primarily affects the configuration step of Maneage'd projects,
and in particular, updated versions of the many of the software (see
P.S.). So it shouldn't affect your high-level analysis other than the
version bumps of the software you use (and the software's possibly
improve/changed behavior).

The following software (and thus their dependencies) couldn't be updated as
described below:
  - Cryptography: isn't building because it depends on a new
    setuptools-rust package that has problems
    (https://savannah.nongnu.org/bugs/index.php?61731), so it has been
    commented in 'versions.conf'.
  - SecretStorage: because it depends on Cryptography.
  - Keyring: because it depends on SecretStorage.
  - Astroquery: because it depends on Keyring.

This is a "squashed" commit after rebasing a development branch of 60
commits corresponding to a roughly two-month time interval. The following
people contributed to this branch.
  - Boudewijn Roukema added all the R software infrastructure and the R
    packages, as well as greatly helping in fixing many bugs during the
    update.
  - Raul Infante-Sainz helped in testing and debugging the build.
  - Pedram Ashofteh Ardakani found and fixed a bug.
  - Zahra Sharbaf helped in testing and found several bugs.

Below a description of the most noteworthy points is given.

  - Software tarballs: all updated software now have a unified format
    tarball (ustar; if not possible, pax) and unified compression (Lzip) in
    Maneage's software repository in Zenodo
    (https://doi.org/10.5281/zenodo.3883409). For more on this See
    https://savannah.nongnu.org/task/?15699 . This won't affect any extra
    software you would like to add; you can use any format recognized by
    GNU Tar, and all common compression algorithms. This new requirement is
    only for software that get merged to the core Maneage branch.

  - Metastore (and thus libbsd and libmd) moved to highlevel: Metastore
    (and the packages it depends on) is a high-level product that is only
    relevant during the project development (like Emacs!): when the user
    wants the file meta data (like dates) to be unchanged after checking
    out branches. So it should be considered a high-level software, not
    basic. Metastore also usually causes many more headaches and error
    messages, so personally, I have stopped using it! Instead I simply
    merge my branches in a separate clone, then pull the merge commit: in
    this way, the files of my project aren't re-written during the checkout
    phase and therefore their dates are untouched (which can conflict with
    Make's dates on configuration files).

  - The un-official cloned version of Flex (2.6.4-91 until this commit) was
    causing problems in the building of Netpbm, so with this commit, it has
    been moved back to version 2.6.4.

  - Netpbm's official page had version 10.73.38 as the latest stable
    tarball that was just released in late 2021. But I couldn't find our
    previously-used version 10.86.99 anywhere (to see when it was released
    and why we used it! Its at last more than one year old!). So the
    official stable version is being used now.

  - Improved instructions in 'README.md' for building software environment
    in a Docker container (while having project source and output data
    products on the local system; including the usage of the host's
    '/dev/shm' to speed up temporary operations).

  - Until now, the convention in Maneage was to put eight SPACE characters
    before the comment lines within recipes. This was done because by
    default GNU Emacs (also many other editors) show a TAB as eight
    characters. However, in other text editors, online browsers, or even
    the Git diff, a TAB can correspond to a different number of
    characters. In such cases, the Maneage recipes wouldn't look too
    interesting (the comments and the recipe commands would show a
    different indentation!).

    With this commit, all the comment lines in the Makefiles within the
    core Maneage branch have a hash ('#') as their first character and a
    TAB as the second. This allows the comment lines in recipes to have the
    same indentation as code; making the code much more easier to read in a
    general scenario including a 'git diff' (editor agnostic!).

P.S. List of updated software with their old and new versions
 - Software with no version update are not mentioned.
 - The old version of newly added software are shown with '--'.

Name (Basic)              Old version    New version
------------              -----------    -----------
Bzip2                     1.0.6          1.0.8
CURL                      7.71.1         7.79.1
Dash                      0.5.10.2       0.5.11.5
File                      5.39           5.41
Flock                     0.2.3          0.4.0
GNU Bash                  5.0.18         5.1.8
GNU Binutils              2.35           2.37
GNU Coreutils             8.32           9.0
GNU GCC                   10.2.0         11.2.0
GNU M4                    1.4.18         1.4.19
GNU Readline              8.0            8.1.1
GNU Tar                   1.32           1.34
GNU Texinfo               6.7            6.8
GNU diffutils             3.7            3.8
GNU findutils             4.7.0          4.8.0
GNU gmp                   6.2.0          6.2.1
GNU grep                  3.4            3.7
GNU gzip                  1.10           1.11
GNU libunistring          0.9.10         1.0
GNU mpc                   1.1.0          1.2.1
GNU mpfr                  4.0.2          4.1.0
GNU nano                  5.2            6.0
GNU ncurses               6.2            6.3
GNU wget                  1.20.3         1.21.2
Git                       2.28.0         2.34.0
Less                      563            590
Libxml2                   2.9.9          2.9.12
Lzip                      1.22-rc2       1.22
OpenSLL                   1.1.1a         3.0.0
Patchelf                  0.10           0.13
Perl                      5.32.0         5.34.0
Podlators                 --             4.14

Name (Highlevel)          Old version    New version
----------------          -----------    -----------
Apachelog4cxx             0.10.0-603     0.12.1
Astrometry.net            0.80           0.85
Boost                     1.73.0         1.77.0
CFITSIO                   3.48           4.0.0
Cmake                     3.18.1         3.21.4
Eigen                     3.3.7          3.4.0
Expat                     2.2.9          2.4.1
FFTW                      3.3.8          3.3.10
Flex                      2.6.4-91       2.6.4
Fontconfig                2.13.1         2.13.94
Freetype                  2.10.2         2.11.0
GNU Astronomy Utilities   0.12           0.16.1-e0f1
GNU Autoconf              2.69.200-babc  2.71
GNU Automake              1.16.2         1.16.5
GNU Bison                 3.7            3.8.2
GNU Emacs                 27.1           27.2
GNU GDB                   9.2            11.1
GNU GSL                   2.6            2.7
GNU Help2man              1.47.11        1.48.5
Ghostscript               9.52           9.55.0
ICU                       --             70.1
ImageMagick               7.0.8-67       7.1.0-13
Libbsd                    0.10.0         0.11.3
Libffi                    3.2.1          3.4.2
Libgit2                   1.0.1          1.3.0
Libidn                    1.36           1.38
Libjpeg                   9b             9d
Libmd                     --             1.0.4
Libtiff                   4.0.10         4.3.0
Libx11                    1.6.9          1.7.2
Libxt                     1.2.0          1.2.1
Netpbm                    10.86.99       10.73.38
OpenBLAS                  0.3.10         0.3.18
OpenMPI                   4.0.4          4.1.1
Pixman                    0.38.0         0.40.0
Python                    3.8.5          3.10.0
R                         4.0.2          4.1.2
SWIG                      3.0.12         4.0.2
Util-linux                2.35           2.37.2
Util-macros               1.19.2         1.19.3
Valgrind                  3.15.0         3.18.1
WCSLIB                    7.3            7.7
Xcb-proto                 1.14           1.14.1
Xorgproto                 2020.1         2021.5

Name (Python)             Old version    New version
-------------             -----------    -----------
Astropy                   4.0            5.0
Beautifulsoup4            4.7.1          4.10.0
Beniget                   --             0.4.1
Cffi                      1.12.2         1.15.0
Cryptography              2.6.1          36.0.1
Cycler                    0.10.0         0.11.0+}
Cython                    0.29.21        0.29.24
Esutil                    0.6.4          0.6.9
Extension-helpers         --             0.1
Galsim                    2.2.1          2.3.3
Gast                      --             0.5.3
Jinja2                    --             3.0.3
MPI4py                    3.0.3          3.1.3
Markupsafe                --             2.0.1
Numpy                     1.19.1         1.21.3
Packaging                 --             21.3
Pillow                    --             8.4.0
Ply                       --             3.11
Pyerfa                    --             2.0.0.1
Pyparsing                 2.3.1          3.0.4
Pythran                   --             0.11.0
Scipy                     1.5.2          1.7.3
Setuptools                41.6.0         58.3.0
Six                       1.12.0         1.16.0
Uncertainties             3.1.2          3.1.6
Wheel                     --             0.37.0

Name (R)                  Old version    New version
--------                  -----------    -----------
Cli                       --             2.5.0
Colorspace                --             2.0-1
Cowplot                   --             1.1.1
Crayon                    --             1.4.1
Digest                    --             0.6.27
Ellipsis                  --             0.3.2
Fansi                     --             0.5.0
Farver                    --             2.1.0
Ggplot2                   --             3.3.4
Glue                      --             1.4.2
GridExtra                 --             2.3
Gtable                    --             0.3.0
Isoband                   --             0.2.4
Labeling                  --             0.4.2
Lifecycle                 --             1.0.0
Magrittr                  --             2.0.1
MASS                      --             7.3-54
Mgcv                      --             1.8-36
Munsell                   --             0.5.0
Pillar                    --             1.6.1
R-Pkgconfig               --             2.0.3
R6                        --             2.5.0
RColorBrewer              --             1.1-2
Rlang                     --             0.4.11
Scales                    --             1.1.1
Tibble                    --             3.1.2
Utf8                      --             1.2.1
Vctrs                     --             0.3.8
ViridisLite               --             0.4.0
Withr                     --             2.4.2
</pre>
</div>
</content>
</entry>
<entry>
<title>Configuration: corrected check of group name</title>
<updated>2021-03-28T11:55:03+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2021-03-28T11:55:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=20b6273a65ab4d99ad760fd715ca935494d4fc2e'/>
<id>20b6273a65ab4d99ad760fd715ca935494d4fc2e</id>
<content type='text'>
When built in 'group' mode, the write permissions of all created files will
be activated for a certain group of users in the host operating system. The
user specifies the name of the group with the '--group' option at configure
time. At the very start, the './project' script checks to see if the given
group name actually exists or not (to avoid hard-to-debug errors popping up
later).

Until now, the checking 'sg' command (that was used to build the project
with group-writable permissions) would always fail due to the excessive
number of redirections. Therefore, it would always print the error message
and abort.

With this commit, the output of 'sg' is no longer re-directed (which also
helps users in debuggin). If the group does actually exist, it will just
print a small statement saying so, and if it fails, the error message is
printed. This fixed the problem, allowing maneage to be built in
group-mode.

I also noticed that the variable name keeping the group name
('reproducible_paper_group_name') used the old name for the project (which
was "Reproducible paper template"! So it has been changed/corrected to
'maneage_group_name'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When built in 'group' mode, the write permissions of all created files will
be activated for a certain group of users in the host operating system. The
user specifies the name of the group with the '--group' option at configure
time. At the very start, the './project' script checks to see if the given
group name actually exists or not (to avoid hard-to-debug errors popping up
later).

Until now, the checking 'sg' command (that was used to build the project
with group-writable permissions) would always fail due to the excessive
number of redirections. Therefore, it would always print the error message
and abort.

With this commit, the output of 'sg' is no longer re-directed (which also
helps users in debuggin). If the group does actually exist, it will just
print a small statement saying so, and if it fails, the error message is
printed. This fixed the problem, allowing maneage to be built in
group-mode.

I also noticed that the variable name keeping the group name
('reproducible_paper_group_name') used the old name for the project (which
was "Reproducible paper template"! So it has been changed/corrected to
'maneage_group_name'.
</pre>
</div>
</content>
</entry>
<entry>
<title>./project: unused --minmapsize option is removed</title>
<updated>2021-03-26T18:19:22+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2021-03-26T18:19:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=ac8890dfbf06c8b98a3163f798ad3fe65b193a33'/>
<id>ac8890dfbf06c8b98a3163f798ad3fe65b193a33</id>
<content type='text'>
Until now, the './project' script included an '--minmapsize' option which
is an option to one of the original programs that was used in Maneage
(Gnuastro). Such an option doesn't exist in many other programs, so it is
not a suitable option for the generic Maneage project (and can just cause
confusion). It was also not used in any part of Maneage any more!

With this commit, this option is removed from the core Maneage './project'
script and if any project uses it, they can implement it in their own
branch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now, the './project' script included an '--minmapsize' option which
is an option to one of the original programs that was used in Maneage
(Gnuastro). Such an option doesn't exist in many other programs, so it is
not a suitable option for the generic Maneage project (and can just cause
confusion). It was also not used in any part of Maneage any more!

With this commit, this option is removed from the core Maneage './project'
script and if any project uses it, they can implement it in their own
branch.
</pre>
</div>
</content>
</entry>
<entry>
<title>Configuration: --debug option available in this phase also</title>
<updated>2021-03-20T00:53:37+00:00</updated>
<author>
<name>Raul Infante-Sainz</name>
<email>infantesainz@gmail.com</email>
</author>
<published>2021-03-19T17:52:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=c3e82b1c7b6c358719f3d1dd5cf4871cde3446a7'/>
<id>c3e82b1c7b6c358719f3d1dd5cf4871cde3446a7</id>
<content type='text'>
Until now, each time there was a problem in the configuration of Maneage'd
projects and debugging was necessary, we had to take the following changes:

 - Run the configuration on a single thread ('-j1') to see the building of
   only the problematic software.

 - Disable the Zenodo check manually by commenting those parts of
   'reproduce/software/shell/configure.sh'. Because the internet connection
   wastes a few seconds and is thus very annoying during repeated runs!

 - Manually remove the '-k' option that was passed to Make (when building
   the software). With the '-k', Make keeps going with the execution of
   other targets if something crashes and this usually causes confusions
   during the debugging.

Doing the manual changes within the code was both very annoying and prone
to errors (forgetting to correct it!).

With this commit, the existing '--debug' option has been generalized to the
software configuration phase of Maneage also. Until now, it was only
available in the analysis phase (and would directly be passed to the 'make'
command that would run the analysis). When this option is used, and the
project is in the software configuration phase, the Zenodo check won't be
done, it will use one single thread ('-j1'), and it will stop the execution
as soon as an error occurs (Make is not run with '-k').
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now, each time there was a problem in the configuration of Maneage'd
projects and debugging was necessary, we had to take the following changes:

 - Run the configuration on a single thread ('-j1') to see the building of
   only the problematic software.

 - Disable the Zenodo check manually by commenting those parts of
   'reproduce/software/shell/configure.sh'. Because the internet connection
   wastes a few seconds and is thus very annoying during repeated runs!

 - Manually remove the '-k' option that was passed to Make (when building
   the software). With the '-k', Make keeps going with the execution of
   other targets if something crashes and this usually causes confusions
   during the debugging.

Doing the manual changes within the code was both very annoying and prone
to errors (forgetting to correct it!).

With this commit, the existing '--debug' option has been generalized to the
software configuration phase of Maneage also. Until now, it was only
available in the analysis phase (and would directly be passed to the 'make'
command that would run the analysis). When this option is used, and the
project is in the software configuration phase, the Zenodo check won't be
done, it will use one single thread ('-j1'), and it will stop the execution
as soon as an error occurs (Make is not run with '-k').
</pre>
</div>
</content>
</entry>
<entry>
<title>./project make: new texclean target</title>
<updated>2021-01-02T15:59:49+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2021-01-02T15:59:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=b1bd282bc3bcd11573fc064edfbab1bd65564348'/>
<id>b1bd282bc3bcd11573fc064edfbab1bd65564348</id>
<content type='text'>
Until now there was only a 'clean' (to delete all files created during the
'make' phase) and the 'distclean' (to delete all files during configuration
and make). But sometimes we don't want to delete all the files created
during the full 'make' phase, we only want to delete the files that were
created by LaTeX for building the paper.

Witht this commit, a new target has been added for this job. You can now
run the following command for this job:

  ./project make texclean

Only the files in '$(BDIR)/tex/build' will be deleted (and the 'tikz'
directory under that location is recreated, ready for a future build).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now there was only a 'clean' (to delete all files created during the
'make' phase) and the 'distclean' (to delete all files during configuration
and make). But sometimes we don't want to delete all the files created
during the full 'make' phase, we only want to delete the files that were
created by LaTeX for building the paper.

Witht this commit, a new target has been added for this job. You can now
run the following command for this job:

  ./project make texclean

Only the files in '$(BDIR)/tex/build' will be deleted (and the 'tikz'
directory under that location is recreated, ready for a future build).
</pre>
</div>
</content>
</entry>
<entry>
<title>Copyright year updated in all source files</title>
<updated>2021-01-02T15:52:31+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2021-01-02T15:52:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=ff43476c4d293fda8765cfddbb1378f1b910218c'/>
<id>ff43476c4d293fda8765cfddbb1378f1b910218c</id>
<content type='text'>
Having entered 2021, it was necessary to update the copyright years at the
top of the source files. We recommend that you do this for all your
project-specific source files also.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having entered 2021, it was necessary to update the copyright years at the
top of the source files. We recommend that you do this for all your
project-specific source files also.
</pre>
</div>
</content>
</entry>
<entry>
<title>IMPORTANT: organizational improvements in Maneage TeX sources</title>
<updated>2020-12-01T00:12:11+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2020-11-30T23:50:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=6ca2fbf925d14fff862889840913e3c89ea8048a'/>
<id>6ca2fbf925d14fff862889840913e3c89ea8048a</id>
<content type='text'>
This only concerns the TeX sources in the default branch. In case you don't
use them, there should only be a clean conflict in 'paper.tex' (that is
obvious and easy to fix). Conflicts may only happen in some of the
'tex/src/preamble-*.tex' files if you have actually changed them for your
project. But generally any conflict that does arise by this commit with
your project branch should be very clear and easy to fix and test.

In short, from now on things will even be easier: any LaTeX configuration
that you want to do for your project can be done in
'tex/src/preamble-project.tex', so you don't have to worry about any other
LaTeX preamble file. They are either templates (like the ones for PGFPlots
and BibLaTeX) or low-level things directly related to Maneage. Until now,
this distinction wasn't too clear.

Here is a summary of the improvements:

 - Two new options to './project make': with '--highlight-new' and
   '--highlight-notes' it is now possible to activate highlighting on the
   command-line. Until now, there was a LaTeX macro for this at the start
   of 'paper.tex' (\highlightchanges). But changing that line would change
   the Git commit hash, making it hard for the readers to trust that this
   is the same PDF. With these two new run-time options, the printed commit
   hash will not changed.

 - paper.tex: the sentences are formatted as one sentence per line (and one
   line per sentence). This helps in version controlling narrative and
   following the changes per sentence. A description of this format (and
   its advantages) is also included in the default text.

 - The internal Maneage preambles have been modified:

    - 'tex/src/preamble-header.tex' and 'tex/src/preamble-style.tex' have
      been merged into one preamble file called
      'tex/src/preamble-maneage-default-style.tex'. This helps a lot in
      simply removing it when you use a journal style file for example.

    - Things like the options to highlight parts of the text are now put in
      a special 'tex/src/preamble-maneage.tex'. This helps highlight that
      these are Maneage-specific features that are independent of the style
      used in the paper.

    - There is a new 'tex/src/preamble-project.tex' that is the place you
      can add your project-specific customizations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This only concerns the TeX sources in the default branch. In case you don't
use them, there should only be a clean conflict in 'paper.tex' (that is
obvious and easy to fix). Conflicts may only happen in some of the
'tex/src/preamble-*.tex' files if you have actually changed them for your
project. But generally any conflict that does arise by this commit with
your project branch should be very clear and easy to fix and test.

In short, from now on things will even be easier: any LaTeX configuration
that you want to do for your project can be done in
'tex/src/preamble-project.tex', so you don't have to worry about any other
LaTeX preamble file. They are either templates (like the ones for PGFPlots
and BibLaTeX) or low-level things directly related to Maneage. Until now,
this distinction wasn't too clear.

Here is a summary of the improvements:

 - Two new options to './project make': with '--highlight-new' and
   '--highlight-notes' it is now possible to activate highlighting on the
   command-line. Until now, there was a LaTeX macro for this at the start
   of 'paper.tex' (\highlightchanges). But changing that line would change
   the Git commit hash, making it hard for the readers to trust that this
   is the same PDF. With these two new run-time options, the printed commit
   hash will not changed.

 - paper.tex: the sentences are formatted as one sentence per line (and one
   line per sentence). This helps in version controlling narrative and
   following the changes per sentence. A description of this format (and
   its advantages) is also included in the default text.

 - The internal Maneage preambles have been modified:

    - 'tex/src/preamble-header.tex' and 'tex/src/preamble-style.tex' have
      been merged into one preamble file called
      'tex/src/preamble-maneage-default-style.tex'. This helps a lot in
      simply removing it when you use a journal style file for example.

    - Things like the options to highlight parts of the text are now put in
      a special 'tex/src/preamble-maneage.tex'. This helps highlight that
      these are Maneage-specific features that are independent of the style
      used in the paper.

    - There is a new 'tex/src/preamble-project.tex' that is the place you
      can add your project-specific customizations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed all occurances of IFS in low-level scripts</title>
<updated>2020-09-08T00:25:29+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2020-09-08T00:25:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=24d01f55d675348b1b4e9c022aab80af66100e9e'/>
<id>24d01f55d675348b1b4e9c022aab80af66100e9e</id>
<content type='text'>
Following the previous commit, we recognized that the 'IFS' terms are not
necessary and can be even cause problems. So all their occurances in the
scripts of Maneage have been removed with this commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following the previous commit, we recognized that the 'IFS' terms are not
necessary and can be even cause problems. So all their occurances in the
scripts of Maneage have been removed with this commit.
</pre>
</div>
</content>
</entry>
<entry>
<title>Plain text editors: nano in basic, emacs and vim in high-level</title>
<updated>2020-08-28T14:02:30+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2020-08-27T15:47:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.maneage.org/paper-concept.git/commit/?id=87948105390c035a0f0ad409db622b3850988ddb'/>
<id>87948105390c035a0f0ad409db622b3850988ddb</id>
<content type='text'>
While a project is under development, the raw analysis software are not the
only necessary software in a project. We also need tools to all the edit
plain-text files within the Maneaged project. Usually people use their
operating system's plain-text editor. However, when working on the project
on a new computer, or in a container, the plain-text editors will have
different versions, or may not be present at all! This can be very annoying
and frustrating!

With this commit, Maneage now installs GNU Nano as part of the basic
tools. GNU Nano is a very simple and small plain text editor (the installed
size is only ~3.5MB, and it is friendly to new users). Therefore, any
Maneaged project can assume atleast Nano will be present (in particular
when no editor is available on the running system!). GNU Emacs and VIM
(both without extra dependencies, in particular without GUI support) are
also optionally available in 'high-level.mk' (by adding them to
'TARGETS.conf').

The basic idea for the more advanced editors (Emacs and VIM) is that
project authors can add their favorite editor while they are working on the
project, but upon publication they can remove them from 'TARGETS.conf'.

A few other minor things came up during this work and are now also fixed:

 - The 'file' program and its libraries like 'libmagic' were linking to
   system's 'libseccomp'! This dependency then leaked into Nano (which
   depends on 'libmagic'). But this is just an extra feature of 'file',
   only for the Linux kernel. Also, we have no dependency on it so far. So
   'file' is not configured to not build with 'libseccomp'.

 - A typo was fixed in the line where the physical core information is
   being read on macOS.

 - The top-level directories when running './project shell' are now quoted
   (in case they have special characters).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While a project is under development, the raw analysis software are not the
only necessary software in a project. We also need tools to all the edit
plain-text files within the Maneaged project. Usually people use their
operating system's plain-text editor. However, when working on the project
on a new computer, or in a container, the plain-text editors will have
different versions, or may not be present at all! This can be very annoying
and frustrating!

With this commit, Maneage now installs GNU Nano as part of the basic
tools. GNU Nano is a very simple and small plain text editor (the installed
size is only ~3.5MB, and it is friendly to new users). Therefore, any
Maneaged project can assume atleast Nano will be present (in particular
when no editor is available on the running system!). GNU Emacs and VIM
(both without extra dependencies, in particular without GUI support) are
also optionally available in 'high-level.mk' (by adding them to
'TARGETS.conf').

The basic idea for the more advanced editors (Emacs and VIM) is that
project authors can add their favorite editor while they are working on the
project, but upon publication they can remove them from 'TARGETS.conf'.

A few other minor things came up during this work and are now also fixed:

 - The 'file' program and its libraries like 'libmagic' were linking to
   system's 'libseccomp'! This dependency then leaked into Nano (which
   depends on 'libmagic'). But this is just an extra feature of 'file',
   only for the Linux kernel. Also, we have no dependency on it so far. So
   'file' is not configured to not build with 'libseccomp'.

 - A typo was fixed in the line where the physical core information is
   being read on macOS.

 - The top-level directories when running './project shell' are now quoted
   (in case they have special characters).
</pre>
</div>
</content>
</entry>
</feed>
