core icon indicating copy to clipboard operation
core copied to clipboard

Update guzzle major version from 5 to 7

Open phil-davis opened this issue 2 years ago • 12 comments

core dependabot PR #39368 has been merged. That bumps to 7.4.4 PR #40154 adds a bump to 7.4.5 on 2022-06-21

This is a major version update of the "guzzle" library. It provides a framework in PHP for doing outgoing client requests. It is used in things like federated sharing, where one oC10 server needs to send requests to another oC10 federated server. We have various acceptance tests for federated sharing, so automated CI will cover the common federated sharing scenarios.

Some oC10 apps mention guzzle in their composer files. We will need to coordinate update those in sync with core.

They are:

  • [x] files_external_dropbox - https://github.com/owncloud/files_external_dropbox/pull/116 - release issue https://github.com/owncloud/files_external_dropbox/issues/133
  • [x] files_onedrive - https://github.com/owncloud/files_onedrive/pull/125 - release issue https://github.com/owncloud/files_onedrive/issues/142
  • [x] objectstore (https://github.com/owncloud/objectstore/pull/144) - release issue https://github.com/owncloud/objectstore/issues/155
  • [x] updater https://github.com/owncloud/updater/issues/626 (this one is a "bonus" not a blocker - "updater" is not an ordinary app, so it may not need to be updated exactly in sync with oC10) -> https://github.com/owncloud/updater/pull/629
  • [x] files_external_s3 (https://github.com/owncloud/files_external_s3/pull/762) - release issue https://github.com/owncloud/files_external_s3/issues/933
  • [x] files_primary_s3 (https://github.com/owncloud/files_primary_s3/pull/498) - release issue https://github.com/owncloud/files_primary_s3/issues/577
  • [x] Calendar (https://github.com/owncloud/calendar/pull/1212) - release issue https://github.com/owncloud/calendar/issues/1259
  • [x] Market https://github.com/owncloud/market/pull/817 - release issue https://github.com/owncloud/market/issues/1037
  • [ ] Web https://github.com/owncloud/web/pull/5933
  • [x] graphapi https://github.com/owncloud/graphapi/pull/30 - release issue https://github.com/owncloud/graphapi/issues/32
  • [x] gallery (needs investigation, mentions guzzle in composer.json require-dev only) - seems to be working OK after a manual test 2022-06-25 - see https://github.com/owncloud/gallery/issues/859
  • [x] richdocuments https://github.com/owncloud/richdocuments/pull/470 - release issue https://github.com/owncloud/richdocuments/issues/472

Apps that use the client, but most likely still work:

  • [ ] files_external_ftp - no direct use of guzzle. Needs manual testing.
  • [ ] oco_selfservice
  • [ ] Onlyoffice
  • [ ] Collabora
  • [ ] Encryption (HSM)

Other things considered:

  • [x] files_external_gdrive https://github.com/owncloud/files_external_gdrive/pull/76 - this repo is not a released app, so we can ignore that

Apps to pre-release: The following apps have had their code updated so that it detects if Guzzle5 or Guzzle7 libraries are available in core, and makes the appropriate Guzzle calls. This has been done for apps that are "backend" plugins for core, that, for example, manage "core" storage of users. It is much easier to upgrade when these apps support both Guzzle5 and Guzzle7. The new version of the app can be installed while you are running core 10.9 or 10.10, and it works fine. Then you upgrade core to 10.11, and you don't have to think about how to upgrade the app "at the same time".

We can and should do QA and release new versions of these apps ASAP (well before releasing core 10.11).

  • [ ] files_primary_s3 https://github.com/owncloud/files_primary_s3/issues/577
  • [ ] objectstore https://github.com/owncloud/objectstore/issues/155

phil-davis avatar Oct 21 '21 04:10 phil-davis

I updated the list above with the affected apps and PRs to make it work. Most of the pipelines won't succeed until the core PR is merged. updater is optional and can be done later as it's not a standard OC app. Note that all these apps then need a new version which requires minimum OC 10.9 (this is not included in those PRs yet).

That should be pretty much it. But we can only know for sure if we take the step and merge this upgrade. So, do we want to proceed? @phil-davis @micbar @pmaier1 any objections?

JammingBen avatar Oct 22 '21 09:10 JammingBen

That should be pretty much it. But we can only know for sure if we take the step and merge this upgrade. So, do we want to proceed? @phil-davis @micbar @pmaier1 any objections?

No objection from me. IMO it will be good to get this stuff up-to-date.

phil-davis avatar Oct 22 '21 09:10 phil-davis

Merge after 10.9, decided in planning.

Edit: 10.10 was released, and we have merged after 10.10, for release in core 10.11

IljaN avatar Oct 25 '21 08:10 IljaN

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Apr 24 '22 01:04 github-actions[bot]

waiting on merge of #39368 to core, and then merging the various app PRs.

phil-davis avatar Apr 24 '22 04:04 phil-davis

Also see #40103 - a new patch release of v6 and v7 came out yesterday, giving this a kick along.

phil-davis avatar May 26 '22 03:05 phil-davis

Assigned myself. The main core PR #39368 has been merged.

I will follow-up the oC10 app PRs and get all CI passing for apps. And make a release/test plan with what I think needs to be done in the coming "x" weeks to manually QA various combinations of core and apps to confirm that they work with Guzzle 7.

@jnweiger FYI

phil-davis avatar Jun 17 '22 10:06 phil-davis

And make a release/test plan with what I think needs to be done

@phil-davis I've started the smoke test plan in https://github.com/owncloud/enterprise/issues/5247#issuecomment-1160077407 Please feel free to expand the Changelog testing section!

jnweiger avatar Jun 20 '22 08:06 jnweiger

2022-06-28: PHP dependencies are up-to-date in all apps. Nightly CI passes in all apps.

IMO we are at the point where we could:

  • find anything else in https://github.com/owncloud/core/pulls that can/needs to be merged and merge it.
  • make a 10.11.0-alpha.1 tarball
  • make x.x.x-alpha.1 tarballs of each app that will need releasing
  • do some manual testing to see if we can find any edge-cases that have been missed

phil-davis avatar Jun 28 '22 08:06 phil-davis

Thanks. That is a good state to start building packages.

  • I'd first do the alpha.1 for the apps, based on the list in the initial comment here.
  • Then a core alpha.1
  • For all apps (to be identified) that need updates (besides of guzzle) we probably need to do a double release, so that we can have a version that is compatible with core 10.9 / 10.10 -- e.g. we plan to release richdocuments-2.8.0 (without guzzle and min version oc 10.7) and simultaneoulsy richdocuments-2.9.0 (with guzzle and min version oc 10.11) -- hope that makes sense.

jnweiger avatar Jun 28 '22 17:06 jnweiger

@jnweiger I created release issues for each of the apps that we know have had code changes for Guzzle7, and put them in the Releases project. The process of making RC1 tarballs could start next week. I don't think that there is any other code waiting to merge, but maybe check the open PRs in each app to see if there is anything that should be followed-up.

phil-davis avatar Jul 01 '22 08:07 phil-davis

@kiranadh1452 has done manual verification that the following apps still work without any obvious regressions when using the current core master (what will be 10.11.0 release) and the current code in the app repos (which will be released concurrently with core 10.11.0). So the formal QA of the release of each of these apps should be smooth.

https://github.com/owncloud/gallery/issues/859

https://github.com/owncloud/market/issues/1043

https://github.com/owncloud/calendar/issues/1263

https://github.com/owncloud/files_external_ftp/issues/99

https://github.com/owncloud/files_external_gdrive/issues/77

https://github.com/owncloud/files_onedrive/issues/145

https://github.com/owncloud/files_external_dropbox/issues/137

Reported Issue :

https://github.com/owncloud/files_external_dropbox/issues/138

phil-davis avatar Jul 13 '22 09:07 phil-davis

updates are complete, All possible QA was done. The unticked items do not have a tet setup.

jnweiger avatar Sep 20 '22 13:09 jnweiger