What these errors means and how to fix them

This is the message I got from the tech at the hosting company.

Hello Maurice,

Thank you for your patience so far.

I have further reviewed the matter on my end and following the provided step-by-step instructions via the Upgrading guide:

http://learn.elgg.org/en/stable/admin/upgrading.html#from-2-3-to-3-0

I have changed the current PHP version to PHP 7.1 and also increased the PHP values to the maximum values.

After that I have changed the PHP version in the composer.json file from PHP 5.6 to PHP 7.1:

https://www.screencast.com/t/fILoDaOSM

and in the .htaccess replaced

RewriteRule ^(.*)$ index.php?__elgg_uri=$1 [QSA,L]

with

RewriteRule ^(.*)$ index.php [QSA,L]

The next step as described are the following composer commands:

composer self-update

cd ./path/to/project/root
composer require elgg/elgg:~3.0.0
composer update
vendor/bin/elgg-cli upgrade async -v

so I have upgraded composer 1.9 to composer 1.10

https://www.screencast.com/t/5NuijDyV

and composer2 from version 2.0.8 to version 2.1.8:

https://www.screencast.com/t/HnafdikB

Once I have executed the next command:

composer require elgg/elgg:~3.0.0

by using composer2 the following error occurred:

Problem 1
- elgg/elgg[3.0.0-beta.1, ..., 3.0.x-dev] require elgg/login_as ~2.0.0 -> found elgg/login_as[2.0.0] but the package is fixed to 1.9.2 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- Root composer.json requires elgg/elgg ~3.0.0 -> satisfiable by elgg/elgg[3.0.0-beta.1, ..., 3.0.x-dev].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

So with this in mind I have used the suggested command with --with-all-dependencies:

composer2 require elgg/elgg:~3.0.0 --with-all-dependencies

and another error occurred:

Problem 1
- elgg/elgg[3.0.0-beta.1, ..., 3.0.x-dev] require bower-asset/jquery ^2.1.4 -> found bower-asset/jquery[2.2.4] in the lock file but not in remote repositories, make sure you avoid updating this package to keep the one from the lock file.
- elgg/elgg[3.0.0-rc.2, ..., 3.0.7] require bower-asset/fontawesome ~5.6 -> could not be found in any version, there may be a typo in the package name.
- Root composer.json requires elgg/elgg ~3.0.0 -> satisfiable by elgg/elgg[3.0.0-beta.1, ..., 3.0.x-dev].

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
- It's a private package and you forgot to add a custom repository to find it

I have also attempted to update the feature by using composer version 1.10, however without success because other errors have been detected:

Problem 1
- elgg/elgg 3.0.x-dev requires bower-asset/sprintf ~1.0.3 -> no matching package found.
- elgg/elgg 3.0.7 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.6 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.5 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.4 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.3 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.2 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.1 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.0-rc.2 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- elgg/elgg 3.0.0-rc.1 requires bower-asset/sprintf ~1.0.3 -> no matching package found.
- elgg/elgg 3.0.0-beta.3 requires bower-asset/sprintf ~1.0.3 -> no matching package found.
- elgg/elgg 3.0.0-beta.2 requires bower-asset/sprintf ~1.0.3 -> no matching package found.
- elgg/elgg 3.0.0-beta.1 requires bower-asset/sprintf ~1.0.3 -> no matching package found.
- elgg/elgg 3.0.0 requires bower-asset/fontawesome ~5.6 -> no matching package found.
- Installation request for elgg/elgg ~3.0.0 -> satisfiable by elgg/elgg[3.0.0, 3.0.0-beta.1, 3.0.0-beta.2, 3.0.0-beta.3, 3.0.0-rc.1, 3.0.0-rc.2, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.x-dev].
 

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
- It's a private package and you forgot to add a custom repository to find it

Having all this in mind it appears the upgrading process is out of our scope of experience and it requires developer knowledge. This is why I would advise you to contact a Certified Web Developer in order to review the issues and find the best resolution.

  • I'm not a 100% sure that Elgg 3.3 is compatible with Composer v2, but it is with Composer v1. Therefor I'll try to make the steps for for using Composer v1.

    What i see already has happened:

    Always make a backup before proceeding with the steps below

    The reason some of the composer dependencies couldn't be found is probably that some parts in the composer.json are missing. For the best example check out https://github.com/Elgg/starter-project/blob/3.3/composer.json this is the composer.json which we use to create the ZIP releases here on the community.

    When updating the composer.json to the given example please consider directly changing https://github.com/Elgg/starter-project/blob/3.3/composer.json#L9 from "3.*" to "~3.3.0"

    After that the following commands can be executed

    • "composer update --dry-run" (this will check if there are any issues when updating without actually doing the update)
    • if no errors are found run "composer update"
    • run "vendor/bin/elgg-cli upgrade async -v" this will execute all database migrations

    Your site is now running Elgg 3.3 and can be used again.

    The documentation you used was created for updating from Elgg 2.3 to Elgg 3.0 and hasn't been updated after that (for Elgg 3.1 etc). We'll look into that.

    I hope this will help somewhat.