What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hello We want to upgrade our Spryker version to the latest release. Currently we have the one from l

U011K6DASBW
U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet
edited October 2020 in Help

Hello
We want to upgrade our Spryker version to the latest release. Currently we have the one from last year (201907.0), and there are two major releases since then (202001 and 202009). Do you think it’s ok to upgrade to latest release directly or should we rather do it in parts? (Jarvis tool says that my next target is 202001 release, which implies that I should do it one by one probably)

Comments

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    Hi Hardik,
    Since every major feature-update requires some actions to be done, you would need to follow both guides, 202001 and 202009. depending on the amount of project customisations, I would really suggest to do it iteratively feature-by-feature.

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    Hi Andriy, that makes sense, thanks!

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    You can spread Spryker upgrade task between multiple sprints/iterations, to leave some more space for the features that are so important for the business 🙂

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    True, hopefully we won’t end up updating many other modules due to dependencies 🙂

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    I would also suggest to release feature updates more often, not in a single batch. That is much easier then

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    Tests and automated code checks (like phpstan f.e.) are your friends

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    Definitely, it won’t be possible to do the upgrade without them 😄

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    Hello again Andriy,
    so I gave it a try and tried to update only one feature at a time. I started with spryker-feature/spryker-core because I think that’s the kind of root module for all others. However I ended up in dependency hell.
    Upgrading this feature requires updating spryker/symfony , which requires updating many other spryker-shop modules like chart-widget, customer-page etc.
    And some of these modules are part of other features like customer-page is part of spryker-feature/customer-account-management , which requires updating spryker/shipment, which is part of another feature spryker-feature/shipment
    So basically I think I would end up updating nearly all features at the same time. It’s hard to split this across sprints as you are suggesting, or am I doing this in wrong way?

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    Hey @U011K6DASBW what happens if you try to add “--update-with-dependencies” command? How many features gets updated at the same time?

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    I used this option everytime I ran composer update, it updates many other deps but sometimes I also had to add other feature modules to the update command to resolve conflicts
    following are the commands I tried

    composer require spryker-feature/spryker-core:"^202001.0" spryker/symfony:"^3.3.5" spryker-shop/chart-widget:"^0.2.1" --update-with-dependencies
    composer require spryker-feature/customer-account-management:"^202001.0" spryker-feature/shipment:"^202001.0" spryker/shipments-rest-api:"^1.2.2" --update-with-dependencies
    
  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    just running composer require spryker-feature/spryker-core:"^202001.0" --update-with-dependencies fails as it can’t resolve deps

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    if you get too many dependencies as a result, and many features as a result of an update for a single feature, you might try to do the following:
    1. Split *features* into *individual modules* they consist of, with locked module versions
    2. do the update on individual modules, iteratively (dependencies is still the case, but not on “big feature level”), as we discussed above until you get everything up-to-date;
    3. After update is done, you can replace modules back to features. With latest modules you have it won’t be an issue.

  • Andriy Netseplyayev
    Andriy Netseplyayev Domain Lead Solution Architecture Sprykee Posts: 519 🧑🏻‍🚀 - Cadet

    we use this process for quite outdated projects and it works fine. Before suggesting it, I wanted to make sure you can’t do your update purely on the feature level.

  • U011K6DASBW
    U011K6DASBW Posts: 37 🧑🏻‍🚀 - Cadet

    okay, that is a good idea, I will try that 👍