Skip to content

Upgrade CI to newer os version #635

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

SeanCurtis-TRI
Copy link
Contributor

@SeanCurtis-TRI SeanCurtis-TRI commented Mar 12, 2025

macos-11 is no longer supported by github.
ubuntu 20 is likewise ridiculously old.

This includes benign changes to make the mac compiler happy.


This change is Reviewable

@SeanCurtis-TRI SeanCurtis-TRI force-pushed the PR_update_mac_ci branch 2 times, most recently from 6a0db5e to 0c9ca3c Compare March 12, 2025 15:52
@traversaro
Copy link
Contributor

xref: #626

macos-11 is no longer supported by github.
ubuntu 20 is likewise ridiculously old.

This includes benign changes to make the mac compiler happy.
@SeanCurtis-TRI SeanCurtis-TRI changed the title Upgrade mac CI to newer os version Upgrade CI to newer os version Mar 12, 2025
@SeanCurtis-TRI
Copy link
Contributor Author

Thanks! I'm sorry I missed your earlier PR.

@SeanCurtis-TRI
Copy link
Contributor Author

I've exhausted my best efforts at making the mac build happy. Unless someone else can contribute more than I can, I'm going to replace this PR with one that simply no longer tries to test against mac.

@traversaro
Copy link
Contributor

traversaro commented Mar 13, 2025

Unless someone else can contribute more than I can, I'm going to replace this PR with one that simply no longer tries to test against mac.

Which configuration are interested in testing? Downstream we are already packaging fcl on mac in conda-forge (https://github.com/conda-forge/fcl-feedstock), so it is trivial for us to contribute a mac ci based on conda-forge dependencies as opposed to brew one, see traversaro#1 for an example. In there the compilation works fine, while there are three tests that fail on macOS (from the log at https://github.com/traversaro/fcl/actions/runs/13830174941/job/38692485376?pr=1):

99% tests passed, 3 tests failed out of 274

Total Test time (real) = 120.79 sec

The following tests FAILED:
	 41 - CapsuleCapsuleSegmentTest.OverlappingCenterLines<double> (Failed)
	 42 - CapsuleCapsuleSegmentTest.NominalSeparatedCase<float> (Failed)
	233 - FCL_GJK_EPA.ComputeVisiblePatchColinearNewVertex (Failed)
Errors while running CTest

all tests are passing fine on macOS.

No problem if you not interesting in having this in the CI as actually you are interested in mac with dependencies provided by brew, not dependencies provided by another package manager.

Copy link
Contributor Author

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

In this case, the failing dependencies aren't coming through brew, they're coming from the CI pre-building a specific version of octomap.

However, I'm incredibly mac ignorant and would welcome any help you might be able to offer. :)

Reviewable status: 0 of 4 files reviewed, all discussions resolved

@traversaro
Copy link
Contributor

In this case, the failing dependencies aren't coming through brew, they're coming from the CI pre-building a specific version of octomap.

I think octomap was built from source as back in february 2018 homebrew science (that contained octomap) was deprecated, and octomap was not migrated to core, see #262 . However, in March 2018 octomap was added back in homebrew (see Homebrew/homebrew-core#24528) and it is still available there: https://formulae.brew.sh/formula/octomap . I may be missing something, but there is any reason for which we can't simply brew install octomap instead of compiling from source in https://github.com/flexible-collision-library/fcl/blob/master/ci/install_osx.sh#L8-L16 ?

@SeanCurtis-TRI
Copy link
Contributor Author

Currently, fcl is pinned to an older version of octomap.

This is generally bad because it also limits this CI workflow working on newer Linux CI as well (the pinned octomap version simply isn't ready for modern compilers).

So, generally, it would be good to modernize the octomap. I haven't looked into what that would take. I don't know how things have changed in the 9 years between the pinned version and the current version. But, evaluating that is probably the first step.

@traversaro
Copy link
Contributor

So, generally, it would be good to modernize the octomap. I haven't looked into what that would take. I don't know how things have changed in the 9 years between the pinned version and the current version. But, evaluating that is probably the first step.

I did a quick check in https://github.com/flexible-collision-library/fcl/actions/runs/13901821176/job/38895257356, and it seems that compilation wise everything works fine, while for testing 4 tests are failing:

99% tests passed, 4 tests failed out of 277

Total Test time (real) =  55.34 sec

The following tests FAILED:
	 41 - CapsuleCapsuleSegmentTest.OverlappingCenterLines<double> (Failed)
	 42 - CapsuleCapsuleSegmentTest.NominalSeparatedCase<float> (Failed)
Errors while running CTest
	 90 - FCL_GEOMETRIC_SHAPES.shapeDistance_conecylinder (Failed)
	233 - FCL_GJK_EPA.ComputeVisiblePatchColinearNewVertex (Failed)

however, at the first glance the failures are not octomap related.

Copy link
Contributor Author

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

That's good to know. Can you do me a favor and push to this PR the change to modernize octomap and I can look at the tests.

Reviewable status: 0 of 4 files reviewed, all discussions resolved

Copy link
Contributor Author

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

The test failures are somewhat surprising; they shouldn't have anything to do with octomap....hmmm....

Reviewable status: 0 of 4 files reviewed, all discussions resolved

@traversaro
Copy link
Contributor

Can you do me a favor and push to this PR the change to modernize octomap and I can look at the tests.

I am probably missing something, but what do you mean with "push to this PR"? I can't push on your fork.

Copy link
Contributor Author

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

You can. :) You have several options:

  1. Use the github API to edit the branch directly (tedious for all but the simplest of changes).
  2. Check out my actual branch, add a commit, and push it back to my repo.
  3. Alternatively, if you share with me your branch, I'll just cherry pick the changes necessary to reproduce the problem.

I'm good with any of the above.

Reviewable status: 0 of 4 files reviewed, all discussions resolved

@traversaro
Copy link
Contributor

You can. :)

