• Ian Campbell's avatar
    scripts/version.py: Use regex grouping to extract the version · b0abdac9
    Ian Campbell yazdı
    The `lstrip` and `rstrip` functions take a set of characters to remove, not a
    prefix/suffix. Thus `rstrip('-x86_64')` will remove any trailing characters in
    the string `'-x86_64'` in any order (in effect it strips the suffix matching
    the regex `[-_x468]*`). So with `18.09.4` it removes the `4` suffix resulting
    in trying to `int('')` later on:
    
        Traceback (most recent call last):
          File "/src/scripts/versions.py", line 80, in <module>
            main()
          File "/src/scripts/versions.py", line 73, in main
            versions, reverse=True, key=operator.attrgetter('order')
          File "/src/scripts/versions.py", line 52, in order
            return (int(self.major), int(self.minor), int(self.patch)) + stage
        ValueError: invalid literal for int() with base 10: ''
    
    Since we no longer need to check for the arch suffix (since it no longer
    appears in the URLs we are traversing) we could just drop the `rstrip` and
    invent a local prefix stripping helper to replace `lstrip('docker-')`. Instead
    lets take advantage of the behaviour of `re.findall` which is that if the regex
    contains a single `()` match that will be returned. This lets us match exactly
    the sub-section of the regex we require.
    
    While editing the regex, also ensure that the suffix is precisely `.tgz` and
    not merely `tgz` by adding an explicit `\.`, previously the literal `.` would
    be swallowed by the `.*` instead.
    Signed-off-by: 's avatarIan Campbell <ijc@docker.com>
    b0abdac9
Adı
Son kayıt (commit)
Son güncelleme
docker Loading commit data...
docs Loading commit data...
scripts Loading commit data...
tests Loading commit data...
.coveragerc Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
Dockerfile Loading commit data...
Dockerfile-docs Loading commit data...
Dockerfile-py3 Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
MAINTAINERS Loading commit data...
MANIFEST.in Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
appveyor.yml Loading commit data...
docs-requirements.txt Loading commit data...
pytest.ini Loading commit data...
requirements.txt Loading commit data...
setup.cfg Loading commit data...
setup.py Loading commit data...
test-requirements.txt Loading commit data...
tox.ini Loading commit data...
win32-requirements.txt Loading commit data...