Skip to content

Draft: Ruby 3.1 #523

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
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
7 changes: 5 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ jobs:

- run:
name: start docker-compose build environment
command: |
sudo ./test/bin/setup_volume_permissions.sh
command: |
export ruby_version=<< parameters.ruby_version >>
sudo -E ./test/bin/setup_volume_permissions.sh
docker-compose up -d
echo "Waiting for containers to start..."
sleep 10
Expand Down Expand Up @@ -173,6 +174,7 @@ workflows:
- '2.5'
- '2.6'
- '2.7'
- '3.0'

- test_windows:
matrix:
Expand All @@ -181,3 +183,4 @@ workflows:
- '2.5'
- '2.6'
- '2.7'
- '3.0'
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.5
2.2.0
10 changes: 10 additions & 0 deletions clean_dev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# stop local dockerized development environment and clean build files

set -x
set +e

docker compose down

sudo rm ./Gemfile.lock
sudo rm -rf ./tmp
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ networks:

services:
mssql:
image: metaskills/mssql-server-linux-tinytds:2017-GA
image: mcr.microsoft.com/mssql/server:2022-RTM-ubuntu-20.04
container_name: sqlserver
environment:
ACCEPT_EULA: Y
Expand All @@ -21,7 +21,7 @@ services:
network_mode: "host"

cimgruby:
image: cimg/ruby:2.7.0
image: cimg/ruby:${ruby_version}
container_name: cimg_ruby
environment:
TESTOPTS: '-v'
Expand Down
4 changes: 2 additions & 2 deletions ext/tiny_tds/extconsts.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
ICONV_VERSION = ENV['TINYTDS_ICONV_VERSION'] || "1.15"
ICONV_SOURCE_URI = "http://ftp.gnu.org/pub/gnu/libiconv/libiconv-#{ICONV_VERSION}.tar.gz"

OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.1.1d'
OPENSSL_VERSION = ENV['TINYTDS_OPENSSL_VERSION'] || '1.1.1s'
OPENSSL_SOURCE_URI = "https://www.openssl.org/source/openssl-#{OPENSSL_VERSION}.tar.gz"

FREETDS_VERSION = ENV['TINYTDS_FREETDS_VERSION'] || "1.1.24"
FREETDS_VERSION = ENV['TINYTDS_FREETDS_VERSION'] || "1.3.16"
FREETDS_VERSION_INFO = Hash.new { |h,k|
h[k] = {files: "http://www.freetds.org/files/stable/freetds-#{k}.tar.bz2"}
}
Expand Down
36 changes: 22 additions & 14 deletions start_dev.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
#!/usr/bin/env bash
# will spin up a local dockerized development environment

set -x
set +x
set -e

# set volume read/write permissions to work both outside and inside container
sudo ./test/bin/setup_volume_permissions.sh
if [ -z "$ruby_version" ]
then
echo "set a value for environment variable ruby_version"
else
echo "ruby_version is $ruby_version"

docker-compose up -d
echo "Waiting for containers to start..."
sleep 10
# set volume read/write permissions to work both outside and inside container
sudo -E ./test/bin/setup_volume_permissions.sh

# setup circleci ruby container for development
docker exec cimg_ruby bash -c './setup_cimgruby_dev.sh'
docker compose up -d
echo "Waiting for containers to start..."
sleep 10

# enter container
set +x
echo "cimg/ruby container is ready for tiny_tds development.........."
echo "To enter container run: docker exec -it cimg_ruby /bin/bash"
echo "To build solution run: docker exec cimg_ruby bash -c 'bundle exec rake build'"
echo "To test solution run: docker exec cimg_ruby bash -c 'bundle exec rake test'"
# setup circleci ruby container for development
docker exec cimg_ruby bash -c './setup_cimgruby_dev.sh'

# enter container
set +x
echo "cimg/ruby container is ready for tiny_tds development.........."
echo "To enter container run: docker exec -it cimg_ruby /bin/bash"
echo "To build solution run: docker exec cimg_ruby bash -c 'bundle exec rake build'"
echo "To test solution run: docker exec cimg_ruby bash -c 'bundle exec rake test'"
fi
2 changes: 1 addition & 1 deletion tasks/native_gem.rake
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ task 'gem:windows' => ['ports:cross'] do
build = ['bundle']

