Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 2.0.0

* Upgrade Ruby from v2.6.3 to v3.4.
* Upgrade Gemstash from v2.0.0 to v2.8.0.
* Upgrade pg gem from v0.18.4 to v1.6.3.
* Upgrade mysql2 gem from v0.5.2 to v0.5.7.
* Upgrade puma from v3.12.6 to v7.2.0.
* Upgrade all transitive dependencies (activesupport 8.1, sinatra 4.2, rack 3.2, etc.).
* Switch MySQL image to MariaDB v11 (Alpine uses MariaDB's client library, making this a better match).
* Upgrade PostgreSQL image from v9.6.3 to v16.
* Fix PostgreSQL volume mount path (was incorrectly set to /var/lib/mysql).
* Remove deprecated docker-compose version key.
* Remove deprecated links directive from compose files.

## 1.4.1

* Bump puma from 3.12.1 to 3.12.6.
Expand Down
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
FROM ruby:2.6.3-alpine
FROM ruby:3.4-alpine

# Install system dependencies
RUN apk --update add \
build-base \
mariadb-dev \
postgresql-dev \
sqlite-dev \
yaml-dev \
su-exec \
tini && \
gem update --system && \
gem install bundler:1.17.2 && \
rm -rf /var/cache/apk/*

# Create gemstash user
Expand All @@ -24,6 +24,8 @@ WORKDIR "${GEMSTASH_HOME}/app"
COPY "app/" "${GEMSTASH_HOME}/app"
RUN bundle install --jobs 4 --retry 3

RUN mkdir -p "${GEMSTASH_HOME}/data" && \
chown ${GEMSTASH_USER}:${GEMSTASH_USER} "${GEMSTASH_HOME}/data"
VOLUME "${GEMSTASH_HOME}/data"

EXPOSE 9292
Expand Down
2 changes: 1 addition & 1 deletion app/.ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.3
3.4
8 changes: 4 additions & 4 deletions app/Gemfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
source 'https://rubygems.org'

ruby '2.6.3'
ruby '>= 3.4'

# A simple, fast Mysql library for Ruby, binding to libmysql.
gem 'mysql2', '~> 0.5.2'
gem 'mysql2', '~> 0.5'

# Pg is the Ruby interface to the PostgreSQL.
gem 'pg', '~> 0.18.4'
gem 'pg', '~> 1.5'

# Gemstash acts as a local RubyGems server, caching copies of gems from
# RubyGems.org automatically, and eventually letting you push your own private
# gems as well.
gem 'gemstash', '~> 2.0'
gem 'gemstash', '~> 2.8'
252 changes: 205 additions & 47 deletions app/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,69 +1,227 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (5.2.4.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
concurrent-ruby (1.1.7)
dalli (2.7.10)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
faraday_middleware (0.13.1)
faraday (>= 0.7.4, < 1.0)
gemstash (2.0.0)
activesupport (>= 4.2, < 6)
dalli (~> 2.7)
faraday (~> 0.9)
faraday_middleware (~> 0.10)
activesupport (8.1.3)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
json
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
base64 (0.3.0)
bigdecimal (4.1.0)
concurrent-ruby (1.3.6)
connection_pool (3.0.2)
dalli (4.3.3)
logger
date (3.5.1)
drb (2.2.3)
faraday (1.10.5)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.2.0)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.4)
faraday_middleware (1.2.1)
faraday (~> 1.0)
gemstash (2.8.0)
activesupport (>= 4.2, < 9)
dalli (>= 3.2.3, < 5)
faraday (>= 1, < 3)
faraday_middleware (~> 1.0)
lru_redux (~> 1.1)
puma (~> 3.10)
psych (>= 3.2.1)
puma (>= 6.1, < 8.0)
sequel (~> 5.0)
server_health_check-rack (~> 0.1)
sinatra (>= 1.4, < 3.0)
sqlite3 (~> 1.3)
thor (~> 0.20)
i18n (1.8.5)
sinatra (>= 1.4, < 5.0)
sqlite3 (>= 1.3, < 3.0)
terminal-table (>= 3, < 5)
thor (~> 1.0)
i18n (1.14.8)
concurrent-ruby (~> 1.0)
json (2.19.3)
logger (1.7.0)
lru_redux (1.1.0)
minitest (5.14.2)
multipart-post (2.0.0)
mustermann (2.0.2)
minitest (6.0.2)
drb (~> 2.0)
prism (~> 1.5)
multipart-post (2.4.1)
mustermann (3.0.4)
ruby2_keywords (~> 0.0.1)
mysql2 (0.5.2)
pg (0.18.4)
puma (3.12.6)
rack (2.2.6.4)
rack-protection (2.2.4)
rack
mysql2 (0.5.7)
bigdecimal
nio4r (2.7.5)
pg (1.6.3)
pg (1.6.3-aarch64-linux)
pg (1.6.3-aarch64-linux-musl)
pg (1.6.3-arm64-darwin)
pg (1.6.3-x86_64-darwin)
pg (1.6.3-x86_64-linux)
pg (1.6.3-x86_64-linux-musl)
prism (1.9.0)
psych (5.3.1)
date
stringio
puma (7.2.0)
nio4r (~> 2.0)
rack (3.2.5)
rack-protection (4.2.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0)
ruby2_keywords (0.0.5)
sequel (5.19.0)
securerandom (0.4.1)
sequel (5.102.0)
bigdecimal
server_health_check (1.0.2)
server_health_check-rack (0.1.0)
server_health_check (~> 1.0, >= 1.0.1)
sinatra (2.2.4)
mustermann (~> 2.0)
rack (~> 2.2)
rack-protection (= 2.2.4)
sinatra (4.2.1)
logger (>= 1.6.0)
mustermann (~> 3.0)
rack (>= 3.0.0, < 4)
rack-protection (= 4.2.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sqlite3 (1.4.1)
thor (0.20.3)
thread_safe (0.3.6)
tilt (2.1.0)
tzinfo (1.2.10)
thread_safe (~> 0.1)
sqlite3 (2.9.2-aarch64-linux-gnu)
sqlite3 (2.9.2-aarch64-linux-musl)
sqlite3 (2.9.2-arm-linux-gnu)
sqlite3 (2.9.2-arm-linux-musl)
sqlite3 (2.9.2-arm64-darwin)
sqlite3 (2.9.2-x86-linux-gnu)
sqlite3 (2.9.2-x86-linux-musl)
sqlite3 (2.9.2-x86_64-darwin)
sqlite3 (2.9.2-x86_64-linux-gnu)
sqlite3 (2.9.2-x86_64-linux-musl)
stringio (3.2.0)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
thor (1.5.0)
tilt (2.7.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.2.0)
uri (1.1.1)

PLATFORMS
ruby
aarch64-linux
aarch64-linux-gnu
aarch64-linux-musl
arm-linux-gnu
arm-linux-musl
arm64-darwin
x86-linux-gnu
x86-linux-musl
x86_64-darwin
x86_64-linux
x86_64-linux-gnu
x86_64-linux-musl

DEPENDENCIES
gemstash (~> 2.0)
mysql2 (~> 0.5.2)
pg (~> 0.18.4)
gemstash (~> 2.8)
mysql2 (~> 0.5)
pg (~> 1.5)

CHECKSUMS
activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
bigdecimal (4.1.0) sha256=6dc07767aa3dc456ccd48e7ae70a07b474e9afd7c5bc576f80bd6da5c8dd6cae
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a
dalli (4.3.3) sha256=ae58aa3442b0d9e129898f56bc6e3a0f8b6149523e723b3eb124a05ae9a2da0c
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373
faraday (1.10.5) sha256=b144f1d2b045652fa820b5f532723e1643cc28b93dae911d784e5c5f88e8f6ed
faraday-em_http (1.0.0) sha256=7a3d4c7079789121054f57e08cd4ef7e40ad1549b63101f38c7093a9d6c59689
faraday-em_synchrony (1.0.1) sha256=bf3ce45dcf543088d319ab051f80985ea6d294930635b7a0b966563179f81750
faraday-excon (1.1.0) sha256=b055c842376734d7f74350fe8611542ae2000c5387348d9ba9708109d6e40940
faraday-httpclient (1.0.1) sha256=4c8ff1f0973ff835be8d043ef16aaf54f47f25b7578f6d916deee8399a04d33b
faraday-multipart (1.2.0) sha256=7d89a949693714176f612323ca13746a2ded204031a6ba528adee788694ef757
faraday-net_http (1.0.2) sha256=63992efea42c925a20818cf3c0830947948541fdcf345842755510d266e4c682
faraday-net_http_persistent (1.2.0) sha256=0b0cbc8f03dab943c3e1cc58d8b7beb142d9df068b39c718cd83e39260348335
faraday-patron (1.0.0) sha256=dc2cd7b340bb3cc8e36bcb9e6e7eff43d134b6d526d5f3429c7a7680ddd38fa7
faraday-rack (1.0.0) sha256=ef60ec969a2bb95b8dbf24400155aee64a00fc8ba6c6a4d3968562bcc92328c0
faraday-retry (1.0.4) sha256=dc659233777fabf96c69c2ffe56c0a5d2c102af90321a42cc6c90157bcd716aa
faraday_middleware (1.2.1) sha256=d45b78c8ee864c4783fbc276f845243d4a7918a67301c052647bacabec0529e9
gemstash (2.8.0) sha256=da1a29a9153f1235b2ca6e808a628a146c4d9107a246659c76fc705a8a58824f
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
json (2.19.3) sha256=289b0bb53052a1fa8c34ab33cc750b659ba14a5c45f3fcf4b18762dc67c78646
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
lru_redux (1.1.0) sha256=ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb
minitest (6.0.2) sha256=db6e57956f6ecc6134683b4c87467d6dd792323c7f0eea7b93f66bd284adbc3d
multipart-post (2.4.1) sha256=9872d03a8e552020ca096adadbf5e3cb1cd1cdd6acd3c161136b8a5737cdb4a8
mustermann (3.0.4) sha256=85fadcb6b3c6493a8b511b42426f904b7f27b282835502233dd154daab13aa22
mysql2 (0.5.7) sha256=ba09ede515a0ae8a7192040a1b778c0fb0f025fa5877e9be895cd325fa5e9d7b
nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1
pg (1.6.3) sha256=1388d0563e13d2758c1089e35e973a3249e955c659592d10e5b77c468f628a99
pg (1.6.3-aarch64-linux) sha256=0698ad563e02383c27510b76bf7d4cd2de19cd1d16a5013f375dd473e4be72ea
pg (1.6.3-aarch64-linux-musl) sha256=06a75f4ea04b05140146f2a10550b8e0d9f006a79cdaf8b5b130cde40e3ecc2c
pg (1.6.3-arm64-darwin) sha256=7240330b572e6355d7c75a7de535edb5dfcbd6295d9c7777df4d9dddfb8c0e5f
pg (1.6.3-x86_64-darwin) sha256=ee2e04a17c0627225054ffeb43e31a95be9d7e93abda2737ea3ce4a62f2729d6
pg (1.6.3-x86_64-linux) sha256=5d9e188c8f7a0295d162b7b88a768d8452a899977d44f3274d1946d67920ae8d
pg (1.6.3-x86_64-linux-musl) sha256=9c9c90d98c72f78eb04c0f55e9618fe55d1512128e411035fe229ff427864009
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
puma (7.2.0) sha256=bf8ef4ab514a4e6d4554cb4326b2004eba5036ae05cf765cfe51aba9706a72a8
rack (3.2.5) sha256=4cbd0974c0b79f7a139b4812004a62e4c60b145cba76422e288ee670601ed6d3
rack-protection (4.2.1) sha256=cf6e2842df8c55f5e4d1a4be015e603e19e9bc3a7178bae58949ccbb58558bac
rack-session (2.1.1) sha256=0b6dc07dea7e4b583f58a48e8b806d4c9f1c6c9214ebc202ec94562cbea2e4e9
ruby2_keywords (0.0.5) sha256=ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef
securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
sequel (5.102.0) sha256=c25bb85a44ae59b3ed41ca7c32c33316cf81a6fcaeabedb4036ba141dde70919
server_health_check (1.0.2) sha256=8d174b82c2c41569599fda55832fde35c321172d8e9e42828490657545fa9019
server_health_check-rack (0.1.0) sha256=1a5e27eb9e62dc7b433c5f8ce0b199dbb070c87b344d7d8405c6a1d049caf831
sinatra (4.2.1) sha256=b7aeb9b11d046b552972ade834f1f9be98b185fa8444480688e3627625377080
sqlite3 (2.9.2-aarch64-linux-gnu) sha256=eeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42
sqlite3 (2.9.2-aarch64-linux-musl) sha256=4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d
sqlite3 (2.9.2-arm-linux-gnu) sha256=1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7
sqlite3 (2.9.2-arm-linux-musl) sha256=8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057
sqlite3 (2.9.2-arm64-darwin) sha256=d15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9
sqlite3 (2.9.2-x86-linux-gnu) sha256=066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d
sqlite3 (2.9.2-x86-linux-musl) sha256=6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede
sqlite3 (2.9.2-x86_64-darwin) sha256=ed691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13
sqlite3 (2.9.2-x86_64-linux-gnu) sha256=dce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee
sqlite3 (2.9.2-x86_64-linux-musl) sha256=e8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2
thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
tilt (2.7.0) sha256=0d5b9ba69f6a36490c64b0eee9f6e9aad517e20dcc848800a06eb116f08c6ab3
tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6

RUBY VERSION
ruby 2.6.3p62
ruby 3.4.9

BUNDLED WITH
1.17.2
4.0.9
14 changes: 6 additions & 8 deletions docker-compose.mysql.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
version: '2.1'
services:
gemstash:
image: zappi/gemstash:1.2.0
build: .
image: zappi/gemstash:2.0.0
environment:
RACK_ENV: production
GEMSTASH_DB_ADAPTER: mysql2
Expand All @@ -16,24 +16,22 @@ services:
- 9292:9292
volumes:
- gemstash_data:/home/gemstash/data
links:
- mysql
depends_on:
mysql:
condition: service_healthy
mysql:
image: mysql:5.7.19
image: mariadb:11
volumes:
- mysql_data:/var/lib/mysql
expose:
- 3306
environment:
- MYSQL_ROOT_PASSWORD=sekretpassword
- MYSQL_DATABASE=gemstash
- MARIADB_ROOT_PASSWORD=sekretpassword
- MARIADB_DATABASE=gemstash
healthcheck:
test:
- CMD
- mysql
- mariadb
- --user=root
- --password=sekretpassword
- --execute=select 1
Expand Down
Loading