Skip to content

4.1.1+portage-4.1.1

Compare
Choose a tag to compare
@aaronskiba aaronskiba released this 09 Jul 16:58
· 293 commits to deployment-portage since this release
e77f291

Added

  • Merge DMPRoadmap Releases v4.1.0 and v4.1.1 #700

  • Enable Translation of QuestionOption.text (and Refactor Translation of ResearchDomain.label) #742

Fixed

  • Set licence_key in TinyMCE config #792

  • Add .pdf handling in render_respond_to_format_with_error_message #731

  • Fixed handling of Template.visibility in some places #759

Changed

  • Deactivate Requests to External ROR API #738

  • Updated 'translation' gem URL in Gemfile to match moved repository #725

  • Increased the width of the research outputs file size unit dropdown #741

  • Bump ledermann-rails-settings from 2.5.0 to 2.6.2 #764

  • Bump webmock from 3.19.1 to 3.23.1 #762

  • Bump rspec-rails from 6.0.3 to 6.1.2 #694

  • Bump docker db image from postgres:12.14 to postgres:15-alpine #749

  • Bump danger from 9.4.2 to 9.4.3 #681

  • Bump mail from 2.7.1 to 2.8.1 #651

  • Bump turbo-rails from 1.5.0 to 2.0.5 #771

  • Bump jbuilder from 2.11.5 to 2.12.0 #770

  • Bump faker from 3.2.3 to 3.4.1 #769

  • Bump jsbundling-rails from 1.1.1 to 1.3.0 #768

  • Bump binding_of_caller from 1.0.0 to 1.0.1 #767

  • Bump engine.io from 6.4.1 to 6.4.2 #774

  • Bump activestorage from 6.1.7.6 to 6.1.7.7 #773

  • Bump @babel/traverse from 7.21.4 to 7.24.6 #772

  • Bump follow-redirects from 1.15.4 to 1.15.6 #690

  • Bump devise_invitable from 2.0.8 to 2.0.9 #671

  • Bump yard from 0.9.34 to 0.9.36 #683

  • Bump tinymce from 6.4.1 to 7.0.0 #704

  • Bump actionpack from 6.1.7.7 to 6.1.7.8 #775

  • Bump brakeman from 5.4.1 to 6.1.2 #781

  • Bump wkhtmltopdf-binary from 0.12.6.6 to 0.12.6.7 #779

  • Bump rack-mini-profiler from 3.3.0 to 3.3.1 #778

  • Bump listen from 3.8.0 to 3.9.0 #776

  • Bump braces from 3.0.2 to 3.0.3 #795

  • Bump Ruby from 3.0.4 to 3.1.4 #808

V4.1.1

Added

  • Added MORE_INFO and LESS_INFO JS constants (for the Research Outputs feature)
  • Added a .gitkeep file to the app/assets/builds directory to address potential issues when building the application.css file during production deploys DMPRoadmap#3314

Fixed

  • Updated the default font on the 'Download page' to be 'Roboto, Arial, Sans-Serif'
  • Fixed an issue with API V0 that was causing a 500 Internal Server error
  • Solved issue where spring was loaded in production mode : ran bin/spring binstub --all
  • Updated fontawesome to V6

v4.1.0

Note this upgrade is a migration from Ruby v2.7.6 to v3.0.5. Note that this could have an impact on any customizations you may have made to your fork of this project. Please see https://www.fastruby.io/blog/ruby/upgrades/upgrade-ruby-from-2.7-to-3.0.html for further information on what to check. In particular, please note the changes to the way Ruby 3 handles keyword arguments

Note that the Webpacker gem has been removed in favor of jsbundling-rails. This was done in preparation for the future migration to Rails 7. See issue #3185 for more details on this change. If, after migrating to this version, you see 'Sprockets' related errors in your application you will need to rebuild you asset library. To do this run bin/rails assets:clobber && bin/rails assets:precompile from the project directory.

All gem and JS dependencies were also updated via bundle update && yarn upgrade

