Coder Social home page Coder Social logo

dash-feedstock's Introduction

About dash-feedstock

Feedstock license: BSD-3-Clause

Home: https://plot.ly/dash

Package license: MIT

Summary: A Python framework for building reactive web-apps.

Development: https://github.com/plotly/dash

Documentation: https://dash.plotly.com

Current build status

All platforms:

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Installing dash

Installing dash from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, dash can be installed with conda:

conda install dash

or with mamba:

mamba install dash

It is possible to list all of the versions of dash available on your platform with conda:

conda search dash --channel conda-forge

or with mamba:

mamba search dash --channel conda-forge

Alternatively, mamba repoquery may provide more information:

# Search all versions available on your platform:
mamba repoquery search dash --channel conda-forge

# List packages depending on `dash`:
mamba repoquery whoneeds dash --channel conda-forge

# List dependencies of `dash`:
mamba repoquery depends dash --channel conda-forge

About conda-forge

Powered by NumFOCUS

conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a feedstock.

A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by Azure, GitHub, CircleCI, AppVeyor, Drone, and TravisCI it is possible to build and upload installable packages to the conda-forge anaconda.org channel for Linux, Windows and OSX respectively.

To manage the continuous integration and simplify feedstock maintenance conda-smithy has been developed. Using the conda-forge.yml within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with conda smithy rerender.

For more information please check the conda-forge documentation.

Terminology

feedstock - the conda recipe (raw material), supporting scripts and CI configuration.

conda-smithy - the tool which helps orchestrate the feedstock. Its primary use is in the construction of the CI .yml files and simplify the management of many feedstocks.

conda-forge - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions)

Updating dash-feedstock

If you would like to improve the dash recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the conda-forge channel, whereupon the built conda packages will be available for everybody to install and use from the conda-forge channel. Note that all branches in the conda-forge/dash-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions.

In order to produce a uniquely identifiable distribution:

  • If the version of a package is not being increased, please add or increase the build/number.
  • If the version of a package is being increased, please remember to return the build/number back to 0.

Feedstock Maintainers

dash-feedstock's People

Contributors

bandersen23 avatar beckermr avatar conda-forge-admin avatar conda-forge-curator[bot] avatar github-actions[bot] avatar moorepants avatar regro-cf-autotick-bot avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dash-feedstock's Issues

Process for updating this feedstock

Dash has an atypical way of setting dependencies in their PyPi released Python distributions (at least for a Python distribution that is used as a library). You can read about this in plotly/dash#1062 if interested. Thus, the purpose of this issue is to describe the current process we use to ensure this feedstock is properly built for conda's dependency resolver.

dash-feedstock depends on a number of other conda-forge packages but these four other dash/plotly maintained packages need special attention:

