Skip to content

Commit

Permalink
NEW Remove supported badge from unsupported modules
Browse files Browse the repository at this point in the history
  • Loading branch information
emteknetnz committed Jun 12, 2024
1 parent da766e5 commit 682faf0
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 3 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ relevant branch e.g. `5` will be used depending on the command-line `--branch` o
It will run all scripts in the `scripts/any` folder and then run all scripts in the applicable
`scripts/<cms-version>` folder depending on the command-line `--branch` option that's passed in.

If the `--unsupported` option is used then it will only run scripts in the `scripts/cms-unsupported` folder.

This tool can also be used to standardise GitHub labels on all supported repositories.

## GitHub Token
Expand Down Expand Up @@ -54,9 +56,10 @@ 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 | Only update unsupported modules that were supported in the previous CMS major. Must also use `--branch=default-branch`. Can not be used with `--cms-major` 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 using `--branch=github-default` will only run scripts in the `scripts/default-branch` directory, unless the `--unsupported` flag is also used in which case it will use `scripts/cms-unsupported`.

### GitHub API secondary rate limit

Expand Down
18 changes: 18 additions & 0 deletions funcs_utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,24 @@ function filtered_modules($cmsMajor, $input)
$cmsMajor === MetaData::HIGHEST_STABLE_CMS_MAJOR
);

if ($input->getOption('unsupported')) {
$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')) {
Expand Down
7 changes: 7 additions & 0 deletions run.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@
InputOption::VALUE_NONE,
'Do not delete _data and _modules directories before running'
];
$optionUnsupported = [
'unsupported',
null,
InputOption::VALUE_NONE,
'Only update unsupported modules that were supported in the previous CMS major. Must also use --branch=default-branch. Can not be used with --cms-major option.'
];
$optionUpdatePrs = [
'update-prs',
null,
Expand All @@ -98,6 +104,7 @@
->addOption(...$optionDryRun)
->addOption(...$optionAccount)
->addOption(...$optionNoDelete)
->addOption(...$optionUnsupported)
->addOption(...$optionUpdatePrs)
->setCode($updateCommand);

Expand Down
8 changes: 8 additions & 0 deletions scripts/cms-unsupported/readme.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

if (check_file_exists('README.md')) {
$contents = read_file('README.md');
$rx = "#\n\[!\[Silverstripe supported module\].+?\n#si";
$contents = preg_replace($rx, "\n", $contents);
write_file_even_if_exists('README.md', $contents);
}
16 changes: 14 additions & 2 deletions update_command.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@
// setup directories
setup_directories($input);

// unsupported option must be used with github-default option
if ($input->getOption('unsupported') && $input->getOption('branch') !== 'github-default') {
error('The --unsupported option must be used with --branch=github-default');
}

// unsupported option must not be used with cms-major option
if ($input->getOption('unsupported') && $input->getOption('cms-major')) {
error('The --unsupported option must not be used with the --cms-major option');
}

// branch
$branchOption = $input->getOption('branch') ?: DEFAULT_BRANCH;
if (!in_array($branchOption, BRANCH_OPTIONS)) {
Expand All @@ -31,7 +41,9 @@
$modules = filtered_modules($cmsMajor, $input);

// script files
if ($branchOption === 'github-default') {
if ($input->getOption('unsupported')) {
$scriptFiles = script_files('unsupported');
} elseif ($branchOption === 'github-default') {
$scriptFiles = script_files('default-branch');
} else {
$scriptFiles = array_merge(
Expand Down Expand Up @@ -66,7 +78,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
Expand Down

0 comments on commit 682faf0

Please sign in to comment.