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

Release 1.3.0 #217

Merged
merged 61 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
745610a
remove undefined export
sjkelly Mar 6, 2023
fec98eb
remove set/get_name for PlotlyApp. It does not exist
sjkelly Mar 6, 2023
5ef136c
remove free TypeVar
sjkelly Mar 6, 2023
2767e8f
add Aqua.jl for general QA testing
sjkelly Mar 7, 2023
e535a1a
Merge pull request #192 from sjkelly/sjk/misc1
etpinard Mar 9, 2023
c9c0371
update to DashBase 0.2
sjkelly Mar 16, 2023
6c84ef8
Merge pull request #194 from sjkelly/sjk/dashbase1
etpinard Mar 20, 2023
c84dde0
give a better workflow name
etpinard Mar 20, 2023
dc22a23
add "1.9" to `jl_version` list
etpinard Mar 20, 2023
3902043
Update Installation instructions
bolognam Apr 5, 2023
c58a29e
Merge pull request #198 from bolognam/patch-1
etpinard Apr 17, 2023
cd64f71
Update Project Status
bolognam May 11, 2023
b5e3ff2
Merge pull request #201 from bolognam/patch-2
etpinard May 12, 2023
bb6b7a4
Merge pull request #196 from plotly/test-Julia-1.9
etpinard May 12, 2023
e100c0f
add index by id
BeastyBlacksmith Jun 7, 2023
13bb206
add test, handle Vector{Any}
BeastyBlacksmith Jun 7, 2023
291f81c
remove type piracy
BeastyBlacksmith Jun 8, 2023
ca9e950
Update label.yml
BeastyBlacksmith Jun 9, 2023
4ee7fc8
update `lint.yml`
etpinard Jun 12, 2023
01621b4
Merge pull request #206 from plotly/update-markdownlint-action
etpinard Jun 12, 2023
9da6168
update Dockerfile
etpinard Jun 9, 2023
e80523b
un-disable CircleCI tests
etpinard Jun 9, 2023
4efd8a6
use `etpinard:dashjl-tests` docker image
etpinard Jun 12, 2023
2fa425b
adapt CircleCI config
etpinard Jun 12, 2023
00535d1
adapt callback integration test for HTTP v1
etpinard Jun 12, 2023
4bce937
bring back the percy finalize task
etpinard Jun 12, 2023
a728b5d
Merge pull request #207 from plotly/update-docker-image-final
etpinard Jun 12, 2023
878a27e
use `.gitignore` in `markdownlint` cmd
etpinard Jun 27, 2023
3cdb08c
add basic lint checks
etpinard Jun 27, 2023
ec7fb7c
lint all the files
etpinard Jun 27, 2023
878121a
adapt handler tests
etpinard Jun 27, 2023
272eab5
rename `lint.yml` workflow
etpinard Jun 27, 2023
18e91c4
allow HTML inside markdown files
etpinard Jun 27, 2023
5ae3857
Merge pull request #210 from plotly/lint-all-the-files
etpinard Jun 27, 2023
63d3123
drop "Unit tests" step in CircleCI workflow
etpinard Jun 28, 2023
97f4f6d
drop `export PATH` statement
etpinard Jun 28, 2023
5bafe93
add `dash-main` to gitignore
etpinard Jun 21, 2023
cedb644
update docker image README
etpinard Jun 28, 2023
2f8bc22
Merge pull request #211 from plotly/better-circleci-tests
etpinard Jun 28, 2023
d54991f
fix typo in docstring
etpinard Jun 13, 2023
1873eb4
add missing `gen_resources` dep
etpinard Jun 13, 2023
1fb750c
be less string about github token length
etpinard Jun 13, 2023
eadb379
tweak `dash_renderer` artifact specs & logic
etpinard Jun 28, 2023
5a52876
clean up calls to `ResourcePkg`
etpinard Jun 14, 2023
4801106
update resources at `v2.10.2`
etpinard Jun 28, 2023
408138f
adapt clientside callback with Promise test
etpinard Jun 21, 2023
5cc67c3
adapt devtools `test_prop_check` suite
etpinard Jun 21, 2023
ff135bd
add `gen_resources` instructions
etpinard Jun 13, 2023
fece921
Merge pull request #212 from plotly/nextgen-gen_resources
etpinard Jun 28, 2023
dd6bd52
Remove getindex in app
BeastyBlacksmith Jul 11, 2023
e185414
Update tests
BeastyBlacksmith Jul 11, 2023
942d633
Merge pull request #203 from BeastyBlacksmith/bbs/index-by-id
etpinard Jul 11, 2023
111a4c7
fixup code block
etpinard Jul 11, 2023
8e43aba
first-cut Contributor guide
etpinard Jul 11, 2023
28f6af9
Merge pull request #215 from plotly/add-contributing
etpinard Jul 11, 2023
5ab3efe
fixup license badge
etpinard Jul 12, 2023
51e804b
use dev branches for test badges
etpinard Jul 12, 2023
acdc88e
use shields.io badge for CircleCI
etpinard Jul 12, 2023
e551885
minor tweaks to README content
etpinard Jul 12, 2023
d253af6
Merge pull request #216 from plotly/improve-README
etpinard Jul 12, 2023
d01ce73
1.3.0
etpinard Jul 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
version: 2
version: 2.1

