Skip to content

Commit 5254594

Browse files
authored
Merge pull request #1113 from denny/release/21.05
Release 21.05
2 parents a4704a6 + db8b9a8 commit 5254594

File tree

25 files changed

+330
-205
lines changed

25 files changed

+330
-205
lines changed

Gemfile.lock

+165-165
Large diffs are not rendered by default.

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,14 @@ ShinyCMS requires Rails 6.1 and Ruby 2.7 or later. The project generally uses th
105105

106106
## Contributing
107107

108-
See [contributing to ShinyCMS](docs/Contributing.md).
108+
Everyone is encouraged to help improve this project! Here are a few ways you can help:
109+
* Report issues
110+
* Improve the documentation
111+
* Fix bugs and submit pull requests
112+
* Suggest new features
113+
* Add new features :)
114+
115+
See [contributing to ShinyCMS](docs/Contributing.md) for more information.
109116

110117

111118
## Code of Conduct

app/controllers/blazer/application_controller.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
#
77
# ShinyCMS is free software; you can redistribute it and/or modify it under the terms of the GPL (version 2 or later)
88

9-
# THIS CONTROLLER INHERITS FROM ONE IN THE SHINYCMS ADMIN AREA!
10-
# (to make it possible to embed Blazer into the ShinyCMS admin UI)
11-
12-
# Inheriting from or using this controller for any additional purpose is
13-
# probably a bad idea, for security reasons and for separation of concerns.
9+
# NOTE: THIS CONTROLLER INHERITS FROM ONE IN THE SHINYCMS ADMIN AREA
10+
#
11+
# Inheriting from or otherwise using this controller for any additional purpose
12+
# is probably a bad idea, for security reasons and for separation of concerns.
1413

1514
module Blazer
15+
# Used to embed Blazer into the ShinyCMS admin UI
1616
class ApplicationController < ShinyCMS::Admin::Tools::BlazerBaseController; end
1717
end

config/initializers/version.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
# This version number is specifically for the ShinyHostApp
1010

1111
# Each ShinyCMS plugin has its own version number
12-
# The core plugin is currently at version 21.04
12+
# The core plugin is currently at version 21.05
1313

1414
module ShinyHostApp
15-
VERSION = '21.04'
15+
VERSION = '21.05'
1616
public_constant :VERSION
1717
end

docs/Developers/Notes/import-from-perl-shinycms.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# ShinyCMS: copying data from Perl version to Ruby version
1+
# ShinyCMS Developer Notes
22

3-
Incoherent notes follow...
3+
## Copying data from Perl version to Ruby version
44

55
## General
66

