unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry
       [not found] <87lfck6hbl.fsf@yucca>
@ 2021-05-02  2:23 ` Vagrant Cascadian
  2021-05-04 19:53   ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Vagrant Cascadian @ 2021-05-02  2:23 UTC (permalink / raw)
  To: 46038

[-- Attachment #1: Type: text/plain, Size: 7113 bytes --]

On 2021-01-22, Vagrant Cascadian wrote:
> I've uploaded guix 1.2.0 built against guile-2.2 to Debian, and while it
> builds fine on the official buildd.debian.org infrastructure, on amd64
> and arm64 the "channel-news, one entry" test from tests/channels.scm
> fails on tests.reproducible-builds.org.
>
> There are likely a few differences in the two build environments,
> possibly including network access.
>
> Does the "channel-news, one entry" test indirectly depend on network or
> bootstrap binaries?
>
> Could a difference in locale related variables affect the result of the
> test (e.g. LANGUAGE=en:en_US vs. LANGUAGE unset, LC_ALL unset
> vs. LC_ALL=C or LC_ALL=C.UTF-8)?
>
>   https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/guix.html

Still basically the same story with 1.3.0rc1, in some cases this test
fails, but I haven't consistently figured out what triggers it.


> test-name: channel-news, one entry
> location: /build/1st/guix-1.2.0/tests/channels.scm:324
> source:
> + (test-assert
> +   "channel-news, one entry"
> +   (with-temporary-git-repository
> +     directory
> +     `((add ".guix-channel"
> +            ,(object->string
> +               '(channel (version 0) (news-file "news.scm"))))
> +       (commit "first commit")
> +       (add "src/a.txt" "A")
> +       (commit "second commit")
> +       (tag "tag-for-first-news-entry")
> +       (add "news.scm"
> +            ,(lambda (repository)
> +               (let ((previous
> +                       (reference-name->oid repository "HEAD")))
> +                 (object->string
> +                   `(channel-news
> +                      (version 0)
> +                      (entry (commit ,(oid->string previous))
> +                             (title (en "New file!") (eo "Nova dosiero!"))
> +                             (body (en "Yeah, a.txt."))))))))
> +       (commit "third commit")
> +       (add "src/b.txt" "B")
> +       (commit "fourth commit")
> +       (add hint: Using 'master' as the name for the initial branch. This default branch name
> hint: is subject to change. To configure the initial branch name to use in all
> hint: of your new repositories, which will suppress this warning, call:
> hint: 
> hint: 	git config --global init.defaultBranch <name>
> hint: 
> hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
> hint: 'development'. The just-created branch can be renamed via this command:
> hint: 
> hint: 	git branch -m <name>
> Initialized empty Git repository in /tmp/guix-directory.6SfxEu/.git/
> [master (root-commit) 8b5d0e8] first commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 .guix-channel
> [master b8dd467] second commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 src/a.txt
> [master 324d7bc] third commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 news.scm
> [master 2cd62e1] fourth commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 src/b.txt
> [master d0e63c3] fifth commit
>  1 file changed, 1 insertion(+), 1 deletion(-)
> hint: Using 'master' as the name for the initial branch. This default branch name
> hint: is subject to change. To configure the initial branch name to use in all
> hint: of your new repositories, which will suppress this warning, call:
> hint: 
> hint: 	git config --global init.defaultBranch <name>
> hint: 
> hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
> hint: 'development'. The just-created branch can be renamed via this command:
> hint: 
> hint: 	git branch -m <name>
> Initialized empty Git repository in /tmp/guix-directory.M2UpCv/.git/
> [master (root-commit) f84a5c3] first commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 a.txt
> [master b1e63da] second commit
>  1 file changed, 1 insertion(+)
>  create mode 100644 b.scm
> "news.scm"
> +            ,(lambda (repository)
> +               (let ((second
> +                       (commit-id
> +                         (find-commit repository "second commit")))
> +                     (previous
> +                       (reference-name->oid repository "HEAD")))
> +                 (object->string
> +                   `(channel-news
> +                      (version 0)
> +                      (entry (commit ,(oid->string previous))
> +                             (title (en "Another file!"))
> +                             (body (en "Yeah, b.txt.")))
> +                      (entry (tag "tag-for-first-news-entry")
> +                             (title (en "Old news.") (eo "Malnova?oj."))
> +                             (body (en "For a.txt"))))))))
> +       (commit "fifth commit"))
> +     (with-repository
> +       directory
> +       repository
> +       (define (find-commit* message)
> +         (oid->string
> +           (commit-id (find-commit repository message))))
> +       (let ((channel
> +               (channel
> +                 (url (string-append "file://" directory))
> +                 (name 'foo)))
> +             (commit1 (find-commit* "first commit"))
> +             (commit2 (find-commit* "second commit"))
> +             (commit3 (find-commit* "third commit"))
> +             (commit4 (find-commit* "fourth commit"))
> +             (commit5 (find-commit* "fifth commit")))
> +         (and (null? (channel-news-for-commit channel commit2))
> +              (lset= string=?
> +                     (map channel-news-entry-commit
> +                          (channel-news-for-commit channel commit5))
> +                     (list commit2 commit4))
> +              (lset= equal?
> +                     (map channel-news-entry-title
> +                          (channel-news-for-commit channel commit5))
> +                     '((("en" . "Another file!"))
> +                       (("en" . "Old news.") ("eo" . "Malnova?oj."))))
> +              (lset= string=?
> +                     (map channel-news-entry-commit
> +                          (channel-news-for-commit channel commit3))
> +                     (list commit2))
> +              (lset= string=?
> +                     (map channel-news-entry-commit
> +                          (channel-news-for-commit channel commit3 commit1))
> +                     (list commit2))
> +              (lset= string=?
> +                     (map channel-news-entry-commit
> +                          (channel-news-for-commit channel commit5 commit3))
> +                     (list commit4))
> +              (lset= string=?
> +                     (map channel-news-entry-commit
> +                          (channel-news-for-commit channel commit5 commit1))
> +                     (list commit4 commit2))
> +              (lset= equal?
> +                     (map channel-news-entry-tag
> +                          (channel-news-for-commit channel commit5 commit1))
> +                     '(#f "tag-for-first-news-entry")))))))
> actual-value: #f
> result: FAIL


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry
  2021-05-02  2:23 ` bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry Vagrant Cascadian
@ 2021-05-04 19:53   ` Ludovic Courtès
  2021-05-04 22:34     ` Vagrant Cascadian
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2021-05-04 19:53 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 46038

Hi Vagrant,

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

> On 2021-01-22, Vagrant Cascadian wrote:
>> I've uploaded guix 1.2.0 built against guile-2.2 to Debian, and while it
>> builds fine on the official buildd.debian.org infrastructure, on amd64
>> and arm64 the "channel-news, one entry" test from tests/channels.scm
>> fails on tests.reproducible-builds.org.
>>
>> There are likely a few differences in the two build environments,
>> possibly including network access.
>>
>> Does the "channel-news, one entry" test indirectly depend on network or
>> bootstrap binaries?
>>
>> Could a difference in locale related variables affect the result of the
>> test (e.g. LANGUAGE=en:en_US vs. LANGUAGE unset, LC_ALL unset
>> vs. LC_ALL=C or LC_ALL=C.UTF-8)?
>>
>>   https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/guix.html
>
> Still basically the same story with 1.3.0rc1, in some cases this test
> fails, but I haven't consistently figured out what triggers it.
>
>
>> test-name: channel-news, one entry
>> location: /build/1st/guix-1.2.0/tests/channels.scm:324
>> source:

[...]

>> +              (lset= equal?
>> +                     (map channel-news-entry-title
>> +                          (channel-news-for-commit channel commit5))
>> +                     '((("en" . "Another file!"))
>> +                       (("en" . "Old news.") ("eo" . "Malnova?oj."))))

The culprit is right here: it should read “Malnovaĵoj”, but there’s a
question mark instead of ‘ĵ’.

Could it be that you’re not running tests in a UTF-8 locale?

Thanks,
Ludo’.




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

* bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry
  2021-05-04 19:53   ` Ludovic Courtès
@ 2021-05-04 22:34     ` Vagrant Cascadian
  2021-05-06 10:46       ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Vagrant Cascadian @ 2021-05-04 22:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 46038

[-- Attachment #1: Type: text/plain, Size: 2365 bytes --]

On 2021-05-04, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:
>
>> On 2021-01-22, Vagrant Cascadian wrote:
>>> I've uploaded guix 1.2.0 built against guile-2.2 to Debian, and while it
>>> builds fine on the official buildd.debian.org infrastructure, on amd64
>>> and arm64 the "channel-news, one entry" test from tests/channels.scm
>>> fails on tests.reproducible-builds.org.
>>>
>>> There are likely a few differences in the two build environments,
>>> possibly including network access.
>>>
>>> Does the "channel-news, one entry" test indirectly depend on network or
>>> bootstrap binaries?
>>>
>>> Could a difference in locale related variables affect the result of the
>>> test (e.g. LANGUAGE=en:en_US vs. LANGUAGE unset, LC_ALL unset
>>> vs. LC_ALL=C or LC_ALL=C.UTF-8)?
>>>
>>>   https://tests.reproducible-builds.org/debian/rb-pkg/experimental/amd64/guix.html
>>
>> Still basically the same story with 1.3.0rc1, in some cases this test
>> fails, but I haven't consistently figured out what triggers it.
>>
>>
>>> test-name: channel-news, one entry
>>> location: /build/1st/guix-1.2.0/tests/channels.scm:324
>>> source:
>
> [...]
>
>>> +              (lset= equal?
>>> +                     (map channel-news-entry-title
>>> +                          (channel-news-for-commit channel commit5))
>>> +                     '((("en" . "Another file!"))
>>> +                       (("en" . "Old news.") ("eo" . "Malnova?oj."))))
>
> The culprit is right here: it should read “Malnovaĵoj”, but there’s a
> question mark instead of ‘ĵ’.
>
> Could it be that you’re not running tests in a UTF-8 locale?

Thanks for taking a deeper look!

Yes, on tests.reproducible-builds.org, one build is run in the C locale,
the other in various UTF-8 locales (somewhat arbitrarily tied to
architecture exactly which UTF-8 locale is used). I'm guessing
buildd.debian.org use C.UTF-8, since it builds fine there.

So now the question is what to do; should tests be able to assume a
UTF-8 locale?

Should I try to adapt the test to work in C?

Should I workaround it in the Debian packaging by forcing to use a UTF-8
locale (on Debian, the only one definitely available is C.UTF-8, which
isn't in upstream glibc, and thus not in guix itself).


live well,
  vagrant

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry
  2021-05-04 22:34     ` Vagrant Cascadian
@ 2021-05-06 10:46       ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2021-05-06 10:46 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 46038

Hi,

Vagrant Cascadian <vagrant@reproducible-builds.org> skribis:

> So now the question is what to do; should tests be able to assume a
> UTF-8 locale?
>
> Should I try to adapt the test to work in C?
>
> Should I workaround it in the Debian packaging by forcing to use a UTF-8
> locale (on Debian, the only one definitely available is C.UTF-8, which
> isn't in upstream glibc, and thus not in guix itself).

Since it’s the only test that makes this assumption, you can choose
whichever option sounds best to you.  In Guix proper, I’d rather assume
we’re running in a UTF-8 locale.  If that’s not a good option for you,
you could patch this one non-ASCII character.

HTH!

Ludo’.




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

end of thread, other threads:[~2021-05-06 10:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <87lfck6hbl.fsf@yucca>
2021-05-02  2:23 ` bug#46038: guix 1.3.0rc1 test failure: channels-news, one entry Vagrant Cascadian
2021-05-04 19:53   ` Ludovic Courtès
2021-05-04 22:34     ` Vagrant Cascadian
2021-05-06 10:46       ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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