aboutsummaryrefslogtreecommitdiff
path: root/paper.tex
AgeCommit message (Collapse)AuthorLines
2020-04-02Rewrote abstract, better organization in publishing sectionMohammad Akhlaghi-26/+116
I hadn't updated the abstract since first writing it. With this commit, it has been updated to be more precise and generically interesting, focusing more on the principles and usability. I also greatly improved the section on publishing the workflow.
2020-04-01Completed first draft of group working in build directoryMohammad Akhlaghi-4/+21
This section (of sharing a build directory between multiple members of the project) is also a good features of Maneage.
2020-03-31First draft of the version control section and figure completeMohammad Akhlaghi-22/+38
The figure was greatly improved, becoming much more clear and descriptive of some of the main advantages of having version control in a complete project like Maneage.
2020-03-30Section on starting new projects, and publishing project addedMohammad Akhlaghi-14/+77
With the main structure of Maneage explained, I have started to explain how a new project is created, along with a schematic diagram that shows two scenarios of how Git can help with project management.
2020-03-28Cleaned up the introduction, definitions for provenance and lineageMohammad Akhlaghi-117/+184
Until now, the introduction had repeated several things and also had a relatively long list of things to add in its end. Also, it was highly focused to scientific papers. With this commit, I effectively re-wrote it, with the starting paragraphs becoming more industry-friendly, while also focusing on the scientific cases. Many of the repetative parts were removed and the listed items in the end were put into the text in a much better context. Also, now that the name of the system involves "lineage" (and a lot of focus is put on it in the start) the terms data provenance and lineage were defined in the definition section. Some other intersting points that I encountered during the research on definitions were added to the discussion and final lists, and the DOI of one reference paper was corrected.
2020-03-23Analysis and configuration file sections completeMohammad Akhlaghi-43/+148
With this commit a description of these two important parts have been added to the project, along with several figures showing various parts of the files that are discussed. I also done some other restructuring of the figures and files to make things fit better into the the description of the paper.
2020-03-08Menke+20 example: properly count number of papers with softwareMohammad Akhlaghi-0/+1
Until now, I was mistakenly multiplying the fraction of papers in that journal. This is corrected with this commit.
2020-03-08Edited description of example subMakefile for analysis-1Mohammad Akhlaghi-22/+34
In order to make the description more clear and readable, the rules in the demonstrated Makefile (and their links to the data lineage plot) were made more clear.
2020-03-02Described the first analysis phase with a demo subMakefileMohammad Akhlaghi-60/+240
Until now, there was no explanation on an actual analysis phase, therefore with this commit an example scenario with a readable Makefile is included. The Data lineage graph was also simplified to both be more readable, and also to correspond to this new explanation and subMakefile. Some random edits/typos were also corrected and some references added for discussion.
2020-02-16Two values from the input dataset are now written into the paperMohammad Akhlaghi-1/+2
This was done just to get going with describing the analysis process.
2020-02-15Edits in text, added Menke+2020 as a referenceMohammad Akhlaghi-56/+92
The text was slightly improved/edited and I also recently came up to the Menke et al. 2020 (DOI:10.1101/2020.01.15.908111) which also has some good datasets we can use as a demonstration here.
2020-02-07Edited parts of the textMohammad Akhlaghi-109/+153
While reading over the already written parts (and hopefully complete the paper), they were edited/corrected to be more clear.
2020-02-06Minor edits to various partsMohammad Akhlaghi-56/+82
Some edits were made after rereading of some parts.
2020-01-27Analysis phase description started with Final paper and verificationMohammad Akhlaghi-11/+108
With this commit, the general outline of the analysis phase is given, as well as a description of the LaTeX macros and their relation to the paper and thier verification. Also, the data-lineage figure was updated to have references.tex also and some resizing of the folders in file-architecture to be more clear.
2020-01-26General project structure and configuration describedMohammad Akhlaghi-277/+517
In the last few days I have been writing these two sections in the middle of other work. But I am making this commit because it has already become a lot! I am now going onto the description of `./project make'.
2020-01-20New rendering of the file architecture plotMohammad Akhlaghi-0/+1
Until now the file architecture plot at the directories ontop of the top-level files. This made it hard to visually identify the top-level files. They are not placed ontop of the sub-directories and some space is added to highlight the files in the top-level directory and those in the subdirectories. Two other changes were made: - The symbolic links created in the top source directory are also shown. - The coding of this figure was made much more elegant by defining a PGFPlots node class and just changing the things that are direrent between each directory.
2020-01-20Added figure showing project's file structureMohammad Akhlaghi-82/+86
It was a little hard to describe the file structure so instead of using a standard listing as most papers do, I thought of showing the file and directory structure as boxes within each other (modeled on the Gnome disk-utility). Some other polishing was done throughout the paper also.
2020-01-18Raw draft (until now as a separate repository) importedMohammad Akhlaghi-52/+1499
Until now, I was writing the paper without the template. But we will soon be adding a tutorial to the template, and I thought it will be good to have an example demonstration here too. So I just brought the hole project into the template structure, allowing us to add the template analysis later when its ready, and also allowing us to easily reproduce this paper ofcourse (without having to worry about the host's TeXLive installation.
2020-01-18First set of customizations doneMohammad Akhlaghi-131/+5
The unnecessary parts were removed and the project now runs.
2020-01-01Copyright statements updated to include 2020Mohammad Akhlaghi-1/+1
Now that its 2020, its necessary to include this year in the copyright statements.
2019-11-04Acknowledged support from the RDA EU 4.0 grantMohammad Akhlaghi-1/+4
Since we got the RDA Adoption grant, it was necessary to add it in the acknowledgements.
2019-08-22Paper's title and author information moved to main paper.texMohammad Akhlaghi-0/+16
Until now, the paper's title and author information were set it `tex/src/preamble-header.tex'. But they are actually shown in the final PDF paper and a much better place to keep them is the top-level `paper.tex'. With this commit, the setting of the title and author names has been moved to `paper.tex', just after importing all the preambles. However, the basic package importation and low-level settings are still set in `tex/src/preamble-header.tex', because they are relatively low-level. This task was suggested by Deepak (Indian Institute of Astrophysics).
2019-08-18Updated README-hacking.md's checklist for better usabilityMohammad Akhlaghi-4/+10
After the checklist was applied in the 5th Indo-French Astronomy School, we found some cases in the checklist that were extra (and thus had to be removed), or were needed (and thus were added). Also the non-necessary steps for a first commit were moved to a separate/new section in the checklist for the people to add after doing their first commit. Also, the software part of the paper was moved to an appendix.
2019-05-21Source directory links to build directory all managed in configureMohammad Akhlaghi-2/+2
Until now, the `tex/build' symbolic link was put in the clone/source tree when the build-directory's `tex' directory was being built. Thanks to Roberto Baena, we just found a bug because of this behavior: when a second group member is trying to build the pipeline, since the build directory's `tex' directory already exists, no `tex/build' will be put in their clone/source directory. As a result, the PDF building will crash. To fix this (and keep things organized), the two `tex/build' and `tex/tikz' links (to the build directory) are now built in the configure step while it is building all the top-level directories. They are no longer built within the Makefiles. Also, a comment was added on top of every directory built during the configuration phase to be clear. This fixes bug #56362.
2019-04-15New architecture to separate software-building and analysis stepsMohammad Akhlaghi-4/+4
Until now, the software building and analysis steps of the pipeline were intertwined. However, these steps (of how to build a software, and how to use it) are logically completely independent. Therefore with this commit, the pipeline now has a new architecture (particularly in the `reproduce' directory) to emphasize this distinction: The `reproduce' directory now has the two `software' and `analysis' subdirectories and the respective parts of the previous architecture have been broken up between these two based on their function. There is also no more `src' directory. The `config' directory for software and analysis is now mixed with the language-specific directories. Also, some of the software versions were also updated after some checks with their webpages. This new architecture will allow much more focused work on each part of the pipeline (to install the software and to run them for an analysis).
2019-04-14Replaced all occurances of pipeline in textMohammad Akhlaghi-50/+50
All occurances of "pipeline" have been chanaged to "project" or "template" withint the text (comments, READMEs, and comments) of the template. The main template branch is now also named `template'. This was all because `pipeline' is too generic and couldn't be distinguished from the base, and customized project.
2019-04-13Corrected copyright notices and info about adding copyright infoMohammad Akhlaghi-1/+1
Until now, the files where the people were meant to change didn't have a proper copyright notice (for example `Copyright (C) YOUR NAME.'). This was wrong because the license does not convey copyright ownership. So the name of the file's original author must always be included and when people modify it (and add their own copyright-able modifications). With this commit, the file's original author (and email) are added to the copyright notice and when more than one person modified a file, both names have their individual copyright notice. Based on this, the description for adding a copyright notice in `README-hacking.md' has also been modified.
2019-04-12Gnuastro's citation included in its build targetMohammad Akhlaghi-2/+2
With this commit, we are applying the new style of citing software within the build rule of Gnuastro.
2019-04-05Software acknowledgement section is automatically generatedMohammad Akhlaghi-119/+6
Until now, management of the software names and versions in the paper was done manually (a macro had to be defined in `initialize.mk', then used in `paper.tex', so they had to be manually set in two places). Managing this was not easy. To fix this, with this commit, each software building rule's target is a text file that contains its human-readable name and its version. In the end, the configure script sorts them by their name and writes them into a LaTeX input file that we can easily import as a file into the main paper.
2019-04-04Dependency version LaTeX macros written at the end of configureMohammad Akhlaghi-43/+113
Until now, these versions were written in each run. This was mainly inherited from the old days of the pipeline, where we didn't know the software on the host. But now that we have almost everything under control, we can just write these LaTeX macros at the end of the configure script and make `initialize.mk' simpler and also (very slightly!) speed-up/simplify the processing.
2019-04-04Numpy and Scipy build on Mac imported into the main branchMohammad Akhlaghi-28/+41
We were developing the build of Numpy and Scipy on Mac in a parallel thread and things seems to be working relatively nice now. There were only two problems: 1) GCC still has some random building issues on Mac. 2) ATLAS shared libraries can't be built on Mac (so we used OpenBLAS to build Numpy and Scipy on both Mac and GNU/Linux). But for now, none of these problems are critical. So, we can progress in one branch. There were only very minor conflicts in the merge.
2019-04-02Copyright notice added to remaining filesMohammad Akhlaghi-3/+3
After doing a systematic search for files without a copyright notice, a few more were found that didn't have a notice. So a notice was added for them. I used this Bash command to find the files: for f in $(find ./ -type f); do \ if [[ $f != *.git* ]]; then \ n=$(grep -i copyright $f | wc -l); \ echo "$n $f"; \ fi; \ done | awk '$1==0'
2019-03-29Added Copyright to all TeX and README filesMohammad Akhlaghi-0/+18
In order to be more clear, a copyright statement was added to all the LaTeX and README files.
2019-03-22Acknowledged new software in paperRaul Infante-Sainz-12/+14
In the previous commit I already have included the latex macros. In this commit we use them in the paper source.
2019-03-22Imported recent work in the main pipeline, conflicts fixedRaul Infante-Sainz-1/+1
Conflicts in `gcc' build comments and in mentioning software used in paper fixed.
2019-03-22H5py added and setuptools as main Python module dependencyRaul Infante-Sainz-15/+25
In this commit we add `h5py' Python package. We also include `setuptools' as a main dependency of Python because with the previous commit it (as well as `pip') is no longer installed with Python. Numpy version also has been incremented.
2019-03-19Minor corrections: typo and adding file to .gitignoreMohammad Akhlaghi-16/+15
The LaTeX macro for libgit2 was not properly used in `paper.tex'. On Mac systems, after browsing the directory, a `.DS_Store' file was created. So to keep things clean on those systems, it is added to the files to be ignored by Git.
2019-02-13Astropy installed in the pipelineRaul Infante-Sainz-1/+3
Astropy was added and one very important thing is that we have to use the pypi tarball (https://pypi.org/) (which is bootstrapped) and not the github tarball.
2019-02-06Better management for .tex directories to build from tarballMohammad Akhlaghi-10/+10
In order to collaborate effectively in the project, even project members that don't necessarily want (or have the capacity) to do the whole analysis must be able to contribute to the project. Until now, the users of the distributed tarball could only modify the text and not the figures (built with PGFPlots) of the paper. With this commit, the management of TeX source files in the pipeline was slightly modified to allow this as cleanly as I could think of now! In short, the hand-written TeX files are now kept in `tex/src' and for the pipeline's generated TeX files (in particular the old `tex/pipeline.tex'), we now have a `tex/pipeline' symbolic-link/directory that points to the `tex' directory under the build directory. When packaging the project, `tex/pipeline' will be a full directory with a copy of all the necessary files. Therefore as far as LaTeX is concerned, having a build-directory is no longer relevant. Many other small changes were made to do this job cleanly which will just make this commit message too long! Also, the old `tarball' and `zip' targets are now `dist' and `dist-zip' (as in the standard GNU Build system).
2019-02-05Ability to package project into tarball or zip fileMohammad Akhlaghi-5/+6
With this commit, it is now possible to package the project into a tarball or zip file, ready to be distributed to collaborators who only want to modify the final paper (and not do the analysis technicalities), or for uploading to sites like arXiv, or online LaTeX sharing pages.
2019-01-22Updated to newly modified version of metastoreMohammad Akhlaghi-1/+1
In this version, too many extra notices (just regarding a change from branch to branch) are not printed with `-q'. Instead only a one line statement is printed that it is saved or applied.
2019-01-21Libbsd added as a dependency of MetastoreMohammad Akhlaghi-17/+18
Metastore depends on `bsd/string.h' to work properly (atleast on GNU/Linux systems). The first system I tried building with had that library, so I didn't notice! With this commit, we also build `libbsd' as part of the pipeline. Also, I couldn't find libbsd's version in any of its installed headers, so like Libjpeg, we can't actually check and will directly write our internal version into the paper.
2019-01-21Metastore package now installed to allow keeping file meta-dataMohammad Akhlaghi-16/+16
The pipeline heavily depends on file meta data (and in particular the modification dates), for example the configuration-Makefiles within the pipeline are set as prerequisites to the rules of the pipeline. However, when Git checks out a branch, it doesn't preserve the meta-data of the files unique to that branch (for example program source files or configuration-Makefiles). As a result, the rules that depend on them will be re-done. This is especially troublesome in the scenario of this reproducible paper project because we commonly need to switch between branches (for example to import recent work in the pipeline into the projects). After some searching, I think the Metastore program is the best solution. Metastore is now built as part of the pipeline and through two Git hooks, it is called by Git to store the original meta-data of files into a binary file that is version controlled (and managed by Metastore).
2019-01-17Added Gnuastro in paragraph with all programsMohammad Akhlaghi-14/+15
Until now, Gnuastro was only mentioned in the first acknowledgments section, but not in the paragraph with all the program names. But these two are not mutually exclusive. All the software should be mentioned in the last paragraph and those that need special mention can be mentioned before it.
2019-01-14GNU NCURSES and GNU Readline also built before GNU BashMohammad Akhlaghi-19/+20
Readline is a prerequisite of Bash and AWK, while NCURSES is a prerequisite of Readline. With the recent update of GNU Bash (and thus GNU Readline) on my host operating system, the pipeline crashed and I noticed this hole in the pipeline. In particular, AWK (which linked with Readline 7.0) would complain about not finding it and abort.
2018-12-31Updated Gzip and Gnuastro versions to standard buildsMohammad Akhlaghi-20/+20
Both Gzip and Gnuastro were being bootstrapped personally from their Git repository until now. But fortunately a new release of both came out last week and so to make things standard we are now using their standard tarballs. I also noticed that we weren't checking the version of Gzip or mentioning it in the acknowledgement section. This was also corrected.
2018-12-02Wget and OpenSSL now installed as a basic dependencyMohammad Akhlaghi-18/+19
The TeX Live installer needs Wget to operate smoothly, especially on recent Mac OS systems that don't have Wget pre-installed. Also, it would be good for the pipeline to have its own downloader. So with this commit, the pipeline also installs Wget and OpenSSL which is a dependency. Many other small changes/fixes were done in this process.
2018-11-28Better control of shared library linkingMohammad Akhlaghi-16/+16
Until now we weren't explicity writing the full path of the dynamic libraries necessary for linking a program. But now with `-Wl,-rpath=$(ildir)' we ensure that the linker keeps the address of the dynamic libraries necessary for linking at linking time, not running time. Also, `pkg-config' is also built when preparing the basics. Several other minor corrections were made thanks to the great help of Raúl Infante Sainz.
2018-11-26High-level dependencies build without system's PATHMohammad Akhlaghi-20/+22
The high-level dependencies are now built without having access to the system's PATH. To do this, all the necessary software that we aren't building ourselves are now brought into the installed `bin/' directory using a symbolic link to the corresponding software on the host. To do this, it was also necessary to increase the number of basic/low-level packages that we are building, and add several more (Diffutils and Findutils). With this process in place, we now have a list of the exact software packages that we are not building our selves, enabling easy building of all such dependencies in the future.
2018-11-25More generic naming conventionMohammad Akhlaghi-13/+11
Until now, we were keeping the input file within the reproduction pipeline's directories using the same name as the database/server. Now, we are using a short/summarized filename convention for the input dataset.