docs/Developers/Notes/kloc.txt

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# ShinyCMS Developer Notes
2+
3+
## LOC stats
4+
5+
### 2021-05-04
6+
7+
Total : 1188 files, 35943 codes, 7392 comments, 11717 blanks, all 55052 lines
8+
9+
Languages
10+
+------------------+------------+------------+------------+------------+------------+
11+
| language | files | code | comment | blank | total |
12+
+------------------+------------+------------+------------+------------+------------+
13+
| Ruby | 687 | 19,800 | 5,802 | 7,155 | 32,757 |
14+
| erb | 249 | 4,993 | 21 | 920 | 5,934 |
15+
| SCSS | 25 | 3,879 | 517 | 1,119 | 5,515 |
16+
| Markdown | 78 | 3,101 | 12 | 1,357 | 4,470 |
17+
| YAML | 48 | 1,941 | 684 | 487 | 3,112 |
18+
| CSS | 11 | 807 | 87 | 89 | 983 |
19+
| JavaScript | 21 | 543 | 164 | 275 | 982 |
20+
+------------------+------------+------------+------------+------------+------------+
21+
22+
Directories
23+
+-------------------------------+------------+------------+------------+------------+------------+
24+
| path | files | code | comment | blank | total |
25+
+-------------------------------+------------+------------+------------+------------+------------+
26+
| . | 1,188 | 35,943 | 7,392 | 11,717 | 55,052 |
27+
| app | 15 | 85 | 101 | 63 | 249 |
28+
| config | 30 | 391 | 524 | 260 | 1,175 |
29+
| db | 77 | 1,730 | 131 | 321 | 2,182 |
30+
| docs | 66 | 2,847 | 0 | 1,175 | 4,022 |
31+
| lib | 60 | 1,428 | 167 | 445 | 2,040 |
32+
| spec | 4 | 34 | 26 | 22 | 82 |
33+
| themes | 32 | 3,656 | 206 | 991 | 4,853 |
34+
| themes/coming_soon | 5 | 849 | 24 | 93 | 966 |
35+
| themes/halcyonic | 20 | 2,370 | 64 | 661 | 3,095 |
36+
| themes/javascript | 7 | 437 | 118 | 237 | 792 |
37+
| themes/javascript/coming_soon | 1 | 73 | 27 | 40 | 140 |
38+
| themes/javascript/halcyonic | 6 | 364 | 91 | 197 | 652 |
39+
| plugins | 886 | 25,067 | 6,094 | 8,250 | 39,411 |
40+
| plugins/ShinyAccess | 38 | 960 | 245 | 347 | 1,552 |
41+
| plugins/ShinyBlog | 56 | 1,158 | 230 | 377 | 1,765 |
42+
| plugins/ShinyCMS | 402 | 13,005 | 3,402 | 4,224 | 20,631 |
43+
| plugins/ShinyForms | 40 | 958 | 230 | 326 | 1,514 |
44+
| plugins/ShinyInserts | 32 | 535 | 194 | 189 | 918 |
45+
| plugins/ShinyLists | 44 | 1,247 | 264 | 412 | 1,923 |
46+
| plugins/ShinyNews | 56 | 1,135 | 224 | 366 | 1,725 |
47+
| plugins/ShinyNewsletters | 74 | 2,361 | 402 | 727 | 3,490 |
48+
| plugins/ShinyPages | 63 | 2,307 | 387 | 680 | 3,374 |
49+
| plugins/ShinyProfiles | 34 | 748 | 203 | 278 | 1,229 |
50+
| plugins/ShinySEO | 18 | 222 | 142 | 128 | 492 |
51+
| plugins/ShinySearch | 29 | 431 | 171 | 196 | 798 |
52+
+-------------------------------+------------+------------+------------+------------+------------+

docs/Developers/Notes/mailing-list-notes.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
# ShinyCMS: dev notes
1+
# ShinyCMS Developer Notes
22

33
## Mailing Lists ( / Discussion Groups / Forums )
44

55
### (Warning! MASSIVE creature feep occurring here!)
66

7-
Things which aren't optional:
7+
Things which aren't optional:
88
* Double opt-in subscriptions are a basic human right ;)
99
* Instantly-effective unsubscribe links and headers in all list emails
1010
* Settings with privacy implications should default to the more private setting
1111

12-
General thoughts:
12+
General thoughts:
1313
* UUIDs for anything that doesn't have slugs - do not expose sequential IDs!
1414
* Good time to switch the whole system to UUIDs under the hood?
1515
* Having read around on this, not convinced it's a good idea
1616
* HashIDs instead? https://github.com/jcypret/hashid-rails
1717

18-
Lists / Groups:
18+
Lists / Groups:
1919
* Enabled (emails will be delivered): yes/no
2020
* List details page
2121
* Useful info: description, owner/admins, etc
@@ -25,11 +25,11 @@ Lists / Groups:
2525
* Publicised (listed on hub page of some sort): yes/no
2626
* Open for subscriptions: yes/no / see 'List subscriptions' below
2727

28-
List categories:
28+
List categories:
2929
* e.g. Announcements/Promo/Discussion/etc
3030
* Partly for display purposes, partly for potential ACL stuff (see 'Admins')
3131

32-
List subscriptions:
32+
List subscriptions:
3333
* Can ask to subscribe: anybody / registered website users / nobody
3434
* Subscriptions require approval: yes/no
3535
* Subscriptions can be approved by: any subscriber / established subscribers
@@ -42,27 +42,27 @@ List subscriptions:
4242
(if they're leaving, they're leaving - making it harder for them is pointless)
4343
* List is notified of subscriptions and unsubscriptions: yes/no
4444

45-
List archives:
45+
List archives:
4646
* Web view of previous posts to a list
4747
* Provides 'view this email in your browser' functionality
4848
* Viewable by: anybody / subscribers / admins / nobody
4949
* Subscribers can see posts from before they subscribed: yes/no
5050

