Handle versions of CircuitPython without current bundles
- Dominant language
- Python
- Stars
- 172
- Forks
- 41
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 1
Description
Currently, circup only handles the versions of CircuitPython that are listed in https://github.com/adafruit/circup/blob/f0d51771e2e5d04460795ad27ab15745b3bc1fb9/circup/__init__.py#L58.
Proposal: handle all versions.
- Remove version check.
- Attempt to find the latest bundle for the detected version.
- If no bundle can be found, download a "latest" version that is kept on AWS S3. These bundles will be a copy of the "last available" bundle for a version of CircuitPython, listed here: https://learn.adafruit.com/welcome-to-circuitpython/frequently-asked-questions#faq-3105289. But the AWS S3 copy should be renamed so it does not include the timestamp. This will allow it to be updated without having to update circup.
- If no "latest" bundle can be found for a deprecated version, then fail with an informative message.
These changes will make it unnecessary to update circup when we add a new major version of CircuitPython or deprecate an old one.
Contributor guide
Research direction
Start in circup/__init__.py around the listed CircuitPython version check, then trace how circup locates bundles for a detected version. Review the linked CircuitPython FAQ and AWS S3 bundle locations. Done means supported versions are not hard-coded, fallback bundles work for unavailable versions, and deprecated versions produce an informative failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, python
- Domain
- cli, cloud
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100