-
Notifications
You must be signed in to change notification settings - Fork 537
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
Access sharingLinkToRedeem from IOdspResolvedUrl.shareLinkInfo #8268
Comments
Reopening this issue. The changes have been reverted in 0.52 release and main. The property can be replaced only when host/apps are using loader version >= 0.50. |
@sdeshpande3 could you share the comments here around the conversations you had with @agarwal-navin. I'm not sure how the comment above relates to the compatibility matrix: https://github.com/microsoft/FluidFramework/wiki/Compatibility-and-Versioning |
@agarwal-navin could you please help us clarify this item. I see |
@sdeshpande3 Can you please add some description to this issue. It's not clear what this issue is trying to do. @ssimic2 I believe you are right - we need to only maintain the compat of |
@agarwal-navin are you referring to the use cases where host (for example office web host) is passing resolver & documentServiceFactory to the Loader constructor, instead of a driver type? Or these are some references to custom loaders FFX created? On the runtime side I see Bohemia is using @sdeshpande3 can you please update the description. |
The PR for this issue was reverted back when we came across this bug: https://teams.microsoft.com/l/message/19:53328301da384b33bcc81111124e3ab4@thread.skype/1637275433228?tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&groupId=422665a0-7ad3-4d0d-9171-e8881d0397d9&parentMessageId=1637275433228&teamName=FFX%20(Fluid%20Framework%20and%20Experiences)&channelName=Bugs%20%F0%9F%90%9B&createdTime=1637275433228 While chatting with @jatgarg , it seemed a back compat issue where the resolver was packaged with loader and had version where the share link was only set in outer object (odspResolvedUrl.shareLinkToRedeem). But the driver had version which was relying on the inner object (odspResolvedUrl.sharelinkInfo.shareLinkToRedeem) to be set and hence it was causing the issue. |
URI resolver belongs to host layer (i.e. host packages however they want URI resolvers). We promise that (ODSP) Driver factor can ship dynamically. I.e. driver interface (exposed to loader & runtime) and interop between resolved URI and driver factory crosses compat line - we need to ensure that newer versions of driver work fine with IResolveUrl and driver-specific extensions of it. I think (but worth double checking) that URI resolver and resolve URI are not available to runtime. |
Thanks @vladsud. If I understood this properly, the host could have used odsp-urlResolver that was referring to some older odsp driver's OdspDriverUrlResolver. While at the same time using OdspDocumentService factory from a new odsp driver's package? I'm assuming driver factory simply means document service factory. |
The interop between resolved URL and driver layer is for |
I think it is actually the back-compat between older and newer odsp resolver. Maybe we can just fix it when creating the driver instance from factory and assign to the newer field if only present in the older field within the resolved url. |
The issue here seems that @agarwal-navin @jatgarg what are the compatibility guidelines here? any old resolver needs to work with new driver (forever sort of compatibility) or min version as is the current case with loader/runtime? I would be curious what sort of use cases drove this separation, but its whole another topic. Also do we test against this sort of compatibility regressions? |
There is no different in IResolvedUrl vs IOdspResolvedUrl when talking about ODSP layer. These constructs exist only at compile time. The resulting object satisfies both interfaces. Resolved URI maybe coming from older code and used by newer driver factory (and thus driver instance). That's the only versioning concern I'm aware relates to it. @ssimic2, I'd not look at internal APIs if driver like fetchSnapshot (unless you do trace up the stack to public / exported API).
Everything that exists in ods-driver-definitions package represents APIs that directly or indirectly are on the fault line between driver factory and the rest of the eco-system. These things need to change very carefully, with back-compat in mind (API shape and corresponding implementation on both sides of fault line). IOdspResolvedUrl is in this package for that reason. |
Thanks @vladsud. And yes, And I see what you are saying about We should be able to learn from these sort of tickets, so I may bug you on the bigger picture around this model, and use-cases there. The immediate questions are on existing compatibility/versioning guidelines:
|
We support what we test. I believe LTS=0.47 (if not, probably time to bump to it) pre 1.0 does not matter here that much, we support already production scenarios! |
Thanks @vladsud. Since host (like OWH) can import resolvers (via odsp drivers packages in the case of OWH) separately from loaders, I'm guessing you are assuming whenever they bump loader dependency, they would also bump dependencies for all other fluid packages (including driver package). Therefore reference to loader/driver compatibility, although this is really compat. between older resolver (that came in through older driver's package) and newer driver. In regards to LTS, here is some usage data on the older loaders (in the last 60 days): Notes: Fluid Preview App data seem to have come in the last few days. I did not see it in the earlier queries. Demo Host should be our tests, coming from LTS being ^0.45.0 |
No description provided.
The text was updated successfully, but these errors were encountered: