From a637971408d7b2e3ad80776570c987c0c1042f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 11 Oct 2023 13:20:35 +0200 Subject: [PATCH 01/60] Remove rails-controller-testing --- Gemfile | 5 ++- Gemfile.lock | 19 ++++------- spec/controllers/editors_controller_spec.rb | 37 ++++++++++++--------- spec/controllers/papers_controller_spec.rb | 14 ++++---- 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/Gemfile b/Gemfile index a12c326fd..69af9f27b 100644 --- a/Gemfile +++ b/Gemfile @@ -51,18 +51,17 @@ group :development, :test do gem 'capybara', '~> 3.39' gem 'factory_bot_rails', '~> 6.2.0' gem 'rspec-rails', '~> 6.0.3' - gem 'rails-controller-testing', '~> 1.0.5' gem 'selenium-webdriver' gem 'webmock' end group :test do - gem 'vcr', '~> 6.1', '>= 6.1.0' + gem 'vcr', '~> 6.2' end group :development do # Access an IRB console on exception pages or by using <%= console %> in views - gem 'web-console', '~> 4.2.0' + gem 'web-console', '~> 4.2.1' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-commands-rspec', group: :development diff --git a/Gemfile.lock b/Gemfile.lock index 2d25a81a5..3d90e0c65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -208,7 +208,7 @@ GEM libv8-node (18.16.0.0) libv8-node (18.16.0.0-x86_64-darwin) libv8-node (18.16.0.0-x86_64-linux) - loofah (2.21.3) + loofah (2.21.4) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -230,7 +230,7 @@ GEM multi_xml (0.6.0) multipart-post (2.3.0) mutex_m (0.1.2) - net-imap (0.4.0) + net-imap (0.4.1) date net-protocol net-pop (0.1.2) @@ -295,7 +295,7 @@ GEM pry-byebug (3.10.1) byebug (~> 11.0) pry (>= 0.13, < 0.15) - psych (5.1.0) + psych (5.1.1) stringio public_suffix (5.0.3) puma (6.4.0) @@ -325,10 +325,6 @@ GEM activesupport (= 7.1.0) bundler (>= 1.15.0) railties (= 7.1.0) - rails-controller-testing (1.0.5) - actionpack (>= 5.0.1.rc1) - actionview (>= 5.0.1.rc1) - activesupport (>= 5.0.1.rc1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -351,7 +347,7 @@ GEM redis-client (>= 0.9.0) redis-client (0.17.0) connection_pool - regexp_parser (2.8.1) + regexp_parser (2.8.2) reline (0.3.9) io-console (~> 0.5) representable (3.2.0) @@ -401,7 +397,7 @@ GEM searchkick (5.3.0) activemodel (>= 6.1) hashie - selenium-webdriver (4.13.1) + selenium-webdriver (4.14.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -495,7 +491,6 @@ DEPENDENCIES pry-byebug puma rails (= 7.1.0) - rails-controller-testing (~> 1.0.5) redis (~> 5.0) responders rspec-rails (~> 6.0.3) @@ -509,8 +504,8 @@ DEPENDENCIES stimulus-rails turbo-rails uglifier (= 4.2.0) - vcr (~> 6.1, >= 6.1.0) - web-console (~> 4.2.0) + vcr (~> 6.2) + web-console (~> 4.2.1) webmock RUBY VERSION diff --git a/spec/controllers/editors_controller_spec.rb b/spec/controllers/editors_controller_spec.rb index 6729b0f14..549865ab7 100644 --- a/spec/controllers/editors_controller_spec.rb +++ b/spec/controllers/editors_controller_spec.rb @@ -59,14 +59,14 @@ create(:editor, kind: "pending", track_ids: [track.id]) get :index - expect(assigns(:active_editors)).to eq([current_user.editor, board, editor]) - expect(assigns(:emeritus_editors)).to eq([emeritus]) + expect(@controller.view_assigns["active_editors"]).to eq([current_user.editor, board, editor]) + expect(@controller.view_assigns["emeritus_editors"]).to eq([emeritus]) end it "assigns grouped availability information" do get :index - expect(assigns(:assignment_by_editor)).to be - expect(assigns(:paused_by_editor)).to be + expect(@controller.view_assigns["assignment_by_editor"]).to be + expect(@controller.view_assigns["paused_by_editor"]).to be end end @@ -74,14 +74,14 @@ it "assigns the requested editor as @editor" do editor = create(:editor) get :show, params: {id: editor.to_param} - expect(assigns(:editor)).to eq(editor) + expect(@controller.view_assigns["editor"]).to eq(editor) end end describe "#new" do it "assigns a new editor as @editor" do get :new, params: {} - expect(assigns(:editor)).to be_a_new(Editor) + expect(@controller.view_assigns["editor"]).to be_a_new(Editor) end end @@ -89,7 +89,7 @@ it "assigns the requested editor as @editor" do editor = create(:editor) get :edit, params: {id: editor.to_param} - expect(assigns(:editor)).to eq(editor) + expect(@controller.view_assigns["editor"]).to eq(editor) end end @@ -105,8 +105,8 @@ it "assigns a newly created editor as @editor" do new_editor = build(:editor) post :create, params: {editor: new_editor.attributes.merge(track_ids: new_editor.track_ids)} - expect(assigns(:editor)).to be_a(Editor) - expect(assigns(:editor)).to be_persisted + expect(@controller.view_assigns["editor"]).to be_a(Editor) + expect(@controller.view_assigns["editor"]).to be_persisted end it "redirects to the created editor" do @@ -119,12 +119,15 @@ context "with invalid params" do it "assigns a newly created but unsaved editor as @editor" do post :create, params: {editor: {login: nil}} - expect(assigns(:editor)).to be_a_new(Editor) + expect(@controller.view_assigns["editor"]).to be_a_new(Editor) end - it "re-renders the 'new' template" do + it "goes back to the 'new' form" do + editor_count = Editor.count post :create, params: {editor: {login: nil}} - expect(response).to render_template("new") + + expect(response).to_not be_redirect + expect(Editor.count).to eq(editor_count) end end end @@ -141,7 +144,7 @@ it "assigns the requested editor as @editor" do editor = create(:editor) put :update, params: {id: editor.to_param, editor: {first_name: "Different"}} - expect(assigns(:editor)).to eq(editor) + expect(@controller.view_assigns["editor"]).to eq(editor) end it "redirects to the editor" do @@ -155,13 +158,15 @@ it "assigns the editor as @editor" do editor = create(:editor) put :update, params: {id: editor.to_param, editor: {login: nil}} - expect(assigns(:editor)).to eq(editor) + expect(@controller.view_assigns["editor"]).to eq(editor) end - it "re-renders the 'edit' template" do + it "goes back to the 'edit' form" do editor = create(:editor) + updated_at = editor.updated_at put :update, params: {id: editor.to_param, editor: {login: nil}} - expect(response).to render_template("edit") + expect(response).to_not be_redirect + expect(editor.reload.updated_at).to eq(updated_at) end end end diff --git a/spec/controllers/papers_controller_spec.rb b/spec/controllers/papers_controller_spec.rb index aa38498cb..77cebdd7e 100644 --- a/spec/controllers/papers_controller_spec.rb +++ b/spec/controllers/papers_controller_spec.rb @@ -327,21 +327,24 @@ request.headers["HTTP_ACCEPT"] = "*/*" get :show, params: {doi: paper.doi} - expect(response).to render_template("papers/show") + expect(response.status).to eq(200) + expect(response).to_not be_redirect end it "should not redirect for URLs with DOIs when asking for HTML response" do paper = create(:accepted_paper) get :show, params: {doi: paper.doi}, format: "html" - expect(response).to render_template("papers/show") + expect(response.status).to eq(200) + expect(response).to_not be_redirect end it "should not redirect for URLs with DOIs when asking for any response" do paper = create(:accepted_paper) get :show, params: {doi: paper.doi} - expect(response).to render_template("papers/show") + expect(response.status).to eq(200) + expect(response).to_not be_redirect end it "should redirect URLs with the paper SHA to the URL with the DOI in the path" do @@ -378,7 +381,8 @@ paper = create(:retracted_paper) get :show, params: {doi: paper.doi}, format: "json" expect(response).to be_successful - expect(response).to render_template("papers/show") + expect(response.body).to include(paper.title) + expect(response.body).to include("retracted") expect(response.media_type).to eq("application/json") expect { JSON.parse(response.body) }.not_to raise_error end @@ -417,14 +421,12 @@ it "returns an Atom feed for #index" do get :index, format: "atom" expect(response).to be_successful - expect(response).to render_template("papers/index") expect(response.media_type).to eq("application/atom+xml") end it "returns a valid Atom feed for #popular (published)" do get :popular, format: "atom" expect(response).to be_successful - expect(response).to render_template("papers/index") expect(response.media_type).to eq("application/atom+xml") end end From 6117d439139856b1a2c2b5a1e743cb149d552dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 11 Oct 2023 13:34:33 +0200 Subject: [PATCH 02/60] Refactor spec --- spec/controllers/editors_controller_spec.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spec/controllers/editors_controller_spec.rb b/spec/controllers/editors_controller_spec.rb index 549865ab7..1e3438ea0 100644 --- a/spec/controllers/editors_controller_spec.rb +++ b/spec/controllers/editors_controller_spec.rb @@ -163,10 +163,11 @@ it "goes back to the 'edit' form" do editor = create(:editor) - updated_at = editor.updated_at + editor_login = editor.login put :update, params: {id: editor.to_param, editor: {login: nil}} + expect(response).to_not be_redirect - expect(editor.reload.updated_at).to eq(updated_at) + expect(editor.reload.login).to eq(editor_login) end end end From 873f822b4e74b4246f6cb491c306bbd07d662679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Thu, 12 Oct 2023 10:05:15 +0200 Subject: [PATCH 03/60] Normalize login --- app/models/editor.rb | 6 +----- spec/models/editor_spec.rb | 9 ++++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/app/models/editor.rb b/app/models/editor.rb index 52f78b772..7fee4cf1e 100644 --- a/app/models/editor.rb +++ b/app/models/editor.rb @@ -15,8 +15,8 @@ class Editor < ApplicationRecord has_many :track_aeics, dependent: :destroy has_many :managed_tracks, through: :track_aeics, source: :track + normalizes :login, with: -> login { login.gsub(/^@/, "") } before_save :clear_title, if: :board_removed? - before_save :format_login, if: :login_changed? before_save :add_default_avatar_url ACTIVE_EDITOR_STATES = [ @@ -95,10 +95,6 @@ def board_removed? kind_changed? && kind_was == "board" end - def format_login - login.gsub!(/^@/, "") - end - def add_default_avatar_url if avatar_url.blank? && login.present? self.avatar_url = "https://github.com/#{login}.png" diff --git a/spec/models/editor_spec.rb b/spec/models/editor_spec.rb index f8c616a17..d7d01b5cc 100644 --- a/spec/models/editor_spec.rb +++ b/spec/models/editor_spec.rb @@ -71,11 +71,10 @@ end end - describe "#format_login" do - let(:editor) { build(:editor, login: "@somebody") } - - it "removes @'s" do - expect { editor.save }.to change { editor.login }.to "somebody" + describe "normalize login" do + it "removes initial @'s" do + editor = create(:editor, login: "@somebody") + expect(editor.login).to eq("somebody") end end From 4ba6049357c2368cce13b2f95d4772f11e663db3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Sat, 14 Oct 2023 11:28:27 +0200 Subject: [PATCH 04/60] Rails 7.1.1 --- Gemfile | 2 +- Gemfile.lock | 116 +++++++++++++++++++++++++-------------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Gemfile b/Gemfile index 69af9f27b..db8e17997 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'octokit', '~> 6.0' gem 'pdf-reader', '~> 2.11.0' gem 'pg', '~> 1.4.6' gem 'pagy' -gem 'rails', '7.1.0' +gem 'rails', '7.1.1' gem "importmap-rails" gem "turbo-rails" gem "stimulus-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 3d90e0c65..b88e00f16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,50 +4,50 @@ GEM Ascii85 (1.1.0) aasm (5.5.0) concurrent-ruby (~> 1.0) - actioncable (7.1.0) - actionpack (= 7.1.0) - activesupport (= 7.1.0) + actioncable (7.1.1) + actionpack (= 7.1.1) + activesupport (= 7.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.0) - actionpack (= 7.1.0) - activejob (= 7.1.0) - activerecord (= 7.1.0) - activestorage (= 7.1.0) - activesupport (= 7.1.0) + actionmailbox (7.1.1) + actionpack (= 7.1.1) + activejob (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.0) - actionpack (= 7.1.0) - actionview (= 7.1.0) - activejob (= 7.1.0) - activesupport (= 7.1.0) + actionmailer (7.1.1) + actionpack (= 7.1.1) + actionview (= 7.1.1) + activejob (= 7.1.1) + activesupport (= 7.1.1) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.0) - actionview (= 7.1.0) - activesupport (= 7.1.0) + actionpack (7.1.1) + actionview (= 7.1.1) + activesupport (= 7.1.1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.0) - actionpack (= 7.1.0) - activerecord (= 7.1.0) - activestorage (= 7.1.0) - activesupport (= 7.1.0) + actiontext (7.1.1) + actionpack (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.0) - activesupport (= 7.1.0) + actionview (7.1.1) + activesupport (= 7.1.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -55,22 +55,22 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (7.1.0) - activesupport (= 7.1.0) + activejob (7.1.1) + activesupport (= 7.1.1) globalid (>= 0.3.6) - activemodel (7.1.0) - activesupport (= 7.1.0) - activerecord (7.1.0) - activemodel (= 7.1.0) - activesupport (= 7.1.0) + activemodel (7.1.1) + activesupport (= 7.1.1) + activerecord (7.1.1) + activemodel (= 7.1.1) + activesupport (= 7.1.1) timeout (>= 0.4.0) - activestorage (7.1.0) - actionpack (= 7.1.0) - activejob (= 7.1.0) - activerecord (= 7.1.0) - activesupport (= 7.1.0) + activestorage (7.1.1) + actionpack (= 7.1.1) + activejob (= 7.1.1) + activerecord (= 7.1.1) + activesupport (= 7.1.1) marcel (~> 1.0) - activesupport (7.1.0) + activesupport (7.1.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -195,7 +195,7 @@ GEM actionpack (>= 6.0.0) railties (>= 6.0.0) io-console (0.6.0) - irb (1.8.1) + irb (1.8.2) rdoc reline (>= 0.3.8) issue (1.0.0) @@ -311,20 +311,20 @@ GEM rackup (1.0.0) rack (< 3) webrick - rails (7.1.0) - actioncable (= 7.1.0) - actionmailbox (= 7.1.0) - actionmailer (= 7.1.0) - actionpack (= 7.1.0) - actiontext (= 7.1.0) - actionview (= 7.1.0) - activejob (= 7.1.0) - activemodel (= 7.1.0) - activerecord (= 7.1.0) - activestorage (= 7.1.0) - activesupport (= 7.1.0) + rails (7.1.1) + actioncable (= 7.1.1) + actionmailbox (= 7.1.1) + actionmailer (= 7.1.1) + actionpack (= 7.1.1) + actiontext (= 7.1.1) + actionview (= 7.1.1) + activejob (= 7.1.1) + activemodel (= 7.1.1) + activerecord (= 7.1.1) + activestorage (= 7.1.1) + activesupport (= 7.1.1) bundler (>= 1.15.0) - railties (= 7.1.0) + railties (= 7.1.1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -332,9 +332,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.0) - actionpack (= 7.1.0) - activesupport (= 7.1.0) + railties (7.1.1) + actionpack (= 7.1.1) + activesupport (= 7.1.1) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -354,7 +354,7 @@ GEM declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) - responders (3.1.0) + responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) retriable (3.1.2) @@ -419,7 +419,7 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - stimulus-rails (1.2.2) + stimulus-rails (1.3.0) railties (>= 6.0.0) stringio (3.0.8) thor (1.2.2) @@ -427,7 +427,7 @@ GEM timeout (0.4.0) trailblazer-option (0.1.2) ttfunk (1.7.0) - turbo-rails (1.4.0) + turbo-rails (1.5.0) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) @@ -490,7 +490,7 @@ DEPENDENCIES pg (~> 1.4.6) pry-byebug puma - rails (= 7.1.0) + rails (= 7.1.1) redis (~> 5.0) responders rspec-rails (~> 6.0.3) From c3a056e3c509e5fba0149e8a8a82e1f850affb33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 24 Oct 2023 12:22:58 +0200 Subject: [PATCH 05/60] Add RTD config file --- .readthedocs.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..67062932a --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,18 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/conf.py + +python: + install: + - requirements: docs/requirements.txt From 40de29d6225e54d6793002a40e0c26bc2e0ab946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 24 Oct 2023 12:23:18 +0200 Subject: [PATCH 06/60] Add theme extension --- docs/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/conf.py b/docs/conf.py index f628e3c3e..a76237029 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -39,6 +39,7 @@ extensions = [ 'sphinx.ext.mathjax', 'recommonmark', + 'sphinx_rtd_theme', ] # Add any paths that contain templates here, relative to this directory. From 58cc126c2cfcbc240f1226f7f1f4ba7408f8f692 Mon Sep 17 00:00:00 2001 From: AoifeHughes Date: Thu, 26 Oct 2023 10:14:39 +0100 Subject: [PATCH 07/60] updated links and fixed rst link --- docs/editing.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/editing.md b/docs/editing.md index 8a89c90b2..b003fb112 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -22,7 +22,7 @@ Editors can flag submissions of questionable scope using the command `@editorial The TEiC assigns an editor (or a volunteering editor self-assigns) with the command `@editorialbot assign @username as editor` in a comment. ```eval_rst -.. note:: Please check in on the [dashboard](https://joss.theoj.org/dashboard/incoming) semi-regularly to see which papers are currently without an editor, and if possible, volunteer to edit papers that look to be in your domain. If you choose to be an editor in the issue thread type the command ``@editorialbot assign @yourhandle as editor`` or simply ``@editorialbot assign me as editor`` +.. note:: Please check in on the `dashboard `_ semi-regularly to see which papers are currently without an editor, and if possible, volunteer to edit papers that look to be in your domain. If you choose to be an editor in the issue thread type the command ``@editorialbot assign @yourhandle as editor`` or simply ``@editorialbot assign me as editor`` ``` ### How papers are assigned to editors @@ -35,11 +35,11 @@ By default, unless an editor volunteers, the Track Editor-in-chief (TEiC) on dut In most cases, the TEiC will ask one or more editors to edit a submission (e.g. `@editor1, @editor 2 - would one of you be willing to edit this submission for JOSS`). If the editor doesn't respond within ~3 working days, the TEiC may assign the paper to the editor regardless. -Editors may also be invited to edit over email when an TEiC runs the command `@editorialbot invite @editor1 as editor`. +Editors may also be invited to edit over email when an TEiC runs the command `@editorialbot invite @editor1 as editor`. ### Finding reviewers -At this point, the handling editor's job is to identify reviewers who have sufficient expertise in the field of software and in the field of the submission. JOSS papers have to have a minimum of two reviewers per submission, except for papers that have previously been peer-reviewed via rOpenSci. In some cases, the editor also might want to formally add themself as one of the reviewers. If the editor feels particularly unsure of the submission, a third (or fourth) reviewer can be recruited. +At this point, the handling editor's job is to identify reviewers who have sufficient expertise in the field of software and in the field of the submission. JOSS papers have to have a minimum of two reviewers per submission, except for papers that have previously been peer-reviewed via rOpenSci. In some cases, the editor also might want to formally add themselves as one of the reviewers. If the editor feels particularly unsure of the submission, a third (or fourth) reviewer can be recruited. To recruit reviewers, the handling editor can mention them in the `PRE-REVIEW` issue with their GitHub handle, ping them on Twitter, or email them. After expressing initial interest, candidate reviewers may need a longer explanation via email. See sample reviewer invitation email, below. @@ -62,7 +62,7 @@ Finding reviewers can be challenging, especially if a submission is outside of y - Ask on social networks: Sometimes asking on Twitter for reviewers can identify good candidates. - Check the work being referenced in the submission: - Authors of software that is being built on might be interested in reviewing the submission. - - Users of the the software that is being submission be interested in reviewing the submission + - Users of the software that is being submission be interested in reviewing the submission - Avoid asking JOSS editors to review: If at all possible, avoid asking JOSS editors to review as they are generally very busy editing their own papers. Once a reviewer accepts, the handling editor runs the command `@editorialbot add @username as reviewer` in the `PRE-REVIEW` issue. Add more reviewers with the same command. @@ -92,7 +92,7 @@ Sometimes you'll need to add a new reviewer once the main review (i.e. post pre- ## After reviewers recommend acceptance -When a submission is ready to be accepted, we ask that the authors issue a new tagged release of the software (if changed), and archive it (on [Zenodo](https://zenodo.org/), [fig**share**](https://figshare.com/), or other). The authors then post the version number and archive DOI in the `REVIEW` issue. The handling editor executes the pre-publication steps, and pings the Track Editor in Chief for final processing. +When a submission is ready to be accepted, we ask that the authors issue a new tagged release of the software (if changed), and archive it (on [Zenodo](https://zenodo.org/), [fig**share**](https://figshare.com/), or other). The authors then post the version number and archive DOI in the `REVIEW` issue. The handling editor executes the pre-publication steps, and pings the Track Editor-in-Chief for final processing. Optionally you can ask EditorialBot to generate a checklist with all the post-review steps running the command: `@editorialbot create post-review checklist` @@ -286,7 +286,8 @@ This doesn’t mean that you’re the editor, just that you’ve been suggested **Step 6: The editor finds >= 2 reviewers** -- Use the list of reviewers: type the command `@editorialbot list reviewers` or look at list of reviewers in a Google [spreadsheet](https://docs.google.com/spreadsheets/d/1PAPRJ63yq9aPC1COLjaQp8mHmEq3rZUzwUYxTulyu78/edit?usp=sharing) +- Use the list of reviewers: type the command `@editorialbot list reviewers` or + look at use the [Reviewers Management System](https://reviewers.joss.theoj.org) - If people are in the review list, the editor can @-mention them on the issue to see if they will review: e.g. `@person1 @person2 can you review this submission for JOSS?` - Or solicit reviewers outside the list. Send an email to people describing what JOSS is and asking if they would be interested in reviewing. - If you ask the author to suggest potential reviewers, please be sure to tell the author not to @-tag their suggestions. From a05ce1a683c17825cf6407db43d7151fc02f3c92 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 14:19:27 +0100 Subject: [PATCH 08/60] Update notes on pyOpenSci/rOpenSci submission handling. --- docs/editing.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/editing.md b/docs/editing.md index b003fb112..72ace11d3 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -140,16 +140,18 @@ aas-journal: Astrophysical Journal <- The name of the AAS journal. ## Processing of rOpenSci-reviewed or pyOpenSci-reviewed and accepted submissions -If a paper has already been reviewed and accepted by rOpenSci or pyOpenSci, the streamlined JOSS review process is: - -- Assign yourself as editor and reviewer -- Add a comment in the pre-review issue pointing to the rOpenSci or pyOpenSci review -- Add the rOpenSci/pyOpenSci label to the pre-review issue -- Start the review issue -- Add a comment in the review issue pointing to the rOpenSci or pyOpenSci review -- Compile the paper and check it looks OK -- Go to to the source code repo and grab the Zenodo DOI -- Accept and publish the paper +If a paper has already been reviewed and accepted by rOpenSci or pyOpenSci, provided the submission also meets the JOSS [submission requirements](https://joss.readthedocs.io/en/latest/submitting.html#submission-requirements) the paper will go through a streamlined review process: + +- Assign yourself as editor. +- Check the rOpenSci and pyOpenSci issue for the reviewer handles. +- Assign the rOpenSci/pyOpenSci as the reviewers of the JOSS submission too (although they do *not* need to complete another review here). +- Add a comment in the pre-review issue pointing to the rOpenSci or pyOpenSci review. +- Add the rOpenSci/pyOpenSci label to the pre-review issue. +- Start the review issue (make sure to tell the rOpenSci/pyOpenSci reviewers they are not required to complete an additional review here – we're just adding them for credit). +- Add a comment in the review issue pointing to the rOpenSci or pyOpenSci review. +- Compile the paper and check it looks OK. Ask the author to check too. +- Go to to the source code repo and grab the Zenodo DOI. +- Accept and publish the paper. ## Rejecting a paper From 977aa0c464284a1763d7ac59f73bad323abe0592 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 14:23:56 +0100 Subject: [PATCH 09/60] Confidential requests are public. --- docs/submitting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/submitting.md b/docs/submitting.md index c0577fa56..df193931c 100644 --- a/docs/submitting.md +++ b/docs/submitting.md @@ -690,6 +690,6 @@ If you want to learn more details about the review process, take a look at the [ Please write admin@theoj.org with confidential matters such as retraction requests, report of misconduct, and retroactive author name changes. -In case of a name change, the DOI will be unchanged and the paper will be updated without publishing a correction notice or notifying co-authors. +In case of a name change, the DOI will be unchanged and the paper will be updated without publishing a correction notice. Please note that as JOSS submissions are handled in the public, updates to papers are visible in the public record (e.g., in the [JOSS papers repository](https://github.com/openjournals/joss-papers) commit history). JOSS will also update Crossref metadata. From 2600a2f88c170b2f550f6fe7f7963670cb288b45 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 14:31:44 +0100 Subject: [PATCH 10/60] Clarifying scope review process. --- docs/editing.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/docs/editing.md b/docs/editing.md index 72ace11d3..2ccc720ab 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -140,27 +140,29 @@ aas-journal: Astrophysical Journal <- The name of the AAS journal. ## Processing of rOpenSci-reviewed or pyOpenSci-reviewed and accepted submissions -If a paper has already been reviewed and accepted by rOpenSci or pyOpenSci, provided the submission also meets the JOSS [submission requirements](https://joss.readthedocs.io/en/latest/submitting.html#submission-requirements) the paper will go through a streamlined review process: - -- Assign yourself as editor. -- Check the rOpenSci and pyOpenSci issue for the reviewer handles. -- Assign the rOpenSci/pyOpenSci as the reviewers of the JOSS submission too (although they do *not* need to complete another review here). -- Add a comment in the pre-review issue pointing to the rOpenSci or pyOpenSci review. -- Add the rOpenSci/pyOpenSci label to the pre-review issue. -- Start the review issue (make sure to tell the rOpenSci/pyOpenSci reviewers they are not required to complete an additional review here – we're just adding them for credit). -- Add a comment in the review issue pointing to the rOpenSci or pyOpenSci review. -- Compile the paper and check it looks OK. Ask the author to check too. -- Go to to the source code repo and grab the Zenodo DOI. -- Accept and publish the paper. +If a paper has already been reviewed and accepted by rOpenSci or pyOpenSci, the streamlined JOSS review process is: + +- Assign yourself as editor and reviewer +- Add a comment in the pre-review issue pointing to the rOpenSci or pyOpenSci review +- Add the rOpenSci/pyOpenSci label to the pre-review issue +- Start the review issue +- Add a comment in the review issue pointing to the rOpenSci or pyOpenSci review +- Compile the paper and check it looks OK +- Go to to the source code repo and grab the Zenodo DOI +- Accept and publish the paper ## Rejecting a paper If you believe a submission should be rejected, for example, because it is out of scope for JOSS, then you should: - Ask EditorialBot to flag the submission as potentially out of scope with the command `@editorialbot query scope`. This command adds the `query-scope` label to the issue. -- Mention to the author your reasons for flagging the submission as possibly out of scope, and give them an opportunity to defend their submission. +- Mention to the author your reasons for flagging the submission as possibly out of scope, and _optionally_ give them opportunity an defend their submission. - The TEiC will make a final determination of whether a submission is in scope, taking into account the feedback of other editors. +**Scope reviews for resubmissions** + +In the case where an author re-submits a previously-rejected paper to JOSS, the TEiC will use their discretion on whether a further scope review is required by the full editorial team, or 1) whether the previous reasons to reject still stands, or 2) whether there have been sufficient updates to now send the submission out for review. + ### Voting on papers flagged as potentially out of scope Once per week, an email is sent to all JOSS editors with a summary of the papers that are currently flagged as potentially out of scope. Editors are asked to review these submissions and vote on the JOSS website if they have an opinion about a submission. From c0a49b33fda708007aec679b432faacf829716f6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 14:33:06 +0100 Subject: [PATCH 11/60] May ask for input. --- docs/editing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/editing.md b/docs/editing.md index 2ccc720ab..dd4528e80 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -157,6 +157,7 @@ If you believe a submission should be rejected, for example, because it is out o - Ask EditorialBot to flag the submission as potentially out of scope with the command `@editorialbot query scope`. This command adds the `query-scope` label to the issue. - Mention to the author your reasons for flagging the submission as possibly out of scope, and _optionally_ give them opportunity an defend their submission. +- During the scope review process, the editorial team may ask the authors to provide additional information about their submission to assist the editorial board with their decision. - The TEiC will make a final determination of whether a submission is in scope, taking into account the feedback of other editors. **Scope reviews for resubmissions** From 9523c2a6b271a6db8f4a17b8ac5681821fa8744f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 22:22:39 +0100 Subject: [PATCH 12/60] Update docs/editing.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Juanjo Bazán --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index dd4528e80..d4a0635ee 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -156,7 +156,7 @@ If a paper has already been reviewed and accepted by rOpenSci or pyOpenSci, the If you believe a submission should be rejected, for example, because it is out of scope for JOSS, then you should: - Ask EditorialBot to flag the submission as potentially out of scope with the command `@editorialbot query scope`. This command adds the `query-scope` label to the issue. -- Mention to the author your reasons for flagging the submission as possibly out of scope, and _optionally_ give them opportunity an defend their submission. +- Mention to the author your reasons for flagging the submission as possibly out of scope, and _optionally_ give them an opportunity to defend their submission. - During the scope review process, the editorial team may ask the authors to provide additional information about their submission to assist the editorial board with their decision. - The TEiC will make a final determination of whether a submission is in scope, taking into account the feedback of other editors. From 3aa36b5873229fee0863a800d29f39f3aaa56234 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 22:24:03 +0100 Subject: [PATCH 13/60] Update docs/editing.md --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index d4a0635ee..367681408 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -162,7 +162,7 @@ If you believe a submission should be rejected, for example, because it is out o **Scope reviews for resubmissions** -In the case where an author re-submits a previously-rejected paper to JOSS, the TEiC will use their discretion on whether a further scope review is required by the full editorial team, or 1) whether the previous reasons to reject still stands, or 2) whether there have been sufficient updates to now send the submission out for review. +In the event that an author re-submits a paper to JOSS that was previously rejected, the TEiC will use their discretion to determine: 1) whether a full scope review by the entire editorial team is necessary, 2) if the previous reasons for rejection remain valid, or 3) if there have been enough updates to warrant sending the submission out for review. ### Voting on papers flagged as potentially out of scope From 5f8e947ae0b01efbdb0ee4718dbc974b7bb1d7a1 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 28 Oct 2023 22:26:17 +0100 Subject: [PATCH 14/60] Update docs/submitting.md --- docs/submitting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/submitting.md b/docs/submitting.md index df193931c..6732274fa 100644 --- a/docs/submitting.md +++ b/docs/submitting.md @@ -690,6 +690,6 @@ If you want to learn more details about the review process, take a look at the [ Please write admin@theoj.org with confidential matters such as retraction requests, report of misconduct, and retroactive author name changes. -In case of a name change, the DOI will be unchanged and the paper will be updated without publishing a correction notice. Please note that as JOSS submissions are handled in the public, updates to papers are visible in the public record (e.g., in the [JOSS papers repository](https://github.com/openjournals/joss-papers) commit history). +In the event of a name change request, the DOI will remain unchanged, and the paper will be updated without the publication of a correction notice. Please note that because JOSS submissions are managed publicly, updates to papers are visible in the public record (e.g., in the [JOSS papers repository](https://github.com/openjournals/joss-papers) commit history). JOSS will also update Crossref metadata. From 29bc535c5adf11091aab645fcb3ec98f714837d1 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 2 Nov 2023 14:47:55 +0000 Subject: [PATCH 15/60] Index me! From 624fd429dad129dcd10b4daf07f65180143dddb9 Mon Sep 17 00:00:00 2001 From: Dan Foreman-Mackey Date: Fri, 3 Nov 2023 09:22:20 -0400 Subject: [PATCH 16/60] Update physics and astronomy field keywords to reduce false positives --- lib/tracks.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/tracks.yml b/lib/tracks.yml index 7867d8f1a..8341b6df0 100644 --- a/lib/tracks.yml +++ b/lib/tracks.yml @@ -10,8 +10,8 @@ tracks: - dfm code: 1 fields: - - General Physics and Astronomy [Physical Sciences] - - Physics and Astronomy (miscellaneous) [Physical Sciences] + - General Astronomy [Physical Sciences] + - Astronomy (miscellaneous) [Physical Sciences] - Astronomy and Astrophysics [Physical Sciences] - Space and Planetary Science [Physical Sciences] bcm: @@ -212,7 +212,9 @@ tracks: - Fluid Flow and Transfer Processes [Physical Sciences] - Process Chemistry and Technology [Physical Sciences] - General Engineering [Physical Sciences] + - General Physics [Physical Sciences] - Engineering (miscellaneous) [Physical Sciences] + - Physics (miscellaneous) [Physical Sciences] - Aerospace Engineering [Physical Sciences] - Automotive Engineering [Physical Sciences] - Civil and Structural Engineering [Physical Sciences] From 0c8d95fdbeb370910670668a71226d078bf087e8 Mon Sep 17 00:00:00 2001 From: Dan Foreman-Mackey Date: Fri, 3 Nov 2023 09:34:51 -0400 Subject: [PATCH 17/60] Update reference track list --- spec/fixtures/reference-tracks.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/spec/fixtures/reference-tracks.yml b/spec/fixtures/reference-tracks.yml index e86f8e664..01689ab82 100644 --- a/spec/fixtures/reference-tracks.yml +++ b/spec/fixtures/reference-tracks.yml @@ -225,8 +225,10 @@ - Numerical Analysis [Physical Sciences] - Statistics and Probability [Physical Sciences] - Theoretical Computer Science [Physical Sciences] -- General Physics and Astronomy [Physical Sciences] -- Physics and Astronomy (miscellaneous) [Physical Sciences] +- General Astronomy [Physical Sciences] +- General Physics [Physical Sciences] +- Astronomy (miscellaneous) [Physical Sciences] +- Physics (miscellaneous) [Physical Sciences] - Acoustics and Ultrasonics [Physical Sciences] - Astronomy and Astrophysics [Physical Sciences] - Condensed Matter Physics [Physical Sciences] @@ -353,4 +355,4 @@ - Podiatry [Health Sciences] - Radiological and Ultrasound Technology [Health Sciences] - Respiratory Care [Health Sciences] -- Speech and Hearing [Health Sciences] \ No newline at end of file +- Speech and Hearing [Health Sciences] From 0829fd9c23ecacd0b1b06978452b151500c73a72 Mon Sep 17 00:00:00 2001 From: Dan Foreman-Mackey Date: Fri, 3 Nov 2023 09:36:09 -0400 Subject: [PATCH 18/60] Update number of field keywords in test --- spec/lib/tracks_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/lib/tracks_spec.rb b/spec/lib/tracks_spec.rb index 23be60970..b96236eae 100644 --- a/spec/lib/tracks_spec.rb +++ b/spec/lib/tracks_spec.rb @@ -8,12 +8,12 @@ end describe "Reference tracks" do - it "should be 344 in total" do - expect(reference_tracks.size).to eq(344) + it "should be 346 in total" do + expect(reference_tracks.size).to eq(346) end it "should be not have any dupes" do - expect(reference_tracks.uniq.size).to eq(344) + expect(reference_tracks.uniq.size).to eq(346) end end @@ -47,4 +47,4 @@ end end end -end \ No newline at end of file +end From 7d7f6cdc8545ef38e2e08e3609fcda8ce28b8aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 7 Nov 2023 10:01:01 +0100 Subject: [PATCH 19/60] Fix build after adding new subjects --- spec/lib/tracks_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/tracks_spec.rb b/spec/lib/tracks_spec.rb index b96236eae..6708efab4 100644 --- a/spec/lib/tracks_spec.rb +++ b/spec/lib/tracks_spec.rb @@ -36,7 +36,7 @@ it "should have no dupes" do all_tracks = joss_tracks['tracks'].collect {|k,v| v['fields']}.flatten.uniq - expect(all_tracks.size).to eq(344) + expect(all_tracks.size).to eq(346) end it "should include all of the reference tracks" do From 54e672b2d5181fb36735c041bd1f5d13ed2370ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 7 Nov 2023 10:02:10 +0100 Subject: [PATCH 20/60] Allow multiline votes --- app/views/papers/_vote_summary.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/papers/_vote_summary.html.erb b/app/views/papers/_vote_summary.html.erb index a7ecae948..e838503d0 100644 --- a/app/views/papers/_vote_summary.html.erb +++ b/app/views/papers/_vote_summary.html.erb @@ -9,7 +9,7 @@
- <%= f.text_field :comment, class: "form-control", placeholder: "Include a comment with your vote (required)" %> + <%= f.text_area :comment, class: "form-control", placeholder: "Include a comment with your vote (required)" %>
From 78e08d92106410efbe21b7ee09bbbef1e0f9b60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 7 Nov 2023 11:41:54 +0100 Subject: [PATCH 21/60] Update dependencies --- Gemfile | 2 +- Gemfile.lock | 50 ++++++++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/Gemfile b/Gemfile index db8e17997..ee53441d0 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,7 @@ gem 'net-sftp', '~> 4.0' gem 'octicons_helper' gem 'omniauth-orcid', '~> 2.1.1' gem 'omniauth-rails_csrf_protection' -gem 'octokit', '~> 6.0' +gem 'octokit' gem 'pdf-reader', '~> 2.11.0' gem 'pg', '~> 1.4.6' gem 'pagy' diff --git a/Gemfile.lock b/Gemfile.lock index b88e00f16..116b00edf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -83,10 +83,10 @@ GEM addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) afm (0.2.2) - base64 (0.1.1) + base64 (0.2.0) bigdecimal (3.1.4) bindex (0.8.1) - bootsnap (1.16.0) + bootsnap (1.17.0) msgpack (~> 1.2) builder (3.2.4) byebug (11.1.3) @@ -107,11 +107,11 @@ GEM crack (0.4.5) rexml crass (1.0.6) - date (3.3.3) + date (3.3.4) declarative (0.0.20) diff-lcs (1.5.0) dotenv (2.8.1) - drb (2.1.1) + drb (2.2.0) ruby2_keywords elasticsearch (7.13.3) elasticsearch-api (= 7.13.3) @@ -154,7 +154,7 @@ GEM ffi (1.16.3) globalid (1.2.1) activesupport (>= 6.1) - google-apis-core (0.11.1) + google-apis-core (0.11.2) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -191,11 +191,12 @@ GEM httpclient (2.8.3) i18n (1.14.1) concurrent-ruby (~> 1.0) - importmap-rails (1.2.1) + importmap-rails (1.2.3) actionpack (>= 6.0.0) + activesupport (>= 6.0.0) railties (>= 6.0.0) io-console (0.6.0) - irb (1.8.2) + irb (1.8.3) rdoc reline (>= 0.3.8) issue (1.0.0) @@ -221,7 +222,7 @@ GEM memoist (0.16.2) method_source (1.0.0) mini_mime (1.1.5) - mini_portile2 (2.8.4) + mini_portile2 (2.8.5) mini_racer (0.8.0) libv8-node (~> 18.16.0.0) minitest (5.20.0) @@ -229,20 +230,21 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.3.0) - mutex_m (0.1.2) - net-imap (0.4.1) + mutex_m (0.2.0) + net-imap (0.4.4) date net-protocol net-pop (0.1.2) net-protocol - net-protocol (0.2.1) + net-protocol (0.2.2) timeout net-sftp (4.0.0) net-ssh (>= 5.0.0, < 8.0.0) net-smtp (0.4.0) net-protocol net-ssh (7.2.0) - newrelic_rpm (9.5.0) + newrelic_rpm (9.6.0) + base64 nio4r (2.5.9) nokogiri (1.15.4) mini_portile2 (~> 2.8.2) @@ -263,7 +265,7 @@ GEM actionview octicons (= 19.8.0) railties - octokit (6.1.1) + octokit (8.0.0) faraday (>= 1, < 3) sawyer (~> 0.9) omniauth (2.1.1) @@ -295,12 +297,12 @@ GEM pry-byebug (3.10.1) byebug (~> 11.0) pry (>= 0.13, < 0.15) - psych (5.1.1) + psych (5.1.1.1) stringio public_suffix (5.0.3) puma (6.4.0) nio4r (~> 2.0) - racc (1.7.1) + racc (1.7.3) rack (2.2.8) rack-protection (3.1.0) rack (~> 2.2, >= 2.2.4) @@ -340,12 +342,12 @@ GEM rake (>= 12.2) thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) - rake (13.0.6) - rdoc (6.5.0) + rake (13.1.0) + rdoc (6.6.0) psych (>= 4.0.0) - redis (5.0.7) - redis-client (>= 0.9.0) - redis-client (0.17.0) + redis (5.0.8) + redis-client (>= 0.17.0) + redis-client (0.18.0) connection_pool regexp_parser (2.8.2) reline (0.3.9) @@ -397,7 +399,7 @@ GEM searchkick (5.3.0) activemodel (>= 6.1) hashie - selenium-webdriver (4.14.0) + selenium-webdriver (4.15.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -422,9 +424,9 @@ GEM stimulus-rails (1.3.0) railties (>= 6.0.0) stringio (3.0.8) - thor (1.2.2) + thor (1.3.0) tilt (2.3.0) - timeout (0.4.0) + timeout (0.4.1) trailblazer-option (0.1.2) ttfunk (1.7.0) turbo-rails (1.5.0) @@ -482,7 +484,7 @@ DEPENDENCIES net-sftp (~> 4.0) newrelic_rpm octicons_helper - octokit (~> 6.0) + octokit omniauth-orcid (~> 2.1.1) omniauth-rails_csrf_protection pagy From fd02771f7f2a8c3e0c564e2edfa12a833c683f07 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 12 Nov 2023 16:04:58 +0000 Subject: [PATCH 22/60] Update tracks.yml --- lib/tracks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tracks.yml b/lib/tracks.yml index 8341b6df0..7d87c099a 100644 --- a/lib/tracks.yml +++ b/lib/tracks.yml @@ -284,7 +284,7 @@ tracks: name: Data Science, Artificial Intelligence, and Machine Learning short_name: dsais eics: - - gkthiruvathukal + - arfon code: 5 fields: - Artificial Intelligence & Machine Learning (General) [Physical Sciences] From 98775b3c46b8e71fee0e2d9edf74eb4244b6cd96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 13 Nov 2023 10:32:43 +0100 Subject: [PATCH 23/60] Rails 7.1.2 --- Gemfile | 2 +- Gemfile.lock | 115 ++++++++++++++++++++++++++------------------------- 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/Gemfile b/Gemfile index ee53441d0..6ea0440f7 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'octokit' gem 'pdf-reader', '~> 2.11.0' gem 'pg', '~> 1.4.6' gem 'pagy' -gem 'rails', '7.1.1' +gem 'rails', '7.1.2' gem "importmap-rails" gem "turbo-rails" gem "stimulus-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 116b00edf..f1db4903d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,50 +4,51 @@ GEM Ascii85 (1.1.0) aasm (5.5.0) concurrent-ruby (~> 1.0) - actioncable (7.1.1) - actionpack (= 7.1.1) - activesupport (= 7.1.1) + actioncable (7.1.2) + actionpack (= 7.1.2) + activesupport (= 7.1.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.1) - actionpack (= 7.1.1) - activejob (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + actionmailbox (7.1.2) + actionpack (= 7.1.2) + activejob (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.1) - actionpack (= 7.1.1) - actionview (= 7.1.1) - activejob (= 7.1.1) - activesupport (= 7.1.1) + actionmailer (7.1.2) + actionpack (= 7.1.2) + actionview (= 7.1.2) + activejob (= 7.1.2) + activesupport (= 7.1.2) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.1) - actionview (= 7.1.1) - activesupport (= 7.1.1) + actionpack (7.1.2) + actionview (= 7.1.2) + activesupport (= 7.1.2) nokogiri (>= 1.8.5) + racc rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.1) - actionpack (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + actiontext (7.1.2) + actionpack (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.1) - activesupport (= 7.1.1) + actionview (7.1.2) + activesupport (= 7.1.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -55,22 +56,22 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (7.1.1) - activesupport (= 7.1.1) + activejob (7.1.2) + activesupport (= 7.1.2) globalid (>= 0.3.6) - activemodel (7.1.1) - activesupport (= 7.1.1) - activerecord (7.1.1) - activemodel (= 7.1.1) - activesupport (= 7.1.1) + activemodel (7.1.2) + activesupport (= 7.1.2) + activerecord (7.1.2) + activemodel (= 7.1.2) + activesupport (= 7.1.2) timeout (>= 0.4.0) - activestorage (7.1.1) - actionpack (= 7.1.1) - activejob (= 7.1.1) - activerecord (= 7.1.1) - activesupport (= 7.1.1) + activestorage (7.1.2) + actionpack (= 7.1.2) + activejob (= 7.1.2) + activerecord (= 7.1.2) + activesupport (= 7.1.2) marcel (~> 1.0) - activesupport (7.1.1) + activesupport (7.1.2) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -196,7 +197,7 @@ GEM activesupport (>= 6.0.0) railties (>= 6.0.0) io-console (0.6.0) - irb (1.8.3) + irb (1.9.0) rdoc reline (>= 0.3.8) issue (1.0.0) @@ -313,20 +314,20 @@ GEM rackup (1.0.0) rack (< 3) webrick - rails (7.1.1) - actioncable (= 7.1.1) - actionmailbox (= 7.1.1) - actionmailer (= 7.1.1) - actionpack (= 7.1.1) - actiontext (= 7.1.1) - actionview (= 7.1.1) - activejob (= 7.1.1) - activemodel (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + rails (7.1.2) + actioncable (= 7.1.2) + actionmailbox (= 7.1.2) + actionmailer (= 7.1.2) + actionpack (= 7.1.2) + actiontext (= 7.1.2) + actionview (= 7.1.2) + activejob (= 7.1.2) + activemodel (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) bundler (>= 1.15.0) - railties (= 7.1.1) + railties (= 7.1.2) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -334,9 +335,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.1) - actionpack (= 7.1.1) - activesupport (= 7.1.1) + railties (7.1.2) + actionpack (= 7.1.2) + activesupport (= 7.1.2) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -350,7 +351,7 @@ GEM redis-client (0.18.0) connection_pool regexp_parser (2.8.2) - reline (0.3.9) + reline (0.4.0) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -423,7 +424,7 @@ GEM sprockets (>= 3.0.0) stimulus-rails (1.3.0) railties (>= 6.0.0) - stringio (3.0.8) + stringio (3.0.9) thor (1.3.0) tilt (2.3.0) timeout (0.4.1) @@ -492,7 +493,7 @@ DEPENDENCIES pg (~> 1.4.6) pry-byebug puma - rails (= 7.1.1) + rails (= 7.1.2) redis (~> 5.0) responders rspec-rails (~> 6.0.3) From ea50874acb1ee7d0de5ceb7b189674bf4a3be382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 17 Nov 2023 13:40:22 +0100 Subject: [PATCH 24/60] Add Dockerfile and Batchfile to ignored languages --- app/models/paper.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/paper.rb b/app/models/paper.rb index 53402b310..ae65f42f6 100644 --- a/app/models/paper.rb +++ b/app/models/paper.rb @@ -114,7 +114,9 @@ class Paper < ApplicationRecord 'Makefile', 'HTML', 'CSS', - 'CMake' + 'CMake', + 'Dockerfile', + 'Batchfile' ].freeze default_scope { order(created_at: :desc) } From ac056179d33f74c242b7b4d53836370a55d89a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 29 Nov 2023 10:38:51 +0100 Subject: [PATCH 25/60] Update test dependencies --- Gemfile | 4 ++-- Gemfile.lock | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Gemfile b/Gemfile index 6ea0440f7..ed241d57d 100644 --- a/Gemfile +++ b/Gemfile @@ -49,8 +49,8 @@ group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'pry-byebug' gem 'capybara', '~> 3.39' - gem 'factory_bot_rails', '~> 6.2.0' - gem 'rspec-rails', '~> 6.0.3' + gem 'factory_bot_rails', '~> 6.4.2' + gem 'rspec-rails', '~> 6.1.0' gem 'selenium-webdriver' gem 'webmock' end diff --git a/Gemfile.lock b/Gemfile.lock index f1db4903d..024c5a3be 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,10 +124,10 @@ GEM multi_json erubi (1.12.0) execjs (2.9.1) - factory_bot (6.2.1) + factory_bot (6.4.2) activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) + factory_bot_rails (6.4.2) + factory_bot (~> 6.4) railties (>= 5.0.0) faraday (1.10.3) faraday-em_http (~> 1.0) @@ -197,7 +197,7 @@ GEM activesupport (>= 6.0.0) railties (>= 6.0.0) io-console (0.6.0) - irb (1.9.0) + irb (1.9.1) rdoc reline (>= 0.3.8) issue (1.0.0) @@ -210,7 +210,7 @@ GEM libv8-node (18.16.0.0) libv8-node (18.16.0.0-x86_64-darwin) libv8-node (18.16.0.0-x86_64-linux) - loofah (2.21.4) + loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -232,7 +232,7 @@ GEM multi_xml (0.6.0) multipart-post (2.3.0) mutex_m (0.2.0) - net-imap (0.4.4) + net-imap (0.4.6) date net-protocol net-pop (0.1.2) @@ -246,13 +246,13 @@ GEM net-ssh (7.2.0) newrelic_rpm (9.6.0) base64 - nio4r (2.5.9) - nokogiri (1.15.4) + nio4r (2.6.1) + nokogiri (1.15.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.15.4-x86_64-darwin) + nokogiri (1.15.5-x86_64-darwin) racc (~> 1.4) - nokogiri (1.15.4-x86_64-linux) + nokogiri (1.15.5-x86_64-linux) racc (~> 1.4) oauth2 (2.0.9) faraday (>= 0.17.3, < 3.0) @@ -284,7 +284,7 @@ GEM omniauth (~> 2.0) openssl (3.2.0) os (1.1.4) - pagy (6.1.0) + pagy (6.2.0) pdf-reader (2.11.0) Ascii85 (~> 1.0) afm (~> 0.2.1) @@ -300,7 +300,7 @@ GEM pry (>= 0.13, < 0.15) psych (5.1.1.1) stringio - public_suffix (5.0.3) + public_suffix (5.0.4) puma (6.4.0) nio4r (~> 2.0) racc (1.7.3) @@ -370,7 +370,7 @@ GEM rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) - rspec-rails (6.0.3) + rspec-rails (6.1.0) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) @@ -412,7 +412,7 @@ GEM snaky_hash (2.0.1) hashie version_gem (~> 1.1, >= 1.1.1) - spring (4.1.1) + spring (4.1.3) spring-commands-rspec (1.0.4) spring (>= 0.9.1) sprockets (4.2.1) @@ -473,7 +473,7 @@ DEPENDENCIES commonmarker (~> 0.23.10) dotenv (~> 2.8.1) elasticsearch (< 7.14) - factory_bot_rails (~> 6.2.0) + factory_bot_rails (~> 6.4.2) google_drive groupdate honeybadger (~> 5.2.0) @@ -496,7 +496,7 @@ DEPENDENCIES rails (= 7.1.2) redis (~> 5.0) responders - rspec-rails (~> 6.0.3) + rspec-rails (~> 6.1.0) sanitize (~> 6.0.1) sassc-rails searchkick From ab7d881786f8a7f35f1f0a0123324b12f011be8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 29 Nov 2023 10:39:16 +0100 Subject: [PATCH 26/60] Update deprecated method --- spec/rails_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c7eb50e7c..0ad0d1555 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -39,7 +39,7 @@ RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_paths = ["#{::Rails.root}/spec/fixtures"] # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false From c6f6530812dc300934aac4826bc2c49b9527554b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Thu, 30 Nov 2023 11:22:28 +0100 Subject: [PATCH 27/60] Validate repository URL value includes protocol --- app/models/paper.rb | 1 + spec/models/paper_spec.rb | 27 ++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/models/paper.rb b/app/models/paper.rb index ae65f42f6..daf814e4a 100644 --- a/app/models/paper.rb +++ b/app/models/paper.rb @@ -145,6 +145,7 @@ class Paper < ApplicationRecord validates_presence_of :track_id, on: :create, message: "You must select a valid subject for the paper", if: Proc.new { JournalFeatures.tracks? } validates :kind, inclusion: { in: Rails.application.settings["paper_types"] }, allow_nil: true validates :submission_kind, inclusion: { in: SUBMISSION_KINDS, message: "You must select a submission type" }, allow_nil: false + validates_format_of :repository_url, with: /\Ahttps?:\/\//i, on: :create, message: "Repository URL is missing the protocol segment (http/https)" validate :check_repository_address, on: :create, unless: Proc.new {|paper| paper.is_a_retraction_notice?} def notify_editors diff --git a/spec/models/paper_spec.rb b/spec/models/paper_spec.rb index a9087fd40..cf9d95228 100644 --- a/spec/models/paper_spec.rb +++ b/spec/models/paper_spec.rb @@ -47,14 +47,31 @@ expect(paper.submitting_author).to eq(user) end + it "should have a complete value for repository url" do + params = { title: 'Test paper', + body: 'A test paper description', + repository_url: 'github.com/arfon/fidgit', + software_version: 'v1.0.0', + submitting_author: create(:user), + submission_kind: 'new', + track: create(:track) } + + paper = Paper.create(params) + expect(paper).to_not be_valid + expect(paper.errors.messages[:repository_url].first).to eq("Repository URL is missing the protocol segment (http/https)") + + paper = Paper.create(params.merge(repository_url: 'http://github.com/arfon/fidgit')) + expect(paper).to be_valid + end + it "must have a track assigned on creation if tracks are enabled" do enable_feature(:tracks) do no_track_params = { title: 'Test paper', - body: 'A test paper description', - repository_url: 'http://github.com/arfon/fidgit', - software_version: 'v1.0.0', - submitting_author: create(:user), - submission_kind: 'new' } + body: 'A test paper description', + repository_url: 'http://github.com/arfon/fidgit', + software_version: 'v1.0.0', + submitting_author: create(:user), + submission_kind: 'new' } valid_params = no_track_params.merge track: create(:track) From 5cfcf64cab10513e1a41ce820f2f9f376e97fde6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Sat, 2 Dec 2023 11:15:24 +0100 Subject: [PATCH 28/60] Mention post review command --- docs/editing.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/editing.md b/docs/editing.md index 367681408..7b5057c42 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -318,6 +318,7 @@ This doesn’t mean that you’re the editor, just that you’ve been suggested - Make a final check of the paper with `@editorialbot generate pdf` and that all references have DOIs (where appropriate) with `@editorialbot check references`. - If everything looks good, ask the author to make a new release (if possible) of the software being reviewed and deposit a new archive the software with Zenodo/figshare. Update the review thread with this archive DOI: `@editorialbot set 10.5281/zenodo.xxxxxx as archive`. +- Editors can get a checklist of the final steps using the `@editorialbot create post-review checklist` command - Finally, use `@editorialbot recommend-accept` on the review thread to ping the `@openjournals/joss-eics` team letting them know the paper is ready to be accepted. **Step 12: Celebrate publication! Tweet! Thank reviewers! Say thank you on issue.** From 169fffb481c5927905d1b7e0a6782c0b55184973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Sat, 2 Dec 2023 11:20:22 +0100 Subject: [PATCH 29/60] Add note --- docs/editorial_bot.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/editorial_bot.md b/docs/editorial_bot.md index 922da3603..4223bd6bf 100644 --- a/docs/editorial_bot.md +++ b/docs/editorial_bot.md @@ -10,6 +10,10 @@ The Open Journals' editorial bot or `@editorialbot` on GitHub, is our editorial @editorialbot commands ``` +```eval_rst +.. note:: EditorialBot commands must be placed in the first line of a comment. Other text can be added after the first line with the command. Multiple commands are not allowed in the same comment, only the first one will be interpreted. +``` + ## Author and reviewers commands A subset of the EditorialBot commands are available to authors and reviewers: From fefede4e34502aba42a808740876857f4196d061 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 9 Dec 2023 18:58:05 +0000 Subject: [PATCH 30/60] Adding rake task to find top authors --- lib/tasks/stats.rake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/tasks/stats.rake b/lib/tasks/stats.rake index 513f2a2b7..e988d8843 100644 --- a/lib/tasks/stats.rake +++ b/lib/tasks/stats.rake @@ -55,4 +55,20 @@ namespace :stats do end sheet.save end + + desc "Find most published authors of all time" + task most_published_authors: :environment do + # Find all the users who have published papers + users = User.joins(:papers).where(papers: { state: 'accepted' }).distinct + + # Sort them by the number of papers they've published + users = users.sort_by { |u| u.papers.accepted.count }.reverse + + # Print out the authors with more than one published paper in JOSS, + # with a link to published papers on JOSS (format https://joss.theoj.org/papers/by/username) + # the number of papers they've published, name, and email address, and whether they're an editor + users.select { |u| u.papers.accepted.count > 1 }.each do |u| + puts "#{u.papers.accepted.count},#{u.name},#{u.email},#{u.editor? ? 'editor' : 'non-editor'},(https://joss.theoj.org/papers/by/#{u.github_username})" + end;nil + end end From 40641dca421f5ea06d3b2245bf71d0e3bbe2c62d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 6 Jan 2024 17:36:51 -0500 Subject: [PATCH 31/60] Update editing.md --- docs/editing.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/editing.md b/docs/editing.md index 7b5057c42..c1adcc166 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -405,3 +405,45 @@ If you use Gmail: For papers that you are already assigned to edit, the dedicated JOSS dashboard aggregates notifications associated with each paper. The dashboard is available at: `https://joss.theoj.org/dashboard/` Another tool you might want to try out is [Octobox](https://octobox.io/). + +## Top tips for JOSS editors + +**Aim for reviewer redundancy** + +If you have 3 people agree to review, take them up on their offer(s), that way if one person drops out, you'll have a backup and won't have to look for more reviewers. Also, when sending invites, try pinging a number of people at the same time rather than doing it one-by-one. + +**Email is a good backup** + +Email is often the most reliable way of contacting people. Whether it's inviting reviewers, following up with reviewers or authors etc., if you've not heard back from someone on GitHub, try emailing them (their email is often available on their GitHub profile page). + +**Default to over-communicating** + +When you take an action (even if it isn't on GitHub), share on the review thready what you're up to. For example, if you're looking for reviewers and are sending emails – leave a note on the review thread saying as much. + +**Use the JOSS Slack** + +There's lots of historical knowledge in our Slack, and it's a great way to get questions answered. + +**Ask reviewers to complete their review in 4-6 weeks** + +We aim for a total submission ... publication time of ~3 months. This means we ideally want reviewers to complete their review in 4-6 weeks (max). + +**Use saved replies on GitHub** + +[Saved replies](https://docs.github.com/en/get-started/writing-on-github/working-with-saved-replies/using-saved-replies) on GitHub can be a huge productivity boost. Try making some using the example messages listed above. + +**Ping reviewers if they’ve not started after 2 weeks** + +If a reviewer hasn't started within 1-2 weeks, you should probably give them a nudge. People often agree to review, and then forget about the review. + +**Learn how to nudge gently, and often** + +One of your jobs as the editor is to ensure the review keeps moving at a reasonable pace. If nothing has happened for a week or so, consider nudging the author or reviewers (depending upon who you're waiting for). A friendly _"👋 reviewer, how are you getting along here"_ can often be sufficient to get things moving again. + +**Check in twice a week** + +Try to check in on your JOSS submissions twice per week, even if only for 5 minutes. Use your dashboard to stay on top of the current status of your submissions (i.e., who was the last person to comment on the thread). + +**Leave feedback on reviewers** + +Leave feedback on the [reviewers application](https://reviewers.joss.theoj.org/) at the end of the review. This helps future editors when they're seeking out good reviewer candidates. From 23bddfda688fcca1d06725f4106035af457352ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 8 Jan 2024 10:47:47 +0100 Subject: [PATCH 32/60] Update to Ruby 3.3.0 --- .github/workflows/tests.yml | 2 +- .ruby-version | 2 +- Gemfile | 2 +- Gemfile.lock | 8 ++------ 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 751f3317b..a57c8ff0d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,7 +15,7 @@ jobs: - name: Install Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.2 + ruby-version: 3.3.0 bundler-cache: true - name: Install Elasticsearch uses: ankane/setup-elasticsearch@v1 diff --git a/.ruby-version b/.ruby-version index be94e6f53..15a279981 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.2 +3.3.0 diff --git a/Gemfile b/Gemfile index ed241d57d..858d82b07 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' -ruby '3.2.2' +ruby '3.3.0' gem 'aasm', '~> 5.5.0' gem 'chartkick' diff --git a/Gemfile.lock b/Gemfile.lock index 024c5a3be..2440f6605 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,10 +250,6 @@ GEM nokogiri (1.15.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.15.5-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.15.5-x86_64-linux) - racc (~> 1.4) oauth2 (2.0.9) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) @@ -512,7 +508,7 @@ DEPENDENCIES webmock RUBY VERSION - ruby 3.2.2p53 + ruby 3.3.0p0 BUNDLED WITH - 2.4.14 + 2.5.4 From 732234ddc2855ae7f95b80c6072bd751ad6e550e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 8 Jan 2024 10:50:44 +0100 Subject: [PATCH 33/60] Update nokogiri --- Gemfile.lock | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2440f6605..c6b95140b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -247,9 +247,13 @@ GEM newrelic_rpm (9.6.0) base64 nio4r (2.6.1) - nokogiri (1.15.5) + nokogiri (1.16.0) mini_portile2 (~> 2.8.2) racc (~> 1.4) + nokogiri (1.16.0-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.0-x86_64-linux) + racc (~> 1.4) oauth2 (2.0.9) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) From b68e5b38173bbbb968dbfeb1bfa472471265c023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 8 Jan 2024 10:52:28 +0100 Subject: [PATCH 34/60] Bundle update --- Gemfile.lock | 55 ++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c6b95140b..b0a0dd22b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -81,11 +81,11 @@ GEM minitest (>= 5.1) mutex_m tzinfo (~> 2.0) - addressable (2.8.5) + addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) afm (0.2.2) base64 (0.2.0) - bigdecimal (3.1.4) + bigdecimal (3.1.5) bindex (0.8.1) bootsnap (1.17.0) msgpack (~> 1.2) @@ -100,7 +100,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - chartkick (5.0.4) + chartkick (5.0.5) coderay (1.1.3) commonmarker (0.23.10) concurrent-ruby (1.2.2) @@ -124,9 +124,9 @@ GEM multi_json erubi (1.12.0) execjs (2.9.1) - factory_bot (6.4.2) + factory_bot (6.4.5) activesupport (>= 5.0.0) - factory_bot_rails (6.4.2) + factory_bot_rails (6.4.3) factory_bot (~> 6.4) railties (>= 5.0.0) faraday (1.10.3) @@ -164,7 +164,7 @@ GEM retriable (>= 2.0, < 4.a) rexml webrick - google-apis-drive_v3 (0.44.0) + google-apis-drive_v3 (0.46.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-sheets_v4 (0.26.0) google-apis-core (>= 0.11.0, < 2.a) @@ -182,7 +182,7 @@ GEM signet (~> 0.15) groupdate (6.4.0) activesupport (>= 6.1) - hashdiff (1.0.1) + hashdiff (1.1.0) hashery (2.1.2) hashie (5.0.0) honeybadger (5.2.1) @@ -192,12 +192,12 @@ GEM httpclient (2.8.3) i18n (1.14.1) concurrent-ruby (~> 1.0) - importmap-rails (1.2.3) + importmap-rails (2.0.1) actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - io-console (0.6.0) - irb (1.9.1) + io-console (0.7.1) + irb (1.11.0) rdoc reline (>= 0.3.8) issue (1.0.0) @@ -232,7 +232,7 @@ GEM multi_xml (0.6.0) multipart-post (2.3.0) mutex_m (0.2.0) - net-imap (0.4.6) + net-imap (0.4.9.1) date net-protocol net-pop (0.1.2) @@ -241,12 +241,12 @@ GEM timeout net-sftp (4.0.0) net-ssh (>= 5.0.0, < 8.0.0) - net-smtp (0.4.0) + net-smtp (0.4.0.1) net-protocol - net-ssh (7.2.0) + net-ssh (7.2.1) newrelic_rpm (9.6.0) base64 - nio4r (2.6.1) + nio4r (2.7.0) nokogiri (1.16.0) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -269,7 +269,7 @@ GEM octokit (8.0.0) faraday (>= 1, < 3) sawyer (~> 0.9) - omniauth (2.1.1) + omniauth (2.1.2) hashie (>= 3.4.6) rack (>= 2.2.3) rack-protection @@ -298,16 +298,17 @@ GEM pry-byebug (3.10.1) byebug (~> 11.0) pry (>= 0.13, < 0.15) - psych (5.1.1.1) + psych (5.1.2) stringio public_suffix (5.0.4) - puma (6.4.0) + puma (6.4.2) nio4r (~> 2.0) racc (1.7.3) rack (2.2.8) - rack-protection (3.1.0) + rack-protection (3.2.0) + base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) - rack-session (1.0.1) + rack-session (1.0.2) rack (< 3) rack-test (2.1.0) rack (>= 1.3) @@ -344,14 +345,14 @@ GEM thor (~> 1.0, >= 1.2.2) zeitwerk (~> 2.6) rake (13.1.0) - rdoc (6.6.0) + rdoc (6.6.2) psych (>= 4.0.0) redis (5.0.8) redis-client (>= 0.17.0) - redis-client (0.18.0) + redis-client (0.19.1) connection_pool - regexp_parser (2.8.2) - reline (0.4.0) + regexp_parser (2.8.3) + reline (0.4.2) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -397,10 +398,10 @@ GEM sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - searchkick (5.3.0) + searchkick (5.3.1) activemodel (>= 6.1) hashie - selenium-webdriver (4.15.0) + selenium-webdriver (4.16.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -422,9 +423,9 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - stimulus-rails (1.3.0) + stimulus-rails (1.3.3) railties (>= 6.0.0) - stringio (3.0.9) + stringio (3.1.0) thor (1.3.0) tilt (2.3.0) timeout (0.4.1) From fd57eb5650262b7b3debf69a9afddc3500b6996a Mon Sep 17 00:00:00 2001 From: Kyle Niemeyer Date: Wed, 10 Jan 2024 14:07:18 -0800 Subject: [PATCH 35/60] Update editorial_bot.md Adds option specifying branch to check repository command --- docs/editorial_bot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editorial_bot.md b/docs/editorial_bot.md index 4223bd6bf..31acd2364 100644 --- a/docs/editorial_bot.md +++ b/docs/editorial_bot.md @@ -302,7 +302,7 @@ JOSS editors-in-chief can withdraw a submission with the following command: @editorialbot check references # Perform checks on the repository -@editorialbot check repository +@editorialbot check repository [from branch ] # Adds a checklist for the reviewer using this command @editorialbot generate my checklist From 613c695be47ed453c3daa8f4077a175f2705dc9e Mon Sep 17 00:00:00 2001 From: Wilhelm Vermelin <36416659+wilswer@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:55:03 +0100 Subject: [PATCH 36/60] Fix typo in submitting.md forth -> fourth --- docs/submitting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/submitting.md b/docs/submitting.md index 6732274fa..3b15d25b3 100644 --- a/docs/submitting.md +++ b/docs/submitting.md @@ -390,7 +390,7 @@ Please start headings on the first level. The maximum supported level is 5, but ###### Deeper nesting -Fourth- and fifth-level subsections – like this one and the following heading – are supported by the system; however, their use is discouraged. Use lists instead of forth- and fifth-level headings. +Fourth- and fifth-level subsections – like this one and the following heading – are supported by the system; however, their use is discouraged. Use lists instead of fourth- and fifth-level headings. #### Lists From 1f18b46b39128372aad7a3a410d2687ae89f0497 Mon Sep 17 00:00:00 2001 From: "Daniel S. Katz" Date: Tue, 16 Jan 2024 12:46:23 -0600 Subject: [PATCH 37/60] fixing typo --- docs/reviewer_guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reviewer_guidelines.md b/docs/reviewer_guidelines.md index a6f5aa5d8..d20b57eb4 100644 --- a/docs/reviewer_guidelines.md +++ b/docs/reviewer_guidelines.md @@ -21,6 +21,6 @@ The definition of a conflict of Interest in peer review is a circumstance that m As a reviewer (or editor), COIs are your present or previous association with any authors of a submission: recent (past four years) collaborators in funded research or work that is published; and lifetime for the family members, business partners, and thesis student/advisor or mentor. In addition, your recent (past year) association with the same organization of a submitter is a COI, for example, being employed at the same institution. -If you have a conflict of interest with a submission, you should disclose the specific reason to the submissions' editor (or to an EiC if you are an editor, or to the other EiCs if you are an EiC). This may lead to you not being able to review or edit the submission, but some conflicts may be recorded and then waived, and if you think you are able to make an impartial assessment of the work, you should request that the conflict be waived. For example, if you and a submitter were two of 2000 authors of a high energy physics paper but did not actually collaborate. Or if you and a submitter worked together 6 years ago, but due to delays in the publishing industry, a paper from that collaboration with both of you as authors was published 2 year ago. Or if you and a submitter are both employed by the same very large organization but in different units without any knowledge of each other. +If you have a conflict of interest with a submission, you should disclose the specific reason to the submissions' editor (or to an EiC if you are an editor, or to the other EiCs if you are an EiC). This may lead to you not being able to review or edit the submission, but some conflicts may be recorded and then waived, and if you think you are able to make an impartial assessment of the work, you should request that the conflict be waived. For example, if you and a submitter were two of 2000 authors of a high energy physics paper but did not actually collaborate. Or if you and a submitter worked together 6 years ago, but due to delays in the publishing industry, a paper from that collaboration with both of you as authors was published 2 years ago. Or if you and a submitter are both employed by the same very large organization but in different units without any knowledge of each other. Declaring actual, perceived, and potential conflicts of interest is required under professional ethics. If in doubt: ask the editors. From b6f0767a05e5f957875ec08d396c7fc0141964ab Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Thu, 18 Jan 2024 12:08:16 +0000 Subject: [PATCH 38/60] Adding buddy to editor form --- app/controllers/editors_controller.rb | 2 +- app/models/editor.rb | 2 ++ app/views/editors/_form.html.erb | 5 +++++ app/views/editors/show.html.erb | 9 +++++++++ db/migrate/20240109210521_add_start_date_to_editors.rb | 6 ++++++ db/schema.rb | 10 ++++++---- 6 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20240109210521_add_start_date_to_editors.rb diff --git a/app/controllers/editors_controller.rb b/app/controllers/editors_controller.rb index aaf0284eb..14fd3cdc5 100644 --- a/app/controllers/editors_controller.rb +++ b/app/controllers/editors_controller.rb @@ -89,7 +89,7 @@ def set_current_editor end def editor_params - params.require(:editor).permit(:max_assignments, :availability_comment, :kind, :title, :first_name, :last_name, :login, :email, :avatar_url, :category_list, :url, :description, { track_ids: [] }) + params.require(:editor).permit(:max_assignments, :availability_comment, :kind, :title, :first_name, :last_name, :buddy_id, :login, :email, :avatar_url, :category_list, :url, :description, { track_ids: [] }) end def profile_params diff --git a/app/models/editor.rb b/app/models/editor.rb index 7fee4cf1e..fecb988cc 100644 --- a/app/models/editor.rb +++ b/app/models/editor.rb @@ -14,6 +14,8 @@ class Editor < ApplicationRecord has_and_belongs_to_many :tracks has_many :track_aeics, dependent: :destroy has_many :managed_tracks, through: :track_aeics, source: :track + belongs_to :buddy, class_name: "Editor", optional: true + has_one :buddy_editor, class_name: "Editor", foreign_key: "buddy_id" normalizes :login, with: -> login { login.gsub(/^@/, "") } before_save :clear_title, if: :board_removed? diff --git a/app/views/editors/_form.html.erb b/app/views/editors/_form.html.erb index 59cce7c5f..f0e7ed647 100644 --- a/app/views/editors/_form.html.erb +++ b/app/views/editors/_form.html.erb @@ -63,6 +63,11 @@ <% end %> +
+ <%= f.label :buddy %> + <%= f.select :buddy_id, Editor.active.collect { |e| ["#{e.full_name} (@#{e.login})", e.id] }, { include_blank: true }, { class: "form-control" } %> +
+
<%= f.label :email %> <%= f.text_field :email, class: "form-control" %> diff --git a/app/views/editors/show.html.erb b/app/views/editors/show.html.erb index 4d48e014a..1eba0e2ef 100644 --- a/app/views/editors/show.html.erb +++ b/app/views/editors/show.html.erb @@ -32,6 +32,15 @@ <%= @editor.email %>

+

+ Buddy: + <% if @editor.buddy.present? %> + <%= "#{@editor.buddy.full_name} (@#{@editor.buddy.login})" %> + <% else %> + None + <% end %> +

+

Avatar url: <%= @editor.avatar_url %> diff --git a/db/migrate/20240109210521_add_start_date_to_editors.rb b/db/migrate/20240109210521_add_start_date_to_editors.rb new file mode 100644 index 000000000..197d8c93c --- /dev/null +++ b/db/migrate/20240109210521_add_start_date_to_editors.rb @@ -0,0 +1,6 @@ +class AddStartDateToEditors < ActiveRecord::Migration[7.1] + def change + add_column :editors, :buddy_id, :integer + add_index :editors, :buddy_id + end +end diff --git a/db/schema.rb b/db/schema.rb index 2df47d9d8..ed566b3ce 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_06_09_104144) do +ActiveRecord::Schema[7.1].define(version: 2024_01_09_210521) do # These are extensions that must be enabled in order to support this database enable_extension "hstore" enable_extension "plpgsql" @@ -31,6 +31,8 @@ t.integer "user_id" t.string "availability_comment" t.integer "max_assignments", default: 4, null: false + t.integer "buddy_id" + t.index ["buddy_id"], name: "index_editors_on_buddy_id" t.index ["user_id"], name: "index_editors_on_user_id" end @@ -78,7 +80,7 @@ t.index ["token"], name: "index_onboarding_invitations_on_token" end - create_table "papers", force: :cascade do |t| + create_table "papers", id: :serial, force: :cascade do |t| t.string "title" t.string "state" t.string "repository_url" @@ -93,10 +95,10 @@ t.string "doi" t.text "paper_body" t.integer "meta_review_issue_id" - t.string "kind" t.text "authors" t.text "citation_string" t.datetime "accepted_at", precision: nil + t.string "kind" t.integer "editor_id" t.string "reviewers", default: [], array: true t.text "activities" @@ -149,7 +151,7 @@ t.index ["name"], name: "index_tracks_on_name" end - create_table "users", force: :cascade do |t| + create_table "users", id: :serial, force: :cascade do |t| t.string "provider" t.string "uid" t.string "name" From 28b21e0a8d8b723ef803753e5ffc87fe4a98fe9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Fri, 19 Jan 2024 11:26:05 +0100 Subject: [PATCH 39/60] New Rails version (7.1.3) --- Gemfile | 2 +- Gemfile.lock | 120 +++++++++++++++++++++++++-------------------------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/Gemfile b/Gemfile index 858d82b07..bed480c34 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'octokit' gem 'pdf-reader', '~> 2.11.0' gem 'pg', '~> 1.4.6' gem 'pagy' -gem 'rails', '7.1.2' +gem 'rails', '7.1.3' gem "importmap-rails" gem "turbo-rails" gem "stimulus-rails" diff --git a/Gemfile.lock b/Gemfile.lock index b0a0dd22b..57be4ea1e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,35 +4,35 @@ GEM Ascii85 (1.1.0) aasm (5.5.0) concurrent-ruby (~> 1.0) - actioncable (7.1.2) - actionpack (= 7.1.2) - activesupport (= 7.1.2) + actioncable (7.1.3) + actionpack (= 7.1.3) + activesupport (= 7.1.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.2) - actionpack (= 7.1.2) - activejob (= 7.1.2) - activerecord (= 7.1.2) - activestorage (= 7.1.2) - activesupport (= 7.1.2) + actionmailbox (7.1.3) + actionpack (= 7.1.3) + activejob (= 7.1.3) + activerecord (= 7.1.3) + activestorage (= 7.1.3) + activesupport (= 7.1.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.2) - actionpack (= 7.1.2) - actionview (= 7.1.2) - activejob (= 7.1.2) - activesupport (= 7.1.2) + actionmailer (7.1.3) + actionpack (= 7.1.3) + actionview (= 7.1.3) + activejob (= 7.1.3) + activesupport (= 7.1.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.2) - actionview (= 7.1.2) - activesupport (= 7.1.2) + actionpack (7.1.3) + actionview (= 7.1.3) + activesupport (= 7.1.3) nokogiri (>= 1.8.5) racc rack (>= 2.2.4) @@ -40,15 +40,15 @@ GEM rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.2) - actionpack (= 7.1.2) - activerecord (= 7.1.2) - activestorage (= 7.1.2) - activesupport (= 7.1.2) + actiontext (7.1.3) + actionpack (= 7.1.3) + activerecord (= 7.1.3) + activestorage (= 7.1.3) + activesupport (= 7.1.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.2) - activesupport (= 7.1.2) + actionview (7.1.3) + activesupport (= 7.1.3) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -56,22 +56,22 @@ GEM active_link_to (1.0.5) actionpack addressable - activejob (7.1.2) - activesupport (= 7.1.2) + activejob (7.1.3) + activesupport (= 7.1.3) globalid (>= 0.3.6) - activemodel (7.1.2) - activesupport (= 7.1.2) - activerecord (7.1.2) - activemodel (= 7.1.2) - activesupport (= 7.1.2) + activemodel (7.1.3) + activesupport (= 7.1.3) + activerecord (7.1.3) + activemodel (= 7.1.3) + activesupport (= 7.1.3) timeout (>= 0.4.0) - activestorage (7.1.2) - actionpack (= 7.1.2) - activejob (= 7.1.2) - activerecord (= 7.1.2) - activesupport (= 7.1.2) + activestorage (7.1.3) + actionpack (= 7.1.3) + activejob (= 7.1.3) + activerecord (= 7.1.3) + activesupport (= 7.1.3) marcel (~> 1.0) - activesupport (7.1.2) + activesupport (7.1.3) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -85,7 +85,7 @@ GEM public_suffix (>= 2.0.2, < 6.0) afm (0.2.2) base64 (0.2.0) - bigdecimal (3.1.5) + bigdecimal (3.1.6) bindex (0.8.1) bootsnap (1.17.0) msgpack (~> 1.2) @@ -103,7 +103,7 @@ GEM chartkick (5.0.5) coderay (1.1.3) commonmarker (0.23.10) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) connection_pool (2.4.1) crack (0.4.5) rexml @@ -196,10 +196,10 @@ GEM actionpack (>= 6.0.0) activesupport (>= 6.0.0) railties (>= 6.0.0) - io-console (0.7.1) - irb (1.11.0) + io-console (0.7.2) + irb (1.11.1) rdoc - reline (>= 0.3.8) + reline (>= 0.4.2) issue (1.0.0) openssl rack @@ -226,7 +226,7 @@ GEM mini_portile2 (2.8.5) mini_racer (0.8.0) libv8-node (~> 18.16.0.0) - minitest (5.20.0) + minitest (5.21.2) msgpack (1.7.2) multi_json (1.15.0) multi_xml (0.6.0) @@ -315,20 +315,20 @@ GEM rackup (1.0.0) rack (< 3) webrick - rails (7.1.2) - actioncable (= 7.1.2) - actionmailbox (= 7.1.2) - actionmailer (= 7.1.2) - actionpack (= 7.1.2) - actiontext (= 7.1.2) - actionview (= 7.1.2) - activejob (= 7.1.2) - activemodel (= 7.1.2) - activerecord (= 7.1.2) - activestorage (= 7.1.2) - activesupport (= 7.1.2) + rails (7.1.3) + actioncable (= 7.1.3) + actionmailbox (= 7.1.3) + actionmailer (= 7.1.3) + actionpack (= 7.1.3) + actiontext (= 7.1.3) + actionview (= 7.1.3) + activejob (= 7.1.3) + activemodel (= 7.1.3) + activerecord (= 7.1.3) + activestorage (= 7.1.3) + activesupport (= 7.1.3) bundler (>= 1.15.0) - railties (= 7.1.2) + railties (= 7.1.3) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -336,9 +336,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.2) - actionpack (= 7.1.2) - activesupport (= 7.1.2) + railties (7.1.3) + actionpack (= 7.1.3) + activesupport (= 7.1.3) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -494,7 +494,7 @@ DEPENDENCIES pg (~> 1.4.6) pry-byebug puma - rails (= 7.1.2) + rails (= 7.1.3) redis (~> 5.0) responders rspec-rails (~> 6.1.0) From 01980178edbbf27a4aac1ea7bcb2fe310303cb98 Mon Sep 17 00:00:00 2001 From: Julia <23313172+jromanowska@users.noreply.github.com> Date: Fri, 19 Jan 2024 13:33:15 +0100 Subject: [PATCH 40/60] Update editing.md Remove tip to set status to "not-watching" - this has now been changed in GitHub and by default is "participating or mentions". --- docs/editing.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/editing.md b/docs/editing.md index c1adcc166..f1aef92de 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -374,16 +374,6 @@ Being on the JOSS editorial team means that there can be a _lot_ of notification ### Things you should do when joining the editorial team -**Unsubscribe from the reviews repository on GitHub** - -When you're added to the editorial team on GitHub, you will almost certainly find yourself subscribed (watching) to the [`joss-reviews`](https://github.com/openjournals/joss-reviews) repository. The first thing you should do is set yourself to 'not watching': - -![Repository notifications settings](https://cloud.githubusercontent.com/assets/4483/20250593/64d7ce48-a9de-11e6-9225-d3dfb3e48e68.png) - -Please note, that by not watching the reviews repository, you will still receive notifications for issues (reviews) where you are `@mentioned`. - -Sometimes another editor might mention you in a review issue (for example to ask you a question). If you've responded and no-longer want to receive messages for that review, you can manually unsubscribe by clicking the button in the right-hand column on the review issue page. - **Curate your GitHub notifications experience** GitHub has extensive documentation on [managing notifications](https://help.github.com/en/articles/managing-your-notifications) which explains when and why different notifications are sent from a repository. From b69b5742663b9e515cfe1ace452307b10a0b82d4 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 20 Jan 2024 08:10:48 +0000 Subject: [PATCH 41/60] Add start date to profile --- app/views/editors/index.html.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/editors/index.html.erb b/app/views/editors/index.html.erb index a4459f6c8..7e26bbcbc 100644 --- a/app/views/editors/index.html.erb +++ b/app/views/editors/index.html.erb @@ -21,6 +21,7 @@ Editor Categories + Start date Editing Capacity Invites @@ -36,6 +37,7 @@ <%= link_to editor.login, editor, title: editor.full_name %> <%= editor.category_list %> + <%= editor.created_at.strftime('%Y-%m-%d') %> <%= link_to in_progress_for_editor(editor), "/dashboard/#{editor.login}" %> <%= display_availability(editor) %> class="text-center" title="Invites"><%= open_invites_for_editor(editor) %> From baf733ee800d465beef477cb0e9777d89b956dad Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 20 Jan 2024 12:07:27 +0000 Subject: [PATCH 42/60] Sort buddies --- app/views/editors/_form.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/editors/_form.html.erb b/app/views/editors/_form.html.erb index f0e7ed647..7474c9689 100644 --- a/app/views/editors/_form.html.erb +++ b/app/views/editors/_form.html.erb @@ -65,7 +65,7 @@

<%= f.label :buddy %> - <%= f.select :buddy_id, Editor.active.collect { |e| ["#{e.full_name} (@#{e.login})", e.id] }, { include_blank: true }, { class: "form-control" } %> + <%= f.select :buddy_id, Editor.active.sort_by(&:first_name).collect { |e| ["#{e.full_name} (@#{e.login})", e.id] }, { include_blank: true }, { class: "form-control" } %>
From 9017bab050a67c4ec24af7e1d8357e0dd7a95fd6 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 09:13:01 +0000 Subject: [PATCH 43/60] Stubbing out onboarding guide --- docs/editing.md | 87 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/docs/editing.md b/docs/editing.md index f1aef92de..c86c9445b 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -437,3 +437,90 @@ Try to check in on your JOSS submissions twice per week, even if only for 5 minu **Leave feedback on reviewers** Leave feedback on the [reviewers application](https://reviewers.joss.theoj.org/) at the end of the review. This helps future editors when they're seeking out good reviewer candidates. + +## Onboarding a new JOSS editor + +All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can use the structure below to make sure you highlight the most important aspects of being an editor. + +**Thing to check before the call** + +- Have they reviewed or published in JOSS before? If not, you'll need to spend significantly more time explaining how the review process works. +- Check on their research background (e.g., what tracks they might edit most actively in). +- Make sure to send them the [editorial guide](https://joss.readthedocs.io/en/latest/editing.html) to read before the call. + +### The onboarding call + +**Preamble/introductions** + +- Welcome! Thank them for their application to join the team. +- Point out that this isn't an interview. Rather, this is an informational call designed to give the candidate the information they need to make an informed decision about editing at JOSS. +- 90-day trial period/try out. Editor or JOSS editorial board can decide to part ways after that period. +- No strict term limits. Some editors have been with us for 7+ years, others do 1-2 years. Most important thing is to be proactive with your editing responsibilities. +- Confirm with them their level of familiarity with JOSS/our review process. +- Point out that they *do not* need to make a decision on the call today. They are welcome to have a think about joining and get back to us. + +**Share your screen** + +- Visit JOSS (https://joss.theoj.org) +- Pick a recently-published paper (you might want to identify this before the call). +- Show the paper on the JOSS site, and then go to the linked review issue. +- Explain that there are *two* issues per submission – the pre-review issue and the main review issue. + +**The pre-review issue** + +- The 'meeting room for the paper'. Where author meets editor, and reviewers are identified. +- Note that the EiC may have initiated a scope review. The editor should not start editing until this has completed. Also, editors are able to query the scope (as are reviewers) if they think the EiC should have (but didn't). +- Walk them through what is happening in the pre-review issue... +- Editor is invited (likely with GitHub mention but also via email invite (`@editorialbot invite @editor as editor`)) +- Once editor accepts they start looking for reviewers. + +**Finding reviewers** + +- Explain that this is one of the more time-intensive aspects of editing. +- Explain where you can look for editors (your own professional network, asking the authors for recommendations, the [reviewers application](https://reviewers.joss.theoj.org/), similar papers identified by Editorialbot, ) +- Point out that we have a minimum of two reviewers, but if more than that accept (e.g., 3/4 then take them all – this gives you redundancy if one drops out). +- Don't invite one reviewer at a time! If you do this, it may take many weeks to find two reviewers who accept. Try 3/4/5 invites simultaneously. + +**The review** + +- Once both reviewers are assigned, time to get going! +- Encourage reviewers to complete their review in 4-6 weeks. +- Make sure to check in on the review – if reviewers haven't started after ~1-2 weeks, time to remind them. +- Your role as editor is not to do the review yourself, rather, your job is to ensure that both reviewers give a good review. +- Walk the editor through the various review artifacts: The checklist, comments/questions/discussion between reviewers and author, issues opened on the upstream repository (and cross-linked into the review thread). +- Point editors to the ['top tips'](editing.html#top-tips-for-joss-editors) section of our docs. Much of what makes an editor successful is regular check-ins on the review, and nudging people if nothing is happening. +- Do *not* let a review go multiple weeks without checking in. + +**Wrapping up the review** + +- Once the review is wrapping up, show the candidate the checks that an editor should be doing (reading the paper, suggested edits, asking for an archive etc.). +- Show the `recommend-accept` step which is the formal hand-off between editor and editor-in-chief. + +**Show them the dashboard on the JOSS site** + +- Point out that this means you *do not* need to stay on top of all of your notifications (the dashboard has the latest information). +- Highlight here that we ask editors to handle 8-12 submissions per year on average. +- ...and that means 3-4 submissions on their desk at any one time (once they have completed their initial probationary period). +- Show them the backlog for a track, and how they are welcome to pick papers from it (ideally oldest first). +- Show them their profile page, and how they can list their tracks there, and also what their availability is. + +**Other important things to highlight** + +- Don't invite other editors as reviewers. We're all busy editing our own papers... +- Please be willing to edit outside of your specialisms. This helps JOSS run smoothly – often we don't have the 'ideal' editor for a submission and someone has to take it. +- Highlight that editors will have a buddy to work with for the first few months, and that it's very common for editors to ask questions in Slack (and people generally respond quickly). +- Scope reviews only work if editors vote! Please respond and vote on the weekly scope review email if you can. The process is private (authors don't know what editors are saying). Detailed comments are really helpful for the EiCs. + +**Wrapping up** + +- Make sure you've highlighted everything in the ['top tips'](editing.html#top-tips-for-joss-editors) section of our docs. +- Reinforce that this is a commitment, and thay regular attention to their submissions is absolutely critical (i.e., check in a couple of times per week). +- Ask if they would like to move forward or would like time to consider the opportunity. +- If they want to move forward, highlight they will receive a small number of invites: One to the JOSS editors GitHub team, a Slack invite, a Google Group invite, and an invite to the JOSS website to fill out their profile. +- Thank them again, and welcome them to the team. + +**Communicate outcome to EiC** + +- Let the EiC know what the outcome was, and ask them to send out the invites to our various systems. +- Work with EiC to identify onboarding buddy. +- Decide who is going to identify the first couple of papers for the editor to work on. \ No newline at end of file From fb5c9c12db6427106b1f01d2fb4bc36f87bf55c8 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 09:17:32 +0000 Subject: [PATCH 44/60] Picking a paper --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index c86c9445b..b49f23ce8 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -462,7 +462,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can **Share your screen** - Visit JOSS (https://joss.theoj.org) -- Pick a recently-published paper (you might want to identify this before the call). +- Pick a recently-published paper (you might want to identify this before the call one that shows off the review process well). - Show the paper on the JOSS site, and then go to the linked review issue. - Explain that there are *two* issues per submission – the pre-review issue and the main review issue. From 9ecd3415553974d259d84ab0570ebdec24f38be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Wed, 24 Jan 2024 12:47:46 +0100 Subject: [PATCH 45/60] Update link --- docs/installing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/installing.md b/docs/installing.md index 58622a843..482976793 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -111,7 +111,7 @@ see [the official docs](https://devcenter.heroku.com/articles/heroku-postgresql# Some times you may not want to launch an exact copy of JOSS, but a modified version. This can be especially useful if you're planning to spin up your own platform based on the Open Journals framework. -[NeuroLibre](https://neurolibre.herokuapp.com) is one such example use-case. +[NeuroLibre](https://neurolibre.org/) is one such example use-case. ### Modifying your site configuration From 6dbc7e94d6f94108bee11b082364b0690a468a3f Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 14:26:34 +0000 Subject: [PATCH 46/60] Update docs/editing.md Co-authored-by: Daniel S. Katz --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index b49f23ce8..fa735b004 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -455,7 +455,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Welcome! Thank them for their application to join the team. - Point out that this isn't an interview. Rather, this is an informational call designed to give the candidate the information they need to make an informed decision about editing at JOSS. - 90-day trial period/try out. Editor or JOSS editorial board can decide to part ways after that period. -- No strict term limits. Some editors have been with us for 7+ years, others do 1-2 years. Most important thing is to be proactive with your editing responsibilities. +- No strict term limits. Some editors have been with us for 7+ years, others do 1-2 years. Most important thing is to be proactive with your editing responsibilities and communicating any issues with the EiCs. - Confirm with them their level of familiarity with JOSS/our review process. - Point out that they *do not* need to make a decision on the call today. They are welcome to have a think about joining and get back to us. From 06ec0d06fa858d8a18251905c18cee3f57d7b04d Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 14:26:46 +0000 Subject: [PATCH 47/60] Update docs/editing.md Co-authored-by: Daniel S. Katz --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index fa735b004..cbcac0853 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -479,7 +479,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Explain that this is one of the more time-intensive aspects of editing. - Explain where you can look for editors (your own professional network, asking the authors for recommendations, the [reviewers application](https://reviewers.joss.theoj.org/), similar papers identified by Editorialbot, ) - Point out that we have a minimum of two reviewers, but if more than that accept (e.g., 3/4 then take them all – this gives you redundancy if one drops out). -- Don't invite one reviewer at a time! If you do this, it may take many weeks to find two reviewers who accept. Try 3/4/5 invites simultaneously. +- Don't invite only one reviewer at a time! If you do this, it may take many weeks to find two reviewers who accept. Try 3/4/5 invites simultaneously. **The review** From e522b7c5c3a0c3d07442bc6c977ed03dcf3736c2 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 14:26:53 +0000 Subject: [PATCH 48/60] Update docs/editing.md Co-authored-by: Daniel S. Katz --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index cbcac0853..63b847101 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -483,7 +483,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can **The review** -- Once both reviewers are assigned, time to get going! +- Once at least two reviewers are assigned, time to get going! - Encourage reviewers to complete their review in 4-6 weeks. - Make sure to check in on the review – if reviewers haven't started after ~1-2 weeks, time to remind them. - Your role as editor is not to do the review yourself, rather, your job is to ensure that both reviewers give a good review. From 7390856cadcfadcf46e3a4238e32c6bf8ecefd0a Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 14:27:04 +0000 Subject: [PATCH 49/60] Update docs/editing.md Co-authored-by: Daniel S. Katz --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index 63b847101..e5472ff48 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -486,7 +486,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Once at least two reviewers are assigned, time to get going! - Encourage reviewers to complete their review in 4-6 weeks. - Make sure to check in on the review – if reviewers haven't started after ~1-2 weeks, time to remind them. -- Your role as editor is not to do the review yourself, rather, your job is to ensure that both reviewers give a good review. +- Your role as editor is not to do the review yourself, rather, your job is to ensure that both reviewers give a good review and to facilitate discussion and consensus on what the author needs to do. - Walk the editor through the various review artifacts: The checklist, comments/questions/discussion between reviewers and author, issues opened on the upstream repository (and cross-linked into the review thread). - Point editors to the ['top tips'](editing.html#top-tips-for-joss-editors) section of our docs. Much of what makes an editor successful is regular check-ins on the review, and nudging people if nothing is happening. - Do *not* let a review go multiple weeks without checking in. From e4f8f3c089cfe0710fc692d032b4b24e60460313 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Wed, 24 Jan 2024 14:27:17 +0000 Subject: [PATCH 50/60] Update docs/editing.md Co-authored-by: Daniel S. Katz --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index e5472ff48..884890e6a 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -493,7 +493,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can **Wrapping up the review** -- Once the review is wrapping up, show the candidate the checks that an editor should be doing (reading the paper, suggested edits, asking for an archive etc.). +- Once the review is wrapping up, show the candidate the checks that an editor should be doing (reading the paper, suggested edits, asking for an archive etc.) - Show the `recommend-accept` step which is the formal hand-off between editor and editor-in-chief. **Show them the dashboard on the JOSS site** From d3c8cd36ba1776224bc158e87b3df71eeca79968 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 29 Jan 2024 09:59:02 +0000 Subject: [PATCH 51/60] Adding explicit note about editorial load. --- docs/editing.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index 884890e6a..da106258c 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -329,6 +329,10 @@ This doesn’t mean that you’re the editor, just that you’ve been suggested ## Expectations on JOSS editors +### Editorial load + +Our goal is for editors to handle between 3-4 submissions at any one time, and 8-12 submissions per year. During the trial period for editors (usually the first 90 days), we recommend new editors handle 1-2 submissions as they learn the JOSS editorial system and processes. + ### Responding to editorial assignments As documented above, usually, papers will be assigned to you by one of the TEiCs. We ask that editors do their best to respond in a timely fashion (~ 3 working days) to invites to edit a new submission. @@ -523,4 +527,4 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Let the EiC know what the outcome was, and ask them to send out the invites to our various systems. - Work with EiC to identify onboarding buddy. -- Decide who is going to identify the first couple of papers for the editor to work on. \ No newline at end of file +- Decide who is going to identify the first couple of papers for the editor to work on. From 59420d175decb278bcc3793db9b5f731114d789b Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 29 Jan 2024 10:03:14 +0000 Subject: [PATCH 52/60] Sample messages. --- docs/editing.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/editing.md b/docs/editing.md index da106258c..efa6654f7 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -484,6 +484,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Explain where you can look for editors (your own professional network, asking the authors for recommendations, the [reviewers application](https://reviewers.joss.theoj.org/), similar papers identified by Editorialbot, ) - Point out that we have a minimum of two reviewers, but if more than that accept (e.g., 3/4 then take them all – this gives you redundancy if one drops out). - Don't invite only one reviewer at a time! If you do this, it may take many weeks to find two reviewers who accept. Try 3/4/5 invites simultaneously. +- The [sample messages](editing.html#sample-messages-for-authors-and-reviewers) section of the documentation has some example language you can use. **The review** @@ -499,6 +500,8 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Once the review is wrapping up, show the candidate the checks that an editor should be doing (reading the paper, suggested edits, asking for an archive etc.) - Show the `recommend-accept` step which is the formal hand-off between editor and editor-in-chief. +- The [sample messages](editing.html#sample-messages-for-authors-and-reviewers) section of the documentation has a checklist for the last steps of the review (for both authors and editors). + **Show them the dashboard on the JOSS site** From a698f189e2df4b2b2e937c91937499f6612204ed Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Mon, 29 Jan 2024 10:14:19 +0000 Subject: [PATCH 53/60] Completing the trial. --- docs/editing.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/editing.md b/docs/editing.md index efa6654f7..e8a8f50ba 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -333,6 +333,16 @@ This doesn’t mean that you’re the editor, just that you’ve been suggested Our goal is for editors to handle between 3-4 submissions at any one time, and 8-12 submissions per year. During the trial period for editors (usually the first 90 days), we recommend new editors handle 1-2 submissions as they learn the JOSS editorial system and processes. +### Completing the trial period + +JOSS has a 90-day trial period for new editors. At the end of the trial, the editor or JOSS editorial board can decide to part ways if either party determines editing for JOSS isn't a good fit for the editor. The most important traits the editorial board will be looking for with new editors are: + +- Demonstrating professionalism in communications with authors, reviewers, and the wider editorial team. +- Editorial responsibility, including [keeping up with their assigned submissions](editing.html#continued-attention-to-assigned-submissions). +- Encouraging good social (software community) practices. For example, thanking reviewers and making them feel like they are part of a team working together. + +If you're struggling with your editorial work, please let your buddy or an EiC know. + ### Responding to editorial assignments As documented above, usually, papers will be assigned to you by one of the TEiCs. We ask that editors do their best to respond in a timely fashion (~ 3 working days) to invites to edit a new submission. From c0fbf230f2983734ef5427253ed99b44c4648c53 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 30 Jan 2024 09:20:11 +0000 Subject: [PATCH 54/60] Checklist update --- docs/editing.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/editing.md b/docs/editing.md index e8a8f50ba..4889e7327 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -251,16 +251,18 @@ Please feel free to ping me (@editorname) if you have any questions/concerns. ``` At this point could you: -- [ ] Make a tagged release of your software, and list the version tag of the archived version here. -- [ ] Archive the reviewed software in Zenodo or a similar service (e.g., figshare, an institutional repository) -- [ ] Check the archival deposit (e.g., in Zenodo) has the correct metadata. This includes the title (should match the paper title) and author list (make sure the list is correct and people who only made a small fix are not on it). You may also add the authors' ORCID. -- [ ] Please list the DOI of the archived version here. +- Make a tagged release of your software, and list the version tag of the archived version here. +- Archive the reviewed software in Zenodo or a similar service (e.g., figshare, an institutional repository) +- Check the archival deposit (e.g., in Zenodo) has the correct metadata. This includes the title (should match the paper title) and author list (make sure the list is correct and people who only made a small fix are not on it). You may also add the authors' ORCID. +- Please list the DOI of the archived version here. I can then move forward with recommending acceptance of the submission. ``` ### Rejection due to out of scope/failing substantial scholarly effort test +(Note that rejections are handled by EiCs and not individual editors). + ``` @authorname - thanks for your submission to JOSS. Unfortunately, after review by the JOSS editorial team we've determined that this submission doesn't meet our [substantial scholarly effort](https://joss.readthedocs.io/en/latest/submitting.html#substantial-scholarly-effort) criterion. From 89f3a9c97cc34ad7f27942f0726e445f0be6d078 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Tue, 30 Jan 2024 09:21:56 +0000 Subject: [PATCH 55/60] Update editing.md --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index 4889e7327..5521ccd4f 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -464,7 +464,7 @@ All new editors at JOSS have an onboarding call with an Editor-in-Chief. You can - Check on their research background (e.g., what tracks they might edit most actively in). - Make sure to send them the [editorial guide](https://joss.readthedocs.io/en/latest/editing.html) to read before the call. -### The onboarding call +### The onboarding call **Preamble/introductions** From c80f7285f4ea18115e22aef557e120cce4df17d5 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sat, 3 Feb 2024 07:40:24 +0000 Subject: [PATCH 56/60] Updating dashboard --- app/helpers/editors_helper.rb | 7 +++++ app/views/editors/index.html.erb | 46 +++++--------------------------- 2 files changed, 13 insertions(+), 40 deletions(-) diff --git a/app/helpers/editors_helper.rb b/app/helpers/editors_helper.rb index e328315e8..ffbcadb37 100644 --- a/app/helpers/editors_helper.rb +++ b/app/helpers/editors_helper.rb @@ -26,6 +26,13 @@ def display_availability(editor) "#{display_count}".html_safe end + def availability_remaining(editor) + active_assignments = @assignment_by_editor[editor.id].to_i - @paused_by_editor[editor.id].to_i + availability = editor.max_assignments - active_assignments + + return "#{availability}" + end + def in_progress_for_editor(editor) paused_count = @paused_by_editor[editor.id].to_i total_paper_count = @assignment_by_editor[editor.id].to_i diff --git a/app/views/editors/index.html.erb b/app/views/editors/index.html.erb index 7e26bbcbc..411f44c69 100644 --- a/app/views/editors/index.html.erb +++ b/app/views/editors/index.html.erb @@ -14,13 +14,12 @@ <%= render partial: "aeic_dashboard/menu" %>
- <%= link_to 'New Editor', new_editor_path, class: 'btn action-btn float-right' %> - - - + + + @@ -32,14 +31,15 @@ <%- @active_editors.each do |editor| %> + - + @@ -55,38 +55,4 @@

-
-
-
-
- <%= image_tag "icon_papers.svg", height: "32px" %>

Editors Emeritus

-
-
-
- -
EditorCategoriesNameHandleCategories Start date Editing Capacity
<%= link_to editor.full_name, editor %> > - <%= link_to(image_tag(avatar(editor.login), size: "24x24", class: "avatar", title: editor.full_name), github_user_link(editor.login), target: "_blank") %> + <%= link_to(image_tag(avatar(editor.login), size: "32x32", class: "avatar", title: editor.full_name), github_user_link(editor.login), target: "_blank") %> <%= link_to editor.login, editor, title: editor.full_name %> <%= editor.category_list %> <%= editor.created_at.strftime('%Y-%m-%d') %> <%= link_to in_progress_for_editor(editor), "/dashboard/#{editor.login}" %><%= display_availability(editor) %> class="text-center" title="Limit: <%= editor.max_assignments %>"><%= display_availability(editor) %> class="text-center" title="Invites"><%= open_invites_for_editor(editor) %> <%= link_to 'Edit', edit_editor_path(editor), title: 'Edit' %>
- - - - - - - - - - - - <%- @emeritus_editors.each do |editor| %> - - - - - - - - <%- end %> - -
NameLoginCategoriesDescription
<%= link_to editor.full_name, editor %>> - <%= link_to image_tag(avatar(editor.login), size: "24x24", class: "avatar", title: github_user_link(editor.login)), github_user_link(editor.login), target: "_blank" %> - <%= link_to editor.login, "/dashboard/#{editor.login}" %><%= editor.category_list %><%= editor.description.html_safe %><%= link_to 'Edit', edit_editor_path(editor), title: 'Edit' %>
From a7e1cffd474967838f47beacbbdd94dedf1054ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Sun, 4 Feb 2024 12:32:09 +0100 Subject: [PATCH 57/60] Add spec --- spec/models/editor_spec.rb | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/spec/models/editor_spec.rb b/spec/models/editor_spec.rb index d7d01b5cc..5db4b5472 100644 --- a/spec/models/editor_spec.rb +++ b/spec/models/editor_spec.rb @@ -135,17 +135,35 @@ end describe "#by_track" do - it "should filter by track" do - track_A, track_B = create_list(:track, 2) - editor_A = create(:editor, tracks: [track_A]) - editor_AB = create(:editor, tracks: [track_A, track_B]) - editor_B = create(:editor, tracks: [track_B]) - - track_A_editors = Editor.by_track(track_A.id) - expect(track_A_editors.size).to eq(2) - expect(track_A_editors.include?(editor_A)).to be true - expect(track_A_editors.include?(editor_AB)).to be true + it "should filter by track" do + track_A, track_B = create_list(:track, 2) + editor_A = create(:editor, tracks: [track_A]) + editor_AB = create(:editor, tracks: [track_A, track_B]) + editor_B = create(:editor, tracks: [track_B]) + + track_A_editors = Editor.by_track(track_A.id) + expect(track_A_editors.size).to eq(2) + expect(track_A_editors.include?(editor_A)).to be true + expect(track_A_editors.include?(editor_AB)).to be true + end end + + describe "#status" do + it "should be Retired for emeritus editors" do + emeritus_editor = create(:editor, kind: "emeritus") + + expect(emeritus_editor.status).to eq "Retired" + end + + it "should be Active otherwise" do + board_editor = create(:editor, kind: "board") + topic_editor = create(:editor, kind: "topic") + pending_editor = create(:editor, kind: "pending") + + expect(board_editor.status).to eq "Active" + expect(topic_editor.status).to eq "Active" + expect(pending_editor.status).to eq "Active" + end end describe "#accept!" do From d9629f3c6cf8447e0e34fcb35fec0f6d5ac7ea00 Mon Sep 17 00:00:00 2001 From: Arfon Smith Date: Sun, 4 Feb 2024 21:48:37 +0000 Subject: [PATCH 58/60] Editor dashboard tweaks --- app/helpers/editors_helper.rb | 10 ++++++++-- app/views/editors/index.html.erb | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/helpers/editors_helper.rb b/app/helpers/editors_helper.rb index ffbcadb37..37c6ee016 100644 --- a/app/helpers/editors_helper.rb +++ b/app/helpers/editors_helper.rb @@ -16,12 +16,13 @@ def display_availability(editor) comment = "#{editor.max_assignments} max." - display_count = editor.max_assignments + display_count = "#{active_assignments} / #{editor.max_assignments}" if editor.availability_comment.present? - display_count = "#{display_count}*" + display_count = "#{active_assignments} / #{editor.max_assignments}*" comment += " : #{editor.availability_comment}" end + "#{display_count}".html_safe end @@ -33,6 +34,11 @@ def availability_remaining(editor) return "#{availability}" end + def active_assignments_for_editor(editor) + active_assignments = @assignment_by_editor[editor.id].to_i - @paused_by_editor[editor.id].to_i + return "#{active_assignments}" + end + def in_progress_for_editor(editor) paused_count = @paused_by_editor[editor.id].to_i total_paper_count = @assignment_by_editor[editor.id].to_i diff --git a/app/views/editors/index.html.erb b/app/views/editors/index.html.erb index 411f44c69..129ef296a 100644 --- a/app/views/editors/index.html.erb +++ b/app/views/editors/index.html.erb @@ -22,7 +22,7 @@ Categories Start date Editing - Capacity + Space Invites @@ -38,8 +38,8 @@ <%= editor.category_list %> <%= editor.created_at.strftime('%Y-%m-%d') %> - <%= link_to in_progress_for_editor(editor), "/dashboard/#{editor.login}" %> - class="text-center" title="Limit: <%= editor.max_assignments %>"><%= display_availability(editor) %> + class="text-center" title="Limit: <%= editor.max_assignments %>"><%= link_to display_availability(editor), "/dashboard/#{editor.login}" %> + class="text-center" title="Limit: <%= editor.max_assignments %>"><%= availability_remaining(editor) %> class="text-center" title="Invites"><%= open_invites_for_editor(editor) %> <%= link_to 'Edit', edit_editor_path(editor), title: 'Edit' %> From a8a83690d986e475ae458a06e365fc9fb40d170a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Tue, 6 Feb 2024 19:49:41 +0100 Subject: [PATCH 59/60] Sec update --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 57be4ea1e..959569dd9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -247,12 +247,12 @@ GEM newrelic_rpm (9.6.0) base64 nio4r (2.7.0) - nokogiri (1.16.0) + nokogiri (1.16.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.16.0-x86_64-darwin) + nokogiri (1.16.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.16.0-x86_64-linux) + nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) oauth2 (2.0.9) faraday (>= 0.17.3, < 3.0) From 801625d1773f62d5abec1b23ba12f9ea1ae0e65f Mon Sep 17 00:00:00 2001 From: Adam Tyson Date: Thu, 8 Feb 2024 10:56:43 +0000 Subject: [PATCH 60/60] Fix typo in editing.md (#1312) --- docs/editing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/editing.md b/docs/editing.md index 5521ccd4f..1cea4278f 100644 --- a/docs/editing.md +++ b/docs/editing.md @@ -302,7 +302,7 @@ This doesn’t mean that you’re the editor, just that you’ve been suggested **Step 7: Editor tells EditorialBot to assign the reviewers to the paper** - Use `@editorialbot add @reviewer as reviewer` -- To add a second reviewer use `@editorialbot add @reviwer2 as reviewer` +- To add a second reviewer use `@editorialbot add @reviewer2 as reviewer` **Step 8: Create the actual review issue**