Skip to content

Latest commit

 

History

History
865 lines (704 loc) · 51.4 KB

CHANGELOG.md

File metadata and controls

865 lines (704 loc) · 51.4 KB

Changelog

0.9.1 (2024-11-17)

What's Changed

  • Fix typo in release post by @lukechu10 in #748
  • Router example by @davidon-top in #749
  • Allow adding derives to generated prop type for inline_props by @davidon-top in #750
  • Router refresh by @davidon-top in #751
  • Forward attributes on function parameters to generated prop struct in inline_props by @lukechu10 in #753
  • Update README.md with new details by @lukechu10 in #754
  • Update trunk to v0.21.1 in GitHub Actions workflows by @lukechu10 in #756
  • Support query parameters in routes by @davidon-top in #752
  • Simplify navigate functions in router by @lukechu10 in #759
  • Properly support patterns in inline_props by @lukechu10 in #760

0.9.0 (2024-11-01)

Release Post: https://sycamore.dev/post/announcing-v0-9-0

Migration Guide: https://sycamore.dev/book/migration/0-8-to-0-9

What's Changed

  • Change NAME_SPACE to NAMESPACE by @sokratisvas in #482
  • Improve binding ergonomics for RcSignal by @danielalvsaaker in #489
  • Use fully qualified method calls in macro for bound signals by @danielalvsaaker in #499
  • fix(bug): #500 fix and #501 fix by @danielnehrig in #502
  • Rename derive proc-macro Prop to Props by @alexisfontaine in #503
  • Fix MDN documentation link of SVG elements by @alexisfontaine in #505
  • Rename the derive macro helper attribute builder to prop by @alexisfontaine in #504
  • Make NodeRef Reactive by @wainwrightmark in #508
  • Add data binding for valueAsNumber property by @wainwrightmark in #511
  • Fix js-framework-benchmark CI by @lukechu10 in #520
  • Fix mismatched link in examples by @nthnd in #524
  • Simplify the TodoMVC example code by @lukechu10 in #526
  • adding set_fn and set_fn_silent by @blainehansen in #529
  • Remove redundant set_value in todomvc example in #530
  • Make create_ref only allow T: 'static by @lukechu10 in #519
  • Update dependencies to latest by @lukechu10 in #510
  • GenericNode v2 by @lukechu10 in #521
  • Remove legacy component syntax and introduce Component trait by @lukechu10 in #533
  • Change CSS color-scheme with dark mode is toggled on website by @lukechu10 in #534
  • Prevent re-running effects inside themselves by @lukechu10 in #539
  • (Runtime) Templates by @lukechu10 in #536
  • Make Option<T> prop fields optional by default by @danielalvsaaker in #531
  • Implement ToView manually for types by @lukechu10 in #541
  • Fix missing View::new_dyn_scoped check at the root by @lukechu10 in #549
  • Rename css.md to styling.md and add info on integrations with CSS frameworks by @lukechu10 in #550
  • Adopt a logo! by @lukechu10 in #551
  • Typed event data + async event handlers by @lukechu10 in #553
  • Replace context HashMap with Vec and add benchmark by @lukechu10 in #555
  • Allow passing through attributes on components by @wingertge in #548
  • Wasm bindgen example by @wa1aric in #558
  • Add unique ID generation hook by @wingertge in #565
  • fixes bind macro problem by @blainehansen in #569
  • API docs correction for Functions hydrate_to: "use hydrate_to" can now read and link as "use hydrate". by @StarSapien in #579
  • chore: fix formatting and clippy lints by @lukechu10 in #582
  • Update render util tests and add nested dyn test by @lukechu10 in #583
  • Fix Issue #572 by @wingertge in #573
  • Centered badges by @simonhyll in #589
  • Add signal equivalent of create_ref_unsafe by @wingertge in #586
  • Do not add values to the arena drop list if not necessary by @lukechu10 in #552
  • Avoid exponential blowup in size of Builder type by @sapphire-arches in #591
  • Update syn to v2 by @lukechu10 in #593
  • Prepare v0.9.0-beta.1 by @lukechu10 in #594
  • Fix builder bind_value and bind_checked calling wasm functions in SSR by @lukechu10 in #608
  • Fix #562 / ignore the query parameters when matching a path to a route by @Miroito in #575
  • Fix navigating to an anchor and route matching with hash parameters by @lukechu10 in #610
  • Update Trunk, NodeJS, and MSRV to 1.65 by @lukechu10 in #611
  • Update routing.md by @jhutchins in #613
  • fix view! parser to handle dashed attributes with Rust keywords (#620) by @mekanoe in #624
  • Update MSRV to 1.72 by @lukechu10 in #625
  • Reactivity v3! (Part 1) 🎉 by @lukechu10 in #612
  • fix typos & small grammatical errors by @iiiii7d in #627
  • Reactivity v3 (Part 2) by @lukechu10 in #626
  • Update README.md example with new reactivity system] by @lukechu10 in #629
  • Bump postcss from 8.4.23 to 8.4.31 in /website by @dependabot in #628
  • Dont suggest wee-alloc in docs by @lukechu10 in #630
  • Make batch affect both memos and effects by @lukechu10 in #631
  • Repace the Memo struct with ReadSignal by @lukechu10 in #632
  • Update all dependencies by @lukechu10 in #633
  • v0.9.0-beta.2 by @lukechu10 in #634
  • Run everything through prettier by @lukechu10 in #635
  • Update components documentation for v0.9 by @brynnjmccormick in #637
  • Add a CONTRIBUTING.md and remove old contributing docs by @lukechu10 in #636
  • Fix panic about current not being a child of parent in clean_children by @lukechu10 in #639
  • Re-export wasm-bindgen, js-sys, and event types from web-sys by @lukechu10 in #642
  • Add missing docs and more doctests by @lukechu10 in #643
  • Move web-sys features from sycamore to sycamore-web by @lukechu10 in #644
  • Update Router example to use non-referenced ReadSignal by @noxxxxxious in #647
  • Refactor view! by extracting parsing logic from codegen into a new crate by @lukechu10 in #649
  • Improve generation of HTML for the hydrate example. by @lukechu10 in #657
  • Add underline and bold for navigation improvements by @Hmikihiro in #660
  • Temporary fix for book broken navigation by @Hmikihiro in #661
  • Update MSRV to 1.73.0 by @lukechu10 in #663
  • Remove deploy draft workflow by @lukechu10 in #664
  • Update trunk to v0.19.1 and disable minification for hydrate example by @lukechu10 in #665
  • Maintenance: fix all the new clippy warnings by @lukechu10 in #666
  • Add track_caller attribute to provide_context* and use_context functions by @lukechu10 in #667
  • Add 'SubmitEvent' to re-exported events from web_sys crate by @dyanechi in #668
  • Replace CountAPI as it got taken down. by @JasonLovesDoggo in #674
  • Bump braces from 3.0.2 to 3.0.3 in /website by @dependabot in #675
  • Rename the tag type alias by @mtshr in #677
  • View Backend v2! (Attempt 2) by @lukechu10 in #679
  • Remove target_wasm32 folder by @lukechu10 in #680
  • Update some old docs by @lukechu10 in #681
  • Fix set_fn to not be silent by @lukechu10 in #682
  • v0.9.0-beta.3 by @lukechu10 in #683
  • Fix missing version in dependency by @lukechu10 in #684
  • fixup: missing keys in Cargo.toml by @lukechu10 in #685
  • Update codecov action by @lukechu10 in #686
  • fixup: wrong version in docs by @lukechu10 in #687
  • Make ViewHtmlNode methods use Cow<'static, str> instead of &'static str by @lukechu10 in #688
  • Make HtmlNode into pub by @lukechu10 in #689
  • Fix NoHydrate should render if not hydrating by @lukechu10 in #690
  • Remove nom dependency and replace with hand written parser by @lukechu10 in #691
  • Reorganize sycamore-web by @lukechu10 in #692
  • Move MaybeDyn to new file and add some impls by @lukechu10 in #693
  • Reimplement attribute passthrough, without attr:xyz! by @lukechu10 in #694
  • Fix suspense rendering async shell during fallback by @lukechu10 in #695
  • SSR Streaming by @lukechu10 in #696
  • Remove Gitpod by @lukechu10 in #697
  • v0.9.0-beta.4 by @lukechu10 in #698
  • Fix router on different pathname and hash triggers hard refresh by @lukechu10 in #700
  • Fix suspense should create context in global scope by @lukechu10 in #701
  • Add umami analytics to website by @lukechu10 in #702
  • Update branch name from master to main by @lukechu10 in #706
  • Allow attribute names by using string literal by @Kromgart in #707
  • Move MaybeDyn to sycamore-reactive by @lukechu10 in #705
  • Add re-exports back to sycamore-web by @lukechu10 in #708
  • Cleanup some example dependencies by @lukechu10 in #709
  • Add missing feature to serde in http-request(-builder) examples by @lukechu10 in #710
  • Fix #704 - Updating the check whether a view must be dynamic. by @Kromgart in #711
  • Support MaybeDyn<Option<Cow<'static, str>>> and make some impls more flexible by @lukechu10 in #713
  • Remove tracing from sycamore-web by @lukechu10 in #715
  • Support optional attributes by @lukechu10 in #714
  • Update faq.md, rust is the 2023-most-desired-language by @liigo in #716
  • Transitions v2 + Resources API by @lukechu10 in #719
  • cargo fmt by @lukechu10 in #722
  • Fix macro hygiene for console_{log, warn, error, dbg}! by @lukechu10 in #723
  • Update old website to migrate to sycamore.dev by @lukechu10 in #724
  • Force redirect home page to new website by @lukechu10 in #725
  • Remove old website code by @lukechu10 in #726
  • Create SECURITY.md by @lukechu10 in #727
  • Update docs to test workflow by @lukechu10 in #728
  • Fix build examples workflow by @lukechu10 in #730
  • Fix build example workflow again by @lukechu10 in #731
  • Implement Into<View> for signal like types by @lukechu10 in #732
  • New docs for Sycamore v0.9 by @lukechu10 in #729
  • Fix hydration mismatch when using render_to_string_await_suspense by @lukechu10 in #733
  • Fix broken expect test by @lukechu10 in #734
  • Fix condition in Suspense is not reactive breaking hydration by @lukechu10 in #735
  • Fix SSR blocking mode removing suspended content after load by @lukechu10 in #736
  • Make SsrNode automatically create reactive nodes by default by @lukechu10 in #737
  • Reimplement SSR streaming with FuturesUnordered by @lukechu10 in #738
  • Do not track callback in on function callback by @lukechu10 in #740
  • Fix do not track nested reactivity in map_keyed/map_indexed by @lukechu10 in #742
  • Slightly better error messages for read/updating a signal while updating/reading by @lukechu10 in #745
  • Support impl Trait syntax with inline_props by @davidon-top in #746

