-
Notifications
You must be signed in to change notification settings - Fork 61
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
remove need for supportData
folder in BSK wheels
#814
Comments
Howdy @dpad , I have been able to expand the CI test actions to now cover a range of python and Linux versions, as well as Window with opNav, and macOS with opNav and one action on macOS without vizInterface. The macOS with opNav script also test builds the documentation. My next step is to try to remove the need to have the |
@schaubh Sorry about the delayed response, I am currently traveling. I think there's no issue in upgrading conan to 2.0, as you say I had it working on the other branch. I think there was only some minor issues in versions and options for the dependencies that we specify in the conanfile, but I just had to pin those to an appropriate working version. Regarding Regarding wheel size, one thing I noticed is that there's a lot of duplication in the compiled module files (I think because of the way we essentially copy-paste the messaging library code instead of linking to a shared library, for example see the auto-generated |
Thanks for the info. I'll looking into the |
@dpad , my test branch I test this by:
Note, for the scenario scripts to find this @dpad and @sassy-asjp , thanks for your thoughts on this solution. I know moving this data folder will break scripts, but I plan to write up this issue in "known issues" document with clear guidance on how to correct this. Having wheels now by 69Mb is a huge benefit I think for the distribution of Basilisk? |
Mm, looking at this now, I wonder if I made this harder than it should be. I could leave |
Probably the solution is what @GorgiAstro suggested on #728 (comment) to have a new optional dependency repo and package just for the data. The user could then do something like |
Howdy @sassy-asjp , I'll look into the functionality of If someone pulls the full repo they naturally get code and data folder as before. I need to find time to learn more about |
Either way, I'm glad to see a BSK week at "only" 69Mb. Hopefully we can continue to thin this over time to make it leaner ;-) |
So what Orekit did was to have people who wanted the data manually install it from a link to the repo instead of a wheel. Since it's just data, there is no building and installing from the link to the repo is fast. I think the script could be nice as well though. |
Yeah, I'm leaning toward a direct link as well. The only wrinkle is the large Spice file that is downloaded with cmake. With a python script I can download the I'm also working on ideas to provide backwards compatibility for users for a year by creating a symbolic link from |
Came up with a good solution I think that doesn't create any issues with current software scripts. The wheel is created without any of the large This makes the BSK pip install much leaner. If the wheel has to be installed without internet, the instructions also talk about how to install these large *.bsp filed in the local python environment package installation. This solution seems to give us the more reasonable wheel sizes and an easy way to package up and download the larger BSK data files. |
Describe your use case
Right now building a wheel includes the large Spice files in
supportData
folder. These are really only needed when running some scenario scripts. Instead, I propose that this folder be moved to inside the examples folder. This should reduce greatly the BSK wheel size, making it easier to host on PyPi among other things.If users want to run the examples scripts and download this folder, they would get the required files except for the large Spice files. These would have to be manually downloaded if the user is not building BSK using cmake which would download them. I think this is manageable with good documentation and warning messages if the file is not found and can't be loaded.
Describe alternatives solutions you've considered
I can't think of any alternatives right now, open to ideas.
Additional context
The support data is not explicitly required by any module to compile. What data to load can be set by the user and we are providing handy defaults options. I'll have to play with a test branch to see what unexpected challenges arise from this approach.
The text was updated successfully, but these errors were encountered: