HumanSignal / label-studio

Label Studio is a multi-type data labeling and annotation tool with standardized output format
https://labelstud.io
Apache License 2.0
18.44k stars 2.32k forks source link

Relax dependencies for `boto3`, `botocore` and `numpy` (to start with) #5000

Closed strickvl closed 10 months ago

strickvl commented 11 months ago

I help develop a Label Studio integration for a popular MLOps open-source project and we find it quite hard to work around the very rigid dependency pinning on the label-studio side.

The 3 packages listed above are key packages that are pinned to specific versions (AFAICS) and that break a standard installation of Label Studio alongside our other integrations, especially when someone is using AWS as their cloud provider of choice.

Describe the solution you'd like Loosen the dependency requirements for the benefit of the community / those who want to install Label Studio alongside other packages.

Describe alternatives you've considered For sure part of the solution is "don't install Label Studio alongside or in the same environment as other tools", but hopefully there's some wiggle room to loosen some of these dependencies. I think the three dependencies (at least / to start with) could be loosened.

Additional context N/A

jombooth commented 11 months ago

Hi @strickvl - we hear you on this! Work is in flight to switch to PDM for dependency management, and as a fast follow after that, we'll work to relax our dependencies as much as possible while making sure we don't break app functionality. So, stay tuned :)

strickvl commented 11 months ago

Thanks that's great to hear @jombooth. For my understanding / curiosity, how does switching to PDM on your end address this issue? I'm unfamiliar with PDM beyond a quick glance at their README just now. Reading between the lines, you're making the shift to PDM for other reasons but it will (hopefully) unlock you to break open the dependency shackles further down the line?

jombooth commented 11 months ago

Currently our dependencies are specified in requirements.txt, and there is no distinction between our package's requirements vs. the specific package versions that we use for our production deployments. Post PDM switch, we'll install the exact versions specified in PDM's lockfile, but relax the requirements specified in pyproject.toml (from which PDM will generate the lockfile) as much as we can.

hogepodge commented 10 months ago

The latest release of Label Studio 1.10.0 has a new dependency model which should make it easier to install across more platforms. Give it a try and let us know what you think.