From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.devel Subject: Re: ELPA contributions? Date: Mon, 12 Oct 2015 15:14:31 -0700 Message-ID: <87oag3d9a0.fsf@ericabrahamsen.net> References: <87612g5tmx.fsf@fencepost.gnu.org> <87io6cl0hx.fsf@russet.org.uk> <87lhb8ulex.fsf@ericabrahamsen.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444688115 7978 80.91.229.3 (12 Oct 2015 22:15:15 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Oct 2015 22:15:15 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 13 00:15:01 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZllMx-0001YR-Mx for ged-emacs-devel@m.gmane.org; Tue, 13 Oct 2015 00:14:59 +0200 Original-Received: from localhost ([::1]:59070 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZllMx-0002U2-BP for ged-emacs-devel@m.gmane.org; Mon, 12 Oct 2015 18:14:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35786) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZllMk-0002Tu-Uo for emacs-devel@gnu.org; Mon, 12 Oct 2015 18:14:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZllMh-0008Tc-Me for emacs-devel@gnu.org; Mon, 12 Oct 2015 18:14:46 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:60560) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZllMh-0008TW-FB for emacs-devel@gnu.org; Mon, 12 Oct 2015 18:14:43 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZllMe-0001HC-O2 for emacs-devel@gnu.org; Tue, 13 Oct 2015 00:14:40 +0200 Original-Received: from c-76-28-195-250.hsd1.wa.comcast.net ([76.28.195.250]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 13 Oct 2015 00:14:40 +0200 Original-Received: from eric by c-76-28-195-250.hsd1.wa.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 13 Oct 2015 00:14:40 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 109 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: c-76-28-195-250.hsd1.wa.comcast.net User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:i50Nt1IKvUrl46IBpC+m2qbIpUM= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:191409 Archived-At: Artur Malabarba writes: > All I ever do is "remote add, subtree add, subtree pull" to add a new > package; or just subtree pull to update a package. This is pretty much > what you're doing, except I don't fetch nor squash. > > When someone edits a package on the elpa repo, I just copy the changes > over to my remote (no git commands). It's just simpler this way. > > All of this should really be better explained on the readme. I > remember I felt a little lost the first time I was doing it. If anyone > would like to document these steps a bit better I would be thoroughly > grateful. I really regret squashing: I think I only did it because of some vague sense that it would be more hygienic. Fairly nonsensical, but I don't think it's possible, or practical, to unsquash at this point. For the sake of simplicity, I think it would be good if the README recommends not squashing. > Best, > Artur > On 12 Oct 2015 5:00 pm, "Eric Abrahamsen" > wrote: >> >> phillip.lord@russet.org.uk (Phillip Lord) writes: >> >> > Artur Malabarba writes: >> >>> and the README just contains the technical details of uploading >> >>> material to ELPA (it's not really clear when to choose an > external >> >>> branch). >> >> >> >> Yes, that needs to be clarified too. The idea is to just use a > subtree, >> >> unless you _know_ you want an external branch for some reason. >> > >> > >> > Well, here is the interesting bit. As far as I can tell, a subtree > IS an >> > external (sort of). AFAICT, for instance, "ack" is a subtree > (which I >> > think means, it has been added by the "git subtree" command, > although I >> > don't know how to test this), while "auctex" is a :external. But > both >> > are identified in externals-list. While ace-window is neither. >> > >> > All fairly confusing really. I've been using :external branches > for my >> > packages, but I think possibly I should have been using subtrees. > I used >> > to not use externals at all (i.e. neither an :external or : > subtree), but >> > that didn't work. >> > >> > The MELPA process (i.e. submit a recipe) is much more > straight-forward. >> > >> > Still, having said all of this, I have a workflow which works > using >> > :external branches, and which works whether or not you have commit >> > access to the "main" repository. I'll try and write this up at > some >> > point. I'd love someone to do the same for subtrees, so I can see >> > whether that would have been the right way to go in the first > place. >> >> Here's from my notes on how I'm supposed to merge the Gnorb package > into >> ELPA. I started using git subtree because it seemed conceptually > like >> the right thing. It turned out to be pretty complicated (because I >> didn't understand it well) and I still feel a sense of dread every > time >> I go to update the package. I wish there were a simpler way. >> >> I added a local git repo as a remote ("gnorb") to the elpa repo. > Pulling >> from the external repo goes: >> >> git fetch gnorb >> git subtree pull --squash --prefix=packages/gnorb gnorb master >> >> Pushing from the ELPA repo to the gnorb remote (I tried this because >> Stefan made some changes directly in the packages): >> >> git subtree push --squash --prefix=packages/gnorb gnorb master >> >> This is followed by an expletive-filled paragraph of notes. I'm not > sure >> pushing to the remote ever actually worked. I also tried something >> called "split branch", which barfed several pages of output into my >> shell, to what end I'm still not sure. >> >> In the end, when I wanted to get changes from ELPA into my external >> repo, I think it worked okay to simply throw a patch over and apply > it >> there. There's no actual correspondence between commit SHAs in ELPA > and >> the remote, so simply having the files in the same state is good > enough. >> >> But basically it felt like I was going to have to learn all of the >> internals of git to do this with any sort of confidence. >> >> Eric >> >>