Skip to content

Add dynamic date headers to monthly template

Steve Abrams requested to merge delivery19531-monthly-dynamic-template-date into master

🌳 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

With dynamic_release_date feature flag enabled:

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)

With dynamic_release_date feature flag disabled:

gitlab-org/release/tasks#6362 (closed)

Author Check-list

  • [-] Has documentation been updated?
Edited by Steve Abrams

Merge request reports

Loading