You can easily upgrade your existing Studio project in version 15.12 (1.0) using Composer.

Start from the project root. First, create a new branch from:

a) your master project branch, or

b) the branch you are upgrading on:

From your master branch

1

git checkout -b upgrade-1.1.0

In case of different localization of the sources, add ezsystems/ezstudio as an upstream remote:

From the upgrade-1.1.0 branch

1

git remote add ezstudio http://github.com/ezsystems/ezstudio.git

Then pull the tag into your branch:

From the upgrade-1.1.0 branch

1

git pull ezstudio v1.1.0

You will get conflicts, and it is perfectly normal. The most common ones will be on composer.json and composer.lock.

If you get a lot of conflicts (on the doc folder for instance), and eZ Platform was installed from the share.ez.no tarball, it might be because of incomplete history. You will have to run git fetch ezstudio --unshallow to load the full history, and run the merge again.

The latter can be ignored, as it will be regenerated when we execute composer update later. The easiest way is to checkout the version from the tag, and add it to the changes:

Conflicts in composer.json need to be fixed manually. If you're not familiar with the diff output, you may checkout the tag's version, and inspect the changes. It should be readable for most:

From the upgrade-1.1.0 branch

1

git checkout --theirs composer.json && git diff composer.json

You should see what was changed, as compared to your own version, in the diff output. The 1.1.0 tag changes the requirements for all of the ezsystems/ packages. Those should be left untouched. All of the other changes should be removals of your project's additions. You can use git checkout -p to selectively cancel those changes:

1

git checkout -p composer.json

Answer no (do not discard) to the requirement changes of ezsystems dependencies, and yes (discard) to removals of your changes.

In order to restrict the possibility of unforeseen updates of 3rd party packages, we recommend by default that composer update is restricted to the list of packages we have tested the update for. You may remove this restriction, but be aware that you might get a package combination we have not tested.

On PHP conflict

Because from this release onwards eZ Platform is compatible only with PHP 5.5 and higher, the update command above will fail if you use an older PHP version. Please update PHP to proceed.

Once all the conflicts have been resolved, and composer.lock updated, the merge can be committed. Note that you may or may not keep composer.lock, depending on your version management workflow. If you do not wish to keep it, run git reset HEAD <file> to remove it from the changes. Run git commit, and adapt the message if necessary. You can now test the project, run integration tests... once the upgrade has been approved, go back to master, and merge the upgrade-1.1.0 branch: