all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
@ 2023-01-18  4:24 Mohammed Sadiq
  2023-02-13 19:59 ` Philip Kaludercic
  0 siblings, 1 reply; 7+ messages in thread
From: Mohammed Sadiq @ 2023-01-18  4:24 UTC (permalink / raw)
  To: 60923

When installing packages from vc, I want to ignore some directories (eg:
tests directory). I would like package-vc-install to have an option to
accept list of directories to ignore or include (eg: if source is in src
subdirectory)


In GNU Emacs 29.0.60 (build 6, x86_64-pc-linux-gnu, GTK+ Version
  3.24.36, cairo version 1.16.0) of 2023-01-17 built on purism
Repository revision: e8c77d9abda9c5c48de546a4ff667ffdf3d27c94
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 
11.0.12101005
System Description: Debian GNU/Linux bookworm/sid





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-01-18  4:24 bug#60923: 29.0.60; package-vc-install: Allow specifying directories Mohammed Sadiq
@ 2023-02-13 19:59 ` Philip Kaludercic
  2023-02-14 15:28   ` Mohammed Sadiq
  0 siblings, 1 reply; 7+ messages in thread
From: Philip Kaludercic @ 2023-02-13 19:59 UTC (permalink / raw)
  To: Mohammed Sadiq; +Cc: 60923

Mohammed Sadiq <sadiq@sadiqpk.org> writes:

> When installing packages from vc, I want to ignore some directories (eg:
> tests directory). I would like package-vc-install to have an option to
> accept list of directories to ignore or include (eg: if source is in src
> subdirectory)

What does "ignore" mean in this context?  On ELPA we have the following
attribute for package specifications:

  ** =:ignored-files FILES=
  Names of files or directories that should not be included in the tarballs.

package.el already supports ignoring the contents of a .elpaignore file,
but all that does is remove a few files from the byte-compilation process.

-- 
Philip Kaludercic





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-02-13 19:59 ` Philip Kaludercic
@ 2023-02-14 15:28   ` Mohammed Sadiq
  2023-02-14 15:59     ` Philip Kaludercic
  0 siblings, 1 reply; 7+ messages in thread
From: Mohammed Sadiq @ 2023-02-14 15:28 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: 60923

On 2023-02-14 01:29, Philip Kaludercic wrote:

> What does "ignore" mean in this context?

Ignore as in, the file is never kept in the installation directory.

> package.el already supports ignoring the contents of a .elpaignore 
> file,
> but all that does is remove a few files from the byte-compilation 
> process.

I tried installing pareedit, and it doesn't seem to work. I tried:
emacs --batch --eval='(package-vc-install 
"https://github.com/emacsmirror/paredit.git")'

The project contains .elpaignore, which specifies the file test.el,
but the file test.el is still compiled to test.elc.  Also, since
it is installed, I'm able to access functions like 
`paredit-test-failed'.

Or am I missing something obvious?





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-02-14 15:28   ` Mohammed Sadiq
@ 2023-02-14 15:59     ` Philip Kaludercic
  2023-02-23 13:17       ` Philip Kaludercic
  2023-03-01  5:03       ` Mohammed Sadiq
  0 siblings, 2 replies; 7+ messages in thread
From: Philip Kaludercic @ 2023-02-14 15:59 UTC (permalink / raw)
  To: Mohammed Sadiq; +Cc: 60923

Mohammed Sadiq <sadiq@sadiqpk.org> writes:

> On 2023-02-14 01:29, Philip Kaludercic wrote:
>
>> What does "ignore" mean in this context?
>
> Ignore as in, the file is never kept in the installation directory.

I am afraid that would be contrary to the point of package-vc.  The
intention is to provide the facilities to manage a package (activate,
load, update, etc.) directory from source.

But perhaps I am misunderstanding you.  What would be the point of
removing the files from the installation directory?

>> package.el already supports ignoring the contents of a .elpaignore
>> file,
>> but all that does is remove a few files from the byte-compilation
>> process.
>
> I tried installing pareedit, and it doesn't seem to work. I tried:
> emacs --batch --eval='(package-vc-install
> "https://github.com/emacsmirror/paredit.git")'

(Is there a reason you specified a URL instead of the package?)

> The project contains .elpaignore, which specifies the file test.el,
> but the file test.el is still compiled to test.elc.  

It seems like this is a bug in `byte-recompile-directory' or rather in
the way it is invoked from package-compile.  I will have to look into
this at some point, if it is even regarded as a bug -- there was a
discussion that it is OK to attempt compiling every file in a project,
even if the actual Lisp files are only located in a subdirectory.  Most
of the time the issues in test files are just due to negligence, and
could also be fixed upstream.

