Few comments:

Fully support switching to poetry as the dependency management / build
tool. The main sticking point we may run into is whether or not all of our
dependencies are pure-python libraries. I don't recall specifics but I
thought there might be at least one dependency (shapely maybe?) that
requires specific c libraries be installed; which is why conda was chosen
in the first place. It's possible this is no longer the case and the
benefits of switching to poetry IMO justify the cost of looking at this
again. Additionally, I know there has been improved support between
conda/poetry in that poetry will recognize if it is within a conda
environment and use that environment instead of creating a new virtualenv.
So if we were able to identify which specific dependencies require
installation by conda, we could limit the conda dependencies to just those
libraries but have everything else managed by poetry.

With respect to combining the packages. The intent here was to move towards
a micro-services architecture where the various algorithms were independent
deployables with data-access maintained as a shared library used by all of
them. In reality, this has not played out and it seems installations of
sdap continue to use all the algorithms all the time. So, in my mind it is
a question of what the desired architecture for sdap is. I'm still of the
belief that a microservices style architecture is more flexible and
scalable; however, it does increase the maintenance burden required to
maintain all of the services. In the end, an uber-app is easier to manage
from an installation perspective.

- Frank

On Thu, Feb 29, 2024 at 8:39 AM Stepheny Perez <skpe...@apache.org> wrote:

> Riley,
>
> I think this is a good suggestion -- we need an easier way to manage SDAP
> dependencies and transitive dependencies, especially given the license
> issues we've come across multiple times now. This would also make building
> the software locally a lot easier. I'm a big fan of poetry in particular
> and think it would suit SDAP well.
>
> I'm also supportive of combining the analysis and data-access packages
> into a single package - the current organization makes development more
> tedious without much benefit -- especially because they are packaged
> together in the Docker container anyways.
>
> Stepheny
>
>
>
> On 2024/02/28 22:07:34 Riley Kuttruff wrote:
> > We currently use conda/mamba to install dependencies for the granule
> ingester and Nexus components in both local dev environments and for
> building Docker images. This seems to have unwanted consequences as Docker
> appears to be forcing inclusion of some GPL-licensed tools and libraries
> that we don't seem to use but likely block releases under ASF policy. This
> issue was brought up in our IPMC graduation discussion as needing to be
> solved.
> >
> > I'd like to propose replacing conda with another package manager like
> poetry or simply using pip. We could also take this opportunity to combine
> the two top-level Nexus modules so that they're not
> individual-yet-interdependent modules with their own dependencies, but
> rather two submodules of a single project with a single, shared list of
> dependencies.
> >
>

Reply via email to