Files
gitlab-foss/lib/gitlab/markdown_cache.rb
2024-10-03 06:11:05 +00:00

32 lines
1.3 KiB
Ruby

# frozen_string_literal: true
module Gitlab
module MarkdownCache
# Increment this number to invalidate cached HTML from Markdown documents.
# Even when reverting an MR, we should increment this because we only
# persist the cache when the new version is higher.
#
# Changing this value puts strain on the database, as every row with
# cached markdown needs to be updated. As a result, avoid changing
# this if the change to the renderer output is a new feature or a
# minor bug fix.
# See: https://gitlab.com/gitlab-org/gitlab/-/issues/330313
CACHE_COMMONMARK_VERSION = 33
CACHE_COMMONMARK_VERSION_START = 10
CACHE_COMMONMARK_VERSION_SHIFTED = CACHE_COMMONMARK_VERSION << 16
BaseError = Class.new(StandardError)
UnsupportedClassError = Class.new(BaseError)
# We could be called by a method that is inside the Gitlab::CurrentSettings
# object. In this case we need to pass in the local_markdown_version in order
# to avoid an infinite loop. See usaage in `app/models/concerns/cache_markdown_field.rb`
# Otherwise pass in `nil`
def self.latest_cached_markdown_version(local_version:)
local_version ||= Gitlab::CurrentSettings.current_application_settings.local_markdown_version
CACHE_COMMONMARK_VERSION_SHIFTED | local_version
end
end
end