-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
can ldpath depend on less than the full linkeddata gem? #19
Comments
If I try removing linkeddata and adding
The error message around unknown format application/n-triples made me think maybe I needed a gem for n-triples support... but the linkeddata README says "Includes N-Triples and N-Quads support using RDF.rb," that is the And then, um, it's telling us to use linkeddata again to resolve. This ecosystem is really confusing, it may be that practically there's no way to avoid bringing in the whole linkeddata omnibus metadistribution, it's too hard to tease out what pieces you need? Not sure. |
OK, I think that By process of elimination, I have determined that tests can pass if you remove I think it's possible I'm also not totally sure that just because tests pass, it means everything actually works with only those dependencies, or that it's safe to do that swap of dependencies -- I totally don't understand how this gem is actually used by whom in what ways etc. Do you have any thoughts @no-reply ? |
you probably just need an explicit |
Thanks @no-reply ! I can keep hacking away to get tests to pass with as few dependencies as possible... but I'm not sure that will result in a PR that's wise to actually merge, I don't know how good test coverage is, or if there are going to be lots of downstream uses counting on this gem to supply a dependency that the downstream user is using. I won't bother doing the work if it's going to result in a PR that's too dangeorus to actually merge, any thoughts? I don't really understand what's going on at all, anyone want to encourage or discourage me from preparing a PR that has tests passing with much reduced dependencies? |
(Yep, just dependencies |
i think |
it seems pretty safe to me. removing |
It's not exactly causing problems, it's just bringing in a LOT of dependencies that you suggested might be unused/unnecessary. Which add to install time and size, and can cause dependency tree conflicts that are unfortunate if they are unnecessary. I don't totally understand how all these dependencies relate myself. But okay, with that encouragement, I'll try preparing a PR to this ldpath to eliminate the omnibus |
Nothing you’re using would seem to actually use nokogiri. Without the linkeddata gem, you need to require each of the readers you actually depend on, such as rdf/ntriples and rdf/turtle. |
The linkeddata gem is "A metadistribution of RDF.rb including all parsing/serialization plugins."
When ldpath depends on the entire linkeddata gem, it means that ALL parsing/serialization plugins and other parts of the RDF.rb ecosystem are pulled into any app that uses
ldpath
, even ifldpath
doesn't use them all, or the app doesn't use them all.This increases install time and size of any app that uses
ldpath
. It also potentially introduces dependency unnecessary requirement conflicts -- maybe I want to use a version of some gem that conflicts with the dependency tree ofldpath
, even thoughldpath
isn't actually using that functionality that causes the conflict.This came up when noticing that linkeddata was restricting nokogumbo to 1.x when a 2.0 was released. And my own app wound up with that restriction via
qa
=>ldpath
=>linkeddata
.But if qa and my app aren't actually even using nokogumbo at all... it's unfortunately that this even became an issue, or that my app needs to spend time and space installing nokogumbo.
@no-reply mentioned that gems depending on
linkeddata
should perhaps be instead depending on the particular component parts they actually need instead, to not force downstream apps to install all oflinkeddata
. (At first I thought it wasqa
depending onlinkeddata
, but I got confused -- this stuff gets confusing -- it wasldpath
).To do that, we'd have to figure out what parts of linkeddata
ldpath
actually needs though, which is confusing to do. In my limited experimentation, it clearly needs at leastrdf
andnokogiri
, but may need more than that too, and I'm having understanding what are just incidental test infrastructure dependencies and what are actually features ofldpath
, as well as what gem supplies what functionality.The text was updated successfully, but these errors were encountered: