-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: monorepo, microbundler, docs, deprecation #1913
refactor: monorepo, microbundler, docs, deprecation #1913
Conversation
Object.assign is not supported by IE, compatibility with IE is broken now. |
@waclaw66 we shouldn't be making breaking changes on non major releases. I'll add deprecation notice to the current release, fix object.entries if I find it and bump a major release in case it happens again. |
@waclaw66 On investigation, this source code has always been here and is included in Sortable, but was transformed with I will deprecate and issue a new release. |
@waynevanson No problem, I had to return back to 1.10.2 anyway. IMO there should be increased major version because of breaking changes, to not get surprised and automatically updated by npm to 1.12.0 with no IE support. |
Now this may not be the best practice, but I've made huge amount of changes due to the nature of the changes
Monorepo
Create a monorepo configuration with Lerna.
Lerna was chosen because it can be used with NPM or Yarn and aids us in publishing and bumping up the value of packages.
Each plugin is now a separate package internally. In 2.0, we'll expose each plugin as a separate package along side a bigger
@sortable/plugins
.Closes #1910
todo: still need docs in the contribute section for how to use lerna. bootstrap, clean, publish.
Microbundler
We'll be using the infamous microbundler to bundle sortable! I was going to use parcel, but the lack of documentation for parcel 2 was enough to come across something else. It basically creates a rollup.config.js and runs rollup for us, so much of the files will be the same without too much change.
To make this work, all files had to become typescript. With enough
//@ts-ignore
comments, it will compile.This was going to happen anyway.
Documentation
I moved around some documentation form the main README into the
docs
directory.One day we'll use this on a website.
Deprecation
Some users have used GitHub as a CDN, meaning that users have been importing directly from the master tree.
These files are now filled with warnings about how they're not going to be updated any longer.
This lets people still using it have an unchanged experience and guides new users to not use it any longer.