Skip to content

Build recipe for the projectΒ #169

Open

Description

@drprojects

βœ… Code of conduct checklist

  • 🌱 I am using the latest version of the code.
  • πŸ“™ I thoroughly went through the README, but could not find the feature I need there.
  • πŸ“˜ I thoroughly went through the tutorial slides, notebook, and video, but could not find the feature I need there.
  • πŸ“— I thoroughly went through the documentation, but could not find the feature I need there.
  • πŸ“œ I went through the docstrings and comments in the source code parts relevant to my problem, but could not find the feature I need there.
  • πŸ‘©β€πŸ”§ I searched for similar issues, but could not find the feature I need there.
  • ⭐ Since I am showing interest in the project, I took the time to give the repo a ⭐ to show support. Please do, it means a lot to us !

πŸš€ The feature, motivation and pitch

Installing the project with a simple pip install command would be ideal. Besides, having such build recipe would allow proper automatic CI and CD, which are currently lacking. Ideally, we would have a single pyproject.toml file to cover our needs, combined with a setup.py if using setuptools.

πŸ”€ Alternatives

For now, the reliance on the install.sh script works, but is not ideal. In particular:

  • FRNN is not pip-installable and requires the execution of a shell script to compile. If this is too much of an issue, we should move away from FRNN in favor of other radius-NN tools, even if at the expense of a little bit of performance. This would however require a bit of benchmarking
  • pgeof fails to install properly in a conda environment without an explicit call to a conda-install command (see Install script makes seemingly incorrect assumptions about PGEOF's environmentΒ #102)
  • parallel_cut_pursuit and grid_graph require the execution of a python script for compilation

Any attempt to improve the project's installation would need to address these 3 points.

πŸ“š Additional context

No response

Activity

  1. drprojects commented on Nov 8, 2024

    @drprojects
    OwnerAuthor

    @rjanvier I saw your post sk-build-core issue tracker still did not get any reply. Have you maybe found a workaround for installing pgeof from inside a conda env ? I am starting to look into options for doing proper testing and automated building for superpoint transformer. From my current understanding, the fact that installing pgeof in an environment requires a conda-install call is preventing any pip-only build recipe for the superpoint transformer, correct ?

    The second limitation I see is the fact that several dependencies currently need to be compiled with shell or python scripts. Not entirely sure how to work around this with a pyproject.toml approach.

    Any suggestions would be welcome !

  2. gvoysey commented on Nov 11, 2024

    @gvoysey

    I install all of superpoint transformer with pip; we don't use anaconda at all.

  3. drprojects commented on Nov 11, 2024

    @drprojects
    OwnerAuthor

    @gvoysey thanks for your reply !

    How do you proceed for FRNN installation ? Did you move away from this dependency ? How about the cut-pursuit and grid-graph dependencies ? Did you manage to port the script parts of Γ¬nstall.shinto asetup.py` managed by setuptools ?

  4. gvoysey commented on Nov 12, 2024

    @gvoysey

    we vendored and packaged all the dependencies -- frnn, prefix-sum, grid-graph, pycut-pursuit, and pgeof are all pip installable.

    Installation is managed from a pyproject.toml, per PEP 517/518. I don't see any utility in new/fancy build backends, so we're using setuptools.

  5. drprojects commented on Nov 12, 2024

    @drprojects
    OwnerAuthor

    Would be quite interested in how you packaged all the dependencies these, in particular FRNN and prefix-sum (all the other dependencies are no on PyPi thanks to @rjanvier). I am fairly new to python project packaging, would you mind sharing how you configured this ?

  6. gvoysey commented on Nov 12, 2024

    @gvoysey

    I'll see what i can do to get you a PR for the dependencies, as well as spt itself. it'll save my fork some churn if i do the helping, heh. πŸ˜‡

  7. drprojects commented on Nov 12, 2024

    @drprojects
    OwnerAuthor

    Don't worry about making a super clean PR ! Basically if you share your recipe for compiling FRNN with setuptools, ruled from a pyproject.toml / setup.py / requirements.txt, that would be awesome. Unless essential for the packaging, I do not need to know how you reorganized src/ to be honest. Then I can capitalize on this πŸ˜‰

  8. gvoysey commented on Nov 12, 2024

    @gvoysey

    It is essential for the packaging, sadly. I'm happy to do it on the grounds that it improves my ability to stay in step with your upstream remote, which is significant for our team.

    i'd like to include some convenience tooling for autoformatting (your template correctly uses pre-commit but i don't think you've run it) and a stab at CI/CD with nox -- probably as two additional PRs.

    happy to talk offline about a strategy for this, if you like.

  9. SjoerdAlliander commented on Aug 29, 2025

    @SjoerdAlliander

    Hi! adding to this, I would be quite interested in the .toml as well. This would help adding the project as a packaged dependency to my project.

  10. drprojects commented on Sep 1, 2025

    @drprojects
    OwnerAuthor

    Hi @SjoerdAlliander this is still on our radar, @rjanvier has worked a possible formulation, but I have not fully tested it yet. FYI we may be able to install from source code with something like pip install . but it is unlikely that we will be able to distribute he project as a precompiled wheel because of other dependencies such as torch-geometric and FRNN.

  11. SjoerdAlliander commented on Sep 1, 2025

    @SjoerdAlliander

    Thanks for the reply!

    And what about gvoysey's option to create a pyproject.toml and maybe linking/building specific dependencies in there? Then at least the git repo can be pulled locally and used as a dependency as poetry recognizes the .toml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions