maid 0.11.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c4204200ab04dcec0fad2cc364c70f9901b777f489ee2d3d1779e05d41e836a
4
- data.tar.gz: 0bdd56e20b4439cd36df8beacf632a6d9432d66173c0202e2b3d772395ee8035
3
+ metadata.gz: b0e37d0f17194d3ab84ab03c7520c4a7d610da6a94d0b0da9eda781da477a9e4
4
+ data.tar.gz: 40b6bace47a3acc2946cc30dac5139fb389a564a223eaecfb079a615020110a5
5
5
  SHA512:
6
- metadata.gz: d1e07b28f9f173f2954f53f343779298c51cabd3e3a3dae491a27d5dd0fccf17adb6a9edb7ef93556b225f68515f88af7d05d6db8ec81690dec8252b6a44b0a5
7
- data.tar.gz: 1654a1358b0653902168abfe5113e45bafbfa44b9dcbfebb64d73daf79a2a3b7fdde2225ecfa54e0c39f762e4a1e0f0b42f60ee2f53afa77f1dd464928901ee8
6
+ metadata.gz: 2f4a77cfca1a267cb193f005a55f1d366b87b545d2385db9c845fade9ecfd8b57c276f4823018958ea1dd4de3ffd8d3ee5d28afea04a5e6d833e31d1e1933b49
7
+ data.tar.gz: b0e2db3844fd69f0cd94316eb8eede4243c8bc7499568bf5add17f7b7ed31f0cc723d0f448d75ce85a6f54ae1724acd79eebb5f41dc23342dee31b522e87c858
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": ["@commitlint/config-conventional"],
3
+ "rules": {
4
+ "body-max-line-length": [0, "always", 100],
5
+ "subject-case": [2, "always", "sentence-case"]
6
+ }
7
+ }
@@ -1,25 +1,27 @@
1
- name: Code coverage
1
+ permissions:
2
+ contents: read
3
+ name: Upload coverage to Code Climate
2
4
 
3
5
  on:
4
6
  push:
5
7
  branches:
6
8
  - master
7
- pull_request:
8
- branches:
9
- - master
10
9
 
11
10
  jobs:
12
- code-climate:
11
+ upload-coverage:
13
12
  runs-on: ubuntu-latest
14
13
  steps:
15
14
  - uses: actions/checkout@v4
15
+
16
16
  - name: Set up Ruby
17
17
  uses: ruby/setup-ruby@v1
18
18
  with:
19
19
  bundler-cache: true
20
+
20
21
  - name: Install dependencies
21
22
  run: bundle install
22
- - name: Publish code coverage
23
+
24
+ - name: Upload coverage to Code Climate
23
25
  uses: paambaati/codeclimate-action@v3.2.0
24
26
  with:
25
27
  coverageCommand: bundle exec rake
@@ -1,3 +1,5 @@
1
+ permissions:
2
+ contents: read
1
3
  name: Lint
2
4
 
3
5
  on:
@@ -9,6 +11,22 @@ on:
9
11
  - master
10
12
 
11
13
  jobs:
14
+ commitlint:
15
+ runs-on: ubuntu-latest
16
+ if: github.event_name == 'push'
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ fetch-depth: 0
21
+ - name: Setup Node.js
22
+ uses: actions/setup-node@v3
23
+ with:
24
+ node-version: "lts/*"
25
+ - name: Install commitlint
26
+ run: npm install -g @commitlint/config-conventional @commitlint/cli
27
+ - name: Validate current commit (push)
28
+ run: echo "${{ github.event.head_commit.message }}" | commitlint
29
+
12
30
  rubocop:
13
31
  runs-on: ubuntu-latest
14
32
  steps:
@@ -30,3 +48,17 @@ jobs:
30
48
  run: sudo apt install shellcheck -y
31
49
  - name: Run shellcheck
