Refactor Release Post Deprecation and Removal Indexers
Why is this change being made?
Background
Specially formatted YAML files in https://gitlab.com/gitlab-org/gitlab/-/tree/master/data/deprecations?ref_type=heads are our single source of truth for GitLab deprecations. They are used to build this page in the docs: https://docs.gitlab.com/ee/update/deprecations.html
For Release Post, we introduced the titles of those same deprecations into the Release Post itself. We did so through routinely screen scraping the deprecations page HTML source which was used to build out an index of those deprecations in a YAML file, https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/release_posts/deprecations-index.yml However, the screen scraping approach is fragile.
Problem
- The current screen scraping approach is fragile requiring fixes and tight coupling to the design of the deprecations documentation page.
- We should use the SSOT yaml files to build the deprecations and removals lists on the release post.
Approach
We also generate an RSS feed of breaking changes from the deprecation YAML files. The refactoring approach here will pull deprecation files to create the indexes for deprecations and removals in a similar manner to the RSS generator.
This iteration intentionally duplicates logic across Deprecations and Removals. It would be more performant make a single set of API calls and parse several YAML files only once, but at this stage I would prefer duplication to the wrong abstraction. In a future iteration, we can consider other refactoring this again for performance rather than results.
Related issue #34291 (closed)
Author Checklist
-
Provided a concise title for this Merge Request (MR) -
Added a description to this MR explaining the reasons for the proposed change, per say why, not just what - Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added, and the content is SAFE
-
Assign reviewers for this MR to the correct Directly Responsible Individual/s (DRI) - If the DRI for the page/s being updated isn’t immediately clear, then assign it to one of the people listed in the
Maintained by
section on the page being edited - If your manager does not have merge rights, please ask someone to merge it AFTER it has been approved by your manager in #mr-buddies
- The when to get approval handbook section explains the workflow in more detail
- If the DRI for the page/s being updated isn’t immediately clear, then assign it to one of the people listed in the
-
If the changes affect team members, or warrant an announcement in another way, please consider posting an update in #whats-happening-at-gitlab linking to this MR - If this is a change that directly impacts the majority of global team members, it should be a candidate for #company-fyi. Please work with internal communications and check the handbook for examples.