hyperledger / indy-test-automation

Automation tools for testing of Indy Project components.
https://wiki.hyperledger.org/display/indy
Apache License 2.0
6 stars 23 forks source link

Indy Node system tests depend on the Sovrin package #102

Closed askolesov closed 2 years ago

askolesov commented 3 years ago

That's bad because if someone makes breaking changes in Node, he has to release an updated version of Sovrin in order to fix and run tests.

Example of depending code: https://github.com/hyperledger/indy-test-automation/blob/master/system/docker/node/Dockerfile#L65

Proposal:

This PR was intended to fix it but I didn't have time to accomplish it so it's closed: https://github.com/hyperledger/indy-test-automation/pull/101

This proposal is the result of the previous research.

WadeBarnes commented 3 years ago

Additional details on the circular dependency:

The way forward:

Unfortunately this code does not work to conditionally install sovrin: https://github.com/hyperledger/indy-test-automation/blob/3b44feb9bc6ead49c7e8ed16d2199c23dc78d187/system/docker/node/Dockerfile#L65-L67

and which had yet to also address conditional installation of the token-plugin which also references a specific version of indy-node: https://github.com/hyperledger/indy-test-automation/blob/3b44feb9bc6ead49c7e8ed16d2199c23dc78d187/system/docker/node/Dockerfile#L69-L78

Important details:

Next Steps (as I see them):

  1. Getting indy-test-automation to build/run locally using the system/docker/prepare.sh and system/docker/run.sh scripts, and the documentation in the system/docker/README.md. This will enable local development to be performed on indy-test-automation and help speed up the development process.
  2. Update the associated Dockerfile(s) to support conditional installation of the sovrin packages; sovrin, sovtoken, and sovtokenfees for the node, and libsovtoken for the client. This may require separate docker files in order to perform properly.
  3. Determine which unit tests in indy-node rely on either the sovrin or the token-plugin packages and move those to the appropriate repo leaving only indy-node specific tests.
  4. Later, as a separate task, refactor indy-test-automation to generically support testing of indy-node based packages.

cc @udosson, @pSchlarb

WadeBarnes commented 2 years ago

The main concern expressed by this issue has been resolved by https://github.com/hyperledger/indy-test-automation/pull/109