summaryrefslogtreecommitdiff
path: root/tooling/docs
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-01-20 09:16:11 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-01-20 09:16:11 +0000
commitedaa33dee2ff2f7ea3fac488d41558eb5f86d68c (patch)
tree11f143effbfeba52329fb7afbd05e6e2a3790241 /tooling/docs
parentd8a5691316400a0f7ec4f83832698f1988eb27c1 (diff)
downloadgitlab-ce-edaa33dee2ff2f7ea3fac488d41558eb5f86d68c.tar.gz
Add latest changes from gitlab-org/gitlab@14-7-stable-eev14.7.0-rc42
Diffstat (limited to 'tooling/docs')
-rw-r--r--tooling/docs/deprecation_handling.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/tooling/docs/deprecation_handling.rb b/tooling/docs/deprecation_handling.rb
new file mode 100644
index 00000000000..7dfd3e1101d
--- /dev/null
+++ b/tooling/docs/deprecation_handling.rb
@@ -0,0 +1,42 @@
+# frozen_string_literal: true
+require 'erb'
+
+module Docs
+ class DeprecationHandling
+ def initialize(type)
+ @type = type
+ @yaml_glob_path = Rails.root.join("data/#{type.pluralize}/**/*.yml")
+ @template_path = Rails.root.join("data/#{type.pluralize}/templates/_#{type}_template.md.erb")
+ @milestone_key_name = if type == "deprecation"
+ "announcement_milestone"
+ else
+ "removal_milestone"
+ end
+ end
+
+ def render
+ source_file_paths = Rake::FileList.new(yaml_glob_path) do |fl|
+ fl.exclude(/example\.yml$/)
+ end
+
+ entries = source_file_paths.flat_map do |file|
+ YAML.load_file(file)
+ end
+ entries = entries.sort_by { |d| d["name"] }
+
+ milestones = entries.map { |entry| entry[milestone_key_name] }.uniq
+ milestones = VersionSorter.sort(milestones)
+
+ load_template(template_path)
+ .result_with_hash(entries: entries, milestones: milestones)
+ end
+
+ private
+
+ def load_template(filename)
+ ERB.new(File.read(filename), trim_mode: '-')
+ end
+
+ attr_reader :type, :yaml_glob_path, :milestone_key_name, :template_path
+ end
+end