Skip to content

Add gtsam-points - #33149

Merged
traversaro merged 14 commits into
conda-forge:mainfrom
diegoferigo:diegoferigo/gtsam-points
Apr 30, 2026
Merged

Add gtsam-points#33149
traversaro merged 14 commits into
conda-forge:mainfrom
diegoferigo:diegoferigo/gtsam-points

Conversation

@diegoferigo

@diegoferigo diegoferigo commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

This PR adds https://github.com/koide3/gtsam_points, a collection of GTSAM factors and optimizers for point cloud SLAM.

It is needed by the following package, and I iterated directly in that PR before moving it here:

Considering this is a complex recipe with cuda support, I thought it was better to get a review and run CI separately.


Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/gtsam-points/recipe.yaml) and found it was in an excellent condition.

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I failed to even lint the recipe, probably because of a conda-smithy bug 😢. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory. You can also examine the workflow logs for more detail.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/25052840041. Examine the logs at this URL for more detail.

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/gtsam-points/recipe.yaml) and found it was in an excellent condition.

@diegoferigo

Copy link
Copy Markdown
Contributor Author

GPU tests are failing in the docker image used to build the recipe, I'm not sure how to fix this. I will disable tests on CUDA build since the feedstock will not have GPU runners in any case.

 │ │ [==========] Running 1 test from 1 test suite.
 │ │ [----------] Global test environment set-up.
 │ │ [----------] 1 test from MatchingCostFactorsTestBase
 │ │ [ RUN      ] MatchingCostFactorsTestBase.LoadCheck
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: cudaErrorInsufficientDriver
 │ │        : CUDA driver version is insufficient for CUDA runtime version
 │ │ warning: frame doesn't have points on GPU
 │ │ error: GPU points/covs not allocated!!

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I failed to even lint the recipe, probably because of a conda-smithy bug 😢. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint --conda-forge . from the recipe directory. You can also examine the workflow logs for more detail.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/25059061746. Examine the logs at this URL for more detail.

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/gtsam-points/recipe.yaml) and found it was in an excellent condition.

@diegoferigo

Copy link
Copy Markdown
Contributor Author

@koide3 I'm packaging gtsam-points and glim for both linux-64 and linux-aarch64. Do you want to co-maintain these conda-forge recipes? If you don't know the ecosystem, it's a great way to distribute C++ binaries that is getting popular lately in robotics (see this recent blog post). And with CUDA13 support, the cuda builds can also run on Jetsons OOTB.

@diegoferigo
diegoferigo marked this pull request as ready for review April 28, 2026 15:22
@diegoferigo

Copy link
Copy Markdown
Contributor Author

@conda-forge/help-c-cpp, ready for review!

Comment thread recipes/gtsam-points/recipe.yaml Outdated

@traversaro traversaro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Minimal comment

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a conda-forge staged recipe for gtsam-points (GTSAM point-cloud SLAM factors/optimizers), including CUDA-optional builds and an unvendoring patch to rely on the packaged nanoflann.

Changes:

  • Introduces a new recipes/gtsam-points/recipe.yaml with split outputs (gtsam-points and gtsam-points-devel) and optional CUDA support.
  • Adds 001-unvendor-nanoflann.patch to remove vendored nanoflann usage and switch to find_package(nanoflann) / find_dependency(nanoflann).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
recipes/gtsam-points/recipe.yaml New recipe defining build/test steps, dependencies, and split outputs (including CUDA-conditional pieces).
recipes/gtsam-points/001-unvendor-nanoflann.patch Patch to unvendor nanoflann and update KD-tree implementation and CMake dependency wiring.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread recipes/gtsam-points/recipe.yaml
Comment thread recipes/gtsam-points/recipe.yaml
Comment thread recipes/gtsam-points/001-unvendor-nanoflann.patch
Comment thread recipes/gtsam-points/001-unvendor-nanoflann.patch
@traversaro
traversaro force-pushed the diegoferigo/gtsam-points branch from db50343 to 7f1af2e Compare April 30, 2026 18:04
@traversaro
traversaro merged commit f7aba6f into conda-forge:main Apr 30, 2026
9 checks passed
@diegoferigo
diegoferigo deleted the diegoferigo/gtsam-points branch May 1, 2026 08:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants