Skip to content

Commit

Permalink
Merge pull request #37 from ghivert/feat/4.0.0
Browse files Browse the repository at this point in the history
Feat/4.0.0
  • Loading branch information
ghivert authored Jan 11, 2025
2 parents ebce172 + dc7072f commit 2745002
Showing 240 changed files with 27,596 additions and 6,484 deletions.
35 changes: 27 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -14,8 +14,8 @@ jobs:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: '26.0.2'
gleam-version: '1.4.1'
otp-version: '27.0.1'
gleam-version: '1.6.3'
rebar3-version: '3'
# elixir-version: "1.15.4"
- run: gleam deps download
@@ -33,8 +33,8 @@ jobs:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: '26.0.2'
gleam-version: '1.4.1'
otp-version: '27.0.1'
gleam-version: '1.6.3'
rebar3-version: '3'
# elixir-version: "1.15.4"
- run: gleam deps download
@@ -52,8 +52,8 @@ jobs:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: '26.0.2'
gleam-version: '1.4.1'
otp-version: '27.0.1'
gleam-version: '1.6.3'
rebar3-version: '3'
# elixir-version: "1.15.4"
- run: gleam deps download
@@ -65,14 +65,33 @@ jobs:
- run: gleam format --check src test
working-directory: sketch_lustre

test-sketch-lustre-experimental:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: '27.0.1'
gleam-version: '1.6.3'
rebar3-version: '3'
# elixir-version: "1.15.4"
- run: gleam deps download
working-directory: sketch_lustre_experimental
- run: gleam test --target=erlang
working-directory: sketch_lustre_experimental
- run: gleam test --target=javascript
working-directory: sketch_lustre_experimental
- run: gleam format --check src test
working-directory: sketch_lustre_experimental

test-sketch-redraw:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: '26.0.2'
gleam-version: '1.4.1'
otp-version: '27.0.1'
gleam-version: '1.6.3'
rebar3-version: '3'
# elixir-version: "1.15.4"
- run: gleam deps download
6 changes: 3 additions & 3 deletions e2e/redraw_example/gleam.toml
Original file line number Diff line number Diff line change
@@ -9,9 +9,9 @@ repository = {type = "github", user = "ghivert", repo = "sketch"}

[dependencies]
gleam_stdlib = ">= 0.34.0 and < 2.0.0"
redraw = ">= 1.1.0 and < 2.0.0"
redraw_dom = ">= 1.1.0 and < 2.0.0"
sketch = ">= 3.0.2 and < 4.0.0"
redraw = ">= 2.0.0 and < 3.0.0"
redraw_dom = ">= 2.0.0 and < 3.0.0"
sketch = {path = "../../sketch"}
sketch_redraw = {path = "../../sketch_redraw"}
shared_styles = {path = "../shared_styles"}

2 changes: 1 addition & 1 deletion e2e/redraw_example/index.html
Original file line number Diff line number Diff line change
@@ -27,6 +27,6 @@
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/redraw_example.mjs"></script>
<script type="module" src="/src/redraw_example.main.mjs"></script>
</body>
</html>
20 changes: 10 additions & 10 deletions e2e/redraw_example/manifest.toml
Original file line number Diff line number Diff line change
@@ -2,23 +2,23 @@
# You typically do not need to edit this file

