diff --git a/.app_version b/.app_version index 30f6cf8d..f23e1f8a 100644 --- a/.app_version +++ b/.app_version @@ -1 +1 @@ -0.26.1 +0.26.8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a549e1c..8aa5699c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,70 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +# 0.26.8 - 2025-05-30 -# 0.26.1 - 2025-05-15 +## Fixed + +- Enable caching in development for the docker image. + + +# 0.26.7 - 2025-05-29 + +## Fixed + +- Popups now showing distance in the correct distance unit. #1258 + +## Added + +- Bunch of system tests to cover map interactions. + + +# 0.26.6 - 2025-05-22 + +## Added + +- armv8 to docker build. #1249 + +## Changed + +- Points are now being created in the `points` queue. #1243 +- Route opacity is now being displayed as percentage in the map settings. #462 #1224 +- Exported GeoJSON file now contains coordinates as floats instead of strings, as per RFC 7946. #762 +- Fog of war now can be set to 200 meter per point. #630 +# 0.26.5 - 2025-05-20 + +## Fixed + +- Wget is back to fix healthchecks. #1241 #1231 +- Dockerfile.prod is now using slim image. #1245 +- Dockerfiles now use jemalloc with check for architecture. #1235 + +# 0.26.4 - 2025-05-19 + +## Changed + +- Docker image is now using slim image to introduce some memory optimizations. +- The trip page now looks a bit nicer. +- The "Yesterday" button on the map page was changed to "Today". #1215 +- The "Create Import" button now disabled until files are uploaded. + +# 0.26.3 - 2025-05-18 + +## Fixed + +- Fixed a bug where default distance unit was not being set for users. #1206 + + +# 0.26.2 - 2025-05-18 + +## Fixed + +- Seeds are now working properly. #1207 +- Fixed a bug where France flag was not being displayed correctly. #1204 +- Fix blank map page caused by empty default distance unit. Default distance unit is now kilometers and can be changed in Settings -> Maps. #1206 + + +# 0.26.1 - 2025-05-18 ## Geodata on demand diff --git a/config/cable.yml b/config/cable.yml index fd1a239f..d0da7a95 100644 --- a/config/cable.yml +++ b/config/cable.yml @@ -4,12 +4,7 @@ # to make the web console appear. development: - adapter: solid_cable - connects_to: - database: - writing: cable - polling_interval: 0.1.seconds - message_retention: 1.day + adapter: async test: adapter: test diff --git a/config/database.yml b/config/database.yml index dbe7b626..d80f85ef 100644 --- a/config/database.yml +++ b/config/database.yml @@ -15,25 +15,19 @@ development: database: <%= ENV['DATABASE_NAME'] || 'dawarich_development' %> queue: <<: *default - database: <%= ENV['DATABASE_QUEUE_NAME'] || 'dawarich_development_queue' %> + database: <%= ENV['QUEUE_DATABASE_NAME'] || 'dawarich_development_queue' %> + password: <%= ENV['QUEUE_DATABASE_PASSWORD'] %> migrations_paths: db/queue_migrate - cable: + cache: <<: *default - database: <%= ENV['DATABASE_CABLE_NAME'] || 'dawarich_development_cable' %> - migrations_paths: db/cable_migrate + database: <%= ENV['CACHE_DATABASE_NAME'] || 'dawarich_development_cache' %> + password: <%= ENV['CACHE_DATABASE_PASSWORD'] %> + migrations_paths: db/cache_migrate test: primary: <<: *default database: <%= ENV['DATABASE_NAME'] || 'dawarich_test' %> - queue: - <<: *default - database: <%= ENV['DATABASE_QUEUE_NAME'] || 'dawarich_test_queue' %> - migrations_paths: db/queue_migrate - cable: - <<: *default - database: <%= ENV['DATABASE_CABLE_NAME'] || 'dawarich_test_cable' %> - migrations_paths: db/cable_migrate production: primary: @@ -41,22 +35,37 @@ production: database: <%= ENV['DATABASE_NAME'] || 'dawarich_production' %> queue: <<: *default - database: <%= ENV['DATABASE_QUEUE_NAME'] || 'dawarich_production_queue' %> + database: <%= ENV['QUEUE_DATABASE_NAME'] || 'dawarich_production_queue' %> + password: <%= ENV['QUEUE_DATABASE_PASSWORD'] %> migrations_paths: db/queue_migrate cable: <<: *default - database: <%= ENV['DATABASE_CABLE_NAME'] || 'dawarich_production_cable' %> + database: <%= ENV['CABLE_DATABASE_NAME'] || 'dawarich_production_cable' %> + password: <%= ENV['CABLE_DATABASE_PASSWORD'] %> migrations_paths: db/cable_migrate + cache: + <<: *default + database: <%= ENV['CACHE_DATABASE_NAME'] || 'dawarich_production_cache' %> + password: <%= ENV['CACHE_DATABASE_PASSWORD'] %> + migrations_paths: db/cache_migrate staging: primary: <<: *default database: <%= ENV['DATABASE_NAME'] || 'dawarich_staging' %> + password: <%= ENV['DATABASE_PASSWORD'] %> + cache: + <<: *default + database: <%= ENV['CACHE_DATABASE_NAME'] || 'dawarich_staging_cache' %> + password: <%= ENV['CACHE_DATABASE_PASSWORD'] %> + migrations_paths: db/cache_migrate queue: <<: *default - database: <%= ENV['DATABASE_QUEUE_NAME'] || 'dawarich_staging_queue' %> + database: <%= ENV['QUEUE_DATABASE_NAME'] || 'dawarich_staging_queue' %> + password: <%= ENV['QUEUE_DATABASE_PASSWORD'] %> migrations_paths: db/queue_migrate cable: <<: *default - database: <%= ENV['DATABASE_CABLE_NAME'] || 'dawarich_staging_cable' %> + database: <%= ENV['CABLE_DATABASE_NAME'] || 'dawarich_staging_cable' %> + password: <%= ENV['CABLE_DATABASE_PASSWORD'] %> migrations_paths: db/cable_migrate diff --git a/config/routes.rb b/config/routes.rb index 45f77e17..69ff069b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,7 +6,6 @@ Rails.application.routes.draw do mount ActionCable.server => '/cable' mount Rswag::Api::Engine => '/api-docs' mount Rswag::Ui::Engine => '/api-docs' - mount MissionControl::Jobs::Engine, at: '/jobs' # Protec just as sidekiq unless DawarichSettings.self_hosted? Sidekiq::Web.use(Rack::Auth::Basic) do |username, password| @@ -26,10 +25,11 @@ Rails.application.routes.draw do (u.admin? && ENV['SIDEKIQ_USERNAME'].present? && ENV['SIDEKIQ_PASSWORD'].present?) } do mount Sidekiq::Web => '/sidekiq' + mount MissionControl::Jobs::Engine, at: '/jobs' end - # We want to return a nice error message if the user is not authorized to access Sidekiq - match '/sidekiq' => redirect { |_, request| + # We want to return a nice error message if the user is not authorized to access Sidekiq or Jobs + match %w[/sidekiq /jobs] => redirect { |_, request| request.flash[:error] = 'You are not authorized to perform this action.' '/' }, via: :get diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index a4fe1039..919527a5 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -45,7 +45,9 @@ RUN bundle config set --local path 'vendor/bundle' \ # Copy the rest of the application COPY ../. ./ -# Copy entrypoint scripts and grant execution permissions +# Create caching-dev.txt file to enable Rails caching in development +RUN mkdir -p $APP_PATH/tmp && touch $APP_PATH/tmp/caching-dev.txt + COPY ./docker/web-entrypoint.sh /usr/local/bin/web-entrypoint.sh RUN chmod +x /usr/local/bin/web-entrypoint.sh