<feed xmlns='http://www.w3.org/2005/Atom'>
<title>project.git/Makefile, branch maneage</title>
<subtitle>Core Maneage branch (where all projects derive from)</subtitle>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/'/>
<entry>
<title>Dependencies built at the start of the pipeline</title>
<updated>2018-11-12T00:34:19+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-11-11T19:09:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=b7e88b1bf82b936f8fe07c0c2c5f8621c2018f3a'/>
<id>b7e88b1bf82b936f8fe07c0c2c5f8621c2018f3a</id>
<content type='text'>
To enable easy/proper reproduction of results, all the high-level
dependencies are now built within the pipeline and installed in a fixed
directory that is added to the PATH of the Makefile. This includes GNU Bash
and GNU Make, which are then used to run the pipeline.

The `./configure' script will first build Bash and Make within itself, then
it will build

All the dependencies are also built to be static. So after they are built,
changing of the system's low-level libraries (like C library) won't change
the tarballs.

Currently the C library and C compiler aren't built within the pipeline,
but we'll hopefully add them to the build process also.

With this change, we now have full control of the shell and Make that will
be used in the pipeline, so we can safely remove some of the generalities
we had before.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To enable easy/proper reproduction of results, all the high-level
dependencies are now built within the pipeline and installed in a fixed
directory that is added to the PATH of the Makefile. This includes GNU Bash
and GNU Make, which are then used to run the pipeline.

The `./configure' script will first build Bash and Make within itself, then
it will build

All the dependencies are also built to be static. So after they are built,
changing of the system's low-level libraries (like C library) won't change
the tarballs.

Currently the C library and C compiler aren't built within the pipeline,
but we'll hopefully add them to the build process also.

With this change, we now have full control of the shell and Make that will
be used in the pipeline, so we can safely remove some of the generalities
we had before.
</pre>
</div>
</content>
</entry>
<entry>
<title>SHELL has been explicitly set to /bin/bash</title>
<updated>2018-07-27T10:50:19+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-07-27T10:50:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=f41557ad13796424692ecca525b58fd03fc9dc7a'/>
<id>f41557ad13796424692ecca525b58fd03fc9dc7a</id>
<content type='text'>
On some systems, the default shell `/bin/sh' doesn't point to Bash and
this can cause problems and failures when the designer uses its
features. Bash (and its extra features) make things very easy and it
is very ubiquitous, so it is safe to assume users will have it.

This problem was reported by Alejandro Serrano Borlaff.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On some systems, the default shell `/bin/sh' doesn't point to Bash and
this can cause problems and failures when the designer uses its
features. Bash (and its extra features) make things very easy and it
is very ubiquitous, so it is safe to assume users will have it.

This problem was reported by Alejandro Serrano Borlaff.
</pre>
</div>
</content>
</entry>
<entry>
<title>Default PDF now uses PGFPlots and BibLaTeX</title>
<updated>2018-02-27T14:07:23+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-27T13:48:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=30733df5d30e150a26d53173d14bf941f179f6f5'/>
<id>30733df5d30e150a26d53173d14bf941f179f6f5</id>
<content type='text'>
Making plots and including references are integral parts of a scientific
paper. Therefore to demonstrate how cleanly they can be used within the
pipeline, they are now used to produce the final PDF.