32
50
  run: shellcheck -x script/*
51
+
52
+ pr-title-lint:
53
+ runs-on: ubuntu-latest
54
+ if: github.event_name == 'pull_request'
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+ - name: Setup Node.js
58
+ uses: actions/setup-node@v3
59
+ with:
60
+ node-version: "lts/*"
61
+ - name: Install commitlint
62
+ run: npm install -g @commitlint/config-conventional @commitlint/cli
63
+ - name: Validate PR title
64
+ run: echo "${{ github.event.pull_request.title }}" | commitlint
@@ -10,46 +10,50 @@ permissions:
10
10
  pull-requests: write
11
11
 
12
12
  jobs:
13
- release-please:
13
+ release:
14
+ name: Release
14
15
  runs-on: ubuntu-latest
15
16
  steps:
16
- - uses: actions/checkout@v4
17
- - name: Prepare release
18
- id: release
19
- uses: googleapis/release-please-action@v4
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
20
19
  with:
21
- # Don't use GITHUB_TOKEN because this doesn't allow workflows to
22
- # trigger workflows; it leave the `release-please`-generated PR with
23
- # pending checks as they're never started.
24
- token: ${{ secrets.BOT_GH_TOKEN }}
25
- config-file: release-please-config.json
26
- manifest-file: .release-please-manifest.json
27
-
28
- - name: Set up Ruby
20
+ fetch-depth: 0
21
+ persist-credentials: false
22
+
23
+ - name: Setup Node.js
24
+ uses: actions/setup-node@v3
25
+ with:
26
+ node-version: "lts/*"
27
+
28
+ - name: Setup Ruby
29
29
  uses: ruby/setup-ruby@v1
30
30
  with:
31
31
  # ruby-version derived from .ruby-version file
32
32
  bundler-cache: true
33
- if: ${{ steps.release.outputs.release_created }}
34
33
 
35
34
  - name: Install dependencies
36
- run: bundle install
37
- if: ${{ steps.release.outputs.release_created }}
35
+ run: |
36
+ npm install -g semantic-release @semantic-release/changelog @semantic-release/git @semantic-release/exec
37
+ bundle install
38
38
 
39
39
  - name: Run tests
40
40
  run: bundle exec rake
41
41
  env:
42
42
  ISOLATED: true
43
- if: ${{ steps.release.outputs.release_created }}
44
43
 
45
- - name: Publish gem
44
+ - name: Configure gem credentials
46
45
  run: |
46
+ echo "::add-mask::$GEM_HOST_API_KEY"
47
47
  mkdir -p $HOME/.gem
48
48
  touch $HOME/.gem/credentials
49
49
  chmod 0600 $HOME/.gem/credentials
50
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
51
- gem build *.gemspec
52
- gem push *.gem
50
+ printf -- "---\n:rubygems_api_key: %s\n" "$GEM_HOST_API_KEY" > $HOME/.gem/credentials
53
51
  env:
54
52
  GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
55
- if: ${{ steps.release.outputs.release_created }}
53
+
54
+ - name: Release
55
+ id: semantic_release
56
+ env:
57
+ GITHUB_TOKEN: ${{ secrets.BOT_GH_TOKEN }}
58
+ run: |
59
+ npx semantic-release
@@ -5,6 +5,9 @@ on:
5
5
 
6
6
  jobs:
7
7
  stale:
8
+ permissions:
9
+ issues: write
10
+ pull-requests: write
8
11
  runs-on: ubuntu-latest
9
12
  steps:
10
13
  - uses: actions/stale@v8
@@ -1,3 +1,5 @@
1
+ permissions:
2
+ contents: read
1
3
  name: Test
2
4
 
3
5
  on:
@@ -13,8 +15,8 @@ jobs:
13
15
  strategy:
14
16
  matrix:
15
17
  os:
16
- - ubuntu-20.04
17
18
  - ubuntu-22.04
19
+ - ubuntu-24.04
18
20
  - macos-14
19
21
  - macos-15
20
22
  ruby-version:
data/.releaserc.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "branches": [
3
+ "master"
4
+ ],
5
+ "plugins": [
6
+ "@semantic-release/commit-analyzer",
7
+ "@semantic-release/release-notes-generator",
8
+ [
9
+ "@semantic-release/changelog",
10
+ {
11
+ "changelogFile": "CHANGELOG.md"
12
+ }
13
+ ],
14
+ [
15
+ "@semantic-release/exec",
16
+ {
17
+ "prepareCmd": "ruby script/update-version.rb ${nextRelease.version}",
18
+ "publishCmd": "gem build *.gemspec && gem push *.gem"
19
+ }
20
+ ],
21
+ [
22
+ "@semantic-release/git",
23
+ {
24
+ "assets": [
25
+ "CHANGELOG.md",
26
+ "lib/maid/version.rb",
27
+ "Gemfile.lock"
28
+ ],
29
+ "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
30
+ }
31
+ ],
32
+ "@semantic-release/github"
33
+ ]
34
+ }
data/AUTHORS.md CHANGED
@@ -6,6 +6,7 @@ In alphabetical order:
6
6
  * Graham Siener (@gsiener)
7
7
  * Itsuki Kurokawa (@fanalis)
8
8
  * Jayson Rhynas (@jayrhynas)
9
+ * Joe Francis (@lostapathy)
9
10
  * John Colvin (@JohnColvin)
10
11
  * Jurriaan Pruis (@jurriaan)
11
12
  * Justin Hileman (@bobthecow)
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.11.1](https://github.com/maid/maid/compare/v0.11.0...v0.11.1) (2025-08-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **thor:** Upgrade thor to fix vulnerability (ref: ef87ff8) ([24402df](https://github.com/maid/maid/commit/24402df3121ac0b50da3cd51ed07144e30f55c5d))
7
+
1
8
  # Changelog
2
9
 
3
10
  ## [0.11.0](https://github.com/maid/maid/compare/maid-v0.10.0...maid/v0.11.0) (2025-03-30)
data/CONTRIBUTING.md CHANGED
@@ -1,3 +1,18 @@
1
1
  This project is hosted on GitHub. To obtain a copy of the source, visit https://github.com/benjaminoakes/maid.
2
2
 
3
3
  For contributing guidelines, please see https://github.com/benjaminoakes/maid/wiki/Contributing
4
+
5
+ ## Commit Message Format
6
+
7
+ This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages:
8
+
9
+ - `fix:` a commit that fixes a bug
10
+ - `feat:` a commit that adds new functionality
11
+ - `docs:` documentation changes
12
+ - `style:` formatting changes
13
+ - `refactor:` code change that neither fixes a bug nor adds a feature
14
+ - `perf:` performance improvements
15
+ - `test:` adding or updating tests
16
+ - `chore:` updating build tasks, package manager configs, etc.
17
+
18
+ Breaking changes should be noted in the commit message with `BREAKING CHANGE:`.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- maid (0.11.0)
4
+ maid (0.11.1)
5
5
  deprecated (~> 3.0.0)
6
6
  dimensions (>= 1.0.0, < 2.0)
7
7
  escape (>= 0.0.1, < 0.1.0)
@@ -11,7 +11,7 @@ PATH
11
11
  mime-types (~> 3.0, < 4.0)
12
12
  rubyzip (~> 2.3.2)
13
13
  rufus-scheduler (~> 3.8.2)
14
- thor (~> 1.2.1)
14
+ thor (~> 1.4.0)
15
15
  xdg (~> 2.2.3)
16
16
 
17
17
  GEM
@@ -26,6 +26,7 @@ GEM
26
26
  coderay (1.1.3)
27
27
  colored (1.2)
28
28
  concurrent-ruby (1.3.5)
29
+ conventional-changelog (1.3.0)
29
30
  crack (1.0.0)
30
31
  bigdecimal
31
32
  rexml
@@ -168,6 +169,7 @@ GEM
168
169
  rubyzip (2.3.2)
169
170
  rufus-scheduler (3.8.2)
170
171
  fugit (~> 1.1, >= 1.1.6)
172
+ semantic_release (1.0.1)
171
173
  shellany (0.0.1)
172
174
  simplecov (0.22.0)
173
175
  docile (~> 1.1)
@@ -176,7 +178,7 @@ GEM
176
178
  simplecov-html (0.13.1)
177
179
  simplecov_json_formatter (0.1.4)
178
180
  stringio (3.1.6)
179
- thor (1.2.2)
181
+ thor (1.4.0)
180
182
  timecop (0.9.10)
181
183
  tzinfo (2.0.6)
182
184
  concurrent-ruby (~> 1.0)
@@ -196,6 +198,7 @@ PLATFORMS
196
198
  x86_64-linux
197
199
 
198
200
  DEPENDENCIES
201
+ conventional-changelog (~> 1.3.0)
199
202
  fakefs (~> 2.4.0)
200
203
  fuubar (~> 2.5.1)
201
204
  guard (~> 2.18.0)
@@ -216,6 +219,7 @@ DEPENDENCIES
216
219
  rubocop (~> 1.50)
217
220
  rubocop-rake (~> 0.6.0)
218
221
  rubocop-rspec (~> 3.5.0)
222
+ semantic_release (~> 1.0.0)
219
223
  simplecov (~> 0.22.0)
220
224
  timecop (~> 0.9.6)
221
225
  vcr (~> 6.1.0)
data/lib/maid/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Maid
4
- VERSION = '0.11.0'
4
+ VERSION = '0.11.1'
5
5
  SUMMARY = 'Be lazy. Let Maid clean up after you, based on rules you define. ' \
6
6
  'Think of it as "Hazel for hackers".'
7
7
  end
data/maid.gemspec CHANGED
@@ -7,10 +7,10 @@ Gem::Specification.new do |s|
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ['Benjamin Oakes', 'Coaxial']
9
9
  s.email = ['hello@benjaminoakes.com', 'c+rubygems@64b.it']
10
- s.license = 'GPL-2.0'
10
+ s.license = 'GPL-2.0-only'
11
11
  s.homepage = 'http://github.com/maid/maid'
12
- s.summary = Maid::SUMMARY
13
- s.description = s.summary
12
+ s.summary = 'Keep your filesystem clean by running custom rules periodically'
13
+ s.description = Maid::SUMMARY
14
14
  s.files = Dir['lib/**/*.rb'] + Dir['bin/maid']
