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

Moves all extension package details to pyproject.toml #1893

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

reeceomahoney
Copy link

@reeceomahoney reeceomahoney commented Feb 17, 2025

Description

This pull request improves the build system for the different Isaaclab packages. Instead of the information for each package being spread across the setup.py, pyproject.toml, and extension.toml files, it is now all consolidated in a single pyproject.toml file for each package. This should make things easier to understand and maintain.

Fixes #1836

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

Screenshots

Checklist

  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@Mayankm96
Copy link
Contributor

Thanks for the MR! I do agree we need to unify these, and this MR is a great step towards that.

Though I'm not sure if pyproject.toml works fine when you install in editable mode unless we upgrade the setuptools to a version greater than 62.0 and pip version > 21.3.

Right now the default pip version shipped with IsaacSim is 21.2 so unless you're using a virtual environment, this change will break things. Though as an intermediate fix, it is possible to have a dummy setup.py file with minimal settings as we did in another project: https://github.com/leggedrobotics/rsl_rl/blob/main/setup.py

Additionally, we do need an extension.toml file for Omniverse extensions: https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/extensions_advanced.html#extension-in-a-single-folder

So if we can move the details of pyproject.toml to that file, it does allow to use these modules as extension libraries too.

@Mayankm96 Mayankm96 changed the title improve build system Moves all extension package details to pyproject.toml Feb 18, 2025
@reeceomahoney
Copy link
Author

Thanks for the quick response! A couple of questions here.

Firstly, the current install instructions for IsaacLab, asks the user to create a virtual env and upgrade pip maybe these aren't unreasonable requirements? Following these exactly I was able to install everything no problem.

Secondly, what purpose does having the extension.toml file serve? I read the link you sent and it wasn't too clear. I can run the example training scripts perfectly fine with this change implemented locally so no extension file.

Would be interested to hear your thoughts.

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