Skip to content
This repository has been archived by the owner on Nov 18, 2023. It is now read-only.

Cannot depend upon client-python and grakn releases due to conflicting transitive build-tools dependencies #75

Open
jmsfltchr opened this issue Jul 29, 2019 · 1 comment
Assignees

Comments

@jmsfltchr
Copy link
Contributor

jmsfltchr commented Jul 29, 2019

Problem to Solve

In KGLIB we wish to conduct tests in CI against the latest releases of graknlabs/client-python and graknlabs/grakn. This is to ensure that user experience is aligned with the testing conditions in CI. We wish to do this by depending upon git repositories by tag with bazel, using sync-dependencies to auto-update the tags to reflect the latest releases.

It is common that the latest release of graknlabs/client-python and the latest release of graknlabs/grakn depend upon different commits of graknlabs/build-tools. Using bazel there is no way to use graknlabs/build-tools with two different versions. This is due to the fact that both of these repositories refer to graknlabs/build-tools as @graknlabs_build_tools.

This transitive dependency misalignment makes it impossible to both use bazel and test against the latest releases of graknlabs/client-python and graknlabs/grakn.

Current Workaround

Depend upon graknlabs/client-python and graknlabs/grakn by commit and use sync-dependencies, in which case they both use the same version of graknlabs/build-tools, hence resolving the conflict.

In this case we only test against the latest releases of graknlabs/client-python and graknlabs/grakn in the test-deployment-pip job in CI, when we use a deployed snapshot of KGLIB, which will depend upon a released version of client-python. This version must be manually updated in install_requires of assemble_pip.
This test will also use a released version of Grakn, retrieved as a zip.

Proposed Solution

Add functionality to bazel to permit including transitive dependencies in a scoped way, such that graknlabs/client-python, graknlabs/grakn and graknlabs/kglib can each depend upon a different version of graknlabs/build-tools without conflicting.

@lolski
Copy link
Member

lolski commented Jul 29, 2019

It is common that the latest release of graknlabs/client-python and the latest release of graknlabs/grakn depend upon different commits of graknlabs/build-tools. Using bazel there is no way to use graknlabs/build-tools with two different versions. This is due to the fact that both of these repositories refer to graknlabs/build-tools as @graknlabs_build_tools.

To elaborate on what really happened,

When we discovered this issue, kglib depends on grakn-core 1.5.7 and client-python 1.5.3.

grakn-core 1.5.7 depends on build-tools 8823be45d1d6898983513e0a64514184003602ab and client-python 1.5.3 depends on build-tools a8c117758461368bff9841f9659bff11afbf02a1.

These two build-tools have different Pip rules, where in the one used by client-python, the rule assemble_pip doesn't yet exist.

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

No branches or pull requests

2 participants