Sorry, I feel really I am missing something.

traversaro@IITBMP014LW012:~$ git clone https://github.com/flexible-collision-library/fcl/
Cloning into 'fcl'...
remote: Enumerating objects: 11795, done.
remote: Counting objects: 100% (88/88), done.
remote: Compressing objects: 100% (61/61), done.
remote: Total 11795 (delta 49), reused 27 (delta 27), pack-reused 11707 (from 4)
Receiving objects: 100% (11795/11795), 11.18 MiB | 1.10 MiB/s, done.
Resolving deltas: 100% (8272/8272), done.
traversaro@IITBMP014LW012:~$ cd fcl/
traversaro@IITBMP014LW012:~/fcl$ git remote add forktraversaro https://github.com/traversaro/fcl/
traversaro@IITBMP014LW012:~/fcl$ git fetch forktraversaro
[..]
traversaro@IITBMP014LW012:~/fcl$ git checkout updateoctomapandci
branch 'updateoctomapandci' set up to track 'forktraversaro/updateoctomapandci'.
Switched to a new branch 'updateoctomapandci'
traversaro@IITBMP014LW012:~/fcl$ git rebase -i HEAD~3
Successfully rebased and updated refs/heads/updateoctomapandci.
traversaro@IITBMP014LW012:~/fcl$ git push -f forktraversaro updateoctomapandci
Enumerating objects: 25, done.
Counting objects: 100% (25/25), done.
Delta compression using up to 20 threads
Compressing objects: 100% (11/11), done.
Writing objects: 100% (13/13), 1.03 KiB | 1.03 MiB/s, done.
Total 13 (delta 8), reused 5 (delta 1), pack-reused 0
remote: Resolving deltas: 100% (8/8), completed with 8 local objects.
To https://github.com/traversaro/fcl/
 + 4569e51...ed65720 updateoctomapandci -> updateoctomapandci (forced update)

traversaro@IITBMP014LW012:~/fcl$ git remote add forkcurtis https://github.com/SeanCurtis-TRI/fcl/
traversaro@IITBMP014LW012:~/fcl$ git fetch forkcurtis
remote: Enumerating objects: 127, done.
remote: Counting objects: 100% (95/95), done.
remote: Total 127 (delta 95), reused 95 (delta 95), pack-reused 32 (from 2)
Receiving objects: 100% (127/127), 35.27 KiB | 1.36 MiB/s, done.
Resolving deltas: 100% (95/95), completed with 41 local objects.
From https://github.com/SeanCurtis-TRI/fcl
 * [new branch]      PR_gjk_epa_regression7          -> forkcurtis/PR_gjk_epa_regression7
 * [new branch]      PR_incomplete_collision_results -> forkcurtis/PR_incomplete_collision_results
 * [new branch]      PR_update_mac_ci                -> forkcurtis/PR_update_mac_ci
 * [new branch]      WIP_primitive_signed_distance   -> forkcurtis/WIP_primitive_signed_distance
 * [new branch]      WIP_various_epa_tweaks          -> forkcurtis/WIP_various_epa_tweaks
 * [new branch]      box_shape_precision_test        -> forkcurtis/box_shape_precision_test
 * [new branch]      master                          -> forkcurtis/master
 * [new branch]      printing_ccdGJK                 -> forkcurtis/printing_ccdGJK
 * [new branch]      reconcile_contact_pos           -> forkcurtis/reconcile_contact_pos
traversaro@IITBMP014LW012:~/fcl$ git checkout forkcurtis/PR_update_mac_ci
HEAD is now at b8e1e60 Try setting Cmake's INSTALL_NAME_DIR
traversaro@IITBMP014LW012:~/fcl$ git checkout --track forkcurtis/PR_update_mac_ci
branch 'PR_update_mac_ci' set up to track 'forkcurtis/PR_update_mac_ci'.
Switched to a new branch 'PR_update_mac_ci'
traversaro@IITBMP014LW012:~/fcl$ git cherry-pick ed657205c7e3d2dac1dfd7fa6aa35c1eb16a5ded
[PR_update_mac_ci 428bfe9] Switch CI to use octomap from package managers
 Author: Silvio Traversaro <[email protected]>
 Date: Mon Mar 17 15:12:22 2025 +0100
 3 files changed, 3 insertions(+), 21 deletions(-)
traversaro@IITBMP014LW012:~/fcl$ git push forkcurtis PR_update_mac_ci
remote: Permission to SeanCurtis-TRI/fcl.git denied to traversaro.
fatal: unable to access 'https://github.com/SeanCurtis-TRI/fcl/': The requested URL returned error: 403

pushing to you repo give me 403, as I expected.

Alternatively, if you share with me your branch, I'll just cherry pick the changes necessary to reproduce the problem.

The branch is the one used in #636, the specific commit ed65720 .

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