Skip to content

Latest commit

 

History

History
705 lines (552 loc) · 36.1 KB

CHANGELOG.md

File metadata and controls

705 lines (552 loc) · 36.1 KB

Changelog

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.