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

Add Contrib Repo Tests workflow on Core PRs #1357

Merged

Conversation

NathanielRN
Copy link
Contributor

@NathanielRN NathanielRN commented Nov 4, 2020

Description

Add tests to check if PRs on the Core repo will break tests from the Contrib Repo.

To test against a particular Contrib Repo PR, change the env variable CONTRIB_REPO_SHA to prove tests pass. Once they pass, PRs in Core and Contrib can be merged at the same time.

This fixes:

  • tox -e lint
  • tox -e docs

Related to #1233

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?

New tests added to make sure Core changes don't affect Contrib.

Checklist:

  • Followed the style guidelines of this project
    - [ ] Changelogs have been updated
  • Unit tests have been added
    - [ ] Documentation has been updated

@NathanielRN NathanielRN requested review from a team, aabmass and ocelotl and removed request for a team November 4, 2020 19:24
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch 3 times, most recently from f61071d to 43439ca Compare November 4, 2020 21:34
Copy link
Contributor Author

@NathanielRN NathanielRN left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just flagging some doubts on tox cache because I'm unfamiliar with it.

@@ -53,7 +66,7 @@ jobs:
uses: actions/cache@v2
with:
path: .tox
key: tox-cache-${{ matrix.python-version }}-${{ matrix.package }}-${{ matrix.os }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}
key: tox-cache-${{ matrix.python-version }}-${{ matrix.package }}-${{ matrix.os }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}-core
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is needed...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is good, should keep the caches smaller

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not too familiar with the syntax, what is this pointing to? The environment name?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I run tox locally, I see a .tox folder gets created, and I see packages being created there.

My guess is that this command caches packages that have the same conditions of python version/matrix/os/files_hash to not have to import the package into it's "tox" environment again. But that's just a guess.

uses: actions/cache@v2
with:
path: .tox
key: tox-cache-${{ matrix.tox-environment }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}-core
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is needed...

uses: actions/cache@v2
with:
path: .tox
key: tox-cache-${{ matrix.python-version }}-${{ matrix.package }}-${{ matrix.os }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}-contrib
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is needed...

@@ -76,6 +177,6 @@ jobs:
uses: actions/cache@v2
with:
path: .tox
key: tox-cache-${{ matrix.tox-environment }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}
key: tox-cache-${{ matrix.tox-environment }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}-contrib
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is needed...

@NathanielRN NathanielRN marked this pull request as draft November 4, 2020 21:40
@codeboten codeboten added the release:required-for-ga To be resolved before GA release label Nov 5, 2020
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch from 43439ca to 3eb2fc1 Compare November 5, 2020 17:53
@NathanielRN NathanielRN marked this pull request as ready for review November 5, 2020 17:54
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch 4 times, most recently from d1f811f to bbf12c7 Compare November 5, 2020 18:22
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch 2 times, most recently from 26b77cf to 859d9df Compare November 6, 2020 21:37
@ocelotl
Copy link
Contributor

ocelotl commented Nov 12, 2020

I see this issue happening in a fork:

ocelotl@harrison:~$ mkdir fork
ocelotl@harrison:~$ cd fork
ocelotl@harrison:~/fork$ git clone git@github.com:ocelotl/opentelemetry-python.git
Cloning into 'opentelemetry-python'...
remote: Enumerating objects: 59, done.
remote: Counting objects: 100% (59/59), done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 21550 (delta 12), reused 32 (delta 9), pack-reused 21491
Receiving objects: 100% (21550/21550), 11.11 MiB | 5.52 MiB/s, done.
Resolving deltas: 100% (11540/11540), done.
ocelotl@harrison:~/fork$ ls
opentelemetry-python
ocelotl@harrison:~/fork$ cd opentelemetry-python/
ocelotl@harrison:~/fork/opentelemetry-python$ gh pr checkout 1357
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Total 32 (delta 21), reused 22 (delta 21), pack-reused 10
Unpacking objects: 100% (32/32), done.
From https://github.com/open-telemetry/opentelemetry-python
 * [new ref]           refs/pull/1357/head -> add-contrib-repo-tests-workflow
 * [new tag]           stable              -> stable
 * [new tag]           v0.11.0             -> v0.11.0
 * [new tag]           v0.15b0             -> v0.15b0
