Hi! I started working on some needed updates to the Javascript infrastructure.
I am planning on doing 3 updates in the following order: npm → React → Webpack, and will go into details on what updates I’m doing and why.
General why
Updating now will make it easier to maintain and update later on.
Updating usually requires changing some of our code, updating it now when everything works fine means we can do it carefully and take our time.
npm 8
The main change here is in foreman-js and everyone that doesn’t contribute to foreman-js can keep using which npm version they like.
Unlike in foreman core and plugins, in foreman-js we save the package-lock.json file for stability.
Currently we install foreman-js using npm v6 (that’s why the package-lock.json is version 1: package-lock.json | npm Docs )
When installing using npm7+ the lock file is built in version 2 which is backwards compatible to v1 lockfiles.
Implementations:
theforeman:master
← MariaAga:npmv8
opened 07:28PM - 13 May 22 UTC
use npm 8 for the install proccess and github workflows
BREAKING CHANGE:
non… matching peer dependencies can break the install proccess
theforeman:develop
← MariaAga:npmv8
opened 08:04PM - 16 May 22 UTC
https://github.com/theforeman/foreman-js/pull/404
Why?
Potential/current issues:
other broken peer dependencies
Solutions:
For users that don’t want to deal with it:
can add --legacy-peer-deps
flag to npm i
For js developers that have to deal with it :
React 18
We use 16.9.
Previous update to 17 had to be reverted because pf3 tooltips stopped working: Fixes #30787 - upgrade js vendor to 8.3.0 by MariaAga · Pull Request #7963 · theforeman/foreman · GitHub
Solution: remove all uses of overlayTrigger
Refactor #34713: Remove PatternFly 3 OverlayTrigger - Foreman
Changes mostly foreman-js and react-dom use in foreman core
Update prs(WIP):
theforeman:master
← MariaAga:react-18
opened 05:58PM - 09 May 22 UTC
BREAKING CHANGE:
React 18
theforeman:master
← theforeman:dependabot/npm_and_yarn/react-17.0.1
opened 11:13AM - 04 Nov 20 UTC
Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) from 1… 6.9.0 to 17.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p>
<blockquote>
<h2>17.0.0 (October 20, 2020)</h2>
<p>Today, we are releasing React 17!</p>
<p><strong><a href="https://reactjs.org/blog/2020/10/20/react-v17.html">Learn more about React 17 and how to update to it on the official React blog.</a></strong></p>
<h3>React</h3>
<ul>
<li>Add <code>react/jsx-runtime</code> and <code>react/jsx-dev-runtime</code> for the <a href="https://babeljs.io/blog/2020/03/16/7.9.0#a-new-jsx-transform-11154-https-githubcom-babel-babel-pull-11154">new JSX transform</a>. (<a href="https://github.com/lunaruan">@lunaruan</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18299">#18299</a>)</li>
<li>Build component stacks from native error frames. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18561">#18561</a>)</li>
<li>Allow to specify <code>displayName</code> on context for improved stacks. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18224">#18224</a>)</li>
<li>Prevent <code>'use strict'</code> from leaking in the UMD bundles. (<a href="https://github.com/koba04">@koba04</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19614">#19614</a>)</li>
<li>Stop using <code>fb.me</code> for redirects. (<a href="https://github.com/cylim">@cylim</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19598">#19598</a>)</li>
</ul>
<h3>React DOM</h3>
<ul>
<li>Delegate events to roots instead of <code>document</code>. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18195">#18195</a> and <a href="https://github.com/facebook/react/pulls?q=is%3Apr+author%3Atrueadm+modern+event+is%3Amerged">others</a>)</li>
<li>Clean up all effects before running any next effects. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17947">#17947</a>)</li>
<li>Run <code>useEffect</code> cleanup functions asynchronously. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17925">#17925</a>)</li>
<li>Use browser <code>focusin</code> and <code>focusout</code> for <code>onFocus</code> and <code>onBlur</code>. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19186">#19186</a>)</li>
<li>Make all <code>Capture</code> events use the browser capture phase. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19221">#19221</a>)</li>
<li>Don't emulate bubbling of the <code>onScroll</code> event. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19464">#19464</a>)</li>
<li>Throw if <code>forwardRef</code> or <code>memo</code> component returns <code>undefined</code>. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19550">#19550</a>)</li>
<li>Remove event pooling. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18969">#18969</a>)</li>
<li>Stop exposing internals that won’t be needed by React Native Web. (<a href="https://github.com/necolas">@necolas</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18483">#18483</a>)</li>
<li>Attach all known event listeners when the root mounts. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19659">#19659</a>)</li>
<li>Disable <code>console</code> in the second render pass of DEV mode double render. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18547">#18547</a>)</li>
<li>Deprecate the undocumented and misleading <code>ReactTestUtils.SimulateNative</code> API. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/13407">#13407</a>)</li>
<li>Rename private field names used in the internals. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18377">#18377</a>)</li>
<li>Don't call User Timing API in development. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18417">#18417</a>)</li>
<li>Disable console during the repeated render in Strict Mode. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18547">#18547</a>)</li>
<li>In Strict Mode, double-render components without Hooks too. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18430">#18430</a>)</li>
<li>Allow calling <code>ReactDOM.flushSync</code> during lifecycle methods (but warn). (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18759">#18759</a>)</li>
<li>Add the <code>code</code> property to the keyboard event objects. (<a href="https://github.com/bl00mber">@bl00mber</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18287">#18287</a>)</li>
<li>Add the <code>disableRemotePlayback</code> property for <code>video</code> elements. (<a href="https://github.com/tombrowndev">@tombrowndev</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18619">#18619</a>)</li>
<li>Add the <code>enterKeyHint</code> property for <code>input</code> elements. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18634">#18634</a>)</li>
<li>Warn when no <code>value</code> is provided to <code><Context.Provider></code>. (<a href="https://github.com/charlie1404">@charlie1404</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19054">#19054</a>)</li>
<li>Warn when <code>memo</code> or <code>forwardRef</code> components return <code>undefined</code>. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19550">#19550</a>)</li>
<li>Improve the error message for invalid updates. (<a href="https://github.com/JoviDeCroock">@JoviDeCroock</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18316">#18316</a>)</li>
<li>Exclude forwardRef and memo from stack frames. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18559">#18559</a>)</li>
<li>Improve the error message when switching between controlled and uncontrolled inputs. (<a href="https://github.com/vcarl">@vcarl</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17070">#17070</a>)</li>
<li>Keep <code>onTouchStart</code>, <code>onTouchMove</code>, and <code>onWheel</code> passive. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19654">#19654</a>)</li>
<li>Fix <code>setState</code> hanging in development inside a closed iframe. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19220">#19220</a>)</li>
<li>Fix rendering bailout for lazy components with <code>defaultProps</code>. (<a href="https://github.com/jddxf">@jddxf</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18539">#18539</a>)</li>
<li>Fix a false positive warning when <code>dangerouslySetInnerHTML</code> is <code>undefined</code>. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18676">#18676</a>)</li>
<li>Fix Test Utils with non-standard <code>require</code> implementation. (<a href="https://github.com/just-boris">@just-boris</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18632">#18632</a>)</li>
<li>Fix <code>onBeforeInput</code> reporting an incorrect <code>event.type</code>. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19561">#19561</a>)</li>
<li>Fix <code>event.relatedTarget</code> reported as <code>undefined</code> in Firefox. (<a href="https://github.com/claytercek">@claytercek</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19607">#19607</a>)</li>
<li>Fix "unspecified error" in IE11. (<a href="https://github.com/hemakshis">@hemakshis</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19664">#19664</a>)</li>
<li>Fix rendering into a shadow root. (<a href="https://github.com/Jack-Works">@Jack-Works</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/15894">#15894</a>)</li>
<li>Fix <code>movementX/Y</code> polyfill with capture events. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19672">#19672</a>)</li>
</ul>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/facebook/react/blob/master/CHANGELOG.md">react's changelog</a>.</em></p>
<blockquote>
<h2>17.0.1 (October 22, 2020)</h2>
<h3>React DOM</h3>
<ul>
<li>Fix a crash in IE11. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/20071">#20071</a>)</li>
</ul>
<h2>17.0.0 (October 20, 2020)</h2>
<p>Today, we are releasing React 17!</p>
<p><strong><a href="https://reactjs.org/blog/2020/10/20/react-v17.html">Learn more about React 17 and how to update to it on the official React blog.</a></strong></p>
<h3>React</h3>
<ul>
<li>Add <code>react/jsx-runtime</code> and <code>react/jsx-dev-runtime</code> for the <a href="https://babeljs.io/blog/2020/03/16/7.9.0#a-new-jsx-transform-11154-https-githubcom-babel-babel-pull-11154">new JSX transform</a>. (<a href="https://github.com/lunaruan">@lunaruan</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18299">#18299</a>)</li>
<li>Build component stacks from native error frames. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18561">#18561</a>)</li>
<li>Allow to specify <code>displayName</code> on context for improved stacks. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18224">#18224</a>)</li>
<li>Prevent <code>'use strict'</code> from leaking in the UMD bundles. (<a href="https://github.com/koba04">@koba04</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19614">#19614</a>)</li>
<li>Stop using <code>fb.me</code> for redirects. (<a href="https://github.com/cylim">@cylim</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19598">#19598</a>)</li>
</ul>
<h3>React DOM</h3>
<ul>
<li>Delegate events to roots instead of <code>document</code>. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18195">#18195</a> and <a href="https://github.com/facebook/react/pulls?q=is%3Apr+author%3Atrueadm+modern+event+is%3Amerged">others</a>)</li>
<li>Clean up all effects before running any next effects. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17947">#17947</a>)</li>
<li>Run <code>useEffect</code> cleanup functions asynchronously. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17925">#17925</a>)</li>
<li>Use browser <code>focusin</code> and <code>focusout</code> for <code>onFocus</code> and <code>onBlur</code>. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19186">#19186</a>)</li>
<li>Make all <code>Capture</code> events use the browser capture phase. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19221">#19221</a>)</li>
<li>Don't emulate bubbling of the <code>onScroll</code> event. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19464">#19464</a>)</li>
<li>Throw if <code>forwardRef</code> or <code>memo</code> component returns <code>undefined</code>. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19550">#19550</a>)</li>
<li>Remove event pooling. (<a href="https://github.com/trueadm">@trueadm</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18969">#18969</a>)</li>
<li>Stop exposing internals that won’t be needed by React Native Web. (<a href="https://github.com/necolas">@necolas</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18483">#18483</a>)</li>
<li>Attach all known event listeners when the root mounts. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19659">#19659</a>)</li>
<li>Disable <code>console</code> in the second render pass of DEV mode double render. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18547">#18547</a>)</li>
<li>Deprecate the undocumented and misleading <code>ReactTestUtils.SimulateNative</code> API. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/13407">#13407</a>)</li>
<li>Rename private field names used in the internals. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18377">#18377</a>)</li>
<li>Don't call User Timing API in development. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18417">#18417</a>)</li>
<li>Disable console during the repeated render in Strict Mode. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18547">#18547</a>)</li>
<li>In Strict Mode, double-render components without Hooks too. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18430">#18430</a>)</li>
<li>Allow calling <code>ReactDOM.flushSync</code> during lifecycle methods (but warn). (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18759">#18759</a>)</li>
<li>Add the <code>code</code> property to the keyboard event objects. (<a href="https://github.com/bl00mber">@bl00mber</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18287">#18287</a>)</li>
<li>Add the <code>disableRemotePlayback</code> property for <code>video</code> elements. (<a href="https://github.com/tombrowndev">@tombrowndev</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18619">#18619</a>)</li>
<li>Add the <code>enterKeyHint</code> property for <code>input</code> elements. (<a href="https://github.com/eps1lon">@eps1lon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18634">#18634</a>)</li>
<li>Warn when no <code>value</code> is provided to <code><Context.Provider></code>. (<a href="https://github.com/charlie1404">@charlie1404</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19054">#19054</a>)</li>
<li>Warn when <code>memo</code> or <code>forwardRef</code> components return <code>undefined</code>. (<a href="https://github.com/bvaughn">@bvaughn</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19550">#19550</a>)</li>
<li>Improve the error message for invalid updates. (<a href="https://github.com/JoviDeCroock">@JoviDeCroock</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18316">#18316</a>)</li>
<li>Exclude forwardRef and memo from stack frames. (<a href="https://github.com/sebmarkbage">@sebmarkbage</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18559">#18559</a>)</li>
<li>Improve the error message when switching between controlled and uncontrolled inputs. (<a href="https://github.com/vcarl">@vcarl</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/17070">#17070</a>)</li>
<li>Keep <code>onTouchStart</code>, <code>onTouchMove</code>, and <code>onWheel</code> passive. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19654">#19654</a>)</li>
<li>Fix <code>setState</code> hanging in development inside a closed iframe. (<a href="https://github.com/gaearon">@gaearon</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/19220">#19220</a>)</li>
<li>Fix rendering bailout for lazy components with <code>defaultProps</code>. (<a href="https://github.com/jddxf">@jddxf</a> in <a href="https://github-redirect.dependabot.com/facebook/react/pull/18539">#18539</a>)</li>
</ul>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/facebook/react/commit/89b610969d70d788f8c9769e3fa5b0044f5737ab"><code>89b6109</code></a> Bump versions for 17</li>
<li><a href="https://github.com/facebook/react/commit/c63741fb3daef6c1e8746cbe7d7b07ecb281a9fd"><code>c63741f</code></a> offscreen double invoke effects (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19523">#19523</a>)</li>
<li><a href="https://github.com/facebook/react/commit/c6917346ff9f7ebdfbe11b73a72c82153ac704ec"><code>c691734</code></a> Fixed broken Profiler test (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19894">#19894</a>)</li>
<li><a href="https://github.com/facebook/react/commit/87c023b1c1b00d6776b7031f6e105913ead355da"><code>87c023b</code></a> Profiler onRender only called when we do work (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19885">#19885</a>)</li>
<li><a href="https://github.com/facebook/react/commit/81aaee56afba2bb3558f2aaa484b594f23b59d4c"><code>81aaee5</code></a> Don't call onCommit et al if there are no effects (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19863">#19863</a>)</li>
<li><a href="https://github.com/facebook/react/commit/bc6b7b6b16f771bfc8048fe15e211ac777253b64"><code>bc6b7b6</code></a> Don't trigger lazy in DEV during element creation (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19871">#19871</a>)</li>
<li><a href="https://github.com/facebook/react/commit/781212aab344b1619806369d768fad0c1ac3e04a"><code>781212a</code></a> Remove double space in test name (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19762">#19762</a>)</li>
<li><a href="https://github.com/facebook/react/commit/d17086c7c813402a550d15a2f56dc43f1dbd1735"><code>d17086c</code></a> Decouple public, internal act implementation (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19745">#19745</a>)</li>
<li><a href="https://github.com/facebook/react/commit/1f38dcff67d12828be771403e183652f5e93909a"><code>1f38dcf</code></a> Remove withSuspenseConfig (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19724">#19724</a>)</li>
<li><a href="https://github.com/facebook/react/commit/ddd1faa1972b614dfbfae205f2aa4a6c0b39a759"><code>ddd1faa</code></a> Remove config argument from useTransition (<a href="https://github.com/facebook/react/tree/HEAD/packages/react/issues/19719">#19719</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/facebook/react/commits/v17.0.1/packages/react">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Why?
Potential/current issues:
React-dom changes
Solution:
delete most of our react-dom use here: https://github.com/theforeman/foreman/pull/9212
* update the rest of the react-dom uses in this file is much less complicated once the most is deleted
Packages have react 16 as peer dependencies
Solution: npm8 will automatically install peerDependencies
Webpack 4
We use 3 for a very long time as updating it has been challenging.
Really basic draft:
https://github.com/theforeman/foreman/pull/9210
Changes only foreman core
Why?
Potential issues:
No one is sure how we build the ui
Using plugins - when using webpack 3 we could not use tree shaking and minifications because it will cause plugins to stop working.
Katello
Common chunks plugin is no longer used
In the draft pr, the –analyze shows that the bundles are ~x2 larger than before the PR