From b794429c5be8885b63ab46c9557ca65aff476edf Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Fri, 14 Jun 2024 09:39:26 +1200 Subject: [PATCH] NEW Remove supported badge from unsupported modules --- README.md | 5 ++++- funcs_utils.php | 18 ++++++++++++++++++ run.php | 7 +++++++ scripts/cms-unsupported/readme.php | 8 ++++++++ update_command.php | 15 +++++++++++++-- 5 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 scripts/cms-unsupported/readme.php diff --git a/README.md b/README.md index af2f1c3..135a61a 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,12 @@ MS_GITHUB_TOKEN=abc123 php run.php update --cms-major=5 --branch=next-minor --dr | --dry-run | Do not push to github or create pull-requests | | --account | GitHub account to use for creating pull-requests (default: creative-commoners) | | --no-delete | Do not delete `_data` and `_modules` directories before running | +| --unsupported-default-branch | Only update unsupported modules that were supported in the previous CMS major. Will use the GitHub default branch for that repository. Can not be used with the `--cms-major` option and will ignore the `--branch` option. | | --update-prs | Update existing open PRs instead of creating new PRs | -**Note** that using `--branch=github-default` will only run scripts in the `scripts/default-branch` directory. +**Note** that the following flags use non-standard directories for their scripts: +- Using `--branch=github-default` will only run scripts in the `scripts/default-branch` directory. +- Using `--unsupported-default-branch` will only run scripts in the `scripts/cms-unsupported` directory. ### GitHub API secondary rate limit diff --git a/funcs_utils.php b/funcs_utils.php index edccfa6..c88b1eb 100644 --- a/funcs_utils.php +++ b/funcs_utils.php @@ -380,6 +380,24 @@ function filtered_modules($cmsMajor, $input) $cmsMajor === MetaData::HIGHEST_STABLE_CMS_MAJOR ); + if ($input->getOption('unsupported-default-branch')) { + $prevCmsMajor = $cmsMajor - 1; + $prevCmsRepos = MetaData::removeReposNotInCmsMajor( + MetaData::getAllRepositoryMetaData(false), + $prevCmsMajor, + false + ); + $repoGithubs = array_map(fn($repo) => $repo['github'], $repos); + $unsupportedRepos = []; + foreach ($prevCmsRepos as $prevCmsRepo) { + if (in_array($prevCmsRepo['github'], $repoGithubs)) { + continue; + } + $unsupportedRepos[] = $prevCmsRepo; + } + $repos = $unsupportedRepos; + } + $modules = convert_repos_data_to_modules($repos); if ($input->getOption('only')) { diff --git a/run.php b/run.php index 1222dc0..66ea3db 100644 --- a/run.php +++ b/run.php @@ -80,6 +80,12 @@ InputOption::VALUE_NONE, 'Do not delete _data and _modules directories before running' ]; +$optionUnsupported = [ + 'unsupported-default-branch', + null, + InputOption::VALUE_NONE, + 'Only update unsupported modules that were supported in the previous CMS major. Will use the GitHub default branch for each repository. Can not be used with the --cms-major option and will ignore the --branch option.' +]; $optionUpdatePrs = [ 'update-prs', null, @@ -98,6 +104,7 @@ ->addOption(...$optionDryRun) ->addOption(...$optionAccount) ->addOption(...$optionNoDelete) + ->addOption(...$optionUnsupported) ->addOption(...$optionUpdatePrs) ->setCode($updateCommand); diff --git a/scripts/cms-unsupported/readme.php b/scripts/cms-unsupported/readme.php new file mode 100644 index 0000000..79524f7 --- /dev/null +++ b/scripts/cms-unsupported/readme.php @@ -0,0 +1,8 @@ +getOption('unsupported-default-branch') && $input->getOption('cms-major')) { + error('The --unsupported-default-branch option must not be used with the --cms-major option'); + } + + // unsupported-default-branch automatically sets branch option to github-default + if ($input->getOption('unsupported-default-branch')) { + $input->setOption('branch', 'github-default'); + } // branch $branchOption = $input->getOption('branch') ?: DEFAULT_BRANCH; if (!in_array($branchOption, BRANCH_OPTIONS)) { @@ -31,7 +40,9 @@ $modules = filtered_modules($cmsMajor, $input); // script files - if ($branchOption === 'github-default') { + if ($input->getOption('unsupported-default-branch')) { + $scriptFiles = script_files('unsupported'); + } elseif ($branchOption === 'github-default') { $scriptFiles = script_files('default-branch'); } else { $scriptFiles = array_merge( @@ -66,7 +77,7 @@ } cmd("git remote add pr-remote $prOrigin", $MODULE_DIR); - $useDefaultBranch = has_wildcard_major_version_mapping(); + $useDefaultBranch = has_wildcard_major_version_mapping() || $branchOption === 'github-default'; if ($input->getOption('update-prs')) { // checkout latest existing pr branch