tayo 0.1.7 → 0.1.8
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/DEBUG_GUIDE.md +155 -0
- data/lib/tayo/commands/init.rb +31 -1
- data/lib/tayo/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da1c2b256c1dafba3c750dc5f8fe18487db251584646fc485576bf338544bfe1
|
4
|
+
data.tar.gz: 61ea6d61163327ef47b1462a290935eec9a899db30703012f12cbdcf0b6bf021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6723d0513bb51d2417dee22159d8b10bfd22714bbe99376a289ed0b723f0dc93e2e6a9294662f2272f8f77872752eedf8f40dc16770af03aa559b2e55841d922
|
7
|
+
data.tar.gz: 68017f8f0f916c510101abd914dd1ac117befd8bcbb726942a79da7f76b51b70401fdafd162753a5d4e402ca012916933bef6d881a4bb0716ee8b59c41b8913f
|
data/DEBUG_GUIDE.md
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
# Tayo 실행 환경 문제 해결 가이드
|
2
|
+
|
3
|
+
## 1. 현재 설치된 gem 버전 확인
|
4
|
+
|
5
|
+
```bash
|
6
|
+
# 시스템에 설치된 tayo gem 버전 확인
|
7
|
+
gem list tayo
|
8
|
+
|
9
|
+
# 프로젝트에서 사용 중인 버전 확인 (Bundler 사용 시)
|
10
|
+
bundle show tayo
|
11
|
+
|
12
|
+
# 어느 위치의 gem이 실행되는지 확인
|
13
|
+
which tayo
|
14
|
+
gem which tayo
|
15
|
+
```
|
16
|
+
|
17
|
+
## 2. 버전 업데이트
|
18
|
+
|
19
|
+
### 시스템 전체 gem 업데이트
|
20
|
+
```bash
|
21
|
+
# 최신 버전으로 업데이트
|
22
|
+
gem update tayo
|
23
|
+
|
24
|
+
# 특정 버전 설치
|
25
|
+
gem install tayo -v 0.1.7
|
26
|
+
|
27
|
+
# 기존 버전 모두 제거 후 재설치
|
28
|
+
gem uninstall tayo --all
|
29
|
+
gem install tayo
|
30
|
+
```
|
31
|
+
|
32
|
+
### Bundler 사용 시
|
33
|
+
```bash
|
34
|
+
# Gemfile에서 버전 확인
|
35
|
+
cat Gemfile | grep tayo
|
36
|
+
|
37
|
+
# bundle update
|
38
|
+
bundle update tayo
|
39
|
+
|
40
|
+
# 또는 Gemfile에 버전 명시
|
41
|
+
# gem 'tayo', '~> 0.1.7'
|
42
|
+
|
43
|
+
# bundle install
|
44
|
+
bundle install
|
45
|
+
```
|
46
|
+
|
47
|
+
## 3. 실행 방법별 확인
|
48
|
+
|
49
|
+
### 직접 실행
|
50
|
+
```bash
|
51
|
+
tayo init
|
52
|
+
```
|
53
|
+
|
54
|
+
### Bundle exec 사용
|
55
|
+
```bash
|
56
|
+
bundle exec tayo init
|
57
|
+
```
|
58
|
+
|
59
|
+
### 프로젝트 내 개발 버전 사용
|
60
|
+
```bash
|
61
|
+
# Gemfile에 로컬 경로 지정
|
62
|
+
# gem 'tayo', path: '/path/to/tayo'
|
63
|
+
```
|
64
|
+
|
65
|
+
## 4. 디버깅 정보 수집
|
66
|
+
|
67
|
+
다음 스크립트를 실행하여 환경 정보를 수집하세요:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
# debug_tayo.rb
|
71
|
+
puts "=== Tayo 디버깅 정보 ==="
|
72
|
+
puts "Ruby 버전: #{RUBY_VERSION}"
|
73
|
+
puts "Bundler 사용: #{defined?(Bundler) ? 'Yes' : 'No'}"
|
74
|
+
|
75
|
+
require 'tayo/version'
|
76
|
+
puts "Tayo 버전: #{Tayo::VERSION}"
|
77
|
+
|
78
|
+
require 'tayo/commands/init'
|
79
|
+
init = Tayo::Commands::Init.new
|
80
|
+
|
81
|
+
# gem 위치 확인
|
82
|
+
spec = Gem::Specification.find_by_name('tayo')
|
83
|
+
puts "Gem 위치: #{spec.gem_dir}"
|
84
|
+
puts "Gem 버전: #{spec.version}"
|
85
|
+
|
86
|
+
# 메서드 존재 확인
|
87
|
+
puts "fix_dockerfile_bootsnap_issue 메서드 존재: #{init.respond_to?(:fix_dockerfile_bootsnap_issue, true)}"
|
88
|
+
|
89
|
+
# 메서드 위치 확인
|
90
|
+
if init.respond_to?(:fix_dockerfile_bootsnap_issue, true)
|
91
|
+
method = init.method(:fix_dockerfile_bootsnap_issue)
|
92
|
+
puts "메서드 정의 위치: #{method.source_location}"
|
93
|
+
end
|
94
|
+
```
|
95
|
+
|
96
|
+
## 5. 캐시 문제 해결
|
97
|
+
|
98
|
+
### RubyGems 캐시 정리
|
99
|
+
```bash
|
100
|
+
gem cleanup tayo
|
101
|
+
```
|
102
|
+
|
103
|
+
### Bundler 캐시 정리
|
104
|
+
```bash
|
105
|
+
bundle clean --force
|
106
|
+
rm -rf .bundle
|
107
|
+
bundle install
|
108
|
+
```
|
109
|
+
|
110
|
+
## 6. 수동 테스트
|
111
|
+
|
112
|
+
프로젝트 디렉토리에서 직접 테스트:
|
113
|
+
|
114
|
+
```ruby
|
115
|
+
# irb 또는 rails console에서
|
116
|
+
require 'tayo'
|
117
|
+
init = Tayo::Commands::Init.new
|
118
|
+
init.send(:fix_dockerfile_bootsnap_issue)
|
119
|
+
```
|
120
|
+
|
121
|
+
## 7. 일반적인 문제와 해결법
|
122
|
+
|
123
|
+
### 문제: "undefined method" 에러
|
124
|
+
- 원인: 오래된 버전 사용
|
125
|
+
- 해결: `gem update tayo`
|
126
|
+
|
127
|
+
### 문제: Bundler가 다른 버전 사용
|
128
|
+
- 원인: Gemfile.lock에 고정된 버전
|
129
|
+
- 해결: `bundle update tayo`
|
130
|
+
|
131
|
+
### 문제: 여러 버전 설치로 인한 충돌
|
132
|
+
- 원인: 시스템과 프로젝트 버전 충돌
|
133
|
+
- 해결:
|
134
|
+
```bash
|
135
|
+
gem uninstall tayo --all
|
136
|
+
bundle install
|
137
|
+
```
|
138
|
+
|
139
|
+
### 문제: 권한 문제
|
140
|
+
- 원인: 시스템 gem 디렉토리 권한
|
141
|
+
- 해결:
|
142
|
+
```bash
|
143
|
+
# rbenv/rvm 사용 권장
|
144
|
+
# 또는
|
145
|
+
gem install tayo --user-install
|
146
|
+
```
|
147
|
+
|
148
|
+
## 8. 버전별 기능 확인
|
149
|
+
|
150
|
+
- v0.1.4: bootsnap 제거 기능 첫 추가
|
151
|
+
- v0.1.5: 라인별 처리 방식
|
152
|
+
- v0.1.6: reject 방식으로 개선
|
153
|
+
- v0.1.7: 테스트 추가 및 개행 문자 처리 수정
|
154
|
+
|
155
|
+
필요한 최소 버전: **0.1.6 이상**
|
data/lib/tayo/commands/init.rb
CHANGED
@@ -6,7 +6,7 @@ module Tayo
|
|
6
6
|
module Commands
|
7
7
|
class Init
|
8
8
|
def execute
|
9
|
-
puts "🏠 Tayo 초기화를 시작합니다...".colorize(:green)
|
9
|
+
puts "🏠 Tayo v#{Tayo::VERSION} 초기화를 시작합니다...".colorize(:green)
|
10
10
|
|
11
11
|
unless rails_project?
|
12
12
|
puts "❌ Rails 프로젝트가 아닙니다. Rails 프로젝트 루트에서 실행해주세요.".colorize(:red)
|
@@ -167,6 +167,23 @@ module Tayo
|
|
167
167
|
comment_pattern = /^\s*# Precompile bootsnap code for faster boot times/i
|
168
168
|
run_command_pattern = /^\s*RUN bundle exec bootsnap precompile app\/ lib\//i
|
169
169
|
|
170
|
+
# 디버깅: 매칭되는 라인 확인
|
171
|
+
debug_matches = false
|
172
|
+
if ENV['TAYO_DEBUG'] == 'true'
|
173
|
+
debug_matches = true
|
174
|
+
puts "🔍 Dockerfile 디버깅 모드".colorize(:yellow)
|
175
|
+
puts " 전체 라인 수: #{lines.length}"
|
176
|
+
lines.each_with_index do |line, index|
|
177
|
+
if line.match?(comment_pattern)
|
178
|
+
puts " 주석 매치 (라인 #{index + 1}): #{line.strip}"
|
179
|
+
elsif line.match?(run_command_pattern)
|
180
|
+
puts " RUN 매치 (라인 #{index + 1}): #{line.strip}"
|
181
|
+
elsif line.include?("bootsnap")
|
182
|
+
puts " 기타 bootsnap (라인 #{index + 1}): #{line.strip}"
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
170
187
|
# `reject`를 사용해 패턴과 일치하는 줄들을 한번에 제거합니다.
|
171
188
|
filtered_lines = lines.reject do |line|
|
172
189
|
line.match?(comment_pattern) || line.match?(run_command_pattern)
|
@@ -178,9 +195,22 @@ module Tayo
|
|
178
195
|
|
179
196
|
# 변경된 내용이 있을 경우에만 파일을 다시 씁니다.
|
180
197
|
if new_content != original_content
|
198
|
+
removed_lines = lines.length - filtered_lines.length
|
181
199
|
File.write(dockerfile_path, new_content)
|
182
200
|
puts "✅ Dockerfile에서 bootsnap precompile 부분을 제거했습니다. (빌드 문제 해결)".colorize(:green)
|
201
|
+
puts " - 제거된 라인 수: #{removed_lines}".colorize(:gray)
|
183
202
|
puts " - 이는 알려진 빌드 문제를 방지하기 위함입니다.".colorize(:gray)
|
203
|
+
|
204
|
+
if debug_matches
|
205
|
+
puts " 남은 bootsnap 라인:".colorize(:yellow)
|
206
|
+
filtered_lines.each_with_index do |line, index|
|
207
|
+
if line.include?("bootsnap")
|
208
|
+
puts " 라인 #{index + 1}: #{line.strip}"
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
212
|
+
elsif debug_matches
|
213
|
+
puts "ℹ️ 제거할 bootsnap 라인이 없습니다.".colorize(:yellow)
|
184
214
|
end
|
185
215
|
end
|
186
216
|
|
data/lib/tayo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tayo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 이원섭wonsup Lee/Alfonso
|
@@ -75,6 +75,7 @@ extensions: []
|
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
77
|
- ".DS_Store"
|
78
|
+
- DEBUG_GUIDE.md
|
78
79
|
- README.md
|
79
80
|
- Rakefile
|
80
81
|
- exe/tayo
|