adafruit / adafruit/circup

Handle versions of CircuitPython without current bundles

Open
#133 1 comment 2 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.