makit 0.0.111 → 0.0.126

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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/lib/makit/cli/repository_commands.rb +1 -1
  3. data/lib/makit/commands/middleware/cache.rb +3 -3
  4. data/lib/makit/commands/middleware/command_logger.rb +33 -45
  5. data/lib/makit/commands/request.rb +63 -1
  6. data/lib/makit/commands/runner.rb +56 -5
  7. data/lib/makit/commands/strategies/base.rb +13 -2
  8. data/lib/makit/commands/strategies/synchronous.rb +11 -6
  9. data/lib/makit/commands.rb +8 -0
  10. data/lib/makit/configuration/gitlab_helper.rb +0 -2
  11. data/lib/makit/configuration/project.rb +48 -8
  12. data/lib/makit/configuration/step.rb +3 -3
  13. data/lib/makit/content/default_gitignore.txt +226 -0
  14. data/lib/makit/directories.rb +3 -4
  15. data/lib/makit/docs/files.rb +1 -1
  16. data/lib/makit/docs/rake.rb +1 -1
  17. data/lib/makit/dotnet/cli.rb +69 -65
  18. data/lib/makit/dotnet/project.rb +71 -7
  19. data/lib/makit/examples/runner.rb +2 -2
  20. data/lib/makit/logging/configuration.rb +9 -6
  21. data/lib/makit/logging/format_registry.rb +84 -84
  22. data/lib/makit/logging/formatters/console_formatter.rb +22 -9
  23. data/lib/makit/logging/log_request.rb +6 -2
  24. data/lib/makit/logging/logger.rb +45 -5
  25. data/lib/makit/logging/sinks/base.rb +91 -91
  26. data/lib/makit/logging/sinks/structured.rb +123 -129
  27. data/lib/makit/logging/sinks/unified_file_sink.rb +39 -46
  28. data/lib/makit/logging.rb +45 -1
  29. data/lib/makit/mp/project_mp.rb +6 -6
  30. data/lib/makit/mp/string_mp.rb +108 -265
  31. data/lib/makit/serializer.rb +14 -1
  32. data/lib/makit/services/builder.rb +5 -5
  33. data/lib/makit/services/repository_manager.rb +8 -6
  34. data/lib/makit/setup/classlib.rb +44 -7
  35. data/lib/makit/setup/gem.rb +268 -250
  36. data/lib/makit/setup/razorclasslib.rb +91 -0
  37. data/lib/makit/setup/runner.rb +36 -22
  38. data/lib/makit/setup.rb +5 -0
  39. data/lib/makit/symbols.rb +10 -1
  40. data/lib/makit/tasks/at_exit.rb +3 -1
  41. data/lib/makit/tasks/build.rb +16 -12
  42. data/lib/makit/tasks/clean.rb +2 -0
  43. data/lib/makit/tasks/configure.rb +10 -0
  44. data/lib/makit/tasks/format.rb +10 -0
  45. data/lib/makit/tasks/hook_manager.rb +160 -8
  46. data/lib/makit/tasks/init.rb +2 -0
  47. data/lib/makit/tasks/integrate.rb +17 -3
  48. data/lib/makit/tasks/pull_incoming.rb +6 -5
  49. data/lib/makit/tasks/setup.rb +10 -3
  50. data/lib/makit/tasks/sync.rb +13 -7
  51. data/lib/makit/tasks/tag.rb +16 -0
  52. data/lib/makit/tasks/task_monkey_patch.rb +58 -56
  53. data/lib/makit/tasks/test.rb +22 -0
  54. data/lib/makit/tasks/update.rb +18 -0
  55. data/lib/makit/tasks.rb +20 -5
  56. data/lib/makit/v1/makit.v1_pb.rb +1 -0
  57. data/lib/makit/version.rb +1 -1
  58. data/lib/makit/version_util.rb +21 -0
  59. data/lib/makit copy.rb +44 -0
  60. data/lib/makit.rb +31 -0
  61. metadata +118 -13
  62. data/lib/makit/command_runner.rb +0 -463
  63. data/lib/makit/commands/compatibility.rb +0 -365
  64. data/lib/makit/commands/middleware/unified_logger.rb +0 -243
  65. data/lib/makit/task_hooks.rb +0 -125
