Add dynamic date headers to monthly template
🌳 What does this MR do and why?
We are working on changing our tooling to support the changes to our release dates. Instead of releasing on the 22nd of each month, we will release on the 3rd Thursday.
This modifies the monthly release task issue template to use dynamic headers for the different dates based on the release date as determined from the releases gem. These changes are behind the dynamic_release_date
feature flag, which also switches the active_release
from being calculated by the deprecated release managers schedule to the releases gem.
Related to gitlab-com/gl-infra/delivery#19531 (closed)
💻 Testing
These were generated by running the following in the rails console:
# 16.6 is the first release that will occur on the 3rd Thursday in Nov 2023
[1] pry(main)> version = ReleaseTools::Version.new('16.6')
=> "16.6.0"
[2] pry(main)> issue = ReleaseTools::MonthlyIssue.new(version: version)
=> #<ReleaseTools::MonthlyIssue version="16.6.0">
[3] pry(main)> issue.create
dynamic_release_date
feature flag enabled:
With I modified the local code so the flag would be enabled, also using the releases gem:
Click to expand
diff --git a/lib/release_tools/monthly_issue.rb b/lib/release_tools/monthly_issue.rb
index 9212cf9c..00785fa9 100644
--- a/lib/release_tools/monthly_issue.rb
+++ b/lib/release_tools/monthly_issue.rb
@@ -9,7 +9,7 @@ module ReleaseTools
end
def title
- "Release #{version.to_minor}"
+ "TEST - without updated releases - Release #{version.to_minor}"
end
def labels
@@ -21,7 +21,8 @@ module ReleaseTools
end
def assignees
- ReleaseManagers::Schedule.new.active_release_managers.collect(&:id)
+ nil
+ # ReleaseManagers::Schedule.new.active_release_managers.collect(&:id)
rescue ReleaseManagers::Schedule::VersionNotFoundError
nil
end
@@ -58,7 +59,8 @@ module ReleaseTools
end
def dynamic_release_date?
- Feature.enabled?(:dynamic_release_date)
+ true
+ # Feature.enabled?(:dynamic_release_date)
end
protected
diff --git a/lib/release_tools/release_managers/schedule.rb b/lib/release_tools/release_managers/schedule.rb
index 4fcb4b14..2fd0072a 100644
--- a/lib/release_tools/release_managers/schedule.rb
+++ b/lib/release_tools/release_managers/schedule.rb
@@ -29,7 +29,7 @@ module ReleaseTools
#
# @return [ReleaseTools::Version|NilClass]
def active_version
- return version_for_date(DateTime.now) unless Feature.enabled?(:dynamic_release_date)
+ # return version_for_date(DateTime.now) unless Feature.enabled?(:dynamic_release_date)
Version.new(ReleaseTools::ReleasesClient.active_version)
end
gitlab-org/release/tasks#6361 (closed)
dynamic_release_date
feature flag disabled:
With gitlab-org/release/tasks#6362 (closed)
Author Check-list
- [-] Has documentation been updated?