-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
the linkeddata gem has given us periodic dependency tree challenges. Eg #374 (comment). Could/should the way we are using it be changed?
-
linkeddatagem is expressed as a development-only dependency, not a full runtime dependency.questioning_authority/qa.gemspec
Line 33 in 5683824
s.add_development_dependency 'linkeddata' - Normally this would mean the gem is not used by actual production code, but is only used in, say, CI. But I don't think this is actually true of
linkeddata. - Is it done this way intending it to be a kind of "optional dependency"? That a local app will have to add themselves iff they are using certain features? If so this should be documented and specified, and consideration given for:
- Additional code to require the "optional" dependency explicitly such that you get a better error message if trying to use the features that require it, including version requirements. eg https://bibwild.wordpress.com/2015/09/09/optional-gem-dependencies/
- OR extract the adapters that do use linkeddata into their own separate gem, with an explicit
linkeddata(or other, see below) dependency?
- Normally this would mean the gem is not used by actual production code, but is only used in, say, CI. But I don't think this is actually true of
-
linkeddatais mean to be an aggregate gem. Can we instead require/depend on just hte parts we actually use?- linkeddata maintainer writes:
The linkeddata gem is specifically intended to be a meta-release that requires all the various gems in the eco-system. This undoubtedly includes many not necessary for every application. Consider requiring the specific gems you need directly, which will also significantly reduce your image size, if that's important.
- I would say it's not just an issue of image size, it's an issue of reducing transitive dependencies to reduce possible dependency conflicts (as happened above with a confict involving yaml-ld, a dependency of
linkeddatawhose functions we aren't even using). - This would reuqire figuring out what individual specific gems we are actually using here, and how. This may be knowledge currently not in our institutional knowledge.
- linkeddata maintainer writes:
Metadata
Metadata
Assignees
Labels
No labels