Making your own style file that essentially just consolidates (most of) your preamble into a separate file would be a traditional place to start (but if you're looking to share on Overleaf via their "template" system, those are often just gutted files with lots of comments—a completely different experience).
Overleaf has a decent intro to writing a style file.
In LaTeX itself, there's not a direct analog to a python requirements.txt
file. Generally it's assumed that folks are either using TeXLive (and therefore has [nearly] all the packages submitted to CTAN). You can (and should) specify the minimum version of packages when loading which will generate warnings for anyone who tries to compile it with packages that are too old. The date is provided at the top of each package's style file, like \ProvidesPackage{geometry}[2020/01/02 v5.9 Page Geometry]
So then to ensure someone is using a sufficiently new version of geometry
, you would then specify:
\usepackage{geometry}[2020/01/02]
Or in a custom style or class file, you'd use:
\RequirePakcage{geometry}[2020/01/02]
And so if someone then tries to compile this with TeXLive 2018 (for example), their log would warn them that they are using an outdated version of geometry
(but it won't stop compilation, so if the older version happens to be compatible they can still use it).