|
1 | 1 | Changelog |
2 | 2 | ========= |
3 | 3 |
|
| 4 | +0.30.0 |
| 5 | +------ |
| 6 | + |
| 7 | +With recent changes to the custom component interface, it's now possible to remove all |
| 8 | +runtime reliance on NPM. Doing so has many virtuous knock-on effects: |
| 9 | + |
| 10 | +1. Removal of large chunks of code |
| 11 | +2. Greatly simplifies how users dynamically experiment with React component libraries, |
| 12 | + because their usage no longer requires a build step. Instead they can be loaded in |
| 13 | + the browser from a CDN that distributes ESM modules. |
| 14 | +3. The built-in client code needs to make fewer assumption about where static resources |
| 15 | + are located, and as a result, it's also easier to coordinate the server and client |
| 16 | + code. |
| 17 | +4. Alternate client implementations benefit from this simplicity. Now, it's possible to |
| 18 | + install idom-client-react normally and write a ``loadImportSource()`` function that |
| 19 | + looks for route serving the contents of `IDOM_WEB_MODULES_DIR.` |
| 20 | + |
| 21 | +This change includes large breaking changes: |
| 22 | + |
| 23 | +- The CLI is being removed as it won't be needed any longer |
| 24 | +- The `idom.client` is being removed in favor of a stripped down ``idom.web`` module |
| 25 | +- The `IDOM_CLIENT_BUILD_DIR` config option will no longer exist and a new |
| 26 | + ``IDOM_WEB_MODULES_DIR`` which only contains dynamically linked web modules. While |
| 27 | + this new directory's location is configurable, it is meant to be transient and should |
| 28 | + not be re-used across sessions. |
| 29 | + |
| 30 | +The new ``idom.web`` module takes a simpler approach to constructing import sources and |
| 31 | +expands upon the logic for resolving imports by allowing exports from URLs to be |
| 32 | +discovered too. Now, that IDOM isn't using NPM to dynamically install component |
| 33 | +libraries ``idom.web`` instead creates JS modules from template files and links them |
| 34 | +into ``IDOM_WEB_MODULES_DIR``. These templates ultimately direct the browser to load the |
| 35 | +desired library from a CDN. |
| 36 | + |
| 37 | +**Pull Requests** |
| 38 | + |
| 39 | +- Add changelog entry for 0.30.0 - :pull:`415` |
| 40 | +- Fix typo in index.rst - :pull:`411` |
| 41 | +- Add event handlers docs - :pull:`410` |
| 42 | +- Misc doc improvements - :pull:`409` |
| 43 | +- Port first IDOM article to docs - :pull:`408` |
| 44 | +- Test build in CI - :pull:`404` |
| 45 | +- Remove all runtime reliance on NPM - :pull:`398` |
| 46 | + |
4 | 47 | 0.29.0 |
5 | 48 | ------ |
6 | 49 |
|
|
0 commit comments