Add Dynamic Download of CSPICE Toolkit
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4
- Forks
- 2
- Avg merge
- 18d 23h
- Merged PRs (30d)
- 1
Description
Context
Curryer relies on the CSPICE Toolkit (which includes MKSPK and MSOPCK). Currently the SPICE toolkit is simply a required system level dependency for the library (as of #30). We want to be able to provide the SPICE toolkit during installation without having to include the prebuilt binaries in the package itself (this violates NAIF's T&Cs).
Implementation
Poetry/PyPI
Via an "experimental feature", Poetry supports installation tasks via a build.py file along with your package. This is similar to a setup.py file but it doesn't have the same scope of responsibility as setup.py, such as requirements and metadata. We can put the installation logic here. My experiments so far indicate that build.py does work, including for publishing packages, but we will probably have to continue to support changes as Poetry gets updated.
Sadly, Poetry is being pretty slow in implementing this as a stable feature. I see signs on their github issues that development is progressing but it's still not documented outside of the issues themselves.
https://github.com/python-poetry/poetry/issues/2740
https://github.com/python-poetry/poetry/issues/8460
https://github.com/python-poetry/poetry/issues/3576
https://github.com/python-poetry/poetry/issues/8460
Conda
(Relevant as of #40)
Conda allows inclusion of compiled binaries in package distributions that don't have to live in the code repo itself. Instead they are built during the creation of the distribution artifacts before uploading to Conda. We could use this. Alternatively, for conda we could simply create a dependency on the cspice conda-forge library but I'm not familiar enough with Conda to know how difficult this is to do if we are packaging for Anaconda and cspice is only available through conda-forge.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the proposed build.py installation hook and the Poetry issues linked in the report. Then compare the PyPI/Poetry and Conda packaging paths, including whether Conda can depend on the conda-forge cspice package. Done means CSPICE, including MKSPK and MSOPCK, is supplied during installation or package creation without bundling its prebuilt binaries in the repository package.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100