ARMmbed / ARMmbed/mbed-flasher
Major versions of python dependencies should be pinned
- Dominant language
- Python
- Stars
- 9
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
Note: This is just a template, so feel free to use/remove the unnecessary things
### Description
- Type: Enhancement
- Related Issue: https://github.com/ARMmbed/mbed-os/pull/9389, https://github.com/ARMmbed/icetea/issues/69
---------------------------------------------------------------
## Enhancement
**Reason to enhance/problem with existing solution**
We're trying to make our python tools a little more consistent when they are installed when using Mbed OS. We've been bitten a lot recently by python packages not pinning major versions and then having the APIs change once a new major version is released.
**Suggested enhancement**
Please pin the major versions of packages that have APIs > 1.0.
For unstable packages (0.x.x), please pin the minor number. `pyocd` in particular is going through many API changes right now, so the version needs to be pinned to the minor version or the dependency could be made optional (this is done in [`mbed-os-tools`](https://github.com/ARMmbed/mbed-os-tools/blob/master/setup.py#L60-L62), let me know if you need any assistance with this).
**Pros**
Reproducible installs
**Cons**
You need to really be aware of when you need to update dependency versions. This probably a pro, but it does take a little more maintenance effort.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the Python dependency declarations in the mbed-flasher repository and review the related mbed-os pull request and icetea issue for context. Done means dependencies with stable APIs are pinned to major versions, unstable 0.x packages to minor versions or made optional, and installs are reproducible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100