@@ -12,18 +12,35 @@ adding new features.
1212
1313The 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
337354The getMergeableContent method on a MergeableStore is used to get the state of a
338355store 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
361378A MergeableStore can be persisted locally, just like a regular Store into file,
362379local and session storage, and simple SQLite environments such as Expo and
0 commit comments