Skip to content
Merged
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
12 changes: 12 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,25 @@ task :compile do
RubyMaven.exec('prepare-package')
# after packaging the jrjackson-x.y.z.jar vendor jar dependencies
Rake::Task['vendor_jars'].invoke
Rake::Task['verify_generated_files'].invoke
end

task :vendor_jars do
require 'jars/installer'
Jars::Installer.vendor_jars!
end

# Fail the build if a file the gemspec lists is missing on disk. This stops a
# broken gem from shipping, as happened with 0.5.1.
task :verify_generated_files do
$LOAD_PATH.unshift(File.expand_path('lib', __dir__))
require 'jrjackson/build_info'
missing = JrJackson::BuildInfo.files.reject { |f| File.file?(f) }
unless missing.empty?
raise "These files are listed in the gemspec but missing after compile #{missing.join(', ')}"
end
end

desc "Clean build"
task :clean do
RubyMaven.exec('clean')
Expand Down
8 changes: 8 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
v0.5.2
Fix packaging so the generated lib/jrjackson_jars.rb is included in the gem
List generated files explicitly instead of using Dir.glob so they are packaged even when generated after the gemspec is evaluated
Add a build step that fails when a file listed in the gemspec is missing

v0.5.1
Upgrade jackson and jackson-databind to v2.21.4

v0.5.0
Upgrade jackson and jackson-databind to v2.21.2
Require JRuby 9.4.14.0 and Java 11 toolchain for builds
Expand Down
14 changes: 10 additions & 4 deletions lib/jrjackson/build_info.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module JrJackson
module BuildInfo
def self.version
'0.5.1'
'0.5.2'
end

def self.release_date
'2026-06-26'
'2026-07-07'
end

def self.files
Expand All @@ -30,12 +30,18 @@ def self.jar_version

private

# Use an explicit list, not Dir.glob. The gemspec is evaluated at Rakefile
# load time, before rake compile regenerates these files, so a glob would
# drop them.
def self.generated_files
Dir.glob( %w(pom.xml lib/jrjackson_jars.rb) )
%w(pom.xml lib/jrjackson_jars.rb)
end

# Exclude jars from the glob. They are listed with their exact versions in
# generated_jar_files, so leftover jars from an older version are not
# packaged.
def self.repo_files
Dir["lib/**/*"].select{ |f| File.file? f } + ["README.md", "jrjackson.gemspec", ]
Dir["lib/**/*"].select{ |f| File.file?(f) && !f.end_with?(".jar") } + ["README.md", "jrjackson.gemspec", ]
end

def self.generated_jar_files
Expand Down
Loading