LaunchPadLab / lp-components

Our Components
http://lp-components.herokuapp.com
MIT License
5 stars 1 forks source link

Version 8.0 #581

Closed mwislek closed 1 year ago

mwislek commented 1 year ago

Because there were significant changes in several of the library versions as well as a change to the engines configuration, this update is being treated as a major update.

This work is being done as part of a client-template upgrade comparable to the update done for the Ionic client template.

Release Notes

This version contains the following breaking changes:

  1. Upgraded Node version to 18.12.1
  2. Removed node-sass in favor of sass
  3. Upgraded webpack and related loaders

Further explanation of each item is detailed below.


1. Upgraded Node version to 18.12.1

Typically, the Node version of an application can be updated without any breaking change. However, Node 18 requires an upgraded version of glibc. This has impact on Travis.

The default distribution used for builds and test execution (xenial) does not have the version of glibc required by Node 18. See this Travis community forum note for a discussion of this issue. See this Node issue for a discussion of the new glibc version requirement.

To resolve this issue, a specific Linux distribution (focal) is specified in the .travis.yml configuration file. This disribution has the correct glibc version. See this Travis documentation for a description of the focal build environment.

This version of lp-components will not support older Node versions. You must use Node version ^18.12.1.

2. Removed node-sass in favor of sass

node-sass has been deprecated and the latest version does not support the later glibc version (an exception is generated when one tries to execute node-sass with the later Node version). To resolve this, node-sass was removed and sass (Dart Sass, the currently active Sass implementation) was added. This change required an additional update to the build:styles script to use sass for style builds.

3. Upgraded webpack and related loaders

The Node upgrade mentioned above also fixed an OpenSSL issue. That fix required that the latest version of Webpack be used, along with configuration of a specific hashing function. To accommodate this change, webpack was upgraded to ^5.75.0 and the css-loader, style-loader, and sass-loader were also upgraded to their latest versions.

Author Checklist

mwislek commented 1 year ago

Can you see if a review app can be spun up for this PR? We may never had turned that on for this repo, but it would be nice to have.

Would a review app do anything? There are no views in this file. There is supposed to be a storybook deployment to Heroku though. Does that no longer work? Or was the request for a "review app" storybook deployment?

chawes13 commented 1 year ago

Can you see if a review app can be spun up for this PR? We may never had turned that on for this repo, but it would be nice to have.

Would a review app do anything? There are no views in this file. There is supposed to be a storybook deployment to Heroku though. Does that no longer work? Or was the request for a "review app" storybook deployment?

Exactly, I want to see the storybook deployment

mwislek commented 1 year ago

Exactly, I want to see the storybook deployment

@chawes13 Cool. I don't see the http://lp-components.herokuapp.com/storybook app when I log into the LPL Heroku instance. I am a "member" in the launchpadlab Heroku team instead of an "admin", which may be the issue. Do you see the app? If so, can you give me admin-level access to it so that I can configure the review app?

chawes13 commented 1 year ago

Exactly, I want to see the storybook deployment

@chawes13 Cool. I don't see the http://lp-components.herokuapp.com/storybook app when I log into the LPL Heroku instance. I am a "member" in the launchpadlab Heroku team instead of an "admin", which may be the issue. Do you see the app? If so, can you give me admin-level access to it so that I can configure the review app?

@mwislek I just added you as a pipeline member. Let me know if that gives you enough permissions. It looks like the pipeline was disconnected after the Heroku security incident, which requires manual reconnection.

mwislek commented 1 year ago

@mwislek I just added you as a pipeline member. Let me know if that gives you enough permissions. It looks like the pipeline was disconnected after the Heroku security incident, which requires manual reconnection.

@chawes13 Still don't see it. My permissions on the launchpadlab Heroku team are: https://share.getcloudapp.com/jkuOQvdd/. Could that be the reason I don't even see the app?

chawes13 commented 1 year ago

@mwislek I just added you as a pipeline member. Let me know if that gives you enough permissions. It looks like the pipeline was disconnected after the Heroku security incident, which requires manual reconnection.

@chawes13 Still don't see it. My permissions on the launchpadlab Heroku team are: https://share.getcloudapp.com/jkuOQvdd/. Could that be the reason I don't even see the app?

It's not in launchpadlab. It's in launchpadlab-dev! I'm surprised you didn't get an email invitation 🤔

mwislek commented 1 year ago

@chawes13 No email invitation. I don't even see the "Access" tab on launchpadlab-dev but believe I am a "Collaborator". Don't see the lp-components app though.

chawes13 commented 1 year ago

Ok. I just changed your permissions, connected GitHub to the repo, and enabled review apps

mwislek commented 1 year ago

Maybe there's a best practice guide that could summarize / distill the work that you did in the client-template (since we don't have a migration guide concept there)?

Would the "Release Notes" I added to this PR's description suffice or were you thinking of something new? I was assuming that this blurb about the Node version would be included in the release notes for all of the libraries that upgraded to Node 18. I included this same blurb in the client-template PR as well.