15
15
  s.metadata = {
16
16
  'bug_tracker_uri' => 'https://github.com/maid/maid/issues',
@@ -21,8 +21,6 @@ Gem::Specification.new do |s|
21
21
  'rubygems_mfa_required' => 'true',
22
22
  }
23
23
 
24
- s.rubyforge_project = 'maid'
25
-
26
24
  s.required_ruby_version = '>= 3.2.0'
27
25
 
28
26
  # Strategy: if possible, use ranges (so there are fewer chances of version conflicts)
@@ -36,7 +34,7 @@ Gem::Specification.new do |s|
36
34
  s.add_dependency('mime-types', '~> 3.0', '< 4.0')
37
35
  s.add_dependency('rubyzip', '~> 2.3.2')
38
36
  s.add_dependency('rufus-scheduler', '~> 3.8.2')
39
- s.add_dependency('thor', '~> 1.2.1')
37
+ s.add_dependency('thor', '~> 1.4.0')
40
38
  s.add_dependency('xdg', '~> 2.2.3') # previous versions had bugs
41
39
 
42
40
  # TODO: use one of these two gems instead of `mdfind`. **But** They have to work on Linux as well.
@@ -45,6 +43,7 @@ Gem::Specification.new do |s|
45
43
  # s.add_dependency('spotlight', '~> 0.0.6')