>                                                      Also, since
> it is installed, I'm able to access functions like
> `paredit-test-failed'.

Just like that or after loading the file?

> Or am I missing something obvious?

Nothing obvious enough for me to see.

-- 
Philip Kaludercic





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-02-14 15:59     ` Philip Kaludercic
@ 2023-02-23 13:17       ` Philip Kaludercic
  2023-03-01  5:03       ` Mohammed Sadiq
  1 sibling, 0 replies; 7+ messages in thread
From: Philip Kaludercic @ 2023-02-23 13:17 UTC (permalink / raw)
  To: Mohammed Sadiq; +Cc: 60923

ping?

Philip Kaludercic <philipk@posteo.net> writes:

> Mohammed Sadiq <sadiq@sadiqpk.org> writes:
>
>> On 2023-02-14 01:29, Philip Kaludercic wrote:
>>
>>> What does "ignore" mean in this context?
>>
>> Ignore as in, the file is never kept in the installation directory.
>
> I am afraid that would be contrary to the point of package-vc.  The
> intention is to provide the facilities to manage a package (activate,
> load, update, etc.) directory from source.
>
> But perhaps I am misunderstanding you.  What would be the point of
> removing the files from the installation directory?
>
>>> package.el already supports ignoring the contents of a .elpaignore
>>> file,
>>> but all that does is remove a few files from the byte-compilation
>>> process.
>>
>> I tried installing pareedit, and it doesn't seem to work. I tried:
>> emacs --batch --eval='(package-vc-install
>> "https://github.com/emacsmirror/paredit.git")'
>
> (Is there a reason you specified a URL instead of the package?)
>
>> The project contains .elpaignore, which specifies the file test.el,
>> but the file test.el is still compiled to test.elc.  
>
> It seems like this is a bug in `byte-recompile-directory' or rather in
> the way it is invoked from package-compile.  I will have to look into
> this at some point, if it is even regarded as a bug -- there was a
> discussion that it is OK to attempt compiling every file in a project,
> even if the actual Lisp files are only located in a subdirectory.  Most
> of the time the issues in test files are just due to negligence, and
> could also be fixed upstream.
>
>>                                                      Also, since
>> it is installed, I'm able to access functions like
>> `paredit-test-failed'.
>
> Just like that or after loading the file?
>
>> Or am I missing something obvious?
>
> Nothing obvious enough for me to see.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-02-14 15:59     ` Philip Kaludercic
  2023-02-23 13:17       ` Philip Kaludercic
@ 2023-03-01  5:03       ` Mohammed Sadiq
  2023-03-01 14:03         ` Philip Kaludercic
  1 sibling, 1 reply; 7+ messages in thread
From: Mohammed Sadiq @ 2023-03-01  5:03 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: 60923

On 2023-02-14 21:29, Philip Kaludercic wrote:
> 
> But perhaps I am misunderstanding you.  What would be the point of
> removing the files from the installation directory?

My need was to avoid letting the code in test files never available
in Emacs (as defuns and such are not namespace separated, functions
written in tests may confuse with other functions)

But given that the entire source including the vc history is kept
as such, I don't think removing the file is for this purpose is
worth.

