Skip to content

Better motivate archive creation in final exercise #105

Closed
@akleinhesselink

Description

@akleinhesselink

The final exercise involves adding lines to the make file that create a new directory, copies files into that directory and then saves an archive of the project.

As a scientist, not a software engineer, I found this to be kind of a strange thing to want to do. I believe this exercise needs to be better explained to scientists: why would you create a copy of your work and then archive it in this way. I don't actually know the answer so I'm opening an issue rather than submitting a pull request with my own explanation!

Other issues with this last exercise:

  1. I think it would help to specify in the exercise prompt that the new directory "zipf_analysis" should be created within the make-lesson directory. It wasn't clear to me whether this should be added within or outside the "make-lesson" directory.
  2. From the instructions, it wasn't quite clear whether creating the directory and then copying the files into it needed to be added to the makefile with shell commands. The instructions could be more specific about these steps.

I may try to submit a pull request to make this a bit easier to follow.

Activity

gcapes

gcapes commented on Aug 29, 2017

@gcapes
Contributor

Thanks for bringing this up.

I would think the main reason to create an archive is for reproducibility of results. If you have an archive of the results and plots, along with the code and method used to generate them (i.e. the makefile), then you have a self-contained record of what you did. Furthermore it is easy to re-run your analysis to reproduce the results. I suppose the advantage of this in addition to versioning your code, is that the input, code, methodology, and output are all saved in one place.

  1. I don't see that it matters where you store the archive. I see it as personal preference, like any filing system. Within the make-lesson directory is one of the logical choices.
  2. I'm a bit unclear as to what isn't clear. The exercise indicates that all steps should be automated using the Makefile:

Add new rules, update existing rules, and add new macros to:

akleinhesselink

akleinhesselink commented on Aug 29, 2017

@akleinhesselink
ContributorAuthor

Thanks for the response. I'll do a pull request with a couple changes to this exercise that you can check out and see if my edits make sense.

Another minor problem with the final exercise -- perhaps this should be a separate issue -- but the solution Makefile does not recreate the books directory or copy the books .txt files into the new archive directory. Is that intended? It seems that the raw data should be copied over to the archive as well. I found it hard to copy the text files for the books into a new directory called books in the archive directory using the $(TXT_FILES) variable. That's because this includes the directory name. Another option would be to use rsync to copy into the new archive file.

Gerard, thanks so much for the tutorial. I learned a lot. Definitely enough to start using Make today.
All the episodes were great. I wish had known about Make during my dissertation!

added a commit that references this issue on Apr 22, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Better motivate archive creation in final exercise · Issue #105 · swcarpentry/make-novice