Thanks Thiago. We have 1 project with: 9 files depending on t5/core/ajax 2 files depending on t5/core/console 8 files depending on t5/core/dom 21 files depending on t5/core/events 16 files depending on t5/core/zone
Another project with: 1 file depending on t5/core/dom 1 file depending on t5/core/events 2 files depending on t5/core/zone We should be fine to manually update these files too. Thanks -- Niran Abeygunawardena Senior Technical Architect clarivate.com<https://clarivate.com/> From: Dongmei Cao <dongmei....@icann.org> Date: Thursday, 12 June 2025 at 12:14 To: Tapestry users <users@tapestry.apache.org> Subject: Re: [Ext] [SURVEY] Do your Tapestry projects use Tapestry's own JS directly? [You don't often get email from dongmei....@icann.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] Thanks! 5 files depending on t5/core/zone t5/core/ajax Manually upgrading is not a problem. Best regards, Dongmei On 6/8/25, 3:03 PM, "Thiago H. de Paula Figueiredo" <thiag...@gmail.com <mailto:thiag...@gmail.com>> wrote: Hello! TL;DR: do your Tapestry projects have JavaScript code that uses Tapestry's own JS like t5/core/dom, t5/core/zone, t5/core/ajax, etc? How many JS files have at least one of these dependencies? No exact numbers needed. We're just trying to figure out the size of possible backward compatibility problems. We've been working on improving the Tapestry's JavaScript support, including support for ES6 modules[1], creating a non-Require.js mode (based on ES6 modules) and converting Tapestry's own JavaScript sources from CoffeeScript to TypeScript. The last part should help everyone developing Tapestry's JavaScript, since CoffeeScript's syntax is way closer to Ruby than to JavaScript itself. In addition, CoffeeScript is old and its last commit was more than 2.5 years ago [2], while TypeScript is being actively developed and gaining adoption. There's one problem with TS's code generation, though: while it can output both ES6 modules or AMD ones (the ones used by Require.js), the AMD modules' exports are done in a bit different way. For example, if you have this: define(["t5/core/dom", "t5/core/ajax"]], function(dom) { var foo = dom("bar"); ajax(...); ); you'd need to change your code to define(["t5/core/dom"], function(dom) { // The __importDefault function is generated by the Ts // compiler and fixes the problem dom = __importDefault(dom); ajax = __importDefault(ajax); var foo = dom("bar"); ajax(...); ); or define(["t5/core/dom", "t5/core/ajax"], function(dom) { var foo = dom.default("bar"); // Notice the '.default' part ajax.default(...); ); Notice the changes would only need to be done once, when upgrading to 5.10.0, and they're simple. This problem only happens for Require.js/AMD modules. If, after upgrading to 5.10.0, your ES6 modules will import the ones provided by Tapestry normally. There are tools for converting AMD modules to ES6 like https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fbuxlabs%2Famd-to-es6__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980076965%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=k78F3H1aEP0THbOzjPlw%2Bk4W3rFkvHUajpnpNat%2FIGU%3D&reserved=0<https://urldefense.com/v3/__https://github.com/buxlabs/amd-to-es6__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p$> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fbuxlabs%2Famd-to-es6__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980097898%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=h5u4JivkfFN4EYG9yrmB0iJIYzhehH6K03L506CDtSo%3D&reserved=0<https://urldefense.com/v3/__https://github.com/buxlabs/amd-to-es6__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477IWPn8p$>> [github[.]com]. If you have a small number of files, doing it manually only takes a few minutes each at most (my own experience while converting Tapestry's AMD modules to ES6) and your code will look better and more modern in the end. We, the Tapestry team, would like to know whether this would be a problem for your projects, especially if it would prevent upgrading from 5.7.0+ to 5.10.0. With your feedback, we'll be able to define how to best use our time, either trying to configure some source code transformation tool to change TypeScript's output to avoid the problem above [3], creating a migration tool or just investing in other Tapestry parts if this backward incompatibility isn't a big deal for your projects. Thanks in advance. Cheers! [1] In other words, the modules supported by browsers using <script type="module">. See https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980114709%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=UPS1FAdHz33GaR62QYidAyWzuVxD2jD5xG7nMziSU3U%3D&reserved=0<https://urldefense.com/v3/__https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K$> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fdeveloper.mozilla.org%2Fen-US%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980130247%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=X0kZS01tkbklQBC%2FHS05%2BFlwDFIQ858xrj1bwu9WWtw%3D&reserved=0<https://urldefense.com/v3/__https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q475ftWy5K$>> [developer[.]mozilla[.]org]. [2] https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fjashkenas%2Fcoffeescript%2F__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980145678%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=GoMXsRgDmwNeerSu6jh5670MD2PBGQYSZiicGNRw2LE%3D&reserved=0<https://urldefense.com/v3/__https://github.com/jashkenas/coffeescript/__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93$> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fjashkenas%2Fcoffeescript%2F__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980161223%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=AOi0D60zenugtmm%2FiN5nrwzuBYjVg2YuNNMuOKTZ1XI%3D&reserved=0<https://urldefense.com/v3/__https://github.com/jashkenas/coffeescript/__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q470zgJP93$>> [github[.]com] [3] Something like the approach described in this article: https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fwww.toptal.com%2Fjavascript%2Fwrite-code-to-rewrite-your-code__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980176551%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=T3lEPumyawIxQCx%2FfgSoa4O7KmqMCsY45UknxyZYegQ%3D&reserved=0<https://urldefense.com/v3/__https://www.toptal.com/javascript/write-code-to-rewrite-your-code__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE$> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fwww.toptal.com%2Fjavascript%2Fwrite-code-to-rewrite-your-code__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980191826%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=UO4EGcjg06bh8nKz9gUt0yRTjRXRblhj6W22WFyEmjs%3D&reserved=0<https://urldefense.com/v3/__https://www.toptal.com/javascript/write-code-to-rewrite-your-code__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q471YgPGrE$>> [toptal[.]com] . -- Thiago H. de Paula Figueiredo Software developer/engineer Apache Tapestry consultant, committer and project management committee member You can sponsor my work on Tapestry at https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fsponsors%2Fmachina-br__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980207108%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=mtI8%2Fzz%2BGqf%2Bfr0yKgSA5ufhAKWxU0KHf7lBmByNgb8%3D&reserved=0<https://urldefense.com/v3/__https://github.com/sponsors/machina-br__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN$> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2F%2Fgithub.com%2Fsponsors%2Fmachina-br__%3B!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN%24&data=05%7C02%7CNiran.Abeygunawardena%40clarivate.com%7C026d13f362124913231108dda9a25c3a%7C127fa96e00b4429e95f972c2828437a4%7C0%7C0%7C638853236980222496%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=D83onXRFPzf644YOzEkgRfK%2FjmDZRZ2bCYaIPvstyuY%3D&reserved=0<https://urldefense.com/v3/__https://github.com/sponsors/machina-br__;!!PtGJab4!4RVteosWX-_pSZ_xgfUICvIViRyaXfx3KoMtkZRJLzxbUhyjoB0BQ7eQVopkTZqET1sEncDBzpsmQ2q477qcuDlN$>> [github[.]com] Т���������������������������������������������������������������������ХF�V�7V'67&�&R�R���âW6W'2�V�7V'67&�&TFW7G'��6�R��&pФf�"FF�F����6����G2�R���âW6W'2ֆV�FW7G'��6�R��&p Confidentiality note: This e-mail may contain confidential information from Clarivate. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this e-mail is strictly prohibited. If you have received this e-mail in error, please delete this e-mail and notify the sender as soon as possible.