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
30 changes: 17 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ env:
jobs:
ruby_versions:
outputs:
setup_ruby: "['3.1', '3.2', '3.3', '3.4']"
image_tag: "['3.1', '3.2', '3.3', '3.4']"
setup_ruby: "['3.2', '3.3', '3.4', '4.0']"
image_tag: "['3.2', '3.3', '3.4', '4.0']"
runs-on: ubuntu-latest
steps:
- run: echo "generating rubies ..."
Expand All @@ -38,9 +38,9 @@ jobs:
BUNDLE_WITHOUT: "" # we need rubocop, obviously
steps:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
- uses: ruby/setup-ruby@d3e3bd032ad2222a8ac878bbccf2aba78864e134
with:
ruby-version: "3.3"
ruby-version: "3.4"
bundler-cache: true
- run: bundle exec rake rubocop

Expand All @@ -51,7 +51,8 @@ jobs:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby-pkgs@v1
with:
ruby-version: "3.3"
setup-ruby-ref: ruby/setup-ruby/d3e3bd032ad2222a8ac878bbccf2aba78864e134
ruby-version: "3.4"
bundler-cache: true
apt-get: libsqlite3-dev
- run: bundle exec rake compile -- --enable-system-libraries
Expand Down Expand Up @@ -82,6 +83,7 @@ jobs:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby-pkgs@v1
with:
setup-ruby-ref: ruby/setup-ruby/d3e3bd032ad2222a8ac878bbccf2aba78864e134
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
apt-get: libsqlite3-dev
Expand Down Expand Up @@ -150,6 +152,7 @@ jobs:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby-pkgs@v1
with:
setup-ruby-ref: ruby/setup-ruby/d3e3bd032ad2222a8ac878bbccf2aba78864e134
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
apt-get: libsqlcipher-dev
Expand All @@ -166,7 +169,8 @@ jobs:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby-pkgs@v1
with:
ruby-version: "3.3"
setup-ruby-ref: ruby/setup-ruby/d3e3bd032ad2222a8ac878bbccf2aba78864e134
ruby-version: "3.4"
bundler-cache: true
apt-get: valgrind
- uses: actions/cache@v4
Expand All @@ -191,9 +195,9 @@ jobs:
with:
path: ports/archives
key: ports-archives-tarball-${{ hashFiles('ext/sqlite3/extconf.rb','dependencies.yml') }}
- uses: ruby/setup-ruby@v1
- uses: ruby/setup-ruby@d3e3bd032ad2222a8ac878bbccf2aba78864e134
with:
ruby-version: "3.3"
ruby-version: "3.4"
bundler-cache: true
- run: bundle exec ruby ./ext/sqlite3/extconf.rb --download-dependencies
- id: rcd_image_version
Expand All @@ -209,9 +213,9 @@ jobs:
with:
path: ports/archives
key: ports-archives-tarball-${{ hashFiles('ext/sqlite3/extconf.rb','dependencies.yml') }}
- uses: ruby/setup-ruby@v1
- uses: ruby/setup-ruby@d3e3bd032ad2222a8ac878bbccf2aba78864e134
with:
ruby-version: "3.3"
ruby-version: "3.4"
bundler-cache: true
- run: ./bin/test-gem-build gems ruby
- uses: actions/upload-artifact@v5
Expand All @@ -237,6 +241,7 @@ jobs:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby-pkgs@v1
with:
setup-ruby-ref: ruby/setup-ruby/d3e3bd032ad2222a8ac878bbccf2aba78864e134
ruby-version: ${{ matrix.ruby }}
apt-get: libsqlite3-dev pkg-config
mingw: sqlite3
Expand Down Expand Up @@ -344,7 +349,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: ruby/setup-ruby@v1
- uses: ruby/setup-ruby@d3e3bd032ad2222a8ac878bbccf2aba78864e134
with:
ruby-version: "${{ matrix.ruby }}"
- uses: actions/download-artifact@v6
Expand All @@ -360,13 +365,12 @@ jobs:
fail-fast: false
matrix:
include:
- { ruby: "3.1", flavor: "alpine3.18" }
- { ruby: "3.1", flavor: "alpine3.19" }
- { ruby: "3.2", flavor: "alpine3.18" }
- { ruby: "3.2", flavor: "alpine3.19" }
- { ruby: "3.3", flavor: "alpine3.18" }
- { ruby: "3.3", flavor: "alpine3.19" }
- { ruby: "3.4", flavor: "alpine" }
- { ruby: "4.0", flavor: "alpine" }
runs-on: ubuntu-latest
container:
image: ruby:${{matrix.ruby}}-${{matrix.flavor}}
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ group :test do
gem "ruby_memcheck", "3.0.1" if Gem::Platform.local.os == "linux"