When a new dash version is released, one or more of the above packages will (almost always) also be released. The dash Python distribution released on PyPi pins to specific version of the above packages (even though the source code in the dash distribution doesn't actually depend on them). You can find those pins in this file in the dash repo:

https://github.com/plotly/dash/blob/dev/requires-install.txt

Make sure to view the requires-install.txt file for that specific dash version tag (I select that tag on the github repo then view the file). You'll need to record these pin values.

Steps:

  1. The conda-forge autotick bot will recognize newly uploaded dash related packages. Wait for it to make PRs to all of the relevant packages (they usually happen almost simultaneously because they are released almost simultaneously on PyPi).
  2. Merge the PRs for the dash-*-feedstock packages first. So far, these do not need any attention to their dependencies and you can merge once the conda-forge CI passes. Most are simply wrappers to javascript code and the javascript dependencies are packaged in the Python distribution.
  3. Wait a bit for all of the packages to be uploaded to anaconda.org and the CDNs updated so the new packages can be downloaded.
  4. Edit the meta.yaml file in the dash-feedstock PR so that the dependency pins are all correct. You may need to also bump some of the other dependencies too (like flask, etc), but rarely.
  5. Once the conda-forge CI passes then you can merge the new Dash version.

Note that I also try to push conda packages for every released version of Dash (not skipping any). Sometimes the dash maintainers will release 2 or 3 dash versions in one day. I do the above process for each version starting with the lowest version number so that all versions of dash are available on conda if someone needs them.

dash[testing] to install additional dependencies it requires

Issue

I'd like to be able to install dash[testing] package, and have all the dependencies required for testing to be installed too.

I've gotten around this limitation by copying the dependencies defined above into my environment.yml.


Environment (conda list):
$ conda list
# Name                    Version                   Build  Channel
astroid                   2.9.0            py39hcbf5309_0    conda-forge
atomicwrites              1.4.0              pyh9f0ad1d_0    conda-forge
attrs                     21.2.0             pyhd8ed1ab_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.10.0             pyha770c72_0    conda-forge
black                     21.11b1            pyhd8ed1ab_0    conda-forge
black-jupyter             21.11b1              hd8ed1ab_0    conda-forge
brotli-python             1.0.9            py39h415ef7b_6    conda-forge
brotlipy                  0.7.0           py39hb82d6ee_1003    conda-forge
ca-certificates           2021.10.8            h5b45459_0    conda-forge
certifi                   2021.10.8        py39hcbf5309_1    conda-forge
cffi                      1.15.0           py39h0878f49_0    conda-forge
charset-normalizer        2.0.8              pyhd8ed1ab_0    conda-forge
click                     8.0.3            py39hcbf5309_1    conda-forge
colorama                  0.4.4              pyh9f0ad1d_0    conda-forge
configparser              5.1.0              pyhd8ed1ab_0    conda-forge
crayons                   0.4.0              pyh9f0ad1d_0    conda-forge
cryptography              36.0.0           py39h7bc7c5c_0    conda-forge
dash                      2.0.0              pyhd8ed1ab_0    conda-forge
dataclasses               0.8                pyhc8e2a94_3    conda-forge
decorator                 5.1.0              pyhd8ed1ab_0    conda-forge
flask                     2.0.2              pyhd8ed1ab_0    conda-forge
flask-compress            1.10.1             pyhd8ed1ab_0    conda-forge
idna                      3.1                pyhd3deb0d_0    conda-forge
iniconfig                 1.1.1              pyh9f0ad1d_0    conda-forge
intel-openmp              2021.4.0          h57928b3_3556    conda-forge
ipython                   7.30.0           py39hcbf5309_0    conda-forge
isort                     5.10.1             pyhd8ed1ab_0    conda-forge
itsdangerous              2.0.1              pyhd8ed1ab_0    conda-forge
jedi                      0.18.1           py39hcbf5309_0    conda-forge
jinja2                    3.0.3              pyhd8ed1ab_0    conda-forge
lazy-object-proxy         1.6.0            py39hb82d6ee_1    conda-forge
libblas                   3.9.0              12_win64_mkl    conda-forge
libcblas                  3.9.0              12_win64_mkl    conda-forge
libiconv                  1.16                 he774522_0    conda-forge
liblapack                 3.9.0              12_win64_mkl    conda-forge
libxml2                   2.9.12               hf5bbc77_1    conda-forge
libxslt                   1.1.33               h65864e5_3    conda-forge
libzlib                   1.2.11            h8ffe710_1013    conda-forge
lxml                      4.6.4            py39h4fd7cdf_0    conda-forge
markupsafe                2.0.1            py39hb82d6ee_1    conda-forge
matplotlib-inline         0.1.3              pyhd8ed1ab_0    conda-forge
mccabe                    0.6.1                      py_1    conda-forge
mkl                       2021.4.0           h0e2418a_729    conda-forge
more-itertools            8.12.0             pyhd8ed1ab_0    conda-forge
mypy_extensions           0.4.3            py39hcbf5309_4    conda-forge
numpy                     1.21.4           py39h6635163_0    conda-forge
openssl                   1.1.1l               h8ffe710_0    conda-forge
packaging                 21.3               pyhd8ed1ab_0    conda-forge
pandas                    1.3.4            py39h2e25243_1    conda-forge
parso                     0.8.2              pyhd8ed1ab_0    conda-forge
pathspec                  0.9.0              pyhd8ed1ab_0    conda-forge
percy                     2.0.2              pyhd8ed1ab_0    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pip                       21.3.1             pyhd8ed1ab_0    conda-forge
platformdirs              2.3.0              pyhd8ed1ab_0    conda-forge
plotly                    5.4.0              pyhd8ed1ab_0    conda-forge
pluggy                    1.0.0            py39hcbf5309_2    conda-forge
prompt-toolkit            3.0.22             pyha770c72_0    conda-forge
py                        1.11.0             pyh6c4a22f_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pygments                  2.10.0             pyhd8ed1ab_0    conda-forge
pylint                    2.12.1             pyhd8ed1ab_0    conda-forge
pyopenssl                 21.0.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.6              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1            py39hcbf5309_4    conda-forge
pytest                    6.2.5            py39hcbf5309_1    conda-forge
python                    3.9.7           h7840368_3_cpython    conda-forge
python-chromedriver-binary 96.0.4664.45.0   py39hcbf5309_0    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.3             pyhd8ed1ab_0    conda-forge
regex                     2021.11.10       py39hb82d6ee_0    conda-forge
requests                  2.26.0             pyhd8ed1ab_1    conda-forge
selenium                  3.141.0         py39hb82d6ee_1003    conda-forge
setuptools                59.4.0           py39hcbf5309_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
soupsieve                 2.3                pyhd8ed1ab_0    conda-forge
sqlite                    3.37.0               h8ffe710_0    conda-forge
tbb                       2021.4.0             h2d74725_1    conda-forge
tenacity                  8.0.1              pyhd8ed1ab_0    conda-forge
tokenize-rt               4.2.1              pyhd8ed1ab_0    conda-forge
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
tomli                     1.2.2              pyhd8ed1ab_0    conda-forge
traitlets                 5.1.1              pyhd8ed1ab_0    conda-forge
typed-ast                 1.5.0            py39hb82d6ee_0    conda-forge
typing-extensions         4.0.0                hd8ed1ab_0    conda-forge
typing_extensions         4.0.0              pyha770c72_0    conda-forge
tzdata                    2021e                he74cb21_0    conda-forge
ucrt                      10.0.20348.0         h57928b3_0    conda-forge
urllib3                   1.26.7             pyhd8ed1ab_0    conda-forge
vc                        14.2                 hb210afc_5    conda-forge
vs2015_runtime            14.29.30037          h902a5da_5    conda-forge
waitress                  2.0.0              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
webdriver-manager         3.5.2              pyhd8ed1ab_0    conda-forge
werkzeug                  2.0.1              pyhd8ed1ab_0    conda-forge
wheel                     0.37.0             pyhd8ed1ab_1    conda-forge
win_inet_pton             1.1.0            py39hcbf5309_3    conda-forge
wrapt                     1.13.3           py39hb82d6ee_1    conda-forge
xz                        5.2.5                h62dcd97_1    conda-forge
zlib                      1.2.11            h8ffe710_1013    conda-forge

Details about conda and system ( conda info ):
$ conda info

     active environment : data_dashboards
    active env location : D:\Users\adrian.clay\.conda\envs\data_dashboards
            shell level : 1
       user config file : D:\Users\adrian.clay\.condarc
 populated config files : D:\Users\adrian.clay\.condarc
          conda version : 4.10.3
    conda-build version : 3.17.6
         python version : 3.7.1.final.0
       virtual packages : __win=0=0
                          __archspec=1=x86_64
       base environment : D:\Python37  (read only)
      conda av data dir : D:\Python37\etc\conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : D:\Python37\pkgs
                          D:\Users\adrian.clay\.conda\pkgs
                          D:\Users\adrian.clay\AppData\Local\conda\conda\pkgs
       envs directories : D:\Users\adrian.clay\.conda\envs
                          D:\Python37\envs
                          D:\Users\adrian.clay\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.10.3 requests/2.21.0 CPython/3.7.1 Windows/10 Windows/10.0.14393
          administrator : False
             netrc file : None
           offline mode : False

Need to enforce newer versions of dash dependencies when installing dash

See conversation here and here

The versions of dash-core-components, dash-html-components and dash-table on the main anaconda repo are out of date compared to the version of the dash main package. This leads to problems such as pattern matching callbacks failing silently even though the version requirement for the feature has seemingly been met.

My suggestion is to enforce minimum version requirements of the dependencies for dash main package installs, which I'm guessing/hoping would force newer versions of these dependencies to be moved from conda-forge to the anaconda main repo with future anaconda releases.

pytest plugin does not load with dash >= 2.9.0

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

Since dash 2.9.0, the pytest plugin does not load unless the dependency "dash_testing_stub" is installed. This change breaks tests that rely on the plugin. See plotly/dash#2417

Upstream recommends installing pip install dash[testing] to get the tests to pass (similar to issue #100)

I believe we can restore the previous behaviour in a straightforward way by installing dash_testing_stub.

Installed packages

n/a

Environment info

n/a

Merge outstanding pull requests

There are four outstanding pull requests from regro-cf-autotick-bot for versions 1.5.0, 1.5.1, 1.6.0 and 1.6.1. These are good to merge, right?

Also, how do we get the bot to make a pull request for 1.7.0? It came out over a month ago

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.