|
18 | 18 | import 'rake_tasks/elasticsearch_tasks.rake'
|
19 | 19 | import 'rake_tasks/test_tasks.rake'
|
20 | 20 | import 'rake_tasks/docker_tasks.rake'
|
| 21 | +import 'rake_tasks/update_version.rake' |
21 | 22 | import 'profile/benchmarking/benchmarking_tasks.rake'
|
22 | 23 | require 'pathname'
|
23 | 24 |
|
@@ -122,126 +123,3 @@ task :release do
|
122 | 123 | puts '-'*80
|
123 | 124 | end
|
124 | 125 | end
|
125 |
| - |
126 |
| -desc <<-DESC |
127 |
| - Update Rubygems versions in version.rb and *.gemspec files |
128 |
| -
|
129 |
| - Example: |
130 |
| -
|
131 |
| - $ rake update_version[5.0.0,5.0.1] |
132 |
| -DESC |
133 |
| -task :update_version, :old, :new do |task, args| |
134 |
| - require 'ansi' |
135 |
| - |
136 |
| - puts '[!!!] Required argument [old] missing'.ansi(:red) unless args[:old] |
137 |
| - puts '[!!!] Required argument [new] missing'.ansi(:red) unless args[:new] |
138 |
| - |
139 |
| - files = Dir['**/**/version.rb','**/**/*.gemspec'] |
140 |
| - |
141 |
| - longest_line = files.map(&:size).max |
142 |
| - |
143 |
| - puts"\n", '= FILES '.ansi(:faint) + ('='*92).ansi(:faint), "\n" |
144 |
| - |
145 |
| - files.each do |file| |
146 |
| - begin |
147 |
| - content = File.read(file) |
148 |
| - if content.match Regexp.new(args[:old]) |
149 |
| - content.gsub! Regexp.new(args[:old]), args[:new] |
150 |
| - puts "+ [#{file}]".ansi(:green).ljust(longest_line+20) + " [#{args[:old]}] -> [#{args[:new]}]".ansi(:green,:bold) |
151 |
| - File.open(file, 'w') { |f| f.puts content } |
152 |
| - else |
153 |
| - puts "- [#{file}]".ansi(:yellow).ljust(longest_line+20) + " -".ansi(:faint,:strike) |
154 |
| - end |
155 |
| - rescue Exception => e |
156 |
| - puts "[!!!] #{e.class} : #{e.message}".ansi(:red,:bold) |
157 |
| - raise e |
158 |
| - end |
159 |
| - end |
160 |
| - |
161 |
| - puts "\n\n", '= CHANGELOG '.ansi(:faint) + ('='*88).ansi(:faint), "\n" |
162 |
| - |
163 |
| - log = `git --no-pager log --reverse --no-color --pretty='* %s' HEAD --not v#{args[:old]} elasticsearch*`.split("\n") |
164 |
| - |
165 |
| - puts log.join("\n") |
166 |
| - |
167 |
| - log_entries = {} |
168 |
| - log_entries[:client] = log.select { |l| l =~ /\[CLIENT\]/ } |
169 |
| - log_entries[:api] = log.select { |l| l =~ /\[API\]/ } |
170 |
| - log_entries[:dsl] = log.select { |l| l =~ /\[DSL\]/ } |
171 |
| - log_entries[:ext] = log.select { |l| l =~ /\[EXT\]/ } |
172 |
| - log_entries[:xpack] = log.select { |l| l =~ /\[XPACK\]/ } |
173 |
| - |
174 |
| - changelog = File.read(File.open('CHANGELOG.md', 'r')) |
175 |
| - |
176 |
| - changelog_update = '' |
177 |
| - |
178 |
| - if log.any? { |l| l =~ /CLIENT|API|DSL/ } |
179 |
| - changelog_update << "## #{args[:new]}\n\n" |
180 |
| - end |
181 |
| - |
182 |
| - unless log_entries[:client].empty? |
183 |
| - changelog_update << "### Client\n\n" |
184 |
| - changelog_update << log_entries[:client] |
185 |
| - .map { |l| l.gsub /\[CLIENT\] /, '' } |
186 |
| - .map { |l| "#{l}" } |
187 |
| - .join("\n") |
188 |
| - changelog_update << "\n\n" |
189 |
| - end |
190 |
| - |
191 |
| - unless log_entries[:api].empty? |
192 |
| - changelog_update << "### API\n\n" |
193 |
| - changelog_update << log_entries[:api] |
194 |
| - .map { |l| l.gsub /\[API\] /, '' } |
195 |
| - .map { |l| "#{l}" } |
196 |
| - .join("\n") |
197 |
| - changelog_update << "\n\n" |
198 |
| - end |
199 |
| - |
200 |
| - unless log_entries[:dsl].empty? |
201 |
| - changelog_update << "### DSL\n\n" |
202 |
| - changelog_update << log_entries[:dsl] |
203 |
| - .map { |l| l.gsub /\[DSL\] /, '' } |
204 |
| - .map { |l| "#{l}" } |
205 |
| - .join("\n") |
206 |
| - changelog_update << "\n\n" |
207 |
| - end |
208 |
| - |
209 |
| - unless log_entries[:client].empty? |
210 |
| - changelog_update << "### EXT:#{args[:new]}\n\n" |
211 |
| - changelog_update << log_entries[:ext] |
212 |
| - .map { |l| l.gsub /\[EXT\] /, '' } |
213 |
| - .map { |l| "#{l}" } |
214 |
| - .join("\n") |
215 |
| - changelog_update << "\n\n" |
216 |
| - end |
217 |
| - |
218 |
| - unless log_entries[:xpack].empty? |
219 |
| - changelog_update << "### XPACK\n\n" |
220 |
| - changelog_update << log_entries[:xpack] |
221 |
| - .map { |l| l.gsub /\[XPACK\] /, '' } |
222 |
| - .map { |l| "#{l}" } |
223 |
| - .join("\n") |
224 |
| - changelog_update << "\n\n" |
225 |
| - end |
226 |
| - |
227 |
| - File.open('CHANGELOG.md', 'w+') { |f| f.write changelog_update and f.write changelog } |
228 |
| - |
229 |
| - puts "\n\n", "= DIFF ".ansi(:faint) + ('='*93).ansi(:faint) |
230 |
| - |
231 |
| - diff = `git --no-pager diff --patch --word-diff=color --minimal elasticsearch*`.split("\n") |
232 |
| - |
233 |
| - puts diff |
234 |
| - .reject { |l| l =~ /^\e\[1mdiff \-\-git/ } |
235 |
| - .reject { |l| l =~ /^\e\[1mindex [a-z0-9]{7}/ } |
236 |
| - .reject { |l| l =~ /^\e\[1m\-\-\- i/ } |
237 |
| - .reject { |l| l =~ /^\e\[36m@@/ } |
238 |
| - .map { |l| l =~ /^\e\[1m\+\+\+ w/ ? "\n#{l} " + '-'*(104-l.size) : l } |
239 |
| - .join("\n") |
240 |
| - |
241 |
| - puts "\n\n", "= COMMIT ".ansi(:faint) + ('='*91).ansi(:faint), "\n" |
242 |
| - |
243 |
| - puts "git add CHANGELOG.md elasticsearch*", |
244 |
| - "git commit --verbose --message='Release #{args[:new]}' --edit", |
245 |
| - "rake release" |
246 |
| - "\n" |
247 |
| -end |
0 commit comments