google / google/cameratrapai

setuptools pinned to <82

Open
#62 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
567
Forks
68
Avg merge
4h 39m
Merged PRs (30d)
5

Description

The SpeciesNet package depends on the [yolov5](https://pypi.org/project/yolov5/) package (not to be confused with the [ultralytics-yolov5](https://pypi.org/project/ultralytics-yolov5) or [ultralytics](https://pypi.org/project/ultralytics) packages... that's right, those are three different packages), which depends on the [pkg-resources](https://setuptools.pypa.io/en/latest/pkg_resources.html) module, which was removed in recent versions of setuptools. For now, this is fixed by pinning setuptools<82, but putting a maximum version on a super-commonly-used package is not a great long-term solution.

This impacts the [MegaDetector package](https://pypi.org/project/megadetector/) also, which uses ultralytics-yolov5 (which has the same issue). So, the "right" solution is probably to fix it in the MD package, modify the SpeciesNet package to use the MD package (rather than using yolov5 directly), and unpin setuptools. We get a bunch of other things for free that way (like supporting other MD versions), and we only have to fix this in one place. This is not urgent, so I'll just leave this open until I fix it in the MD package.

Contributor guide

Open the contributing guide

Research direction

Review the SpeciesNet and MegaDetector packaging metadata and their yolov5-related dependency paths. Confirm the existing setuptools<82 constraint, then determine whether SpeciesNet can use MegaDetector and remove the upper pin without breaking installation. Done means the shared dependency path works with current setuptools versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.