Switched to branch 'add-contrib-repo-tests-workflow'


A new release of gh is available: 0.6.4 → v1.2.1
https://github.com/cli/cli/releases/tag/v1.2.1

ocelotl@harrison:~/fork/opentelemetry-python$ git status
On branch add-contrib-repo-tests-workflow
nothing to commit, working tree clean
ocelotl@harrison:~/fork/opentelemetry-python$ 
ocelotl@harrison:~/fork/opentelemetry-python$ tox -e lint
lint create: /home/ocelotl/fork/opentelemetry-python/.tox/lint
lint installdeps: -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty
ERROR: invocation failed (exit code 1), logfile: /home/ocelotl/fork/opentelemetry-python/.tox/lint/log/lint-1.log
========================================================================================== log start ===========================================================================================
ERROR: /home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with svn+, git+, hg+, or bzr+).
WARNING: You are using pip version 20.1; however, version 20.2.4 is available.
You should consider upgrading via the '/home/ocelotl/fork/opentelemetry-python/.tox/lint/bin/python -m pip install --upgrade pip' command.

=========================================================================================== log end ============================================================================================
ERROR: could not install deps [-e/home/ocelotl/fork/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty]; v = InvocationError('/home/ocelotl/fork/opentelemetry-python/.tox/lint/bin/python -m pip install -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-api -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-sdk -cdev-requirements.txt -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc asgiref pylint flake8 isort black psutil readme_renderer httpretty', 1)
___________________________________________________________________________________________ summary ____________________________________________________________________________________________
ERROR:   lint: could not install deps [-e/home/ocelotl/fork/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty]; v = InvocationError('/home/ocelotl/fork/opentelemetry-python/.tox/lint/bin/python -m pip install -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-api -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-sdk -cdev-requirements.txt -e/home/ocelotl/fork/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc asgiref pylint flake8 isort black psutil readme_renderer httpretty', 1)

I thought this issue was not happening in the core repo but it seems like it is happening there as well:

ocelotl@harrison:~$ mkdir core
ocelotl@harrison:~$ cd core/
ocelotl@harrison:~/core$ git clone git@github.com:open-telemetry/opentelemetry-python.git
Cloning into 'opentelemetry-python'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 18441 (delta 0), reused 1 (delta 0), pack-reused 18438
Receiving objects: 100% (18441/18441), 11.60 MiB | 5.66 MiB/s, done.
Resolving deltas: 100% (9486/9486), done.
ocelotl@harrison:~/core$ cd opentelemetry-python/
ocelotl@harrison:~/core/opentelemetry-python$ gh pr checkout 1357
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Total 32 (delta 21), reused 22 (delta 21), pack-reused 10
Unpacking objects: 100% (32/32), done.
From github.com:open-telemetry/opentelemetry-python
 * [new ref]           refs/pull/1357/head -> add-contrib-repo-tests-workflow
Switched to branch 'add-contrib-repo-tests-workflow'


A new release of gh is available: 0.6.4 → v1.2.1
https://github.com/cli/cli/releases/tag/v1.2.1

ocelotl@harrison:~/core/opentelemetry-python$ git status
On branch add-contrib-repo-tests-workflow
nothing to commit, working tree clean
ocelotl@harrison:~/core/opentelemetry-python$ 
ocelotl@harrison:~/core/opentelemetry-python$ tox -e lint
lint create: /home/ocelotl/core/opentelemetry-python/.tox/lint
lint installdeps: -e/home/ocelotl/core/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty
ERROR: invocation failed (exit code 1), logfile: /home/ocelotl/core/opentelemetry-python/.tox/lint/log/lint-1.log
========================================================================================== log start ===========================================================================================
ERROR: /home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with svn+, git+, hg+, or bzr+).
WARNING: You are using pip version 20.1; however, version 20.2.4 is available.
You should consider upgrading via the '/home/ocelotl/core/opentelemetry-python/.tox/lint/bin/python -m pip install --upgrade pip' command.

