# This file declares various requirements for this version of repo. The # launcher script will load it and check the constraints before trying to run # us. This avoids issues of the launcher using an old version of Python (e.g. # 3.5) while the codebase has moved on to requiring something much newer (e.g. # 3.8). If the launcher tried to import us, it would fail with syntax errors. # This is a JSON file with line-level comments allowed. # Always keep backwards compatibility in mine. The launcher script is robust # against missing values, but when a field is renamed/removed, it means older # versions of the launcher script won't be able to enforce the constraint. # When requiring versions, always use lists as they are easy to parse & compare # in Python. Strings would require futher processing to turn into a list. # Version constraints should be expressed in pairs: soft & hard. Soft versions # are when we start warning users that their software too old and we're planning # on dropping support for it, so they need to start planning system upgrades. # Hard versions are when we refuse to work the tool. Users will be shown an # error message before we abort entirely. # When deciding whether to upgrade a version requirement, check out the distro # lists to see who will be impacted: # https://gerrit.googlesource.com/git-repo/+/HEAD/docs/release-process.md#Project-References { # The repo launcher itself. This allows us to force people to upgrade as some # ignore the warnings about it being out of date, or install ancient versions # to start with for whatever reason. # # NB: Repo launchers started checking this file with repo-2.12, so listing # versions older than that won't make a difference. "repo": { "hard": [2, 11], "soft": [2, 11] }, # Supported Python versions. # # python-3.6 is in Ubuntu Bionic. # python-3.5 is in Debian Stretch. "python": { "hard": [3, 5], "soft": [3, 6] }, # Supported git versions. # # git-1.7.2 is in Debian Squeeze. # git-1.7.9 is in Ubuntu Precise. # git-1.9.1 is in Ubuntu Trusty. # git-1.7.10 is in Debian Wheezy. "git": { "hard": [1, 7, 2], "soft": [1, 9, 1] } }