ARMmbed / ARMmbed/mbed-flasher

Major versions of python dependencies should be pinned

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.