Roadmap to v5 - ES6/ESM/TypeScript/ModernTheme #807
Replies: 4 comments 6 replies
-
@6pac Summary of steps for a 5.0 Beta release:
npm install
npm run preview:release
npm run release # choose bump option 6 or higher Cheers EDIT I wrote the new Migration 5.0 |
Beta Was this translation helpful? Give feedback.
-
Hey Ghislain, sorry about dragging my heels, I’ve been sick :-(
TBH I’ve been wondering if you should just take over the repo at this point – I barely understand all the packaging requirements, and if I test them it’s going to be extremely cosmetic.
Would you be happy with that, and if so, what would we need to do to make it happen?
B
From: Ghislain B. ***@***.***>
Date: Saturday, 9 September 2023 at 12:14 am
To: 6pac/SlickGrid ***@***.***>
Cc: Ben McIntyre ***@***.***>, Mention ***@***.***>
Subject: Re: [6pac/SlickGrid] Roadmap to v5 - ES6/ESM/TypeScript/ModernTheme (WIP 👷🏻) (Discussion #807)
@6pac<https://github.com/6pac>
I'm ready for a SlickGrid 5.0 beta (or alpha), the only remaining and major thing left to do is to write a migration guide (like I've done with previous versions) and I will do that in coming days. I rewrote all node scripts as .mjs extension so that we can use ESM (mainly the use of import instead of require) and the release script itself is pretty much the same except that the build is now from esbuild (from build.mjs) instead of a minify script (which is now gone). I have updated some npm packages again last night, like TypeScript and Cypress, so make sure that you run npm install before you do anything. You could also run a dry-run (preview) of the release by running the preview script (if you do, just make sure to undo any file changes from git before you later run the official release afterward). I also added a minimum requirement of Node 16 to run the project in the package.json file, even though Node 16 will become EOL next Monday Sept. 11 so you might as well install Node 18.
Summary of steps for a 5.0 Beta release:
1. Make sure to have Node 16 or higher
2. Fetch latest code from the next branch
3. Install latest dependencies
npm install
1. Optionally execute a dry-run (preview) release (it execute a full build and then preview a release)
* if you do a dry-run, then make sure to rollback git changes once you are satisfied with the preview
npm run preview:release
1. Run a full release of 5.0 Beta (or alpha release)
npm run release # choose bump option 6 or higher
Cheers
—
Reply to this email directly, view it on GitHub<#807 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AABDEVPHYRB7CE2KGQZIBEDXZMVOBANCNFSM6AAAAAA2ICFOX4>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
@6pac oh sorry to hear that, I hope you recover quickly and enjoy the upcoming Spring on your side :) |
Beta Was this translation helpful? Give feedback.
-
Thanks @ghiscoding, I can add your NPM user to the approved list, do you have a username for NPM, or if not, could you register? |
Beta Was this translation helpful? Give feedback.
-
Project Modernization
This is a Work in Progress and all roadblock were resolved. This next release will be filled with a lot of changes to modernize the project, the main changes will be the following:
.d.ts
files)Note all PRs (Pull Requests) should be done against the
next
branch and all Cypress E2E tests must still be passingTODOs
Below is the list of files that need to be converted to TypeScript and also other tasks that are required for our upcoming v5 release
Core (10/10) - all core files were migrated in PR #804)
Controls (4/4) - all controls were migrated in PR #808)
Plugins (19/19)
iife
,cjs
andesm
and TypeScript #804)iife
,cjs
andesm
and TypeScript #804)Others
iife
,esm
andcjs
)dist/browser
folder<script type="module"> import { SlickGrid } from 'slickgrid'; </script>
package.json
that we will no longer use with our new structure (i.e.uglifyjs
)slickgridVersion
andv4.0.1
in comments with esbuild build (perhaps an esbuild custom plugin)src/slick.grid.ts
and that's itslick.core.ts
andslick.interactions.ts
were converted to TypeScript but were not converted to Classes, it might be better to do that change as well (ref PR chore: migrate slickcore Utils to class with static methods #834)isIEPreVer9
)see if we can drophttp-server
and keep only Browser-Sync for running CI Cypress E2E tests (currently only works with http-server)see if adding Context Sub-Menus is doable, see Discussion Thanks!!! #806groupBy
(which was replaced bysetGrouping
) (ref PR feat: remove deprecated DataView methods #833)SlickGrid/slick.dataview.js
Lines 350 to 353 in d0a0e3f
slick.remote
files if they are used without jQuery since these 2 remote API are still requiring jQuery and we won't convert them to vanilla JS.For the release
src/
and user will have to use SlickGrid files fromdist/
folderlib
folder got removed from npm publishenableColumnReorder: draggableGrouping.getSetupColumnReorder.bind(draggableGrouping)
)setAggregators
andgroupBy
were both replaced bysetGrouping
)protected
which is extendable instead ofprivate
which is not)Slick
prefix (i.e.,SlickGrid
,SlickDataView
,SlickColumnPicker
) when imported as CJS/ES6/ESMAggregators
Editors
,Formatters
ColAutosizeMode
,RowSelectionMode
, ...After the release
Beta Was this translation helpful? Give feedback.
All reactions