46
44
 
47
45
  # Strategy: specific versions (since they're just for development)
46
+ s.add_development_dependency('conventional-changelog', '~> 1.3.0')
48
47
  s.add_development_dependency('fakefs', '~> 2.4.0')
49
48
  s.add_development_dependency('fuubar', '~> 2.5.1')
50
49
  s.add_development_dependency('guard', '~> 2.18.0')
@@ -62,6 +61,7 @@ Gem::Specification.new do |s|
62
61
  s.add_development_dependency('rubocop', '~> 1.50')
63
62
  s.add_development_dependency('rubocop-rake', '~> 0.6.0')
64
63
  s.add_development_dependency('rubocop-rspec', '~> 3.5.0')
64
+ s.add_development_dependency('semantic_release', '~> 1.0.0')
65
65
  s.add_development_dependency('simplecov', '~> 0.22.0')
66
66
  s.add_development_dependency('timecop', '~> 0.9.6')
67
67
  s.add_development_dependency('vcr', '~> 6.1.0')
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # shellcheck disable=SC1071
3
+ # Shellcheck doesn't do ruby
4
+ version = ARGV[0]
5
+ version_file = 'lib/maid/version.rb'
6
+ gemfile_lock = 'Gemfile.lock'
7
+
8
+ content_version = File.read(version_file)
9
+ updated_version = content_version.gsub(/VERSION *= *['"].*?['"]/, "VERSION = '#{version}'")
10
+ File.write(version_file, updated_version)
11
+
12
+ content_gemfile = File.read(gemfile_lock)
13
+ updated_gemfile = content_gemfile.gsub(/ maid (.*)/, " maid (#{version})")
14
+ File.write(gemfile_lock, updated_gemfile)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Oakes
8
8
  - Coaxial
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-30 00:00:00.000000000 Z
11
+ date: 2025-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deprecated
@@ -160,14 +160,14 @@ dependencies:
160
160
  requirements:
161
161
  - - "~>"
162
162
  - !ruby/object:Gem::Version
163
- version: 1.2.1
163
+ version: 1.4.0
164
164
  type: :runtime
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
168
  - - "~>"
169
169
  - !ruby/object:Gem::Version
170
- version: 1.2.1
170
+ version: 1.4.0
171
171
  - !ruby/object:Gem::Dependency
172
172
  name: xdg
173
173
  requirement: !ruby/object:Gem::Requirement
@@ -182,6 +182,20 @@ dependencies:
182
182
  - - "~>"
183
183
  - !ruby/object:Gem::Version
184
184
  version: 2.2.3
185
+ - !ruby/object:Gem::Dependency
186
+ name: conventional-changelog
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: 1.3.0
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - "~>"
197
+ - !ruby/object:Gem::Version
198
+ version: 1.3.0
185
199
  - !ruby/object:Gem::Dependency
186
200
  name: fakefs
187
201
  requirement: !ruby/object:Gem::Requirement
@@ -420,6 +434,20 @@ dependencies:
420
434
  - - "~>"
421
435
  - !ruby/object:Gem::Version
422
436
  version: 3.5.0
437
+ - !ruby/object:Gem::Dependency
438
+ name: semantic_release
439
+ requirement: !ruby/object:Gem::Requirement
440
+ requirements:
441
+ - - "~>"
442
+ - !ruby/object:Gem::Version
443
+ version: 1.0.0
444
+ type: :development
445
+ prerelease: false
446
+ version_requirements: !ruby/object:Gem::Requirement
447
+ requirements:
448
+ - - "~>"
449
+ - !ruby/object:Gem::Version
450
+ version: 1.0.0
423
451
  - !ruby/object:Gem::Dependency
424
452
  name: simplecov
425
453
  requirement: !ruby/object:Gem::Requirement
@@ -530,17 +558,18 @@ extra_rdoc_files: []
530
558
  files:
531
559
  - ".act-env"
532
560
  - ".act-secrets.example"
561
+ - ".commitlintrc.json"
533
562
  - ".github/FUNDING.yml"
534
563
  - ".github/ISSUE_TEMPLATE/bug_report.md"
535
564
  - ".github/ISSUE_TEMPLATE/feature_request.md"
536
- - ".github/workflows/coverage.yml"
565
+ - ".github/workflows/coverage-upload.yml"
537
566
  - ".github/workflows/lint.yml"
538
567
  - ".github/workflows/merge-gatekeeper.yml"
539
568
  - ".github/workflows/release.yml"
540
569
  - ".github/workflows/stale.yml"
541
570
  - ".github/workflows/test.yml"
542
571
  - ".gitignore"
543
- - ".release-please-manifest.json"
572
+ - ".releaserc.json"
544
573
  - ".rspec"
545
574
  - ".rubocop.yml"
546
575
  - ".rubocop_todo.yml"
@@ -582,13 +611,13 @@ files:
582
611
  - lib/maid/version.rb
583
612
  - lib/maid/watch.rb
584
613
  - maid.gemspec
585
- - release-please-config.json
586
614
  - resources/OneThingWell.png
587
615
  - resources/download-for-ubuntu.png
588
616
  - resources/hacker-news.png
589
617
  - resources/ruby5.gif
590
618
  - script/docker-test
591
619
  - script/smoke-test
620
+ - script/update-version.rb
592
621
  - spec/dependency_spec.rb
593
622
  - spec/fakefs_helper.rb
594
623
  - spec/fixtures/files/1.zip
@@ -613,7 +642,7 @@ files:
613
642
  - spec/spec_helper.rb
614
643
  homepage: http://github.com/maid/maid
615
644
  licenses:
616
- - GPL-2.0
645
+ - GPL-2.0-only
617
646
  metadata:
618
647
  bug_tracker_uri: https://github.com/maid/maid/issues
619
648
  changelog_uri: https://github.com/maid/maid/blob/master/CHANGELOG.md
@@ -639,6 +668,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
639
668
  requirements: []
640
669
  rubygems_version: 3.6.2
641
670
  specification_version: 4
642
- summary: Be lazy. Let Maid clean up after you, based on rules you define. Think of
643
- it as "Hazel for hackers".
671
+ summary: Keep your filesystem clean by running custom rules periodically
644
672
  test_files: []
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.11.0"
3
- }
@@ -1,18 +0,0 @@
1
- {
2
- "always-update": true,
3
- "bootstrap-sha": "d4901ad446c8a614ef80472ed5e6f1ba8c702ed5",
4
- "bump-minor-pre-major": true,
5
- "bump-patch-for-minor-pre-major": true,
6
- "commit-search-depth": 500,
7
- "group-pull-request-title-pattern": "chore: release ${version}",
8
- "release-search-depth": 400,
9
- "release-type": "ruby",
10
- "sequential-calls": false,
11
- "packages": {
12
- ".": {
13
- "release-type": "ruby",
14
- "package-name": "maid",
15
- "version-file": "lib/maid/version.rb"
16
- }
17
- }
18
- }