makit 0.0.111 → 0.0.112

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -41
  3. data/exe/makit +5 -5
  4. data/lib/makit/apache.rb +28 -28
  5. data/lib/makit/cli/build_commands.rb +500 -500
  6. data/lib/makit/cli/generators/base_generator.rb +74 -74
  7. data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
  8. data/lib/makit/cli/generators/generator_factory.rb +49 -49
  9. data/lib/makit/cli/generators/node_generator.rb +50 -50
  10. data/lib/makit/cli/generators/ruby_generator.rb +77 -77
  11. data/lib/makit/cli/generators/rust_generator.rb +50 -50
  12. data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
  13. data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
  14. data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
  15. data/lib/makit/cli/generators/templates/ruby/gemspec.rb +40 -40
  16. data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
  17. data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
  18. data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
  19. data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
  20. data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
  21. data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
  22. data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
  23. data/lib/makit/cli/main.rb +62 -62
  24. data/lib/makit/cli/project_commands.rb +868 -868
  25. data/lib/makit/cli/repository_commands.rb +661 -661
  26. data/lib/makit/cli/utility_commands.rb +521 -521
  27. data/lib/makit/commands/factory.rb +359 -359
  28. data/lib/makit/commands/middleware/base.rb +73 -73
  29. data/lib/makit/commands/middleware/cache.rb +248 -248
  30. data/lib/makit/commands/middleware/command_logger.rb +320 -323
  31. data/lib/makit/commands/middleware/unified_logger.rb +243 -243
  32. data/lib/makit/commands/middleware/validator.rb +269 -269
  33. data/lib/makit/commands/request.rb +254 -254
  34. data/lib/makit/commands/result.rb +323 -323
  35. data/lib/makit/commands/runner.rb +337 -317
  36. data/lib/makit/commands/strategies/base.rb +160 -160
  37. data/lib/makit/commands/strategies/synchronous.rb +134 -134
  38. data/lib/makit/commands.rb +51 -42
  39. data/lib/makit/configuration/gitlab_helper.rb +60 -60
  40. data/lib/makit/configuration/project.rb +127 -127
  41. data/lib/makit/configuration/rakefile_helper.rb +43 -43
  42. data/lib/makit/configuration/step.rb +34 -34
  43. data/lib/makit/configuration.rb +14 -14
  44. data/lib/makit/content/default_gitignore.rb +7 -7
  45. data/lib/makit/content/default_rakefile.rb +13 -13
  46. data/lib/makit/content/gem_rakefile.rb +16 -16
  47. data/lib/makit/context.rb +1 -1
  48. data/lib/makit/data.rb +49 -49
  49. data/lib/makit/directories.rb +141 -141
  50. data/lib/makit/directory.rb +262 -262
  51. data/lib/makit/docs/files.rb +89 -89
  52. data/lib/makit/docs/rake.rb +102 -102
  53. data/lib/makit/dotnet/project.rb +153 -153
  54. data/lib/makit/dotnet/solution.rb +38 -38
  55. data/lib/makit/dotnet/solution_classlib.rb +239 -239
  56. data/lib/makit/dotnet/solution_console.rb +264 -264
  57. data/lib/makit/dotnet/solution_maui.rb +354 -354
  58. data/lib/makit/dotnet/solution_wasm.rb +275 -275
  59. data/lib/makit/dotnet/solution_wpf.rb +304 -304
  60. data/lib/makit/dotnet.rb +102 -102
  61. data/lib/makit/email.rb +90 -90
  62. data/lib/makit/environment.rb +142 -142
  63. data/lib/makit/examples/runner.rb +370 -370
  64. data/lib/makit/exceptions.rb +45 -45
  65. data/lib/makit/fileinfo.rb +24 -24
  66. data/lib/makit/files.rb +43 -43
  67. data/lib/makit/gems.rb +40 -40
  68. data/lib/makit/git/cli.rb +54 -54
  69. data/lib/makit/git/repository.rb +90 -90
  70. data/lib/makit/git.rb +98 -98
  71. data/lib/makit/gitlab_runner.rb +59 -59
  72. data/lib/makit/humanize.rb +137 -137
  73. data/lib/makit/indexer.rb +47 -47
  74. data/lib/makit/logging/configuration.rb +305 -305
  75. data/lib/makit/logging/formatters/base.rb +39 -39
  76. data/lib/makit/logging/formatters/console_formatter.rb +140 -127
  77. data/lib/makit/logging/formatters/json_formatter.rb +65 -65
  78. data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
  79. data/lib/makit/logging/formatters/text_formatter.rb +64 -64
  80. data/lib/makit/logging/log_request.rb +115 -115
  81. data/lib/makit/logging/logger.rb +163 -159
  82. data/lib/makit/logging/sinks/console.rb +72 -72
  83. data/lib/makit/logging/sinks/file_sink.rb +92 -92
  84. data/lib/makit/logging/sinks/unified_file_sink.rb +303 -303
  85. data/lib/makit/logging.rb +530 -521
  86. data/lib/makit/markdown.rb +75 -75
  87. data/lib/makit/mp/basic_object_mp.rb +17 -17
  88. data/lib/makit/mp/command_mp.rb +13 -13
  89. data/lib/makit/mp/command_request.mp.rb +17 -17
  90. data/lib/makit/mp/project_mp.rb +199 -199
  91. data/lib/makit/mp/string_mp.rb +193 -348
  92. data/lib/makit/nuget.rb +74 -74
  93. data/lib/makit/port.rb +32 -32
  94. data/lib/makit/process.rb +163 -163
  95. data/lib/makit/protoc.rb +107 -107
  96. data/lib/makit/rake/cli.rb +196 -196
  97. data/lib/makit/rake.rb +25 -25
  98. data/lib/makit/ruby/cli.rb +185 -185
  99. data/lib/makit/ruby.rb +25 -25
  100. data/lib/makit/secrets.rb +51 -51
  101. data/lib/makit/serializer.rb +130 -117
  102. data/lib/makit/services/builder.rb +186 -186
  103. data/lib/makit/services/error_handler.rb +226 -226
  104. data/lib/makit/services/repository_manager.rb +229 -229
  105. data/lib/makit/services/validator.rb +112 -112
  106. data/lib/makit/setup/classlib.rb +53 -53
  107. data/lib/makit/setup/gem.rb +30 -17
  108. data/lib/makit/setup/runner.rb +45 -40
  109. data/lib/makit/setup.rb +5 -0
  110. data/lib/makit/show.rb +110 -110
  111. data/lib/makit/storage.rb +126 -126
  112. data/lib/makit/symbols.rb +170 -161
  113. data/lib/makit/task_info.rb +128 -128
  114. data/lib/makit/tasks/at_exit.rb +13 -13
  115. data/lib/makit/tasks/build.rb +19 -18
  116. data/lib/makit/tasks/clean.rb +11 -11
  117. data/lib/makit/tasks/hook_manager.rb +393 -239
  118. data/lib/makit/tasks/init.rb +47 -47
  119. data/lib/makit/tasks/integrate.rb +17 -15
  120. data/lib/makit/tasks/pull_incoming.rb +11 -12
  121. data/lib/makit/tasks/setup.rb +6 -6
  122. data/lib/makit/tasks/sync.rb +12 -11
  123. data/lib/makit/tasks/tag.rb +15 -0
  124. data/lib/makit/tasks/task_monkey_patch.rb +79 -79
  125. data/lib/makit/tasks.rb +10 -0
  126. data/lib/makit/test_cache.rb +239 -239
  127. data/lib/makit/tree.rb +37 -37
  128. data/lib/makit/v1/makit.v1_pb.rb +34 -34
  129. data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
  130. data/lib/makit/version.rb +5 -5
  131. data/lib/makit/version_util.rb +21 -0
  132. data/lib/makit/wix.rb +95 -95
  133. data/lib/makit/yaml.rb +29 -29
  134. data/lib/makit/zip.rb +17 -17
  135. data/lib/makit copy.rb +44 -0
  136. data/lib/makit.rb +40 -8
  137. metadata +50 -7
  138. data/lib/makit/command_runner.rb +0 -463
  139. data/lib/makit/commands/compatibility.rb +0 -365
  140. data/lib/makit/task_hooks.rb +0 -125