gem "rake-compiler", "1.3.0"
gem "rake-compiler-dock", "1.10.0"
gem "rake-compiler-dock", "1.11.0"
end

group :development do
Expand Down
20 changes: 10 additions & 10 deletions INSTALLATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,38 @@ This document will help you install the `sqlite3` ruby gem. It also contains ins

### Native Gems (recommended)

In v2.0.0 and later, native (precompiled) gems are available for recent Ruby versions on these platforms:
In v2.5.0 and later, native (precompiled) gems are available for recent Ruby versions on these platforms:

- `aarch64-linux-gnu` (requires: glibc >= 2.29)
- `aarch64-linux-musl`
- `arm-linux-gnu` (requires: glibc >= 2.29)
- `arm-linux-musl`
- `arm64-darwin`
- `x64-mingw-ucrt`
- `x86-linux-gnu` (requires: glibc >= 2.17)
- `x86-linux-gnu` (requires: glibc >= 2.29)
- `x86-linux-musl`
- `x86_64-darwin`
- `x86_64-linux-gnu` (requires: glibc >= 2.17)
- `x86_64-linux-gnu` (requires: glibc >= 2.29)
- `x86_64-linux-musl`

⚠ Musl linux users should update to Bundler >= 2.5.6 to avoid https://github.com/rubygems/rubygems/issues/7432

If you are using one of these Ruby versions on one of these platforms, the native gem is the recommended way to install sqlite3-ruby.

For example, on a linux system running Ruby 3.1:
For example, on a linux system running Ruby 3.4:

``` text
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]
$ time gem install sqlite3
Fetching sqlite3-1.5.0-x86_64-linux.gem
Successfully installed sqlite3-1.5.0-x86_64-linux
Fetching sqlite3-2.8.1-x86_64-linux-gnu.gem
Successfully installed sqlite3-2.8.1-x86_64-linux-gnu
1 gem installed
real 0m4.274s
user 0m0.734s
sys 0m0.165s
real 0m1.273s
user 0m0.496s
sys 0m0.078s
```

#### Avoiding the precompiled native gem
Expand Down
2 changes: 1 addition & 1 deletion bin/test-gem-file-contents
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Minitest::Reporters.use!([Minitest::Reporters::SpecReporter.new])

puts "Testing '#{gemfile}' (#{gemspec.platform})"
describe File.basename(gemfile) do
let(:supported_ruby_versions) { ["3.1", "3.2", "3.3", "3.4"] }
let(:supported_ruby_versions) { ["3.2", "3.3", "3.4", "4.0"] }

describe "setup" do
it "gemfile contains some files" do
Expand Down
2 changes: 1 addition & 1 deletion rakelib/native.rake
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ cross_platforms = [
"x86_64-darwin",
"x64-mingw-ucrt"
]
RakeCompilerDock.set_ruby_cc_version("~> 3.1")
RakeCompilerDock.set_ruby_cc_version(">= 3.2")

Gem::PackageTask.new(SQLITE3_SPEC).define # packaged_tarball version of the gem for platform=ruby
task "package" => cross_platforms.map { |p| "gem:#{p}" } # "package" task for all the native platforms
Expand Down
2 changes: 1 addition & 1 deletion sqlite3.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Gem::Specification.new do |s|

s.licenses = ["BSD-3-Clause"]

s.required_ruby_version = Gem::Requirement.new(">= 3.1")
s.required_ruby_version = Gem::Requirement.new(">= 3.2")

s.homepage = "https://github.com/sparklemotion/sqlite3-ruby"
s.metadata = {
Expand Down