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 +4 -4
- data/CHANGELOG.md +23 -0
- data/lib/fun_ci/pipeline/stage_runner.rb +2 -1
- data/lib/fun_ci/setup/hook_writer.rb +2 -2
- data/lib/fun_ci/setup/installer.rb +1 -1
- data/lib/fun_ci/setup/setup_checker.rb +1 -1
- data/lib/fun_ci/version.rb +6 -0
- data/lib/fun_ci.rb +1 -2
- metadata +8 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d1bd2edd6e0a768308688dfcb34f135f1d7393ba7cae981e5f9f54ddc43be6cd
|
|
4
|
+
data.tar.gz: 75470d2c249f468c57135a1dde2f1689a804d293426221c700c6a6be75328447
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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:
|
|
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
|
|
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
|
|
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."
|
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.
|
|
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.
|
|
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.
|
|
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: []
|