51-
List posts:
51+
List posts:
5252
* Can post to list: any subscriber / subscribers over X duration / subscribers
5353
over N previous posts / admins only
5454
* Reply-to munging (trollolol): yes/no
5555
* Show email of sender: yes/partial/obfuscated/no
5656
* Show name of sender: yes/no
5757

58-
Moderation:
58+
Moderation:
5959
* Posts to list require approval if they are from: anybody / unregistered
6060
users / new subscribers (<N posts / <X duration) / non-admins
6161
* Posts to list can be approved by: anybody (except the original poster) /
6262
established subscribers / the collective vote of >N or >N% subscribers /
6363
registered users / admins only
6464

65-
Tracking (for marketing?) and Engagement (list quality/sender reputation):
65+
Tracking (for marketing?) and Engagement (list quality/sender reputation):
6666
* Opens are tracked: yes/no
6767
* Is it possible to filter out 'opens' by spam-scanning software (etc) that
6868
downloads images (including our tracking pixels)? Look at user-agents maybe?
@@ -89,7 +89,7 @@ Tracking (for marketing?) and Engagement (list quality/sender reputation):
8989
(This is a near-fractal timesink of potential granularity and configurability -
9090
it will definitely need its own ACL system/subsystem eventually.)
9191

92-
e.g.
92+
e.g.
9393
* A list/group can have: owner(s?) / admins / moderators
9494
* owners can create/remove admins
9595
* admins can delete list?

docs/Developers/Notes/menu-icons.md

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
# ShinyCMS: admin-area menu icons
1+
# ShinyCMS Developer Notes
22

3-
All of the icons I've used in the admin-area sidebar menu (and a few other
4-
places in the admin area) are part of the free icon set from CoreUI. If you're
5-
adding a new feature (or want to change the icon for an existing one) you can
6-
look here to see what's available: https://coreui.io/icons/free
3+
## Admin area menu icons
4+
5+
All of the icons I've used in the admin-area sidebar menu (and a few other places in the admin area) are part of the free icon set from CoreUI. If you're adding a new feature (or want to change the icon for an existing one) you can look here to see what's available: https://coreui.io/icons/free

docs/Developers/Notes/needs-indexing.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# Ruby console snippet to find database tables that need indexes...
1+
# ShinyCMS Developer Notes
2+
3+
Ruby console snippet to find database tables that need indexes...
24

