yew/Makefile.toml
WorldSEnder 78d4204a9a
Introduce explicit internal datastructures modeling dom state (#2330)
* detach destructures now

* add failing keyed-list issue

* crude port to the new bundle infrastructure

* port over the infrastructure

the new bcomp is especially nice and lost a few unwraps owed to not having
to reserve space for a scope before rendering.
Note also that bsuspense has been slimmed a bit, storing the suspended flag
implicitly in the state.
some naming is not perfect yet and has to be adjusted still.

* mass rename: apply -> reconcile

* get rid of move_before in favor of shift

* generate id directly when creating a new scope

* bundle for text nodes

* work on naming: ancestor -> bundle

* slightly optimize list reconciler, add doccomments

* address review

* add internal documentation

* address review comments

rename fields in bsuspense
convert to gloo::events

* move even more stuff into dom_bundle to scope exports

- app_handle and layout_tests are now in there
- items are publically re-exported in crate::dom_bundle
- dom_bundle itself is private
- btag and bcomp get their own submodules
- bcomp now contains the lifecycle and scope impls

* move replace into Reconcilable

* move lifecycle and scope back into html as per review

* move back Value and InputFields into html

* actually only type-check format args in production

* fix documentation link

* move btag_impl up into containing module

* shift comps immediately

shifting the rendered Nodes does not tie into the lifecycle,
as such it can happen immediately

* use list-bundle in tag-bundle

* fix cargo make tests

* improve 05_swap benchmark

* fix a blunder where I swapped operands

* fix naming of BNode variants
2022-03-06 08:37:07 +05:00

121 lines
2.7 KiB
TOML

######################
#
# public tasks:
# * pr-flow
# * lint
# * lint-release
# * tests
# * benchmarks
#
# Run `cargo make --list-all-steps` for more details.
#
######################
[config]
min_version = "0.32.4"
default_to_workspace = false
[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
CARGO_MAKE_CLIPPY_ARGS = "-- --deny=warnings"
[config.modify_core_tasks]
private = true
namespace = "core"
[tasks.pr-flow]
toolchain = "stable"
category = "Checks"
description = "Lint and test"
run_task = { name = ["lint", "lint-release", "tests"], fork = true }
[tasks.lint]
category = "Checks"
description = "Check formatting and run Clippy"
run_task = { name = ["lint-flow"], fork = true }
[tasks.tests]
category = "Testing"
description = "Run all tests"
dependencies = ["tests-setup"]
env = { CARGO_MAKE_WORKSPACE_SKIP_MEMBERS = ["**/examples/*", "**/packages/changelog"] }
run_task = { name = ["test-flow", "doc-test-flow", "ssr-test", "website-test"], fork = true }
[tasks.benchmarks]
category = "Testing"
description = "Run benchmarks"
env = { CARGO_MAKE_WORKSPACE_SKIP_MEMBERS = ["**/examples/*"] }
run_task = { name = "bench-flow", fork = true }
[tasks.lint-flow]
private = true
workspace = true
dependencies = ["core::check-format-flow", "core::clippy-flow"]
# Needed, because we have some code differences between debug and release builds
[tasks.lint-release]
category = "Checks"
workspace = true
command = "cargo"
args = ["clippy", "--all-targets", "--release", "--", "--deny=warnings"]
[tasks.tests-setup]
private = true
script_runner = "@duckscript"
script = [
"""
test_flags = array --headless --firefox
yew_test_features = set wasm_test
yew_test_flags = array_join ${test_flags} " "
echo "running tests with flags: ${yew_test_flags} and features: ${yew_test_features}"
set_env YEW_TEST_FLAGS ${yew_test_flags}
set_env YEW_TEST_FEATURES ${yew_test_features}
""",
]
[tasks.test-flow]
private = true
workspace = true
dependencies = ["test"]
[tasks.test]
private = true
command = "cargo"
args = ["test", "--all-targets"]
[tasks.doc-test-flow]
private = true
workspace = true
dependencies = ["doc-test"]
[tasks.doc-test]
private = true
command = "cargo"
args = ["test", "--doc"]
[tasks.website-test]
command = "cargo"
args = ["test", "-p", "website-test"]
[tasks.bench-flow]
private = true
workspace = true
dependencies = ["bench"]
[tasks.bench]
private = true
command = "cargo"
args = ["bench"]
[tasks.generate-change-log]
category = "Maintainer processes"
toolchain = "stable"
command = "cargo"
args = ["run","-p","changelog", "--release", "${@}"]
[tasks.ssr-test]
env = { CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS = ["**/packages/yew"] }
private = true
workspace = true