@@ -1,47 +1,47 @@
1
- Rake.application.top_level_tasks.unshift("init")
2
-
3
- task :init do
4
- puts "-" * 80
5
- humanized_timestamp = Makit::Humanize.get_humanized_timestamp(Time.now)
6
- # log the rake + arguments, as it would be invoke at the console.
7
- # for instance: rake -T
8
- # or: rake
9
- # or: rake clean
10
- # or: rake LOG_LEVEL=debug
11
- command = "rake #{ARGV.join(" ")}"
12
- message = "#{command} (#{humanized_timestamp})"
13
-
14
- # Create filename-friendly version of rake command
15
- rake_name = command.gsub(/[^a-zA-Z0-9\-_]/, "_").gsub(/_+/, "_").gsub(/^_|_$/, "")
16
-
17
- # Get the default logger and add custom file logging sinks
18
- log = Makit::Logging.default_logger
19
-
20
- # Add structured JSON and simple text logging sinks to the default logger
21
- additional_sinks = [
22
- Makit::Logging::Sinks::UnifiedFileSink.new(
23
- configurations: [
24
- # Structured JSON logging
25
- {
26
- file: "artifacts/#{rake_name}.json",
27
- format: :json,
28
- append: true,
29
- include_metadata: true,
30
- },
31
- # Simple text logging with rendered context
32
- {
33
- file: "artifacts/#{rake_name}.txt",
34
- format: :plain,
35
- append: true,
36
- include_context: true,
37
- },
38
- ],
39
- ),
40
- ]
41
-
42
- # Add the additional sinks to the default logger
43
- log.sinks.concat(additional_sinks)
44
-
45
- # Log with the enhanced default logger
46
- log.info(message)
47
- end
1
+ Rake.application.top_level_tasks.unshift("init")
2
+
3
+ task :init do
4
+ puts "-" * 80
5
+ humanized_timestamp = Makit::Humanize.get_humanized_timestamp(Time.now)
6
+ # log the rake + arguments, as it would be invoke at the console.
7
+ # for instance: rake -T
8
+ # or: rake
9
+ # or: rake clean
10
+ # or: rake LOG_LEVEL=debug
11
+ command = "rake #{ARGV.join(" ")}"
12
+ message = "#{command} (#{humanized_timestamp})"
13
+
14
+ # Create filename-friendly version of rake command
15
+ rake_name = command.gsub(/[^a-zA-Z0-9\-_]/, "_").gsub(/_+/, "_").gsub(/^_|_$/, "")
16
+
17
+ # Get the default logger and add custom file logging sinks
18
+ log = Makit::Logging.default_logger
19
+
20
+ # Add structured JSON and simple text logging sinks to the default logger
21
+ additional_sinks = [
22
+ Makit::Logging::Sinks::UnifiedFileSink.new(
23
+ configurations: [
24
+ # Structured JSON logging
25
+ {
26
+ file: "artifacts/#{rake_name}.json",
27
+ format: :json,
28
+ append: true,
29
+ include_metadata: true,
30
+ },
31
+ # Simple text logging with rendered context
32
+ {
33
+ file: "artifacts/#{rake_name}.txt",
34
+ format: :plain,
35
+ append: true,
36
+ include_context: true,
37
+ },
38
+ ],
39
+ ),
40
+ ]
41
+
42
+ # Add the additional sinks to the default logger
43
+ log.sinks.concat(additional_sinks)
44
+
45
+ # Log with the enhanced default logger
46
+ log.info(message)
47
+ end
@@ -1,15 +1,17 @@
1
- require_relative "../git/repository"
2
-
3
- if Makit::Git::Repository.git_repo?
4
- desc "Integrate changes into the git repository."
5
- task :integrate do
6
- unstaged_files = Makit::Git::Repository.unstaged_files
7
- untracked_files = Makit::Git::Repository.untracked_files
8
- if unstaged_files.length.positive? || untracked_files.length.positive?
9
- Makit::Git::CLI.integrate
10
- else
11
- Makit::Logging.default_logger.info("No unstaged or untracked files found")
12
- #puts " No unstaged or untracked files found".colorize(:grey)
13
- end
14
- end
15
- end
1
+ require_relative "../git/repository"
2
+
3
+ if Dir.exist?(".git")
4
+ desc "Integrate changes into the git repository."
5
+ task :integrate do
6
+ unstaged_files = Makit::Git::Repository.unstaged_files
7
+ untracked_files = Makit::Git::Repository.untracked_files
8
+ if unstaged_files.length.positive? || untracked_files.length.positive?
9
+ Makit::Git::CLI.integrate
10
+ else
11
+ Makit::Logging.default_logger.info("No unstaged or untracked files found")
12
+ #puts " No unstaged or untracked files found".colorize(:grey)
13
+ end
14
+ end
15
+ else
16
+ Makit::Logging.default_logger.info("Not a git repository, skipping integrate")
17
+ end
@@ -1,12 +1,11 @@
1
- require_relative "../git/repository"
2
-
3
- if Makit::Git::Repository.git_repo?
4
- desc "pull changes from the remote branch, preferring incoming changes for conflicts"
5
- task :pull_incoming do
6
- Makit::TaskInfo.track(:pull_incoming) do
7
- # Makit::SHOW.task(:pull_incoming)
8
- puts " git branch is ".colorize(:grey) + Makit::Git::Repository.branch.to_s.colorize(:green)
9
- "git pull origin #{Makit::Git::Repository.branch} -X theirs".try
10
- end
11
- end
12
- end
1
+ require_relative "../git/repository"
2
+
3
+ if Makit::Git::Repository.git_repo?
4
+ desc "pull changes from the remote branch, preferring incoming changes for conflicts"
5
+ task :pull_incoming do
6
+ # Makit::SHOW.task(:pull_incoming)
7
+ puts " git branch is ".colorize(:grey) + Makit::Git::Repository.branch.to_s.colorize(:green)
8
+ "git pull origin #{Makit::Git::Repository.branch} -X theirs".try
9
+ end
10
+
11
+ end
@@ -1,6 +1,6 @@
1
- require_relative "../setup/runner"
2
-
3
- desc "Setup project files.."
4
- task :setup do
5
- Makit::Setup::Runner.run
6
- end
1
+ require_relative "../setup/runner"
2
+
3
+ desc "Setup project files.."
4
+ task :setup do
5
+ Makit::Setup::Runner.run
6
+ end
@@ -1,11 +1,12 @@
1
- require_relative "../git/repository"
2
-
3
- if Makit::Git::Repository.git_repo?
4
- desc "Sync changes with the git repository."
5
- task sync: %i[integrate pull_incoming] do
6
- Makit::TaskInfo.track(:sync) do
7
- # Makit::SHOW.task(:sync)
8
- Makit::Git::CLI.sync
9
- end
10
- end
11
- end
1
+ require_relative "../git/repository"
2
+
3
+ if Dir.exist?(".git")
4
+ desc "Sync changes with the git repository."
5
+ task :sync do
6
+ # Makit::SHOW.task(:sync)
7
+ #Makit::Git::CLI.sync
8
+ end
9
+
10
+ else
11
+ Makit::Logging.default_logger.info("Not a git repository, skipping sync")
12
+ end
@@ -0,0 +1,15 @@
1
+ if Dir.exist?(".git")
2
+ desc "tag the current version"
3
+ task :tag do
4
+
5
+ # check if the variable VERSION is defined
6
+ unless defined?(VERSION)
7
+ puts " VERSION is not defined".colorize(:red)
8
+ return
9
+ end
10
+
11
+ Makit::Git::CLI.tag(VERSION)
12
+ end
13
+ else
14
+ Makit::Logging.default_logger.info("Not a git repository, skipping tag")
15
+ end
@@ -1,79 +1,79 @@
1
- # frozen_string_literal: true
2
-
3
- # Monkey patch for Rake::Task to add hook support
4
- #
5
- # This module patches Rake::Task to automatically execute pre and post hooks
6
- # for all task invocations. It preserves the original behavior while adding
7
- # the hook functionality.
8
- #
9
- # @note This file should be required after the HookManager class is defined
10
- require_relative "hook_manager"
11
-
12
- # Monkey patch Rake::Task to add hook support
13
- class Rake::Task
14
- # Store original methods before patching
15
- alias_method :original_invoke, :invoke
16
- alias_method :original_execute, :execute
17
-
18
- # Enhanced invoke method with hook support
19
- #
20
- # This method wraps the original invoke method to execute pre and post hooks
21
- # around task execution. It handles errors gracefully and ensures hooks are
22
- # always executed even if the task fails.
23
- #
24
- # @param args [Array] arguments passed to the task
25
- # @return [Object] the result of the task execution
26
- def invoke(*args)
27
- start_time = Time.now
28
- result = nil
29
- error = nil
30
-
31
- begin
32
- # Execute pre-task hooks
33
- Makit::Tasks::HookManager.execute_pre_hooks(name)
34
-
35
- # Execute the original task
36
- result = original_invoke(*args)
37
- rescue => e
38
- error = e
39
- raise
40
- ensure
41
- # Execute post-task hooks (always runs, even on error)
42
- duration = Time.now - start_time
43
- Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
44
- end
45
-
46
- result
47
- end
48
-
49
- # Enhanced execute method with hook support
50
- #
51
- # This method wraps the original execute method to execute pre and post hooks
52
- # around task execution. It handles errors gracefully and ensures hooks are
53
- # always executed even if the task fails.
54
- #
55
- # @param args [Array] arguments passed to the task
56
- # @return [Object] the result of the task execution
57
- def execute(*args)
58
- start_time = Time.now
59
- result = nil
60
- error = nil
61
-
62
- begin
63
- # Execute pre-task hooks
64
- Makit::Tasks::HookManager.execute_pre_hooks(name)
65
-
66
- # Execute the original task
67
- result = original_execute(*args)
68
- rescue => e
69
- error = e
70
- raise
71
- ensure
72
- # Execute post-task hooks (always runs, even on error)
73
- duration = Time.now - start_time
74
- Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
75
- end
76
-
77
- result
78
- end
79
- end
1
+ # frozen_string_literal: true
2
+
3
+ # Monkey patch for Rake::Task to add hook support
4
+ #
5
+ # This module patches Rake::Task to automatically execute pre and post hooks
6
+ # for all task invocations. It preserves the original behavior while adding
7
+ # the hook functionality.
8
+ #
9
+ # @note This file should be required after the HookManager class is defined
10
+ require_relative "hook_manager"
11
+
12
+ # Monkey patch Rake::Task to add hook support
13
+ class Rake::Task
14
+ # Store original methods before patching
15
+ alias_method :original_invoke, :invoke
16
+ alias_method :original_execute, :execute
17
+
18
+ # Enhanced invoke method with hook support
19
+ #
20
+ # This method wraps the original invoke method to execute pre and post hooks
21
+ # around task execution. It handles errors gracefully and ensures hooks are
22
+ # always executed even if the task fails.
23
+ #
24
+ # @param args [Array] arguments passed to the task
25
+ # @return [Object] the result of the task execution
26
+ def invoke(*args)
27
+ start_time = Time.now
28
+ result = nil
29
+ error = nil
30
+
31
+ begin
32
+ # Execute pre-task hooks
33
+ Makit::Tasks::HookManager.execute_pre_hooks(name)
34
+
35
+ # Execute the original task
36
+ result = original_invoke(*args)
37
+ rescue => e
38
+ error = e
39
+ raise
40
+ ensure
41
+ # Execute post-task hooks (always runs, even on error)
42
+ duration = Time.now - start_time
43
+ Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
44
+ end
45
+
46
+ result
47
+ end
48
+
49
+ # Enhanced execute method with hook support
50
+ #
51
+ # This method wraps the original execute method to execute pre and post hooks
52
+ # around task execution. It handles errors gracefully and ensures hooks are
53
+ # always executed even if the task fails.
54
+ #
55
+ # @param args [Array] arguments passed to the task
56
+ # @return [Object] the result of the task execution
57
+ def execute(*args)
58
+ start_time = Time.now
59
+ result = nil
60
+ error = nil
61
+
62
+ begin
63
+ # Execute pre-task hooks
64
+ Makit::Tasks::HookManager.execute_pre_hooks(name)
65
+
66
+ # Execute the original task
67
+ result = original_execute(*args)
68
+ rescue => e
69
+ error = e
70
+ raise
71
+ ensure
72
+ # Execute post-task hooks (always runs, even on error)
73
+ duration = Time.now - start_time
74
+ Makit::Tasks::HookManager.execute_post_hooks(name, duration, result, error)
75
+ end
76
+
77
+ result
78
+ end
79
+ end
data/lib/makit/tasks.rb CHANGED
@@ -3,3 +3,13 @@
3
3
  # Load all task-related modules
4
4
  require_relative "tasks/hook_manager"
5
5
  require_relative "tasks/task_monkey_patch"
6
+
7
+ require_relative "tasks/clean"
8
+ require_relative "tasks/integrate"
9
+ require_relative "tasks/tag"
10
+ require_relative "tasks/pull_incoming"
11
+ #require_relative "tasks/publish"
12
+ #require_relative "tasks/install"
13
+ require_relative "tasks/sync"
14
+ #require_relative "tasks/configure"
15
+ require_relative "tasks/setup"