35
```ruby
46
c = ActiveRecord::Base.connection

docs/Developers/Notes/plugin-sizes.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# ShinyCMS developer notes
2+
3+
## Plugin sizes
4+
5+
### 2021-05-04
6+
Disk LOC*
7+
ShinyCMS 2.7M 13,005
8+
ShinyNewsletters 516K 2,361
9+
ShinyPages 464K 2,307
10+
ShinyBlog 448K 1,158
11+
ShinyNewsletters 448K 2,361
12+
ShinyLists 392K 1,247
13+
ShinyForms 364K 958
14+
ShinyAccess 344K 960
15+
ShinyProfiles 300K 748
16+
ShinyInserts 296K 535
17+
ShinySearch 288K 431
18+
ShinySEO 176K 222
19+
20+
* LOC is counting code only - not comments or blank lines

docs/Developers/Testing.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ To test a single plugin, run `rspec plugins/Shiny{Thing}` from the project's roo
1616

1717
### How often should I run the tests?
1818

19-
At minimum, you should run rubocop and the test suite, and fix any issues they find, before submitting a pull request. I recommend running them much more often than that :) They're particularly useful (and reassuring) when refactoring.
19+
At minimum, you should run rubocop and the test suite, and fix any issues they find, before submitting a pull request. I recommend running them much more often than that :) They're particularly useful (and reassuring) when refactoring - as discussed by Bob Martin: '[Fearless Competence](https://www.youtube.com/watch?v=Qjywrq2gM8o#t=31m48s)'.
2020

2121
#### How do I get git to do this for me? :)
2222

docs/release-notes.md

+44
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,50 @@
44

55
This file contains information about changes (particularly breaking changes) between releases - with the most recent release first.
66

7+
### 2021-05-07 21.05 May 2021: The 'Component With A View' release
8+
9+
GitHub tag: https://github.com/denny/ShinyCMS-ruby/releases/tag/v21.05
10+
11+
* Security updates:
12+
* Rails and related Action* gems had a cluster of CVE fixes this month
13+
14+
* Added:
15+
* [View Components][1] - used to rewrite the admin menu [PR #1096][2]
16+
* [mutant][3]- a mutation testing gem
17+
* config/initializers/shinycms.rb - allows the host app to configure:
18+
* The user model for ShinyCMS to use
19+
* The list model for ShinyNewsletters to use
20+
* .flayignore - causing a [dramatic improvement][4] in Ruby Critic scores
21+
* Blazer::ApplicationController in the host app, for Blazer to inherit from
22+
* Sentry gem and initializer
23+
24+
* Updated:
25+
* Split main site DiscussionsController, creating CommentsController too
26+
* Accessibility fixes for the Halcyonic theme [PR #1088][5] [PR #1091][6] [PR #1112][7]
27+
* Accessibly-hidden labels for form inputs
28+
* Text contrast ratios throughout
29+
* Editable image alt attributes added to index template
30+
* Changes to demo site data to go with this
31+
* The host app's ApplicationController is now free of confusing Blazer gank
32+
* Lots of gem version bumps, besides the aforementioned rails ones
33+
* Rubocop updates required some minor changes to code and config
34+
35+
* Removed:
36+
* Several packwerk todo files got removed by the configurable user model change
37+
* MainController in the host app, now that ApplicationController is usable
38+
* All the admin menu partials that got replaced by view components
39+
40+
Relatively quiet month, especially compared to the last few! I'm in the process of quitting one job and finding the next, so that's taken a lot of my time and energy. I'm happy with the first pass at adding view components though, expect more of those next month.
41+
42+
[1] https://github.com/github/view_component#readme
43+
[2] https://github.com/denny/ShinyCMS-ruby/pull/1096
44+
[3] https://github.com/mbj/mutant#readme
45+
[4] https://shinycms.org/blog/2021/04/cheat-codes
46+
[5] https://github.com/denny/ShinyCMS-ruby/pull/1088
47+
[6] https://github.com/denny/ShinyCMS-ruby/pull/1091
48+
[7] https://github.com/denny/ShinyCMS-ruby/pull/1112
49+
50+
751
### 2021-04-08 21.04 April 2021: The 'Respecting Boundaries' release
852

953
* GitHub tag: https://github.com/denny/ShinyCMS-ruby/releases/tag/v21.04

lib/generators/shiny/plugin/plugin_generator.rb

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
module Shiny
2222
module Generators
23+
# ShinyCMS plugin generator
2324
class PluginGenerator < PluginGeneratorBase # :nodoc:
2425
alias plugin_path app_path
2526

plugins/ShinyAccess/lib/shiny_access/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style'; year and month)
1010
module ShinyAccess
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyBlog/lib/shiny_blog/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyBlog plugin for ShinyCMS
1010
module ShinyBlog
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyCMS/lib/shinycms/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# ShinyCMS version number ('Ubuntu style', YY.MM)
1010
module ShinyCMS
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313

1414
# Use the start of the git commit SHA as a release identifier

plugins/ShinyForms/lib/shiny_forms/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyForms plugin for ShinyCMS
1010
module ShinyForms
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyInserts/lib/shiny_inserts/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyInserts plugin for ShinyCMS
1010
module ShinyInserts
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyLists/lib/shiny_lists/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyLists plugin for ShinyCMS
1010
module ShinyLists
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyNews/lib/shiny_news/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyNews plugin for ShinyCMS
1010
module ShinyNews
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyNewsletters/lib/shiny_newsletters/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style'; year and month)
1010
module ShinyNewsletters
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyPages/lib/shiny_pages/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyPages plugin for ShinyCMS
1010
module ShinyPages
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinyProfiles/lib/shiny_profiles/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinyProfiles plugin for ShinyCMS
1010
module ShinyProfiles
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinySEO/lib/shiny_seo/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style'; year and month)
1010
module ShinySEO
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

plugins/ShinySearch/lib/shiny_search/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88

99
# Version number ('Ubuntu style', YY.MM) - ShinySearch plugin for ShinyCMS
1010
module ShinySearch
11-
VERSION = '21.04'
11+
VERSION = '21.05'
1212
public_constant :VERSION
1313
end

0 commit comments

Comments
 (0)