0.8.2 (2022-09-24)

0.8.1 (2022-09-03)

0.8.0 (2022-08-28)

Release post: https://sycamore-rs.netlify.app/news/announcing-v0.8.0

0.7.1 (2021-12-15)

0.7.0 (2021-12-08)

Release post: https://sycamore-rs.netlify.app/news/announcing-v0.7.0

0.6.3 (2021-10-10)

0.6.2 (2021-10-09)

0.6.1 (2021-09-25)

0.6.0 (2021-09-12)

Release post: https://sycamore-rs.netlify.app/news/announcing-v0.6.0

0.5.2 (2021-07-17)

Changelog

  • ⚡️ Features

    • Context API: introducing ContextProvider and use_context [@lukechu10, #169]
  • 🛠 Fixes

    • Router should not prevent default if meta keys are held down [@baile320, #165]
    • Remove some optional tags on dependencies [@lukechu10, #167]
    • Explicitly enable std feature in indexmap to prevent compile error [@Gearme, #170]
    • Do not panic when map_keyed is updated with same data in debug mode [@lukechu10, #173]
  • 🛠 Internal Fixes and Improvements

  • 📃 Documentation

  • 🚅 Performance Improvements

0.5.1 (2021-07-09)

Changelog

  • 🛠 Fixes

  • 🛠 Internal Fixes and Improvements

  • 🚅 Performance Improvements

0.5.0 (2021-07-06)

Release post: https://sycamore-rs.netlify.app/news/announcing-v0.5.0

Changelog

  • ⚡️ Features

    • Tweened signals [@lukechu10, #86]
    • Add more easing functions [@tmpr, #90]
    • Document fragments in the template! macro. template! can now accept the following input:
      template! {
          p { "First" }
          p { "Second" }
      }
      template! {} // empty template
      [@lukechu10, #89]
    • 2-way data binding for certain supported props [@lukechu10, #93]
    • Allow generic component's type parameters to be inferred from context [@lukechu10, #100]
    • Refactored Template (renamed from TemplateResult) to allow make the template system more flexible. It is now possible to imperatively construct Templates from raw dom nodes, Vecs, and closures [@lukechu10, #104]
    • Sycamore router [@lukechu10, #118]
    • Temporary "fake" hydration [@lukechu10, #101]
    • Router use anchor tags (<a>) instead of Link components [@lukechu10, #128]
    • Reactive scope dependency count utility function [@lukechu10, #144]
  • 🛠 Fixes

    • Implement missing operations on SsrNode [@lukechu10, #82, #138]
    • Remove warning when effects are created outside of a reactive scope [@JuanMarchetto, #95]
    • Do not assume Signal is valid for entire duration of the effect and make effect triggers deterministic (outer effects rerun first) [@lukechu10, #145]
    • Eagerly evaluate dynamic Templates with create_memo [@lukechu10, #146]
  • 📃 Documentation

  • 🛠 Internal Fixes and Improvements

  • 🚨 BREAKING CHANGES

    • Abstraction over rendering backend! This introduces the concept of GenericNode which is a trait to access the underlying rendering backend. Currently, Sycamore ships with DomNode and SsrNode out-of-the-box for rendering the the browser DOM and to a static string respectively. Components should now be generic over G: GenericNode to be able to render to multiple backends [@lights0123, #67]
    • Require using the #[component(_)] attribute macro for defining components. This changes the component syntax to:
      #[component(MyComponent<G>)]
      fn my_component() -> Template<G> {
          todo!()
      }
      The #[component(_)] macro generates a struct under the hood that implements the Component trait for improved type safety. This also means that you no longer need #[allow(non_snake_case)] in your code! [@lukechu10, #70] #92]
    • Rename Owner to ReactiveScope [@lukechu10, #99]
    • Renamed crate from maple-core to sycamore and maple-core-macro to sycamore-macro. Also renamed all instances of "Maple" to "Sycamore" [@lukechu10, #109]
    • Rename TemplateResult to Template [@lukechu10, #112]
    • Rename reactive sub-module to rx [@lukechu10, #113]
    • Remove render functions (render, render_to, render_to_string, etc...) from prelude. These functions are generally only called once in a Sycamore app so they do not belong in the prelude [@lukechu10, #140]

0.4.3 (2021-04-01)

Changelog

  • ⚡️ Features

    • Support '-' in attribute names. This makes the following syntax valid:
      template! {
          button(aria-hidden="true")
      }
      [@lukechu10, #79]
  • 🛠 Fixes

    • Delete removed nodes in Keyed first before adding new nodes and moving existing nodes [@lukechu10, #77]

0.4.2 (2021-03-31)

Changelog

  • 🛠 Fixes

    • Fix Keyed iteration (hopefully for the last time) when moving nodes already inserted [@lukechu10, #75]

0.4.1 (2021-03-31)

Changelog

  • 🛠 Fixes

    • Fix Keyed iteration (swapping and inserting not at the end) [@lukechu10, #73]
  • 📃 Documentation Fixes

  • 🎁 Example Fixes

0.4.0 (2021-03-25)

Changelog

  • ⚡️ Features

    • Iteration using SignalVec. This is more of an experiment and there are some bugs. This will most likely be removed in a future version [@lukechu10, #49]
    • Keyed iteration using Keyed and non-keyed iteration using Indexed which can iterate over a Signal<Vec>. This is the recommended way to iterate over a list of values [@lukechu10, #51, #53 and #54]
    • Node references. Use the ref attribute to bind an HTML element to a NodeRef [@lukechu10, #57]
  • 🛠 Fixes

  • 🛠 Internal Fixes and Improvements

  • 🎁 Examples

    • Complete spec conforming TodoMVC implementation [@lukechu10, #60]

0.3.1 (2021-03-16)

Changelog

  • ⚡️ Features

    • More types in template! macro. template! can now be nested [@lukechu10, #45]
    • Component lifecycle using on_cleanup [@lukechu10, #24]
  • 🛠 Fixes

0.3.0 (2021-03-13)

Changelog

  • ⚡️ Features

    • Nested effects. Inner effects are destroyed and recreated when outer effects re-run [@lukechu10, #29]
    • cloned! macro for making it easier to clone items into a new scope [@lukechu10, #34]
    • Effects are created inside a reactivity root (using create_root). When the root Owner is dropped, all effects are also destroyed [@lukechu10, 37]
    • Nested templates. Using this, it is also possible to build simple if/else control flow although there will be a more polished version [@lukechu10, #41]
  • 🛠 Fixes

  • 🛠 Internal Fixes and Improvements

  • BREAKING CHANGES

    • Replaced create_signal with Signal::new(...) and return Signal instead of getter/setter functions for increased type safety [@Kestrer, #20]
  • 📢 Announcements

0.2.0 (2021-03-07)

Changelog

  • ⚡️ Features

    • Components! In sycamore they are simply plain old functions that take their props via their parameters [#9]
    • Event listeners now have access to the Event object [#16]
  • 🛠 Changes

    • The template! macro now returns a TemplateResult instead of raw DOM nodes for increased type safety [#10]

0.1.1 (2021-03-07)

Changelog

  • ⚡️ Features

    • New untracked utility for explicitly opting out of automatic dependency detection in reactive contexts [#8]
  • 🛠 Fixes

    • Only subscribe to a dependency once in an effect, even if it is called multiple times [#7]

0.1.0 (2021-03-06)

Changelog

  • ⚡️ Features

    • Initial release!
    • Added template! macro.
    • Added reactivity primitives.