GoogleCloudPlatform / GoogleCloudPlatform/gsutil
Depend on `fasteners >= 0.16` to remove obselete dependency on `monotonic`
- Dominant language
- Python
- Stars
- 918
- Forks
- 335
- PR merge metrics
- No merged PRs in 30d
Description
[`gsutil` declares a dependency on the obsolete `monotonic` package](https://github.com/GoogleCloudPlatform/gsutil/blob/56975e92db3d47134fab5ba6eef1b3218b615025/gsutil.py#L102), which was a substitute for [the stdlib `time.monotonic()` function](https://docs.python.org/3/library/time.html#time.monotonic) before that was available on all platforms (from Python 3.5 onwards).
However, this is only necessary for the very old vendored copy of `fasteners` (at v0.14), which [at version 0.16 dropped this dependency](https://github.com/harlowja/fasteners/blob/efc35831d378a938ae852c94aaf233112e041669/CHANGELOG.md#016). In my environment, the `monotonic` package _is never used at all_: `gsutil` doesn't use it directly, and the version of `fasteners` I'm using doesn't use it either.
I'd therefore encourage you to drop this un-needed and obsolete dependency, either by updating the vendored copy of `fasteners`, or at least moving the dependency from `gsutil` into your vendored library so that it doesn't get pulled in from PyPI for other users. This may seem like a small thing but image size and auditing times add up surprisingly quickly!
Contributor guide
Research direction
Start with gsutil.py and the vendored fasteners copy, then compare the declared monotonic dependency with fasteners version 0.16 and its changelog. Determine whether updating the vendored library or relocating the dependency is appropriate; done means gsutil and the vendored library no longer pull monotonic unnecessarily.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100