Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c18c0e3
Update rails and dependency gems
kaysiz Mar 13, 2026
02e2515
replace raven gem with sentry gem
kaysiz Mar 13, 2026
6bc9799
remove nilify_blanks gem, strip_attributes does that already.
kaysiz Mar 13, 2026
3300527
remove unused code - application_helper and gems
kaysiz Mar 13, 2026
6c6f30a
upgrade gems and remove rack cors
kaysiz Mar 16, 2026
73902d5
remove unused gems and upgrade gems
kaysiz Mar 16, 2026
c5892b9
remove coffee rails
kaysiz Mar 16, 2026
41cac1d
remove git dependency
kaysiz Mar 16, 2026
8d9787b
remove unused gems and upgrade gems
kaysiz Mar 17, 2026
0a0bfbd
ran app update
kaysiz Mar 18, 2026
bed52ee
update ruby version
kaysiz Mar 18, 2026
aa87fc8
fix ci ruby version
kaysiz Mar 18, 2026
c44418c
fix rubocop issues
kaysiz Mar 18, 2026
33d53a4
fix failing tests caused by elastic search
kaysiz Mar 19, 2026
83a40f0
fix failing tests
kaysiz Mar 20, 2026
016adbc
Merge branch 'master' of github.com:datacite/volpino into ks-rails-8-…
kaysiz Mar 24, 2026
90dfdfd
fix failing job
kaysiz Mar 24, 2026
880b1db
remove unused gem
kaysiz Mar 30, 2026
5938bfb
set default for 8.1 and delete old files
kaysiz Mar 30, 2026
4e675e5
fix security vulnerability with eval
kaysiz Mar 31, 2026
4a393ff
add security checks in CI
kaysiz Mar 31, 2026
51cdc50
Merge branch 'master' into ks-rails-8-upgrade
kaysiz Apr 13, 2026
40fdbfa
Add release tag
kaysiz Apr 15, 2026
04865b1
:xMerge branch 'ks-rails-8-upgrade' of github.com:datacite/volpino in…
kaysiz Apr 15, 2026
2749323
fix lint issue
kaysiz Apr 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2.10
ruby-version: 4.0.1
- uses: actions/cache@v4
with:
path: vendor/bundle
Expand All @@ -77,7 +77,13 @@ jobs:
bundle install --jobs 4 --retry 3
# sudo /etc/init.d/mysql start
bundle exec rails db:setup RAILS_ENV=test
- name: Lint and Test
- name: Lint with Rubocop
run: bundle exec rubocop
- name: Security Analysis with Brakeman
run: bundle exec brakeman --no-pager
- name: Dependency Security Audit
run: bundle exec bundler-audit check --update
- name: Run Tests
env:
MYSQL_PORT: ${{ job.services.mysql.ports[3306] }}
ES_HOST: localhost:${{ job.services.elasticsearch.ports[9200] }}
Expand All @@ -88,7 +94,4 @@ jobs:
ORCID_AUTO_UPDATE_CLIENT_ID: ${{ secrets.ORCID_CLIENT_ID_FOR_TESTING }}
ORCID_SEARCH_AND_LINK_CLIENT_ID: ${{ secrets.ORCID_CLIENT_ID_FOR_TESTING }}
ORCID_TOKEN: ${{ secrets.ORCID_TOKEN_FOR_TESTING }}
run: |
bundle exec rubocop
bundle exec rspec
echo $?
run: bundle exec rspec
2 changes: 2 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
file: ./Dockerfile
push: true
tags: ${{ github.repository }}:latest
build-args: GIT_TAG=latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Push to GitHub Packages
Expand All @@ -49,6 +50,7 @@ jobs:
file: ./Dockerfile
push: true
tags: ghcr.io/${{ github.repository }}:latest
build-args: GIT_TAG=latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
file: ./Dockerfile
push: true
tags: ${{ github.repository }}:${{ steps.set_git_vars.outputs.GIT_TAG }}
build-args: GIT_TAG=${{ steps.set_git_vars.outputs.GIT_TAG }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Push to GitHub Packages
Expand All @@ -52,6 +53,7 @@ jobs:
file: ./Dockerfile
push: true
tags: ghcr.io/${{ github.repository }}:${{ steps.set_git_vars.outputs.GIT_TAG }}
build-args: GIT_TAG=${{ steps.set_git_vars.outputs.GIT_TAG }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

Expand Down
4 changes: 2 additions & 2 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
require:
plugins:
- rubocop-packaging
- rubocop-performance
- rubocop-rails
- rubocop-rspec

AllCops:
TargetRubyVersion: 3.1
TargetRubyVersion: 4.0
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
# to ignore them, so only the ones explicitly set in this file are enabled.
DisabledByDefault: true
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.2.10
ruby-4.0.1
9 changes: 6 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM phusion/passenger-full:3.1.6
FROM phusion/passenger-ruby40:3.1.6
LABEL maintainer="support@datacite.org"

# Set correct environment variables
Expand All @@ -10,8 +10,8 @@ RUN usermod -a -G docker_env app
# Use baseimage-docker's init process
CMD ["/sbin/my_init"]

# Use Ruby 3.2.10
RUN bash -lc 'rvm --default use ruby-3.2.10'
# set ddefault Ruby version
RUN bash -lc 'rvm --default use ruby-4.0.1'

# Set debconf to run non-interactively
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
Expand Down Expand Up @@ -74,5 +74,8 @@ COPY vendor/docker/70_precompile.sh /etc/my_init.d/70_precompile.sh
# COPY vendor/docker/90_migrate.sh /etc/my_init.d/90_migrate.sh
# COPY vendor/docker/100_flush_cache.sh /etc/my_init.d/100_flush_cache.sh

ARG GIT_TAG=1.0
ENV GIT_TAG=${GIT_TAG}

# Expose web
EXPOSE 80
166 changes: 72 additions & 94 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,122 +1,100 @@
source "https://rubygems.org"

gem "bootsnap", "~> 1.4", ">= 1.4.4", require: false
gem "msgpack", "~> 1.4.4"
gem "mysql2", "~> 0.5.0"
gem "rails", "~> 7.2", ">= 7.2.3"
gem "bootsnap", "~> 1.23", require: false
gem "msgpack", "~> 1.8"
gem "mysql2", "~> 0.5.7"
gem "rails", "~> 8.1", ">= 8.1.2.1"

gem "aasm", "~> 5.0", ">= 5.0.6"
gem "active_model_serializers", "~> 0.10.10"
gem "addressable", "~> 2.7"
gem "aws-sdk-s3", require: false
gem "aws-sdk-sqs", "~> 1.23", ">= 1.23.1"
gem "base32-crockford-checksum", "~> 0.2.3"
gem "config", "~> 5.4"
gem "connection_pool", "< 3.0"
gem "dotenv", "~> 2.7", ">= 2.7.5"
gem "aasm", "~> 5.5", ">= 5.5.2"
gem "active_model_serializers", "~> 0.10.16"
gem "addressable", "~> 2.8", ">= 2.8.9"
gem "aws-sdk-s3", "~> 1.215", require: false
gem "aws-sdk-sqs", "~> 1.111"
gem "config", "~> 5.6", ">= 5.6.1"
gem "connection_pool", "~> 3.0", ">= 3.0.2"
gem "dotenv", "~> 3.2"
# IMPORTANT!!!
# We have monkey patched this gem -> config/initializers/serialization_core.rb
# Please check this before upgrading/downgrading versions
gem "jsonapi-serializer", "~> 2.2"
gem "flipper", "~> 1.3"
gem "flipper-active_support_cache_store"
gem "flipper-api"
gem "flipper-redis"
gem "flipper-ui"
gem "nilify_blanks", "~> 1.3"
gem "oj", ">= 2.8.3"
gem "oj_mimic_json", "~> 1.0", ">= 1.0.1"
gem "orcid_client", "~> 0.17.1"
gem "postrank-uri", "~> 1.1"
gem "rake", "~> 12.0"
gem "sentry-raven", "~> 3.1", ">= 3.1.2"
gem "shoryuken", "~> 7.0"
gem "flipper", "~> 1.4"
gem "flipper-active_support_cache_store", "~> 1.4"
gem "flipper-redis", "~> 1.4"
gem "flipper-ui", "~> 1.4"
gem "oj", "~> 3.16", ">= 3.16.16"
gem "orcid_client", "~> 0.18.0"
gem "rake", "~> 13.3", ">= 13.3.1"
gem "sentry-ruby", "~> 6.4", ">= 6.4.1"
gem "sentry-rails", "~> 6.4", ">= 6.4.1"
gem "shoryuken", "~> 7.0", ">= 7.0.1"
gem "strip_attributes", "~> 1.9", ">= 1.9.2"
gem "tzinfo-data", "~> 1.2019", ">= 1.2019.3"
gem "tzinfo-data", "~> 1.2026", ">= 1.2026.1"

gem "commonmarker", "~> 0.21.0"
gem "country_select", "~> 4.0"
gem "dalli", "~> 2.7", ">= 2.7.10"
gem "hashie"
gem "kaminari", "~> 1.2"
gem "lograge", "~> 0.11.2"
gem "logstash-event", "~> 1.2", ">= 1.2.02"
gem "logstash-logger", "~> 0.26.1"
gem "namae", "~> 1.0", ">= 1.0.1"
gem "nokogiri", "~> 1.10", ">= 1.10.7"
gem "rack-cors", "~> 1.0", require: "rack/cors"
gem "rouge", "~> 3.15"
gem "simple_form", "~> 4.1.0"
gem "dalli", "~> 5.0", ">= 5.0.2"
gem "hashie", "~> 5.1"
gem "kaminari", "~> 1.2", ">= 1.2.2"
gem "lograge", "~> 0.14.0"
gem "logstash-logger", "~> 1.0"

gem "cancancan", "~> 3.0"
gem "devise", "~> 4.8", ">= 4.8.1"
gem "gravtastic", "~> 3.2", ">= 3.2.6"
gem "jwt", "~> 2.2", ">= 2.2.1"
gem "mailgun-ruby", "~> 1.2"
gem "oauth2", "~> 1.4"
gem "omniauth", "~> 2.0", ">= 2.0.4"
gem "namae", "~> 1.2"
gem "nokogiri", "~> 1.19", ">= 1.19.1"
gem "simple_form", "~> 5.4", ">= 5.4.1"

gem "cancancan", "~> 3.6", ">= 3.6.1"
gem "devise", "~> 5.0", ">= 5.0.3"
gem "jwt", "~> 3.1", ">= 3.1.2"
gem "mailgun-ruby", "~> 1.4", ">= 1.4.2" # not sure this is used
gem "omniauth", "~> 2.1", ">= 2.1.4"
gem "omniauth-github", "~> 2.0"
gem "omniauth-globus", "~> 0.9.1"
gem "omniauth-orcid", "~> 2.0"
gem "omniauth-rails_csrf_protection", "~> 1.0"
gem "repost", "~> 0.3.7"
gem "validates_email_format_of", "~> 1.6", ">= 1.6.3"
gem "omniauth-rails_csrf_protection", "~> 2.0", ">= 2.0.1"
gem "repost", "~> 0.5.1"

gem "apollo-federation", "~> 1.0"
gem "batch-loader", "~> 1.4", ">= 1.4.1"
gem "elasticsearch", "~> 7.1.0"
gem "elasticsearch-model", "~> 7.0", require: "elasticsearch/model"
gem "elasticsearch-rails", "~> 7.0"
gem "apollo-federation", "~> 3.10", ">= 3.10.3"
gem "elasticsearch", "~> 8.19", ">= 8.19.3"
gem "elasticsearch-model", "~> 8.0", ">= 8.0.1", require: "elasticsearch/model"
gem "elasticsearch-rails", "~> 8.0", ">= 8.0.1"
gem "elastic-transport", "~> 8.0", ">= 8.0.1"
gem "faraday_middleware-aws-sigv4", "~> 0.3.0"
gem "google-protobuf", "3.19.6"
gem "graphql", "~> 2.0.0"
gem "graphql-batch", "~> 0.5.1"
gem "maremma", "~> 5.0"
gem "rack-utf8_sanitizer", "~> 1.6"
gem "google-protobuf", "4.34"
gem "graphql", "~> 2.5", ">= 2.5.21"
gem "graphql-batch", "~> 0.6.1"
gem "maremma", "~> 6.0"

gem "coffee-rails", "~> 4.1", ">= 4.1.1"
gem "git", "~> 1.5"
gem "mini_magick", "~> 4.5", ">= 4.5.1"
gem "rack-jwt"
gem "remotipart", "~> 1.2"
gem "sprockets", "~> 3.7", ">= 3.7.2"
gem "sprockets-rails", "~> 3.2", ">= 3.2.1", require: "sprockets/railtie"
gem "uglifier", "~> 2.7", ">= 2.7.2"
gem "mini_magick", "~> 5.3", ">= 5.3.1"
gem "sprockets", "~> 4.2", ">= 4.2.2"
gem "sprockets-rails", "~> 3.5", ">= 3.5.2", require: "sprockets/railtie"

group :development, :test do
gem "better_errors"
gem "binding_of_caller"
gem "byebug", platforms: %i[mri mingw x64_mingw]
gem "rspec-benchmark", "~> 0.4.0"
gem "rspec-graphql_matchers", "2.0.0.pre.rc.0"
gem "rspec-rails", "~> 6.1", ">= 6.1.1"
gem "rubocop", "~> 1.3", ">= 1.3.1"
gem "rubocop-performance", "~> 1.5", ">= 1.5.1"
gem "rubocop-rails", "~> 2.8", ">= 2.8.1"
gem "rubocop-packaging", "~> 0.5.1"
gem "rubocop-rspec", "~> 2.0", require: false
gem "better_errors", "~> 2.10", ">= 2.10.1"
gem "binding_of_caller", "~> 2.0"
gem "byebug", "~> 13.0", platforms: %i[mri mingw x64_mingw]
gem "rspec-rails", "~> 8.0", ">= 8.0.4"
gem "rubocop", "~> 1.85", ">= 1.85.1"
gem "rubocop-performance", "~> 1.26", ">= 1.26.1"
gem "rubocop-rails", "~> 2.34", ">= 2.34.3"
gem "rubocop-packaging", "~> 0.6.0"
gem "rubocop-rspec", "~> 3.9", require: false
end

group :development do
gem "listen", "~> 3.9"
gem "spring"
gem "spring-commands-rspec"
gem "listen", "~> 3.10"
gem "spring", "~> 4.4", ">= 4.4.2"
gem "spring-watcher-listen", "~> 2.1"
end

group :test do
gem "capybara", "~> 3.31"
gem "capybara-screenshot", "~> 1.0", ">= 1.0.24"
gem "cuprite", "~> 0.9"
gem "capybara", "~> 3.40"
gem "capybara-screenshot", "~> 1.0", ">= 1.0.27"
gem "cuprite", "~> 0.17"
gem "database_cleaner-active_record", "~> 2.2", ">= 2.2.2"
gem "elasticsearch-extensions", "~> 0.0.29"
gem "email_spec", "~> 2.2"
gem "factory_bot_rails", "~> 4.8", ">= 4.8.2"
gem "hashdiff", [">= 1.0.0.beta1", "< 2.0.0"]
gem "shoulda-matchers", "~> 4.1", ">= 4.1.2"
gem "factory_bot_rails", "~> 6.5", ">= 6.5.1"
gem "shoulda-matchers", "~> 7.0", ">= 7.0.1"
gem "simplecov", "~> 0.22.0"
gem "test-prof", "~> 0.10.2"
gem "vcr", "~> 6.1"
gem "webmock", "~> 3.1"
gem "with_env", "~> 1.1"
gem "test-prof", "~> 1.5", ">= 1.5.2"
gem "vcr", "~> 6.4"
gem "webmock", "~> 3.26", ">= 3.26.1"
gem "bundler-audit", "~> 0.9.3"
gem "brakeman", "~> 8.0"
end
Loading
Loading