orbs:
percy: percy/agent@0.1.3
browser-tools: circleci/browser-tools@1.2.4

jobs:

test:
working_directory: ~/dashjl
docker:
- image: plotly/julia:ci
- image: etpinard/dashjl-tests:0.3.0
auth:
username: dashautomation
password: $DASH_PAT_DOCKERHUB
Expand All @@ -15,6 +19,8 @@ jobs:
steps:
- checkout

- browser-tools/install-browser-tools

- run:
name: ℹ️ CI Context
command: |
Expand All @@ -27,19 +33,15 @@ jobs:
echo "CIRCLE_REPOSITORY_URL: ${CIRCLE_REPOSITORY_URL}"
echo $CIRCLE_JOB > circlejob.txt

- run:
name: 🔎 Unit tests
command: |
julia test/ci_prepare.jl

- run:
name: ⚙️ Integration tests
command: |
julia --project -e 'import Pkg; Pkg.instantiate(); Pkg.update();'
python -m venv venv
. venv/bin/activate
pip install --upgrade pip wheel
git clone --depth 1 https://github.com/plotly/dash.git -b dev dash-main
cd dash-main && pip install -e .[dev,testing] --progress-bar off && cd ~/dashjl
export PATH=$PATH:/home/circleci/.local/bin/
cd dash-main && pip install -e .[ci,dev,testing] --progress-bar off && cd ..
pytest --headless --nopercyfinalize --junitxml=test-reports/dashjl.xml --percy-assets=test/assets/ test/integration/
- store_artifacts:
path: test-reports
Expand All @@ -48,13 +50,11 @@ jobs:
- store_artifacts:
path: /tmp/dash_artifacts

- run:
name: 🦔 percy finalize
command: npx percy finalize --all

workflows:
version: 2
build:
jobs:
- "test"
when: false # disable this workflow until Percy tests are functional again
- test
- percy/finalize_all:
requires:
- test
5 changes: 0 additions & 5 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,3 @@ CI:
enhancement:
- "src/*.jl"
- "./*"





2 changes: 1 addition & 1 deletion .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ jobs:
- name: CompatHelper.main()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: julia -e 'using CompatHelper; CompatHelper.main()'
run: julia -e 'using CompatHelper; CompatHelper.main()'
4 changes: 2 additions & 2 deletions .github/workflows/jl_test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Run Julia tests
name: Julia tests

on: [push, pull_request]

Expand All @@ -8,7 +8,7 @@ jobs:
strategy:
fail-fast: false
matrix:
jl_version: ["1.6", "1.8"]
jl_version: ["1.6", "1.8", "1.9"]
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/labeler@v2
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
34 changes: 27 additions & 7 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,35 @@
name: Lint Markdown
name: Lint