To use PGFPlots a random dataset is made (using AWK's random function) and
is plotted using PGFPlots. The minimum and maximum values of the dataset
are also included in the text to further show how such calculations can go
into the macros and text.

For the references, the NoiseChisel paper was added as a reference to cite
when using this pipeline along with the MUSE UDF paper I, which uses this
pipeline for two sections. Following this discussion, citation is also
discussed in `README.md` and the NoiseChisel paper is also added as a
published work with a reproduction pipeline.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Making plots and including references are integral parts of a scientific
paper. Therefore to demonstrate how cleanly they can be used within the
pipeline, they are now used to produce the final PDF.

To use PGFPlots a random dataset is made (using AWK's random function) and
is plotted using PGFPlots. The minimum and maximum values of the dataset
are also included in the text to further show how such calculations can go
into the macros and text.

For the references, the NoiseChisel paper was added as a reference to cite
when using this pipeline along with the MUSE UDF paper I, which uses this
pipeline for two sections. Following this discussion, citation is also
discussed in `README.md` and the NoiseChisel paper is also added as a
published work with a reproduction pipeline.
</pre>
</div>
</content>
</entry>
<entry>
<title>Copyrights and TeX management made more clear</title>
<updated>2018-02-27T09:42:20+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-27T09:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=4360fbd36203022fde68b12f90548ca3a39085ce'/>
<id>4360fbd36203022fde68b12f90548ca3a39085ce</id>
<content type='text'>
Until now, the copyright statement was left empty for the users of the
pipeline to fill. However, the files have already been created and have an
author (or contributing authors) before the user starts using the
pipeline. So the original authors of the files are added along with the
year. The user can add their own name to the existing files under the
"Contributing author" when they start and they will be the "Original
author" of the new files they create.

Several changes were also made to the TeX management:

 - LaTeX is run within a `reproduce/build/tex/build' directory now. Not in
   the top reproduction pipeline directory. This helps keep all the
   auxiliary TeX files and directories in that directory and keep the top
   reproduction pipeline directory clean. After the final PDF is built, a
   copy is put in the top reproduction pipeline directory for easy viewing.

 - The PGFPlots preamble was also made more useful, allowing the name of
   the `.tex' file to also be the name of the final plot that is
   produced. This is a GREAT feature, because without it, the TiKZ
   externalization would be based on order of the plots within the
   paper. But now, order is irrelevant and we can even delete the TiKZ
   files within the processing workhorse-Makefiles so the plots are
   definitly rebuilt on the next run.

 - The paper is now in a two-column format to be more similar to published
   papers.

A tip on debugging Make was added to `README.md'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Until now, the copyright statement was left empty for the users of the
pipeline to fill. However, the files have already been created and have an
author (or contributing authors) before the user starts using the
pipeline. So the original authors of the files are added along with the
year. The user can add their own name to the existing files under the
"Contributing author" when they start and they will be the "Original
author" of the new files they create.

Several changes were also made to the TeX management:

 - LaTeX is run within a `reproduce/build/tex/build' directory now. Not in
   the top reproduction pipeline directory. This helps keep all the
   auxiliary TeX files and directories in that directory and keep the top
   reproduction pipeline directory clean. After the final PDF is built, a
   copy is put in the top reproduction pipeline directory for easy viewing.

 - The PGFPlots preamble was also made more useful, allowing the name of
   the `.tex' file to also be the name of the final plot that is
   produced. This is a GREAT feature, because without it, the TiKZ
   externalization would be based on order of the plots within the
   paper. But now, order is irrelevant and we can even delete the TiKZ
   files within the processing workhorse-Makefiles so the plots are
   definitly rebuilt on the next run.

 - The paper is now in a two-column format to be more similar to published
   papers.

A tip on debugging Make was added to `README.md'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Pipeline architecture described in README.md</title>
<updated>2018-02-20T15:03:08+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-20T15:03:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=0947d02a10bbc91dfcccc2ce4be3801043a16a78'/>
<id>0947d02a10bbc91dfcccc2ce4be3801043a16a78</id>
<content type='text'>
`README.md' didn't contain a general description of the pipeline's design
architecture. So a few paragraphs have been added to help someone new to it
to understand it better.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`README.md' didn't contain a general description of the pipeline's design
architecture. So a few paragraphs have been added to help someone new to it
to understand it better.
</pre>
</div>
</content>
</entry>
<entry>
<title>Choice to build final PDF removed from LOCAL settings</title>
<updated>2018-02-15T11:17:05+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-15T11:06:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=e45ac9f074a62a0dab26e4de86e4c97458384d18'/>
<id>e45ac9f074a62a0dab26e4de86e4c97458384d18</id>
<content type='text'>
The previous change where we had set the building of the PDF as a local
(and thus not version controlled) setting was not good, because different
commits might be made without the high-level preparations for the final PDF
(especially during the initial/testing phases of a research). Therefore, if
the runner of the pipeline is ignorant to this, they may hit some errors in
LaTeX which can be frustrating.

To have a clean reproduction, it is thus necessary to have the choice of
pdf-building under version control along with the rest of the pipeline.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous change where we had set the building of the PDF as a local
(and thus not version controlled) setting was not good, because different
commits might be made without the high-level preparations for the final PDF
(especially during the initial/testing phases of a research). Therefore, if
the runner of the pipeline is ignorant to this, they may hit some errors in
LaTeX which can be frustrating.

To have a clean reproduction, it is thus necessary to have the choice of
pdf-building under version control along with the rest of the pipeline.
</pre>
</div>
</content>
</entry>
<entry>
<title>Some extra space in alert when no PDF is created</title>
<updated>2018-02-14T14:52:12+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-14T14:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=3dc547c3e3e7279085b4807c551f327c5b985a49'/>
<id>3dc547c3e3e7279085b4807c551f327c5b985a49</id>
<content type='text'>
To help view that everything is OK and that there were no errors, an extra
blank line followed by one with `----' is added to the notice when we won't
be making a PDF. These two lines help the eye more clearly see everything
is fine (given that above it, there are MANY commands and outputs).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To help view that everything is OK and that there were no errors, an extra
blank line followed by one with `----' is added to the notice when we won't
be making a PDF. These two lines help the eye more clearly see everything
is fine (given that above it, there are MANY commands and outputs).
</pre>
</div>
</content>
</entry>
<entry>
<title>Symbolic link to build directory now permanently added</title>
<updated>2018-02-14T14:46:15+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-14T14:46:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=3d216bd6797bc4bf0d02cd43adf37706b057c580'/>
<id>3d216bd6797bc4bf0d02cd43adf37706b057c580</id>
<content type='text'>
Managing this symbolic link as a prerequisite that may or maynot be defined
just made the code too dirty. It is almost always needed, so it is now a
super-high-level prerequisite (first dependency of the `all' target, even
before the final PDF). In this way, we can be sure it is always built and
that nothing else depends on it.

If the user doesn't want it, they can simply remove it from the top
`Makefile'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Managing this symbolic link as a prerequisite that may or maynot be defined
just made the code too dirty. It is almost always needed, so it is now a
super-high-level prerequisite (first dependency of the `all' target, even
before the final PDF). In this way, we can be sure it is always built and
that nothing else depends on it.

If the user doesn't want it, they can simply remove it from the top
`Makefile'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Sanity checks added, local settings now in LOCAL.mk.in</title>
<updated>2018-02-14T13:13:36+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-14T13:13:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=d26535d6665879f77d39e790b4aa9ee0dcb63dcf'/>
<id>d26535d6665879f77d39e790b4aa9ee0dcb63dcf</id>
<content type='text'>
The choice of whether or not to make a PDF is now also a local system
issue, not a general pipeline issue. So it has been put in the new
`LOCAL.mk.in' file which replaces the old `DIRECTORIES.mk.in'. All local
settings (things that when changed should not be version-controlled) should
be defined in this file.

A sanity check was added to find if `./configure' has been run before
`make' or not (using the `LOCAL.mk' file which is an output of the
configuration step). If `LOCAL.mk' doesn't exist, an error will be printed
informing the user that `./configure' needs to be run first.

The configure script also provides more clear and hopefully better
information on its purpose and what must be done.

Since `make clean', it is executed even when `./configure' hasn't been run,
it will only delete the build directory and its contents when local
configuration has been done.

A `distclean' target was also added which will first "clean" the pipeline,
then delete the `LOCAL.mk.in' file.

To allow rules like `make' to be run even if `BDIR' isn't defined
(`./configure' hasn't been run yet), a fake `BDIR' is defined in such
cases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The choice of whether or not to make a PDF is now also a local system
issue, not a general pipeline issue. So it has been put in the new
`LOCAL.mk.in' file which replaces the old `DIRECTORIES.mk.in'. All local
settings (things that when changed should not be version-controlled) should
be defined in this file.

A sanity check was added to find if `./configure' has been run before
`make' or not (using the `LOCAL.mk' file which is an output of the
configuration step). If `LOCAL.mk' doesn't exist, an error will be printed
informing the user that `./configure' needs to be run first.

The configure script also provides more clear and hopefully better
information on its purpose and what must be done.

Since `make clean', it is executed even when `./configure' hasn't been run,
it will only delete the build directory and its contents when local
configuration has been done.

A `distclean' target was also added which will first "clean" the pipeline,
then delete the `LOCAL.mk.in' file.

To allow rules like `make' to be run even if `BDIR' isn't defined
(`./configure' hasn't been run yet), a fake `BDIR' is defined in such
cases.
</pre>
</div>
</content>
</entry>
<entry>
<title>First commit to the reproduction pipeline template</title>
<updated>2018-02-07T19:37:15+00:00</updated>
<author>
<name>Mohammad Akhlaghi</name>
<email>mohammad@akhlaghi.org</email>
</author>
<published>2018-02-07T19:37:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.maneage.org/project.git/commit/?id=a16f22881841e57f2652f2a17b7f60b5106b2e60'/>
<id>a16f22881841e57f2652f2a17b7f60b5106b2e60</id>
<content type='text'>
Let's start working on this pipeline independently with this first
commit. It is based on my previous experiences, but I had never made a
skeleton of a pipeline before, it was always within a working analysis.

But now that the pipeline has a separate repository for its self, we will
be able to work on it and use it as a base for future work and modify it to
make it even better. Hopefully in time (and with the help of others), it
will grow and become much more robust and useful.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let's start working on this pipeline independently with this first
commit. It is based on my previous experiences, but I had never made a
skeleton of a pipeline before, it was always within a working analysis.

But now that the pipeline has a separate repository for its self, we will
be able to work on it and use it as a base for future work and modify it to
make it even better. Hopefully in time (and with the help of others), it
will grow and become much more robust and useful.
</pre>
</div>
</content>
</entry>
</feed>
