* Some question about external method of elpa @ 2018-12-15 0:49 Feng Shu 2018-12-17 4:06 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: Feng Shu @ 2018-12-15 0:49 UTC (permalink / raw) To: Emacs-Devel devel Hello everyone, I have some questions about elpa external method, help is needed, thanks! 1. Does elpa cron auto call "make external" or similar process to check out all the external packages? 2. If cron auto checkout external packages, does package author need manual-checkout? 3. Does subtree method have any advanced than external branch? if no, what about obsolote this method? In my opinion, subtree seem to very hard to manage. 4. I use subtree to manage posframe package, but I want to switch to external branch method, how to work? what about create a subtree2external command? -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-15 0:49 Some question about external method of elpa Feng Shu @ 2018-12-17 4:06 ` Stefan Monnier 2018-12-17 13:41 ` Feng Shu 0 siblings, 1 reply; 11+ messages in thread From: Stefan Monnier @ 2018-12-17 4:06 UTC (permalink / raw) To: emacs-devel > 1. Does elpa cron auto call "make external" or similar process to > check out all the external packages? Pretty much, yes. > 2. If cron auto checkout external packages, does package author need > manual-checkout? I don't understand the question. When? Where? > 3. Does subtree method have any advanced than external branch? It's different, not really better. It's most appropriate when you intend to move the "upstream" from elsewhere to elpa.git. > if no, what about obsolote this method? In my opinion, subtree > seem to very hard to manage. If you keep developing your package elsewhere, a "subtree" is indeed more work than an "external". > 4. I use subtree to manage posframe package, but I want to switch > to external branch method, how to work? 1- Create the new externals/posframe branch on elpa.git 2- Then "git rm package/posframe" and change the ":subtree" to a ":external" in "externals-list". 3- Then push those changes you created at step (2) to the `master` branch of elpa.git. That's pretty much it on your side (I'll probably have to do some clean on elpa.gnu.org in response to that, tho I keep hoping that I finally fixed the last issue in the scripts to handle this situation). > what about create a subtree2external command? The demand hasn't been very high, so I wouldn't bother, but fee free to add one to elpa.git's "admin/" subdirectory. Stefan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 4:06 ` Stefan Monnier @ 2018-12-17 13:41 ` Feng Shu 2018-12-17 14:06 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: Feng Shu @ 2018-12-17 13:41 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> 1. Does elpa cron auto call "make external" or similar process to >> check out all the external packages? > > Pretty much, yes. This is important info, suggest add it to README. > >> 2. If cron auto checkout external packages, does package author need >> manual-checkout? > > I don't understand the question. When? Where? When I read the below part of README, I think that manual run "make externals" is needed :-(, so I think externals is same complicated as subtree. Now, I have know that when I use external my code is managed in posframe.git, and push to remote elpa, I do not need download elpa.git, why I need "make externals" if cron auto run it ? #+BEGIN_COMMENT To add a new externals package, first add this `elpa.git' repository as a new remote in your existing repository. Then push a local branch to a new remote branch in `elpa.git', named externals/<pkgname>. For example: git push elpa <mybranch>:externals/<pkgname> Then edit the `externals-list' file as mentioned above, and push that change to `elpa's master branch. You can check out all the external packages into the `packages' directory with the command: make externals You can check out a specific external PACKAGE into the `packages' directory with these commands: #+END_COMMENT > >> 3. Does subtree method have any advanced than external branch? > > It's different, not really better. It's most appropriate when you > intend to move the "upstream" from elsewhere to elpa.git. This info is very important, suggest add to README When I first import posframe to elpa.git, I do not know what different between subtree and externals, I choice subtree for the below line: If know you don't want a local package, but don't know which of these two options you prefer, then use a subtree. I think many package author choice subtree instead of externals for this info :-) > >> if no, what about obsolote this method? In my opinion, subtree >> seem to very hard to manage. > > If you keep developing your package elsewhere, a "subtree" is indeed > more work than an "external". > >> 4. I use subtree to manage posframe package, but I want to switch >> to external branch method, how to work? > > 1- Create the new externals/posframe branch on elpa.git > 2- Then "git rm package/posframe" and change the ":subtree" to > a ":external" in "externals-list". > 3- Then push those changes you created at step (2) to the `master` branch > of elpa.git. > > That's pretty much it on your side (I'll probably have to do some clean > on elpa.gnu.org in response to that, tho I keep hoping that I finally > fixed the last issue in the scripts to handle this situation). > >> what about create a subtree2external command? > > The demand hasn't been very high, so I wouldn't bother, but fee free to > add one to elpa.git's "admin/" subdirectory. > > > Stefan -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 13:41 ` Feng Shu @ 2018-12-17 14:06 ` Stefan Monnier 2018-12-17 14:23 ` Feng Shu 0 siblings, 1 reply; 11+ messages in thread From: Stefan Monnier @ 2018-12-17 14:06 UTC (permalink / raw) To: Feng Shu; +Cc: emacs-devel > When I read the below part of README, I think that manual run "make externals" > is needed :-(, so I think externals is same complicated as subtree. `make externals` is needed if you want to have a local checkout of all the packages is elpa.git. But if you don't care about the other packages you don't need it. > posframe.git, and push to remote elpa, I do not need download elpa.git, You do need to have some part of elpa.git. For "subtree", that part is the `master` branch, and for "external" that part is the `external/<pkgname>` branch. And when adding the external branch you also need the `master` branch, just to modify the `externals-list` file. > why I need "make externals" if cron auto run it ? You don't *need* it. You may want to use it (e.g. I use it because I just want to have all GNU ELPA packages automatically installed, so I build&install them in-place with `make externals; make`). > If know you don't want a local package, but don't know which of these > two options you prefer, then use a subtree. Note that this phrase now says: If you don't know which of these two options you prefer, then use an "external" (and also if your package is large). -- Stefan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 14:06 ` Stefan Monnier @ 2018-12-17 14:23 ` Feng Shu 2018-12-17 14:35 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: Feng Shu @ 2018-12-17 14:23 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@IRO.UMontreal.CA> writes: >> When I read the below part of README, I think that manual run "make externals" >> is needed :-(, so I think externals is same complicated as subtree. > > `make externals` is needed if you want to have a local checkout of all > the packages is elpa.git. But if you don't care about the other > packages you don't need it. What about add this info to README? > >> posframe.git, and push to remote elpa, I do not need download elpa.git, > > You do need to have some part of elpa.git. For "subtree", that part is the > `master` branch, and for "external" that part is the > `external/<pkgname>` branch. And when adding the external branch you > also need the `master` branch, just to modify the `externals-list` file. > An idea, but I do know whether it is a good idea: external package do not need to edit externals-list in master branch, instead add a external-list file to `external/<pkgname>`, we use script to auto generate externals-list from all package's external-list files >> why I need "make externals" if cron auto run it ? > > You don't *need* it. You may want to use it (e.g. I use it because > I just want to have all GNU ELPA packages automatically installed, so > I build&install them in-place with `make externals; make`). > >> If know you don't want a local package, but don't know which of these >> two options you prefer, then use a subtree. > > Note that this phrase now says: > > If you don't know which of these two options you prefer, then use an > "external" (and also if your package is large). cool! > > > -- Stefan -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 14:23 ` Feng Shu @ 2018-12-17 14:35 ` Stefan Monnier 2018-12-17 14:54 ` Feng Shu 0 siblings, 1 reply; 11+ messages in thread From: Stefan Monnier @ 2018-12-17 14:35 UTC (permalink / raw) To: emacs-devel >>> When I read the below part of README, I think that manual run "make >>> externals" is needed :-(, so I think externals is same complicated >>> as subtree. >> `make externals` is needed if you want to have a local checkout of all >> the packages is elpa.git. But if you don't care about the other >> packages you don't need it. > What about add this info to README? If you explain/show me which part of README made you think `make externals` was needed, I can try and correct it, yes. > external package do not need to edit externals-list in master branch, > instead add a external-list file to `external/<pkgname>`, we use script > to auto generate externals-list from all package's external-list files Usually, I'm the one who adds the entry to `externals-list`, so I'm not sure how important this is. We could change `make externals` to just checkout all the `external/*` branches, but I like the fact that currently I can calmly push the new branch, then make sure "make externals" gives me something I like, and only have it "released" when I push the new `externals-list`. Stefan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 14:35 ` Stefan Monnier @ 2018-12-17 14:54 ` Feng Shu 2018-12-17 19:03 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: Feng Shu @ 2018-12-17 14:54 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >>>> When I read the below part of README, I think that manual run "make >>>> externals" is needed :-(, so I think externals is same complicated >>>> as subtree. >>> `make externals` is needed if you want to have a local checkout of all >>> the packages is elpa.git. But if you don't care about the other >>> packages you don't need it. >> What about add this info to README? > > If you explain/show me which part of README made you think `make > externals` was needed, I can try and correct it, yes. I suggest to move the below part to: To install all the packages "in place". just a suggestion :-) #+BEGIN_COMMENT You can check out all the external packages into the `packages' directory with the command: make externals You can check out a specific external PACKAGE into the `packages' directory with these commands: cd packages git worktree add PACKAGE externals/PACKAGE If you already have a packages/PACKAGE directory with a previous checkout, you can update it like this: cd packages/PACKAGE git pull #+END_COMMENT > >> external package do not need to edit externals-list in master branch, >> instead add a external-list file to `external/<pkgname>`, we use script >> to auto generate externals-list from all package's external-list files > > Usually, I'm the one who adds the entry to `externals-list`, so I'm not > sure how important this is. We could change `make externals` to just > checkout all the `external/*` branches, but I like the fact that > currently I can calmly push the new branch, then make sure "make > externals" gives me something I like, and only have it "released" > when I push the new `externals-list`. > > > Stefan -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-17 14:54 ` Feng Shu @ 2018-12-17 19:03 ` Stefan Monnier 2018-12-18 15:15 ` tumashu 0 siblings, 1 reply; 11+ messages in thread From: Stefan Monnier @ 2018-12-17 19:03 UTC (permalink / raw) To: Feng Shu; +Cc: emacs-devel >> If you explain/show me which part of README made you think `make >> externals` was needed, I can try and correct it, yes. > I suggest to move the below part to: To install all the packages "in > place". I'd rather keep it in the "externals" section, since that's what it's about. How 'bout the patch below instead? Stefan diff --git a/README b/README index 8c85210de..bc52eb44b 100644 --- a/README +++ b/README @@ -229,12 +229,14 @@ In the `external' case, the copy of the code is not kept in `master` but in the To add a new externals package, first add this `elpa.git' repository as a new remote in your existing repository. Then push a local branch to a -new remote branch in `elpa.git', named externals/<pkgname>. For example: +new remote branch in `elpa.git', named `externals/<pkgname>`. For example: git push elpa <mybranch>:externals/<pkgname> Then edit the `externals-list' file as mentioned above, and push that -change to `elpa's master branch. +change to `elpa's master branch. After it's added to the `externals-list' +file, the package can be maintained just by pushing changes to the +`externals/<pkgname>` branch. You can check out all the external packages into the `packages' directory with the command: ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re:Re: Some question about external method of elpa 2018-12-17 19:03 ` Stefan Monnier @ 2018-12-18 15:15 ` tumashu 2018-12-18 19:02 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: tumashu @ 2018-12-18 15:15 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org At 2018-12-18 03:03:40, "Stefan Monnier" <monnier@IRO.UMontreal.CA> wrote: >>> If you explain/show me which part of README made you think `make >>> externals` was needed, I can try and correct it, yes. >> I suggest to move the below part to: To install all the packages "in >> place". > >I'd rather keep it in the "externals" section, since that's what >it's about. > >How 'bout the patch below instead? > > > Stefan > > >diff --git a/README b/README >index 8c85210de..bc52eb44b 100644 >--- a/README >+++ b/README >@@ -229,12 +229,14 @@ In the `external' case, the copy of the code is not kept in `master` but in the > > To add a new externals package, first add this `elpa.git' repository as a > new remote in your existing repository. Then push a local branch to a >-new remote branch in `elpa.git', named externals/<pkgname>. For example: >+new remote branch in `elpa.git', named `externals/<pkgname>`. For example: > > git push elpa <mybranch>:externals/<pkgname> > > Then edit the `externals-list' file as mentioned above, and push that >-change to `elpa's master branch. >+change to `elpa's master branch. After it's added to the `externals-list' >+file, the package can be maintained just by pushing changes to the >+`externals/<pkgname>` branch. Seem to ok :-) > > You can check out all the external packages into the `packages' directory > with the command: What about change this line to: If you wish to check out all the external packages into the `packages' dirctory for personal reason, you can run the command: ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Some question about external method of elpa 2018-12-18 15:15 ` tumashu @ 2018-12-18 19:02 ` Stefan Monnier 2018-12-20 9:10 ` tumashu 0 siblings, 1 reply; 11+ messages in thread From: Stefan Monnier @ 2018-12-18 19:02 UTC (permalink / raw) To: emacs-devel > Seem to ok :-) >> You can check out all the external packages into the `packages' directory >> with the command: > What about change this line to: > If you wish to check out all the external packages into the `packages' dirctory > for personal reason, you can run the command: I pushed a similar change, thanks, Stefan ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re:Re: Some question about external method of elpa 2018-12-18 19:02 ` Stefan Monnier @ 2018-12-20 9:10 ` tumashu 0 siblings, 0 replies; 11+ messages in thread From: tumashu @ 2018-12-20 9:10 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org At 2018-12-19 03:02:13, "Stefan Monnier" <monnier@iro.umontreal.ca> wrote: >> Seem to ok :-) >>> You can check out all the external packages into the `packages' directory >>> with the command: >> What about change this line to: >> If you wish to check out all the external packages into the `packages' dirctory >> for personal reason, you can run the command: > >I pushed a similar change, thanks, > > > Stefan > Now, we suggest user to use external instead of subtree when he do not know how to select, I suggest first introduce external instead of subtree :-) ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2018-12-20 9:10 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-15 0:49 Some question about external method of elpa Feng Shu 2018-12-17 4:06 ` Stefan Monnier 2018-12-17 13:41 ` Feng Shu 2018-12-17 14:06 ` Stefan Monnier 2018-12-17 14:23 ` Feng Shu 2018-12-17 14:35 ` Stefan Monnier 2018-12-17 14:54 ` Feng Shu 2018-12-17 19:03 ` Stefan Monnier 2018-12-18 15:15 ` tumashu 2018-12-18 19:02 ` Stefan Monnier 2018-12-20 9:10 ` tumashu
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.