Marketing monorepo move
What does this MR do?
Marketing monorepo move part of phase 1 of the monorepo refactor.
Tasks
-
Write a script to automatically filter and git mv
marketing-only files while leaving files shared with handbook at top-level. This is necessary to iterate on this MR by repeatedly re-performing the necessary complex file move commands. Otherwise we would continually be having merge conflicts due to constant changes to the moved files on master.- This will be updated ongoing as new requirements are found
-
Handbook and marketing builds work locally -
CI is green with moved files. -
Handbook build should still work and generate an identical site to current master. -
Marketing builds (six of them, proxy resource + 5 partial builds) should still work and generate an identical site to current master. - Investigate differences found (some of these may be expected, need to compare diffs against those from a non-monorepo control MR build):
-
sites/marketing root-level files (e.g. atom.xml
,robots.txt
) missing from branch build -
.well-known/security.txt
missing from branch build -
proxy resource top-level paths customers/*
missing from branch build. -
sitemaps/sitemap_all_others.xml
missing entry for root (about.gitlab.com/
) -
sitemaps/sitemap_proxy_resource.xml
different (because of missing direction entries, maybe other things, need to check). -
devops-tools/launchdarkly
missing some content from branch version. -
proxy resource /direction
files missing from branch build. -
proxy resource /releases
files differ from branch build (106 months vs 67 months?). -
Fix occurrences of http://about.gitlab.com
(no https) in source. -
Verify behavior and usage of og:monorepo_site_path_fragment
is still correct -
Verify edit links for blog and non-blog pages.
-
Inline handbook config_proxy_resources.rb
file (it's no longer shared). -
Review bin/*release*
scripts and ensure they all still work.- NOTE: I reviewed all the code for paths which need to be changed, and ran the main scripts referenced in the docs, and they seem to work. However, the process cannot be fully tested without actually creating branches/etc on git. So, there may be some bugs remaining - if so, we will address these as they come up.
- https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator
- https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-assembly
- https://about.gitlab.com/handbook/marketing/blog/release-posts/
- https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/.gitlab/merge_request_templates/Release-Post.md
- See also discussion in slack thread:
-
release-post-item you can run with --dry-run option to see if it works.
-
release-post-assemble requires you to switch to release-x-x branch locally (for example release-13-5 ). After that, you can run the script. It will create a new commit in the branch but won’t push anything.
-
release-post-build is called by a scheduled task. It is not safe to run it at the moment, because it will try to push changes to the release branch on www-gitlab-com. I need to add a dry-run option for it.
-
-
Handbook dev mode should still work. -
Marketing dev mode should still work. -
Route map entries (dropdown next to review app button in MR) should still work (successfully tested this link from this MR). -
Revisit top-level rake build:*
tasks to ensure they are complete, working, and documented. -
Check pricing page, including A/B tests: https://about.gitlab.com/pricing/ -
Review and update all documentation as necessary, especially README
,development.md
, andmonorepo.md
- NOTE: A cursory pass to look for outdated path references was done. However, there may still be outdated instructions in various files under
doc
. This issue covers a more comprehensive effort to review and update them: #7234 (closed)
- NOTE: A cursory pass to look for outdated path references was done. However, there may still be outdated instructions in various files under
-
Add logic to monorepo linter to prevent people from adding any new directories or files to root of top level source dir.
Testing
For comparison:
- Master's pipeline before move: https://gitlab.com/gitlab-com/www-gitlab-com/-/pipelines/175996282 (
2270b9c4ec33320e4a3859991124d5406ae1b4c0
) - This MR's pipeline after move: https://gitlab.com/gitlab-com/www-gitlab-com/-/pipelines/176535068 (
4001208548fa4c6e1145746839739b67670d66da
)
For reference:
- An example MR pipeline before move: https://gitlab.com/gitlab-com/www-gitlab-com/-/pipelines/175994464 (
a28c7f05d69ed5b49165b3778a036ac64d0e3937
)
Additional Iterative MRs
Related issues
- Relates #8599 (closed)
- Relates &282 (closed)
- Relates #8643 (closed)
Edited by Chad Woolley