Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indy Node system tests depend on the Sovrin package #102

Closed
askolesov opened this issue Apr 12, 2021 · 2 comments
Closed

Indy Node system tests depend on the Sovrin package #102

askolesov opened this issue Apr 12, 2021 · 2 comments

Comments

@askolesov
Copy link
Contributor

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:

  • Make a Sovrin fork of this repository.
  • Get rid of Sovrin dependencies and tests in this repository.
  • When new changes are added to this repository, merge them into the fork.
  • Keep everything Sovrin specific in the fork.

This PR was intended to fix it but I didn't have time to accomplish it so it's closed:
#101

This proposal is the result of the previous research.

@WadeBarnes
Copy link
Member

WadeBarnes commented Sep 14, 2021

Additional details on the circular dependency:

  • indy-test-automation references sovrin package dependencies which in turn reference a specific indy-node package. Therefore, currently, to test a specific indy-node release a sovrin package referencing that specific release needs to be made.
  • This circular dependency needs to be broken. The code needs to be updated in such a way that indy-node releases and indy-node based releases (such as sovrin) can be tested separately.

The way forward:

Unfortunately this code does not work to conditionally install sovrin:

RUN if [ "$SOVRIN_INSTALL" = "yes" ]; then \
dpkg -i "sovrin_${SOVRIN_VERSION}_amd64.deb"; \
fi

and which had yet to also address conditional installation of the token-plugin which also references a specific version of indy-node:

ARG SOVTOKEN_VERSION
ARG SOVTOKENFEES_VERSION
ENV SOVTOKEN_VERSION=${SOVTOKEN_VERSION:-1.0.8~dev153}
ENV SOVTOKENFEES_VERSION=${SOVTOKENFEES_VERSION:-${SOVTOKEN_VERSION}}
RUN \
set -ex; \
apt-get update && apt-get install -y \
sovtoken=${SOVTOKEN_VERSION} \
sovtokenfees=${SOVTOKENFEES_VERSION}; \
rm -rf /var/lib/apt/lists/*;

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
Copy link
Member

The main concern expressed by this issue has been resolved by #109

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants