From c92ffb37861250766f9e7862b799d6cfb3b22693 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 14:36:03 -0300 Subject: [PATCH 1/8] Upgrade app to use Rails 7.2 and Ruby 3.3 --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/locaweb/cfp-app?shareId=XXXX-XXXX-XXXX-XXXX). --- .ruby-version | 2 +- .travis.yml | 2 +- Gemfile | 2 +- config/application.rb | 3 +++ config/environment.rb | 3 +++ config/environments/development.rb | 3 +++ config/environments/production.rb | 3 +++ config/environments/test.rb | 3 +++ 8 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.ruby-version b/.ruby-version index 2bf1c1ccf..15a279981 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.3.1 +3.3.0 diff --git a/.travis.yml b/.travis.yml index 3511da35f..c57950de8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: ruby rvm: - - 2.3.0 + - 3.3.0 env: global: - NOKOGIRI_USE_SYSTEM_LIBRARIES=true diff --git a/Gemfile b/Gemfile index 3b35c5fd1..2e301567e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source 'https://rubygems.org' ruby '2.3.1' -gem 'rails', '4.2.5' +gem 'rails', '7.2.0' gem 'puma', '~> 2.13' gem 'pg' diff --git a/config/application.rb b/config/application.rb index fb60d141e..39d4f4b1e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -32,5 +32,8 @@ class Application < Rails::Application # Do not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true + + # Specify Rails version + config.load_defaults 7.2 end end diff --git a/config/environment.rb b/config/environment.rb index ee8d90dc6..df3f96430 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -3,3 +3,6 @@ # Initialize the Rails application. Rails.application.initialize! + +# Specify Rails version +config.load_defaults 7.2 diff --git a/config/environments/development.rb b/config/environments/development.rb index 695efcf4d..b876cec8c 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -45,4 +45,7 @@ I18n.enforce_available_locales = false config.time_zone = ENV['TIMEZONE'] || "Pacific Time (US & Canada)" + + # Specify Rails version + config.load_defaults 7.2 end diff --git a/config/environments/production.rb b/config/environments/production.rb index 61629b2bb..711050056 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -95,4 +95,7 @@ config.time_zone = ENV['TIMEZONE'] || "Pacific Time (US & Canada)" Rack::Timeout.timeout = 15 + + # Specify Rails version + config.load_defaults 7.2 end diff --git a/config/environments/test.rb b/config/environments/test.rb index b38f12bde..05a55d7f4 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -46,4 +46,7 @@ I18n.enforce_available_locales = false config.assets.debug = true + + # Specify Rails version + config.load_defaults 7.2 end From 25fabb7edf1bfdd054458cb02ccb9542231a1f73 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 14:37:53 -0300 Subject: [PATCH 2/8] --- .github/workflows/ruby.yml | 47 ++++++++++++++++++++++++++++++++++++++ .travis.yml | 18 --------------- 2 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/ruby.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 000000000..5379f6519 --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,47 @@ +name: Ruby + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:latest + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: cfp_app_test + + steps: + - uses: actions/checkout@v2 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.3.0 + + - name: Install dependencies + run: bundle install --jobs 4 --retry 3 + + - name: Create database + run: | + sudo apt-get install -y postgresql-client + psql -h localhost -U postgres -c 'create database cfp_app_test;' + + - name: Run tests + run: bundle exec rake diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c57950de8..000000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: ruby -rvm: - - 3.3.0 -env: - global: - - NOKOGIRI_USE_SYSTEM_LIBRARIES=true - - QMAKE=/usr/lib/x86_64-linux-gnu/qt4/bin/qmake -addons: - apt: - sources: - - ubuntu-sdk-team - packages: - - libqt5webkit5-dev - - qtdeclarative5-dev -bundler_args: --jobs=3 --retry=3 --without development -script: xvfb-run bundle exec rake -before_script: - - psql -c 'create database cfp_app_test;' -U postgres From b95af15a9c994221149d2c634a57b506cc3d2ea0 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 14:54:40 -0300 Subject: [PATCH 3/8] --- Gemfile | 2 ++ Gemfile.lock | 65 ++++++++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/Gemfile b/Gemfile index 2e301567e..6ce7dfd0b 100644 --- a/Gemfile +++ b/Gemfile @@ -71,3 +71,5 @@ group :development, :test do gem 'pry-rescue' gem 'pry-remote' end + +gem 'bundler', '>= 2.6' diff --git a/Gemfile.lock b/Gemfile.lock index 9858795b2..c66ea455b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,21 +12,21 @@ GEM remote: https://rubygems.org/ remote: https://rails-assets.org/ specs: - actionmailer (4.2.5) - actionpack (= 4.2.5) - actionview (= 4.2.5) - activejob (= 4.2.5) + actionmailer (7.2.0) + actionpack (= 7.2.0) + actionview (= 7.2.0) + activejob (= 7.2.0) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.5) - actionview (= 4.2.5) - activesupport (= 4.2.5) + actionpack (7.2.0) + actionview (= 7.2.0) + activesupport (= 7.2.0) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.5) - activesupport (= 4.2.5) + actionview (7.2.0) + activesupport (= 7.2.0) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) @@ -35,17 +35,17 @@ GEM rails active_model_serializers (0.8.3) activemodel (>= 3.0) - activejob (4.2.5) - activesupport (= 4.2.5) + activejob (7.2.0) + activesupport (= 7.2.0) globalid (>= 0.3.0) - activemodel (4.2.5) - activesupport (= 4.2.5) + activemodel (7.2.0) + activesupport (= 7.2.0) builder (~> 3.1) - activerecord (4.2.5) - activemodel (= 4.2.5) - activesupport (= 4.2.5) + activerecord (7.2.0) + activemodel (= 7.2.0) + activesupport (= 7.2.0) arel (~> 6.0) - activesupport (4.2.5) + activesupport (7.2.0) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -245,16 +245,16 @@ GEM rack-test (0.6.3) rack (>= 1.0) rack-timeout (0.2.4) - rails (4.2.5) - actionmailer (= 4.2.5) - actionpack (= 4.2.5) - actionview (= 4.2.5) - activejob (= 4.2.5) - activemodel (= 4.2.5) - activerecord (= 4.2.5) - activesupport (= 4.2.5) + rails (7.2.0) + actionmailer (= 7.2.0) + actionpack (= 7.2.0) + actionview (= 7.2.0) + activejob (= 7.2.0) + activemodel (= 7.2.0) + activerecord (= 7.2.0) + activesupport (= 7.2.0) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.5) + railties (= 7.2.0) sprockets-rails rails-assets-momentjs (2.15.1) rails-deprecated_sanitizer (1.0.3) @@ -270,9 +270,9 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.4) rails_stdout_logging (0.0.4) - railties (4.2.5) - actionpack (= 4.2.5) - activesupport (= 4.2.5) + railties (7.2.0) + actionpack (= 7.2.0) + activesupport (= 7.2.0) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.5.0) @@ -287,6 +287,7 @@ GEM rspec-core (~> 3.4.0) rspec-expectations (~> 3.4.0) rspec-mocks (~> 3.4.0) + rspec-support (~> 3.4.0) rspec-core (3.4.1) rspec-support (~> 3.4.0) rspec-expectations (3.4.0) @@ -396,7 +397,7 @@ DEPENDENCIES quiet_assets rack-mini-profiler rack-timeout (~> 0.2.4) - rails (= 4.2.5) + rails (= 7.2.0) rails-assets-momentjs! rails_12factor redcarpet (~> 3.0.0) @@ -414,7 +415,7 @@ DEPENDENCIES zeroclipboard-rails RUBY VERSION - ruby 2.3.1p112 + ruby 3.3.0 BUNDLED WITH - 1.13.6 + 2.6.0 From 39297770b01ea97deae707ade1a23a2a5fee39fd Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 15:00:05 -0300 Subject: [PATCH 4/8] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 6ce7dfd0b..e2145f750 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' -ruby '2.3.1' +ruby '3.3.0' gem 'rails', '7.2.0' gem 'puma', '~> 2.13' From ff7d302989ef3b98fdc3cb34a746a3aa9eb8a8e4 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 15:02:31 -0300 Subject: [PATCH 5/8] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index e2145f750..7eecdf06e 100644 --- a/Gemfile +++ b/Gemfile @@ -28,7 +28,7 @@ gem 'coderay', '~> 1.0' gem 'bootstrap-multiselect-rails', '~> 0.9.9' gem 'active_model_serializers', '~> 0.8.1' gem 'draper' -gem 'simple_form', '3.1.1' +gem 'simple_form', '>= 5.1.0' gem 'zeroclipboard-rails' gem 'responders', '~> 2.0' gem 'pundit' From 8bc50f6d55f9043e2a2ccbd702cc8f8c05de6593 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 15:09:05 -0300 Subject: [PATCH 6/8] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 7eecdf06e..96d11ae4b 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,7 @@ gem 'bootstrap-sass', '~> 3.3.6' gem 'rails-assets-momentjs', source: 'https://rails-assets.org' gem 'selectize-rails' -gem 'devise', '~> 4.1.1' +gem 'devise', '~> 4.8.0' gem 'omniauth-github' gem 'omniauth-twitter' From d1061e23f504810bd344c1432ffa7370101a53f1 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Tue, 25 Feb 2025 15:12:53 -0300 Subject: [PATCH 7/8] --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 96d11ae4b..1af6dc4e0 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ group :development do gem 'binding_of_caller' gem 'foreman' gem 'launchy' - gem 'quiet_assets' + gem 'quiet_assets', '>= 1.2.0' gem 'rack-mini-profiler' gem 'haml-rails' gem 'spring-commands-rspec', require: false From fae7f9e712b330e0894c26ebd496bf49963aacf0 Mon Sep 17 00:00:00 2001 From: Ricardo Hermida Ruiz Date: Thu, 6 Mar 2025 17:08:07 -0300 Subject: [PATCH 8/8] --- config/environments/test.rb | 2 +- db/migrate/20130920220456_create_events.rb | 2 +- db/migrate/20130920225539_create_users.rb | 2 +- db/migrate/20130920225910_create_teammates.rb | 2 +- db/migrate/20130920230118_create_proposals.rb | 2 +- db/migrate/20130920230159_create_taggings.rb | 2 +- db/migrate/20130920230737_create_ratings.rb | 2 +- db/migrate/20130920230819_create_comments.rb | 2 +- db/migrate/20130920231655_create_speakers.rb | 2 +- db/migrate/20130922231603_create_invitations.rb | 2 +- db/migrate/20140131170125_create_rooms.rb | 2 +- db/migrate/20140131174158_create_time_slots.rb | 2 +- db/migrate/20140131183945_create_tracks.rb | 2 +- db/migrate/20140312163812_create_notifications.rb | 2 +- db/migrate/20160614162404_create_session_formats.rb | 2 +- db/migrate/20160713174249_create_program_sessions.rb | 2 +- db/migrate/20160804194731_create_non_unique_user_indexes.rb | 2 +- db/migrate/20160923182207_add_info_to_program_sessions.rb | 2 +- db/migrate/20160927205019_add_time_slot_track.rb | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/config/environments/test.rb b/config/environments/test.rb index 05a55d7f4..644150836 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -21,7 +21,7 @@ config.action_controller.perform_caching = false # Raise exceptions instead of rendering exception templates. - config.action_dispatch.show_exceptions = false + config.action_dispatch.show_exceptions = :rescuable # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false diff --git a/db/migrate/20130920220456_create_events.rb b/db/migrate/20130920220456_create_events.rb index 5b0f9447f..d7af22179 100644 --- a/db/migrate/20130920220456_create_events.rb +++ b/db/migrate/20130920220456_create_events.rb @@ -1,4 +1,4 @@ -class CreateEvents < ActiveRecord::Migration +class CreateEvents < ActiveRecord::Migration[7.2] def change create_table :events do |t| t.string :name, :slug diff --git a/db/migrate/20130920225539_create_users.rb b/db/migrate/20130920225539_create_users.rb index 9e8b42e10..85bbdc1b0 100644 --- a/db/migrate/20130920225539_create_users.rb +++ b/db/migrate/20130920225539_create_users.rb @@ -1,4 +1,4 @@ -class CreateUsers < ActiveRecord::Migration +class CreateUsers < ActiveRecord::Migration[7.2] def change create_table :users do |t| t.string :name diff --git a/db/migrate/20130920225910_create_teammates.rb b/db/migrate/20130920225910_create_teammates.rb index d27385d5a..d5ffc4881 100644 --- a/db/migrate/20130920225910_create_teammates.rb +++ b/db/migrate/20130920225910_create_teammates.rb @@ -1,4 +1,4 @@ -class CreateTeammates < ActiveRecord::Migration +class CreateTeammates < ActiveRecord::Migration[7.2] def change create_table :teammates do |t| t.references :event, index: true diff --git a/db/migrate/20130920230118_create_proposals.rb b/db/migrate/20130920230118_create_proposals.rb index 50f9ce1ed..f8d5eb070 100644 --- a/db/migrate/20130920230118_create_proposals.rb +++ b/db/migrate/20130920230118_create_proposals.rb @@ -1,4 +1,4 @@ -class CreateProposals < ActiveRecord::Migration +class CreateProposals < ActiveRecord::Migration[7.2] def change create_table :proposals do |t| t.references :event, index: true diff --git a/db/migrate/20130920230159_create_taggings.rb b/db/migrate/20130920230159_create_taggings.rb index 87cead1a6..7b2625398 100644 --- a/db/migrate/20130920230159_create_taggings.rb +++ b/db/migrate/20130920230159_create_taggings.rb @@ -1,4 +1,4 @@ -class CreateTaggings < ActiveRecord::Migration +class CreateTaggings < ActiveRecord::Migration[7.2] def change create_table :taggings do |t| t.references :proposal, index: true diff --git a/db/migrate/20130920230737_create_ratings.rb b/db/migrate/20130920230737_create_ratings.rb index eb62cdb63..d02f248c6 100644 --- a/db/migrate/20130920230737_create_ratings.rb +++ b/db/migrate/20130920230737_create_ratings.rb @@ -1,4 +1,4 @@ -class CreateRatings < ActiveRecord::Migration +class CreateRatings < ActiveRecord::Migration[7.2] def change create_table :ratings do |t| t.references :proposal, index: true diff --git a/db/migrate/20130920230819_create_comments.rb b/db/migrate/20130920230819_create_comments.rb index b0dad2bff..30c399503 100644 --- a/db/migrate/20130920230819_create_comments.rb +++ b/db/migrate/20130920230819_create_comments.rb @@ -1,4 +1,4 @@ -class CreateComments < ActiveRecord::Migration +class CreateComments < ActiveRecord::Migration[7.2] def change create_table :comments do |t| t.references :proposal, index: true diff --git a/db/migrate/20130920231655_create_speakers.rb b/db/migrate/20130920231655_create_speakers.rb index 50f78cd93..e05bc6572 100644 --- a/db/migrate/20130920231655_create_speakers.rb +++ b/db/migrate/20130920231655_create_speakers.rb @@ -1,4 +1,4 @@ -class CreateSpeakers < ActiveRecord::Migration +class CreateSpeakers < ActiveRecord::Migration[7.2] def change create_table :speakers do |t| t.references :user, index: true diff --git a/db/migrate/20130922231603_create_invitations.rb b/db/migrate/20130922231603_create_invitations.rb index 2440076f4..d5d8b4e41 100644 --- a/db/migrate/20130922231603_create_invitations.rb +++ b/db/migrate/20130922231603_create_invitations.rb @@ -1,4 +1,4 @@ -class CreateInvitations < ActiveRecord::Migration +class CreateInvitations < ActiveRecord::Migration[7.2] def change create_table :invitations do |t| t.references :proposal, index: true diff --git a/db/migrate/20140131170125_create_rooms.rb b/db/migrate/20140131170125_create_rooms.rb index a1c7f66dc..ce4ac56db 100644 --- a/db/migrate/20140131170125_create_rooms.rb +++ b/db/migrate/20140131170125_create_rooms.rb @@ -1,4 +1,4 @@ -class CreateRooms < ActiveRecord::Migration +class CreateRooms < ActiveRecord::Migration[7.2] def change create_table :rooms do |t| t.references :event, index: true diff --git a/db/migrate/20140131174158_create_time_slots.rb b/db/migrate/20140131174158_create_time_slots.rb index d588f51e9..3af1d8a6d 100644 --- a/db/migrate/20140131174158_create_time_slots.rb +++ b/db/migrate/20140131174158_create_time_slots.rb @@ -1,4 +1,4 @@ -class CreateTimeSlots < ActiveRecord::Migration +class CreateTimeSlots < ActiveRecord::Migration[7.2] def change create_table :time_slots do |t| t.references :program_session, index: true diff --git a/db/migrate/20140131183945_create_tracks.rb b/db/migrate/20140131183945_create_tracks.rb index da62aa74e..25d971d8b 100644 --- a/db/migrate/20140131183945_create_tracks.rb +++ b/db/migrate/20140131183945_create_tracks.rb @@ -1,4 +1,4 @@ -class CreateTracks < ActiveRecord::Migration +class CreateTracks < ActiveRecord::Migration[7.2] def change create_table :tracks do |t| t.references :event, index: true diff --git a/db/migrate/20140312163812_create_notifications.rb b/db/migrate/20140312163812_create_notifications.rb index d6022209f..be6b8a5e5 100644 --- a/db/migrate/20140312163812_create_notifications.rb +++ b/db/migrate/20140312163812_create_notifications.rb @@ -1,4 +1,4 @@ -class CreateNotifications < ActiveRecord::Migration +class CreateNotifications < ActiveRecord::Migration[7.2] def change create_table :notifications do |t| t.references :user, index: true diff --git a/db/migrate/20160614162404_create_session_formats.rb b/db/migrate/20160614162404_create_session_formats.rb index 63883f73e..2a46404c7 100644 --- a/db/migrate/20160614162404_create_session_formats.rb +++ b/db/migrate/20160614162404_create_session_formats.rb @@ -1,4 +1,4 @@ -class CreateSessionFormats < ActiveRecord::Migration +class CreateSessionFormats < ActiveRecord::Migration[7.2] def change create_table :session_formats do |t| t.references :event, index: true diff --git a/db/migrate/20160713174249_create_program_sessions.rb b/db/migrate/20160713174249_create_program_sessions.rb index 52e665ce8..2fa0cd727 100644 --- a/db/migrate/20160713174249_create_program_sessions.rb +++ b/db/migrate/20160713174249_create_program_sessions.rb @@ -1,4 +1,4 @@ -class CreateProgramSessions < ActiveRecord::Migration +class CreateProgramSessions < ActiveRecord::Migration[7.2] def change create_table :program_sessions do |t| t.references :event, index: true diff --git a/db/migrate/20160804194731_create_non_unique_user_indexes.rb b/db/migrate/20160804194731_create_non_unique_user_indexes.rb index 89f8ced17..4830dd583 100644 --- a/db/migrate/20160804194731_create_non_unique_user_indexes.rb +++ b/db/migrate/20160804194731_create_non_unique_user_indexes.rb @@ -1,4 +1,4 @@ -class CreateNonUniqueUserIndexes < ActiveRecord::Migration +class CreateNonUniqueUserIndexes < ActiveRecord::Migration[7.2] def change remove_index :users, :email remove_index :users, :reset_password_token diff --git a/db/migrate/20160923182207_add_info_to_program_sessions.rb b/db/migrate/20160923182207_add_info_to_program_sessions.rb index 6dcaeb857..2f17e09e8 100644 --- a/db/migrate/20160923182207_add_info_to_program_sessions.rb +++ b/db/migrate/20160923182207_add_info_to_program_sessions.rb @@ -1,4 +1,4 @@ -class AddInfoToProgramSessions < ActiveRecord::Migration +class AddInfoToProgramSessions < ActiveRecord::Migration[7.2] def change add_column :program_sessions, :info, :text end diff --git a/db/migrate/20160927205019_add_time_slot_track.rb b/db/migrate/20160927205019_add_time_slot_track.rb index db50c04e8..e9ed7fd11 100644 --- a/db/migrate/20160927205019_add_time_slot_track.rb +++ b/db/migrate/20160927205019_add_time_slot_track.rb @@ -1,4 +1,4 @@ -class AddTimeSlotTrack < ActiveRecord::Migration +class AddTimeSlotTrack < ActiveRecord::Migration[7.2] def change add_reference :time_slots, :track end