=========================================================================================== log end ============================================================================================
ERROR: could not install deps [-e/home/ocelotl/core/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty]; v = InvocationError('/home/ocelotl/core/opentelemetry-python/.tox/lint/bin/python -m pip install -e/home/ocelotl/core/opentelemetry-python/opentelemetry-api -e/home/ocelotl/core/opentelemetry-python/opentelemetry-sdk -cdev-requirements.txt -e/home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc asgiref pylint flake8 isort black psutil readme_renderer httpretty', 1)
___________________________________________________________________________________________ summary ____________________________________________________________________________________________
ERROR:   lint: could not install deps [-e/home/ocelotl/core/opentelemetry-python/opentelemetry-api, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty]; v = InvocationError('/home/ocelotl/core/opentelemetry-python/.tox/lint/bin/python -m pip install -e/home/ocelotl/core/opentelemetry-python/opentelemetry-api -e/home/ocelotl/core/opentelemetry-python/opentelemetry-sdk -cdev-requirements.txt -e/home/ocelotl/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc asgiref pylint flake8 isort black psutil readme_renderer httpretty', 1)

Copy link
Contributor

@ocelotl ocelotl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See an issue happening when running tox -e lint, explained in the conversation.

@NathanielRN
Copy link
Contributor Author

@ocelotl Thanks for the logs! I think you are seeing this problem because you did not clone the Contrib Repo using git clone git@github.com:open-telemetry/opentelemetry-python-contrib.git opentelemetry-python-contrib.

Please see my logs below, I tried to follow your commands and found that running tox -e lint works for me:

 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python   master  mkdir core
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python   master  cd core
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core   master  git clone git@github.com:open-telemetry/opentelemetry-python.git
Cloning into 'opentelemetry-python'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 18441 (delta 0), reused 1 (delta 0), pack-reused 18438
Receiving objects: 100% (18441/18441), 11.60 MiB | 2.81 MiB/s, done.
Resolving deltas: 100% (9486/9486), done.
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core   master  cd opentelemetry-python
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python   master  git fetch origin pull/1357/head:add-contrib-repo-tests-workflow
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Total 32 (delta 21), reused 22 (delta 21), pack-reused 10
Unpacking objects: 100% (32/32), done.
From github.com:open-telemetry/opentelemetry-python
 * [new ref]           refs/pull/1357/head -> add-contrib-repo-tests-workflow
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python   master  git co add-contrib-repo-tests-workflow
Switched to branch 'add-contrib-repo-tests-workflow'
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python   add-contrib-repo-tests-workflow  git clone git@github.com:open-telemetry/opentelemetry-python-contrib.git opentelemetry-python-contrib
Cloning into 'opentelemetry-python-contrib'...
remote: Enumerating objects: 7384, done.
remote: Total 7384 (delta 0), reused 0 (delta 0), pack-reused 7384
Receiving objects: 100% (7384/7384), 1.60 MiB | 3.10 MiB/s, done.
Resolving deltas: 100% (3175/3175), done.
 enowell  ~/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python   add-contrib-repo-tests-workflow  tox -e lint