packages = [
{ name = "gleam_erlang", version = "0.28.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "BE551521F708DCE5CB954AFBBDF08519C1C44986521FD40753608825F48FFA9E" },
{ name = "gleam_erlang", version = "0.33.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "A1D26B80F01901B59AABEE3475DD4C18D27D58FA5C897D922FCB9B099749C064" },
{ name = "gleam_javascript", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "F98328FCF573DA6F3A35D7F6CB3F9FF19FD5224CCBA9151FCBEAA0B983AF2F58" },
{ name = "gleam_otp", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "F7EA44C81679B2A6032FF1B3851F0EFB43F4F1F1CAC616CB7F4A18497F39FAB9" },
{ name = "gleam_stdlib", version = "0.41.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "1B2F80CB1B66B027E3198A2FF71EF3F2F31DF89ED97AD606F25FD387A4C3C1EF" },
{ name = "gleam_otp", version = "0.16.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "FA0EB761339749B4E82D63016C6A18C4E6662DA05BAB6F1346F9AF2E679E301A" },
{ name = "gleam_stdlib", version = "0.52.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "50703862DF26453B277688FFCDBE9DD4AC45B3BD9742C0B370DB62BC1629A07D" },
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
{ name = "redraw", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_javascript", "gleam_stdlib"], otp_app = "redraw", source = "hex", outer_checksum = "4E6F55F965FD7A4B0514E269AC61BF8EF5EE421DCC19333BF80F4874250FDFB6" },
{ name = "redraw_dom", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "redraw"], otp_app = "redraw_dom", source = "hex", outer_checksum = "0FFAAA6FFA52B88C1506EB6908E07479DA51B9F55F875A596E0B48E30FCE5DCE" },
{ name = "redraw", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_javascript", "gleam_stdlib"], otp_app = "redraw", source = "hex", outer_checksum = "FF52D8626E1E6DC92EB8BC9DC8C70BC6F0E25824524A7C0658222EA406B5BE23" },
{ name = "redraw_dom", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "redraw"], otp_app = "redraw_dom", source = "hex", outer_checksum = "8318DA1E428B349177C444DDC2FA9AE0D33E0DD0CC5A55B82F030811FFD69EA4" },
{ name = "shared_styles", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "sketch"], source = "local", path = "../shared_styles" },
{ name = "sketch", version = "3.1.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], otp_app = "sketch", source = "hex", outer_checksum = "F162070BCCF8BEF28C9520E80501565403E681D9E3F80844EC5ED307A2E4ADDF" },
{ name = "sketch_redraw", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "redraw", "sketch"], source = "local", path = "../../sketch_redraw" },
{ name = "sketch", version = "4.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], source = "local", path = "../../sketch" },
{ name = "sketch_redraw", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "redraw", "redraw_dom", "sketch"], source = "local", path = "../../sketch_redraw" },
]

[requirements]
gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" }
gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
redraw = { version = ">= 1.1.0 and < 2.0.0" }
redraw_dom = { version = ">= 1.1.0 and < 2.0.0" }
redraw = { version = ">= 2.0.0 and < 3.0.0" }
redraw_dom = { version = ">= 2.0.0 and < 3.0.0" }
shared_styles = { path = "../shared_styles" }
sketch = { version = ">= 3.0.2 and < 4.0.0" }
sketch = { path = "../../sketch" }
sketch_redraw = { path = "../../sketch_redraw" }
4 changes: 2 additions & 2 deletions e2e/redraw_example/src/components.gleam
Original file line number Diff line number Diff line change
@@ -5,9 +5,9 @@
//// your knowledge of Lustre, and behaves exactly as expected.

import redraw
import redraw/html as h
import redraw/dom/html as h
import shared_styles as styles
import sketch/redraw/html
import sketch/redraw/dom/html

pub fn body(attrs, children) {
// demonstrate ability to merge fragment at root
14 changes: 7 additions & 7 deletions e2e/redraw_example/src/redraw_example.gleam
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import components
import gleam/int
import redraw
import redraw/attribute as a
import redraw/handler
import redraw/html as h
import redraw_dom/client
import redraw/dom/attribute as a
import redraw/dom/client
import redraw/dom/events
import redraw/dom/html as h
import sketch/redraw as sr

pub fn main() {
let app = app()
let root = client.create_root("root")
let assert Ok(root) = client.create_root("root")
client.render(root, redraw.strict_mode([sr.provider([app()])]))
}

@@ -19,8 +19,8 @@ fn app() {
let showcase = showcase()
use <- redraw.component__("App")
let #(count, set_count) = redraw.use_state_(0)
let increment = handler.on_click(fn(_) { set_count(fn(c) { c + 1 }) })
let decrement = handler.on_click(fn(_) { set_count(fn(c) { c - 1 }) })
let increment = events.on_click(fn(_) { set_count(fn(c) { c + 1 }) })
let decrement = events.on_click(fn(_) { set_count(fn(c) { c - 1 }) })
components.body([], [
components.topbar([], [h.text("Sketch")]),
components.headline(count, [], [
File renamed without changes.
8 changes: 4 additions & 4 deletions e2e/server_components/gleam.toml
Original file line number Diff line number Diff line change
@@ -3,12 +3,12 @@ version = "1.0.0"

[dependencies]
gleam_stdlib = "~> 0.34 or ~> 1.0"
sketch = { path = "../../sketch" }
sketch_lustre = { path = "../../sketch_lustre" }
sketch = {path = "../../sketch"}
sketch_lustre = {path = "../../sketch_lustre"}
gleam_http = "~> 3.6"
mist = "~> 3.0"
mist = ">= 4.0.0 and < 5.0.0"
lustre = ">= 4.6.0 and < 5.0.0"
shared_view = { path = "../shared_view" }
shared_view = {path = "../shared_view"}
gleam_otp = ">= 0.13.0 and < 1.0.0"
gleam_json = ">= 2.0.0 and < 3.0.0"
gleam_erlang = ">= 0.28.0 and < 1.0.0"
30 changes: 13 additions & 17 deletions e2e/server_components/manifest.toml
Original file line number Diff line number Diff line change
@@ -2,28 +2,24 @@
# You typically do not need to edit this file

packages = [
{ name = "birl", version = "1.7.1", build_tools = ["gleam"], requirements = ["gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "5C66647D62BCB11FE327E7A6024907C4A17954EF22865FE0940B54A852446D01" },
{ name = "conversation", version = "1.4.3", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "conversation", source = "hex", outer_checksum = "908B46F60444442785A495197D482558AD8B849C3714A38FAA1940358CC8CCCD" },
{ name = "gleam_crypto", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_crypto", source = "hex", outer_checksum = "8AE56026B3E05EBB1F076778478A762E9EB62B31AEEB4285755452F397029D22" },
{ name = "gleam_erlang", version = "0.28.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "BE551521F708DCE5CB954AFBBDF08519C1C44986521FD40753608825F48FFA9E" },
{ name = "gleam_http", version = "3.7.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "EA66440C2269F7CED0F6845E5BD0DB68095775D627FA709A841CA78A398D6D56" },
{ name = "gleam_javascript", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "F98328FCF573DA6F3A35D7F6CB3F9FF19FD5224CCBA9151FCBEAA0B983AF2F58" },
{ name = "gleam_json", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "CB10B0E7BF44282FB25162F1A24C1A025F6B93E777CCF238C4017E4EEF2CDE97" },
{ name = "gleam_otp", version = "0.13.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "F7EA44C81679B2A6032FF1B3851F0EFB43F4F1F1CAC616CB7F4A18497F39FAB9" },
{ name = "gleam_stdlib", version = "0.41.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "1B2F80CB1B66B027E3198A2FF71EF3F2F31DF89ED97AD606F25FD387A4C3C1EF" },
{ name = "gleam_erlang", version = "0.33.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "A1D26B80F01901B59AABEE3475DD4C18D27D58FA5C897D922FCB9B099749C064" },
{ name = "gleam_http", version = "3.7.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8A70D2F70BB7CFEB5DF048A2183FFBA91AF6D4CF5798504841744A16999E33D2" },
{ name = "gleam_json", version = "2.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_json", source = "hex", outer_checksum = "C55C5C2B318533A8072D221C5E06E5A75711C129E420DD1CE463342106012E5D" },
{ name = "gleam_otp", version = "0.16.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "FA0EB761339749B4E82D63016C6A18C4E6662DA05BAB6F1346F9AF2E679E301A" },
{ name = "gleam_stdlib", version = "0.52.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "50703862DF26453B277688FFCDBE9DD4AC45B3BD9742C0B370DB62BC1629A07D" },
{ name = "gleam_yielder", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_yielder", source = "hex", outer_checksum = "8E4E4ECFA7982859F430C57F549200C7749823C106759F4A19A78AEA6687717A" },
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
{ name = "glisten", version = "6.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "logging", "telemetry"], otp_app = "glisten", source = "hex", outer_checksum = "912132751031473CB38F454120124FFC96AF6B0EA33D92C9C90DB16327A2A972" },
{ name = "gramps", version = "2.0.3", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "3CCAA6E081225180D95C79679D383BBF51C8D1FDC1B84DA1DA444F628C373793" },
{ name = "glisten", version = "7.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib", "logging", "telemetry"], otp_app = "glisten", source = "hex", outer_checksum = "028C0882EAC7ABEDEFBE92CE4D1FEDADE95FA81B1B1AB099C4F91C133BEF2C42" },
{ name = "gramps", version = "3.0.0", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "630BDE35E465511945253A06EBCDE8D5E4B8B1988F4AC6B8FAC297DEF55B4CA2" },
{ name = "hpack_erl", version = "0.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "hpack", source = "hex", outer_checksum = "D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0" },
{ name = "logging", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "1098FBF10B54B44C2C7FDF0B01C1253CAFACDACABEFB4B0D027803246753E06D" },
{ name = "lustre", version = "4.6.1", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "486C3CFBD126939CAD2CA8B92A979A2DAADA5BABAA62BF2B163CD21E257BD4A1" },
{ name = "mist", version = "3.0.0", build_tools = ["gleam"], requirements = ["birl", "gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "CDA1A74E768419235E16886463EC4722EFF4AB3F8D820A76EAD45D7C167D7282" },
{ name = "plinth", version = "0.5.0", build_tools = ["gleam"], requirements = ["conversation", "gleam_javascript", "gleam_json", "gleam_stdlib"], otp_app = "plinth", source = "hex", outer_checksum = "9B0ECC110316F55432DC544847B7F4E98B73D3F598CB3EE844570FB1EFB3F8BE" },
{ name = "ranger", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "ranger", source = "hex", outer_checksum = "1566C272B1D141B3BBA38B25CB761EF56E312E79EC0E2DFD4D3C19FB0CC1F98C" },
{ name = "lustre", version = "4.6.3", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "BDF833368F6C8F152F948D5B6A79866E9881CB80CB66C0685B3327E7DCBFB12F" },
{ name = "mist", version = "4.0.4", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "gleam_yielder", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "9F87DA535A75AA1B8B37D27E59B1E60A1BE34EB2CA63BE8B211D75E5D10BEEAF" },
{ name = "shared_styles", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "sketch"], source = "local", path = "../shared_styles" },
{ name = "shared_view", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "shared_styles", "sketch", "sketch_lustre"], source = "local", path = "../shared_view" },
{ name = "sketch", version = "3.1.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], source = "local", path = "../../sketch" },
{ name = "sketch_lustre", version = "1.0.3", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "plinth", "sketch"], source = "local", path = "../../sketch_lustre" },
{ name = "sketch", version = "4.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], source = "local", path = "../../sketch" },
{ name = "sketch_lustre", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre", "sketch"], source = "local", path = "../../sketch_lustre" },
{ name = "telemetry", version = "1.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "telemetry", source = "hex", outer_checksum = "7015FC8919DBE63764F4B4B87A95B7C0996BD539E0D499BE6EC9D7F3875B79E6" },
]

@@ -35,7 +31,7 @@ gleam_otp = { version = ">= 0.13.0 and < 1.0.0" }
gleam_stdlib = { version = "~> 0.34 or ~> 1.0" }
gleeunit = { version = "~> 1.0" }
lustre = { version = ">= 4.6.0 and < 5.0.0" }
mist = { version = "~> 3.0" }
mist = { version = ">= 4.0.0 and < 5.0.0" }
shared_view = { path = "../shared_view" }
sketch = { path = "../../sketch" }
sketch_lustre = { path = "../../sketch_lustre" }
6 changes: 3 additions & 3 deletions e2e/server_components/src/server_components.gleam
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import gleam/bytes_builder
import gleam/bytes_tree
import gleam/erlang
import gleam/erlang/process.{type Selector, type Subject}
import gleam/http/request.{type Request}
@@ -47,7 +47,7 @@ pub fn main() {
})
|> result.lazy_unwrap(fn() {
response.new(404)
|> response.set_body(mist.Bytes(bytes_builder.new()))
|> response.set_body(mist.Bytes(bytes_tree.new()))
})
}

@@ -96,7 +96,7 @@ pub fn main() {
]),
])
|> element.to_document_string_builder
|> bytes_builder.from_string_builder
|> bytes_tree.from_string_tree
|> mist.Bytes,
)
}
2 changes: 1 addition & 1 deletion e2e/shared_styles/gleam.toml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ version = "1.0.0"

[dependencies]
gleam_stdlib = ">= 0.34.0 and < 2.0.0"
sketch = ">= 3.1.0 and < 4.0.0"
sketch = {path = "../../sketch"}

[dev-dependencies]
gleeunit = ">= 1.0.0 and < 2.0.0"
Loading

0 comments on commit 2745002

Please sign in to comment.