TRL `0.3.0-next.X` Release

Greets @FVTT ▹ Developer! The initial 0.3.0-next.2 release is out for @typhonjs-fvtt/runtime and @typhonjs-fvtt/standard. This brings essential Foundry v13 / Theme V2 support to TRL. If you are already on 0.2.0 there should be no code changes required. ...unless you were using TJSTinyMCE / TinyMCE component as an editor. v13 soft locked it such that it is impossible to style w/ the new CSS layer changes to core without serious workarounds. Since MCE is disappearing in v14 I just removed it now. You'll need to switch to TJSProseMirror instead. I have upgraded / fixed all Foundry integration points like the file picker components, Foundry sidebar modifications and such. If there is anything that you see that is not fixed let me know. If you have added any temporary workarounds since v13 launched to get 0.2.0 to work on v13 you should remove them. It may be handy to check out essential-svelte-esm for some CSS tricks on how to handle the dark / light theme changes for components you create. It also is a good demo of a large chunk of TRL functionality and various Foundry integration points. I have updated the repo with the 0.3.0-next.2 coverage / Foundry v13 is required. Let's use this forum post to keep track of all 0.3.0 release information / questions. ---- The one outstanding aspect I need to complete before 0.3.0 officially launches is the dynamic style introspection layer of the standard library. Several of the standard library components like the input, select, color picker, buttons, etc. adopt the core platform styles dynamically at runtime. v13 has drastically changed how that works, so I need to rework the dynamic style introspection layer. I hope to be finished with that before end of next week. If you must push out a package release now it might be required that you push out another release once the final 0.3.0 is released. While I do have mechanisms in place to update the introspection layer code it is possible this time around due to the nature of the changes that if you release now and don't make a release when 0.3.0 is out that there could be a conflict. Usually, I try and get TRL ready to go out of the gate before core launches the next version into "stable". This time it's a bit late for various reasons. A video showing some of what you should expect from 0.3.0: https://www.youtube.com/watch?v=qVE4yH52jDM
TyphonJS
YouTube
TRL / TyphonJS Runtime Library 0.3.0-next.1 Overview
This video gives an overview of what to expect for v13 / Theme V2 changes for TRL on Foundry v13. 0.3.0 requires Foundry v13 and you must recompile your packages for release. There shouldn't be any code changes from 0.2.0. I demo some things from the essential svelte ESM demo repo. I did forget to demo the file pickers components. They are...
12 Replies
TyphonJS (Michael)
I should mention that I have only updated essential-svelte-esm the template repo and Typescript repos are not updated; just bump the TRL release in package.json as appropriate. Also the API docs will be updated on the final 0.3.0 release; there really aren't changes in the API. @FVTT ▹ Developer... I'm making progress on the final CSS variable / v13 CSS Layer refactor. Things will work out nicely... However, I am considering a rework to the TRL dynamic style system such that it indexes / retrieves the styles by CSS ID instead of the old mechanism of adhoc storing a key on the document itself. A few other aspects changing as well which will make the dynamic style sheet more visible in the DOM like adding the version as a data attribute rather than a non-descript style entry in head. This means the old mechanism and the new mechanism function differently. If possible I'd like to get a count of how many of you have released packages for v13 with either 0.2.x or the 0.3.0-next.2 releases? What this means moving forward is that everyone should do a release with 0.3.0 final or the next.3+ future beta releases forthcoming.
geoidesic
geoidesic6d ago
I’ve updated a module to v13 using
"@typhonjs-fvtt/runtime": "^0.1.3",
"@typhonjs-fvtt/svelte-standard": "^0.1.0"
"@typhonjs-fvtt/runtime": "^0.1.3",
"@typhonjs-fvtt/svelte-standard": "^0.1.0"
Without any problems other than the window.MIN_WINDOW_WIDTH thing.
TyphonJS (Michael)
Thanks for the response. You are really far behind by not updating to 0.2.x / IE some refactoring work ahead for you, mostly package sub-path changes. I do recommend that you get started now updating to 0.2.x. The swap to 0.3.0 will not have API changes from 0.2.x. Refer to the API Docs or ask questions in the 0.2.0 forum post.
Phenomen
Phenomen5d ago
Still waiting for Svelte 5 to start a system dev. After migrating a dozen of projects to Svelte 5 and actively using it for months, it would be too painful to get back to Svelte 4 syntax
TyphonJS (Michael)
I agree. I'm looking forward to getting past the v13 hump and being able to focus on just TRL which is a somewhat more pleasant experience. It will still be a minute, but keeping up w/ the latest TRL release helps. 0.4.0 will be the last long-term Svelte 4 release on the latest toolchain. Personally the drop off is quite apparent in the community; I wished all of this could happen quicker, but methodical and steady is my process. I think Svelte 5 is going to kill most folks packages unless they are dedicated devs. Too many devs pop in for an exploratory package jaunt, but it's real work to refactor / rework a package to the latest tech. Svelte 5 will be quite the cliff.
Vauxs
Vauxs5d ago
I am eagerly waiting for it If not just for the ability to use {get(), set()} in the svelte markup for form inputs
TyphonJS (Michael)
Types is going to be a process / big focus, but good news is that since there is end to end support currently it's easier to A/B any new developments. Hopefully I'll be able to complete the circle w/ next-gen Svelte to provide a fully fine-grained Foundry document model wrapper as that opens hooking up Foundry documents to anything smoothly w/ Svelte. I avoided introducing hacks / quick fixes / hardcoding to the Foundry API. Given the uncertain economy I'm skipping going to New Zealand for ski training / might have mentioned this earlier this year, so I'll be on this all through the summer here. Folks staying active in the community here too helps quite a bit for motivation to keep grinding all of this out. One of things I could / can do better is highlight more the solid solutions in TRL and how Svelte provides better architecture solutions. When everything just works the time to make that so might be obscurred.
Faey
Faey5d ago
I've done something slightly naught even. I released a v12 module with trl 0.3-next Everything kinda works as long as your UI is either fully custom or just non-fancy enough
TyphonJS (Michael)
That might work if you are using TJSApplicationShell (TRL CSS vars + fallback) vs ApplicationShell (new ThemeV2 classes). The old dynamic styles are still running in next.2. I don't recommend it per se as it's not being tested and what you are seeing now might not be the case for the final 0.3.0 release. So far v13 is the only core update that I haven't been able to have fully backward compatible where it was easy to release a package across versions in respect to UI aspects / mechanisms in TRL at least.
Faey
Faey4d ago
my users are well informed that V12-V13 will be a compatibility barrier, I just figured I'd test the module in V12 anyway
TyphonJS (Michael)
So, I'm still finishing up some of the technical work, but certain it's all going to work out on that angle. Just want to post an update on some of the detailed work / examples of why the v13 update is taking some time. There are areas of TRL that probably don't get used much yet like the reactive document dialogs for create / update, etc. The attached brief video shows how the v13 changes affect those dialogs and they need to reworked. Hopefully in the future some of the system devs here will give them a whirl as they support modal dialogs which IMHO is a much better workflow around document creation / modification than potentially popping up hundreds of duplicate windows like the core platform does. It's a big process to go through and manually verify everything that is in TRL, so while you / most might just use the app shells and call it a day and not use the extended set of TRL features there is just a lot of detailed work to update.
Vauxs
Vauxs3d ago
👀

Did you find this page helpful?