kettle-dev 2.3.5 → 2.3.6
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +40 -11
- data/README.md +2 -2
- data/exe/kettle-release +26 -2
- data/lib/kettle/dev/ci_monitor.rb +4 -4
- data/lib/kettle/dev/release_cli.rb +8 -2
- data/lib/kettle/dev/version.rb +1 -1
- data/sig/kettle/dev.rbs +583 -1
- data.tar.gz.sig +0 -0
- metadata +15 -59
- metadata.gz.sig +0 -0
- data/AGPL-3.0-only.md +0 -235
- data/CITATION.cff +0 -20
- data/CODE_OF_CONDUCT.md +0 -134
- data/CONTRIBUTING.md +0 -275
- data/FUNDING.md +0 -70
- data/RUBOCOP.md +0 -71
- data/SECURITY.md +0 -21
- data/certs/pboling.pem +0 -27
- data/sig/kettle/dev/appraisals_ast_merger.rbs +0 -72
- data/sig/kettle/dev/changelog_cli.rbs +0 -69
- data/sig/kettle/dev/ci_helpers.rbs +0 -42
- data/sig/kettle/dev/ci_monitor.rbs +0 -17
- data/sig/kettle/dev/commit_msg.rbs +0 -8
- data/sig/kettle/dev/dvcs_cli.rbs +0 -8
- data/sig/kettle/dev/exit_adapter.rbs +0 -8
- data/sig/kettle/dev/gem_spec_reader.rbs +0 -33
- data/sig/kettle/dev/git_adapter.rbs +0 -17
- data/sig/kettle/dev/git_commit_footer.rbs +0 -16
- data/sig/kettle/dev/input_adapter.rbs +0 -8
- data/sig/kettle/dev/modular_gemfiles.rbs +0 -12
- data/sig/kettle/dev/open_collective_config.rbs +0 -8
- data/sig/kettle/dev/pre_release_cli.rbs +0 -34
- data/sig/kettle/dev/prism_utils.rbs +0 -56
- data/sig/kettle/dev/readme_backers.rbs +0 -21
- data/sig/kettle/dev/release_cli.rbs +0 -20
- data/sig/kettle/dev/setup_cli.rbs +0 -8
- data/sig/kettle/dev/source_merger.rbs +0 -70
- data/sig/kettle/dev/tasks/ci_task.rbs +0 -9
- data/sig/kettle/dev/tasks/install_task.rbs +0 -10
- data/sig/kettle/dev/tasks/template_task.rbs +0 -10
- data/sig/kettle/dev/tasks.rbs +0 -7
- data/sig/kettle/dev/template_helpers.rbs +0 -84
- data/sig/kettle/dev/version.rbs +0 -8
- data/sig/kettle/dev/versioning.rbs +0 -21
- data/sig/kettle/emoji_regex.rbs +0 -5
- data/sig/kettle-dev.rbs +0 -0
data/sig/kettle/dev/dvcs_cli.rbs
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
class GemSpecReader
|
|
4
|
-
DEFAULT_MINIMUM_RUBY: Gem::Version
|
|
5
|
-
|
|
6
|
-
def self.load: (String root) -> {
|
|
7
|
-
gemspec_path: String?,
|
|
8
|
-
gem_name: String,
|
|
9
|
-
min_ruby: Gem::Version,
|
|
10
|
-
homepage: String,
|
|
11
|
-
gh_org: String,
|
|
12
|
-
forge_org: String,
|
|
13
|
-
funding_org: String?,
|
|
14
|
-
gh_repo: String?,
|
|
15
|
-
namespace: String,
|
|
16
|
-
namespace_shield: String,
|
|
17
|
-
entrypoint_require: String,
|
|
18
|
-
gem_shield: String,
|
|
19
|
-
authors: Array[String],
|
|
20
|
-
email: Array[String],
|
|
21
|
-
summary: String,
|
|
22
|
-
description: String,
|
|
23
|
-
licenses: Array[String],
|
|
24
|
-
required_ruby_version: Gem::Requirement?,
|
|
25
|
-
require_paths: Array[String],
|
|
26
|
-
bindir: String,
|
|
27
|
-
executables: Array[String],
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
def self.derive_forge_and_origin_repo: (String? homepage_val) -> { forge_org: String?, origin_repo: String? }
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
class GitAdapter
|
|
4
|
-
def initialize: () -> void
|
|
5
|
-
def capture: (Array[String] args) -> [String, bool]
|
|
6
|
-
def push: (String? remote, String branch, force: bool) -> bool
|
|
7
|
-
def current_branch: () -> String?
|
|
8
|
-
def remotes: () -> Array[String]
|
|
9
|
-
def remotes_with_urls: () -> Hash[String, String]
|
|
10
|
-
def remote_url: (String name) -> String?
|
|
11
|
-
def checkout: (String branch) -> bool
|
|
12
|
-
def pull: (String remote, String branch) -> bool
|
|
13
|
-
def fetch: (String remote, String? ref) -> bool
|
|
14
|
-
def clean?: () -> bool
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
class GitCommitFooter
|
|
2
|
-
NAME_ASSIGNMENT_REGEX: ::Regexp
|
|
3
|
-
FOOTER_APPEND: bool
|
|
4
|
-
SENTINEL: String?
|
|
5
|
-
|
|
6
|
-
def self.git_toplevel: () -> String?
|
|
7
|
-
def self.local_hooks_dir: () -> String?
|
|
8
|
-
def self.global_hooks_dir: () -> String
|
|
9
|
-
def self.hooks_path_for: (String filename) -> String
|
|
10
|
-
def self.commit_goalie_path: () -> String
|
|
11
|
-
def self.goalie_allows_footer?: (String subject_line) -> bool
|
|
12
|
-
def self.render: (*Array[String]) -> void
|
|
13
|
-
|
|
14
|
-
def initialize: () -> void
|
|
15
|
-
def render: () -> String
|
|
16
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
class PreReleaseCLI
|
|
4
|
-
IMAGE_URL_CACHE_TTL_SECONDS: Integer
|
|
5
|
-
DEFAULT_IMAGE_URL_SKIP_PATTERNS: Array[String]
|
|
6
|
-
FAMILY_CONFIG_PATHS: Array[String]
|
|
7
|
-
|
|
8
|
-
module HTTP
|
|
9
|
-
def self.parse_http_uri: (String url_str) -> ::URI
|
|
10
|
-
def self.head_ok?: (String url_str, ?limit: Integer, ?timeout: Integer) -> bool
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
module Markdown
|
|
14
|
-
def self.extract_image_urls_from_text: (String text) -> Array[String]
|
|
15
|
-
def self.extract_image_urls_from_files: (?String glob_pattern) -> Array[String]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
class ImageUrlCache
|
|
19
|
-
VERSION: Integer
|
|
20
|
-
|
|
21
|
-
def self.default_path: () -> String?
|
|
22
|
-
def initialize: (path: String?, ?ttl_seconds: Integer, ?clock: ^() -> Time) -> void
|
|
23
|
-
def fresh_success?: (String url) -> bool
|
|
24
|
-
def write_success: (String url) -> void
|
|
25
|
-
def to_h: () -> Hash[String, untyped]
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def initialize: (?check_num: Integer) -> void
|
|
29
|
-
def run: () -> void
|
|
30
|
-
def check_markdown_uri_normalization!: () -> void
|
|
31
|
-
def check_markdown_images_http!: () -> void
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# TypeProf 0.21.11
|
|
2
|
-
|
|
3
|
-
module Kettle
|
|
4
|
-
module Dev
|
|
5
|
-
# Shared utilities for working with Prism AST nodes
|
|
6
|
-
module PrismUtils
|
|
7
|
-
# Parse Ruby source code and return Prism parse result with comments
|
|
8
|
-
def self.parse_with_comments: (String source) -> Prism::ParseResult
|
|
9
|
-
|
|
10
|
-
# Extract statements from a Prism body node
|
|
11
|
-
def self.extract_statements: (Prism::Node? body_node) -> Array[Prism::Node]
|
|
12
|
-
|
|
13
|
-
# Generate a unique key for a statement node to identify equivalent statements
|
|
14
|
-
def self.statement_key: (
|
|
15
|
-
Prism::Node node,
|
|
16
|
-
?tracked_methods: Array[Symbol]
|
|
17
|
-
) -> [Symbol, String?]?
|
|
18
|
-
|
|
19
|
-
# Extract literal value from string or symbol nodes
|
|
20
|
-
def self.extract_literal_value: (Prism::Node? node) -> (String | Symbol)?
|
|
21
|
-
|
|
22
|
-
# Extract qualified constant name from a constant node
|
|
23
|
-
def self.extract_const_name: (Prism::Node? node) -> String?
|
|
24
|
-
|
|
25
|
-
# Find leading comments for a statement node
|
|
26
|
-
def self.find_leading_comments: (
|
|
27
|
-
Prism::ParseResult parse_result,
|
|
28
|
-
Prism::Node current_stmt,
|
|
29
|
-
Prism::Node? prev_stmt,
|
|
30
|
-
Prism::Node body_node
|
|
31
|
-
) -> Array[Prism::Comment]
|
|
32
|
-
|
|
33
|
-
# Find inline comments for a statement node
|
|
34
|
-
def self.inline_comments_for_node: (
|
|
35
|
-
Prism::ParseResult parse_result,
|
|
36
|
-
Prism::Node stmt
|
|
37
|
-
) -> Array[Prism::Comment]
|
|
38
|
-
|
|
39
|
-
# Convert a Prism AST node to Ruby source code
|
|
40
|
-
def self.node_to_source: (Prism::Node? node) -> String
|
|
41
|
-
|
|
42
|
-
# Normalize a call node to use parentheses format
|
|
43
|
-
def self.normalize_call_node: (Prism::Node node) -> String
|
|
44
|
-
|
|
45
|
-
# Normalize an argument node to canonical format
|
|
46
|
-
def self.normalize_argument: (Prism::Node arg) -> String
|
|
47
|
-
|
|
48
|
-
# Check if a node is a specific method call
|
|
49
|
-
def self.call_to?: (Prism::Node node, Symbol method_name) -> bool
|
|
50
|
-
|
|
51
|
-
# Check if a node is a block call to a specific method
|
|
52
|
-
def self.block_call_to?: (Prism::Node node, Symbol method_name) -> bool
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
class ReadmeBackers
|
|
4
|
-
def initialize: (
|
|
5
|
-
handle: String?,
|
|
6
|
-
readme_path: String?,
|
|
7
|
-
osc_api_base: String?,
|
|
8
|
-
osc_default_name: String?,
|
|
9
|
-
osc_empty_message: String?
|
|
10
|
-
) -> void
|
|
11
|
-
|
|
12
|
-
def run!: () -> void
|
|
13
|
-
def validate: () -> void
|
|
14
|
-
|
|
15
|
-
# Selected public helpers (kept minimal)
|
|
16
|
-
def readme_osc_tag: () -> String
|
|
17
|
-
def tag_strings: () -> [String, String]
|
|
18
|
-
def resolve_handle: () -> String
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
class ReleaseCLI
|
|
4
|
-
def initialize: (?start_step: Integer) -> void
|
|
5
|
-
def run: () -> void
|
|
6
|
-
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
def update_readme_kloc_badge!: () -> void
|
|
10
|
-
def update_badge_number_in_file: (String path, String kloc_str) -> void
|
|
11
|
-
def update_rakefile_example_header!: (String version) -> void
|
|
12
|
-
def validate_copyright_years!: () -> void
|
|
13
|
-
def extract_years_from_file: (String path) -> ::Set[Integer]
|
|
14
|
-
def collapse_years: (::_ToA[Integer] enum) -> String
|
|
15
|
-
def reformat_copyright_year_lines!: (String path) -> void
|
|
16
|
-
def inject_years_into_file!: (String path, ::Set[Integer] years_set) -> void
|
|
17
|
-
def extract_release_notes_footer: () -> String?
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# TypeProf 0.21.11
|
|
2
|
-
|
|
3
|
-
module Kettle
|
|
4
|
-
module Dev
|
|
5
|
-
# Prism-based AST merging for templated Ruby files.
|
|
6
|
-
# Handles strategy dispatch (skip/replace/append/merge).
|
|
7
|
-
#
|
|
8
|
-
# Uses prism-merge for AST-aware merging with support for:
|
|
9
|
-
# - Freeze blocks (kettle-dev:freeze / kettle-dev:unfreeze)
|
|
10
|
-
# - Comment preservation
|
|
11
|
-
# - Signature-based node matching
|
|
12
|
-
module SourceMerger
|
|
13
|
-
BUG_URL: String
|
|
14
|
-
|
|
15
|
-
# Apply a templating strategy to merge source and destination Ruby files
|
|
16
|
-
#
|
|
17
|
-
# @param strategy [Symbol] Merge strategy - :skip, :replace, :append, or :merge
|
|
18
|
-
# @param src [String] Template source content
|
|
19
|
-
# @param dest [String] Destination file content
|
|
20
|
-
# @param path [String] File path (for error messages)
|
|
21
|
-
# @return [String] Merged content with comments preserved
|
|
22
|
-
# @raise [Kettle::Dev::Error] If strategy is unknown or merge fails
|
|
23
|
-
def self.apply: (
|
|
24
|
-
strategy: Symbol,
|
|
25
|
-
src: String,
|
|
26
|
-
dest: String,
|
|
27
|
-
path: String
|
|
28
|
-
) -> String
|
|
29
|
-
|
|
30
|
-
# Normalize strategy symbol
|
|
31
|
-
#
|
|
32
|
-
# @param strategy [Symbol, nil] Strategy to normalize
|
|
33
|
-
# @return [Symbol] Normalized strategy (:skip if nil)
|
|
34
|
-
def self.normalize_strategy: (Symbol? strategy) -> Symbol
|
|
35
|
-
|
|
36
|
-
# Warn about bugs and print error information
|
|
37
|
-
#
|
|
38
|
-
# @param path [String] File path that caused the error
|
|
39
|
-
# @param error [StandardError] The error that occurred
|
|
40
|
-
# @return [void]
|
|
41
|
-
def self.warn_bug: (String path, StandardError error) -> void
|
|
42
|
-
|
|
43
|
-
# Ensure text ends with newline
|
|
44
|
-
#
|
|
45
|
-
# @param text [String, nil] Text to process
|
|
46
|
-
# @return [String] Text with trailing newline
|
|
47
|
-
def self.ensure_trailing_newline: (String? text) -> String
|
|
48
|
-
|
|
49
|
-
# Apply append strategy using prism-merge
|
|
50
|
-
#
|
|
51
|
-
# @param src_content [String] Template source content
|
|
52
|
-
# @param dest_content [String] Destination content
|
|
53
|
-
# @return [String] Merged content with destination preference
|
|
54
|
-
def self.apply_append: (String src_content, String dest_content) -> String
|
|
55
|
-
|
|
56
|
-
# Apply merge strategy using prism-merge
|
|
57
|
-
#
|
|
58
|
-
# @param src_content [String] Template source content
|
|
59
|
-
# @param dest_content [String] Destination content
|
|
60
|
-
# @return [String] Merged content with template preference
|
|
61
|
-
def self.apply_merge: (String src_content, String dest_content) -> String
|
|
62
|
-
|
|
63
|
-
# Create a signature generator for prism-merge
|
|
64
|
-
# Handles various Ruby node types for proper matching during merge operations
|
|
65
|
-
#
|
|
66
|
-
# @return [Proc] Signature generator lambda
|
|
67
|
-
def self.create_signature_generator: () -> ^(Prism::Node) -> (Array[untyped] | Prism::Node)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
data/sig/kettle/dev/tasks.rbs
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
module Kettle
|
|
2
|
-
module Dev
|
|
3
|
-
# Helpers shared by kettle:dev Rake tasks for templating and file ops.
|
|
4
|
-
module TemplateHelpers
|
|
5
|
-
# Symbol actions recorded by templating helpers
|
|
6
|
-
type template_action = :create | :replace | :skip | :dir_create | :dir_replace
|
|
7
|
-
|
|
8
|
-
# Root of the host project where Rake was invoked
|
|
9
|
-
def self.project_root: () -> String
|
|
10
|
-
|
|
11
|
-
# Root of this gem's checkout (repository root when working from source)
|
|
12
|
-
def self.gem_checkout_root: () -> String
|
|
13
|
-
|
|
14
|
-
# Simple yes/no prompt.
|
|
15
|
-
def self.ask: (String prompt, bool default) -> bool
|
|
16
|
-
|
|
17
|
-
# Write file content creating directories as needed
|
|
18
|
-
def self.write_file: (String dest_path, String content) -> void
|
|
19
|
-
|
|
20
|
-
# Record a template action for a destination path
|
|
21
|
-
def self.record_template_result: (String dest_path, template_action action) -> void
|
|
22
|
-
|
|
23
|
-
# Access all template results (read-only clone)
|
|
24
|
-
def self.template_results: () -> Hash[String, { action: template_action, timestamp: ::Time }]
|
|
25
|
-
|
|
26
|
-
# Returns true if the given path was created or replaced by the template task in this run
|
|
27
|
-
def self.modified_by_template?: (String dest_path) -> bool
|
|
28
|
-
|
|
29
|
-
# Ensure git working tree is clean before making changes in a task.
|
|
30
|
-
# If not a git repo, this is a no-op.
|
|
31
|
-
def self.ensure_clean_git!: (root: String, task_label: String) -> void
|
|
32
|
-
|
|
33
|
-
# Copy a single file with interactive prompts for create/replace.
|
|
34
|
-
def self.copy_file_with_prompt: (
|
|
35
|
-
String src_path,
|
|
36
|
-
String dest_path,
|
|
37
|
-
?allow_create: bool,
|
|
38
|
-
?allow_replace: bool
|
|
39
|
-
) -> void
|
|
40
|
-
|
|
41
|
-
# Copy a directory tree, prompting before creating or overwriting.
|
|
42
|
-
def self.copy_dir_with_prompt: (String src_dir, String dest_dir) -> void
|
|
43
|
-
|
|
44
|
-
# Apply common token replacements used when templating text files
|
|
45
|
-
def self.apply_common_replacements: (
|
|
46
|
-
String content,
|
|
47
|
-
org: String?,
|
|
48
|
-
gem_name: String,
|
|
49
|
-
namespace: String,
|
|
50
|
-
namespace_shield: String,
|
|
51
|
-
gem_shield: String,
|
|
52
|
-
?funding_org: String?,
|
|
53
|
-
?min_ruby: String?
|
|
54
|
-
) -> String
|
|
55
|
-
|
|
56
|
-
# Parse gemspec metadata and derive useful strings
|
|
57
|
-
# When no gemspec is present, gemspec_path may be nil; gh_org/gh_repo may be nil when not derivable.
|
|
58
|
-
def self.gemspec_metadata: (?String root) -> {
|
|
59
|
-
gemspec_path: String?,
|
|
60
|
-
gem_name: String,
|
|
61
|
-
min_ruby: String,
|
|
62
|
-
homepage: String,
|
|
63
|
-
gh_org: String?,
|
|
64
|
-
forge_org: String?,
|
|
65
|
-
funding_org: String?,
|
|
66
|
-
gh_repo: String?,
|
|
67
|
-
namespace: String,
|
|
68
|
-
namespace_shield: String,
|
|
69
|
-
entrypoint_require: String,
|
|
70
|
-
gem_shield: String,
|
|
71
|
-
authors: Array[String],
|
|
72
|
-
email: Array[String],
|
|
73
|
-
summary: String,
|
|
74
|
-
description: String,
|
|
75
|
-
license: String,
|
|
76
|
-
licenses: Array[String],
|
|
77
|
-
required_ruby_version: String,
|
|
78
|
-
require_paths: Array[String],
|
|
79
|
-
bindir: String,
|
|
80
|
-
executables: Array[String],
|
|
81
|
-
}
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
data/sig/kettle/dev/version.rbs
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# TypeProf 0.21.11
|
|
2
|
-
|
|
3
|
-
module Kettle
|
|
4
|
-
module Dev
|
|
5
|
-
# Shared helpers for version detection and bump classification
|
|
6
|
-
module Versioning
|
|
7
|
-
# Detects a unique VERSION constant declared under lib/**/version.rb
|
|
8
|
-
def self.detect_version: (String root) -> String
|
|
9
|
-
|
|
10
|
-
# Classify the bump type from prev -> cur
|
|
11
|
-
def self.classify_bump: (String prev, String cur) -> Symbol
|
|
12
|
-
|
|
13
|
-
# Whether MAJOR is an EPIC version (strictly > 1000)
|
|
14
|
-
def self.epic_major?: (Integer major) -> bool
|
|
15
|
-
|
|
16
|
-
# Abort via ExitAdapter if available; otherwise Kernel.abort
|
|
17
|
-
def self.abort!: (String msg) -> void
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
data/sig/kettle/emoji_regex.rbs
DELETED
data/sig/kettle-dev.rbs
DELETED
|
File without changes
|