lint create: /Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/.tox/lint
lint installdeps: -e/Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-api, -e/Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-sdk, -cdev-requirements.txt, -e/Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-grpc, asgiref, pylint, flake8, isort, black, psutil, readme_renderer, httpretty
lint installed: WARNING: Could not find setup.py for directory /Users/enowell/git/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-urllib3/src (tried all parent directories),WARNING: Could not find setup.py for directory /Users/enowell/git/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-urllib3/src (tried all parent directories),appdirs==1.4.4,astroid==2.4.2,attrs==20.2.0,autopep8==1.5.4,aws-xray-sdk==2.4.2,backoff==1.10.0,bcrypt==3.2.0,black==19.10b0,bleach==3.2.1,boto==2.49.0,boto3==1.16.12,botocore==1.19.12,cached-property==1.5.1,certifi==2020.6.20,cffi==1.14.2,chardet==3.0.4,click==7.1.2,cryptography==3.1,DateTime==4.3,Deprecated==1.2.10,distlib==0.3.1,distro==1.5.0,docker==4.3.1,docker-compose==1.27.3,dockerpty==0.4.1,docopt==0.6.2,docutils==0.15.2,filelock==3.0.12,flake8==3.8.4,Flask==1.1.2,future==0.18.2,googleapis-common-protos==1.52.0,grpcio==1.32.0,httpretty==1.0.2,idna==2.10,importlib-metadata==1.7.0,isort==4.3.21,itsdangerous==1.1.0,Jinja2==2.11.2,jmespath==0.10.0,jsonpickle==1.4.1,jsonschema==3.2.0,lazy-object-proxy==1.4.3,MarkupSafe==1.1.1,mccabe==0.6.1,mypy-extensions==0.4.3,-e git+git@github.com:open-telemetry/opentelemetry-python.git@79163b05d482ace6fdb443a40fcaa3d95324c284#egg=opentelemetry_api&subdirectory=opentelemetry-api,-e git+git@github.com:open-telemetry/opentelemetry-python.git@79163b05d482ace6fdb443a40fcaa3d95324c284#egg=opentelemetry_exporter_otlp&subdirectory=exporter/opentelemetry-exporter-otlp,-e git+git@github.com:open-telemetry/opentelemetry-python.git@79163b05d482ace6fdb443a40fcaa3d95324c284#egg=opentelemetry_instrumentation&subdirectory=opentelemetry-instrumentation,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_instrumentation_botocore&subdirectory=instrumentation/opentelemetry-instrumentation-botocore,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_instrumentation_flask&subdirectory=instrumentation/opentelemetry-instrumentation-flask,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_instrumentation_requests,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_instrumentation_urllib3,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_instrumentation_wsgi&subdirectory=instrumentation/opentelemetry-instrumentation-wsgi,-e git+git@github.com:open-telemetry/opentelemetry-python.git@79163b05d482ace6fdb443a40fcaa3d95324c284#egg=opentelemetry_proto&subdirectory=opentelemetry-proto,-e git+git@github.com:open-telemetry/opentelemetry-python.git@79163b05d482ace6fdb443a40fcaa3d95324c284#egg=opentelemetry_sdk&subdirectory=opentelemetry-sdk,-e git+git@github.com:open-telemetry/opentelemetry-python-contrib.git@111edd4c39ffe5dcb7fcb023c62b82ce593e9e6e#egg=opentelemetry_sdk_extension_aws&subdirectory=sdk-extension/opentelemetry-sdk-extension-aws,opentelemetry-test @ file:///Users/enowell/git/opentelemetry-python/tests/util,opentracing==2.3.0,packaging==20.4,paramiko==2.7.2,pathspec==0.8.0,pluggy==0.13.1,protobuf==3.13.0,psutil==5.7.3,py==1.9.0,pycodestyle==2.6.0,pycparser==2.20,pyflakes==2.2.0,Pygments==2.7.1,pylint==2.6.0,pymemcache==1.4.4,PyNaCl==1.4.0,pyparsing==2.4.7,pyrsistent==0.17.3,python-dateutil==2.8.1,python-dotenv==0.14.0,pytz==2020.1,PyYAML==5.3.1,readme-renderer==27.0,regex==2020.10.28,requests==2.24.0,responses==0.12.0,s3transfer==0.3.3,six==1.15.0,texttable==1.6.3,toml==0.10.1,tox==3.20.0,tox-factor==0.1.2,typed-ast==1.4.1,typing-extensions==3.7.4.3,UNKNOWN @ https://github.com/open-telemetry/opentelemetry-python/archive/stable.zip,urllib3==1.25.10,virtualenv==20.0.31,webencodings==0.5.1,websocket-client==0.57.0,Werkzeug==1.0.1,wrapt==1.12.1,zipp==3.1.0,zope.interface==5.1.2
lint run-test-pre: PYTHONHASHSEED='107359272'
lint run-test-pre: commands[0] | python scripts/eachdist.py install --editable --with-test-deps
>>> python -m pip install -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-api[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-sdk[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-instrumentation[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-proto[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/tests/util[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/instrumentation/opentelemetry-instrumentation-opentracing-shim[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-opencensus[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-jaeger[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-zipkin[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-prometheus[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-otlp[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/opentelemetry-example-app[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/error_hander/error_handler_1[test]' -e 'file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/error_hander/error_handler_0[test]'
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-api
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-sdk
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-instrumentation
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/opentelemetry-proto
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/tests/util
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/instrumentation/opentelemetry-instrumentation-opentracing-shim
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-opencensus
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-jaeger
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-zipkin
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-prometheus
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/exporter/opentelemetry-exporter-otlp
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/opentelemetry-example-app
  WARNING: opentelemetry-example-app 0.16.dev0 does not provide the extra 'test'
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/error_hander/error_handler_1
  WARNING: error-handler-1 0.16.dev0 does not provide the extra 'test'
Obtaining file:///Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/docs/examples/error_hander/error_handler_0
  WARNING: error-handler-0 0.16.dev0 does not provide the extra 'test'
Requirement already satisfied: wrapt<2.0.0,>=1.0.0 in ./.tox/lint/lib/python3.8/site-packages (from opentelemetry-instrumentation==0.16.dev0) (1.11.2)
Collecting protobuf>=3.13.0
  Using cached protobuf-3.13.0-cp38-cp38-macosx_10_9_x86_64.whl (1.3 MB)
Collecting flask~=1.0
  Using cached Flask-1.1.2-py2.py3-none-any.whl (94 kB)
Collecting Deprecated>=1.2.6
  Using cached Deprecated-1.2.10-py2.py3-none-any.whl (8.7 kB)
Processing /Users/enowell/Library/Caches/pip/wheels/d8/59/32/28a68fc65ba428fce889c46994767b2e4d000ee81e2ae47512/opentracing-2.3.0-py3-none-any.whl
Requirement already satisfied: grpcio<2.0.0,>=1.0.0 in ./.tox/lint/lib/python3.8/site-packages (from opentelemetry-exporter-opencensus==0.16.dev0) (1.33.2)
Collecting opencensus-proto<1.0.0,>=0.1.0
  Using cached opencensus_proto-0.1.0-py2.py3-none-any.whl (35 kB)
Processing /Users/enowell/Library/Caches/pip/wheels/0a/52/7e/8054b57725b8f2b9ddbaacb81b271b939681cc03f8231e6ebc/thrift-0.13.0-py3-none-any.whl
Collecting requests~=2.7
  Using cached requests-2.25.0-py2.py3-none-any.whl (61 kB)
Collecting prometheus_client<1.0.0,>=0.5.0
  Using cached prometheus_client-0.8.0-py2.py3-none-any.whl (53 kB)
Collecting googleapis-common-protos~=1.52.0
  Using cached googleapis_common_protos-1.52.0-py2.py3-none-any.whl (100 kB)
Collecting backoff~=1.10.0
  Using cached backoff-1.10.0-py2.py3-none-any.whl (31 kB)
Collecting pytest-grpc
  Using cached pytest_grpc-0.8.0-py3-none-any.whl (5.5 kB)
Collecting opentelemetry-instrumentation-requests==0.15.b0
  Downloading opentelemetry_instrumentation_requests-0.15b0-py3-none-any.whl (10 kB)
Collecting opentelemetry-instrumentation-flask==0.15.b0
  Downloading opentelemetry_instrumentation_flask-0.15b0-py3-none-any.whl (9.7 kB)
Requirement already satisfied: six>=1.9 in ./.tox/lint/lib/python3.8/site-packages (from protobuf>=3.13.0->opentelemetry-proto==0.16.dev0) (1.15.0)
Requirement already satisfied: setuptools in ./.tox/lint/lib/python3.8/site-packages (from protobuf>=3.13.0->opentelemetry-proto==0.16.dev0) (50.2.0)
Collecting Werkzeug>=0.15
  Using cached Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
Requirement already satisfied: click>=5.1 in ./.tox/lint/lib/python3.8/site-packages (from flask~=1.0->opentelemetry-test==0.16.dev0) (7.1.2)
Collecting itsdangerous>=0.24
  Using cached itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting Jinja2>=2.10.1
  Using cached Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2020.11.8-py2.py3-none-any.whl (155 kB)
Collecting idna<3,>=2.5
  Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting chardet<4,>=3.0.2
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.1-py2.py3-none-any.whl (136 kB)
     |████████████████████████████████| 136 kB 3.5 MB/s
Collecting pytest>=3.6.0
  Using cached pytest-6.1.2-py3-none-any.whl (272 kB)
Collecting opentelemetry-instrumentation-wsgi==0.15b0
  Downloading opentelemetry_instrumentation_wsgi-0.15b0-py3-none-any.whl (9.6 kB)
Collecting MarkupSafe>=0.23
  Using cached MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl (16 kB)
Collecting py>=1.8.2
  Using cached py-1.9.0-py2.py3-none-any.whl (99 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting pluggy<1.0,>=0.12
  Using cached pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: toml in ./.tox/lint/lib/python3.8/site-packages (from pytest>=3.6.0->pytest-grpc->opentelemetry-exporter-otlp==0.16.dev0) (0.10.2)
Requirement already satisfied: packaging in ./.tox/lint/lib/python3.8/site-packages (from pytest>=3.6.0->pytest-grpc->opentelemetry-exporter-otlp==0.16.dev0) (20.4)
Requirement already satisfied: attrs>=17.4.0 in ./.tox/lint/lib/python3.8/site-packages (from pytest>=3.6.0->pytest-grpc->opentelemetry-exporter-otlp==0.16.dev0) (20.3.0)
Requirement already satisfied: pyparsing>=2.0.2 in ./.tox/lint/lib/python3.8/site-packages (from packaging->pytest>=3.6.0->pytest-grpc->opentelemetry-exporter-otlp==0.16.dev0) (2.4.7)
Installing collected packages: opentelemetry-api, opentelemetry-sdk, opentelemetry-instrumentation, protobuf, opentelemetry-proto, Werkzeug, itsdangerous, MarkupSafe, Jinja2, flask, opentelemetry-test, Deprecated, opentracing, opentelemetry-opentracing-shim, opencensus-proto, opentelemetry-exporter-opencensus, thrift, opentelemetry-exporter-jaeger, certifi, idna, chardet, urllib3, requests, opentelemetry-exporter-zipkin, prometheus-client, opentelemetry-exporter-prometheus, googleapis-common-protos, backoff, py, iniconfig, pluggy, pytest, pytest-grpc, opentelemetry-exporter-otlp, opentelemetry-instrumentation-requests, opentelemetry-instrumentation-wsgi, opentelemetry-instrumentation-flask, opentelemetry-example-app, error-handler-1, error-handler-0
  Attempting uninstall: opentelemetry-api
    Found existing installation: opentelemetry-api 0.16.dev0
    Uninstalling opentelemetry-api-0.16.dev0:
      Successfully uninstalled opentelemetry-api-0.16.dev0
  Running setup.py develop for opentelemetry-api
  Attempting uninstall: opentelemetry-sdk
    Found existing installation: opentelemetry-sdk 0.16.dev0
    Uninstalling opentelemetry-sdk-0.16.dev0:
      Successfully uninstalled opentelemetry-sdk-0.16.dev0
  Running setup.py develop for opentelemetry-sdk
  Running setup.py develop for opentelemetry-instrumentation
  Running setup.py develop for opentelemetry-proto
  Running setup.py develop for opentelemetry-test
  Running setup.py develop for opentelemetry-opentracing-shim
  Running setup.py develop for opentelemetry-exporter-opencensus
  Running setup.py develop for opentelemetry-exporter-jaeger
  Running setup.py develop for opentelemetry-exporter-zipkin
  Running setup.py develop for opentelemetry-exporter-prometheus
  Running setup.py develop for opentelemetry-exporter-otlp
  Running setup.py develop for opentelemetry-example-app
  Running setup.py develop for error-handler-1
  Running setup.py develop for error-handler-0
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

opentelemetry-instrumentation-requests 0.15b0 requires opentelemetry-api==0.15b0, but you'll have opentelemetry-api 0.16.dev0 which is incompatible.
opentelemetry-instrumentation-requests 0.15b0 requires opentelemetry-instrumentation==0.15b0, but you'll have opentelemetry-instrumentation 0.16.dev0 which is incompatible.
opentelemetry-instrumentation-wsgi 0.15b0 requires opentelemetry-api==0.15b0, but you'll have opentelemetry-api 0.16.dev0 which is incompatible.
opentelemetry-instrumentation-wsgi 0.15b0 requires opentelemetry-instrumentation==0.15b0, but you'll have opentelemetry-instrumentation 0.16.dev0 which is incompatible.
opentelemetry-instrumentation-flask 0.15b0 requires opentelemetry-api==0.15b0, but you'll have opentelemetry-api 0.16.dev0 which is incompatible.
opentelemetry-instrumentation-flask 0.15b0 requires opentelemetry-instrumentation==0.15b0, but you'll have opentelemetry-instrumentation 0.16.dev0 which is incompatible.
Successfully installed Deprecated-1.2.10 Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 backoff-1.10.0 certifi-2020.11.8 chardet-3.0.4 error-handler-0 error-handler-1 flask-1.1.2 googleapis-common-protos-1.52.0 idna-2.10 iniconfig-1.1.1 itsdangerous-1.1.0 opencensus-proto-0.1.0 opentelemetry-api opentelemetry-example-app opentelemetry-exporter-jaeger opentelemetry-exporter-opencensus opentelemetry-exporter-otlp opentelemetry-exporter-prometheus opentelemetry-exporter-zipkin opentelemetry-instrumentation opentelemetry-instrumentation-flask-0.15b0 opentelemetry-instrumentation-requests-0.15b0 opentelemetry-instrumentation-wsgi-0.15b0 opentelemetry-opentracing-shim opentelemetry-proto opentelemetry-sdk opentelemetry-test opentracing-2.3.0 pluggy-0.13.1 prometheus-client-0.8.0 protobuf-3.13.0 py-1.9.0 pytest-6.1.2 pytest-grpc-0.8.0 requests-2.25.0 thrift-0.13.0 urllib3-1.26.1
WARNING: You are using pip version 20.2.2; however, version 20.2.4 is available.
You should consider upgrading via the '/Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python/.tox/lint/bin/python -m pip install --upgrade pip' command.
lint run-test: commands[0] | python scripts/eachdist.py lint --check-only
>>> black . --diff --check
All done! ✨ 🍰 ✨
265 files would be left unchanged.
>>> isort --recursive . --diff --check-only
Skipped 670 files
>>> flake8 /Users/enowell/git/tracing-aws-xray-python/core/opentelemetry-python/core/opentelemetry-python
>>> pylint opentelemetry-api/setup.py opentelemetry-api/tests opentelemetry-api/src/opentelemetry opentelemetry-sdk/setup.py opentelemetry-sdk/tests opentelemetry-sdk/src/opentelemetry opentelemetry-instrumentation/setup.py opentelemetry-instrumentation/tests opentelemetry-instrumentation/src/opentelemetry opentelemetry-proto/setup.py opentelemetry-proto/tests opentelemetry-proto/src/opentelemetry tests/util/setup.py tests/util/src/opentelemetry instrumentation/opentelemetry-instrumentation-opentracing-shim/setup.py instrumentation/opentelemetry-instrumentation-opentracing-shim/tests instrumentation/opentelemetry-instrumentation-opentracing-shim/src/opentelemetry exporter/opentelemetry-exporter-opencensus/setup.py exporter/opentelemetry-exporter-opencensus/tests exporter/opentelemetry-exporter-opencensus/src/opentelemetry exporter/opentelemetry-exporter-jaeger/setup.py exporter/opentelemetry-exporter-jaeger/tests exporter/opentelemetry-exporter-jaeger/src/opentelemetry exporter/opentelemetry-exporter-jaeger/examples/jaeger_exporter_example.py exporter/opentelemetry-exporter-zipkin/setup.py exporter/opentelemetry-exporter-zipkin/tests exporter/opentelemetry-exporter-zipkin/src/opentelemetry exporter/opentelemetry-exporter-prometheus/setup.py exporter/opentelemetry-exporter-prometheus/tests exporter/opentelemetry-exporter-prometheus/src/opentelemetry exporter/opentelemetry-exporter-otlp/setup.py exporter/opentelemetry-exporter-otlp/tests exporter/opentelemetry-exporter-otlp/src/opentelemetry docs/examples/opentelemetry-example-app/setup.py docs/examples/opentelemetry-example-app/tests docs/examples/opentelemetry-example-app/src/opentelemetry_example_app docs/examples/error_hander/error_handler_1/setup.py docs/examples/error_hander/error_handler_1/src/error_handler_1 docs/examples/error_hander/error_handler_0/setup.py docs/examples/error_hander/error_handler_0/src/error_handler_0 scripts/check_for_valid_readme.py scripts/eachdist.py

------------------------------------
Your code has been rated at 10.00/10

>>> python scripts/check_for_valid_readme.py opentelemetry-api opentelemetry-sdk opentelemetry-instrumentation opentelemetry-proto tests/util instrumentation/opentelemetry-instrumentation-opentracing-shim exporter/opentelemetry-exporter-opencensus exporter/opentelemetry-exporter-jaeger exporter/opentelemetry-exporter-zipkin exporter/opentelemetry-exporter-prometheus exporter/opentelemetry-exporter-otlp docs/examples/opentelemetry-example-app docs/examples/error_hander/error_handler_1 docs/examples/error_hander/error_handler_0
All clear.
_____________________________________________________________________ summary ______________________________________________________________________
  lint: commands succeeded
  congratulations :)
 

Copy link
Contributor

@ocelotl ocelotl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this work @NathanielRN, moving the non-core components out of the core repo is a massive task 💪

You probably already have thought about this, having releases of the instrumentation packages should save us from having to clone the contrib repo, right? Is it something we plan on doing?

tox.ini Outdated Show resolved Hide resolved
@NathanielRN
Copy link
Contributor Author

@ocelotl Thanks for your review! 😄

Yes it's exactly like you said :) Once we're in GA and we have releases of all the packages, the Contrib repo packages will all be able to depend on them and install them from Pypi without any repo cloning. That way the progress of the Core Repo & Contrib Repos can be truly independent if we wish, yet we will still have tests to identify discrepancies.

@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch from 80559ba to a783036 Compare November 13, 2020 17:47
Copy link
Member

@aabmass aabmass left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One blocking comment, lmk what you think

@@ -53,7 +66,7 @@ jobs:
uses: actions/cache@v2
with:
path: .tox
key: tox-cache-${{ matrix.python-version }}-${{ matrix.package }}-${{ matrix.os }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}
key: tox-cache-${{ matrix.python-version }}-${{ matrix.package }}-${{ matrix.os }}-${{ hashFiles('tox.ini', 'dev-requirements.txt') }}-core
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is good, should keep the caches smaller

.github/workflows/test.yml Show resolved Hide resolved
.github/workflows/test.yml Show resolved Hide resolved
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch 2 times, most recently from 2e8258b to b833981 Compare November 19, 2020 17:49
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch 3 times, most recently from 0f9890a to 528b8b0 Compare November 19, 2020 20:27
@NathanielRN NathanielRN force-pushed the add-contrib-repo-tests-workflow branch from 528b8b0 to dd7ba78 Compare November 19, 2020 20:28
@@ -26,7 +26,6 @@ envlist =

; opentelemetry-example-app
py3{5,6,7,8}-test-core-example-app
pypy3-test-core-example-app
Copy link
Contributor Author

@NathanielRN NathanielRN Nov 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please note the removal of tests for the Example App on pypy3. The Example App uses grpcio which is not available on pypy packages.

@lzchen lzchen merged commit b5c766a into open-telemetry:master Nov 19, 2020
@NathanielRN NathanielRN deleted the add-contrib-repo-tests-workflow branch November 25, 2020 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release:required-for-ga To be resolved before GA release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants