Xiong has asked for the wisdom of the Perl Monks concerning the following question:
My current project, Devel::Comments, is nearly ready for CPAN upload. My working project folder tree looks something like this. It's the same structure I use for other projects.
# folder # possible contents ~/projects/comments/ # loose files in here are README and the like downloads/ # like original tarballs or round-trip checks file/ # might be generated or used # by a project or utility script config/ # user would have these in ~/.comments/config/ lab/ # non-text workfiles, like graphics lib/ # Perl modules under development notes/ # more or less English notes # intended to guide or track development old/ # a sort of rubble pile; next stop, trash pack/ # prebuild folder; only stuff intended for rel +ease; # mostly symlinks from other places; # and Build.PL and friends; final tarballs run/ # Perl scripts of all kinds t/ # tests, passing or failing not-t/ # bad tests, incomplete tests, dead-end ideas regress-t/ # tests converted to run under Smart::Comments util/ # nasty little hacks and demo scripts sym/ # convenience symlinks (itself a symlink) unpack/ # round-trip check of tarballs from pack/ .git/ # Git repository
Now, I would like you to imagine yourself as a fellow developer interested in pulling the GitHub repo for this project. (This actually exists at http://github.com/Xiong/devel-comments.) Perhaps you want to contribute; perhaps you want to fork; perhaps you just want to criticize. In your reply to this node, please make it clear in which role you choose to imagine yourself.
Which of these folders do you want to get in your pull?
The issue is that I put some of these folders in .gitignore; there, they are untracked and you don't see them in the repo. I really don't want to track some of them, for various reasons. I need to know how you feel, since the only point of maintaining a GitHub repo is for people other than myself. In particular, I need to know if, in certain cases where it's much better for me not to track a folder, whether it's worth the extra effort to publish it by some other route or to work around or pay the costs of tracking. Please don't say 'all' unless you really, really mean it.
Perhaps I should note, although it's a side issue, that I am not shipping the entire test suite with the CPAN upload. Many of these tests are redundant, exhaustive, or have significantly greater dependencies than are required to run the minimal test suite or DC itself.
I'm open to developing a more complex approach to the (currently unsupported) build_recommends issue. As I see it, though, it's difficult to skip a test that requires unavailable modules. I'm sure it can be done but I need to work on it.
Okay, it seems after all this time, I'm finally getting an answer to my first SoPW node: Overall Directory Organization; or at least, here's what I'm hearing: Don't worry yet about what part of your working tree to include in your repo. Change your working tree structure. Besides the replies below of moritz, FunkyMonk, and a drop-in, I have had a long, illuminating round in CB with james2vegas.
It seems that everyone builds out of their main working tree. You may skip certain things in the build but you don't have a dedicated build folder like my pack/. And MANIFEST.SKIP more or less follows .gitignore, with the former perhaps a bit more restrictive.
Most of my specific first-node questions remain unanswered by this approach to directory organization but I get the drift. This would be a fine time to go back to that node and tackle some of those specific questions. I'm all ears.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: What's in a Repo?
by moritz (Cardinal) on Aug 07, 2010 at 11:14 UTC | |
by Xiong (Hermit) on Aug 07, 2010 at 11:54 UTC | |
by moritz (Cardinal) on Aug 07, 2010 at 23:19 UTC | |
by FunkyMonk (Bishop) on Aug 08, 2010 at 00:08 UTC | |
|
Re: What's in a Repo?
by jau (Hermit) on Aug 07, 2010 at 12:45 UTC | |
by Xiong (Hermit) on Aug 07, 2010 at 13:17 UTC | |
|
Re: What's in a Repo?
by jethro (Monsignor) on Aug 07, 2010 at 11:33 UTC | |
by Xiong (Hermit) on Aug 07, 2010 at 11:48 UTC | |
by jethro (Monsignor) on Aug 07, 2010 at 12:49 UTC | |
by Xiong (Hermit) on Aug 07, 2010 at 13:13 UTC | |
by jethro (Monsignor) on Aug 07, 2010 at 14:19 UTC | |
by Anonymous Monk on Aug 07, 2010 at 12:18 UTC | |
|
Re: What's in a Repo?
by Anonymous Monk on Aug 07, 2010 at 11:29 UTC | |
by Xiong (Hermit) on Aug 07, 2010 at 12:09 UTC | |
by Anonymous Monk on Aug 07, 2010 at 15:09 UTC |