Kenneth Hoste writes:
[ I asked about PIP pulling down setup.py dependencies: ]
> > This package contains the required setup.py, which itself has the argument,
> >
> >        install_requires=['datacat @ 
> > git+https://github.com/slaclab/datacat.git#subdirectory=client/python',
> >                          'requests',
> >                          'tqdm'],
> >
> > I thought the |pip install| action took care of parsing this list, doing all
> > the requisite downloads internally, and leaving you with a fully functional
> > package with all of its dependencies satisfied.
> 
> We instruct pip to not auto-download-and-install missing dependencies 
> (which it does by default), because that often leads to installations 
> you can't reproduce later using the same easyconfig file.
> 
> The "pip check" is something we require in easyconfigs in our central 
> repository fairly recently, and we do so because we have learned the 
> hard way that stuff breaks if we don't ensure all required Python 
> packages are specified in the easyconfig file (see 
> https://github.com/easybuilders/easybuild-easyconfigs/issues/10462 for a 
> recent case of broken easyconfigs for exactly this reason).

Dependency hell is what one of my colleagues calls it :-)

> For https://github.com/slaclab/datacat.git, you could either use 
> git_config (thanks a lot for your work on making that supported for 
> extensions as well!), or you could just download a source tarball 
> provided by GitHub 
> (https://github.com/slaclab/datacat/archive/stable.tar.gz for example), 

Urgh?  That's done automatically?  I clearly don't know enough about GitHub.

> and use that. The 'subdirectory' part probably corresponds to the 
> 'start_dir' easyconfig parameter?

I'll look into that as an option!  What I ended up doing was ceating a
separate module for "datacat", and installing it as Python-only by copying
the needed subdirectory.  Then I could specify it as an ordinary
dependence instead of exts_list.

                                                -- Mike

Reply via email to