(Disclaimers: I have checked on Google and this site. I have read this answer, which is the only related one I could find here. Additionally, that answer is from 2017, and I wonder if things have changed since. I have read the help and Meta pages about what is on-topic. However, it's been a while since I've asked a question here, so my apologies if this question misses the mark.)

Perl, R, Python, JS, and other languages permit installing from tarballs or some other form of bundled package, in addition to or instead of installing from a VCS repository. What is the best current practice regarding whether development-only files such as .travis.yml should be included in the tarball, and why is that the practice?

An advantage I can see of including development-only files is that you can re-create the project from just the tarball. A disadvantage I can see is that the package is larger (and storage is still technically not infinite :) ).

Example of including: The ack search tool includes .travis.yml in its GitHub repo, but not in its tarball.

Example of not including: the R packaging docs show an example expressly excluding .travis.yml. The package-structure docs note that

packages should not contain Unix-style ‘hidden’ files/directories (that is, those whose name starts with a dot).

I am particularly interested in the Perl use case, but would be happy to know why other languages' communities use the practices they do.

  • Which advantage do you want to optimize for: size of the package, or ability to re-create the project solely from the tarball? – Robert Harvey Jun 10 '19 at 16:21
  • @RobertHarvey I think you are saying there is no single consensus (that you are aware of), and that I should just pick the one that makes the most sense per project. That would be a helpful data point :) . Am I understanding you correctly? – cxw Jun 10 '19 at 17:32
  • Yes, that's how I read it. – Robert Harvey Jun 10 '19 at 17:50
  • OK, I went back and looked at the package-structure docs, and most of the suggestions in there seem reasonable, including the "hidden" files/directories admonition. But if your goal is to re-create the project solely from the tarball, and those "hidden" directories are needed to achieve that goal, then it would be difficult to follow that guideline, wouldn't it? – Robert Harvey Jun 11 '19 at 14:37
  • In your question, you mentioned that the ack search tool includes .travis.yml in its Github repository, but not in its tarball. That seems reasonable too. If someone wants to build the project, they can clone the Github repository. If they just want to install the software, the tarball suffices. – Robert Harvey Jun 11 '19 at 14:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.