Just working on bug-day tickets (especially since I'm the release- manager this month :-)...
On Wed Jan 31 13:37:54 2007, [EMAIL PROTECTED] wrote: > The primary purpose of a MANIFEST in the repository is to tell you > which files out of the repository should be included in the > distribution. > > MANIFEST.skip could be simply generated from the svn:ignore keyword > before the distribution tarball is created. Perhaps I'm just confused, but these two statements seem to be a little at odds with each other, unless we say that MANIFEST.SKIP is generated from "svn:ignore and other sources". If I'm understanding correctly: - MANIFEST indicates which files are to be in the distribution. - svn:ignore indicates which files in a build tree are to be ignored as part of "svn status" and other svn commands. - MANIFEST.SKIP indicates the files in the repository (build tree?) that are not part of the distribution -- i.e., not part of MANIFEST. Since, as Allison says, there could be files in the repository (i.e., svn:ignore *not* set) that are not part of the distribution, MANIFEST.SKIP must contain more than just files with the svn:ignore keyword. Also, isn't it possible that MANIFEST could eventually include (generated) files that belong in the distribution but aren't in the repository? If yes, then the repository cannot be the canonical list of files going into the distribution. ---- I would like to get rid of MANIFEST.SKIP, however, and I think we may not be using our tool (svn) to its full advantage. Brainstorming a bit ... isn't it possible for us to define our own svn properties? (I'm not all that familiar with this part of svn.) If yes, then can we just have a "distribution:[yes|no]" svn property that indicates files to be part of the distribution? Then MANIFEST can be generated automatically when a release is generated -- files with "distribution:yes" plus any additional (generated) files that aren't part of the repository. We can also have a test that checks that every file in the repository has either "distribution:yes" or "distribution:no" (and svn can probably do a lot of the work here). Or, perhaps a little fancier, in that we have a property "distribution:[parrot|main|doc|perl6|APL|TCL]", that can be used to construct different distributions from a common repository. Or, if we don't want to use svn properties, perhaps simply a master REPOSITORY.MANIFEST file that lists all of the files found in the repository and the distribution disposition of each (skip, release, parrot, whatever). Ultimately I think we have to wrap our collective heads around the idea that "repository" != "release", and that the MANIFEST file is really tied to releases and not the repository. And that MANIFEST.SKIP was intended to make it easier to manage and test MANIFEST, but that we may now have better ways to do this. Either that, or let's leave things as they are and close this ticket. (I did say I was doing this for bug day. :-) Thoughts? I may have more to add to this discussion after going through the release process this week. And my apologies if I've muddied the waters by commenting on things from incomplete knowledge. Pm
