From 36e00050330fbad50daf71eedd8d65270ca7bc26 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Wed, 2 Dec 2020 04:55:50 +0000 Subject: [PATCH 1/9] Bump main app version number --- config/initializers/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/version.rb b/config/initializers/version.rb index a4d6b355a..63c26352b 100644 --- a/config/initializers/version.rb +++ b/config/initializers/version.rb @@ -7,4 +7,4 @@ # ShinyCMS is free software; you can redistribute it and/or modify it under the terms of the GPL (version 2 or later) # ShinyCMS version number ('Ubuntu style', YY.MM) -VERSION = '20.11' +VERSION = '20.12' From 76f011ff117684c287d2cd931d753fe4e7bac1a7 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Wed, 2 Dec 2020 04:56:34 +0000 Subject: [PATCH 2/9] Add most recent 2.5+2.6+2.7 Travis CI run to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 95c4a64f7..a9fed4cc1 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ ShinyCMS requires Rails 6 (which in turn requires Ruby 2.5 or later), and genera It has been tested on most Ruby versions from 2.5.8 onwards, and every release of Rails 6 so far. -(Recent test results for [Ruby 2.5.8, 2.6.6, and 2.7.2](https://travis-ci.com/github/denny/ShinyCMS-ruby/builds/190156596)) +(Recent test results for [Ruby 2.5.8, 2.6.6, and 2.7.2](https://travis-ci.com/github/denny/ShinyCMS-ruby/builds/205841352)) ## Contributing From 3900aa9737cb41e0631fc65ac47a28915e43974c Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Wed, 2 Dec 2020 06:57:36 +0000 Subject: [PATCH 3/9] Get rid of rollups table too --- db/migrate/20201121073328_create_rollups.rb | 12 ------------ db/schema.rb | 9 --------- 2 files changed, 21 deletions(-) delete mode 100644 db/migrate/20201121073328_create_rollups.rb diff --git a/db/migrate/20201121073328_create_rollups.rb b/db/migrate/20201121073328_create_rollups.rb deleted file mode 100644 index 09bca578e..000000000 --- a/db/migrate/20201121073328_create_rollups.rb +++ /dev/null @@ -1,12 +0,0 @@ -class CreateRollups < ActiveRecord::Migration[6.0] - def change - create_table :rollups do |t| - t.string :name, null: false - t.string :interval, null: false - t.datetime :time, null: false - t.jsonb :dimensions, null: false, default: {} - t.float :value - end - add_index :rollups, [:name, :interval, :time, :dimensions], unique: true - end -end diff --git a/db/schema.rb b/db/schema.rb index 7bd90b083..efb904a80 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -273,15 +273,6 @@ t.index ["searchable_type", "searchable_id"], name: "index_pg_search_documents_on_searchable_type_and_searchable_id" end - create_table "rollups", force: :cascade do |t| - t.string "name", null: false - t.string "interval", null: false - t.datetime "time", null: false - t.jsonb "dimensions", default: {}, null: false - t.float "value" - t.index ["name", "interval", "time", "dimensions"], name: "index_rollups_on_name_and_interval_and_time_and_dimensions", unique: true - end - create_table "sessions", force: :cascade do |t| t.string "session_id", null: false t.text "data" From 2fb85c3b70c8695c7ef10ea8f00f7aa966a96594 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Wed, 2 Dec 2020 06:58:18 +0000 Subject: [PATCH 4/9] Remove superfluous comment --- app/controllers/admin/users_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 1dd236664..37480fb71 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -31,7 +31,6 @@ def search def username_search authorize User - # users = User.where( 'username ilike ?', "%#{params[ :term ]}%" ).pluck( :id, :username ) users = User.where( 'username ilike ?', "%#{params[ :term ]}%" ).pluck( :username ) render json: users From 169850d24f62e7748781e22d181fe02282183645 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Wed, 2 Dec 2020 06:58:52 +0000 Subject: [PATCH 5/9] Robustify env var check (a bit) --- db/seeds.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/seeds.rb b/db/seeds.rb index c3f014d21..6590ee92d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -26,7 +26,7 @@ end # Load default dashboard data for Blazer -require_relative 'seeds/blazer' unless ENV['DISABLE_BLAZER'].presence == 'true' +require_relative 'seeds/blazer' unless ENV['DISABLE_BLAZER'].presence&.downcase == 'true' # If there are currently no super-admin users, show the command to create one demo = ( Rake.application.top_level_tasks.first == 'shiny:demo:load' ) From 7a3f4340803b4b97c6ff0d2a954ecb05e288c63a Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Thu, 3 Dec 2020 23:06:26 +0000 Subject: [PATCH 6/9] Get rid of rollups rake task (rest of code already removed) --- lib/tasks/rollups.rake | 43 ------------------------------------------ 1 file changed, 43 deletions(-) delete mode 100644 lib/tasks/rollups.rake diff --git a/lib/tasks/rollups.rake b/lib/tasks/rollups.rake deleted file mode 100644 index 0bc525f6d..000000000 --- a/lib/tasks/rollups.rake +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -# ShinyCMS ~ https://shinycms.org -# -# Copyright 2009-2020 Denny de la Haye ~ https://denny.me -# -# ShinyCMS is free software; you can redistribute it and/or modify it under the terms of the GPL (version 2 or later) - -require 'dotenv/tasks' - -# ShinyCMS tasks for generated aggregated stats, and deleting the full data (to save space) - -namespace :shiny do - namespace :db do - desc 'ShinyCMS: aggregate web traffic data' - # :nocov: - task rollup: %i[ environment dotenv ] do - rollup_ahoy - end - # :nocov: - - desc 'ShinyCMS: aggregate web traffic data, and remove the full data' - # :nocov: - task rollup_and_remove: %i[ environment dotenv ] do - rollup_ahoy - - Ahoy::Visit.where( 'started_at < ?', 7.days.ago ).delete_all - end - - def rollup_ahoy - Rollup.week_start = :monday - - Ahoy::Visit.rollup( 'Visits', interval: :hour ) - Ahoy::Visit.where.not( user_id: nil ).rollup( 'Visits (logged-in users)', interval: :hour ) - - Ahoy::Event.where( name: 'Ran action' ) - .where_props( controller: 'shiny_blog/blog', action: 'show' ) - .group_prop( :year, :month, :title ) - .rollup( 'Blog post views' ) - end - # :nocov: - end -end From f1c728be7f87e1406be69ab7d5446e8d25c0eb1a Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Thu, 3 Dec 2020 23:10:43 +0000 Subject: [PATCH 7/9] Exclude posts that are hidden or future-dated from prev/next methods --- app/models/concerns/shiny_post.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/concerns/shiny_post.rb b/app/models/concerns/shiny_post.rb index 8dad7e9c9..13fdf8870 100644 --- a/app/models/concerns/shiny_post.rb +++ b/app/models/concerns/shiny_post.rb @@ -74,11 +74,11 @@ def posted_year end def next_post - self.class.where( 'posted_at > ?', posted_at ).order( posted_at: :asc ).first + self.class.published.where( 'posted_at > ?', posted_at ).order( posted_at: :asc ).first end def prev_post - self.class.where( 'posted_at < ?', posted_at ).order( posted_at: :desc ).first + self.class.published.where( 'posted_at < ?', posted_at ).order( posted_at: :desc ).first end alias_method :previous_post, :prev_post From 2b64546a2ca6c29a9aa9107586c85eca22259501 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Thu, 3 Dec 2020 23:11:17 +0000 Subject: [PATCH 8/9] Bump version numbers of plugins --- Gemfile.lock | 20 +++++++++---------- plugins/ShinyAccess/Gemfile.lock | 2 +- .../ShinyAccess/lib/shiny_access/version.rb | 2 +- plugins/ShinyBlog/Gemfile.lock | 2 +- plugins/ShinyBlog/lib/shiny_blog/version.rb | 2 +- plugins/ShinyForms/Gemfile.lock | 2 +- plugins/ShinyForms/lib/shiny_forms/version.rb | 2 +- plugins/ShinyInserts/Gemfile.lock | 6 +++++- .../ShinyInserts/lib/shiny_inserts/version.rb | 2 +- plugins/ShinyLists/Gemfile.lock | 2 +- plugins/ShinyLists/lib/shiny_lists/version.rb | 2 +- plugins/ShinyNews/Gemfile.lock | 2 +- plugins/ShinyNews/lib/shiny_news/version.rb | 2 +- plugins/ShinyNewsletters/Gemfile.lock | 2 +- .../lib/shiny_newsletters/version.rb | 2 +- plugins/ShinyPages/Gemfile.lock | 2 +- plugins/ShinyPages/lib/shiny_pages/version.rb | 2 +- plugins/ShinyProfiles/Gemfile.lock | 2 +- .../lib/shiny_profiles/version.rb | 2 +- plugins/ShinySearch/Gemfile.lock | 8 ++++---- .../ShinySearch/lib/shiny_search/version.rb | 2 +- 21 files changed, 37 insertions(+), 33 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 089c6e621..532595c63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,14 +1,14 @@ PATH remote: plugins/ShinyAccess specs: - shiny_access (20.11) + shiny_access (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) PATH remote: plugins/ShinyBlog specs: - shiny_blog (20.11) + shiny_blog (20.12) acts-as-taggable-on acts_as_paranoid ckeditor @@ -20,7 +20,7 @@ PATH PATH remote: plugins/ShinyForms specs: - shiny_forms (20.11) + shiny_forms (20.12) acts_as_paranoid kaminari pg (>= 0.18, < 2.0) @@ -30,7 +30,7 @@ PATH PATH remote: plugins/ShinyInserts specs: - shiny_inserts (20.11) + shiny_inserts (20.12) acts_as_paranoid ckeditor kaminari @@ -41,7 +41,7 @@ PATH PATH remote: plugins/ShinyLists specs: - shiny_lists (20.11) + shiny_lists (20.12) acts_as_paranoid kaminari pg (>= 0.18, < 2.0) @@ -51,7 +51,7 @@ PATH PATH remote: plugins/ShinyNews specs: - shiny_news (20.11) + shiny_news (20.12) acts-as-taggable-on acts_as_paranoid ckeditor @@ -63,14 +63,14 @@ PATH PATH remote: plugins/ShinyNewsletters specs: - shiny_newsletters (20.11) + shiny_newsletters (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) PATH remote: plugins/ShinyPages specs: - shiny_pages (20.11) + shiny_pages (20.12) acts_as_paranoid ckeditor kaminari @@ -81,14 +81,14 @@ PATH PATH remote: plugins/ShinyProfiles specs: - shiny_profiles (20.11) + shiny_profiles (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) PATH remote: plugins/ShinySearch specs: - shiny_search (20.11) + shiny_search (20.12) algoliasearch-rails pg (>= 0.18, < 2.0) pg_search diff --git a/plugins/ShinyAccess/Gemfile.lock b/plugins/ShinyAccess/Gemfile.lock index 5ecfee68c..884344644 100644 --- a/plugins/ShinyAccess/Gemfile.lock +++ b/plugins/ShinyAccess/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_access (20.11) + shiny_access (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) diff --git a/plugins/ShinyAccess/lib/shiny_access/version.rb b/plugins/ShinyAccess/lib/shiny_access/version.rb index 29fd8c701..e49655551 100644 --- a/plugins/ShinyAccess/lib/shiny_access/version.rb +++ b/plugins/ShinyAccess/lib/shiny_access/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style'; year and month) module ShinyAccess - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyBlog/Gemfile.lock b/plugins/ShinyBlog/Gemfile.lock index e5118413b..cac393de7 100644 --- a/plugins/ShinyBlog/Gemfile.lock +++ b/plugins/ShinyBlog/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_blog (20.10) + shiny_blog (20.12) acts-as-taggable-on acts_as_paranoid ckeditor diff --git a/plugins/ShinyBlog/lib/shiny_blog/version.rb b/plugins/ShinyBlog/lib/shiny_blog/version.rb index daeac1925..61456ef7a 100644 --- a/plugins/ShinyBlog/lib/shiny_blog/version.rb +++ b/plugins/ShinyBlog/lib/shiny_blog/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyBlog plugin for ShinyCMS module ShinyBlog - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyForms/Gemfile.lock b/plugins/ShinyForms/Gemfile.lock index a800e35df..b5d066368 100644 --- a/plugins/ShinyForms/Gemfile.lock +++ b/plugins/ShinyForms/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_forms (20.10) + shiny_forms (20.12) acts_as_paranoid kaminari pg (>= 0.18, < 2.0) diff --git a/plugins/ShinyForms/lib/shiny_forms/version.rb b/plugins/ShinyForms/lib/shiny_forms/version.rb index cf2122631..901147014 100644 --- a/plugins/ShinyForms/lib/shiny_forms/version.rb +++ b/plugins/ShinyForms/lib/shiny_forms/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyForms plugin for ShinyCMS module ShinyForms - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyInserts/Gemfile.lock b/plugins/ShinyInserts/Gemfile.lock index 86a9d3e0f..443e240d7 100644 --- a/plugins/ShinyInserts/Gemfile.lock +++ b/plugins/ShinyInserts/Gemfile.lock @@ -1,8 +1,9 @@ PATH remote: . specs: - shiny_inserts (20.10) + shiny_inserts (20.12) acts_as_paranoid + ckeditor kaminari pg (>= 0.18, < 2.0) pundit @@ -70,6 +71,8 @@ GEM activerecord (>= 5.2, < 7.0) activesupport (>= 5.2, < 7.0) builder (3.2.4) + ckeditor (5.1.0) + orm_adapter (~> 0.5.0) concurrent-ruby (1.1.7) crass (1.0.6) diff-lcs (1.4.4) @@ -112,6 +115,7 @@ GEM nio4r (2.5.4) nokogiri (1.10.10) mini_portile2 (~> 2.4.0) + orm_adapter (0.5.0) pg (1.2.3) pundit (2.1.0) activesupport (>= 3.0.0) diff --git a/plugins/ShinyInserts/lib/shiny_inserts/version.rb b/plugins/ShinyInserts/lib/shiny_inserts/version.rb index 3aee7d2ce..77c5f1312 100644 --- a/plugins/ShinyInserts/lib/shiny_inserts/version.rb +++ b/plugins/ShinyInserts/lib/shiny_inserts/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyInserts plugin for ShinyCMS module ShinyInserts - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyLists/Gemfile.lock b/plugins/ShinyLists/Gemfile.lock index 877f75b61..5fbd6924e 100644 --- a/plugins/ShinyLists/Gemfile.lock +++ b/plugins/ShinyLists/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_lists (20.10) + shiny_lists (20.12) acts_as_paranoid kaminari pg (>= 0.18, < 2.0) diff --git a/plugins/ShinyLists/lib/shiny_lists/version.rb b/plugins/ShinyLists/lib/shiny_lists/version.rb index 9ba3fa97c..a785dff0b 100644 --- a/plugins/ShinyLists/lib/shiny_lists/version.rb +++ b/plugins/ShinyLists/lib/shiny_lists/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyLists plugin for ShinyCMS module ShinyLists - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyNews/Gemfile.lock b/plugins/ShinyNews/Gemfile.lock index a7f4d3ba1..4721dfaf6 100644 --- a/plugins/ShinyNews/Gemfile.lock +++ b/plugins/ShinyNews/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_news (20.10) + shiny_news (20.12) acts-as-taggable-on acts_as_paranoid ckeditor diff --git a/plugins/ShinyNews/lib/shiny_news/version.rb b/plugins/ShinyNews/lib/shiny_news/version.rb index c0f2b52bd..0e98737b1 100644 --- a/plugins/ShinyNews/lib/shiny_news/version.rb +++ b/plugins/ShinyNews/lib/shiny_news/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyNews plugin for ShinyCMS module ShinyNews - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyNewsletters/Gemfile.lock b/plugins/ShinyNewsletters/Gemfile.lock index 34c1dc7d6..a887ce9b8 100644 --- a/plugins/ShinyNewsletters/Gemfile.lock +++ b/plugins/ShinyNewsletters/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_newsletters (20.10) + shiny_newsletters (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) diff --git a/plugins/ShinyNewsletters/lib/shiny_newsletters/version.rb b/plugins/ShinyNewsletters/lib/shiny_newsletters/version.rb index 59e2aea7f..1dc2a2635 100644 --- a/plugins/ShinyNewsletters/lib/shiny_newsletters/version.rb +++ b/plugins/ShinyNewsletters/lib/shiny_newsletters/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style'; year and month) module ShinyNewsletters - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyPages/Gemfile.lock b/plugins/ShinyPages/Gemfile.lock index 2136d3d6e..ef76e730e 100644 --- a/plugins/ShinyPages/Gemfile.lock +++ b/plugins/ShinyPages/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_pages (20.10) + shiny_pages (20.12) acts_as_paranoid ckeditor kaminari diff --git a/plugins/ShinyPages/lib/shiny_pages/version.rb b/plugins/ShinyPages/lib/shiny_pages/version.rb index bbcc3b001..efaaf0b6a 100644 --- a/plugins/ShinyPages/lib/shiny_pages/version.rb +++ b/plugins/ShinyPages/lib/shiny_pages/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyPages plugin for ShinyCMS module ShinyPages - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinyProfiles/Gemfile.lock b/plugins/ShinyProfiles/Gemfile.lock index 48436f443..a5b75e7ac 100644 --- a/plugins/ShinyProfiles/Gemfile.lock +++ b/plugins/ShinyProfiles/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_profiles (20.11) + shiny_profiles (20.12) pg (>= 0.18, < 2.0) rails (~> 6.0.3, >= 6.0.3.4) diff --git a/plugins/ShinyProfiles/lib/shiny_profiles/version.rb b/plugins/ShinyProfiles/lib/shiny_profiles/version.rb index a24a2821d..f678aa245 100644 --- a/plugins/ShinyProfiles/lib/shiny_profiles/version.rb +++ b/plugins/ShinyProfiles/lib/shiny_profiles/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinyProfiles plugin for ShinyCMS module ShinyProfiles - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end diff --git a/plugins/ShinySearch/Gemfile.lock b/plugins/ShinySearch/Gemfile.lock index e079858ef..fe33f0aab 100644 --- a/plugins/ShinySearch/Gemfile.lock +++ b/plugins/ShinySearch/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - shiny_search (20.10) + shiny_search (20.12) algoliasearch-rails pg (>= 0.18, < 2.0) pg_search @@ -65,10 +65,10 @@ GEM minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - algoliasearch (1.27.4) + algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) - algoliasearch-rails (1.24.1) + algoliasearch-rails (1.25.0) algoliasearch (>= 1.26.0, < 2.0.0) json (>= 1.5.1) builder (3.2.4) @@ -105,7 +105,7 @@ GEM nokogiri (1.10.10) mini_portile2 (~> 2.4.0) pg (1.2.3) - pg_search (2.3.3) + pg_search (2.3.5) activerecord (>= 5.2) activesupport (>= 5.2) rack (2.2.3) diff --git a/plugins/ShinySearch/lib/shiny_search/version.rb b/plugins/ShinySearch/lib/shiny_search/version.rb index 6bc71d15f..868cdf9c3 100644 --- a/plugins/ShinySearch/lib/shiny_search/version.rb +++ b/plugins/ShinySearch/lib/shiny_search/version.rb @@ -8,6 +8,6 @@ # Version number ('Ubuntu style', YY.MM) - ShinySearch plugin for ShinyCMS module ShinySearch - VERSION = '20.11' + VERSION = '20.12' public_constant :VERSION end From b8ef1908e96b08552ee028f809ebc725b06d90d8 Mon Sep 17 00:00:00 2001 From: Denny de la Haye <2020@denny.me> Date: Thu, 3 Dec 2020 23:17:26 +0000 Subject: [PATCH 9/9] Release notes for 20.12 (December 2020) --- docs/release-notes.md | 113 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 2 deletions(-) diff --git a/docs/release-notes.md b/docs/release-notes.md index 5e18bf9ea..d5eec38fe 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,6 +5,117 @@ This file contains information about changes (particularly breaking changes) between releases - with the most recent release first. +### 2020-12-03 20.12 December 2020: The 'ShinyAccess and ActiveStorage' Edition + + * GitHub tag: https://github.com/denny/ShinyCMS-ruby/releases/tag/v20.12 + + * Plugin versions: + * All plugin versions bumped to 20.12 - they've all had commits since 20.11 release + + * BREAKING CHANGES + * User profile data moved from users table into shiny_profiles_* tables + * Migration only handles table structure - DATA MIGRATION IS NOT HANDLED + * (When people are using the CMS in production, I'll write data migrations) :) + * Feature Flag name changes: + * recaptcha_for_registration -> recaptcha_for_registrations + * profile_pages -> user_profiles + * ShinyLists unsubscribe route changed from PUT to DELETE + + * Fixes since 20.11 + * Fatal errors that could prevent the CMS from starting at all: + * ShinyPlugin checks whether plugins exist before attempting to load them + * ShinyPlugin de-duplicates SHINYCMS_PLUGINS before attempting to load them all + * Security issues: + * Admin area: + * Authorisation check when accessing /admin/stats (Blazer) + * Main site: + * Don't add new comments (or show reply links & forms) if discussion is locked + * Errors that only broke a specific page or feature-set: + * Get rid of double '.../search/search' in admin area search forms + * Displaying user profile pic from ActiveStorage works in local disk mode too + * Wasted database space: + * When dropping a comment flagged as 'blatant spam' by Akismet... + * Don't create CommentAuthor and EmailRecipient records! + * Lurkers (hadn't broken anything yet, but not the intended behaviour): + * 'Page with all element types' factory was adding each type twice + + * Added since 20.11 + * Gems: + * Bugsnag gem + * Monitoring and bug triage service + * Cloudflare gem + * Puts real IP address in request.ip, instead of Cloudflare proxy address + * Plugins: + * ShinyAccess + * New plugin - adds basic ACL features for main site + * Admin pages to add/remove Access Groups, and members of those groups + * Main site helper to check access group membership, can be used to selectively show/hide content in any template + * ShinyProfiles: + * As part of separation from user accounts: + * Main site page for users to edit their profile data + * Admin area features for managing user profiles + * ShinyNewsletters: + * New rake task, to enqueue scheduled sends when they pass their send_at + * Main app: + * JSON endpoint to search usernames (used by ShinyAccess) + * Support libs (helpers, concerns, etc): + * ShinyTemplate / ShinyElement + * Use ActiveStorage for image elements + * Rake tasks: + * `shiny:sessions:clean` for removing short (probably bot) session data + * Utility scripts: + * New dotenv wrapper scripts for dev environment (to pick up .env.*): + * `tools/shiny-bundle-install` wraps `bundle install` + * Only matters if you don't want all of the plugins + * `tools/shiny-sidekiq-dev` wraps `sidekiq` + * Only matters if you want to override default value of any ENV var mentioned in config/sidekiq.yml + * Config: + * Explicit config for HTML sanitizer - used when displaying blog posts etc + * (full submitted HTML is stored, but output is heavily filtered) + * Added a number of 'basic necessity' tags and attributes to the allow-list that weren't allowed through by default (e.g. img tag, class attribute) + * More explicit config options to enable web stats and email open/click tracking + * Documentation: + * Moved content from docs/Developers/index.md to create docs/Contributing.md + * (GitHub looks for the latter and automatically shares it with PR creators) + * 'How to' guide for setting up a new site + * Basic information about some supported/tested cloud hosting services + * Stub doc for new ShinyAccess feature/plugin + * Separate doc for rake tasks for developers (just shiny:demo:dump currently) + * Notes on user personas (tl,dr: 'user' will probably (primarily) describe a different sub-group of CMS users to different types of developer) + + * Changed since 20.11 + * Plugins: + * ShinyProfiles: + * Finish separating user profile data from user account data + * ShinyBlog: + * Change main site paging to use 'newer'/'older' links instead of full pager + * Support libs (helpers, concerns, etc): + * Move implementation of feature_flag_enabled? method from helper to model + * Admin menu sections default to closed instead of open + * Refactored plugin generator to make it more rubocop-compliant + * Extracted lots of little blocks of functionality into their own methods + * Moved a large chunk of the overall functionality into a new PluginBuilder file + * Data: + * Default data now includes a basic dashboard and charts for Blazer + * Demo site data now includes the ActiveStorage tables + * Themes: + * Assets and JavaScript files for themes are now kept in vendor/ not app/ + * Tests: + * Mocked Akismet gem .open and .check methods + * No longer need a network connection for the tests to run + * Tests aren't using up credits on my Akismet test account + * Documentation: + * Plugins: added details of 'special' integration views and helpers + * Themes: updated paths for assets etc + * ShinyNewsletters: added details of rake task for scheduled sends + * Rake tasks: expand on purpose of each task + * Updates to TODO/in-progress/done docs + + * Removed since 20.11 + * User profile details removed from user account model (User.pm) and related code + * (Now handled by ShinyProfiles plugin instead) + + ### 2020-11-09 20.11 November 2020: The 'tricky second album' release * GitHub tag: https://github.com/denny/ShinyCMS-ruby/releases/tag/v20.11 @@ -22,8 +133,6 @@ This file contains information about changes (particularly breaking changes) bet * Added Setting.get_int method to get integer values from setting strings * Added Setting.true? method to get boolean results from 'true'/'false' setting strings * Started moving config that isn't secrets/credentials from ENV vars to Setting model - * Deprecated ENV vars: - * TODO!! * Supporting code (Helpers, Concerns, etc): * Added helper methods to abstract anywhere a main site view called a model * Renamed Plugin model to ShinyPlugin