Upgrade acquia-dam-1x to work with D10

Created on 24 May 2023, about 1 year ago
Updated 18 January 2024, 5 months ago

Problem/Motivation

Projects working with Bynder Webdam should be able to upgrade to Drupal 10.x

✨ Feature request
Status

Needs work

Version

1.0

Component

Code

Created by

🇺🇸United States AllieRays

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @AllieRays
  • First commit to issue fork.
  • @b_sharpe opened merge request.
  • Status changed to Needs review about 1 year ago
  • 🇨🇦Canada b_sharpe

    Added rector fixes + info updates.

  • 🇨🇦Canada b_sharpe

    Patch for composer from MR.

  • 🇨🇦Canada b_sharpe

    Fixed a call to mimetype guesser so works with both d9 and d10, see [#3126004}

    New patch for composer from MR.

  • Status changed to Needs work 12 months ago
  • 🇺🇸United States cpierce42

    Thanks for working on this! I also want to upgrade to Drupal 10 but am trapped on Acquia DAM Classic.

    This fails for me because php-web-dam project is abandoned https://packagist.org/packages/cweagans/php-webdam-client
    Composer feeds back:

    Problem 1
        - Root composer.json requires drupal/media_acquiadam ^1.45 -> satisfiable by drupal/media_acquiadam[1.45.0, ..., 1.x-dev].
        - Conclusion: don't install guzzlehttp/psr7 2.5.0 (conflict analysis result)
    

    and

    ~/projects/testdir$ composer depends guzzlehttp/psr7
    cweagans/php-webdam-client  1.0.1  requires  guzzlehttp/psr7 (~1.0)    
    drupal/core-recommended     9.5.9  requires  guzzlehttp/psr7 (~1.9.1)
    guzzlehttp/guzzle           6.5.8  requires  guzzlehttp/psr7 (^1.9)
    

    The composer.json inside media_acquiadam folder contains:

     "require": {
            "cweagans/php-webdam-client": "^1.0.1",
  • 🇮🇳India Anchal_gupta

    I have uploaded the patch.
    Fixed the D10 compatibility.
    Please review

  • Status changed to Needs review 12 months ago
  • Status changed to Needs work 12 months ago
  • 🇺🇸United States cpierce42

    This patch still fails for me because the composer.json still relies upon "cweagans/php-webdam-client": "^1.0.1", when running composer update

    Please see comment #7 for more details.

  • 🇺🇸United States dpagini

    Definitely +1 on this issue and following what happens here...

    It's a bit challenging to test this with changes needed to the composer.json file, right? You can't apply a patch for this before composer runs...? How are folks testing this out?

    My team is also "trapped on Acquia DAM Classic" (to borrow a phrase from a previous comment). We have been advised by Acquia that there will be no more releases for this 1.x branch, even for Drupal 10 compatibility. I'm not entirely sure if that would extend to reviewing and merging a patch request such as this, but just wanted to give the folks who came here for this a heads up.

    If Acquia will not review this approach and move it forward, I'm wondering what folks see as the option here to use this module on Drupal 10?

  • 🇨🇦Canada b_sharpe

    To get around composer reqs, update the MR and set composer to use the fork as source. I'll have time to get to this next week if nobody has yet

  • 🇮🇳India Sana.Neyazi

    This patch is working for me , getting no issues on applying this patch. But I think this patch does not covers the unit test case part because we still have more Drupal 10 compatibility issue ( as per scanning the upgrade_status for this module ) after applying patch as well.

  • 🇮🇳India nitesh624 Ranchi, India

    Do we have fork of 1.x release?

  • 🇺🇸United States dpagini

    A BIG issue I'm seeing here is that `drupal/media_acquiadam` requires `cweagans/php-webdam-client`, which is archived (abandoned), and requires `guzzlehttp/guzzle` < 7.0, but `drupal/core:^10` requires `guzzlehttp/guzzle` ~7.5.0.

  • 🇨🇦Canada b_sharpe

    Added fixes per #13 to MR, here is patch of diff.

    #15 is correct. To remedy this I've forked the repo to allow fixes, feel free to use this in composer HOWEVER, I take zero responsibility nor will I be doing any updates here as we are dropping dam soon, so use at own risk:

            "cweagans/php-webdam-client": {
                "type": "vcs",
                "url": "https://github.com/b-sharpe/php-webdam-client.git"
            }
    

    Leaving as NW as this clearly is not a true fix.

  • 🇺🇸United States caspervoogt

    Thanks for everyone's work on this. I tested the media_acquiadam-3362505 fork and the patch from #16 and Upgrade Status now reports zero rector issues and it reports it as D10-compatible. I have not yet updated to 10 so can't comment on that yet. I would want to see the D10 updates released before I proceed with my D10 update. I may update to 10 soon, and will report back then.

    @dpagini "If Acquia will not review this approach and move it forward, I'm wondering what folks see as the option here to use this module on Drupal 10?": The https://www.drupal.org/project/webdam → module is the only other option I have found that would work with Acquia DAM Classic and D10, but it would be a painful switch because it has no migration support from 'media_acquiadam' to the 'webdam' module. I believe it would require manually updating all media entity ref fields to the new media type and selecting the relevant media again, either manually or with some custom script.

  • 🇺🇸United States dpagini

    Yep, I'm with you @capservoogt. This has been a very difficult issue for us to watch Acquia leave us up the creek without a paddle. I am trying to use what code we already have and patch something together for D10 with a plan to move off this tool as soon as is feasible.

  • We're currently using 1.48 but the #16 patch fails to install using composer with this error:
    Cannot apply patch https://www.drupal.org/files/issues/2023-09-15/3362505-16-d10additions.patch
    Any thoughts on how we can get the patch to install?

    Or the other option would be to set composer to use the fork as source but we're not exactly sure how to do that? This seems to work but not sure if it's the correct method;
    composer require drupal/media_acquiadam:dev-3362505-upgrade-acquia-dam-1x-to

    Added to composer "repositories"

    {
          "type": "vcs",
          "url": "https://git.drupalcode.org/issue/media_acquiadam-3362505"
    }

    Thanks for any help!

  • 🇺🇸United States caspervoogt

    @dgilbert it isn't super obvious, but click the "Show commands" link next to the 'Issue fork media_acquiadam-3362505' bit near the top of this page. Run those commands inside this module's folder (not at root). After that apply this path via the root composer.json. I am using 1.x-dev FWIW, but this should work for 1.48 too I imagine.

  • 🇺🇸United States caspervoogt

    @dgilbert; if you use the fork, you will want to remove media_acquiadam module from your composer.json and just install the module like this:

    • Go to your /modules or /modules/contrib folder (if using a contrib subfolder)
    • Run 'git clone https://git.drupalcode.org/project/media_acquiadam.git'
    • Run 'cd media_acquiadam'
    • Run 'git remote add media_acquiadam-3362505 git@git.drupal.org:issue/media_acquiadam-3362505.git'
    • Run 'git fetch media_acquiadam-3362505'
    • Run "git checkout -b '3362505-upgrade-acquia-dam-1x-to' --track media_acquiadam-3362505/'3362505-upgrade-acquia-dam-1x-to"
    • Use the patch from #16 and add this to composer.json's repositories section:
      "cweagans/php-webdam-client": {
                  "type": "vcs",
                  "url": "https://github.com/b-sharpe/php-webdam-client.git"
              }

    That last step is crucial because otherwise the php-webdam-client's guzzle library will be stuck on a version that's incompatible with D10's guzzle library version, as discussed above.

    I followed the steps above myself and successfully got my D9 site update to D10 this way.

  • @caspervoogt Thanks for the help, we were able to get the module working with D10.

  • 🇺🇸United States caspervoogt

    I just tried updating Drupal core from 10.1.7 to 10.2.2 and ran into dependency issues with composer. There was a conflict between cweagans/php-webdam-client 1.0.3 requiring guzzlehttp/psr7 2.5.0 while Drupal 10.2+ apparently requires guzzlehttp/psr7 2.6.0. I had a look at php-webdam-client's composer.json's require code block:

    "require": {
        "php": ">=5.6.0",
        "guzzlehttp/guzzle": ">=4.1.4 <8.0",
        "guzzlehttp/psr7": "~2.5.0"
      },
    

    So I forked https://github.com/b-sharpe/php-webdam-client.git and tried:

    "require": {
        "php": ">=5.6.0",
        "guzzlehttp/guzzle": ">=4.1.4 <8.0",
        "guzzlehttp/psr7": "~2.6.0"
      },
    

    .. (and some variations of that guzzlehttp/psr7 line), but kept running into compose dependency conflicts, so I tried just removing the 'require' code block entirely to make this library's composer.json more permissive, and that worked fine for me on 10.2.2;

    • I figure a minimum PHP version of 5.6 is a moot point / not needed in this code block since core requires that anyway
    • wrt guzzlehttp/guzzle and guzzlehttp/psr7 I removed those requirements too. This way we could identify if there are indeed conflicts with certain core versions, and then re-add composer requirements only as needed

    If you're trying to update to D10.2, you can use my fork at https://github.com/cweagans/php-webdam-client.git instead of https://github.com/b-sharpe/php-webdam-client.git in comment #16, and make sure you require version 1.0.4 (my new version tag) not 1.0.3.

Production build 0.69.0 2024