Skip to content
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

feature/APPEALS-46558 - Rails 6.1 upgrade (release) #1683

Conversation

jcroteau
Copy link
Contributor

Contains changes from the following PR(s):

AKeyframe and others added 30 commits August 13, 2024 12:35
Removes `bourbon` and `neat` dependencies.
During assets precompile in a 'production' environment, we encountered the following error:

  Uglifier::Error: Unexpected token: name (compare1).
  To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true).

Per the `uglifier` README:

  UglifyJS only works with ES5. If you need to compress ES6, `ruby-terser` is a better option.

Looking at the Caseflow git history for comparison, it looks like the `uglifier` gem was
removed in favor of using Webpack to perform JS compression via the `UglifyjsWebpackPlugin`.
Later, the `UglifyjsWebpackPlugin` was removed when Webpack v4 incorporated the
`TerserWebpackPlugin` out-of-the-box:
https://github.com/department-of-veterans-affairs/caseflow-efolder/blob/9853eaeb98692099f1e62435de9a4dc08292fa53/client/yarn.lock#L6119

It appears that there may need to be some additional configuration added to the
`webpack.config.js` file in order to leverage the Terser plugin:
https://v4.webpack.js.org/plugins/terser-webpack-plugin/

However, the Caseflow `webpack.config.js` does not include the Terser configuration at this time,
and so, in keeping parity with Caseflow, we will omit this configuration in eFolder as well
and leave it as a future exercise should it be necessary to enact JS compression.
…okie_encryption` and `config.action_dispatch.use_cookies_with_metadata`

While testing in PreProd, we discovered that, without these cookie config overrides,
re-authentication was broken -- after logging out, a user could not log back in.

Since the default settings are still optional going forward, we can restore these
overrides and devise a solution to migrate cookies later.

For more details, see Jira story APPEALS-54897:

https://jira.devops.va.gov/browse/APPEALS-54897
@jcroteau jcroteau marked this pull request as ready for review September 10, 2024 15:06
@sbashamoni sbashamoni merged commit 7a3ba9c into release/FY24Q4.4.2 Sep 10, 2024
3 of 7 checks passed
sbashamoni pushed a commit that referenced this pull request Sep 13, 2024
* Removed depreciated 5.2 default represent_boolean_as_integer

* caseflow-commons update - bourbon/neat removal

* Rails gem updated to 6.1.7.4

* app:update bin/rails

* app:update bin/rake

* app:update bin/setup

* app:update bin/spring

* app:update bin/yarn

* app:update config.ru

* app:update application.rb

* app:update config/boot.rb

* app:update config/environment.rb

* app:update config/environments/development.rb

* app:update config/enviroments/production.rb

* app:update config/environments/test.rb

* app:update config/initializers/backtrace_silencers.rb

* app:update config/initializers/filter_parameter_logging.rb

* app:update config/initializers/permissions_policy.rb

* app:update config/puma.rb

* app:update config/routes.rb

* Updated PG gem for postgres adapter

* bourbon/neat code removed

* Bundler version correction

* final newline error fix

* Review changes

* ⬆️ Update `caseflow-commons` dependency to latest ref

Removes `bourbon` and `neat` dependencies.

* Added accidental deletion back in

* 🔥 Remove `uglifier`

During assets precompile in a 'production' environment, we encountered the following error:

  Uglifier::Error: Unexpected token: name (compare1).
  To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true).

Per the `uglifier` README:

  UglifyJS only works with ES5. If you need to compress ES6, `ruby-terser` is a better option.

Looking at the Caseflow git history for comparison, it looks like the `uglifier` gem was
removed in favor of using Webpack to perform JS compression via the `UglifyjsWebpackPlugin`.
Later, the `UglifyjsWebpackPlugin` was removed when Webpack v4 incorporated the
`TerserWebpackPlugin` out-of-the-box:
https://github.com/department-of-veterans-affairs/caseflow-efolder/blob/9853eaeb98692099f1e62435de9a4dc08292fa53/client/yarn.lock#L6119

It appears that there may need to be some additional configuration added to the
`webpack.config.js` file in order to leverage the Terser plugin:
https://v4.webpack.js.org/plugins/terser-webpack-plugin/

However, the Caseflow `webpack.config.js` does not include the Terser configuration at this time,
and so, in keeping parity with Caseflow, we will omit this configuration in eFolder as well
and leave it as a future exercise should it be necessary to enact JS compression.

* ⏪️ Restore overrides for `config.action_dispatch.use_authenticated_cookie_encryption` and `config.action_dispatch.use_cookies_with_metadata`

While testing in PreProd, we discovered that, without these cookie config overrides,
re-authentication was broken -- after logging out, a user could not log back in.

Since the default settings are still optional going forward, we can restore these
overrides and devise a solution to migrate cookies later.

For more details, see Jira story APPEALS-54897:

https://jira.devops.va.gov/browse/APPEALS-54897

* PG updated to 1.5.7

* PG regressed from 1.5.7 to 1.1.4 for seperate branches

---------

Co-authored-by: Alec Kagebein <[email protected]>
sbashamoni added a commit that referenced this pull request Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants