Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
igorkamyshev committed Sep 8, 2023
1 parent 21b1488 commit d910666
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
28 changes: 26 additions & 2 deletions apps/website/docs/releases/0-9.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
# v0.9
---
description: Nothing new, just a cleanup
outline: [2, 3]
---

# v0.9 Cleanup

This release is technical. It includes only deletions of deprecated features and general refactoring of the API. This release intentionally does not include any new features, so you can upgrade your codebase without any pressure.

## Migration guide

Since v0.9 is technical release with no new significant features, there are a few breaking changes that you should be aware of.
There are a bunch of breaking changes, but they are all minor and should not affect your code much. Furthermore, they are the [soundness as promised](/statements/releases). Please read the migration guide carefully before upgrading.

::: tip Q: Why breaking changes is necessary now?

A: The best APIs are created on top of real cases, so we've released [v0.1 Samet Nangshe](/releases/0-1) almost a year ago to get feedback from the community and collect real use cases. We've got a lot of feedback, and now we are ready to make the API more consistent and predictable.

:::

### Do not use `externalCache` adapter

Expand Down Expand Up @@ -32,4 +45,15 @@ In the next release v0.10 `supressIntermediateErrors` will be true `true` by def

:::

### Re-worked [_Sourced_](/api/primitives/sourced) internal implementation

Before [_Sourced_](/api/primitives/sourced) fields internally were represented as [_Stores_](https://effector.dev/docs/api/effector/store) with a final value of a field, which value changes fast right before read. This scheme was based on [Effector's computation priority](https://effector.dev/docs/explanation/computation-priority) and served well for a long time. But it had a few drawbacks:

- It could be easily broken by minor changes in Effector itself. And we plan such changes in the future major releases of Effector (e.g. [experimental phasing](https://github.com/effector/effector/pull/958), [batching improvements](https://github.com/effector/effector/pull/922), [`combine` improvements](https://github.com/effector/effector/pull/916), etc.);
- It led to race-conditions in some cases (e.g. [simultaneously started _Query_ created by `attachOperation`](https://github.com/igorkamyshev/farfetched/issues/327)).

After v0.9 [_Sourced_](/api/primitives/sourced) fields internally is represented as [_Stores_](https://effector.dev/docs/api/effector/store) with a function return final value of a field. It is more stable and less error-prone.

If you use `normalizeSourced` or `combineSourced` in your code, you may need to update it to the new API. Examples can be found in [the PR](https://github.com/igorkamyshev/farfetched/pull/354). Since `normalizeSourced` and `combineSourced` are low-level undocumented functions, we do not provide a migration guide for them.

<!--@include: ./0-9.changelog.md-->
3 changes: 2 additions & 1 deletion apps/website/docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ Farfetched is under development now, before the first stable release we are goin

### v.0.10

- Finalize DevTools interface
- DevTools interface
- Barrier API

## Future releases

Expand Down

0 comments on commit d910666

Please sign in to comment.