From dce50d4d67a3b1702367b3d9d432b532f774d5cb Mon Sep 17 00:00:00 2001 From: Emil Haldrup Eriksen Date: Thu, 10 Sep 2020 10:31:47 +0200 Subject: [PATCH 01/17] Update CONTRIBUTING.md Minor corrections to Contributor Guide --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 66163a461e..0ee5326666 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ $ git clone https://github.com/plotly/dash $ cd dash $ python3 -m venv .venv/dev # activate the virtualenv (on windows .venv\dev\scripts\activate) -$ . .venv/dev/bin/activate +$ source .venv/dev/bin/activate # install dash and dependencies $ pip install -e .[testing,dev] # in some shells you need \ to escape [] $ cd dash-renderer @@ -23,7 +23,7 @@ $ pip install -e . # build and install components used in tests $ cd .. # should be back in dash/ root directory $ npm install -$ npm run setup-tests +$ npm run setup-tests.py # or npm run setup-tests.R # you should see both dash and dash-renderer are pointed to local source repos $ pip list | grep dash ``` From ef59d48a33f7a60497b555fb0d7aecdfb0789bec Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Tue, 13 Oct 2020 14:30:29 -0400 Subject: [PATCH 02/17] julia non-core components: require Dash 0.1.3 --- dash/development/_jl_components_generation.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dash/development/_jl_components_generation.py b/dash/development/_jl_components_generation.py index be38e03cd8..981b249d31 100644 --- a/dash/development/_jl_components_generation.py +++ b/dash/development/_jl_components_generation.py @@ -84,9 +84,14 @@ [compat] julia = "1.2" -{base_package} = "0.1" +{base_package} = "{base_version}" """ +jl_base_version = { + "Dash": "0.1.3", + "DashBase": "0.1", +} + jl_component_include_string = 'include("{name}.jl")' jl_resource_tuple_string = """DashBase.Resource( @@ -417,12 +422,15 @@ def generate_toml_file(project_shortname, pkg_data): 'authors = ["{}"]\n'.format(package_author) if package_author else "" ) + base_package = base_package_name(project_shortname) + toml_string = jl_projecttoml_string.format( package_name=package_name, package_uuid=package_uuid, version=project_ver, authors=authors_string, - base_package=base_package_name(project_shortname), + base_package=base_package, + base_version=jl_base_version[base_package], dash_uuid=base_package_uid(project_shortname), ) file_path = "Project.toml" From e9e469b441e5e540a4dca4a33d3f37a33d2003dd Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Tue, 13 Oct 2020 14:39:58 -0400 Subject: [PATCH 03/17] julia non-core component gen fix changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe154d3fc9..d07758ebe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to `dash` will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/). +## [UNRELEASED] +### Fixed +- [#1434](https://github.com/plotly/dash/pull/1434) Fix [#1432](https://github.com/plotly/dash/issues/1432) for Julia to import non-core component packages without possible errors. + ## [1.16.3] - 2020-10-07 ### Fixed - [#1426](https://github.com/plotly/dash/pull/1426) Fix a regression caused by `flask-compress==1.6.0` causing performance degradation on server requests From 08b948dbf4365e5c22fd10ddb18b1e422c160b61 Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:28:08 -0400 Subject: [PATCH 04/17] Update README.md Updating product & feature descriptions --- README.md | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 440544e25f..caa3710259 100644 --- a/README.md +++ b/README.md @@ -29,14 +29,31 @@ Built on top of Plotly.js, React and Flask, Dash ties modern UI elements like dr To learn more about Dash, read the [extensive announcement letter](https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503) or [jump in with the user guide](https://plotly.com/dash). -### Contact and Support +### Dash OSS & Dash Enterprise -For companies with software budgets, Plotly offers +With Dash Open Source, Dash apps run on your local laptop or workstation, but cannot be easily accessed by others in your organization. -- [**Dash Deployment Server**](https://plotly.com/products/dash/) speeds your time-to-delivery while providing the right resources, security, and scalability you need to deliver production-quality apps -- [**Dash Design Kit**](https://plotly.com/products/dash/) makes your internal dashboard awesome without expertise in JavaScript & CSS. -- [**Snapshot Engine**](https://plotly.com/products/dash/) seamlessly links your analytics and reporting workflows together, giving you a fast way to generate interactive reports of just the data you need +Scale up with Dash Enterprise when your Dash app is ready for department or company-wide consumption. Or, launch your initiative with Dash Enterprise from the start to unlock developer productivity gains and hands-on acceleration from Plotly's team. -See [https://plotly.com/dash/support](https://plotly.com/dash/support) for ways to get in touch. +ML Ops Features: A one-stop shop for ML Ops: Horizontally scalable hosting, deployment, and authentication for your Dash apps. No IT or DevOps required. +- [**App manager**] (https://plotly.com/dash/app-manager/) Deploy & manage Dash apps without needing IT or a DevOps team. App Manager gives you point & click control over all aspects of your Dash deployments. +- [**Kubernetes scaling**] (https://plotly.com/dash/kubernetes/) Ensure high availability of Dash apps and scale horizontally with Dash Enterprise’s Kubernetes architecture. No IT or Helm required. +- [**No code auth**] (https://plotly.com/dash/authentication/) Control Dash app access in a few clicks. Dash Enterprise supports LDAP, AD, PKI, Okta, SAML, OpenID Connect, OAuth, SSO, and simple email authentication. +- [**Job Queue**] (https://plotly.com/dash/job-queue/) The Job Queue is the key to building scalable Dash apps. Move heavy computation from synchronous Dash callbacks to the Job Queue for asynchronous background processing. + +Low-Code Features: Low-code Dash app capabilities that supercharge developer productivity. +- [**Design Kit**] (https://plotly.com/dash/design-kit/) Design like a pro without writing a line of CSS. Easily arrange, style, brand, and customize your Dash apps. +- [**Snapshot Engine**] (https://plotly.com/dash/snapshot-engine/) Save & share Dash app views as links or PDFs. Or, run a Python job through Dash and have Snapshot Engine email a report when the job is done. +- [**Dashboard Toolkit**] (https://plotly.com/dash/toolkit/) Drag & drop layouts, chart editing, and crossfilter for your Dash apps. +- [**Embedding**](https://plotly.com/dash/embedding/) Natively embed Dash apps in an existing web application or website without the use of IFrames. + +Enterprise AI Features: Everything that your data science team needs to rapidly deliver AI/ML research and business initiatives. +- [**AI App Marketplace**] (https://plotly.com/dash/ai-and-ml-templates/) Dash Enterprise ships with dozens of Dash app templates for business problems where AI/ML is having the greatest impact. +- [**Big Data for Pything**] (https://plotly.com/dash/big-data-for-python/) Connect to Python's most popular big data back ends: Dask, Databricks, NVIDIA RAPIDS, Snowflake, Postgres, Vaex, and more. +- [**GPU & Dask Acceleration**] (https://plotly.com/dash/gpu-dask-acceleration/) Dash Enterprise puts Python’s most popular HPC stack for GPU and parallel CPU computing in the hands of business users. +- [**Data Science Workspaces**](https://plotly.com/dash/workspaces/) Be productive from Day 1. Write and execute Python, R, & Julia code from Dash Enterprise's onboard code editor. + + +See [https://plotly.com/contact-us/](https://plotly.com/contact-us/) to get in touch. ![image](https://user-images.githubusercontent.com/1280389/30084008-9fbc68fc-925e-11e7-891c-18a9b8f6ac6b.png) From a0e3e2fd9e6fec9a8551226f9bc523fd0b90a056 Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:35:03 -0400 Subject: [PATCH 05/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index caa3710259..15512fd6f7 100644 --- a/README.md +++ b/README.md @@ -56,4 +56,4 @@ Enterprise AI Features: Everything that your data science team needs to rapidly See [https://plotly.com/contact-us/](https://plotly.com/contact-us/) to get in touch. -![image](https://user-images.githubusercontent.com/1280389/30084008-9fbc68fc-925e-11e7-891c-18a9b8f6ac6b.png) +![image](https://images.prismic.io/plotly-marketing-website/493eec39-8467-4610-b9d0-d6ad3ea61423_Dash+Open+source%2BDash+enterprise2-01.jpg?auto=compress,format) From 760b4d311177864106966ecf3ae9a80cc4a72177 Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:38:12 -0400 Subject: [PATCH 06/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15512fd6f7..d4ec6a514d 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![LGTM Alerts](https://img.shields.io/lgtm/alerts/g/plotly/dash.svg)](https://lgtm.com/projects/g/plotly/dash/alerts) [![LGTM Grade](https://img.shields.io/lgtm/grade/python/g/plotly/dash.svg)](https://lgtm.com/projects/g/plotly/dash/context:python) -#### *Dash is a Python framework for building analytical web applications. No JavaScript required*. +#### *Dash is the most downloaded, trusted Python framework for building ML & data science web apps*. Built on top of Plotly.js, React and Flask, Dash ties modern UI elements like dropdowns, sliders, and graphs directly to your analytical Python code. Read our tutorial proudly crafted ❤️ by Dash itself. From dddf356ace1ac7061930297815dd1a73a6fece80 Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:39:11 -0400 Subject: [PATCH 07/17] Update README.md --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d4ec6a514d..03b794e74f 100644 --- a/README.md +++ b/README.md @@ -36,21 +36,21 @@ With Dash Open Source, Dash apps run on your local laptop or workstation, but ca Scale up with Dash Enterprise when your Dash app is ready for department or company-wide consumption. Or, launch your initiative with Dash Enterprise from the start to unlock developer productivity gains and hands-on acceleration from Plotly's team. ML Ops Features: A one-stop shop for ML Ops: Horizontally scalable hosting, deployment, and authentication for your Dash apps. No IT or DevOps required. -- [**App manager**] (https://plotly.com/dash/app-manager/) Deploy & manage Dash apps without needing IT or a DevOps team. App Manager gives you point & click control over all aspects of your Dash deployments. -- [**Kubernetes scaling**] (https://plotly.com/dash/kubernetes/) Ensure high availability of Dash apps and scale horizontally with Dash Enterprise’s Kubernetes architecture. No IT or Helm required. -- [**No code auth**] (https://plotly.com/dash/authentication/) Control Dash app access in a few clicks. Dash Enterprise supports LDAP, AD, PKI, Okta, SAML, OpenID Connect, OAuth, SSO, and simple email authentication. -- [**Job Queue**] (https://plotly.com/dash/job-queue/) The Job Queue is the key to building scalable Dash apps. Move heavy computation from synchronous Dash callbacks to the Job Queue for asynchronous background processing. +- [**App manager**](https://plotly.com/dash/app-manager/) Deploy & manage Dash apps without needing IT or a DevOps team. App Manager gives you point & click control over all aspects of your Dash deployments. +- [**Kubernetes scaling**](https://plotly.com/dash/kubernetes/) Ensure high availability of Dash apps and scale horizontally with Dash Enterprise’s Kubernetes architecture. No IT or Helm required. +- [**No code auth**](https://plotly.com/dash/authentication/) Control Dash app access in a few clicks. Dash Enterprise supports LDAP, AD, PKI, Okta, SAML, OpenID Connect, OAuth, SSO, and simple email authentication. +- [**Job Queue**](https://plotly.com/dash/job-queue/) The Job Queue is the key to building scalable Dash apps. Move heavy computation from synchronous Dash callbacks to the Job Queue for asynchronous background processing. Low-Code Features: Low-code Dash app capabilities that supercharge developer productivity. -- [**Design Kit**] (https://plotly.com/dash/design-kit/) Design like a pro without writing a line of CSS. Easily arrange, style, brand, and customize your Dash apps. -- [**Snapshot Engine**] (https://plotly.com/dash/snapshot-engine/) Save & share Dash app views as links or PDFs. Or, run a Python job through Dash and have Snapshot Engine email a report when the job is done. -- [**Dashboard Toolkit**] (https://plotly.com/dash/toolkit/) Drag & drop layouts, chart editing, and crossfilter for your Dash apps. +- [**Design Kit**](https://plotly.com/dash/design-kit/) Design like a pro without writing a line of CSS. Easily arrange, style, brand, and customize your Dash apps. +- [**Snapshot Engine**](https://plotly.com/dash/snapshot-engine/) Save & share Dash app views as links or PDFs. Or, run a Python job through Dash and have Snapshot Engine email a report when the job is done. +- [**Dashboard Toolkit**](https://plotly.com/dash/toolkit/) Drag & drop layouts, chart editing, and crossfilter for your Dash apps. - [**Embedding**](https://plotly.com/dash/embedding/) Natively embed Dash apps in an existing web application or website without the use of IFrames. Enterprise AI Features: Everything that your data science team needs to rapidly deliver AI/ML research and business initiatives. -- [**AI App Marketplace**] (https://plotly.com/dash/ai-and-ml-templates/) Dash Enterprise ships with dozens of Dash app templates for business problems where AI/ML is having the greatest impact. -- [**Big Data for Pything**] (https://plotly.com/dash/big-data-for-python/) Connect to Python's most popular big data back ends: Dask, Databricks, NVIDIA RAPIDS, Snowflake, Postgres, Vaex, and more. -- [**GPU & Dask Acceleration**] (https://plotly.com/dash/gpu-dask-acceleration/) Dash Enterprise puts Python’s most popular HPC stack for GPU and parallel CPU computing in the hands of business users. +- [**AI App Marketplace**](https://plotly.com/dash/ai-and-ml-templates/) Dash Enterprise ships with dozens of Dash app templates for business problems where AI/ML is having the greatest impact. +- [**Big Data for Pything**](https://plotly.com/dash/big-data-for-python/) Connect to Python's most popular big data back ends: Dask, Databricks, NVIDIA RAPIDS, Snowflake, Postgres, Vaex, and more. +- [**GPU & Dask Acceleration**](https://plotly.com/dash/gpu-dask-acceleration/) Dash Enterprise puts Python’s most popular HPC stack for GPU and parallel CPU computing in the hands of business users. - [**Data Science Workspaces**](https://plotly.com/dash/workspaces/) Be productive from Day 1. Write and execute Python, R, & Julia code from Dash Enterprise's onboard code editor. From d222ca6e100d758840912fc2f639c8608cded0ce Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:41:02 -0400 Subject: [PATCH 08/17] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 03b794e74f..15fcb630d8 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ Built on top of Plotly.js, React and Flask, Dash ties modern UI elements like dr - [Dash Docs on Heroku](https://dash-docs.herokuapp.com/) (for corporate network that cannot access plotly.com) +- [Open-Source App Gallery] (https://dash-gallery.plotly.host/Portal/) With sample code and templates! + ### App Samples | App | Description | From d98e177036c6d1d46366cb18a2f0a7a35612dbcf Mon Sep 17 00:00:00 2001 From: Jingning Zhang <50333592+jingningzhang1@users.noreply.github.com> Date: Fri, 16 Oct 2020 17:42:08 -0400 Subject: [PATCH 09/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15fcb630d8..76868b5cff 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Built on top of Plotly.js, React and Flask, Dash ties modern UI elements like dr - [Dash Docs on Heroku](https://dash-docs.herokuapp.com/) (for corporate network that cannot access plotly.com) -- [Open-Source App Gallery] (https://dash-gallery.plotly.host/Portal/) With sample code and templates! +- [Open-Source App Gallery](https://dash-gallery.plotly.host/Portal/) With sample code and templates! ### App Samples From e6f133cb243bfae87801e29f666a0528be84319f Mon Sep 17 00:00:00 2001 From: Ryan Patrick Kyle Date: Wed, 21 Oct 2020 17:27:30 -0400 Subject: [PATCH 10/17] Use authenticated Docker pulls (#1425) --- .circleci/config.yml | 108 ++++++++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 33 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 11b13e5df1..072b75ed35 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,12 +5,18 @@ jobs: percy-finalize: docker: - image: percyio/agent + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB steps: - run: percy finalize --all artifacts: docker: - image: circleci/python:3.7.6-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python37 steps: @@ -28,6 +34,9 @@ jobs: working_directory: ~/dash docker: - image: circleci/python:3.7.6-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYLINTRC: .pylintrc37 PYVERSION: python37 @@ -65,6 +74,9 @@ jobs: <<: *lint-unit docker: - image: circleci/python:3.6.9-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYLINTRC: .pylintrc PYVERSION: python36 @@ -73,6 +85,9 @@ jobs: <<: *lint-unit docker: - image: circleci/python:2.7.18-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYLINTRC: .pylintrc PYVERSION: python27 @@ -81,6 +96,9 @@ jobs: working_directory: ~/dash docker: - image: circleci/python:3.7.6-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python37 steps: @@ -116,6 +134,9 @@ jobs: <<: *build-core docker: - image: circleci/python:3.6.9-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python36 @@ -123,6 +144,9 @@ jobs: <<: *build-core docker: - image: circleci/python:2.7.18-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python27 @@ -130,6 +154,9 @@ jobs: working_directory: ~/dash docker: - image: circleci/python:3.7.6-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python37 @@ -166,6 +193,9 @@ jobs: <<: *build-misc docker: - image: circleci/python:3.6.9-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python36 @@ -173,10 +203,13 @@ jobs: <<: *build-misc docker: - image: circleci/python:2.7.18-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PYVERSION: python27 - build-windows-37: &build-windows + build-windows-37: working_directory: ~/dash executor: name: win/default @@ -186,37 +219,21 @@ jobs: steps: - checkout - run: echo $PYVERSION > ver.txt - - restore_cache: - key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }} - - run: - name: ️️🏗️ pip dev requirements - command: | - pip install --upgrade virtualenv - virtualenv venv - source venv/Scripts/activate - sed -i '/dash-/d' requires-install.txt - pip install -e . --no-cache-dir -r requires-install.txt -r requires-dev.txt -r requires-testing.txt --progress-bar off - - save_cache: - key: dep-{{ checksum ".circleci/config.yml" }}-{{ checksum "ver.txt" }}-{{ checksum "requires-dev.txt" }}-{{ checksum "requires-install.txt" }}-{{ checksum "requires-testing.txt" }} - paths: - - venv - run: name: ️️🏗️ build core command: | - source venv/Scripts/activate && pip install --no-cache-dir --upgrade -e . --progress-bar off && mkdir packages + pip install --no-cache-dir --upgrade -e .[dev,testing] --progress-bar off cd dash-renderer && renderer build && python setup.py sdist && mv dist/* ../packages/ && cd .. git clone --depth 1 https://github.com/plotly/dash-core-components.git - cd dash-core-components && npm ci && npm run build && python setup.py sdist && mv dist/* ../packages/ && cd .. - ls -la packages - - persist_to_workspace: - root: ~/dash - paths: - - packages/*.tar.gz + cd dash-core-components && npm ci && npm run build && python setup.py sdist && cd .. build-dashr: working_directory: ~/dashr docker: - image: plotly/dashr:ci + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PERCY_PARALLEL_TOTAL: -1 PYVERSION: python37 @@ -325,6 +342,9 @@ jobs: working_directory: ~/dash docker: - image: circleci/python:3.7.6-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PERCY_PARALLEL_TOTAL: -1 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: True @@ -367,6 +387,9 @@ jobs: <<: *test docker: - image: circleci/python:3.6.9-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PERCY_ENABLE: 0 PYVERSION: python36 @@ -375,6 +398,9 @@ jobs: <<: *test docker: - image: circleci/python:2.7.18-stretch-node-browsers + auth: + username: dashautomation + password: $DASH_PAT_DOCKERHUB environment: PERCY_ENABLE: 0 PYVERSION: python27 @@ -383,20 +409,28 @@ workflows: version: 2 python3.7: jobs: - - lint-unit-37 - - build-core-37 - - build-windows-37 - - build-misc-37 - - build-dashr + - lint-unit-37: + context: dash-docker-hub + - build-core-37: + context: dash-docker-hub + - build-windows-37: + context: dash-docker-hub + - build-misc-37: + context: dash-docker-hub + - build-dashr: + context: dash-docker-hub - test-37: + context: dash-docker-hub requires: - build-core-37 - build-misc-37 - percy-finalize: + context: dash-docker-hub requires: - build-dashr - test-37 - artifacts: + context: dash-docker-hub requires: - percy-finalize filters: @@ -409,19 +443,27 @@ workflows: python3.6: jobs: - - lint-unit-36 - - build-core-36 - - build-misc-36 + - lint-unit-36: + context: dash-docker-hub + - build-core-36: + context: dash-docker-hub + - build-misc-36: + context: dash-docker-hub - test-36: + context: dash-docker-hub requires: - build-core-36 - build-misc-36 python2.7: jobs: - - lint-unit-27 - - build-core-27 - - build-misc-27 + - lint-unit-27: + context: dash-docker-hub + - build-core-27: + context: dash-docker-hub + - build-misc-27: + context: dash-docker-hub - test-27: + context: dash-docker-hub requires: - build-core-27 - build-misc-27 From 21dd1484914c9fd1da88d0bda395aaa7c2cdade5 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Tue, 27 Oct 2020 09:12:27 -0400 Subject: [PATCH 11/17] comment on `.` vs `source` --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0ee5326666..66166e84c5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,7 +9,9 @@ Glad that you decided to make your contribution in Dash, to set up your developm $ git clone https://github.com/plotly/dash $ cd dash $ python3 -m venv .venv/dev -# activate the virtualenv (on windows .venv\dev\scripts\activate) +# activate the virtualenv +# on windows `.venv\dev\scripts\activate` +# on some linux / mac environments, use `.` instead of `source` $ source .venv/dev/bin/activate # install dash and dependencies $ pip install -e .[testing,dev] # in some shells you need \ to escape [] From be305f0faf24db1a2f3c58c7afb94a0c4d529e05 Mon Sep 17 00:00:00 2001 From: Almar Klein Date: Thu, 29 Oct 2020 10:42:28 +0100 Subject: [PATCH 12/17] Improve error message --- dash/dash.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dash/dash.py b/dash/dash.py index 71ae894a24..68ebcfe3fb 100644 --- a/dash/dash.py +++ b/dash/dash.py @@ -1068,7 +1068,10 @@ def dispatch(self): args = inputs_to_vals(inputs + state) - func = self.callback_map[output]["callback"] + try: + func = self.callback_map[output]["callback"] + except KeyError: + raise KeyError("Callback not found, maybe you forgot to prepend the '@'?") response.set_data(func(*args, outputs_list=outputs_list)) return response From aa7c669de8942b1ada5f967c03cfe0fa96a08d3a Mon Sep 17 00:00:00 2001 From: Almar Klein Date: Thu, 29 Oct 2020 10:50:35 +0100 Subject: [PATCH 13/17] add to changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d07758ebe9..d1df77b5ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ This project adheres to [Semantic Versioning](https://semver.org/). ### Fixed - [#1434](https://github.com/plotly/dash/pull/1434) Fix [#1432](https://github.com/plotly/dash/issues/1432) for Julia to import non-core component packages without possible errors. +### Changed +- [#1448](https://github.com/plotly/dash/pull/1448) Provide a hint in the callback error when the user forgot to make `app.callback(...)` a decorator. + ## [1.16.3] - 2020-10-07 ### Fixed - [#1426](https://github.com/plotly/dash/pull/1426) Fix a regression caused by `flask-compress==1.6.0` causing performance degradation on server requests From d711f61bb5da32e2e44d8e7eca16be51d3fef6c3 Mon Sep 17 00:00:00 2001 From: Antoine Roy-Gobeil Date: Thu, 29 Oct 2020 10:32:00 -0400 Subject: [PATCH 14/17] Update react(-dom) from 16.13.0 to 16.14.0 (#1442) --- CHANGELOG.md | 2 ++ dash-renderer/package-lock.json | 20 ++++++++++---------- dash-renderer/package.json | 4 ++-- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d07758ebe9..94983377bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ All notable changes to `dash` will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/). ## [UNRELEASED] +### Changed +- [#1442](https://github.com/plotly/dash/pull/1442) Update from React 16.13.0 to 16.14.0 ### Fixed - [#1434](https://github.com/plotly/dash/pull/1434) Fix [#1432](https://github.com/plotly/dash/issues/1432) for Julia to import non-core component packages without possible errors. diff --git a/dash-renderer/package-lock.json b/dash-renderer/package-lock.json index 08721b8032..a9c0835499 100644 --- a/dash-renderer/package-lock.json +++ b/dash-renderer/package-lock.json @@ -16428,9 +16428,9 @@ } }, "react": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", - "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -16447,14 +16447,14 @@ } }, "react-dom": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", - "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.19.0" + "scheduler": "^0.19.1" } }, "react-is": { @@ -17302,9 +17302,9 @@ } }, "scheduler": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", - "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" diff --git a/dash-renderer/package.json b/dash-renderer/package.json index 93c0121d83..f4362d432c 100644 --- a/dash-renderer/package.json +++ b/dash-renderer/package.json @@ -35,9 +35,9 @@ "prop-types": "15.7.2", "radium": "^0.26.0", "ramda": "^0.27.0", - "react": "16.13.0", + "react": "16.14.0", "react-cytoscapejs": "^1.2.1", - "react-dom": "16.13.0", + "react-dom": "16.14.0", "react-json-tree": "^0.11.2", "react-redux": "^7.2.0", "redux": "^4.0.5", From 22e3a502575b4fa49ec55afd211a926f4f13a203 Mon Sep 17 00:00:00 2001 From: Almar Klein Date: Thu, 29 Oct 2020 16:01:26 +0100 Subject: [PATCH 15/17] include output id in error message --- dash/dash.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dash/dash.py b/dash/dash.py index 68ebcfe3fb..54fc4c9be5 100644 --- a/dash/dash.py +++ b/dash/dash.py @@ -1071,7 +1071,8 @@ def dispatch(self): try: func = self.callback_map[output]["callback"] except KeyError: - raise KeyError("Callback not found, maybe you forgot to prepend the '@'?") + msg = "Callback function not found for output '{}', perhaps you forgot to prepend the '@'?" + raise KeyError(msg.format(output)) response.set_data(func(*args, outputs_list=outputs_list)) return response From 91682ee15fbf67ce02851a0e646ff018a2eef01d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andre=CC=81=20Rivet?= Date: Thu, 29 Oct 2020 14:47:04 -0400 Subject: [PATCH 16/17] bump version to 1.17.0 --- CHANGELOG.md | 2 +- dash-renderer/package-lock.json | 2 +- dash-renderer/package.json | 2 +- dash/version.py | 2 +- requires-install.txt | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7c535be5f..31313657eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to `dash` will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/). -## [UNRELEASED] +## [1.17.0] - 2020-10-29 ### Changed - [#1442](https://github.com/plotly/dash/pull/1442) Update from React 16.13.0 to 16.14.0 ### Fixed diff --git a/dash-renderer/package-lock.json b/dash-renderer/package-lock.json index a9c0835499..1f007f19d9 100644 --- a/dash-renderer/package-lock.json +++ b/dash-renderer/package-lock.json @@ -1,6 +1,6 @@ { "name": "dash-renderer", - "version": "1.8.2", + "version": "1.8.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/dash-renderer/package.json b/dash-renderer/package.json index f4362d432c..6b3a4e1e9f 100644 --- a/dash-renderer/package.json +++ b/dash-renderer/package.json @@ -1,6 +1,6 @@ { "name": "dash-renderer", - "version": "1.8.2", + "version": "1.8.3", "description": "render dash components in react", "main": "dash_renderer/dash_renderer.min.js", "scripts": { diff --git a/dash/version.py b/dash/version.py index 6cc7415d1a..30244104a5 100644 --- a/dash/version.py +++ b/dash/version.py @@ -1 +1 @@ -__version__ = "1.16.3" +__version__ = "1.17.0" diff --git a/requires-install.txt b/requires-install.txt index a507a14e2f..63cc4854e7 100644 --- a/requires-install.txt +++ b/requires-install.txt @@ -1,8 +1,8 @@ Flask>=1.0.2 flask-compress plotly -dash_renderer==1.8.2 -dash-core-components==1.12.1 +dash_renderer>=1.8.2 +dash-core-components>=1.12.1 dash-html-components==1.1.1 -dash-table==4.10.1 +dash-table>=4.10.1 future From 6f01d52d77346cd06653fd7b9d02aab786823aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andre=CC=81=20Rivet?= Date: Thu, 29 Oct 2020 16:36:26 -0400 Subject: [PATCH 17/17] stricten verions --- requires-install.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requires-install.txt b/requires-install.txt index 63cc4854e7..adc499b804 100644 --- a/requires-install.txt +++ b/requires-install.txt @@ -1,8 +1,8 @@ Flask>=1.0.2 flask-compress plotly -dash_renderer>=1.8.2 -dash-core-components>=1.12.1 +dash_renderer==1.8.3 +dash-core-components==1.13.0 dash-html-components==1.1.1 -dash-table>=4.10.1 +dash-table==4.11.0 future