> 
>>> package.el already supports ignoring the contents of a .elpaignore
>>> file,
>>> but all that does is remove a few files from the byte-compilation
>>> process.
>> 
>> I tried installing pareedit, and it doesn't seem to work. I tried:
>> emacs --batch --eval='(package-vc-install
>> "https://github.com/emacsmirror/paredit.git")'
> 
> (Is there a reason you specified a URL instead of the package?)

I just chose the URL of a popular project that has a .elpaignore file.

> 
>>                                                      Also, since
>> it is installed, I'm able to access functions like
>> `paredit-test-failed'.
> 
> Just like that or after loading the file?

After loading the file.  `paredit-test-failed` is no big problem.
But some projects may define functions like `load-test-file` etc,
which may not be obvious where the function is defined unless the
documentation or its code is inspected.

But anyway, as suggested, I don't think it's worth to have a way to
remove specified files as the entire vc history is cloned and kept
locally.  So please close the issue.

Sorry for the delayed response.  I was away last month.


cheers,
Mohammed Sadiq





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#60923: 29.0.60; package-vc-install: Allow specifying directories
  2023-03-01  5:03       ` Mohammed Sadiq
@ 2023-03-01 14:03         ` Philip Kaludercic
  0 siblings, 0 replies; 7+ messages in thread
From: Philip Kaludercic @ 2023-03-01 14:03 UTC (permalink / raw)
  To: Mohammed Sadiq; +Cc: 60923-done

Mohammed Sadiq <sadiq@sadiqpk.org> writes:

> On 2023-02-14 21:29, Philip Kaludercic wrote:
>> But perhaps I am misunderstanding you.  What would be the point of
>> removing the files from the installation directory?
>
> My need was to avoid letting the code in test files never available
> in Emacs (as defuns and such are not namespace separated, functions
> written in tests may confuse with other functions)
>
> But given that the entire source including the vc history is kept
> as such, I don't think removing the file is for this purpose is
> worth.

OK, I'll go ahead and mark the report as done then?

>>>> package.el already supports ignoring the contents of a .elpaignore
>>>> file,
>>>> but all that does is remove a few files from the byte-compilation
>>>> process.
>>> I tried installing pareedit, and it doesn't seem to work. I tried:
>>> emacs --batch --eval='(package-vc-install
>>> "https://github.com/emacsmirror/paredit.git")'
>> (Is there a reason you specified a URL instead of the package?)
>
> I just chose the URL of a popular project that has a .elpaignore file.

The reason I was asking is that you could have also invoked
`package-vc-install' using just a symbol, and it would have used the
default specification that the package archive (in this case NonGNU
ELPA) also uses to build the package:

  (package-vc-install 'paredit)

>>>                                                      Also, since
>>> it is installed, I'm able to access functions like
>>> `paredit-test-failed'.
>> Just like that or after loading the file?
>
> After loading the file.  `paredit-test-failed` is no big problem.
> But some projects may define functions like `load-test-file` etc,
> which may not be obvious where the function is defined unless the
> documentation or its code is inspected.
>
> But anyway, as suggested, I don't think it's worth to have a way to
> remove specified files as the entire vc history is cloned and kept
> locally.  So please close the issue.

Package-vc is just an alternative backend for package, the loading is
still taken care of by package.el.  And if the package doesn't autoload
these definitions, then they shouldn't appear.  One could contact the
maintainer and suggest them to be more hygienic in regard to tests or
other miscellaneous files, but considering that hacking on packages is
one of the main use-cases of package-vc, it shouldn't be prevented.

> Sorry for the delayed response.  I was away last month.

No problem, I hope I could help :).

> cheers,
> Mohammed Sadiq

-- 
Philip Kaludercic





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-03-01 14:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-18  4:24 bug#60923: 29.0.60; package-vc-install: Allow specifying directories Mohammed Sadiq
2023-02-13 19:59 ` Philip Kaludercic
2023-02-14 15:28   ` Mohammed Sadiq
2023-02-14 15:59     ` Philip Kaludercic
2023-02-23 13:17       ` Philip Kaludercic
2023-03-01  5:03       ` Mohammed Sadiq
2023-03-01 14:03         ` Philip Kaludercic

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.