fun_ci 1.2.0 → 1.2.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: 8de275f366537fcf143b9dccdd10002a9cbff42632ab7e2549b695b4a3ba6240
4
- data.tar.gz: 8723aee6ea508e2f9bf44c59cb717a83a08dc60381f389550f714b0b0f0de722
3
+ metadata.gz: d1bd2edd6e0a768308688dfcb34f135f1d7393ba7cae981e5f9f54ddc43be6cd
4
+ data.tar.gz: 75470d2c249f468c57135a1dde2f1689a804d293426221c700c6a6be75328447
5
5
  SHA512:
6
- metadata.gz: f4122b18c73b6434eedbe7124fa19b79c64b03fce502a34fdc978aa0d97006091477495d6d9ccfe1cb3ca8eba8be0fa9d53341d328a3bd20ecff43e00c482ddc
7
- data.tar.gz: fde4e5346d6bb6038ad35137456a6b1188a61c16f75973e9a55e44b73bc751afed551e1ea063a6a58a38adfbde4eefc1919297d870810ec8ddadfabd6106ce38
6
+ metadata.gz: 47dac0d9da317d60dbee680db3bcb3dffa1ba3a89a63013fdce1cc45294cfcd59343169a60e9207ae2eed768a065e17eeeb5b133f41e5a45076e89a8063f026f
7
+ data.tar.gz: 01e8bb0008a6de1cd77d3b8c72e4079dcc3d2977ab3fd039597d545404bfbba46606166b6014c5a2950e334ee30791d58edf782e848d228cd407187be6a2c5dc
data/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.2.1] - 2026-09-20
9
+
10
+ ### Bug Fixes
11
+ - `StageRunner` raised `NameError: uninitialized constant FunCi::NullRecorder`
12
+ when built without an explicit recorder. The module reorganisation in 1.2.0
13
+ moved `NullRecorder` under `Persistence` and the default argument was left
14
+ pointing at the old name. The file also never required the recorder it names,
15
+ so the constant was only ever resolvable by luck of load order.
16
+
17
+ ### Changed
18
+ - The gemspec reads the version from a new `lib/fun_ci/version.rb` instead of
19
+ loading the whole library. Loading the library pulls in sqlite3, and Bundler
20
+ reads the gemspec before it installs anything, so `bundle install` failed on
21
+ any machine that did not already happen to have sqlite3.
22
+ - `required_ruby_version` is now `>= 3.2`. The stated floor of 3.0 was never
23
+ reachable: the TUI uses `Data.define`, which arrived in Ruby 3.2.
24
+
25
+ ### Internal
26
+ - The cucumber suite had been broken since the 1.2.0 reorganisation, which moved
27
+ the files and constants it loads. It runs again, `rake` runs it, and it runs
28
+ with `--strict` so an undefined step fails instead of passing quietly.
29
+ - `StageRunner` has tests. It had none, which is how the broken default survived.
30
+
8
31
  ## [1.2.0] - 2026-02-23
9
32
 
10
33
  ### Bug Fixes
@@ -2,13 +2,14 @@
2
2
 
3
3
  require "timeout"
4
4
  require_relative "process_runner"
5
+ require_relative "../persistence/pipeline_recorder"
5
6
 
6
7
  module FunCi
7
8
  module Pipeline
8
9
  class StageRunner
9
10
  include ProcessRunner
10
11
 
11
- def initialize(commit_hash:, stdout:, command_runner: nil, time_budgets: {}, recorder: FunCi::NullRecorder.new)
12
+ def initialize(commit_hash:, stdout:, command_runner: nil, time_budgets: {}, recorder: Persistence::NullRecorder.new)
12
13
  @commit_hash = commit_hash
13
14
  @stdout = stdout
14
15
  @command_runner = command_runner
@@ -32,9 +32,9 @@ module FunCi
32
32
  end
33
33
 
34
34
  def run
35
- return reject("Not a git repository no .git/ found.") unless git_repo?
35
+ return reject("Not a git repository: no .git/ found.") unless git_repo?
36
36
  return reject("Unknown hook type: #{@hook_type}") unless ALLOWED_HOOKS.include?(@hook_type)
37
- return skip("Hook #{@hook_type} already exists from another tool skipping.") if foreign_hook?
37
+ return skip("Hook #{@hook_type} already exists from another tool, so it was left alone.") if foreign_hook?
38
38
 
39
39
  write_hook
40
40
  @stdout.puts "Installed #{@hook_type} hook."
@@ -19,7 +19,7 @@ module FunCi
19
19
 
20
20
  def run
21
21
  if Dir.exist?(File.join(@project_root, ".fun-ci"))
22
- @stdout.puts ".fun-ci/ already exists skipping init."
22
+ @stdout.puts ".fun-ci/ already exists, so init did nothing."
23
23
  return 0
24
24
  end
25
25
 
@@ -18,7 +18,7 @@ module FunCi
18
18
  errors = @config.validate
19
19
 
20
20
  if errors.empty?
21
- @stdout.puts "All OK project is configured."
21
+ @stdout.puts "All OK. The project is configured."
22
22
  0
23
23
  else
24
24
  errors.each { |e| @stdout.puts e }
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Loaded on its own by the gemspec, so it must not require anything.
4
+ module FunCi
5
+ VERSION = "1.2.1"
6
+ end
data/lib/fun_ci.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "fun_ci/version"
3
4
  require_relative "fun_ci/persistence/database"
4
5
  require_relative "fun_ci/persistence/state_machine"
5
6
  require_relative "fun_ci/persistence/pipeline_run"
@@ -7,8 +8,6 @@ require_relative "fun_ci/persistence/stage_job"
7
8
  require_relative "fun_ci/setup/project_config"
8
9
 
9
10
  module FunCi
10
- VERSION = "1.2.0"
11
-
12
11
  BUILD_TIMEOUT = 30
13
12
  FAST_SUITE_TIMEOUT = 10
14
13
  SLOW_SUITE_TIMEOUT = 300
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fun_ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Thyge Madsen
@@ -90,12 +90,17 @@ files:
90
90
  - lib/fun_ci/tui/stage_change_detector.rb
91
91
  - lib/fun_ci/tui/streak_counter.rb
92
92
  - lib/fun_ci/tui/terminal_input.rb
93
+ - lib/fun_ci/version.rb
93
94
  homepage: https://github.com/beatmadsen/fun-ci
94
95
  licenses:
95
96
  - MIT
96
97
  metadata:
98
+ homepage_uri: https://github.com/beatmadsen/fun-ci
97
99
  source_code_uri: https://github.com/beatmadsen/fun-ci
98
100
  changelog_uri: https://github.com/beatmadsen/fun-ci/blob/main/CHANGELOG.md
101
+ bug_tracker_uri: https://github.com/beatmadsen/fun-ci/issues
102
+ documentation_uri: https://github.com/beatmadsen/fun-ci#readme
103
+ rubygems_mfa_required: 'true'
99
104
  rdoc_options: []
100
105
  require_paths:
101
106
  - lib
@@ -103,14 +108,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
108
  requirements:
104
109
  - - ">="
105
110
  - !ruby/object:Gem::Version
106
- version: '3.0'
111
+ version: '3.2'
107
112
  required_rubygems_version: !ruby/object:Gem::Requirement
108
113
  requirements:
109
114
  - - ">="
110
115
  - !ruby/object:Gem::Version
111
116
  version: '0'
112
117
  requirements: []
113
- rubygems_version: 4.0.3
118
+ rubygems_version: 4.0.9
114
119
  specification_version: 4
115
120
  summary: Opinionated local CI that checks your code before it leaves your machine
116
121
  test_files: []