Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI on Julia v1.7 #37

Merged
merged 12 commits into from
Jul 20, 2021
Merged

CI on Julia v1.7 #37

merged 12 commits into from
Jul 20, 2021

Conversation

ranocha
Copy link
Member

@ranocha ranocha commented Jun 29, 2021

TODO:

  • Set lower compat bound for Julia to v1.7
  • Merge once Julia v1.7 is released

CI:

ERROR: Unsatisfiable requirements detected for package libLLVM_jll [8f36deef]:
libLLVM_jll [8f36deef] log:
├─possible versions are: 12.0.0 or uninstalled
└─found to have no compatible versions left with Clang_jll [0ee61d77]
└─Clang_jll [0ee61d77] log:
├─possible versions are: 9.0.1-12.0.0 or uninstalled
└─restricted by compatibility requirements with CBindingGen [308a6e0c] to versions: 9.0.1-11.0.1
└─CBindingGen [308a6e0c] log:
├─possible versions are: 0.1.0-0.4.5 or uninstalled
└─restricted to versions 0.4 by an explicit requirement, leaving only versions 0.4.0-0.4.5

Thus, it looks like we have three options for P4est to use Julia v1.7.

  1. Convince CBinding (v0.9) and CBindingGen to update their old versions with new compat bounds
  2. Switch to CBinding v1.0 (might be difficult according to @sloede)
  3. Get rid of CBinding and use Clang directly

Xref trixi-framework/Trixi.jl#665

@sloede
Copy link
Member

sloede commented Jun 29, 2021

Thus, it looks like we have three options for P4est to use Julia v1.7.

1. Convince CBinding (v0.9) and CBindingGen to update their old versions with new compat bounds

2. Switch to CBinding v1.0 (might be difficult according to @sloede)

3. Get rid of CBinding and use Clang directly
  1. is not a viable option IMHO, thus we should try out 2) and if it doesn't fit the bill, use 3) as the fallback.

@ranocha
Copy link
Member Author

ranocha commented Jul 19, 2021

As seen in #38 and discussed on Slack, neither option (CBinding.jl or Clang.jl) is perfect right now. Thus, i tried to provide a workaround that let's us still use the pre-generated bindings on Julia v1.7 without problems. Locally, I get

(@v1.7) pkg> build P4est
    Building MPI ── `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/00488c6fcaf828685c2bc5139bf0afff8c15c982/build.log`
    Building P4est  `~/.julia/dev/P4est/deps/build.log`
┌ Warning: Could not use exact versions of packages in manifest, re-resolving
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/Pkg/src/Operations.jl:1488
Precompiling project...
  26 dependencies successfully precompiled in 59 seconds (268 already precompiled, 1 skipped during auto due to previous errors)

julia> using Trixi

julia> include(joinpath(pathof(Trixi) |> dirname |> dirname, "test", "test_examples_2d_p4est.jl"))
[...]
Test Summary: | Pass  Total
P4estMesh     |   74     74
Main.TestExamples2dP4est

julia> include(joinpath(pathof(Trixi) |> dirname |> dirname, "test", "test_examples_3d_p4est.jl"))
[...]
Test Summary: | Pass  Total
P4estMesh     |   87     87
Main.TestExamples3dP4est

This should give us a bit more time to decide which approach to follow in #38.

@ranocha
Copy link
Member Author

ranocha commented Jul 19, 2021

It looks like we got it working with pre-generated bindings on Julia v1.7. Shall we merge it and release a new version to be able to test Trixi on Julia v1.7 (beta, rc)?

@sloede
Copy link
Member

sloede commented Jul 19, 2021

Yes, sounds good to me. However, at the moment most Julia v1.7 tests are failing. Shouldn't we fix those first?

sloede
sloede previously approved these changes Jul 19, 2021
Copy link
Member

@sloede sloede left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the currently failing tests are fixed, this LGTM! Thanks!

@ranocha
Copy link
Member Author

ranocha commented Jul 19, 2021

I added another CI setup to allow tests on Julia v1.7 that will not mark our usual CI as failed. I needed to introduce another GitHub action for this due to limitations of GH actions...

@ranocha ranocha requested a review from sloede July 19, 2021 17:06
@sloede
Copy link
Member

sloede commented Jul 20, 2021

Not sure I understand what's going on... from the comments and commit messages I got the understanding, that all tests should pass, but they don't. Some of the failed tests seem like they shouldn't work in the first place, since they cannot make use of the pre-generated bindings. Would it make sense to just exclude them from the tests? If it's too complicated to discuss here, maybe we can put it on the agenda for this afternoon.

@ranocha
Copy link
Member Author

ranocha commented Jul 20, 2021

I thought it might be nice to be able to track whether this stuff works (when modifying our general setup). Based on your comment, I removed the additional tests and put everything back in our standard CI run.

@ranocha ranocha enabled auto-merge (squash) July 20, 2021 05:40
@ranocha ranocha merged commit 71d34f9 into main Jul 20, 2021
@ranocha ranocha deleted the julia_v17 branch July 20, 2021 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants