Browse Source

Maintenance: Remove feature flag for mobile front end and make Redis a regular dependency.

Martin Gruner 1 year ago
parent
commit
52306c6e03

+ 0 - 2
.github/workflows/ci.yaml

@@ -24,8 +24,6 @@ jobs:
       RAILS_ENV: test
       Z_LOCALES: "en-us:de-de"
       REDIS_URL: redis://redis:6379
-      # Temporary switch to enable the mobile front end for testing.
-      ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: 'true'
       # Compile assets only once.
       CI_SKIP_ASSETS_PRECOMPILE: 'true'
       # Avoid unnecessary DB resets.

+ 0 - 2
.gitlab/ci/__includes__/variables.yml

@@ -18,8 +18,6 @@ variables:
   ES_INDEX: 'estest.ci'
   ELASTICSEARCH_TAG: '7.16'
 
-  # Temporary switch to enable the mobile front end for testing.
-  ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: 'true'
   # Compile assets only once.
   CI_SKIP_ASSETS_PRECOMPILE: 'true'
   # Avoid unnecessary DB resets.

+ 2 - 2
.gitlab/ci/test/migration-from-mysql-to-postgresql.yml

@@ -9,8 +9,6 @@
       allow_failure: true
     - when: on_success
   variables:
-    # Turn off not not require redis for MySQL/MariaDB.
-    ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: ''
     ENFORCE_DB_SERVICE: mysql
   script:
     - !reference [.scripts, configure_environment]
@@ -35,6 +33,7 @@ migration:database:mysql_to_postgresql:
   services:
     - !reference [.services, mysql]
     - !reference [.services, postgresql]
+    - !reference [.services, redis]
 
 migration:database:mariadb_to_postgresql:
   extends:
@@ -42,3 +41,4 @@ migration:database:mariadb_to_postgresql:
   services:
     - !reference [.services, mariadb]
     - !reference [.services, postgresql]
+    - !reference [.services, redis]

+ 5 - 3
.gitlab/ci/test/migration.yml

@@ -10,9 +10,6 @@
       when: manual
       allow_failure: true
     - when: on_success
-  variables:
-    # Turn off not not require redis for MySQL/MariaDB.
-    ENABLE_EXPERIMENTAL_MOBILE_FRONTEND: ''
   before_script: []
   script:
     # First, checkout stable and set it up.
@@ -27,6 +24,8 @@
     - git checkout $CI_COMMIT_SHA
     - rvm use 3.1.3
     - !reference [.scripts, bundle_install]
+    # Force redis usage, even if it was disabled by the initial configure_environment script of stable.
+    - export REDIS_URL=redis://redis
     - bundle exec rails db:migrate
     - bundle exec rspec --profile 10 spec/db
 
@@ -35,15 +34,18 @@ rspec:migration:postgresql:
     - .template_migration
   services:
     - !reference [.services, postgresql]
+    - !reference [.services, redis]
 
 rspec:migration:mysql:
   extends:
     - .template_migration
   services:
     - !reference [.services, mysql]
+    - !reference [.services, redis]
 
 rspec:migration:mariadb:
   extends:
     - .template_migration
   services:
     - !reference [.services, mariadb]
+    - !reference [.services, redis]

+ 1 - 2
.gitlab/configure_environment.rb

@@ -81,7 +81,7 @@ class ConfigureEnvironment
 
   def self.configure_redis
     has_redis = network_host_exists?('redis')
-    needs_redis = !%w[1 true].include?(ENV['ZAMMAD_SAFE_MODE']) && ENV['ENABLE_EXPERIMENTAL_MOBILE_FRONTEND'] == 'true' # rubocop:disable Rails/NegateInclude
+    needs_redis = !%w[1 true].include?(ENV['ZAMMAD_SAFE_MODE']) # rubocop:disable Rails/NegateInclude
 
     if needs_redis && !has_redis
       raise 'Redis was not found, but is required for ActionCable.'
@@ -135,7 +135,6 @@ class ConfigureEnvironment
   end
 
   def self.run
-    puts 'ENABLING THE NEW EXPERIMENTAL MOBILE FRONTEND.' if ENV['ENABLE_EXPERIMENTAL_MOBILE_FRONTEND'] == 'true'
     configure_database
     configure_redis
     configure_memcached

+ 12 - 0
.pkgr.yml

@@ -14,6 +14,7 @@ targets:
       - epel-release
       - imlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - https://download.fedoraproject.org/pub/epel/7/x86_64/Packages/i/imlib2-1.4.9-8.el7.x86_64.rpm
       - https://download.fedoraproject.org/pub/epel/7/x86_64/Packages/i/imlib2-devel-1.4.9-8.el7.x86_64.rpm
@@ -28,6 +29,7 @@ targets:
       - epel-release
       - imlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - https://download.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/i/imlib2-1.4.9-8.el8.x86_64.rpm
       - https://download.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/i/imlib2-devel-1.4.9-8.el8.x86_64.rpm