Upgrade to Ruby 3

  • Upgrade to Ruby version 3.0.5 #3225
  • Bumped all Github actions to use ruby 3.0
  • Removed .freeze from Regex and Range constants since those types are already immutable
  • Fixed Rubocop complaint about redundancy of r.nil? ? nil : r.user, so changed it to r&.user in app/models/plan.rb
  • Fixed Rubocop complaint about redundant :: in config.log_formatter = ::Logger::Formatter.new in config/environments/production.rb
  • Froze lib/deprecators/*.rb constants that were Strings
  • Updated places that were incorrectly using keyword args. See this article for an overview

Upgraded TinyMCE to v6

  • Upgraded TinyMCE to v6 (v5 EOL is April 20 2023)
  • Adjusted JS code to conform to new TinyMCE version
  • Adjusted views to work with the new version
  • Updated variables.scss file to fix issue with button text/background color contrast
  • Updated blocks/_tables.scss to fix issue with dropdown menu overlap against table
  • updated config/initializers/assets.rb to copy over the tinymce skins and bootstrap glyphicons to the public directory so that they are accessible by TinyMCE and Bootstrap code

Removed webpacker gem

As Webpacker is no longer maintained by the Rails community, we have replaced it by jsbundling-rails and cssbundling-rails for the Javascript & CSS compilation.

  • Removed webpacker gem
  • Added jsbundling-rails
  • Updated webpack and its configuration to V5
  • Moved app/javascript/packs/application.js to app/javascript/application.js
  • Removed ruby-sass gem
  • Added cssbundling-rails gem and DartSass JS library
  • Updated SASS stylesheets following the migration to the latest version of the sass package (See below).
  • Removed font-awesome-sass gem and used @fortawesome/fontawesome-free npm package
  • Issue with @import 'font-awesome-sprockets'; line in app/assets/stylesheets/application.scss. Removed that line after referring to the latest font-awesome install/setup guide which no longer includes it.

With the removal of Webpacker, the Javascript/SASS code is no longer automaticaly compiled when using the rails server command. It has been replaced by the bin/dev command that launch the rails server and the processes that watch for changes in the SASS and Javascript code.

SASS update : removal of the @import keyword

With the removal of the webpacker gem, the DartSass package has been installed to ensure the compilation of the Sass stylesheet and with it, an update to the Sass version used by the code :

  • @import keyword for custom stylesheets has been removed (although we can still import stylesheets from externals packages) and has been replaced by @use and @forward
  • An _index.scss file have to be created in folders containing multiple sass files. Each file have to be included in the index with the @use or @forward keyword.
  • In most cases @import can be replaced by @use when importing a file.
  • @forward makes mixins, functions and variables available when a stylesheet is loaded.
  • When imported, Sass variables are now namespaced with the file name in which they are declared (ex : color: colors.$red). A namespace can be renamed (ex : @use "colours" as c;) or removed when included (ex : @use "colours" as *;)
  • Sass variables are no longer declared globally and have to be included in files where they are used.
    For more detailed explanation, please refer to this video : https://www.youtube.com/watch?v=CR-a8upNjJ0

Introduction of RackAttack

Rack Attack is middleware that can be used to help protect the application from malicious activity. You can establish white/black lists for specific IP addresses and also define rate limits.

  • Using Rack-attack address vulnerabilities pointed out in password reset and login: there was no request rate limit.#3214

Cleanup of Capybara configuration

  • Cleaned up Gemfile by:
    • removing gems that were already commented out
    • removed selenium-webdriver and capybara-webmock
    • removing version restrictions on: danger, font-awesome-sass, webdrivers
  • Cleaned up spec/rails_helper.rb and spec/spec_helper.rb
  • Simplified the spec/support/capybara.rb helper to work with the latest version of Capybara and use its built in headless Chrome driver

Rubocop updates

  • Installed rubocop-performance gem and made suggested changes
  • Added lib tasks as exclusive from debugger rubocop check after rubocop upgrading to >= v1.45 #3291

GitHub actions updates

  • Added node version specification (v16) to eslint, PostgreSQL and MySQL github action to eliminate digital routine enveloped error #319

Enhancements

  • Added enum to the funding status attribute of plan model to make the dropdown of 'funding status' being translatable
  • Allow users to download both single phase and in PDF, TEXT and DOCX format. CSV file can only download single phase instead of all phases.

Bug Fixes