unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
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 :)


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