From 5a6260b5f7a4c9f00372868a2704dd4bd7902e4c Mon Sep 17 00:00:00 2001 From: Simon Courtois Date: Thu, 16 Feb 2023 10:55:41 +0100 Subject: [PATCH 1/2] Upgrading the Ruby and CI stack (#42) --- .github/dependabot.yml | 19 +++++++++ .github/workflows/ci.yml | 35 +++++++++++++++ .hound.yml | 2 +- .rubocop.yml | 92 +++++++++++++++++++++++++++++++++++++++- .ruby-style.yml | 90 --------------------------------------- .travis.yml | 7 --- CHANGELOG.md | 9 +++- lib/memfs/io.rb | 2 +- memfs.gemspec | 2 +- 9 files changed, 156 insertions(+), 102 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml mode change 120000 => 100644 .rubocop.yml delete mode 100644 .ruby-style.yml delete mode 100644 .travis.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0c92865 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,19 @@ +version: 2 + +updates: + - package-ecosystem: bundler + directory: / + schedule: + interval: weekly + day: monday + time: '00:00' + target-branch: main + versioning-strategy: increase-if-necessary + + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + day: monday + time: '00:00' + target-branch: main diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3a0c5fa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,35 @@ +name: CI Workflow + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + specs: + name: Rubocop & Rspec + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + ruby-version: ['3.2', '3.1', '3.0', '2.7', '2.6'] + + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby ${{matrix.ruby-version}} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{matrix.ruby-version}} + bundler-cache: true + - name: Updating RubyGems + run: gem update --system + - name: Install dependencies + run: bundle install + - name: Rubocop + run: bundle exec rubocop -D + - name: Rspec + run: bundle exec rspec diff --git a/.hound.yml b/.hound.yml index bd9b97d..5d0ff60 100644 --- a/.hound.yml +++ b/.hound.yml @@ -1,2 +1,2 @@ ruby: - config_file: .ruby-style.yml + config_file: .rubocop.yml diff --git a/.rubocop.yml b/.rubocop.yml deleted file mode 120000 index 52caed6..0000000 --- a/.rubocop.yml +++ /dev/null @@ -1 +0,0 @@ -.ruby-style.yml \ No newline at end of file diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..eddcf01 --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,91 @@ +AllCops: + Exclude: + - memfs.gemspec + - spec/**/* + - vendor/bundle/**/* + NewCops: enable + TargetRubyVersion: 2.7 + +Layout/ArgumentAlignment: + EnforcedStyle: with_fixed_indentation + +Layout/EmptyLineAfterGuardClause: + Enabled: false + +Layout/FirstArrayElementIndentation: + EnforcedStyle: consistent + +Layout/FirstHashElementIndentation: + EnforcedStyle: consistent + +Layout/LineLength: + Exclude: + - Rakefile + Max: 100 + +Layout/MultilineMethodCallBraceLayout: + EnforcedStyle: same_line + +Layout/MultilineMethodDefinitionBraceLayout: + EnforcedStyle: same_line + +Layout/MultilineOperationIndentation: + EnforcedStyle: indented + +Layout/ParameterAlignment: + EnforcedStyle: with_fixed_indentation + +Metrics/AbcSize: + Max: 18 + +Metrics/ClassLength: + Enabled: false + +Metrics/MethodLength: + Max: 10 + +Naming/PredicateName: + ForbiddenPrefixes: + - is_ + +Security/Open: + Enabled: false + +Style/AccessModifierDeclarations: + Enabled: false + +Style/AndOr: + Enabled: false + +Style/Documentation: + Enabled: false + +Style/DoubleNegation: + Enabled: false + +Style/PercentLiteralDelimiters: + PreferredDelimiters: + '%': '{}' + '%i': '[]' + '%q': '{}' + '%Q': '{}' + '%r': '{}' + '%s': '{}' + '%w': '[]' + '%W': '[]' + '%x': '{}' + +Style/RegexpLiteral: + EnforcedStyle: mixed + +Style/SignalException: + EnforcedStyle: semantic + +Style/SpecialGlobalVars: + Enabled: false + +Style/StringLiterals: + EnforcedStyle: single_quotes + +Style/StringLiteralsInInterpolation: + EnforcedStyle: single_quotes diff --git a/.ruby-style.yml b/.ruby-style.yml deleted file mode 100644 index 3e06804..0000000 --- a/.ruby-style.yml +++ /dev/null @@ -1,90 +0,0 @@ -AllCops: - Exclude: - - memfs.gemspec - - 'spec/**/*' - NewCops: enable - TargetRubyVersion: 2.7 - -Layout/ArgumentAlignment: - EnforcedStyle: with_fixed_indentation - -Layout/ParameterAlignment: - EnforcedStyle: with_fixed_indentation - -Layout/EmptyLineAfterGuardClause: - Enabled: false - -Layout/FirstArrayElementIndentation: - EnforcedStyle: consistent - -Layout/FirstHashElementIndentation: - EnforcedStyle: consistent - -Layout/LineLength: - Exclude: - - Rakefile - Max: 100 - -Layout/MultilineMethodCallBraceLayout: - EnforcedStyle: same_line - -Layout/MultilineMethodDefinitionBraceLayout: - EnforcedStyle: same_line - -Layout/MultilineOperationIndentation: - EnforcedStyle: indented - -Metrics/AbcSize: - Max: 18 - -Metrics/ClassLength: - Enabled: false - -Metrics/MethodLength: - Max: 10 - -Naming/PredicateName: - ForbiddenPrefixes: - - is_ - -Security/Open: - Enabled: false - -Style/AccessModifierDeclarations: - Enabled: false - -Style/AndOr: - Enabled: false - -Style/DoubleNegation: - Enabled: false - -Style/Documentation: - Enabled: false - -Style/PercentLiteralDelimiters: - PreferredDelimiters: - '%': '{}' - '%i': '[]' - '%q': '{}' - '%Q': '{}' - '%r': '{}' - '%s': '{}' - '%w': '[]' - '%W': '[]' - '%x': '{}' - -Style/RegexpLiteral: - EnforcedStyle: mixed - -Style/SignalException: - EnforcedStyle: semantic - -Style/SpecialGlobalVars: - Enabled: false - -Style/StringLiterals: - EnforcedStyle: single_quotes - -Style/StringLiteralsInInterpolation: - EnforcedStyle: single_quotes diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 97ab780..0000000 --- a/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: ruby -cache: bundler -rvm: - - 2.4 - - 2.5 - - 2.6 - - 2.7 diff --git a/CHANGELOG.md b/CHANGELOG.md index 258a872..0ddd779 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,19 @@ ## HEAD -* ADD: `Dir.empty?` from Ruby 2.4 +* ADD: Support for Ruby 3.x +* ADD: `Dir.empty?` * ADD: `IO#fileno` and `Dir#fileno` raise `NotImplementedError` * ADD: `File.birthtime` and `File#birthtime` * ADD: `File.empty?` * ADD: `File::Stat#nlink` (#39 by @djberg96) * FIX: Fixing the inverted _read_ and _execute_ bitmasks (#41 by @micahlee) +* ADD: Dependabot configuration +* CHG: Replacing Travis CI with GitHub Actions + +### Breaking + +* DEL: Removing support for Ruby 2.4 and 2.5 ## 1.0.0 diff --git a/lib/memfs/io.rb b/lib/memfs/io.rb index 48d665a..3458db9 100644 --- a/lib/memfs/io.rb +++ b/lib/memfs/io.rb @@ -113,7 +113,7 @@ def external_encoding end def each(sep = $/, &block) - return to_enum(__callee__) unless block_given? + return to_enum(__callee__, sep) unless block_given? fail IOError, 'not opened for reading' unless readable? content.each_line(sep) { |line| block.call(line) } self diff --git a/memfs.gemspec b/memfs.gemspec index 0071d26..b71db65 100644 --- a/memfs.gemspec +++ b/memfs.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |gem| gem.add_development_dependency 'rb-inotify', '~> 0.8' gem.add_development_dependency 'rb-fsevent', '~> 0.9' gem.add_development_dependency 'rb-fchange', '~> 0.0' - gem.add_development_dependency 'rubocop', '~> 0.79' + gem.add_development_dependency 'rubocop', '~> 1.44' listen_version = RUBY_VERSION >= '2.2.3' ? '~> 3.1' : '~> 3.0.7' gem.add_development_dependency 'listen', listen_version From d8b6072a3c4b6b13d53be276bf5078bf8e6aba56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Feb 2023 14:47:04 +0000 Subject: [PATCH 2/2] Update rake requirement from ~> 12.0 to ~> 13.0 Updates the requirements on [rake](https://github.com/ruby/rake) to permit the latest version. - [Release notes](https://github.com/ruby/rake/releases) - [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc) - [Commits](https://github.com/ruby/rake/compare/v12.0.0...v13.0.6) --- updated-dependencies: - dependency-name: rake dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- memfs.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memfs.gemspec b/memfs.gemspec index b71db65..0432fe7 100644 --- a/memfs.gemspec +++ b/memfs.gemspec @@ -21,7 +21,7 @@ Gem::Specification.new do |gem| gem.require_paths = ['lib'] gem.add_development_dependency 'coveralls', '~> 0.6' - gem.add_development_dependency 'rake', '~> 12.0' + gem.add_development_dependency 'rake', '~> 13.0' gem.add_development_dependency 'rspec', '~> 3.0' gem.add_development_dependency 'guard', '~> 2.6' gem.add_development_dependency 'guard-rspec', '~> 4.3'