[app-dev] Need help to synchronize Unimgr project with latest release of ODL

Robert Varga

On 13/04/2022 09:25, santanu de wrote:
Hi All,
Hey Santanu,

I was trying to bump up version of core module of unimgr project to synchronize it with the latest version of ODL. I am getting some compilation error.
Could anyone help us to fix the problem?
As Guillaume mentioned, it is hard to answer this without knowing what exactly 'the problem' is. The best way to have conversation is to have patches in public Gerrit on which Jenkins jobs runs -- those are the source of truth after all.

That having been said, what we are looking here at (based on unimgr/master) is going from Mg SR1 to P SR2 or S GA. That entails crossing 3 major release upgrades. Our upgrade policy is "latest SR to the next release". In that vein I suggest you start with upgrading to Mg SR3 -- e.g. bumping versions to https://docs.opendaylight.org/projects/integration-distribution/en/stable-magnesium/platform-versions.html, which should be a warm-up exercise.

Having done, and witnessed, a number of these upgrades in the past, I strongly advise you to take this one step at a time and carefully validate each step. Doing these upgrades in a rush and skipping releases in a recipe for introducing regressions your code -- and we do not have the domain knowledge to help you with those.

The logical steps (at least one patch each) are:
1. Mg SR1 -> Mg SR3
2. Mg SR3 -> Al SR4
3. Al SR4 -> Si SR4
4. Si SR4 -> P SR2
5. P SR2 -> S GA

For each major release upgrade (e.g. step 2 onwards), we maintain an upgrade guide:

- https://docs.opendaylight.org/en/stable-aluminium/release-notes/upgrade-process.html
- https://docs.opendaylight.org/en/stable-silicon/release-notes/upgrade-process.html
- https://docs.opendaylight.org/en/stable-phosphorus/release-notes/upgrade-process.html
- https://docs.opendaylight.org/en/latest/release-notes/upgrade-process.html

They provide all the knowledge we have accumulated in doing upgrades on the other ODL projects. While reasonably complete, they may not cover every pitfall there is.

As you are not following initial releases, you will need to adjust the versions mentioned in https://docs.opendaylight.org/en/stable-aluminium/release-notes/upgrade-process.html#id5 to match the SR versions (instead of GA versions).

As an engineer, I suggest you reserve at least one week for each of the steps. The absolutely most painful step (without knowing unimgr at all) will be the switch to Phosphorus, as it will force you to deal with whatever dependencies on legacy codegen your codebase has. Each step has plenty of room for unexpected surprises. You *will* encounter them at least once, which induces stress, which creates an opportunity for bugs to creep in.


P.S.: I have done a three-release upgrade in the past. The first two major bumps were done and dusted in a day. The third took full two weeks to figure out.