@@ -40,6 +42,7 @@ targets:
       - postgresql|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -52,6 +55,7 @@ targets:
       - postgresql|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -64,6 +68,7 @@ targets:
       - postgresql|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -76,6 +81,7 @@ targets:
       - postgresql|mysql-server|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -88,6 +94,7 @@ targets:
       - postgresql|mysql-server|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -100,6 +107,7 @@ targets:
       - postgresql|mysql-server|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -112,6 +120,7 @@ targets:
       - postgresql|mysql-server|mariadb-server
       - libimlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       - libimlib2
       - libimlib2-dev
@@ -124,6 +133,7 @@ targets:
       - postgresql-server
       - libImlib2-1
       - imlib2
+      - redis
     build_dependencies:
       # Add packages required for build that are not in the official SLES repo.
       # Direct URLs must be used since we cannot add repos on packager.io
@@ -142,6 +152,7 @@ targets:
       - libImlib2-1
       - imlib2
       - shared-mime-info
+      - redis
     build_dependencies:
       # Add packages required for build that are not in the official SLES repo.
       # Direct URLs must be used since we cannot add repos on packager.io
@@ -163,5 +174,6 @@ env:
   - ZAMMAD_WEBSOCKET_PORT=6042
 services:
   - postgres:13
+  - redis
 before_install: contrib/packager.io/preinstall.sh
 after_install: contrib/packager.io/postinstall.sh

+ 2 - 2
Gemfile

@@ -38,10 +38,10 @@ gem 'thor'
 # core - websocket
 gem 'em-websocket'
 gem 'eventmachine'
-gem 'hiredis', require: false
+gem 'hiredis'
 # version restriction from actioncable-6.1.6.1/lib/action_cable/subscription_adapter/redis.rb
 #   - check after rails update
-gem 'redis', '>= 3', '< 5', require: false
+gem 'redis', '>= 3', '< 5'
 
 # core - password security
 gem 'argon2'

+ 2 - 9
app/assets/javascripts/app/controllers/_plugin/mobile_detection.coffee

@@ -1,11 +1,9 @@
 class App.MobileDetection
   @isMobile: ->
-    # TODO: Remove `mobile_frontend_enabled` check when this switch is not needed any more.
-    App.Config.get('mobile_frontend_enabled') and isMobile()
+    isMobile()
 
   @isForcingDesktopView: ->
-    # TODO: Remove `mobile_frontend_enabled` check when this switch is not needed any more.
-    App.Config.get('mobile_frontend_enabled') and App.LocalStorage.get('forceDesktopApp', false)
+    App.LocalStorage.get('forceDesktopApp', false)
 
   @clearForceDesktopApp: ->
     if App.LocalStorage.get('forceDesktopApp', false)
@@ -20,9 +18,6 @@ class App.MobileDetection
     window.location.href = target
 
   @redirectToMobile: =>
-    # TODO: Remove this when the mobile frontend switch is not needed any more.
-    return if not App.Config.get('mobile_frontend_enabled')
-
     @clearForceDesktopApp()
     @navigateToMobile()
 
@@ -54,7 +49,6 @@ class App.MobileDetectionPlugin extends App.Controller
 App.Config.set('mobile_detection', App.MobileDetectionPlugin, 'Plugins')
 
 if App.MobileDetection.isMobile() or App.LocalStorage.get('forceDesktopApp', false)
-  # TODO: Remove `mobile_frontend_enabled` check when this switch is not needed any more.
   App.Config.set('Mobile',
     {
       prio: 1500,
@@ -64,6 +58,5 @@ if App.MobileDetection.isMobile() or App.LocalStorage.get('forceDesktopApp', fal
       target: '#',
       onclick: true,
       key: 'MobileDetection',
-      setting: ['mobile_frontend_enabled']
     }
     , 'NavBarRight')

+ 0 - 4
app/controllers/sessions_controller.rb

@@ -279,10 +279,6 @@ class SessionsController < ApplicationController
       config['session_id'] = session.id.public_id
     end
 
-    # Temporary Hack: include the info about mobile frontend switch in the frontend config.
-    # TODO: Remove when this switch is not needed any more.
-    config['mobile_frontend_enabled'] = ENV['ENABLE_EXPERIMENTAL_MOBILE_FRONTEND'] == 'true'
-
     config
   end
 

+ 0 - 1
app/graphql/gql/subscriptions/base_subscription.rb

@@ -37,7 +37,6 @@ module Gql::Subscriptions
     def self.trigger(object, arguments: {}, scope: nil)
 
       return if Setting.get('import_mode') || Zammad::SafeMode.enabled?
-      return if ENV['ENABLE_EXPERIMENTAL_MOBILE_FRONTEND'] != 'true'
 
       ::Gql::ZammadSchema.subscriptions.trigger(
         graphql_field_name,

Some files were not shown because too many files changed in this diff