diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0e6f008..400fa64 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,9 +8,9 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python: ['3.9', '3.10', '3.11', '3.12'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v4 with: @@ -24,11 +24,11 @@ jobs: flake8: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: 3.12 - name: Install Tox and any other packages run: | python -m pip install --upgrade pip @@ -38,11 +38,11 @@ jobs: integration: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: 3.12 - name: Install Tox and any other packages run: | python -m pip install --upgrade pip diff --git a/patch_rebaser/patch_rebaser.ini.example b/patch_rebaser/patch_rebaser.ini.example index da882d0..686d689 100644 --- a/patch_rebaser/patch_rebaser.ini.example +++ b/patch_rebaser/patch_rebaser.ini.example @@ -9,6 +9,9 @@ git_email = you@example.com packages_to_process = # Location of DLRN projects.ini file (optional) dlrn_projects_ini = +# DLRN driver used, in order to get the parameters from the right +# section of the DLRN projects.ini file. (optional) +dlrn_driver = # Do not force-push to remotes or do other destructive operations # while in development mode dev_mode = true diff --git a/patch_rebaser/patch_rebaser.py b/patch_rebaser/patch_rebaser.py index b2b775d..6c0a48b 100755 --- a/patch_rebaser/patch_rebaser.py +++ b/patch_rebaser/patch_rebaser.py @@ -69,14 +69,14 @@ def create_patches_branch(repo, commit, remote, dev_mode=True): return branch_name -def get_downstream_distgit_branch(dlrn_projects_ini): +def get_downstream_distgit_branch(dlrn_projects_ini, dlrn_driver): """Get downstream distgit branch info from DLRN projects.ini""" config = configparser.ConfigParser() config.read(dlrn_projects_ini) - return config.get('downstream_driver', 'downstream_distro_branch') + return config.get(dlrn_driver, 'downstream_distro_branch') -def get_patches_branch(repo, remote, dlrn_projects_ini): +def get_patches_branch(repo, remote, dlrn_projects_ini, dlrn_driver): """Get the patches branch name""" branch_name = os.environ.get('PATCHES_BRANCH', None) if branch_name: @@ -87,7 +87,8 @@ def get_patches_branch(repo, remote, dlrn_projects_ini): return None else: # Get downstream distgit branch from DLRN config - distgit_branch = get_downstream_distgit_branch(dlrn_projects_ini) + distgit_branch = get_downstream_distgit_branch(dlrn_projects_ini, + dlrn_driver) LOGGER.warning("No PATCHES_BRANCH env var found, trying to guess it") # Guess at patches branch based on the distgit branch name return find_patches_branch(repo, remote, distgit_branch) @@ -188,7 +189,7 @@ def get_rebaser_config(defaults=None): """ default_options = ['dev_mode', 'remote_name', 'git_name', 'git_email', 'packages_to_process', 'dlrn_projects_ini', - 'create_patches_branch'] + 'create_patches_branch', 'dlrn_driver'] distroinfo_options = ['patches_repo_key'] RebaserConfig = namedtuple('RebaserConfig', @@ -426,6 +427,7 @@ def main(): # Default values for options in patch_rebaser.ini defaults = { + 'dlrn_driver': 'downstream_driver', 'remote_name': 'remote_name', 'git_name': 'Your Name', 'git_email': 'you@example.com', @@ -469,7 +471,8 @@ def main(): # Create local patches branch branch_name = get_patches_branch(repo, config.remote_name, - config.dlrn_projects_ini) + config.dlrn_projects_ini, + config.dlrn_driver) # Not every project has a -patches branch for every release if not branch_name: diff --git a/tests/test_patch_rebaser.py b/tests/test_patch_rebaser.py index fc20d61..547cfb6 100644 --- a/tests/test_patch_rebaser.py +++ b/tests/test_patch_rebaser.py @@ -306,10 +306,12 @@ def test_get_rebaser_config_with_fallback_value(mock_config): AND an option doesn't exist in the config THEN the value from the dictionary is returned """ - defaults = {'git_name': 'TEST', 'remote_name': 'Wrong_name'} + defaults = {'git_name': 'TEST', + 'dlrn_driver': 'downstream_driver'} config = get_rebaser_config(defaults) assert config.git_name == defaults['git_name'] + assert config.dlrn_driver == defaults['dlrn_driver'] def test_get_rebaser_config_defaults_dont_override_ini_values(mock_config): @@ -319,7 +321,9 @@ def test_get_rebaser_config_defaults_dont_override_ini_values(mock_config): AND an option exists both in the ini config and the defaults dictionary THEN the value from the ini config is returned """ - defaults = {'git_name': 'TEST', 'remote_name': 'Wrong_name'} + defaults = {'git_name': 'TEST', + 'dlrn_driver': 'downstream_driver', + 'remote_name': 'Wrong_name'} config = get_rebaser_config(defaults) assert config.remote_name == "test_remote_name" diff --git a/tox.ini b/tox.ini index 42ae3d5..419c90e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - py{37,38,39,310,311} + py{39,310,311,312} flake8 [testenv]