# and finally build the native gem
build << 'rake cross native gem RUBY_CC_VERSION=2.7.0:2.6.0:2.5.0:2.4.0 CFLAGS="-Wall" MAKE="make -j`nproc`"'
build << 'rake cross native gem RUBY_CC_VERSION=3.0.0:2.7.0:2.6.0:2.5.0 CFLAGS="-Wall" MAKE="make -j`nproc`"'

RakeCompilerDock.sh build.join(' && ')
end
2 changes: 1 addition & 1 deletion tasks/ports/freetds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def configure_defaults
if version =~ /0\.91/
opts << '--with-tdsver=7.1'
else
opts << '--with-tdsver=7.3'
opts << '--with-tdsver=7.4'
end

if windows?
Expand Down
1 change: 0 additions & 1 deletion tasks/test.rake
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ Rake::TestTask.new do |t|
t.test_files = FileList['test/**/*_test.rb']
t.verbose = true
end

4 changes: 2 additions & 2 deletions test/bin/install-freetds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ wget http://www.freetds.org/files/stable/freetds-$FREETDS_VERSION.tar.gz
tar -xzf freetds-$FREETDS_VERSION.tar.gz
cd freetds-$FREETDS_VERSION
./configure --prefix=/opt/local \
--with-openssl=/opt/local \
--with-tdsver=7.3
--with-gnutls \
--with-tdsver=7.4
make
make install
cd ..
Expand Down
21 changes: 16 additions & 5 deletions test/bin/setup_volume_permissions.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
#!/usr/bin/env bash
# grants circlci docker uid and gid required write permissions to project file system

set -x

sudo groupadd -g 3434 circleci_tinytds
sudo usermod -a -G circleci_tinytds $USER
sudo useradd circleci_tinytds -u 3434 -g 3434
sudo usermod -a -G circleci_tinytds circleci_tinytds
sudo chgrp -R circleci_tinytds .
if $(dpkg --compare-versions $ruby_version lt 3.1)
then
sudo groupadd -g 3434 circleci_tinytds30
sudo useradd circleci_tinytds30 -u 3434 -g 3434
sudo usermod -a -G circleci_tinytds30 circleci_tinytds30
sudo usermod -a -G circleci_tinytds30 $USER
sudo chgrp -R circleci_tinytds30 .
else
sudo groupadd -g 1002 circleci_tinytds31
sudo useradd circleci_tinytds31 -u 1001 -g 1002
sudo usermod -a -G circleci_tinytds31 circleci_tinytds31
sudo usermod -a -G circleci_tinytds31 $USER
sudo chgrp -R circleci_tinytds31 .
fi

sudo chmod -R g+rwx .
10 changes: 5 additions & 5 deletions tiny_tds.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ Gem::Specification.new do |s|
s.rdoc_options = ['--charset=UTF-8']
s.extensions = ['ext/tiny_tds/extconf.rb']
s.license = 'MIT'
s.required_ruby_version = '>= 2.0.0'
s.required_ruby_version = '>= 3.1.0'
s.metadata['msys2_mingw_dependencies'] = 'freetds'
s.add_development_dependency 'mini_portile2', '~> 2.5.0'
s.add_development_dependency 'mini_portile2', '~> 2.8.1'
s.add_development_dependency 'rake', '~> 13.0.0'
s.add_development_dependency 'rake-compiler', '~> 1.1.0'
s.add_development_dependency 'rake-compiler-dock', '~> 1.1.0'
s.add_development_dependency 'minitest', '~> 5.14.0'
s.add_development_dependency 'connection_pool', '~> 2.2.0'
s.add_development_dependency 'toxiproxy', '~> 2.0.0'
s.add_development_dependency 'minitest', '~> 5.17.0'
s.add_development_dependency 'connection_pool', '~> 2.3.0'
s.add_development_dependency 'toxiproxy', '~> 2.0.2'
end