guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add junit.


From: Ricardo Wurmus
Subject: Re: [PATCH] Add junit.
Date: Fri, 22 Apr 2016 23:03:24 +0200
User-agent: mu4e 0.9.13; emacs 24.5.1

Eric Bavier <address@hidden> writes:

> On 2016-04-22 09:16, Ricardo Wurmus wrote:
>> Hi Guix,
>> 
>> here’s a first batch of patches for Java libraries.  Many Java packages
>> depend on JUnit, so that’s where I started.  “hamcrest-core” is just a
>> small part of the whole hamcrest library, but it’s enough to build
>> JUnit.
> [...]
>> +         (add-before 'configure 'patch-build.xml
>> +           (lambda _
>> +             (substitute* "build.xml"
>> +               (("unit-test, ") "")
>> +               (("\\$\\{build.timestamp\\}") "guix"))
>
> Is using "guix" here as a timestamp safe?  Will nothing read the 
> manifest and expect an actualy timestamp?  (I've become unfamiliar with 
> most of java-land lately).

hamcrest-core is the only package I’ve encountered so far that adds a
timestamp to the manifest.  Anything can be put inside manifests, so I
don’t think it matters much.  We could replace the timestamp with the
commit date of the package expression, just so that we have an actual
date (and one that isn’t 30+ years in the past).

>> +         ;; Java's "getMethods()" returns methods in an unpredictable 
>> order.
>> +         ;; To make the output of the generated code deterministic we 
>> must
>> +         ;; sort the array of methods.
>> +         (add-after 'unpack 'make-method-order-deterministic
>
> Should we patch our java package instead?  Perhaps that can be saved as 
> a future exercise.

The official documentation states that the order of methods returned is
undefined.  I wouldn’t like to force sorting on all users of the
reflection API.  In this case it’s important as the method names are
written to a file in whatever order they are returned.  In general the
order is of no importance.

>> +              (snippet
>> +               '(begin
>> +                  ;; Delete bundled jar archives.
>> +                  (delete-file-recursively "lib")
>> +                  #t))))
>
> Is this very common in java packages?

I’d say it’s somewhat more common than in packages written in other
languages, but I wouldn’t yet feel comfortable doing this by default for
all Java packages.

> Otherwise LGTM.

Thanks for the review!

~~ Ricardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]