dk / Prima

prima.eu.org
Other
106 stars 27 forks source link

Prima fails to build at least on GitHub Actions under PDL CI #62

Closed mohawk2 closed 2 years ago

mohawk2 commented 2 years ago

Not sure if you can read this log, unfortunately it's not in any case very verbose: https://github.com/PDLPorters/pdl/runs/5957121872?check_suite_focus=true

Extract (it did used to work, and I note you've just pushed out a new release) - sorry, the referred build.log is not available:

[...]
strict is up to date. (1.12)
! Installing Prima failed. See /root/.cpanm/work/1649537624.25/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Prima' is not installed
! Bailing out the installation for PDL-Drawing-Prima-0.14.
The command '/bin/sh -c if [ -n "$START_XVFB" ]; then Xvfb $DISPLAY & sleep 5; fi;  cpanm -nq $CPANM_CONFIGURE_DEPS         && cpanm -nq --installdeps --dev $CPANM_ARGS        && cpanm --verbose --dev $CPANM_ARGS' returned a non-zero code: 1
Could not build PDL-Drawing-Prima at /home/runner/work/pdl/pdl/.github/devops/docker/lib/PDL/Devops/Process/Docker.pm line 20.
make: Leaving directory '/home/runner/work/pdl/pdl/.github/devops/docker'
mohawk2 commented 2 years ago

I can repro on my local machine:

# ...
[path]/perl-5.32.0/bin/perl -I. utils/prima-gencls.pl --inc --h -Isrc --tml src/Object.cls include/generic
[path]/perl-5.32.0/bin/perl -I. utils/prima-gencls.pl --inc --h -Isrc --tml src/Types.cls include/generic
[path]/perl-5.32.0/bin/perl -I. utils/prima-gencls.pl --inc --h -Isrc --tml src/Utils.cls include/generic
Running Mkbootstrap for Prima ()
make: *** No rule to make target 'include/generic/Drawable_private.h', needed by 'src/Drawable.o'. Stop.
make: *** Waiting for unfinished jobs....
chmod 644 "Prima.bs"
-> FAIL Installing Prima failed. See [...]/build.log for details. Retry with --force to force install it.

I tried again with MAKEFLAGS unset in case it was a parallel-build problem, and it gets further but still fails. I think you have an unexpressed dependency, or a file you didn't distribute.

dk commented 2 years ago

yes that file is missing from the distro... will take a look after vacation

mohawk2 commented 2 years ago

Enjoy your vacation! If you'd like a preliminary CI that you could work from to reduce the chances of this going forward, let us (the PDL porters) know.

dk commented 2 years ago

Thank you, I'll join the list (later). Meanwhile this is fixed in 1.64_1 but I'm reluctant to push 1.65 just now, if that thing fails, let it at least accumulate other errors from perltesters.

mohawk2 commented 2 years ago

I look forward to seeing you on the list! I'd suggest an early 1.65 since 1.64 is genuinely broken, though?

dk commented 2 years ago

I'm trying to remove 1.64 from cpan but i never used that functionality and apparently it takes 72 hours. My hope is that 'cpan install Prima' will get 1.63, but indeed if that wouldn't work 1.65 will be there soon

mohawk2 commented 2 years ago

If you want to revert to a previous version the idiomatic way is to re-release the same content as 1.63, with the version number 1.65. You'd then release new ones after that (dev or otherwise).

perlpunk commented 2 years ago

Just for the record, we are seeing this error in openSUSE too https://build.opensuse.org/package/live_build_log/devel:languages:perl:autoupdate/perl-Prima/standard/x86_64

[   51s] make: *** No rule to make target 'include/generic/Drawable_private.h', needed by 'src/Drawable.o'.  Stop.
dk commented 2 years ago

Re-releasing doesnt work like that bc cpan only allows incrementibg versions. Im trying to do the reverse hopefully that will do the right thing

mohawk2 commented 2 years ago

If you give me co-maint on the distro (I'm ETJ on PAUSE) and collab on this repo, I can put out an intermediate 1.65 that is the same as 1.63 but for the version number. Or, I can make a fixed 1.65 since I believe the only problem is the missing file. Either way, I'd suggest you need CI on this thing, which I can also PR for you.

dk commented 2 years ago

There are more problems in 1.64. But so far it seems that it is gone from cpan. Did the CI pick up that change?

PS 1.65 is coming the next week

mohawk2 commented 2 years ago

I am not going to re-enable it in the CI, since on my command-line I am seeing:

$ cpanm Prima
! Finding Prima on cpanmetadb failed.

Not hugely surprisingly, deleting the latest release didn't reinstate the previous one, but has instead just left a hole. You may succeed in reinstating 1.63 if you login to PAUSE and try the "Force reindexing" option on the 1.63 tarball. I did already lay out the idiomatic way to achieve what you're trying to do, which was to upload a 1.65 with 1.63 content but 1.65 version number. It appears you don't want to do that.

dk commented 2 years ago

As said, 1.65 is coming the next week. I'm not quite sure why you are ignoring this and doing the strawman about what I want and don't want to do.

mohawk2 commented 2 years ago

As implied by "I am not going to re-enable it in the CI", the two PDL-using distros are currently disabled in the PDL downstream CI. I really don't know what you think you mean by "strawman". Best of luck.

dk commented 2 years ago

1.65 is out new and passed cpantesters allright. Sorry for the confusion caused.