r-lib / lintr

Static Code Analysis for R
https://lintr.r-lib.org
Other
1.19k stars 184 forks source link

Release lintr 3.1.1 #2178

Closed MichaelChirico closed 10 months ago

MichaelChirico commented 1 year ago

Prepare for release:

Submit to CRAN:

Wait for CRAN...

MichaelChirico commented 12 months ago

Output from revdep_compare_releases.R:

The following packages warned on main only:
  None! 🎉
The following packages warned on v3.1.0 only:
  None! 🎉
The following packages warned on both branches:
  abbyyR, admiralophtha, admiralvaccine, BTYDplus, bupaR, cleaR, crunch, dampack, dashboardthemes, DBItest, DepthProc, designer, diffusr, DIZtools, DIZutils, dyn.log, edgarWebR, epigraphdb, fixtuRes, FSelectorRcpp, geofacet, geogrid, ggcharts, ggthemes, jpmesh, languageserver, mlflow, mlr, modules, openbankeR, opensensmapr, osfr, packager, physiology, prettyB, PWFSLSmoke, rbokeh, requiRements, RestRserve, RSQL, scriptexec, stencilaschema, tsviz, upsetjs, virustotal, WikidataQueryServiceR, WoodburyMatrix

The following packages failed on main only: 

The following packages failed on v3.1.0 only: 

The following packages failed on both branches:
  abbyyR, DBItest, diffusr, geofacet, geogrid, opensensmapr, rbokeh, RestRserve, roadoi, tuber, virustotal

Count of lints found on main but not on v3.1.0: 5
Count of these by linter:
              linter N
1: assignment_linter 5
Sample of <=10 hits from each linter:
                                                                                    line                         location
1:      configList[["station_meta"]][["latitude"]] %<>% as.numeric() [assignment_linter] PWFSLSmoke:R/generic_parseData.R
2:     configList[["station_meta"]][["longitude"]] %<>% as.numeric() [assignment_linter] PWFSLSmoke:R/generic_parseData.R
3:   configList[["parsing_info"]][["header_rows"]] %<>% as.integer() [assignment_linter] PWFSLSmoke:R/generic_parseData.R
4:                                                          dat %<>% [assignment_linter]  dat:tests/testthat/test-mutar.R
5:                                  names(configList) %<>% tolower() [assignment_linter] PWFSLSmoke:R/generic_parseData.R
Count of lints found on v3.1.0 but not on main: 12
Count of these by linter:
               linter  N
1: object_name_linter 12
Sample of <=10 hits from each linter:
                                                                                        line                                          location
 1:                          attr(res, "SplitValues") <- control$breaks [object_name_linter]                      FSelectorRcpp:R/discretize.R
 2:   attr(ptest$data, "row.names") = as.integer(row.names(ptest$data)) [object_name_linter] mlr:tests/testthat/test_base_resample_operators.R
 3:                             attr(self$def, "schema-graph") <- value [object_name_linter]                       DataFakeR:R/schema_source.R
 4:    attr(schema, "schema-graph") <- attr(schema, "schema-graph") %>% [object_name_linter]     DataFakeR:tests/testthat/test-simulate_cols.R
 5:                 S3Part(x, needClass = "data.frame") <- data.frame() [object_name_linter]                                    dat:R/helper.R
 6:    attr(schema, "schema-graph") <- attr(schema, "schema-graph") %>% [object_name_linter]     DataFakeR:tests/testthat/test-simulate_cols.R
 7:                        attr(schema, "schema-graph") <- schema_graph [object_name_linter]                       DataFakeR:R/schema_source.R
 8:                                          attr(p, "nn.index") = NULL [object_name_linter]                      mlr:R/RLearner_classif_fnn.R
 9:                                           attr(p, "nn.dist") = NULL [object_name_linter]                      mlr:R/RLearner_classif_fnn.R
