[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Partial automation of egg dependencies
From: |
Mario Domenech Goulart |
Subject: |
Re: Partial automation of egg dependencies |
Date: |
Mon, 21 Nov 2022 22:28:03 +0100 |
On Mon, 21 Nov 2022 19:09:43 +0200 Lassi Kortela <lassi@lassi.io> wrote:
>> My take on that as a user: I care about dependencies and tend to avoid
>> eggs with many dependencies. If I see `(auto-dependencies)' in an egg
>> file, I don't know the dependencies of that egg. I would not like that.
>> Also, that would break the [reverse] dependency ranks of salmonella
>> reports.
>
> auto-dependencies should only cover things that are possible to
> compute statically by looking at the source files. So you'd have a
> simple, predictable tool that expands them to manual dependencies at
> will.
>
> The main source of trouble is that this:
>
> (import foo bar baz)
>
> specifies stuff that is then duplicated in the .egg file. When the
> imports change, the .egg has to be changed too. Else the build may
> break.
>
> This is the same problem that C/C++ programmers face in keeping
> makefiles synced with #include. Many of them concluded that thy can't
> maintain correct makefiles by hand, and wrote tools like makedepend.
I think I understand the problem, but I'm not sure I understand the
solution (I'm probably missing something). :-)
* Regarding the usability problem mentioned, I still don't see how a
user could easily see all the dependencies of an egg if the egg file
has only `(auto-dependencies)'.
* Regarding the problem related to salmonella reports, I suppose
salmonella would have to rely on some file emitted by chicken-install
to be able to figure out dependencies.
* Regarding the import problem, another thing to keep in mind is that we
don't have a 1-1 mapping between egg and module names. Module names
don't have to be the same as egg names and one egg might ship zero,
one or multiple modules. If you have `(import foo)' it doesn't mean
that the `foo' module is shipped by an egg called `foo'.
* How can `auto-dependencies' deal with egg versions?
All the best.
Mario
--
http://parenteses.org/mario
- Re: Partial automation of egg dependencies, (continued)