Closed Desplandis closed 7 months ago
@mgermerie @jailln Since peer dependencies tie users of the library to those versions, shall we tag the commits as features?
I think this is a good idea. Bumping them sometimes grants users with new features introduced in their new versions. On another point, I often pay more attention to the "feature" section of a changelog than the "workflows and chores" (or equivalent name). So based on my own experience, it would make peer dependencies update more visible. However this has yet to be confirmed by other user experiences.
@jailln @mgermerie Ready for review, I added a "Notes to reviewer" to my initial message. Unfortunately, I dont't have access to 3D Tiles with old gltfs (version = 1.0).
I also think we could remove regenerator-runtime
and text-encoding-utf-8
- perhaps in a future PR ?
Opened an issue for mapbox and a PR for removing unecessary dependencies. Will now merge this PR.
Description
Update all dependencies (when possible). I listed one major issue due to license change as well as minor issues questioning the necessity of certain dependencies or packaging problems upstream.
Peer dependencies
@mgermerie @jailln Since peer dependencies tie users of the library to those versions, shall we tag the commits as features?
three
(0.154.0
to0.159.0
): Breaking changes given by the migration guide. Possible issues:AnimationUtils.arraySlice()
has been removed inr157
. Used byLegacyGLTFLoader
.Quaternions
are now expected to be normalized inr158
.proj4
(2.9.0
to2.9.2
): No breaking changes.Dependencies
Those are the packages with a new version available:
@loaders.gl/las
(3.4.4
to4.0.4
): No API changes.@mapbox/mapbox-gl-style-spec
(13.28.0
): Will not update due to the fact this is the latest version with a FOSS license (ISC
). This is a huge red-flag, shall we consider moving to@maplibre/maplibre-gl-style-spec
? What are the differences between those two?@tmcw/togeojson
(5.6.2
to5.8.1
): Follows semantic versioning, no breaking changes.@tweenjs/tween.js
(18.6.4
): Cannot update to21.0.0
due to errorERR_REQUIRE_ESM
. They distribute a commonJS module but due to its.js
extension and theirpackage.json
treating js files as ES modules causing this issue... This could be fixed on their side by changing the extension of their commonJS module to.cjs
. Does not seems to be addressed upstream yet (see tweenjs/tween.js#649 and tweenjs/tween.js#659).regenerator-runtime
(0.13.11
to0.14.0
): No breaking changes. However all browsers support async functions/await statements since April 2017 (no IE11), do we still need this dependency (would need to update our babel target)?Those packages may not be needed anymore:
text-encoding-utf-8
: Used to polyfill TextDecoder in our code-base and is natively supported by all major browsers and Node.js since 2017 (with the exception of Edge which added support in 2020). Do we still need this dependency? Note that this can break our test-case since Node.js imports this differently (inutil
module).Developer dependencies
Those packages upgrades introduce no breaking change:
chalk
.chart.js
.core-js
.https-proxy-agent
.marked
node-fetch
: Update to latest2.x.x
version. Cannot update to3.x.x
since it's now a ESM only package but the 2.x.x branch is still maintained.replace-in-file
.typescript
.webpack
and the following loader:babel-loader
.whatwg-fetch
: Used to polyfill thefetch
API in web environment (supported by all browsers > 2016) in our webpack bundle. This may not be necessary anymore.Those packages upgrades introduce a breaking change for our use-cases:
conventional-changelog-cli
: Now requires anode >= 16
environment. Fix issue when the changelog of all versions was inserted in the changelog.md (only the last release is now added).eslint
and the following plug-ins:eslint-import-resolver-webpack
andeslint-plugin-import
. Note that the upgrade introduce a change in theif-else
indent rule, causing a linting issue inEllipsoid
.puppeteer
: Use new headless mode using chrome (instead of chromium).This package introduces coverage regression and will not be updated:
@babel/cli
,@babel/register
and the following plug-ins:@babel/plugin-transform-runtime
and@babel/preset-env
. Cause regression in coverage.Notes to reviewer
I didn't had access to pre-1.0 3D Tiles files to test lighting issues and edits to
LegacyGLTFLoader
. Maybe @jailln you could test it on your proprietary datasets ?