From eb68b542a02e4dba719433ea09c1ef2f4d534f12 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Jul 09 2019 18:50:48 +0000 Subject: [PATCH 1/3] Put in the bare essentials to support epel-playground Signed-off-by: Stephen Smoogen --- diff --git a/doc/release-guide.markdown b/doc/release-guide.markdown index 5514455..e83c8b2 100644 --- a/doc/release-guide.markdown +++ b/doc/release-guide.markdown @@ -59,9 +59,10 @@ a regular build would do, but will not publish the package. $ fedpkg scratch-build -Repeat the steps above for all active branches (currently `f24`, `f23`, `f22`, -`el6` and `epel7`). Instead of making a new commit simply merge `master` -branch. Try to use fast forward to keep the history nice. +Repeat the steps above for all active branches (currently `f29`, +`f30`, `f31`, `el6`,`epel7`, `epel8` and `epel-playground8`). Instead +of making a new commit simply merge `master` branch. Try to use fast +forward to keep the history nice. $ git merge master diff --git a/doc/source/releases/1.35.rst b/doc/source/releases/1.35.rst index 7f9d266..a76e748 100644 --- a/doc/source/releases/1.35.rst +++ b/doc/source/releases/1.35.rst @@ -39,7 +39,7 @@ New command ``releases-info`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``releases-info`` is helpful for packagers to know current active -Fedora or EPEL rleases, or both. For example to show active Fedora +Fedora or EPEL releases, or both. For example to show active Fedora releases:: fedpkg releases-info --fedora diff --git a/fedpkg/__init__.py b/fedpkg/__init__.py index 270cae0..90a1055 100644 --- a/fedpkg/__init__.py +++ b/fedpkg/__init__.py @@ -129,7 +129,8 @@ class Commands(pyrpkg.Commands): self._distunset = 'rhel' # Works until RHEL 10 elif re.match(r'el\d$', self.branch_merge) or \ - re.match(r'epel\d$', self.branch_merge): + re.match(r'epel\d$', self.branch_merge) or \ + re.match(r'epel-playground\d$', self.branch_merge): self._distval = self.branch_merge.split('el')[1] self._distvar = 'rhel' self._disttag = 'el%s' % self._distval diff --git a/fedpkg/cli.py b/fedpkg/cli.py index d7b0872..58d1f2b 100644 --- a/fedpkg/cli.py +++ b/fedpkg/cli.py @@ -37,7 +37,7 @@ from fedpkg.utils import ( assert_new_tests_repo, get_dist_git_url, get_stream_branches, expand_release) -RELEASE_BRANCH_REGEX = r'^(f\d+|el\d+|epel\d+)$' +RELEASE_BRANCH_REGEX = r'^(f\d+|el\d+|epel\d+|epel-playground\d+)$' LOCAL_PACKAGE_CONFIG = 'package.cfg' BODHI_TEMPLATE = """\ @@ -565,7 +565,7 @@ convert it to proper Koji build target for submitting builds. Beside regular release names, option targets accepts two shortcut names as well, fedora and epel, as you can see in the above example. Name fedora stands for current active Fedora releases, and epel stands for the active EPEL releases, which are -el6 and epel7 currently. +el6, epel7, epel8, and epel-playground8 currently. Note that the config file is a branch specific file. That means you could create package.cfg for each stream branch separately to indicate on which diff --git a/fedpkg/utils.py b/fedpkg/utils.py index dcb29ef..2b256c8 100644 --- a/fedpkg/utils.py +++ b/fedpkg/utils.py @@ -161,7 +161,7 @@ def get_release_branches(server_url): if not version.isdigit(): continue - if short_name == 'epel': + if short_name == 'epel' or short_name == 'epel-playground': prefix = 'el' if version == '6' else 'epel' elif short_name == 'fedora': prefix = 'f' @@ -246,7 +246,7 @@ def is_epel(branch): :param branch: a string of the branch name :return: a boolean """ - return bool(re.match(r'^(?:el|epel)\d+$', branch)) + return bool(re.match(r'^(?:el|epel|epel-playground)\d+$', branch)) def assert_valid_epel_package(name, branch): @@ -356,7 +356,7 @@ def get_stream_branches(server_url, package_name): # should be ok to remove if from this list. return [ item for item in branches - if not re.match(r'^(f|el|epel)\d+$', item['name']) and + if not re.match(r'^(f|el|epel|epel-playground)\d+$', item['name']) and item['name'] != 'master' ] @@ -371,15 +371,15 @@ def expand_release(rel, active_releases): fedora and epel, or concrete release names, e.g. f28, el6. :param dict active_releases: a mapping from release category to concrete release names. Fow now, it has two mappings, from name fedora to f\d\+, - and from epel to el6 and epel7. Value of this parameter should be - returned from `get_release_branches`. + and from epel to el6, epel7, epel8 and epel-playground8. Value of this + parameter should be returned from `get_release_branches`. :return: list of releases, for example ``[f28]``, or ``[el6, epel7]``. """ if rel == 'master': return ['master'] elif rel == 'fedora': return active_releases['fedora'] - elif rel == 'epel': + elif rel == 'epel' or rel == 'epel-playground': return active_releases['epel'] elif rel in active_releases['fedora'] or rel in active_releases['epel']: return [rel] From 65f75c122886578359d1737f149f49d62ca66a87 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Jul 09 2019 18:57:47 +0000 Subject: [PATCH 2/3] try to put in some tests Signed-off-by: Stephen Smoogen --- diff --git a/test/test_cli.py b/test/test_cli.py index 7954f58..755834a 100644 --- a/test/test_cli.py +++ b/test/test_cli.py @@ -878,7 +878,7 @@ class TestRequestBranch(CliTestCase): def test_request_branch(self, mock_grb, mock_request_post): """Tests request-branch""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} mock_rv = Mock() mock_rv.ok = True mock_rv.json.return_value = {'issue': {'id': 2}} @@ -914,7 +914,7 @@ class TestRequestBranch(CliTestCase): def test_request_branch_override(self, mock_grb, mock_request_post): """Tests request-branch with an overriden package and branch name""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} mock_rv = Mock() mock_rv.ok = True mock_rv.json.return_value = {'issue': {'id': 2}} @@ -948,7 +948,7 @@ class TestRequestBranch(CliTestCase): def test_request_branch_module(self, mock_grb, mock_request_post): """Tests request-branch for a new module branch""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} mock_rv = Mock() mock_rv.ok = True mock_rv.json.return_value = {'issue': {'id': 2}} @@ -982,7 +982,7 @@ class TestRequestBranch(CliTestCase): def assert_request_branch_container(self, cli_cmd, mock_grb, mock_request_post): """Tests request-branch for a new container branch""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} mock_rv = Mock() mock_rv.ok = True mock_rv.json.return_value = {'issue': {'id': 2}} @@ -1030,7 +1030,7 @@ class TestRequestBranch(CliTestCase): mock_request_post): """Tests request-branch with service levels""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} responses = [] for idx in range(2, 5): mock_rv_post = Mock() @@ -1118,7 +1118,7 @@ class TestRequestBranch(CliTestCase): def test_request_branch_all_releases(self, mock_grb, mock_request_post): """Tests request-branch with the '--all-releases' option """ mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} post_side_effect = [] for i in range(1, 4): mock_rv = Mock() @@ -1205,7 +1205,7 @@ https://pagure.stg.example.com/releng/fedora-scm-requests/issue/3""" def test_request_branch_sls_on_release_branch_error(self, mock_grb): """Tests request-branch with a release branch and service levels""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} cli_cmd = ['fedpkg-stage', '--path', self.cloned_repo_path, '--name', 'nethack', 'request-branch', 'f27', '--sl', @@ -1302,7 +1302,7 @@ https://pagure.stg.example.com/releng/fedora-scm-requests/issue/3""" def test_request_with_repo_option(self, mock_grb, mock_request_post): """Test request branch with option --repo""" mock_grb.return_value = {'fedora': ['f25', 'f26', 'f27'], - 'epel': ['el6', 'epel7']} + 'epel': ['el6', 'epel7', 'epel8']} mock_rv = Mock() mock_rv.ok = True mock_rv.json.return_value = {'issue': {'id': 2}} @@ -2031,7 +2031,7 @@ class TestReadReleasesFromLocalConfig(CliTestCase): super(TestReadReleasesFromLocalConfig, self).setUp() self.active_releases = { 'fedora': ['f28', 'f27'], - 'epel': ['el6', 'epel7'], + 'epel': ['el6', 'epel7', 'epel8'], } self.fake_cmd = ['fedpkg', '--path', self.cloned_repo_path, 'build'] @@ -2074,7 +2074,7 @@ class TestReadReleasesFromLocalConfig(CliTestCase): rels = cli.read_releases_from_local_config(self.active_releases) rels = sorted(rels) - self.assertEqual(['el6', 'epel7', 'f27', 'f28', 'master'], rels) + self.assertEqual(['el6', 'epel7','epel8', 'f27', 'f28', 'master'], rels) class TestIsStreamBranch(CliTestCase): @@ -2136,7 +2136,7 @@ class TestBuildFromStreamBranch(CliTestCase): self, get_release_branches, get_stream_branches, _build): get_release_branches.return_value = { 'fedora': ['f28', 'f27'], - 'epel': ['el6', 'epel7'], + 'epel': ['el6', 'epel7', 'epel8'], } get_stream_branches.return_value = [{'name': '8', 'active': True}] self.checkout_branch(git.Repo(self.cloned_repo_path), '8') @@ -2158,7 +2158,7 @@ class TestBuildFromStreamBranch(CliTestCase): self, get_release_branches, get_stream_branches, _build): get_release_branches.return_value = { 'fedora': ['f28', 'f27'], - 'epel': ['el6', 'epel7'], + 'epel': ['el6', 'epel7', 'epel8'], } get_stream_branches.return_value = [{'name': '8', 'active': True}] self.checkout_branch(git.Repo(self.cloned_repo_path), '8') @@ -2185,7 +2185,7 @@ class TestBuildFromStreamBranch(CliTestCase): _build): get_release_branches.return_value = { 'fedora': ['f28', 'f27'], - 'epel': ['el6', 'epel7'], + 'epel': ['el6', 'epel7', 'epel8'], } get_stream_branches.return_value = [{'name': '8', 'active': True}] _build.side_effect = [1, 2] @@ -2226,7 +2226,7 @@ class TestReleasesInfo(CliTestCase): self.assertEqual(expected_output, output) def test_print_epel_releases_only(self, mock_grb): - self.assert_output_releases('el6 epel7', option=['--epel']) + self.assert_output_releases('el6 epel7 epel8', option=['--epel']) def test_print_fedora_releases_only(self, mock_grb): self.assert_output_releases('f29 f28', option=['--fedora']) diff --git a/test/test_commands.py b/test/test_commands.py index 7824f9f..06c7b8b 100644 --- a/test/test_commands.py +++ b/test/test_commands.py @@ -246,6 +246,21 @@ class TestLoadRpmDefines(CommandTestCase): self.assert_rpmdefines() @patch('pyrpkg.Commands.branch_merge', new_callable=PropertyMock) + def test_load_epel8_dist_tag(self, branch_merge): + branch_merge.return_value = 'epel8' + + self.cmd.load_rpmdefines() + + self.assertEqual('8', self.cmd._distval) + self.assertEqual('rhel', self.cmd._distvar) + self.assertEqual('el8', self.cmd._disttag) + self.assertEqual('epel-8-i686', self.cmd.mockconfig) + self.assertEqual('epel8-override', self.cmd.override) + self.assertTrue(hasattr(self.cmd, '_distunset')) + + self.assert_rpmdefines() + + @patch('pyrpkg.Commands.branch_merge', new_callable=PropertyMock) @patch('fedpkg.Commands._findmasterbranch') def test_load_master_dist_tag(self, _findmasterbranch, branch_merge): _findmasterbranch.return_value = '28' diff --git a/test/test_utils.py b/test/test_utils.py index 74db227..91057f7 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -137,6 +137,7 @@ class TestUtils(unittest.TestCase): 'results': [ {'short': 'epel', 'version': '6'}, {'short': 'epel', 'version': '7'}, + {'short': 'epel', 'version': '8'}, {'short': 'fedora', 'version': '25'}, {'short': 'fedora', 'version': '26'}, {'short': 'fedora', 'version': '27'}, @@ -145,9 +146,9 @@ class TestUtils(unittest.TestCase): ] } mock_request_get.return_value = mock_rv - expected = set(['el6', 'epel7', 'f25', 'f26', 'f27', 'f28']) + expected = set(['el6', 'epel7', 'epel8', 'f25', 'f26', 'f27', 'f28']) expected = { - 'epel': ['el6', 'epel7'], + 'epel': ['el6', 'epel7', 'epel8'], 'fedora': ['f25', 'f26', 'f27', 'f28'], } actual = utils.get_release_branches('http://pdc.local') @@ -483,7 +484,7 @@ class TestExpandRelease(unittest.TestCase): def setUp(self): self.releases = { 'fedora': ['f28', 'f27'], - 'epel': ['el6', 'epel7'] + 'epel': ['el6', 'epel7', 'epel8'] } def test_expand_fedora(self): From 983685eb9e0f9374b4719c5100d6e0422b01c641 Mon Sep 17 00:00:00 2001 From: Stephen Smoogen Date: Jul 09 2019 19:06:21 +0000 Subject: [PATCH 3/3] Sign off so we can do pull requests Signed-off-by: Stephen Smoogen Signed-off-by: Stephen Smoogen --- diff --git a/fedpkg/__init__.py b/fedpkg/__init__.py index 90a1055..93aa6ff 100644 --- a/fedpkg/__init__.py +++ b/fedpkg/__init__.py @@ -127,7 +127,8 @@ class Commands(pyrpkg.Commands): self.mockconfig = 'fedora-%s-%s' % (self._distval, self.localarch) self.override = 'f%s-override' % self._distval self._distunset = 'rhel' - # Works until RHEL 10 + # Works until RHEL 10 + # Added in playground as the 'rawhide' for EPEL elif re.match(r'el\d$', self.branch_merge) or \ re.match(r'epel\d$', self.branch_merge) or \ re.match(r'epel-playground\d$', self.branch_merge):