* 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.