diff --git a/app/controllers/trains_controller.rb b/app/controllers/trains_controller.rb index 3c4258f87..5130aabe1 100644 --- a/app/controllers/trains_controller.rb +++ b/app/controllers/trains_controller.rb @@ -97,7 +97,6 @@ def train_params :minor_version_seed, :patch_version_seed, :branching_strategy, - :versioning_strategy, :release_backmerge_branch, :release_branch, :kickoff_at, diff --git a/app/libs/versioning_strategies/semverish.rb b/app/libs/versioning_strategies/semverish.rb index 39228adaa..f13e7ac7e 100644 --- a/app/libs/versioning_strategies/semverish.rb +++ b/app/libs/versioning_strategies/semverish.rb @@ -3,34 +3,15 @@ class VersioningStrategies::Semverish TEMPLATES = { "Positive Number" => :pn, - "Calendar Year And Next Week" => :yy0w1 + "Current Year" => :yyyy } INCREMENTS = { TEMPLATES["Positive Number"] => proc { |v| (!v.nil?) ? v.abs + 1 : nil }, - TEMPLATES["Calendar Year And Next Week"] => proc { |_v| - now = Time.current - Integer("#{now.year.to_s[2..3]}#{now.strftime("%U").to_i + 1}") - } + TEMPLATES["Current Year"] => proc { |_v| Time.current.year } } - STRATEGIES = { - semver: { - major: TEMPLATES["Positive Number"], - minor: TEMPLATES["Positive Number"], - patch: TEMPLATES["Positive Number"], - update_minor_on_major_bump: false - }, - - year_and_next_week: { - major: TEMPLATES["Positive Number"], - minor: TEMPLATES["Calendar Year And Next Week"], - patch: TEMPLATES["Positive Number"], - update_minor_on_major_bump: true - } - } - - DEFAULT_STRATEGY = :semver + DEFAULT_TEMPLATE = TEMPLATES["Positive Number"] # adapted from https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string # makes the patch version optional @@ -55,16 +36,12 @@ def initialize(version_str) @version = version_str end - def bump!(term, strategy: DEFAULT_STRATEGY) + def bump!(term, template_type: DEFAULT_TEMPLATE) term = term.to_sym new_version = clone - strategy_config = STRATEGIES[strategy.to_sym] - new_value = INCREMENTS[strategy_config[term]].call(public_send(term)) + new_value = INCREMENTS[template_type].call(public_send(term)) new_version.public_send("#{term}=", new_value) - if term == :major - new_version.minor = 0 unless strategy_config[:update_minor_on_major_bump] - new_version.minor = INCREMENTS[strategy_config[:minor]].call(public_send(:minor)) if strategy_config[:update_minor_on_major_bump] - end + new_version.minor = 0 if term == :major new_version.patch = 0 if proper? && (term == :major || term == :minor) new_version end diff --git a/app/models/concerns/versionable.rb b/app/models/concerns/versionable.rb index 3c9d64217..4779f7138 100644 --- a/app/models/concerns/versionable.rb +++ b/app/models/concerns/versionable.rb @@ -12,6 +12,6 @@ def next_version(major_only: false, patch_only: false) major_only ? :major : :minor end - version_current.ver_bump(bump_term, strategy: versioning_strategy) + version_current.ver_bump(bump_term) end end diff --git a/app/models/release.rb b/app/models/release.rb index b35414cad..8ce303615 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -134,7 +134,6 @@ class Release < ApplicationRecord attr_accessor :has_major_bump, :force_finalize, :hotfix_platform - delegate :versioning_strategy, to: :train delegate :app, :pre_release_prs?, :vcs_provider, :release_platforms, :notify!, :continuous_backmerge?, to: :train delegate :platform, to: :app diff --git a/app/models/release_platform_run.rb b/app/models/release_platform_run.rb index 4d37ba5ff..1e6f0a679 100644 --- a/app/models/release_platform_run.rb +++ b/app/models/release_platform_run.rb @@ -75,7 +75,6 @@ class ReleasePlatformRun < ApplicationRecord scope :pending_release, -> { where.not(status: [:finished, :stopped]) } - delegate :versioning_strategy, to: :release delegate :all_commits, :original_release_version, :hotfix?, to: :release delegate :steps, :train, :app, :platform, to: :release_platform @@ -116,8 +115,8 @@ def bump_version! semverish = newest_release_version.to_semverish - self.release_version = semverish.bump!(:patch, strategy: versioning_strategy).to_s if semverish.proper? - self.release_version = semverish.bump!(:minor, strategy: versioning_strategy).to_s if semverish.partial? + self.release_version = semverish.bump!(:patch).to_s if semverish.proper? + self.release_version = semverish.bump!(:minor).to_s if semverish.partial? save! diff --git a/app/models/train.rb b/app/models/train.rb index 7927b2925..638f1aabc 100644 --- a/app/models/train.rb +++ b/app/models/train.rb @@ -33,7 +33,6 @@ # class Train < ApplicationRecord has_paper_trail - using RefinedArray using RefinedString extend FriendlyId include Rails.application.routes.url_helpers @@ -67,9 +66,13 @@ class Train < ApplicationRecord delegate :ready?, :config, to: :app delegate :vcs_provider, :ci_cd_provider, :notification_provider, :monitoring_provider, to: :integrations - enum status: {draft: "draft", active: "active", inactive: "inactive"} + enum status: { + draft: "draft", + active: "active", + inactive: "inactive" + } + enum backmerge_strategy: {continuous: "continuous", on_finalize: "on_finalize"} - enum versioning_strategy: {semver: "Semver", year_and_next_week: "Year and Next Week"} friendly_id :name, use: :slugged auto_strip_attributes :name, squish: true diff --git a/app/refinements/refined_string.rb b/app/refinements/refined_string.rb index 2fb85d73d..109592e0d 100644 --- a/app/refinements/refined_string.rb +++ b/app/refinements/refined_string.rb @@ -55,8 +55,8 @@ def to_semverish VersioningStrategies::Semverish.new(to_s) end - def ver_bump(term, strategy:) - to_semverish.bump!(term, strategy:).to_s + def ver_bump(term) + to_semverish.bump!(term).to_s end def better_titleize diff --git a/app/views/trains/_form.html.erb b/app/views/trains/_form.html.erb index b823b96e0..09364ae66 100644 --- a/app/views/trains/_form.html.erb +++ b/app/views/trains/_form.html.erb @@ -118,7 +118,7 @@ <%= render partial: "notifications_config_form", locals: { form: } %> <% end %> -