From 1feb0295f267064df9707b81f22985d006fd4b79 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Mon, 27 Oct 2025 10:57:55 +0900 Subject: [PATCH 1/7] :shower: ActiveSupport::Configurable --- .github/workflows/main.yml | 9 +++------ Appraisals | 8 ++++---- README.md | 4 ++-- .../{activerecord7.1.gemfile => activerecord8.1.gemfile} | 2 +- lib/master_data_tool.rb | 2 ++ lib/master_data_tool/config.rb | 8 ++------ lib/master_data_tool/version.rb | 2 +- sig/master_data_tool.rbs | 2 -- 8 files changed, 15 insertions(+), 22 deletions(-) rename gemfiles/{activerecord7.1.gemfile => activerecord8.1.gemfile} (81%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 12656bb..20c5ec1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,16 +27,13 @@ jobs: matrix: ruby: - - '3.1' - '3.2' - '3.3' + - '3.4' activerecord: - - '7.1' - '7.2' - '8.0' - exclude: - - ruby: '3.1' - activerecord: '8.0' + - '8.1' services: mysql: @@ -84,7 +81,7 @@ jobs: continue-on-error: ${{ matrix.allow_failures == 'true' }} - name: Test report - if: matrix.ruby == '3.3' && matrix.activerecord == '7.1' && success() + if: matrix.ruby == '3.4' && matrix.activerecord == '8.1' && success() run: | curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter chmod +x ./cc-test-reporter diff --git a/Appraisals b/Appraisals index c998e06..afd74d0 100644 --- a/Appraisals +++ b/Appraisals @@ -1,7 +1,3 @@ -appraise 'activerecord7.1' do - gem 'activerecord', '~> 7.1.0' -end - appraise 'activerecord7.2' do gem 'activerecord', '~> 7.2.0' end @@ -9,3 +5,7 @@ end appraise 'activerecord8.0' do gem 'activerecord', '~> 8.0.0' end + +appraise 'activerecord8.1' do + gem 'activerecord', '~> 8.1.0' +end diff --git a/README.md b/README.md index 0f4dd68..4cde540 100644 --- a/README.md +++ b/README.md @@ -191,10 +191,10 @@ grep 'operation:import' /tmp/dry-run.txt | grep 'label:detail' | grep 'status:ne ## Test -docker-composeでMySQLを立ち上げてテストを実行する。 +docker composeでMySQLを立ち上げてテストを実行する。 ``` -docker-compose up -d +docker compose up -d ``` 以下のENVを設定すること。 diff --git a/gemfiles/activerecord7.1.gemfile b/gemfiles/activerecord8.1.gemfile similarity index 81% rename from gemfiles/activerecord7.1.gemfile rename to gemfiles/activerecord8.1.gemfile index d51939a..84d6e3e 100644 --- a/gemfiles/activerecord7.1.gemfile +++ b/gemfiles/activerecord8.1.gemfile @@ -4,6 +4,6 @@ source "https://rubygems.org" gem "rake", "~> 13.0" gem "rspec", "~> 3.0" -gem "activerecord", "~> 7.1.0" +gem "activerecord", "~> 8.1.0" gemspec path: "../" diff --git a/lib/master_data_tool.rb b/lib/master_data_tool.rb index 85475f9..f573f79 100644 --- a/lib/master_data_tool.rb +++ b/lib/master_data_tool.rb @@ -2,6 +2,8 @@ require 'csv' require 'socket' +require 'active_support' +require 'active_support/core_ext' require_relative "master_data_tool/version" require_relative "master_data_tool/act_as_master_data" require_relative "master_data_tool/config" diff --git a/lib/master_data_tool/config.rb b/lib/master_data_tool/config.rb index fa8d8b3..80c35a4 100644 --- a/lib/master_data_tool/config.rb +++ b/lib/master_data_tool/config.rb @@ -1,11 +1,7 @@ -require 'active_support/configurable' - module MasterDataTool class Config - include ActiveSupport::Configurable - - config_accessor :master_data_dir - config_accessor :spec_configs + class_attribute :master_data_dir + class_attribute :spec_configs def initialize self.master_data_dir = nil diff --git a/lib/master_data_tool/version.rb b/lib/master_data_tool/version.rb index 7dbbe2d..303307c 100644 --- a/lib/master_data_tool/version.rb +++ b/lib/master_data_tool/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MasterDataTool - VERSION = "0.23.0" + VERSION = "0.24.0" end diff --git a/sig/master_data_tool.rbs b/sig/master_data_tool.rbs index 5d7b9a0..e606fd7 100644 --- a/sig/master_data_tool.rbs +++ b/sig/master_data_tool.rbs @@ -8,8 +8,6 @@ module MasterDataTool end class Config - include ActiveSupport::Configurable - def initialize: () -> void def spec_config: (String spec_name) -> untyped From 22c7e18e8e05d02ee04c12d9eac33cbc64882707 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Mon, 27 Oct 2025 11:02:35 +0900 Subject: [PATCH 2/7] :poop: fix --- spec/dummy/db/Schemafile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/dummy/db/Schemafile b/spec/dummy/db/Schemafile index bf93d08..54d7fa3 100644 --- a/spec/dummy/db/Schemafile +++ b/spec/dummy/db/Schemafile @@ -19,6 +19,8 @@ create_table 'taggings', id: :bigint, unsigned: true, force: :cascade do |t| t.bigint "tag_id", unsigned: true t.datetime "created_at", null: false t.datetime "updated_at", null: false + + t.index %w[tag_id], name: 'key_taggings_1', unique: true end create_table 'item_taggings', id: :bigint, unsigned: true, force: :cascade do |t| From 657aa10b8ff75da2ce58076e88c3482d53e4e1d9 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Mon, 27 Oct 2025 11:05:32 +0900 Subject: [PATCH 3/7] :poop: fix --- spec/dummy/db/Schemafile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/dummy/db/Schemafile b/spec/dummy/db/Schemafile index 54d7fa3..3da6130 100644 --- a/spec/dummy/db/Schemafile +++ b/spec/dummy/db/Schemafile @@ -20,7 +20,7 @@ create_table 'taggings', id: :bigint, unsigned: true, force: :cascade do |t| t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index %w[tag_id], name: 'key_taggings_1', unique: true + t.index %w[tag_id], name: 'key_taggings_1' end create_table 'item_taggings', id: :bigint, unsigned: true, force: :cascade do |t| From c616072794bdce91457dd752ef21454ca75d2161 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Mon, 27 Oct 2025 11:10:22 +0900 Subject: [PATCH 4/7] :+1: fix --- master_data_tool.gemspec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/master_data_tool.gemspec b/master_data_tool.gemspec index ac92b9d..3d25e29 100644 --- a/master_data_tool.gemspec +++ b/master_data_tool.gemspec @@ -24,14 +24,15 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'mysql2' spec.add_development_dependency 'psych', '~> 3.1' spec.add_development_dependency 'appraisal' - spec.add_development_dependency 'ridgepole' + spec.add_development_dependency 'ridgepole', '~> 3.0' spec.add_development_dependency 'database_cleaner-active_record' spec.add_development_dependency 'standalone_activerecord_boot_loader', '>= 0.3 ' spec.add_development_dependency 'simplecov' spec.add_development_dependency 'rbs' spec.add_development_dependency 'typeprof' - spec.add_dependency 'activerecord', '>= 6.0.0' + spec.add_dependency 'activerecord', '>= 7.2' spec.add_dependency 'activesupport' spec.add_dependency 'thor' + spec.add_dependency 'csv' end From 5ca58c0581b78fa38b9787fd94a1f4346c5a55ea Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Mon, 27 Oct 2025 11:25:30 +0900 Subject: [PATCH 5/7] :poop: fix --- spec/master_data_tool/report/import_report_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/master_data_tool/report/import_report_spec.rb b/spec/master_data_tool/report/import_report_spec.rb index 663fad3..7455917 100644 --- a/spec/master_data_tool/report/import_report_spec.rb +++ b/spec/master_data_tool/report/import_report_spec.rb @@ -115,6 +115,8 @@ end master_data.load + hash = {'name'=>['tag2', 'tag222']} + expected = <<-EOD operation:import label:count table_name:tags before:2 after:2 operation:import label:affected table_name:tags affected:true @@ -122,7 +124,7 @@ operation:import label:updated_count table_name:tags count:1 operation:import label:no_change_count table_name:tags count:1 operation:import label:deleted_count table_name:tags count:0 -operation:import label:detail table_name:tags status:updated id:2 detail:{"name"=>["tag2", "tag222"]} +operation:import label:detail table_name:tags status:updated id:2 detail:#{hash} operation:import label:detail table_name:tags status:no_change id:1 EOD From 98112b39da04ae692e24a56351c88bdd9f0eff90 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Tue, 11 Nov 2025 11:17:26 +0900 Subject: [PATCH 6/7] :+1: fix --- .github/workflows/main.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 20c5ec1..a4b8c12 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -79,10 +79,3 @@ jobs: run: | bundle exec rspec continue-on-error: ${{ matrix.allow_failures == 'true' }} - - - name: Test report - if: matrix.ruby == '3.4' && matrix.activerecord == '8.1' && success() - run: | - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter after-build From 9756221b0d9a94c9e3723af74a39065205087fe6 Mon Sep 17 00:00:00 2001 From: Takahiro Ooishi Date: Tue, 11 Nov 2025 11:26:30 +0900 Subject: [PATCH 7/7] :+1: use Qlty --- .github/workflows/main.yml | 9 ++++----- README.md | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 12656bb..5e83de6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -83,9 +83,8 @@ jobs: bundle exec rspec continue-on-error: ${{ matrix.allow_failures == 'true' }} - - name: Test report + - uses: qltysh/qlty-action/coverage@v2 if: matrix.ruby == '3.3' && matrix.activerecord == '7.1' && success() - run: | - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter after-build + with: + token: ${{secrets.QLTY_COVERAGE_TOKEN}} + files: coverage/.resultset.json diff --git a/README.md b/README.md index 0f4dd68..6c8235e 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ [![Build Status](https://github.com/taka0125/master_data_tool/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/taka0125/master_data_tool/actions/workflows/main.yml) [![Gem Version](https://badge.fury.io/rb/master_data_tool.svg)](https://badge.fury.io/rb/master_data_tool) -[![Maintainability](https://api.codeclimate.com/v1/badges/5fc8420c4fe83a2e6c92/maintainability)](https://codeclimate.com/github/taka0125/master_data_tool/maintainability) -[![Test Coverage](https://api.codeclimate.com/v1/badges/5fc8420c4fe83a2e6c92/test_coverage)](https://codeclimate.com/github/taka0125/master_data_tool/test_coverage) +[![Maintainability](https://qlty.sh/gh/taka0125/projects/master_data_tool/maintainability.svg)](https://qlty.sh/gh/taka0125/projects/master_data_tool) +[![Code Coverage](https://qlty.sh/gh/taka0125/projects/master_data_tool/coverage.svg)](https://qlty.sh/gh/taka0125/projects/master_data_tool) システムが稼働する上で最初から必要なデータ(マスタデータ)を管理するツール