微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

翻新:在一个合并请求中对依赖项进行分组

如何解决翻新:在一个合并请求中对依赖项进行分组

我想在一个合并请求 (MR) 中对所有相关依赖项进行分组,如下例所示:

一个 MR 中(除了 @angular/cli 之外,所有的都从 @angular/ 开始):

class _FpsPageState extends State<FpsPage> {
  bool _shouldCount = false;
  var _count = 0;

  @override
  Widget build(BuildContext context) {
    if (_shouldCount) _count++;

    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onpressed: () {
            _shouldCount = true;
            _count = 0;
            Timer.periodic(Duration(milliseconds: 1),(timer) {
              setState(() {
                if (timer.tick >= 1000) {
                  timer.cancel();
                  _shouldCount = false;
                }
              });
            });
          },child: Text(_count != 0 ? 'FPS: $_count' : 'START'),),);
  }
}

一个 MR 中:

    "@angular/animations": "10.2.5","@angular/cdk": "10.2.5","@angular/common": "10.2.5","@angular/compiler": "10.2.5","@angular/core": "10.2.5","@angular/forms": "10.2.5","@angular/localize": "10.2.5","@angular/platform-browser": "10.2.5","@angular/platform-browser-dynamic": "10.2.5","@angular/router": "10.2.5","@angular/compiler-cli": "10.2.5"

一个 MR 中:

    "@ngrx/effects": "10.1.2","@ngrx/router-store": "10.1.2","@ngrx/store": "10.1.2","@ngrx/store-devtools": "10.1.2","@ngrx/schematics": "10.1.2",

一个 MR 中:

    "ag-grid-angular": "24.1.0","ag-grid-community": "24.1.0"

如果我有这个 package.json:

    "@angular-eslint/builder": "1.2.0","@angular-eslint/eslint-plugin": "1.2.0","@angular-eslint/eslint-plugin-template": "1.2.0","@angular-eslint/schematics": "1.2.0","@angular-eslint/template-parser": "1.2.0",

并且我想将一些依赖项组合到一个 MR 中(在这种情况下,将具有相同名称的依赖项组合在一起)。

测试 1:失败 -> 我只用 @angular/cdk 升级就得到了一个 MR。这里是renovate.json:

"dependencies": {
    "@angular/animations": "10.2.5","@ng-bootstrap/ng-bootstrap": "7.0.0","@ng-select/ng-select": "5.1.0","@ngrx/effects": "10.1.2","@ngx-translate/core": "13.0.0","@ngx-translate/http-loader": "6.0.0","ag-grid-angular": "24.1.0","ag-grid-community": "24.1.0","bootstrap": "4.6.0","crypto-js": "4.0.0","fbc-iam-angular": "2.0.0","ngx-toastr": "13.2.1","rxjs": "6.6.7","tslib": "2.1.0","zone.js": "0.11.4"
  },"devDependencies": {
    "@angular-devkit/build-angular": "0.1002.1","@angular-eslint/builder": "1.2.0","@angular/cli": "10.2.3","@angular/compiler-cli": "10.2.5","@foundation/npm-oss-clearing": "2.2.0","@types/jest": "24.9.1","@typescript-eslint/eslint-plugin": "4.18.0","@typescript-eslint/parser": "4.18.0","eslint": "7.22.0","eslint-config-airbnb-typescript": "12.3.1","eslint-plugin-cypress": "2.11.2","eslint-plugin-header": "3.1.1","eslint-plugin-import": "2.22.1","eslint-plugin-jest": "24.3.6","eslint-plugin-promise": "4.3.1","eslint-plugin-rxjs": "3.1.3","eslint-plugin-unicorn": "28.0.2","https-proxy-agent": "2.2.4","jest": "24.9.0","jest-marbles": "2.5.1","jest-preset-angular": "7.1.1","jspdf": "2.3.1","ng-mocks": "11.9.1","ngx-translate-testing": "5.1.0","typescript": "4.0.3"
  }

测试 2:失败 -> 我得到了一个 MR 几个更新(@angular-devkit/build-angular、@angular/cdk、@typescript-eslint/eslint-plugin、 @typescript-eslint/parser、cypress、org.apache.tika:tika-parsers、tslib 等等(npm 和 gradle 依赖项混合)

{
  "gradle-lite": {
    "enabled": true
  },"gradle": {
    "enabled": false
  },"docker-compose": {
    "enabled": false
  },"dockerfile": {
    "enabled": false
  },"gitlabci": {
    "enabled": false
  },"packageRules": [
    {
      "groupName": "angular-eslint","matchPackagePatterns": [
        "^@angular-eslint/"
      ]
    },{
      "groupName": "typescript-eslint","matchPackagePatterns": [
        "^@typescript-eslint/"
      ]
    },{
      "groupName": "angular","matchPackagePatterns": [
        "^@angular/"
      ],"excludePackageNames": [
        "@angular/cli"
      ]
    },{
      "groupName": "ngrx","matchPackagePatterns": [
        "^@ngrx/"
      ]
    },{
      "groupName": "ag-grid","matchPackagePatterns": [
        "^ag-grid-"
      ]
    },{
      "groupName": "spring-boot","matchPackagePrefixes": [
        "org.springframework.boot:"
      ]
    },{
      "groupName": "mapstruct","matchPackagePrefixes": [
        "org.mapstruct:"
      ]
    },{
      "groupName": "springfox","matchPackagePrefixes": [
        "io.springfox:"
      ]
    }
  ],"prConcurrentLimit": 1
}

在第一个 renovate.json 中,我使用 matchPackagePatterns,在第二个中使用 matchPackagePrefixes,但没有人在工作。 我该怎么办

注意:也有java依赖,但我认为有了package.json就足以理解问题了。

提前致谢

解决方法

显然这是一个错误

https://github.com/renovatebot/renovate/pull/9949

在 25.18.5 版本中应该修复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。