on: [push, pull_request]

jobs:
test:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: '12.x'
- run: npm install -g markdownlint-cli@0.23.2
- run: markdownlint '**/*.md' --ignore node_modules
node-version: '18'
- name: "Lint markdown files"
run: |
npm install -g markdownlint-cli
markdownlint '**/*.md' --ignore-path=.gitignore
- name: "No trailing whitespaces at EOLs"
run: |
EXIT_CODE=0
git --no-pager grep --full-name -I -n -e ' $' . && EXIT_CODE=1
exit $EXIT_CODE
- name: "No tab characters"
run: |
EXIT_CODE=0
git --no-pager grep --full-name -I -n -P '\t' . && EXIT_CODE=1
exit $EXIT_CODE
- name: "Newline at EOF"
run: |
EXIT_CODE=0
for f in $(git --no-pager grep --full-name -I -l ''); do
tail -c1 "$f" | read -r _ || echo "$f"
tail -c1 "$f" | read -r _ || EXIT_CODE=1
done
exit $EXIT_CODE
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@ docs/build
venv
*.pyc
tmp
gen_resources/build
gen_resources/build
dash-main
3 changes: 3 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ MD026: false

# MD032 Lists should be surrounded by blank lines
MD032: false

# MD033 Inline HTML
MD033: false
6 changes: 3 additions & 3 deletions Artifacts.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[dash_resources]
git-tree-sha1 = "c857e355d2c21dfc458fb315371431dda2506109"
git-tree-sha1 = "cf73063fdfc374bc98925f87ac967051cdee66e5"

[[dash_resources.download]]
sha256 = "4ff3910a8ff1f5420784397cfc6ad80341bbe03f1010eab38dcb9b8ce2423310"
url = "https://github.com/plotly/DashCoreResources/releases/download/v2.0.0+0/DashCoreResources.v2.0.0.tar.gz"
sha256 = "c0fda20e816034b8f97f779af8b3081d3578164649d9ff6c21a8146d4af52d96"
url = "https://github.com/plotly/DashCoreResources/releases/download/v2.10.2+0/DashCoreResources.v2.10.2.tar.gz"
160 changes: 160 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Contributor Guide

## Git

We use the `dev` branch for development. All feature branches should be based
off `dev`.

The `master` branch corresponds to the latest release. We deploy to [Julia
General Registry][jgr] and `git tag -a` off `master`.

## Running the unit tests (aka Julia tests)

```sh
git clone git@github.com:plotly/Dash.jl.git
cd Dash.jl
julia
```

```jl
julia> import Pkg
julia> Pkg.activate(".")
julia> Pkg.instantiate()
julia> Pkg.update()
julia> Pkg.test()
```

To run the unit tests for multiple versions of Julia, we recommend using [`juliaup`][juliaup].

## Running the integration tests

The integration tests make use of the [`dash.testing`][testing] module part of
the Python version of dash.

Instructions on how to install the required system dependencies can be found
in the [dash Contributor Guide][dash-cg].

Then,

```sh
cd Dash.jl
git clone --depth 1 https://github.com/plotly/dash.git -b dev dash-main
python3 -m venv venv
pip install --upgrade pip wheel
cd dash-main && pip install -e .[ci,dev,testing] && cd ..dash
pytest --headless --nopercyfinalize --percy-assets=test/assets/ test/integration/
```

Alternatively, one can run the integration tests using the same Docker
image as for our CircleCI test runs. See the [Docker image guide][docker-test]
for the details.

## Updating the resources

See the [Generate Dash.jl artifacts][resources].

## Updating the CircleCI Docker image

See the [Docker image guide][docker-update].

## Code Style

- indent with 4 spaces (no tabs),
- no whitespaces at EOLs,
- add a single newline at EOFs.

See the [`lint.yml` workflow][lint] for the details.

## Making a release

**Please follow the steps in order!** For example, running `git tag -a` before
`@JuliaRegistrator register` will lead to a failed release!

In the following steps, note that "X.Y.Z" refers to the new version we are
releasing.

### step 1

Make sure the [unit tests][jltest] and [CircleCI integration tests][circlecI]
are passing.

### step 2

Make a [PR][compare] with `master` as the _base_ branch and `dev` as _compare_ branch.

For consistency, name the PR: "Release X.Y.Z"

### step 3

Bump the `version` field in the `Project.toml` (following [semver][semver]) and then

```sh
git commit -m "X.Y.Z"
```

**N.B.** use `X.Y.Z` not `vX.Y.Z` in the commit message, the leading `v` is
reserved for git tags.

### step 4

Wait for approval and then merge the PR onto `master`.

### step 5

Navigate on GitHub to the merge commit from the `master` branch e.g. this
[one][ex-commit] and then add the following comment:

```sh
@JuliaRegistrator register branch=master
```

which tells the [Julia Registrator][registrator] to create a PR to the
[General Registry][jgr] e.g. this [one][ex-jgr-pr].

### step 6

Wait for the Julia Registry PR to be merged. If things go well, this should be
automatic!

### step 7

Off `master`, create and push a new git tag with:

```sh
git checkout master
git tag -a vX.Y.Z # N.B. leading `v`
git push --tags
```

### step 8

Go the [release page][releases] and create a new release,
name it "Version X.Y.Z" for consistency and fill out sections:

- _What's Changed_, which should include items for all the PRs merged since the last release
- _New Contributor_, which should include mention of all the first-time contributors

finally, place a [GitHub compare link][compare] between the last release and X.Y.Z
e.g. this [one][ex-diff].

### step 9

you are done :tada:

[jgr]: https://github.com/JuliaRegistries/General
[juliaup]: https://github.com/JuliaLang/juliaup
[testing]: https://dash.plotly.com/testing#end-to-end-tests
[dash-cg]: https://github.com/plotly/dash/blob/dev/CONTRIBUTING.md#tests
[resources]: ./gen_resources/README.md
[docker-test]: ./build/README.md#local-usage
[docker-update]: ./build/README.md#how-to-update-the-docker-image
[lint]: ./.github/workflows/lint.yml
[jltest]: https://github.com/plotly/Dash.jl/actions/workflows/jl_test.yml?query=branch%3Adev
[circlecI]: https://app.circleci.com/pipelines/github/plotly/Dash.jl?branch=dev
[semver]: https://pkgdocs.julialang.org/v1/toml-files/#The-version-field
[registrator]: https://github.com/JuliaRegistries/Registrator.jl
[releases]: https://github.com/plotly/Dash.jl/releases
[compare]: https://github.com/plotly/Dash.jl/compare/
[ex-commit]: https://github.com/plotly/Dash.jl/commit/5ec76d9d3360f370097937efd06e5de5a6025888
[ex-jgr-pr]: https://github.com/JuliaRegistries/General/pull/77586
[ex-diff]: https://github.com/plotly/Dash.jl/compare/v1.1.2...v1.2.0
8 changes: 5 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Dash"
uuid = "1b08a953-4be3-4667-9a23-3db579824955"
authors = ["Chris Parmer <chris@plotly.com>", "Alexandr Romanenko <waralex@gmail.com>"]
version = "1.2.1"
version = "1.3.0"

[deps]
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
Expand All @@ -24,8 +24,9 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
YAML = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"

[compat]
Aqua = "0.6"
CodecZlib = "0.6, 0.7"
DashBase = "0.1"
DashBase = "0.2"
DashCoreComponents = "2.0.0"
DashHtmlComponents = "2.0.0"
DashTable = "5.0.0"
Expand All @@ -40,7 +41,8 @@ YAML = "0.4.7"
julia = "1.6"

[extras]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
test = ["Aqua", "Test"]
Loading