From 093c15ab6cd6b91e1e554495c3ba77fdf2a1946b Mon Sep 17 00:00:00 2001 From: = Date: Thu, 9 Dec 2021 23:29:56 +0000 Subject: [PATCH 01/12] Add 'fixup' and 'create tar file' steps to build --- dash_textarea_autocomplete/package-info.json | 9 +++++++-- package.json | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/dash_textarea_autocomplete/package-info.json b/dash_textarea_autocomplete/package-info.json index 8455c2f..90da3c0 100644 --- a/dash_textarea_autocomplete/package-info.json +++ b/dash_textarea_autocomplete/package-info.json @@ -15,8 +15,13 @@ "build:js": "webpack --mode production", "build:backends": "dash-generate-components ./src/lib/components dash_textarea_autocomplete -p package-info.json --r-prefix '' --jl-prefix ''", "build:backends-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py_and_r)", - "build": "npm run build:js && npm run build:backends", - "build:activated": "npm run build:js && npm run build:backends-activated" + "build:create-tar-file-from-deps": "tar -czf ./deps.tar.gz ./deps && mv ./deps.tar.gz ./deps", + "build": "npm run build:js && npm run build:backends && npm run build:create-tar-file-from-deps", + "build:activated": "npm run build:js && npm run build:backends-activated", + "postbuild:fixup-external-url-jl": "sed -i 's/https:\\/\\/unpkg.com\\/dash_textarea_autocomplete/https:\\/\\/unpkg.com\\/dash-textarea-autocomplete/' src/DashTextareaAutocomplete.jl", + "postbuild:fixup-dash-version-project-jl": "sed -i 's/Dash = \"0.1.3\"/Dash = \"0.1.3, 1.0\"/' Project.toml", + "postbuild:fixup-resources-path-jl": "sed -i 's/realpath(joinpath( @__DIR__, \"..\", \"deps\"))/artifact\"dash_textarea_autocomplete_resources\"/' src/DashTextareaAutocomplete.jl", + "postbuild": "npm run postbuild:fixup-external-url-jl && npm run postbuild:fixup-dash-version-project-jl && npm run postbuild:fixup-resources-path-jl" }, "author": "Etienne Tetreault-Pinard ", "license": "MIT", diff --git a/package.json b/package.json index 8455c2f..90da3c0 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,13 @@ "build:js": "webpack --mode production", "build:backends": "dash-generate-components ./src/lib/components dash_textarea_autocomplete -p package-info.json --r-prefix '' --jl-prefix ''", "build:backends-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py_and_r)", - "build": "npm run build:js && npm run build:backends", - "build:activated": "npm run build:js && npm run build:backends-activated" + "build:create-tar-file-from-deps": "tar -czf ./deps.tar.gz ./deps && mv ./deps.tar.gz ./deps", + "build": "npm run build:js && npm run build:backends && npm run build:create-tar-file-from-deps", + "build:activated": "npm run build:js && npm run build:backends-activated", + "postbuild:fixup-external-url-jl": "sed -i 's/https:\\/\\/unpkg.com\\/dash_textarea_autocomplete/https:\\/\\/unpkg.com\\/dash-textarea-autocomplete/' src/DashTextareaAutocomplete.jl", + "postbuild:fixup-dash-version-project-jl": "sed -i 's/Dash = \"0.1.3\"/Dash = \"0.1.3, 1.0\"/' Project.toml", + "postbuild:fixup-resources-path-jl": "sed -i 's/realpath(joinpath( @__DIR__, \"..\", \"deps\"))/artifact\"dash_textarea_autocomplete_resources\"/' src/DashTextareaAutocomplete.jl", + "postbuild": "npm run postbuild:fixup-external-url-jl && npm run postbuild:fixup-dash-version-project-jl && npm run postbuild:fixup-resources-path-jl" }, "author": "Etienne Tetreault-Pinard ", "license": "MIT", From f9b3e08fc6030fda60bb5122cefdc5f54fba65bf Mon Sep 17 00:00:00 2001 From: = Date: Thu, 9 Dec 2021 23:30:36 +0000 Subject: [PATCH 02/12] New Artifacts.toml --- Artifacts.toml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Artifacts.toml diff --git a/Artifacts.toml b/Artifacts.toml new file mode 100644 index 0000000..35f54d2 --- /dev/null +++ b/Artifacts.toml @@ -0,0 +1,6 @@ +[dash_textarea_autocomplete_resources] +git-tree-sha1 = "" + + [[dash_textarea_autocomplete_resources.download]] + sha256 = "" + url = "" From 4d8f0dad5be928a1bed74fb0c92dc1ff747d13c4 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 9 Dec 2021 23:31:38 +0000 Subject: [PATCH 03/12] Updated resources_path and external_url --- src/DashTextareaAutocomplete.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/DashTextareaAutocomplete.jl b/src/DashTextareaAutocomplete.jl index 29cdf02..dd1f22c 100644 --- a/src/DashTextareaAutocomplete.jl +++ b/src/DashTextareaAutocomplete.jl @@ -2,7 +2,7 @@ module DashTextareaAutocomplete using Dash -const resources_path = realpath(joinpath( @__DIR__, "..", "deps")) +const resources_path = artifact"dash_textarea_autocomplete_resources" const version = "1.1.0" include("jl/dashtextareaautocomplete.jl") @@ -16,14 +16,14 @@ function __init__() [ DashBase.Resource( relative_package_path = "dash_textarea_autocomplete.min.js", - external_url = "https://unpkg.com/dash_textarea_autocomplete@1.1.0/dash_textarea_autocomplete/dash_textarea_autocomplete.min.js", + external_url = "https://unpkg.com/dash-textarea-autocomplete@1.1.0/dash_textarea_autocomplete/dash_textarea_autocomplete.min.js", dynamic = nothing, async = nothing, type = :js ), DashBase.Resource( relative_package_path = "dash_textarea_autocomplete.min.js.map", - external_url = "https://unpkg.com/dash_textarea_autocomplete@1.1.0/dash_textarea_autocomplete/dash_textarea_autocomplete.min.js.map", + external_url = "https://unpkg.com/dash-textarea-autocomplete@1.1.0/dash_textarea_autocomplete/dash_textarea_autocomplete.min.js.map", dynamic = true, async = nothing, type = :js From 58e44e59203a1d4c25180d4933d06627e5d6947b Mon Sep 17 00:00:00 2001 From: Felix-Gauthier Date: Thu, 9 Dec 2021 14:14:46 -0500 Subject: [PATCH 04/12] - Add Pkg as direct dep - Update Julia compat bound to 1.3 to use Pkg.Artifacts --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 42753c0..1033d26 100644 --- a/Project.toml +++ b/Project.toml @@ -1,4 +1,3 @@ - name = "DashTextareaAutocomplete" uuid = "1b08a953-4be3-4667-9a23-5aadec407a69" authors = ["Etienne Tetreault-Pinard "] @@ -6,7 +5,8 @@ version = "1.1.0" [deps] Dash = "1b08a953-4be3-4667-9a23-3db579824955" +Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" [compat] -julia = "1.2" Dash = "0.1.3, 1.0" +julia = "1.3" From 75790fe6bd79802bdc89a62d5ed2e724bd2d3fd2 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 9 Dec 2021 23:57:15 +0000 Subject: [PATCH 05/12] Add using Artifacts to module --- src/DashTextareaAutocomplete.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/DashTextareaAutocomplete.jl b/src/DashTextareaAutocomplete.jl index dd1f22c..f4f4df7 100644 --- a/src/DashTextareaAutocomplete.jl +++ b/src/DashTextareaAutocomplete.jl @@ -1,6 +1,7 @@ module DashTextareaAutocomplete using Dash +using Pkg.Artifacts const resources_path = artifact"dash_textarea_autocomplete_resources" const version = "1.1.0" From b4e89dd449233e262c53e7aef34497192cfb7fc6 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 00:05:25 +0000 Subject: [PATCH 06/12] Add tarball sha values --- Artifacts.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index 35f54d2..862b993 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -1,6 +1,6 @@ [dash_textarea_autocomplete_resources] -git-tree-sha1 = "" +git-tree-sha1 = "40556a4d143e9e1b25db0e0f434e9415989b3385" [[dash_textarea_autocomplete_resources.download]] - sha256 = "" + sha256 = "5b3b5fb207ce04e53c3a91bbe9378e794b49d8017351c3e142eb4353e107d113" url = "" From a6904cde1c78c793196589b48f532256b2259e78 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 20:54:31 +0000 Subject: [PATCH 07/12] Add url --- Artifacts.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Artifacts.toml b/Artifacts.toml index 862b993..49525d4 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -3,4 +3,4 @@ git-tree-sha1 = "40556a4d143e9e1b25db0e0f434e9415989b3385" [[dash_textarea_autocomplete_resources.download]] sha256 = "5b3b5fb207ce04e53c3a91bbe9378e794b49d8017351c3e142eb4353e107d113" - url = "" + url = "https://unpkg.com/dash-textarea-autocomplete@{version}/dash_textarea_autocomplete/deps.tar.gz" From 751dbc931b0f878b97c32557b8097f9bc652aaa4 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 20:55:39 +0000 Subject: [PATCH 08/12] Specify linux-only builds --- CONTRIBUTING.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a3f5254..3db9f3f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,8 @@ This project was generated by the [dash-component-boilerplate](https://github.com/plotly/dash-component-boilerplate) it contains the minimal set of code required to create your own custom Dash component. +_N.B.: because of the current usage of `postbuild_fixups.sh` build script, this project can only be build on a Linux distribution_ + --- ## Install dependencies @@ -15,7 +17,6 @@ This project was generated by the [dash-component-boilerplate](https://github.co $ python3 -m venv venv $ . venv/bin/activate ``` - _Note: venv\Scripts\activate for windows_ 3. Install python packages required to build components. ``` @@ -39,6 +40,8 @@ This project was generated by the [dash-component-boilerplate](https://github.co ``` $ npm run build ``` + **N.B.** + + We use `postbuild_fixups.sh` to re-write certain lines in the generated Julia files of this package to allow usage of Julia's [Artifact](https://pkgdocs.julialang.org/v1/artifacts/#Artifacts) system. 2. Run and modify the `usage.py` sample dash app: ``` $ python usage.py From 6fddbfed045cc63c6cb4cc20e400b62cb944f7e3 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 20:56:18 +0000 Subject: [PATCH 09/12] Add deps tarball --- deps/deps.tar.gz | Bin 0 -> 49504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 deps/deps.tar.gz diff --git a/deps/deps.tar.gz b/deps/deps.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..814e5e19d34e29c509bfafac3c9f59325dde1c3a GIT binary patch literal 49504 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 c|BC Date: Fri, 10 Dec 2021 20:57:19 +0000 Subject: [PATCH 10/12] New `postbuild_fixups.sh` --- postbuild_fixups.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 postbuild_fixups.sh diff --git a/postbuild_fixups.sh b/postbuild_fixups.sh new file mode 100755 index 0000000..1a7218a --- /dev/null +++ b/postbuild_fixups.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +version=${1?Please specify version} + +# src/DashTextareaAutocomplete +declare -a moduleregs=(\ +'s/https:\/\/unpkg.com\/dash_textarea_autocomplete/https:\/\/unpkg.com\/dash-textarea-autocomplete/' \ +'s/realpath(joinpath( @__DIR__, \"..\", \"deps\"))/artifact\"dash_textarea_autocomplete_resources\"/' \ +'s/using Dash/using Dash, Pkg.Artifacts/') + +for reg in "${moduleregs[@]}" +do + sed -i "$reg" src/DashTextareaAutocomplete.jl +done + +# Project.toml +declare -a projectregs=(\ +'s/\[deps\]/\[deps\]\nPkg = \"44cfe95a-1eb2-52ea-b672-e2afdf69b78f\"/' \ +'s/Dash = \"0.1.3\"/Dash = \"0.1.3, 1.0\"/' \ +'s/julia = \"1.2\"/julia = \"1.3\"/') + +for reg in "${projectregs[@]}" +do + sed -i "$reg" Project.toml +done + +# Artifacts.toml +sed -i "s/[1-999]\.[0-999]\.[0-999]\|{version}/${version}/" Artifacts.toml From 025e861a4ab7a614dc0649b81f2eab19022ac0a4 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 20:58:13 +0000 Subject: [PATCH 11/12] Update `postbuild:fixups` build step --- dash_textarea_autocomplete/package-info.json | 6 ++---- package.json | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/dash_textarea_autocomplete/package-info.json b/dash_textarea_autocomplete/package-info.json index 90da3c0..b9a4ff7 100644 --- a/dash_textarea_autocomplete/package-info.json +++ b/dash_textarea_autocomplete/package-info.json @@ -18,10 +18,8 @@ "build:create-tar-file-from-deps": "tar -czf ./deps.tar.gz ./deps && mv ./deps.tar.gz ./deps", "build": "npm run build:js && npm run build:backends && npm run build:create-tar-file-from-deps", "build:activated": "npm run build:js && npm run build:backends-activated", - "postbuild:fixup-external-url-jl": "sed -i 's/https:\\/\\/unpkg.com\\/dash_textarea_autocomplete/https:\\/\\/unpkg.com\\/dash-textarea-autocomplete/' src/DashTextareaAutocomplete.jl", - "postbuild:fixup-dash-version-project-jl": "sed -i 's/Dash = \"0.1.3\"/Dash = \"0.1.3, 1.0\"/' Project.toml", - "postbuild:fixup-resources-path-jl": "sed -i 's/realpath(joinpath( @__DIR__, \"..\", \"deps\"))/artifact\"dash_textarea_autocomplete_resources\"/' src/DashTextareaAutocomplete.jl", - "postbuild": "npm run postbuild:fixup-external-url-jl && npm run postbuild:fixup-dash-version-project-jl && npm run postbuild:fixup-resources-path-jl" + "postbuild:fixups": "./postbuild_fixups.sh $npm_package_version", + "postbuild": "npm run postbuild:fixups" }, "author": "Etienne Tetreault-Pinard ", "license": "MIT", diff --git a/package.json b/package.json index 90da3c0..b9a4ff7 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,8 @@ "build:create-tar-file-from-deps": "tar -czf ./deps.tar.gz ./deps && mv ./deps.tar.gz ./deps", "build": "npm run build:js && npm run build:backends && npm run build:create-tar-file-from-deps", "build:activated": "npm run build:js && npm run build:backends-activated", - "postbuild:fixup-external-url-jl": "sed -i 's/https:\\/\\/unpkg.com\\/dash_textarea_autocomplete/https:\\/\\/unpkg.com\\/dash-textarea-autocomplete/' src/DashTextareaAutocomplete.jl", - "postbuild:fixup-dash-version-project-jl": "sed -i 's/Dash = \"0.1.3\"/Dash = \"0.1.3, 1.0\"/' Project.toml", - "postbuild:fixup-resources-path-jl": "sed -i 's/realpath(joinpath( @__DIR__, \"..\", \"deps\"))/artifact\"dash_textarea_autocomplete_resources\"/' src/DashTextareaAutocomplete.jl", - "postbuild": "npm run postbuild:fixup-external-url-jl && npm run postbuild:fixup-dash-version-project-jl && npm run postbuild:fixup-resources-path-jl" + "postbuild:fixups": "./postbuild_fixups.sh $npm_package_version", + "postbuild": "npm run postbuild:fixups" }, "author": "Etienne Tetreault-Pinard ", "license": "MIT", From f6ede405e6ab3fe4a1b29f8c4c2dc1bc9268f771 Mon Sep 17 00:00:00 2001 From: = Date: Fri, 10 Dec 2021 20:59:24 +0000 Subject: [PATCH 12/12] Update after build script changes --- Project.toml | 5 +++-- src/DashTextareaAutocomplete.jl | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Project.toml b/Project.toml index 1033d26..52fc8a0 100644 --- a/Project.toml +++ b/Project.toml @@ -1,12 +1,13 @@ + name = "DashTextareaAutocomplete" uuid = "1b08a953-4be3-4667-9a23-5aadec407a69" authors = ["Etienne Tetreault-Pinard "] version = "1.1.0" [deps] -Dash = "1b08a953-4be3-4667-9a23-3db579824955" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +Dash = "1b08a953-4be3-4667-9a23-3db579824955" [compat] -Dash = "0.1.3, 1.0" julia = "1.3" +Dash = "0.1.3, 1.0" diff --git a/src/DashTextareaAutocomplete.jl b/src/DashTextareaAutocomplete.jl index f4f4df7..4732250 100644 --- a/src/DashTextareaAutocomplete.jl +++ b/src/DashTextareaAutocomplete.jl @@ -1,7 +1,6 @@ module DashTextareaAutocomplete -using Dash -using Pkg.Artifacts +using Dash, Pkg.Artifacts const resources_path = artifact"dash_textarea_autocomplete_resources" const version = "1.1.0"