10:                               attr(data, "fsSplitPointsList") <- c( [object_name_linter]                      FSelectorRcpp:R/discretize.R
Comparison of total time to run lint_packages() across all repos:
  2821m to run on main, 3116m to run on v3.1.0
Comparison of time to run lint_package() on each repo (new - old; negative -> faster)
                   package elapsed_main elapsed_v3.1.0   delta   delta_pct
  1:                crunch      147.770        196.286 -48.516 -24.7169946
  2:                   mlr      195.612        226.679 -31.067 -13.7052837
  3:                 arrow       89.111        117.771 -28.660 -24.3353627
  4:            PWFSLSmoke       64.601         89.844 -25.243 -28.0964783
  5:             datarobot       78.258         95.673 -17.415 -18.2026277
  6:       EstimationTools       27.815         44.173 -16.358 -37.0316709
  7:                mlrCPO      103.742        119.787 -16.045 -13.3946088
  8:        languageserver       14.200         24.268 -10.068 -41.4867315
  9:               cmstatr       29.392         37.826  -8.434 -22.2968329
 10:               dampack       11.976         20.318  -8.342 -41.0571907
 11:               xgboost       35.774         43.921  -8.147 -18.5492134
 12:                 smerc       48.586         56.692  -8.106 -14.2983137
 13:            secuTrialR       22.693         30.026  -7.333 -24.4221675
 14:        shiny.semantic       25.116         32.226  -7.110 -22.0629306
 15:                 bupaR       30.241         36.945  -6.704 -18.1458925
 16:            epigraphdb        5.199         10.868  -5.669 -52.1623114
 17:              DQAstats       22.924         28.515  -5.591 -19.6072243
 18:          REDCapTidieR       12.041         17.506  -5.465 -31.2178682
 19:              lightgbm       43.447         48.773  -5.326 -10.9199762
 20:              autoharp       19.505         24.716  -5.211 -21.0835087
 21:           mpathsenser       21.305         26.308  -5.003 -19.0170290
 22:       shiny.telemetry        9.205         14.037  -4.832 -34.4233098
 23:       ggRandomForests       34.803         39.624  -4.821 -12.1668686
 24:               emayili       10.897         15.463  -4.566 -29.5285520
 25:              ggthemes       24.458         28.604  -4.146 -14.4944763
 26:          urlshorteneR       11.151         15.212  -4.061 -26.6960295
 27:                  PaRe       12.138         16.086  -3.948 -24.5430809
 28:         mlexperiments       15.643         19.165  -3.522 -18.3772502
 29:                   TDA       16.867         20.228  -3.361 -16.6155824
 30:       NHSRplotthedots        8.973         12.174  -3.201 -26.2937408
 31:                xportr        9.686         12.692  -3.006 -23.6842105
 32:             supernova        9.013         11.964  -2.951 -24.6656637
 33:                mlflow       13.552         16.365  -2.813 -17.1891231
 34:              datacutr        8.421         11.056  -2.635 -23.8332127
 35:               clugenr       11.515         14.108  -2.593 -18.3796428
 36:       rBiasCorrection       10.777         13.304  -2.527 -18.9942874
 37:               admiral      151.009        153.533  -2.524  -1.6439463
 38:             precommit       12.183         14.534  -2.351 -16.1758635
 39:               dyn.log       10.348         12.602  -2.254 -17.8860498
 40:        data.validator        5.610          7.803  -2.193 -28.1045752
 41:                DQAgui       11.938         14.119  -2.181 -15.4472696
 42:                 rhino        4.747          6.851  -2.104 -30.7108451
 43:              BTYDplus       22.396         24.470  -2.074  -8.4756845
 44:              rextendr        9.643         11.597  -1.954 -16.8491851
 45:              designer        5.633          7.568  -1.935 -25.5681818
 46:         BiasCorrector        9.476         11.411  -1.935 -16.9573219
 47:               babette       20.591         22.442  -1.851  -8.2479280
 48:       shiny.benchmark        4.846          6.686  -1.840 -27.5201914
 49:                maraca        3.430          5.259  -1.829 -34.7784750
 50:    semantic.dashboard        5.339          6.931  -1.592 -22.9692685
 51:       Plasmidprofiler        4.417          6.006  -1.589 -26.4568765
 52:              DIZtools        9.322         10.748  -1.426 -13.2675847
 53:       shiny.blueprint       10.153         11.560  -1.407 -12.1712803
 54:                   fst        8.890         10.262  -1.372 -13.3697135
 55:               fstcore        8.890         10.262  -1.372 -13.3697135
 56:          goodpractice        8.250          9.609  -1.359 -14.1429909
 57:              packager       20.146         21.454  -1.308  -6.0967652
 58:                jpmesh        7.600          8.826  -1.226 -13.8907772
 59:               cloudos        8.022          9.217  -1.195 -12.9651730
 60:        admiralvaccine       23.773         24.911  -1.138  -4.5682630
 61:                 logrx       10.419         11.499  -1.080  -9.3921211
 62:            physiology        8.668          9.739  -1.071 -10.9970223
 63:              activatr        6.443          7.397  -0.954 -12.8971205
 64:                airnow        3.738          4.675  -0.937 -20.0427807
 65:         caretEnsemble       13.390         14.311  -0.921  -6.4356090
 66:         FSelectorRcpp        9.994         10.873  -0.879  -8.0842454
 67:               ConNEcT        6.052          6.926  -0.874 -12.6191164
 68:                newsmd        1.022          1.891  -0.869 -45.9545214
 69:                  nLTT       10.547         11.377  -0.830  -7.2954206
 70:               modules        7.752          8.580  -0.828  -9.6503497
 71:               dittodb       12.084         12.823  -0.739  -5.7630820
 72:               upsetjs        6.880          7.592  -0.712  -9.3782929
 73:             ggfortify       36.763         37.457  -0.694  -1.8527912
 74:              fxTWAPLS       11.700         12.382  -0.682  -5.5079955
 75:            sjtable2df        2.546          3.225  -0.679 -21.0542636
 76:               biolink        3.322          3.995  -0.673 -16.8460576
 77:              DIZutils        4.208          4.871  -0.663 -13.6111681
 78:            shiny.i18n        2.916          3.576  -0.660 -18.4563758
 79:                 rnrfa        5.562          6.141  -0.579  -9.4284319
 80:             DataFakeR       11.898         12.464  -0.566  -4.5410783
 81:            shiny.info        2.390          2.928  -0.538 -18.3743169
 82:            scriptexec        2.975          3.495  -0.520 -14.8783977
 83:                  kdry        5.335          5.823  -0.488  -8.3805598
 84:           shiny.react        2.287          2.765  -0.478 -17.2875226
 85:             rasterpdf        1.402          1.864  -0.462 -24.7854077
 86:               foundry        4.111          4.563  -0.452  -9.9057638
 87:                   rde        1.927          2.376  -0.449 -18.8973064
 88:             aws.alexa        2.089          2.531  -0.442 -17.4634532
 89:        connectwidgets        6.753          7.188  -0.435  -6.0517529
 90:                dupree        4.080          4.492  -0.412  -9.1718611
 91:          shiny.router        3.137          3.498  -0.361 -10.3201830
 92:         INSPECTumours       10.286         10.647  -0.361  -3.3906265
 93:        WoodburyMatrix        2.562          2.893  -0.331 -11.4414103
 94:            autonewsmd        2.766          3.077  -0.311 -10.1072473
 95:            adaptalint        1.376          1.687  -0.311 -18.4350919
 96:              rdomains        3.084          3.393  -0.309  -9.1069850
 97:               prettyB        2.517          2.814  -0.297 -10.5543710
 98:                 cleaR        1.055          1.290  -0.235 -18.2170543
 99:          requiRements        1.130          1.344  -0.214 -15.9226190
100:                   dat        9.227          9.440  -0.213  -2.2563559
101:              lineupjs        1.271          1.472  -0.201 -13.6548913
102:                 tsviz        1.268          1.412  -0.144 -10.1983003
103: WikidataQueryServiceR        0.702          0.817  -0.115 -14.0758874
104:          wavefunction        0.592          0.700  -0.108 -15.4285714
105:              simaerep       22.494         22.592  -0.098  -0.4337819
106:        stencilaschema        1.406          1.473  -0.067  -4.5485404
107:                abbyyR        0.153          0.206  -0.053 -25.7281553
108:                roadoi        1.167          1.173  -0.006  -0.5115090
109:               diffusr        0.059          0.064  -0.005  -7.8125000
110:                rbokeh        0.051          0.055  -0.004  -7.2727273
111:               geogrid        0.055          0.059  -0.004  -6.7796610
112:             describer        1.026          1.028  -0.002  -0.1945525
113:          opensensmapr        0.030          0.032  -0.002  -6.2500000
114:              geofacet        0.016          0.017  -0.001  -5.8823529
115:               DBItest        0.086          0.085   0.001   1.1764706
116:            virustotal        0.041          0.039   0.002   5.1282051
117:              fakemake        6.084          6.059   0.025   0.4126093
118:                 tuber        0.060          0.033   0.027  81.8181818
119:                  RSQL        5.222          5.180   0.042   0.8108108
120:           admiralonco       14.758         14.713   0.045   0.3058520
121:            RestRserve        0.111          0.054   0.057 105.5555556
122:              fixtuRes        3.789          3.723   0.066   1.7727639
123:              devtools        1.974          1.881   0.093   4.9441786
124:       dashboardthemes        6.489          6.371   0.118   1.8521425
125:         admiralophtha        8.120          7.958   0.162   2.0356874
126:          admiral.test        1.704          1.506   0.198  13.1474104
127:               mcbette        8.220          7.956   0.264   3.3182504
128:            openbankeR        1.475          1.099   0.376  34.2129208
129:              ggcharts       10.276          9.722   0.554   5.6984160
130:             DepthProc        7.634          7.016   0.618   8.8084379
131:                  i18n       12.206         11.582   0.624   5.3876705
132:            admiraldev       22.158         21.162   0.996   4.7065495
133:             lifecycle        9.939          8.667   1.272  14.6763586
134:                  osfr       21.186         19.483   1.703   8.7409537
135:    PosteriorBootstrap        5.217          3.024   2.193  72.5198413
136:               latrend       86.630         84.432   2.198   2.6032784
137:             pirouette       58.946         56.300   2.646   4.6998224
138:                unifir       13.092         10.275   2.817  27.4160584
139:              beautier      152.610        127.235  25.375  19.9434118
140:             edgarWebR      443.570        382.073  61.497  16.0956152
                   package elapsed_main elapsed_v3.1.0   delta   delta_pct
      0%      10%      20%      30%      40%      50%      60%      70%      80%      90%     100% 
-48.5160  -6.7446  -3.3932  -2.0830  -1.3284  -0.7835  -0.4716  -0.2287  -0.0020   0.2046  61.4970 
MichaelChirico commented 12 months ago

Took a look at edgarWebR's apparent slowdown, looks like it's all down to cyclocomp_linter(). I reported this: https://github.com/gaborcsardi/cyclocomp/issues/25

system.time(lintr::lint_package())

# main @ b5e09d01c0ce1a1647f11acf8e91ff167fe60aab, excluding cyclocomp_linter()
#    user  system elapsed 
#  37.041   0.008  37.049 

# v3.1.0, excluding cyclocomp_linter()
   user  system elapsed 
 49.582   0.423  50.005

Generally 10-20% faster! :rocket:

MichaelChirico commented 12 months ago

I also filed https://github.com/r-lib/xmlparsedata/pull/37, https://github.com/r-lib/xmlparsedata/pull/38 and https://github.com/r-lib/xmlparsedata/pull/39 to improve get_source_expressions().

MichaelChirico commented 11 months ago

Hey @jimhester, 3.1.1 is ready to roll! Thanks for your help in wrapping up the last steps to get it on CRAN!

MichaelChirico commented 10 months ago

Thanks @jimhester!

Now on CRAN: https://cran.r-project.org/web/packages/lintr/index.html

MichaelChirico commented 10 months ago

Thanks everyone!