@@ -1,125 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "fileutils"
4
- require "rake"
5
-
6
- module Makit
7
- # Task hooks for automatic timing, logging, and lifecycle management
8
- # This provides optional instrumentation for Rake tasks
9
- class TaskHooks
10
- class << self
11
- attr_reader :enabled, :task_stack, :performance_log
12
-
13
- def initialize!
14
- @enabled = false # Start disabled - must be explicitly enabled
15
- @task_stack = []
16
- @performance_log = "artifacts/task_performance.log"
17
- @hooks_installed = false
18
- end
19
-
20
- def setup!
21
- return if @hooks_installed
22
-
23
- initialize! unless defined?(@enabled)
24
-
25
- Rake::Task.class_eval do
26
- alias_method :makit_original_execute, :execute
27
-
28
- def execute(args = nil)
29
- if Makit::TaskHooks.enabled?
30
- Makit::TaskHooks.before_execute(name, args)
31
- result = makit_original_execute(args)
32
- Makit::TaskHooks.after_execute(name, args, result)
33
- result
34
- else
35
- makit_original_execute(args)
36
- end
37
- rescue StandardError => e
38
- Makit::TaskHooks.on_error(name, args, e) if Makit::TaskHooks.enabled?
39
- raise
40
- end
41
- end
42
-
43
- @hooks_installed = true
44
- end
45
-
46
- def enable!
47
- initialize! unless defined?(@enabled)
48
- @enabled = true
49
- puts "🔧 Task timing enabled".colorize(:grey) if defined?(String.instance_method(:colorize))
50
- end
51
-
52
- def disable!
53
- @enabled = false
54
- end
55
-
56
- def enabled?
57
- @enabled == true
58
- end
59
-
60
- def before_execute(name, _args)
61
- return unless enabled?
62
-
63
- @task_stack.push({
64
- name: name,
65
- start_time: Time.now,
66
- level: @task_stack.length,
67
- })
68
- end
69
-
70
- def after_execute(name, _args, _result)
71
- return unless enabled?
72
-
73
- task_info = @task_stack.pop
74
- return unless task_info && task_info[:name] == name
75
-
76
- duration = Time.now - task_info[:start_time]
77
- log_task_performance(name, duration, task_info[:level]) if duration > 0.1
78
- end
79
-
80
- def on_error(name, _args, error)
81
- return unless enabled?
82
-
83
- task_info = @task_stack.pop
84
- return unless task_info
85
-
86
- duration = Time.now - task_info[:start_time]
87
- log_task_failure(name, duration, error, task_info[:level])
88
- end
89
-
90
- def clear_performance_logs
91
- FileUtils.rm_f(@performance_log)
92
- FileUtils.rm_f("artifacts/task_failures.log")
93
- end
94
-
95
- private
96
-
97
- def log_task_performance(name, duration, level)
98
- return if ENV["CI"] == "true" && duration < 1.0
99
-
100
- FileUtils.mkdir_p("artifacts")
101
- File.open(@performance_log, "a") do |f|
102
- f.puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")},#{name},#{duration.round(4)},#{level}"
103
- end
104
- rescue StandardError
105
- # Silently fail performance logging to not interrupt tasks
106
- end
107
-
108
- def log_task_failure(name, duration, error, _level)
109
- failure_log = "artifacts/task_failures.log"
110
- FileUtils.mkdir_p("artifacts")
111
-
112
- File.open(failure_log, "a") do |f|
113
- timestamp = Time.now.strftime("%Y-%m-%d %H:%M:%S")
114
- message = error.message.gsub(",", ";")
115
- f.puts "#{timestamp},#{name},#{duration.round(4)},#{error.class.name},#{message}"
116
- end
117
- rescue StandardError
118
- # Silently fail error logging
119
- end
120
- end
121
-
122
- # Initialize when loaded
123
- initialize!
124
- end
125
- end