-
Notifications
You must be signed in to change notification settings - Fork 4
Conversation
1 similar comment
2 similar comments
1 similar comment
When looking through this, things are looking good. I'm 👍 for merging, though its hard to answer the semver question without knowing the context of where this sits. @atz ? |
i'd like to test this with argo (and maybe dor-indexing-app), esp if we're not going to bump dor-services to v6 (i'm not really sure either way at this point whether that seems like the right thing to do to me). for instance:
argo's definitely been guilty of this in the past, and while i can't think of a specific instance off-hand where it's still happening, i'd be a bit surprised if it's not at all anymore (ditto other dor-services consumers). that's not to say that should hold us up from this upgrade -- that's definitely bad behavior on argo's part, and should get fixed. but it'd be good to be aware of things like that (and it shouldn't be too hard to grep for specific object type loads). maybe we could deploy to stage and do a bulk reindexing of it's 80k or so objects, and see what errors we come up with? after writing the above, i feel not-too-strongly like this should result in dor-services v6. though since we're currently supporting v4 and v5, that would mean either supporting 3 major versions, or dropping support for version 4. i don't think this is as big of a breaking change as v4 to v5, but that was a pretty massive overhaul, so that's not the best standard to use. in addition to @atz, does @drh-stanford have opinions? who else has dealt lots with dor-services usage? @peetucket? FWIW, i haven't actually had a chance to review the changes, just going on the PR description and jack's comment (and the count of changed files, ha). |
Note that I already have a PR that fixes Argo (at least the bits covered by tests): sul-dlss/argo#844. |
so the core issue is that consumers need to be sure of the object type they are loading and instantiate the correct object type? what if they don't know ahead of time but just have a druid? is there a generic object you can load? |
Yes, |
Ok, that's good to know. So that's a pretty easy upgrade path for someone who gets bitten. Let's put that in the release notes. |
one question I have is what are we doing about also, re: semver, would we be bumping dor-services to v6 or keeping it a minor release on 5.x for this PR? |
|
i didn't realize (until seeing it in slack this morning) that this is still compatible with the older version of ActiveFedora. since there's still backwards compatibility, and since the upgrade path seems reasonably clear and not all that burdensome, i'm 👍 on this (having what looks like a good sweep of the affected behavior in argo is a big help too). and the behavior that's not backwards compatible for consumers that upgrade ActiveFedora is a thing that should get fixed anyway, so it doesn't seem terrible that this provides pressure to make that change. i'd vote for keeping this change on the 5.x line, since there's backwards compatibility. if the consumer just needs to pin something in if it comes to that, i would also vote for trying to officially desupport v4 before we started supporting a v6. and i'd be in favor of bumping to v6 once AF6 is no longer supported by dor-services, since that does seem like a major breaking change (albiet not so much as a wholesale overhaul of what's indexed to what field names). |
The major changes in AF 7+ that affect dor-services are:
mediashelf-loggable
(which monkey-patches allObject
s with a#logger
instance) is no longer included.ActiveFedora::Base.find
is now aware of class hierarchy, so you can't callDor::Item.find
on e.g. aDor::Collection
and have it work right.#to_solr
no longer mutates its arguments.Fortunately, the changes seem to be backwards compatible with AF 6.x. I don't know whether this should indicate a new major release or not.