2021-02-04 Special: Upgrade Indy

Summary

Special call February 4 at 14H UTC, 6AM American Pacific

  • Collaborate on the upgrade to Ubuntu 20.04 and other hurdles to releasing

Zoom link: https://zoom.us/j/8018550866

Recording from the call: dummyfile.txt


Hyperledger is committed to creating a safe and welcoming

community for all. For more information

please visit the Hyperledger Code of Conduct.

Welcome and Introductions

Attendees

Ryan Marsh

Main Business

Upgrading Indy Node and Indy Plenum

  • GitHub actions led by Kevin Griffin
    • Indy Node CI
    • Indy Plenum CI
    • Indy Plenum CD - Ian Costanzo - First pass done, clean up in process, waiting for CI to merge
    • Indy Node CD
    • Indy documentation should clarify the role of indy-test-automation
  • Ubuntu 20.04 upgrade led by Robin Klemens (help from Richard Esplin / Ryan Marsh )
    • Create a branch for collaborating, then a single PR to merge to Master / Main — DONE ubuntu-20.04-upgrade
    • Thoughts:
      • Plenum and Indy depend on a couple of packages that also need to be built for Ubuntu 20.04:

        • Ursa: is only available for Ubuntu 18.04. Also, Ursa currently depends on libssl1.0.0 which is not anymore supported on Ubuntu 20.04. ---> upgrade to libssl1.1 is needed

          • No 20.04 artifact, but we believe it runs on 20.04.
          • In the middle of large refactor, so hard to release.
        • libindy is only available for Ubuntu 18.04

          • No 20.04 artifact, but we believe it runs on 20.04.
        • libindy-crypto is only available for Ubuntu 16.04. libindy-crypto is not needed for Plenum anymore, but it is still necessary for the current master branch of Indy

          • We believe all that is left is CI / CD changes to remove the dependency.
          • PRs related to indy-crypto appears to have been merged.
          • Ryan: Ensure that the ubuntu-upgrade branch does not depend on libindy-crypto.
      • Before starting with the real testing of Ubuntu 20.04, in my point of view, it would be necessary to first build the dependencies mentioned above for Ubuntu 20.04 and test them as well.

      • Review pinned dependencies: Also, the current versions of Indy Node and Plenum use very old versions of the PyPi packages which we should update with the migration to Ubuntu 20.04. I'd first start with the old packages, implement proper testing and then consecutively update the dependencies to see where we run into problems and we (would) need to adjust the code if the upgrade is worth the effort.

        • Ryan can add a dependency graph into the Indy-Node repo in docs folder
      • Python 3.8 upgrade
        • Brent and Ryan have been working on this.
        • If we target 3.8 only, then stewards will have to upgrade Python before upgrading Indy Node (then upgrade Ubuntu last)
    • Upgrade paths:
      • Upgrade Indy Node, then stewards upgrade Ubuntu in cohorts
      • Upgrade Python on the machines, the upgrade Indy Node, then stewards upgrade Ubuntu in cohorts
      • Only target new Ubuntu, and stewards upgrade Ubuntu and Indy Node simultaneously. Pool has machines running both versions of Indy.
        • No protocol changes in Master, so should be safe. Need to test. (Vladimir can do this test.)
    • Decisions:
      • Work in ubuntu-20.04-upgrade branch in main hyperledger org
      • Setup branch protection for DCO
      • CI / CD will be advisory
      • To merge to branch: run CI / CD, and get a review from another dev
      • Will do a cross-organizational review to merge from branch to Master / Main
      • Lynn can help document the upgrade process for Stewards, and can help test the upgrade.
  • New branching model led by Wade Barnes
    • Merging Stable to Master — Renata will create PR.
    • Rename Master to Main — Wade will do next week.
    • Releasing what is currently in Master — part of the ubuntu-upgrade branch
      • Evernym can help merge and test.
    • Documenting plan (HIPE) — Wade
      • feature-branch development model
      • CI will run off the feature-branches
      • Release out of Main and then tag
      • Release process