From e9df723684795317d1582cbd66c21265ad46583c Mon Sep 17 00:00:00 2001 From: Chad Wilson <29788154+chadlwilson@users.noreply.github.com> Date: Sat, 11 Oct 2025 16:52:05 +0800 Subject: [PATCH 1/4] build: Correct rdoc generation for release --- Gemfile | 2 +- README.rdoc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index ad859877..b1dfd37a 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ gem 'maven-tools', '1.2.3' group :development, :test do - gem 'rdoc', ['>= 3.10', '< 4.3'], :require => nil + gem 'rdoc', ['>= 3.10', '< 7'], :require => nil # force jruby-jars to use current JRuby version for testing gem 'jruby-jars', '~> ' + JRUBY_VERSION.split('.')[0..1].join('.') diff --git a/README.rdoc b/README.rdoc index 7df83145..159ae52c 100644 --- a/README.rdoc +++ b/README.rdoc @@ -1,4 +1,5 @@ -= Warbler {rdoc-image:https://badge.fury.io/rb/warbler.svg}[http://badge.fury.io/rb/warbler] {rdoc-image:https://github.com/jruby/warbler/actions/workflows/ci.yml/badge.svg}[https://github.com/jruby/warbler/actions/workflows/ci.yml] += Warbler +{rdoc-image:https://badge.fury.io/rb/warbler.svg}[http://badge.fury.io/rb/warbler] {rdoc-image:https://github.com/jruby/warbler/actions/workflows/ci.yml/badge.svg}[https://github.com/jruby/warbler/actions/workflows/ci.yml] Warbler is a gem to make a Java jar or war file out of any Ruby, Rails or Rack application. Warbler provides a minimal, flexible, Ruby-like way to bundle up From 65a98ab8fdaddd50d05d88db76b6ceba41778808 Mon Sep 17 00:00:00 2001 From: Chad Wilson <29788154+chadlwilson@users.noreply.github.com> Date: Sat, 11 Oct 2025 17:37:47 +0800 Subject: [PATCH 2/4] docs: Update and rationalise changelog for 2.1.0 release Removed the non user-visible changes (build/test infra) and de-duplicated iterative changes. The full blow-by-blow is in the commit history. --- History.txt | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/History.txt b/History.txt index 81d0c720..8dc0b44f 100644 --- a/History.txt +++ b/History.txt @@ -1,21 +1,21 @@ == Unreleased -- #429 maintenance Properly require ruby >= 2.1 -- #439 Include gem_build_complete_path in jar -- #440 Don't overwrite user-specified `webserver.properties` file -- #450 Update `warble.rb` documentation -- #466 Update default Maven URL -- #491 Relax version requirement for rubyzip -- #497 CI: Migrate to Github Actions -- #499 Drop jruby 9.1 support -- #500 test: Configure a git default branch name, silences warning -- #501 CI: Also test against java 15 -- #502 Update vendored dummy repos to our support matrix -- #503 Drop support for old rake versions -- #504 Migrate the spec suite to use RSpec 3 -- #505 Drop rake 12 support -- #513 Fix helper class used for `config.webxml` values -- #514 CI: Install a RubyGems 3.2.x for jruby-head, and ensure a Bundler 1.17.3 is available and used +== 2.1.0 + +Requires JRuby >= 9.4 due to needing Ruby 3.0+ compatibility. + +- #439: Include gem_build_complete_path in jar for RubyGems 2.5+ extension support +- #440: Don't overwrite user-specified `webserver.properties` file +- #513, #521: Fix issues with openstruct used for `config.webxml` values on JRuby 9.3+ +- #527: Fix war file path as argument for Jetty runner on Jetty 9.4.32+ +- #538: Put public folders inside public for executable war +- #552, #553: Use URI.open instead of open +- #557: Replace File.exists? with File.exist? for Ruby 3.2.0+ compatibility +- #559, 575: Fixes to update Warbler to modern libs and JRuby, removing old Bundler 1.x hacks +- #562: Fix problems with spaces in path names under windows +- #571: Use newer keyword argument rubyzip 3.0 API (drops support for JRuby 9.3) +- #575: Fix Gem path issues on JRuby 9.4.x +- #574: Bump default Jetty version for executables to 9.4.58.v20250814 == 2.0.5 From 3189eb11ae11accb45a1317725256329d6aa8c6b Mon Sep 17 00:00:00 2001 From: Chad Wilson <29788154+chadlwilson@users.noreply.github.com> Date: Sat, 11 Oct 2025 17:38:39 +0800 Subject: [PATCH 3/4] chore: Bump versions for 2.1.0 release Also re-generated the (for some reason source controlled) warbler_jar.jar --- Mavenfile | 1 + integration/pom.xml | 2 +- lib/warbler/version.rb | 2 +- lib/warbler_jar.jar | Bin 20571 -> 20752 bytes 4 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Mavenfile b/Mavenfile index 0ec82c09..c2d98cf2 100644 --- a/Mavenfile +++ b/Mavenfile @@ -18,6 +18,7 @@ end properties( 'project.build.sourceEncoding' => 'UTF-8', + 'mavengem.wagon.version' => '2.0.2', 'jruby.plugins.version' => '3.0.6', 'jetty.version' => '9.4.58.v20250814', ) diff --git a/integration/pom.xml b/integration/pom.xml index 2449f5d0..3acd21aa 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -14,7 +14,7 @@ ${basedir}/../../pkg/rubygems - 2.0.5 + 2.1.0 9.4.14.0 2.6.3 9.4.58.v20250814 diff --git a/lib/warbler/version.rb b/lib/warbler/version.rb index 8b91f860..ff3ace06 100644 --- a/lib/warbler/version.rb +++ b/lib/warbler/version.rb @@ -6,5 +6,5 @@ #++ module Warbler - VERSION = "2.0.5" + VERSION = "2.1.0" end diff --git a/lib/warbler_jar.jar b/lib/warbler_jar.jar index c1110d2c14b76c43ab47885d448e34ce58b82521..028c1c96cf99fdf7ac2e414db20e943bccd9d861 100644 GIT binary patch delta 19699 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 Tf-K3={UKQ~;HELu`+nv>4x)@b From eb5fe940701f30056c79777714449bd48ae7167b Mon Sep 17 00:00:00 2001 From: Chad Wilson <29788154+chadlwilson@users.noreply.github.com> Date: Sat, 11 Oct 2025 17:52:37 +0800 Subject: [PATCH 4/4] build: Define compatible jruby/jruby-rack more accurately; allow ostruct patches --- warbler.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/warbler.gemspec b/warbler.gemspec index 06dd50fc..dd0f55c2 100644 --- a/warbler.gemspec +++ b/warbler.gemspec @@ -31,9 +31,9 @@ bundle up all of your application files for deployment to a Java environment.} gem.add_runtime_dependency 'rake', ['~> 13.0', '>= 13.0.3'] gem.add_runtime_dependency 'rexml', '~> 3.0' gem.add_runtime_dependency 'jruby-jars', ['>= 9.4', '< 10.1'] - gem.add_runtime_dependency 'jruby-rack', ['>= 1.1.1', '< 1.3'] + gem.add_runtime_dependency 'jruby-rack', ['>= 1.2.3', '< 1.3'] gem.add_runtime_dependency 'rubyzip', '>= 3.0.0' - gem.add_runtime_dependency 'ostruct', '0.6.2' + gem.add_runtime_dependency 'ostruct', '~> 0.6.2' gem.add_development_dependency 'jbundler', '0.9.5' gem.add_development_dependency 'rspec', '~> 3.0' end