From: Julien Lepiller <julien@lepiller.eu>
To: Bruno Victal <mirai@makinata.eu>
Cc: bjoern.hoefling@bjoernhoefling.de, help-guix <help-guix@gnu.org>
Subject: Re: Guidance for packaging Java programs
Date: Fri, 28 Jul 2023 07:07:56 +0200 [thread overview]
Message-ID: <05831405-1E09-4E8B-B778-BBF890692078@lepiller.eu> (raw)
In-Reply-To: <7dd90295-0e7a-720a-93df-b2f5c7cba899@makinata.eu>
Le 28 juillet 2023 04:09:42 GMT+02:00, Bruno Victal <mirai@makinata.eu> a écrit :
>Hi Julien,
>
>On 2023-07-13 18:48, Julien Lepiller wrote:
>> If you feel like helping, maybe an importer would be a good first step :). You should be able to get info from Maven Central (get the pom files, they are XML files and we have a module somewhere to handle them (guix build maven pom) I think). It should work for maven and gradle packages at least. Mapping maven name to guix names might also be challenging, but we can solve with an upstream-name property.
>>
>> Here are some more resources if you want to learn more about Guix and Java:
>>
>> I gave a talk about bootstrapping Maven in 2020:
>>
>> https://xana.lepiller.eu/guix-days-2020/guix-days-2020-julien-lepiller-bootstrapping-maven-480.mp4
>
>Thanks! This was very helpful in providing an overview of the system.
>
>Can we say that the maven in Guix has already been “bootstrapped” or is there something still missing?
>Given the large and non-trivial nature of just the “bootstrap” part, would it make sense to split
>gnu/packages/maven.scm into maven-bootstrap.scm and maven-<anything else>.scm files to keep things manageable?
Maven itself is bootstrapped, along with the essential plugins. We're still missing many plugins. As long as we don't have maven-plugin-plugin, we need to build them "manually" in the same way we build other other plugins. It could be an interesting target for improving the situation.
>
>The maven-importer situation is quite unfortunate due to the often absent source location, a quick glance
>here suggests that the best we might hope for is an automation-½ approach: generate “skeleton” package
>definitions and manually fill-in the source & co.
>
>Some additional maven related questions:
>
>* What is 'sisu.sh' & 'components.sh' and when/what are they used for?
They are scripts to automatically generate some files that are required at runtime for "dependency injection". Normally, this generation is done by a maven plugin, but in the bootstrap, we can't use maven, so we managed to replace that with a small script.
>
>* Is it common for maven plugins to end up with package definitions
>that make heavy use of inherit? (a quick glance at gnu/packages/maven.scm
>gives the impression that it all looks very fragile due to the matryoshka-like
>inheritance rabbit-holes)
There's inheritance everywhere in java and maven packages. There shouldn't be that many layers though. Usually, there's a package definition and its bootstrap version or other components from the same source inherit from it.
If you find a way to simplify all that, it's more than welcome :)
prev parent reply other threads:[~2023-07-28 5:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-13 17:00 Guidance for packaging Java programs Bruno Victal
2023-07-13 17:48 ` Julien Lepiller
2023-07-13 19:35 ` Bruno Victal
2023-07-13 20:19 ` Julien Lepiller
2023-07-14 5:32 ` Dr. Arne Babenhauserheide
2023-07-28 2:09 ` Bruno Victal
2023-07-28 5:07 ` Julien Lepiller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=05831405-1E09-4E8B-B778-BBF890692078@lepiller.eu \
--to=julien@lepiller.eu \
--cc=bjoern.hoefling@bjoernhoefling.de \
--cc=help-guix@gnu.org \
--cc=mirai@makinata.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).