Dima Pasechnik <dimp...@gmail.com> writes: >> Expanding on http://wiki.sagemath.org/WorkflowSEP one would have >> >> sage_root/ >> sage # the binary >> Makefile # top level Makefile >> (configure) # perhaps, eventually >> ... # other standard top level files (README, etc.) >> build/ >> core/ # sage's build system/bootstrapping >> pkgs/ # install, patch, and metadata from spkgs >> maxima/ >> pacakge_manager_file # emerge or whatever, would point >> to some upstream source, patch1.diff, etc. >> patch1.diff >> ... >> ... >> >> A single commit would remove create patch1.diff and modify >> pacakge_manager_file to use it, when patch1.diff is merged upstream, >> we would do another commit to point pacakge_manager_file to the newer >> upstream and remove patch1.diff. Here "upstream" is ideally an >> upstream-provided src tarball (though we might distribute it >> ourselves) and relating that to whatever revision control system they >> use is out of scope. > > This still looks like an ugly hack. Shouldn't we rather use something like > [git-subtree] (https://github.com/apenwarr/git-subtree/) > to deal with upstream source?
IMO, no way. We should not store upstream source in our repository because we should not ever modify upstream source, so there is no reason to have it under our own version control. Any changes we make to the upstream source should be done by making patches. This is even the reigning guideline right now, to say nothing of future plans. Rather than git-subtree, git-submodule might be appropriate, but unfortunately it is rather opaque to git newbies, overkill for our purposes, and assumes that submodules actually have version control histories (GAP anyone?), not to mention that the way it is designed is IMO very ugly (doesn't deal well with switching branches in the main repo). What Robert is proposing is exactly what has worked just fine in Portage for many years :) And probably in BSD Ports for even longer (though I don't know anything about BSD). All my build scripts, patches, etc. are in a git repository at /usr/portage, with a .gitignore'd directory /usr/portage/distfiles containing "distribution files", i.e. mostly upstream source tarballs. I don't find this an ugly hack at all - rather I find it quite nice. My 2ยข. -Keshav -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To post to this group, send email to sage-devel@googlegroups.com. To unsubscribe from this group, send email to sage-devel+unsubscr...@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel?hl=en.