Skip to content

Commit f92975b

Browse files
committed
[docs] Releases
1 parent 98550bf commit f92975b

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

site/guides/15_releases.md

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,35 @@ adding new features.
1212

1313
The most notable changes for users are:
1414

15-
- The package distribution only includes ESM packages.
16-
- React 19 is now expected as a peer dependency for UI components.
15+
- The package distribution only includes modern ESM packages (both minified and
16+
non-minified).
17+
- React 19 is now compatible as an optional peer dependency.
1718
- The tools module and TinyBase CLI have been removed.
1819

19-
As a result of these, there have been some knock-on effects to the project as a
20-
whole. For example, React 19 is used as a developer dependency for the project
21-
and so the test suite has been updated to use `react-testing-library` instead
22-
of `react-test-renderer`. The React `jsx-runtime` is used for JSX
23-
transformations. And the demos (and CodePen examples) have been updated to use
24-
an `importmap` mapping the modules to the [esm.sh](https://esm.sh/) CDN.
20+
If you have been using CJS or UMD packages, you will need to update your
21+
bundling strategy for TinyBase (in the same way that you will have had to have
22+
done for React 19, for example) but this change should be compatible with most
23+
packaging tools. If you had been using the library directly a browser, you
24+
should consider the [esm.sh](https://esm.sh/) CDN, as we have for our demos.
2525

26-
Please let us know how these changes find you!
26+
As a result of these changes, there have been some additional knock-on effects
27+
to the project and developer infrastructure as a whole. For example:
28+
29+
- The test suite has been updated to use `react-testing-library` instead of
30+
`react-test-renderer`.
31+
- The React `jsx-runtime` is used for JSX transformations.
32+
- Demos (and CodePen examples) have been updated to use an `importmap` mapping
33+
the modules to the [esm.sh](https://esm.sh/) CDN.
34+
- ESLint has finally been upgraded to v9.
35+
36+
Note that TinyBase v6.0 adds no new functionality, so you can afford to stay on
37+
v5.4.x for a while if these changes are somehow incompatible for you. However,
38+
all future functionality changes and bug fixes _will_ take effect as v6.x
39+
releases (and probably won't be back-ported to v5.4.x), so you should endeavor
40+
to upgrade as soon as you can.
41+
42+
Please let us know how these changes find you, and please file an issue on
43+
GitHub if you need help adapting to any of them.
2744

2845
# v5.4
2946

@@ -307,8 +324,8 @@ issues in a development environment.
307324

308325
# v5.0
309326

310-
We're excited to announce this major release for TinyBase! It includes
311-
important data synchronization functionality and a range of other improvements.
327+
We're excited to announce this major release for TinyBase! It includes important
328+
data synchronization functionality and a range of other improvements.
312329

313330
# In Summary
314331

@@ -329,10 +346,10 @@ Let's look at the major functionality in more detail!
329346

330347
## The New MergeableStore Type
331348

332-
A key part of TinyBase v5.0 is the new mergeable-store module, which contains
333-
a subtype of Store - called MergeableStore - that can be merged with another
334-
with deterministic results. The implementation uses an encoded hybrid logical
335-
clock (HLC) to timestamp the changes made so that they can be cleanly merged.
349+
A key part of TinyBase v5.0 is the new mergeable-store module, which contains a
350+
subtype of Store - called MergeableStore - that can be merged with another with
351+
deterministic results. The implementation uses an encoded hybrid logical clock
352+
(HLC) to timestamp the changes made so that they can be cleanly merged.
336353

337354
The getMergeableContent method on a MergeableStore is used to get the state of a
338355
store that can be merged into another. The applyMergeableChanges method will let
@@ -355,8 +372,8 @@ console.log(localStore2.getContent());
355372
// -> [{pets: {felix: {species: 'cat'}, fido: {species: 'dog'}}}, {}]
356373
```
357374

358-
Please read the new Using A MergeableStore guide for more details of how to
359-
use this important new API.
375+
Please read the new Using A MergeableStore guide for more details of how to use
376+
this important new API.
360377

361378
A MergeableStore can be persisted locally, just like a regular Store into file,
362379
local and session storage, and simple SQLite environments such as Expo and

0 commit comments

Comments
 (0)