Merge branch 'master' into docs/fix-alphabetic-ordering

This commit is contained in:
Frode Gundersen 2020-03-19 11:22:06 -06:00 committed by GitHub
commit c4644e3b19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 288 additions and 44 deletions

View file

@ -41,6 +41,8 @@ Versions are `MAJOR.PATCH`.
- [#56310](https://github.com/saltstack/salt/pull/56310) - Only process ADMX files when loading policies
- [#56327](https://github.com/saltstack/salt/pull/56327) - keep cache_copied_files variable a list
- [#56360](https://github.com/saltstack/salt/pull/56360) - dont require virtualenv.virtualenv_version call, removed in 20.0.10
- [#56378](https://github.com/saltstack/salt/pull/56378) - Include _version.py if building wheel
- [#56376](https://github.com/saltstack/salt/pull/56376) - Fix win deps
### Added

View file

@ -13,7 +13,6 @@ Security disclosure policy
.. code-block:: text
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
mQINBFO15mMBEADa3CfQwk5ED9wAQ8fFDku277CegG3U1hVGdcxqKNvucblwoKCb
hRK6u9ihgaO9V9duV2glwgjytiBI/z6lyWqdaD37YXG/gTL+9Md+qdSDeaOa/9eg
@ -39,30 +38,43 @@ Security disclosure policy
El1BLAg+m+1UpE1L7zJT1il6PqVyEFAWBxW46wXCCkGssFsvz2yRp0PDX8A6u4yq
rTkt09uYht1is61joLDJ/kq3+6k8gJWkDOW+2NMrmf+/qcdYCMYXmrtOpg/wF27W
GMNAkbdyzgeX/MbUBCGCMdzhevRuivOI5bu4vT5s3KdshG+yhzV45bapKRd5VN+1
mZRquQINBFO15mMBEAC5UuLii9ZLz6qHfIJp35IOW9U8SOf7QFhzXR7NZ3DmJsd3
f6Nb/habQFIHjm3K9wbpj+FvaW2oWRlFVvYdzjUq6c82GUUjW1dnqgUvFwdmM835
1n0YQ2TonmyaF882RvsRZrbJ65uvy7SQxlouXaAYOdqwLsPxBEOyOnMPSktW5V2U
IWyxsNP3sADchWIGq9p5D3Y/loyIMsS1dj+TjoQZOKSj7CuRT98+8yhGAY8YBEXu
9r3I9o6mDkuPpAljuMc8r09Im6az2egtK/szKt4Hy1bpSSBZU4W/XR7XwQNywmb3
wxjmYT6Od3Mwj0jtzc3gQiH8hcEy3+BO+NNmyzFVyIwOLziwjmEcw62S57wYKUVn
HD2nglMsQa8Ve0e6ABBMEY7zGEGStva59rfgeh0jUMJiccGiUDTMs0tdkC6knYKb
u/fdRqNYFoNuDcSeLEw4DdCuP01l2W4yY+fiK6hAcL25amjzc+yYo9eaaqTn6RAT
bzdhHQZdpAMxY+vNT0+NhP1Zo5gYBMR65Zp/VhFsf67ijb03FUtdw9N8dHwiR2m8
vVA8kO/gCD6wS2p9RdXqrJ9JhnHYWjiVuXR+f755ZAndyQfRtowMdQIoiXuJEXYw
6XN+/BX81gJaynJYc0uw0MnxWQX+A5m8HqEsbIFUXBYXPgbwXTm7c4IHGgXXdwAR
AQABiQIlBBgBAgAPBQJTteZjAhsMBQkHhh+AAAoJENVw8tNOoHk91rcQAIhxLv4g
duF/J1Cyf6Wixz4rqslBQ7DgNztdIUMjCThg3eB6pvIzY5d3DNROmwU5JvGP1rEw
hNiJhgBDFaB0J/y28uSci+orhKDTHb/cn30IxfuAuqrv9dujvmlgM7JUswOtLZhs
5FYGa6v1RORRWhUx2PQsF6ORg22QAaagc7OlaO3BXBoiE/FWsnEQCUsc7GnnPqi7
um45OJl/pJntsBUKvivEU20fj7j1UpjmeWz56NcjXoKtEvGh99gM5W2nSMLE3aPw
vcKhS4yRyLjOe19NfYbtID8m8oshUDji0XjQ1z5NdGcf2V1YNGHU5xyK6zwyGxgV
xZqaWnbhDTu1UnYBna8BiUobkuqclb4T9k2WjbrUSmTwKixokCOirFDZvqISkgmN
r6/g3w2TRi11/LtbUciF0FN2pd7rj5mWrOBPEFYJmrB6SQeswWNhr5RIsXrQd/Ho
zvNm0HnUNEe6w5YBfA6sXQy8B0Zs6pcgLogkFB15TuHIIIpxIsVRv5z8SlEnB7HQ
Io9hZT58yjhekJuzVQB9loU0C/W0lzci/pXTt6fd9puYQe1DG37pSifRG6kfHxrR
if6nRyrfdTlawqbqdkoqFDmEybAM9/hv3BqriGahGGH/hgplNQbYoXfNwYMYaHuB
aSkJvrOQW8bpuAzgVyd7TyNFv+t1kLlfaRYJ
=wBTJ
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
7JqB1tMjNHLkRpveO/DTYB+iffpba1nCguk=
=OgRY
-----END PGP PUBLIC KEY BLOCK-----
The SaltStack Security Team is available at security@saltstack.com for

View file

@ -9,17 +9,88 @@ Version 3000.1 is a bugfix release for :ref:`3000 <release-3000>`.
Statistics
==========
- Total Merges: **39**
- Total Merges: **45**
- Total Issue References: **14**
- Total PR References: **40**
- Contributors: **15** (`Ch3LL`_, `UtahDave`_, `cmcmarrow`_, `dwoz`_, `frogunder`_, `garethgreenaway`_, `lorengordon`_, `mchugh19`_, `oeuftete`_, `raddessi`_, `s0undt3ch`_, `sjorge`_, `terminalmage`_, `twangboy`_, `waynew`_)
- Total PR References: **46**
- Contributors: **16** (`Ch3LL`_, `UtahDave`_, `bryceml`_, `cmcmarrow`_, `dwoz`_, `frogunder`_, `garethgreenaway`_, `lorengordon`_, `mchugh19`_, `oeuftete`_, `raddessi`_, `s0undt3ch`_, `sjorge`_, `terminalmage`_, `twangboy`_, `waynew`_)
Changelog for v3000..v3000.1
============================
*Generated at: 2020-03-13 17:24:15 UTC*
*Generated at: 2020-03-17 22:35:36 UTC*
* **PR** `#56398`_: (`Ch3LL`_) Add additional PRs to 3000.1 changelog
@ *2020-03-17 18:08:15 UTC*
* 0de5c1e136 Merge pull request `#56398`_ from Ch3LL/change_3000.1
* 79c337b3db Add additional PRs to 3000.1 changelog
* **PR** `#56376`_: (`twangboy`_) Fix win deps
@ *2020-03-17 17:02:46 UTC*
* 5ac09decb9 Merge pull request `#56376`_ from twangboy/fix_win_deps
* 6c83beeb9e Fix win deps
* **PR** `#56378`_: (`Ch3LL`_) Include _version.py if building wheel
@ *2020-03-17 17:01:33 UTC*
* e72a8d2cbc Merge pull request `#56378`_ from Ch3LL/wheel_version
* 22cccd2107 Use virtualenv test helper that already exists and fix setup.py
* 293b1fddf2 cleanup code
* ddfb065bfb add bdist_wheel test
* fceff0287c ensure name is included in new version
* 0cbf6d3246 Ensure SaltStackVersion attributes in _version.py correct
* 39cdf5382d Include _version.py if building wheel
* **PR** `#56387`_: (`bryceml`_) update gpg key expiration date
@ *2020-03-17 16:59:30 UTC*
* 6a9326fb70 Merge pull request `#56387`_ from bryceml/update_gpg_key
* b74b26ccf3 update gpg key expiration date
* **PR** `#55822`_: (`cmcmarrow`_) fix_Indefinitely_code
@ *2020-03-16 17:34:11 UTC*
* fcee692c4a Merge pull request `#55822`_ from cmcmarrow/win_task_repeat
* e257fb2804 Merge branch 'master' into win_task_repeat
* 07cada0f8f Merge branch 'master' into win_task_repeat
* 4b80301338 Merge branch 'master' into win_task_repeat
* 9df94569c4 Merge branch 'master' into win_task_repeat
* 22a2d0b9ec Merge branch 'master' into win_task_repeat
* dee9c134e7 Merge branch 'master' into win_task_repeat
* beaf05d514 Update test_win_task.py
* 6e923f75fc Merge branch 'master' into win_task_repeat
* 5839da81ee add test
* 2aa6338ed0 fix Indefinitely code
* **PR** `#56373`_: (`frogunder`_) update 3000.1 releasenotes
@ *2020-03-13 18:58:43 UTC*
* c11ef89200 Merge pull request `#56373`_ from frogunder/releasenotes_3000.1
* a5ca8b5277 Fix doc test errors
* 47e483187e update 3000.1 releasenotes
* **PR** `#56365`_: (`Ch3LL`_) Update 3000.1 changelog
@ *2020-03-13 17:21:02 UTC*
@ -478,6 +549,7 @@ Changelog for v3000..v3000.1
.. _`#52195`: https://github.com/saltstack/salt/pull/52195
.. _`#53152`: https://github.com/saltstack/salt/issues/53152
.. _`#55185`: https://github.com/saltstack/salt/issues/55185
.. _`#55822`: https://github.com/saltstack/salt/pull/55822
.. _`#55888`: https://github.com/saltstack/salt/pull/55888
.. _`#55894`: https://github.com/saltstack/salt/pull/55894
.. _`#55906`: https://github.com/saltstack/salt/pull/55906
@ -528,9 +600,15 @@ Changelog for v3000..v3000.1
.. _`#56358`: https://github.com/saltstack/salt/pull/56358
.. _`#56360`: https://github.com/saltstack/salt/pull/56360
.. _`#56365`: https://github.com/saltstack/salt/pull/56365
.. _`#56373`: https://github.com/saltstack/salt/pull/56373
.. _`#56376`: https://github.com/saltstack/salt/pull/56376
.. _`#56378`: https://github.com/saltstack/salt/pull/56378
.. _`#56387`: https://github.com/saltstack/salt/pull/56387
.. _`#56398`: https://github.com/saltstack/salt/pull/56398
.. _`Ch3LL`: https://github.com/Ch3LL
.. _`Oloremo`: https://github.com/Oloremo
.. _`UtahDave`: https://github.com/UtahDave
.. _`bryceml`: https://github.com/bryceml
.. _`cmcmarrow`: https://github.com/cmcmarrow
.. _`dwoz`: https://github.com/dwoz
.. _`finalduty`: https://github.com/finalduty

View file

@ -5,10 +5,9 @@ certifi
cffi==1.12.2
CherryPy==17.4.1
cryptography==2.6.1
enum34==1.1.6
futures==3.2.0 ; python_version < "3.0"
gitdb==0.6.4
GitPython==2.1.10
enum34==1.1.6 ; python_version < '3.4'
futures==3.3.0 ; python_version < '3.0'
GitPython==2.1.15
idna==2.8
ioloop==0.1a0
ipaddress==1.0.22
@ -33,8 +32,7 @@ pyyaml==5.1.2
pyzmq==18.0.1
requests==2.21.0
setproctitle
singledispatch==3.4.0.3; python_version < '3.4'
smmap==0.9.0
singledispatch==3.4.0.3 ; python_version < '3.4'
timelib==0.2.4
watchdog==0.9.0
wheel==0.33.4

View file

@ -241,7 +241,10 @@ class SaltStackVersion(object):
if bugfix is None and not self.new_version(major=major):
bugfix = 0
elif isinstance(bugfix, string_types):
bugfix = int(bugfix)
if not bugfix:
bugfix = None
else:
bugfix = int(bugfix)
if mbugfix is None:
mbugfix = 0
@ -269,6 +272,8 @@ class SaltStackVersion(object):
self.pre_type = pre_type
self.pre_num = pre_num
self.name = self.VNAMES.get((major, minor), None)
if self.new_version(major):
self.name = self.VNAMES.get((major,), None)
self.noc = noc
self.sha = sha
@ -362,6 +367,23 @@ class SaltStackVersion(object):
self.sha])
return tuple(info)
@property
def full_info_all_versions(self):
'''
Return the full info regardless
of which versioning scheme we
are using.
'''
info = [self.major,
self.minor,
self.bugfix,
self.mbugfix,
self.pre_type,
self.pre_num,
self.noc,
self.sha]
return tuple(info)
@property
def string(self):
if self.new_version(self.major):
@ -477,8 +499,16 @@ class SaltStackVersion(object):
parts.extend([
'major={0}'.format(self.major),
'minor={0}'.format(self.minor),
'bugfix={0}'.format(self.bugfix)
])
])
if self.new_version(self.major):
if not self.minor:
parts.remove(''.join([x for x in parts if re.search('^minor*', x)]))
else:
parts.extend([
'bugfix={0}'.format(self.bugfix)
])
if self.mbugfix:
parts.append('minor-bugfix={0}'.format(self.mbugfix))
if self.pre_type:

View file

@ -38,6 +38,11 @@ from setuptools.command.develop import develop
from setuptools.command.install import install
from setuptools.command.sdist import sdist
from setuptools.command.egg_info import egg_info
try:
from wheel.bdist_wheel import bdist_wheel
HAS_BDIST_WHEEL = True
except ImportError:
HAS_BDIST_WHEEL = False
# pylint: enable=E0611
try:
@ -256,7 +261,7 @@ class WriteSaltVersion(Command):
open(self.distribution.salt_version_hardcoded_path, 'w').write(
INSTALL_VERSION_TEMPLATE.format(
date=DATE,
full_version_info=salt_version.full_info
full_version_info=salt_version.full_info_all_versions
)
)
# pylint: enable=E0602
@ -642,6 +647,14 @@ class Clean(clean):
os.remove(to_remove_filename)
if HAS_BDIST_WHEEL:
class BDistWheel(bdist_wheel):
def finalize_options(self):
bdist_wheel.finalize_options(self)
self.distribution.build_wheel = True
INSTALL_VERSION_TEMPLATE = '''\
# This file was auto-generated by salt's setup
@ -679,11 +692,16 @@ class Build(build):
def run(self):
# Run build.run function
build.run(self)
salt_build_ver_file = os.path.join(self.build_lib, 'salt', '_version.py')
if getattr(self.distribution, 'with_salt_version', False):
# Write the hardcoded salt version module salt/_version.py
self.distribution.salt_version_hardcoded_path = os.path.join(
self.build_lib, 'salt', '_version.py'
)
self.distribution.salt_version_hardcoded_path = salt_build_ver_file
self.run_command('write_salt_version')
if getattr(self.distribution, 'build_wheel', False):
# we are building a wheel package. need to include _version.py
self.distribution.salt_version_hardcoded_path = salt_build_ver_file
self.run_command('write_salt_version')
if getattr(self.distribution, 'running_salt_install', False):
@ -908,6 +926,8 @@ class SaltDistribution(distutils.dist.Distribution):
'install_lib': InstallLib})
if IS_WINDOWS_PLATFORM:
self.cmdclass.update({'download-windows-dlls': DownloadWindowsDlls})
if HAS_BDIST_WHEEL:
self.cmdclass["bdist_wheel"] = BDistWheel
self.license = 'Apache Software License 2.0'
self.packages = self.discover_packages()

View file

@ -0,0 +1 @@
# -*- coding: utf-8 -*-

View file

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
'''
tests.integration.setup.test_bdist
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'''
# Import python libs
from __future__ import absolute_import, print_function, unicode_literals
import os
import re
# Import Salt Testing libs
from tests.support.runtests import RUNTIME_VARS
from tests.support.unit import skipIf
from tests.support.helpers import skip_if_not_root, VirtualEnv
from tests.support.case import ModuleCase
# Import salt libs
import salt.utils.path
import salt.utils.platform
from salt.modules.virtualenv_mod import KNOWN_BINARY_NAMES
@skip_if_not_root
@skipIf(salt.utils.path.which_bin(KNOWN_BINARY_NAMES) is None, 'virtualenv not installed')
class BdistSetupTest(ModuleCase):
'''
Tests for building and installing bdist_wheel packages
'''
def test_wheel_build(self):
'''
test building a bdist_wheel package
'''
# Let's create the testing virtualenv
with VirtualEnv() as venv:
ret = self.run_function('cmd.run', ['{0} setup.py bdist_wheel --dist-dir={1}'.format(venv.venv_python, venv.venv_dir)], cwd=RUNTIME_VARS.CODE_DIR)
for _file in os.listdir(venv.venv_dir):
if _file.endswith('whl'):
whl = os.path.join(venv.venv_dir, _file)
break
ret = self.run_function('pip.install', pkgs=whl, bin_env=venv.venv_dir)
# Let's ensure the version is correct
pip_ver = self.run_function('pip.list', bin_env=venv.venv_dir).get('salt')
whl_ver = [x for x in whl.split('/')[-1:][0].split('-') if re.search(r'^\d.\d*', x)][0]
assert pip_ver == whl_ver.replace('_', '-')

View file

@ -143,6 +143,9 @@ TEST_SUITES_UNORDERED = {
'returners':
{'display_name': 'Returners',
'path': 'integration/returners'},
'setup':
{'display_name': 'Setup',
'path': 'integration/setup'},
'ssh-int':
{'display_name': 'SSH Integration',
'path': 'integration/ssh'},
@ -399,6 +402,13 @@ class SaltTestsuiteParser(SaltCoverageTestingParser):
action='store_true',
help='Run spm integration tests'
)
self.test_selection_group.add_option(
'--setup',
dest='setup',
default=False,
action='store_true',
help='Run setup integration tests'
)
self.test_selection_group.add_option(
'-l',
'--loader',

View file

@ -159,6 +159,7 @@ class BadTestModuleNamesTestCase(TestCase):
'integration.scheduler.test_maxrunning',
'integration.scheduler.test_helpers',
'integration.scheduler.test_run_job',
'integration.setup.test_bdist',
'integration.shell.test_spm',
'integration.shell.test_cp',
'integration.shell.test_syndic',

View file

@ -42,7 +42,8 @@ class VersionTestCase(TestCase):
('v4518.1', (4518, 1, '', 0, 0, None), '4518.1'),
('v3000rc1', (3000, 'rc', 1, 0, None), '3000rc1'),
('v3000rc1-n/a-abcdefff', (3000, 'rc', 1, -1, 'abcdefff'), None),
('3000-n/a-1e7bc8f', (3000, '', 0, -1, '1e7bc8f'), None)
('3000-n/a-1e7bc8f', (3000, '', 0, -1, '1e7bc8f'), None),
('3000.1-n/a-1e7bc8f', (3000, 1, '', 0, -1, '1e7bc8f'), None),
)
@ -221,6 +222,25 @@ class VersionTestCase(TestCase):
assert saltstack_version.full_info, full_info
assert len(saltstack_version.full_info) == len(full_info)
def test_full_info_all_versions(self):
'''
Test full_info_all_versions property method
'''
expect = (
('v2014.1.4.1rc3-n/a-abcdefff', (2014, 1, 4, 1, 'rc', 3, -1, 'abcdefff')),
('v3.4.1.1', (3, 4, 1, 1, '', 0, 0, None)),
('v3000', (3000, None, None, 0, '', 0, 0, None)),
('v3000.0', (3000, 0, None, 0, '', 0, 0, None)),
('v4518.1', (4518, 1, None, 0, '', 0, 0, None)),
('v3000rc1', (3000, None, None, 0, 'rc', 2, 0, None)),
('v3000rc1-n/a-abcdefff', (3000, None, None, 0, 'rc', 1, -1, 'abcdefff')),
)
for vstr, full_info in expect:
saltstack_version = SaltStackVersion.parse(vstr)
assert saltstack_version.full_info_all_versions, full_info
assert len(saltstack_version.full_info_all_versions) == len(full_info)
def test_discover_version(self):
'''
Test call to __discover_version
@ -275,3 +295,27 @@ class VersionTestCase(TestCase):
assert ver.info == (maj_ver, min_ver, 0, 0)
else:
assert ver.info == (maj_ver, min_ver, bug_fix, 0)
def test_bugfix_string(self):
'''
test when bugfix is an empty string
'''
ret = SaltStackVersion(3000, 1, '', 0, 0, None)
assert ret.info == (3000, 1)
assert ret.minor == 1
assert ret.bugfix is None
def test_version_repr(self):
'''
Test SaltStackVersion repr for both date
and new versioning scheme
'''
expect = (
((3000, 1, None, None, '', 0, 0, None), "<SaltStackVersion name='Neon' major=3000 minor=1>"),
((3000, 0, None, None, '', 0, 0, None), "<SaltStackVersion name='Neon' major=3000>"),
((2019, 2, 3, None, '', 0, 0, None), "<SaltStackVersion name='Fluorine' major=2019 minor=2 bugfix=3>"),
((2019, 2, 3, None, 'rc', 1, 0, None), "<SaltStackVersion name='Fluorine' major=2019 minor=2 bugfix=3 rc=1>")
)
for ver, repr_ret in expect:
assert repr(SaltStackVersion(*ver)) == repr_ret