-
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
Reduce the BSK wheel size #859
base: develop
Are you sure you want to change the base?
Conversation
This cuts down drastically on the wheel size.
This script can be called after doing a pip install of Basilisk to pull the large *.bsp Spice files and install them into the Basilisk package `supportData` sub-folder
This avoids packaging the examples into the wheel. The user can elegantly pull the latest copy of the examples folder.
Discuss that the wheel does not contain large BSK data files, and how they can be installed with a new command from the terminal window. Explain how the examples folder can be downloaded with bskExamples terminal command.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two questions about the changes:
- Does
bskExamples
automatically runbskLargeFiles
? If not, that seems like it should be the default behavior. - Do we know if people are often using the
bsp
files in their own projects? If the are and they install BSK from a wheel, will it be clear that they should runbskLargeFiles
to get the files they are expecting? The behavior I would expect to see is if people try to load one of the now-removed files is a clear message that says "RunbskLargeFiles
to download these files" or even better a prompt like "Do you want to download the bop support files? [y/n]".
Thanks for the feedback. No, If the files are not present then we just get a standard Spice error message about not being able to load the expected file. I can look and see if we can insert another message suggesting to run |
The documentation is certainly good to have, but my philosophy is that is we can anticipate the issues the user may have, we should address it in the code. I think giving an additional message in the SPICE error would be helpful. |
Description
When building a BSK wheel, the resulting file size is very large, over 200Mb. This is due to BSK including some data files into the resulting python package.
With the build process we already chose to download the large
de430.bsp
file from the JPL web link directly to reduce the GitHub repo size and bandwidth usage. This functionality is now expanded to all*.bsp
files insidesupportData/EphemerisData/*.bsp
files.Next, un-used data files have been removed. These files took up 10's of Mb.
Then, the wheel build process is updated to not include the
supportData/EphemerisData/*.bsp
files into the BSK package. This brings the wheel size to about 60-70 Mb depending on what build options were used (opNav, etc.).Finally, to allow the user who installs BSK from a wheel to run existing BSK scripts, two new command line tools are included in the wheel. The first command
bskLargeData
pulls the missing*.bsp
files and puts them into the locally installed BSK package. This allows existing BSK scripts to run without modification and retains the convenient nature of our BSK python package that includes basic data files. The user always has the option, of course, to connect custom data files to the BSK modules.Next, the command
bskExamples
is included. When installing via a pip wheel none of the example tutorial scripts from the repo folder are available. The user could manually download these from GitHub. The commandbskExamples
pulls all the files inside the BSK rootexamples
folder and installs them in the local directory of the user. This way a new user will be able to get up and running with BSK and tutorial scripts using only a few simple commands.Verification
Did a lot of test builds to ensure the expected behaviors were achieved. The CI test that builds a wheel was updated to use
bskLargeData
so all the associated tests still pass.Documentation
The
pip install
documentation is updated to talk about what is included in the BSK wheel, and how thebskLargeData
andbskExamples
commands can be used to install large data files and pull the examples folder.Future work
None for now, but I'm sure this will be tweaked and updated over time.