Skip to content
This repository has been archived by the owner on Jun 4, 2024. It is now read-only.

Test Dash table against head of master and release-v1 #309

Merged
merged 10 commits into from
Dec 19, 2018

Conversation

Marc-Andre-Rivet
Copy link
Contributor

@Marc-Andre-Rivet Marc-Andre-Rivet commented Dec 19, 2018

Fixes https://github.com/plotly/dash-core/issues/20.

The table modification is a bit different from what will happen for the other repos as the master branch will support both the v0 and v1 of Dash.

  • server specific tests are run against both v0 and v1
  • python visual tests are run against both v0 and v1
  • execute against head version of release-v1 and master (this will need to be updated to release-v0 and master upon release of v1)
  • prevent caching on requirements (as it's a moving target)

@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 19:52 Inactive
@Marc-Andre-Rivet Marc-Andre-Rivet changed the title Issue20 test against head Test Dash table against head of master and release-v1 Dec 19, 2018
@Marc-Andre-Rivet
Copy link
Contributor Author

Marc-Andre-Rivet commented Dec 19, 2018

These checks do not exist anymore and have been supplanted.
ci/circleci: python-3.6
ci/circleci: test
percy/dash-table-python

Will remove them from the master branch checks and add the new ones in once this PR is completed.

@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 20:14 Inactive
@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 20:16 Inactive
@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 20:19 Inactive
@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 20:24 Inactive
paths:
- "venv"
Copy link
Contributor

Choose a reason for hiding this comment

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

Not keeping the venv in cache to make sure the latest is installed from git ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes

name: Run tests
command: |
. venv/bin/activate
npm run test-v0
Copy link
Contributor Author

Choose a reason for hiding this comment

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

test v0 stuff -- we only run server tests

@@ -54,7 +102,7 @@ jobs:
name: Run tests
command: |
. venv/bin/activate
npm run test
npm run test-v1
Copy link
Contributor Author

Choose a reason for hiding this comment

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

for v1 we run everything (server, standalone w/ React 16, unit tests)


- restore_cache:
key: deps1-{{ .Branch }}-{{ checksum "requirements.txt" }}
echo 'export PERCY_TOKEN="$PERCY_PYTHON_TOKEN_V0"' >> $BASH_ENV
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@@ -13,7 +13,8 @@
ID_PREFIX = "app_dropdown"
IDS = {
"dropdown": ID_PREFIX,
"dropdown-by-cell": '{}-row-by-cell'.format(ID_PREFIX)
"dropdown-by-cell": '{}-row-by-cell'.format(ID_PREFIX),
"dropdown-by-cell-deprecated": '{}-deprecated-row-by-cell'.format(ID_PREFIX)
Copy link
Contributor Author

@Marc-Andre-Rivet Marc-Andre-Rivet Dec 19, 2018

Choose a reason for hiding this comment

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

Not certain what happened but I think the recent change to renderer (keys/ids) is responsible for the regression -- both table NotifyObserver had the same key -- apparently causing the second one to disappear from the DOM entirely.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

release-v1 did not have this problem because the latest master changes haven't been merged in yet -- process yet to be put in place :)

Copy link
Collaborator

Choose a reason for hiding this comment

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

Oh interesting - that's probably going to bite us and our users a lot of places. Should we make it an exception on the Python side if you ever provide multiple components with matching id?

Copy link
Contributor

Choose a reason for hiding this comment

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

make it an exception on the Python side if you ever provide multiple components with matching id?

There is a duplicate ids check: plotly/dash#320

Copy link
Collaborator

Choose a reason for hiding this comment

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

There is a duplicate ids check: plotly/dash#320

why wasn't that triggered here?

Copy link
Contributor

Choose a reason for hiding this comment

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

Layout is dynamic, it doesn't work when that is the case.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Ah got it, didn't notice that. More reason to make a dynamic test -> plotly/dash#475 (comment)

@chriddyp chriddyp temporarily deployed to dash-table-review-pr-309 December 19, 2018 20:45 Inactive
Copy link
Collaborator

@alexcjohnson alexcjohnson left a comment

Choose a reason for hiding this comment

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

Assuming the heroku issue is to be solved on the heroku side and not here (which sounds right to me but let's confirm that the issue is with requirements.txt as discussed on slack) this all looks great to me! 💃

Werkzeug==0.14.1
wrapt==1.10.11
-r requirements-base.txt
-r requirements-v1.txt
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@alexcjohnson So interestingly Heroku does not seem super flexible about its setup procedure. The project has been tagged as Python and as far as I understand, that means it will look for setup.py, runtime.txt and requirements.txt -- so whatever weird multi version setup we have, we must play around that limitation.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Annoying, but nice solution!

@Marc-Andre-Rivet Marc-Andre-Rivet merged commit b0e386b into master Dec 19, 2018
@Marc-Andre-Rivet Marc-Andre-Rivet deleted the issue20-test-against-head branch July 18, 2019 12:51
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants