argilla-io / argilla

Argilla is a collaboration platform for AI engineers and domain experts that require high-quality outputs, full data ownership, and overall efficiency.
https://docs.argilla.io/en/latest/
3.63k stars 339 forks source link

[BUG-python/deployment] remove `listeners` from required dependencies `argilla[listeners]` #5096

Open davidberenstein1957 opened 1 week ago

davidberenstein1957 commented 1 week ago

Describe the bug The requirements file contain listeners as a required extra for argilla. https://github.com/argilla-io/argilla/blob/develop/argilla/pyproject.toml

Stacktrace and Code to create the bug N.A.

Expected behavior N.A.

Environment:

Additional context NA

davidberenstein1957 commented 1 week ago

@burtenshaw @frascuchon, what are your thoughts here? For me, it is weird to enforce extras of 1.x

davidberenstein1957 commented 6 days ago

relates to the listeners relying on CLI, which requires typer https://github.com/argilla-io/argilla/issues/5104

frascuchon commented 6 days ago

The argilla v1 package (the old argilla package), has several limitations on dependencies, and I would say not to change anything from the old argilla SDK.

I suggest installing the SDK without the v1 as a dependency and letting users install it as an extra dep when they want to migrate from legacy datasets.

pip install argilla[v1]
pip install argilla[migration]

Or just let them as separate packages:

import argilla_v1 as rg_v1
import argilla as rg

cc @burtenshaw @davidberenstein1957

davidberenstein1957 commented 6 days ago

@frascuchon I think pip install argilla[v1] would work as a temporary extra to avoid forcing people to install the old SDK.

burtenshaw commented 5 days ago

@frascuchon @davidberenstein1957 I agree that pip install argilla[v1] seems to solve most the problems and frees up the new SDK in the short term.

However, over the coming releases, I would also be in favour of deprecating v1 modules. Which would also reduce this problem if we deprecated their dependencies too. For example, training or listening.

frascuchon commented 5 days ago

Indeed, my original idea was to remove the .v1 module in 2.1 or 2.2 SDK version. I also included a warning notifying this. https://github.com/argilla-io/argilla/blob/develop/argilla/src/argilla/v1/__init__.py#L24

I will define this v1 as an optional dependency