unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).