Skip to content

👷 Stage publish using pnpm in publish jobs#7125

Merged
dubzzz merged 2 commits into
mainfrom
claude/fast-check-publish-flow-jwlk4j
Jul 8, 2026
Merged

👷 Stage publish using pnpm in publish jobs#7125
dubzzz merged 2 commits into
mainfrom
claude/fast-check-publish-flow-jwlk4j

Conversation

@dubzzz

@dubzzz dubzzz commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Port the publish-flow fixes battle-tested while releasing pure-rand
(dubzzz/pure-rand#1066, #1068, #1069) to the seven publish jobs:

  • replace the global npm install -g npm@latest workaround and
    npm stage publish with pnpm stage publish --no-git-checks
  • add the missing pnpm/action-setup step in publish jobs
  • pin an explicit pnpm version (latest) since these jobs have no
    checkout for the action to read the version from package.json

Co-Authored-By: Claude Fable 5 [email protected]
Claude-Session: https://claude.ai/code/session_019BW9GjBZdMoJdnmb7c4fXC

claude added 2 commits July 8, 2026 20:58
Port the publish-flow fixes battle-tested while releasing pure-rand
(dubzzz/pure-rand#1066, #1068, #1069) to the seven publish jobs:

- replace the global `npm install -g npm@latest` workaround and
  `npm stage publish` with `pnpm stage publish --no-git-checks`
- add the missing `pnpm/action-setup` step in publish jobs
- pin an explicit pnpm version (`latest`) since these jobs have no
  checkout for the action to read the version from package.json

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_019BW9GjBZdMoJdnmb7c4fXC
Keep the publish jobs aligned with dubzzz/pure-rand: the
pnpm/action-setup version pin carries no comment there.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_019BW9GjBZdMoJdnmb7c4fXC
@changeset-bot

changeset-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: f796766

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Jul 8, 2026

Copy link
Copy Markdown
@fast-check/ava

npm i https://pkg.pr.new/@fast-check/ava@7125

fast-check

npm i https://pkg.pr.new/fast-check@7125

@fast-check/jest

npm i https://pkg.pr.new/@fast-check/jest@7125

@fast-check/packaged

npm i https://pkg.pr.new/@fast-check/packaged@7125

@fast-check/poisoning

npm i https://pkg.pr.new/@fast-check/poisoning@7125

@fast-check/vitest

npm i https://pkg.pr.new/@fast-check/vitest@7125

@fast-check/worker

npm i https://pkg.pr.new/@fast-check/worker@7125

commit: f796766

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

⏱️ Benchmark Results

Click to expand

 RUN  v4.1.10 /home/runner/work/fast-check/fast-check


 ✓  fast-check  test/bench/arbitraries.bench.ts > generate 26335ms
     name                                                      hz      min      max     mean      p75      p99     p995     p999      rme  samples
   · boolean()                                          10,496.94   0.0836   0.8741   0.0953   0.1002   0.1539   0.1666   0.3553   ±0.62%     5249  [1.07x] ⇑
     boolean()                                           9,789.08   0.0876   1.3511   0.1022   0.1069   0.1698   0.1880   0.4622   ±0.81%     4895  (baseline)
   · integer()                                          12,013.65   0.0770   0.6843   0.0832   0.0832   0.0985   0.1083   0.1216   ±0.33%     6009  [1.04x] ⇑
     integer()                                          11,581.55   0.0801   0.7161   0.0863   0.0864   0.1022   0.1096   0.1227   ±0.34%     5791  (baseline)
   · maxSafeInteger()                                    7,453.55   0.1288   0.5878   0.1342   0.1323   0.1731   0.1993   0.5196   ±0.39%     3727  [1.03x] ⇑
     maxSafeInteger()                                    7,260.54   0.1311   0.7000   0.1377   0.1359   0.1864   0.1947   0.5438   ±0.46%     3631  (baseline)
   · bigInt()                                            1,317.85   0.7164   1.4678   0.7588   0.7569   1.0355   1.1916   1.4678   ±0.58%      659  [0.99x] ⇓
     bigInt()                                            1,337.09   0.7061   1.2514   0.7479   0.7447   1.0542   1.0694   1.2514   ±0.57%      669  (baseline)
   · float()                                             5,602.38   0.1651   0.6511   0.1785   0.1846   0.2221   0.2320   0.5142   ±0.45%     2802  [1.03x] ⇑
     float()                                             5,427.88   0.1697   0.7760   0.1842   0.1892   0.2264   0.2588   0.6193   ±0.52%     2714  (baseline)
   · double()                                            1,708.90   0.4851   6.7617   0.5852   0.5131   5.1869   5.4645   6.7617   ±6.27%      855  [0.97x] ⇓
     double()                                            1,758.71   0.4614   6.7040   0.5686   0.4905   6.0341   6.4300   6.7040   ±7.26%      880  (baseline)
   · date()                                              3,469.05   0.2568   6.3631   0.2883   0.2719   0.3119   0.4563   5.5892   ±5.40%     1735  [0.99x] ⇓
     date()                                              3,493.53   0.2560   5.9561   0.2862   0.2699   0.2940   0.3231   5.8596   ±5.71%     1747  (baseline)
   · string()                                              859.24   0.8627   9.8216   1.1638   0.9302   8.0316   8.2979   9.8216   ±9.42%      430  [1.03x] ⇑
     string()                                              832.95   0.8494  11.2282   1.2005   1.0089   9.5506  10.0520  11.2282  ±10.72%      417  (baseline)
   · string({ maxLength: 100, size: 'max' })               161.12   5.3236   9.6712   6.2064   5.8195   9.6712   9.6712   9.6712   ±4.77%       81  [1.03x] ⇑
     string({ maxLength: 100, size: 'max' })               156.63   5.5016  10.1717   6.3844   5.9197  10.1717  10.1717  10.1717   ±5.16%       79  (baseline)
   · string({ unit: 'grapheme' })                          575.14   1.3077  13.2684   1.7387   1.4041  12.5744  12.7665  13.2684  ±11.86%      288  [1.05x] ⇑
     string({ unit: 'grapheme' })                          545.66   1.3044  17.7249   1.8326   1.4190  14.8475  14.9256  17.7249  ±14.03%      273  (baseline)
   · base64String()                                        775.33   0.8897  12.5406   1.2898   1.1175   7.9723  12.4088  12.5406   ±9.99%      388  [0.95x] ⇓
     base64String()                                        819.62   0.8915  10.2936   1.2201   0.9569   9.0014   9.0868  10.2936  ±10.87%      415  (baseline)
   · array(integer())                                    1,514.70   0.5109   7.6109   0.6602   0.5496   7.3551   7.4004   7.6109   ±9.59%      758  [1.00x] ⇓
     array(integer())                                    1,519.28   0.4847   9.8569   0.6582   0.5266   7.8725   8.2073   9.8569  ±10.98%      760  (baseline)
   · array(integer(), { maxLength: 100, size: 'max' })     269.07   2.9388  13.6194   3.7165   3.3117   8.2131  13.6194  13.6194   ±7.00%      135  [1.24x] ⇑
     array(integer(), { maxLength: 100, size: 'max' })     217.32   2.9912  15.6191   4.6014   4.9790  12.2414  15.6191  15.6191   ±8.68%      110  (baseline)
   · uniqueArray(integer())                              1,140.60   0.7094   6.7178   0.8767   0.7592   6.2645   6.4459   6.7178   ±7.75%      571  [1.06x] ⇑
     uniqueArray(integer())                              1,072.96   0.6921   8.8043   0.9320   0.7597   7.7965   8.5349   8.8043   ±9.45%      543  (baseline)
   · set(integer())                                        839.82   0.8799   9.4345   1.1907   0.9528   6.7463   6.9734   9.4345   ±8.12%      420  [1.05x] ⇑
     set(integer())                                        799.62   0.8627  10.6013   1.2506   1.2108   6.0790   9.1030  10.6013   ±8.51%      400  (baseline)
   · tuple(integer())                                    5,483.76   0.1726   0.6556   0.1824   0.1796   0.2274   0.5082   0.5779   ±0.63%     2742  [1.02x] ⇑
     tuple(integer())                                    5,388.92   0.1756   0.7332   0.1856   0.1835   0.2510   0.4976   0.6131   ±0.64%     2695  (baseline)
   · record({ a: integer() })                            1,379.45   0.3671  18.1582   0.7249   0.3940  16.1659  16.8219  18.1582  ±21.35%      690  [0.89x] ⇓
     record({ a: integer() })                            1,552.70   0.3705  17.0823   0.6440   0.3927  13.1115  13.3429  17.0823  ±18.50%      782  (baseline)
   · dictionary(string(), integer())                      78.4465   8.6479  28.2492  12.7475   9.9692  28.2492  28.2492  28.2492  ±16.09%       40  [0.90x] ⇓
     dictionary(string(), integer())                      86.6897   8.3200  20.2149  11.5354  12.0814  20.2149  20.2149  20.2149  ±12.37%       44  (baseline)
   · map(string(), integer())                              110.00   5.5464  40.4247   9.0909   6.1926  40.4247  40.4247  40.4247  ±19.72%       56  [0.89x] ⇓
     map(string(), integer())                              123.18   5.4071  21.3726   8.1182   5.9647  21.3726  21.3726  21.3726  ±14.70%       62  (baseline)
   · constant(1)                                        25,407.63   0.0313   0.8160   0.0394   0.0334   0.0786   0.0815   0.4658   ±1.00%    12704  [0.87x] ⇓
     constant(1)                                        29,070.76   0.0320   0.7069   0.0344   0.0335   0.0530   0.0583   0.4652   ±0.90%    14536  (baseline)
   · constantFrom(1, 2)                                 12,900.37   0.0721   1.6839   0.0775   0.0742   0.1182   0.1318   0.5142   ±1.05%     6451  [1.01x] ⇑
     constantFrom(1, 2)                                 12,783.99   0.0742   0.9847   0.0782   0.0770   0.0936   0.1007   0.5604   ±0.71%     6392  (baseline)
   · oneof(integer(), integer())                         5,363.22   0.1773   0.7521   0.1865   0.1848   0.2109   0.2268   0.6816   ±0.51%     2682  [1.21x] ⇑
     oneof(integer(), integer())                         4,448.87   0.1850   2.3859   0.2248   0.2017   0.4513   0.5302   0.9082   ±1.64%     2225  (baseline)
   · oneof({ weight, arbitrary }, ...)                   5,400.03   0.1760   0.8223   0.1852   0.1837   0.2052   0.2307   0.6396   ±0.50%     2701  [1.04x] ⇑
     oneof({ weight, arbitrary }, ...)                   5,199.27   0.1818   0.8599   0.1923   0.1899   0.2562   0.2853   0.8067   ±0.66%     2600  (baseline)
   · option(integer())                                   5,579.06   0.1702   0.7738   0.1792   0.1772   0.2041   0.2345   0.7096   ±0.64%     2790  [1.03x] ⇑
     option(integer())                                   5,427.07   0.1746   0.8972   0.1843   0.1819   0.2101   0.2350   0.7707   ±0.78%     2714  (baseline)
   · subarray([1, 2, 3, 4, 5])                           2,203.91   0.4151   0.9735   0.4537   0.4543   0.8526   0.8872   0.9362   ±0.72%     1102  [0.91x] ⇓
     subarray([1, 2, 3, 4, 5])                           2,435.03   0.3799   1.0680   0.4107   0.4080   0.8989   0.9435   1.0178   ±0.92%     1218  (baseline)
   · letrec(tree)                                          629.60   0.9658  17.5347   1.5883   1.0891  14.1040  14.4035  17.5347  ±16.89%      320  [0.98x] ⇓
     letrec(tree)                                          643.76   0.9447  15.7204   1.5534   1.0811  14.9317  15.3158  15.7204  ±17.16%      322  (baseline)
   · memo(tree)                                            672.86   0.9224  15.8989   1.4862   1.0328  13.3781  13.8543  15.8989  ±16.25%      337  [1.05x] ⇑
     memo(tree)                                            642.16   0.9189  17.5292   1.5572   1.0335  14.6079  15.7980  17.5292  ±17.91%      325  (baseline)
   · anything()                                           64.5265  11.5785  24.1493  15.4975  22.9387  24.1493  24.1493  24.1493  ±11.67%       33  [1.05x] ⇑
     anything()                                           61.2696  11.4734  26.4969  16.3213  24.3414  26.4969  26.4969  26.4969  ±13.03%       31  (baseline)
   · json()                                               57.2888  12.2149  27.9411  17.4554  24.7426  27.9411  27.9411  27.9411  ±12.21%       29  [1.00x] ⇓
     json()                                               57.5638  11.9845  28.2718  17.3720  25.5648  28.2718  28.2718  28.2718  ±13.57%       30  (baseline)
   · entityGraph(employee -> manager? and team)           10.3639  87.3693   126.19  96.4883   100.68   126.19   126.19   126.19   ±8.91%       10  [1.02x] ⇑
     entityGraph(employee -> manager? and team)           10.1286  88.9111   119.74  98.7304   106.67   119.74   119.74   119.74   ±7.62%       10  (baseline)
   · emailAddress()                                       69.8328  10.4660  23.0421  14.3199  20.8229  23.0421  23.0421  23.0421  ±12.22%       35  [1.01x] ⇑
     emailAddress()                                       68.9641  10.3660  23.0865  14.5003  22.0724  23.0865  23.0865  23.0865  ±12.60%       35  (baseline)
   · webUrl()                                              114.03   5.4369  22.1268   8.7692  15.9494  22.1268  22.1268  22.1268  ±16.19%       59  [1.04x] ⇑
     webUrl()                                              110.09   5.5249  22.6923   9.0836   7.1509  22.6923  22.6923  22.6923  ±17.51%       56  (baseline)
   · ipV4()                                              1,072.59   0.6755  13.3247   0.9323   0.7027  11.9278  12.1381  13.3247  ±13.54%      539  [1.03x] ⇑
     ipV4()                                              1,044.71   0.6918  14.8072   0.9572   0.7216  13.1424  13.2973  14.8072  ±14.28%      523  (baseline)
   · ipV6()                                                177.25   3.9178  18.0901   5.6416   4.0887  18.0901  18.0901  18.0901  ±13.52%       89  [1.03x] ⇑
     ipV6()                                                172.88   3.8477  17.0503   5.7845   4.0363  17.0503  17.0503  17.0503  ±14.62%       87  (baseline)
   · uuid()                                                583.79   1.2734  15.0723   1.7129   1.2992  14.8774  14.9973  15.0723  ±15.62%      292  [1.13x] ⇑
     uuid()                                                514.83   1.2949  25.3217   1.9424   1.3292  17.2244  17.3148  25.3217  ±19.21%      259  (baseline)
   · stringMatching(/^abc$/)                            29,702.53   0.0315   0.5654   0.0337   0.0330   0.0462   0.0501   0.4436   ±0.81%    14852  [1.08x] ⇑
     stringMatching(/^abc$/)                            27,506.56   0.0340   0.7403   0.0364   0.0357   0.0489   0.0549   0.4904   ±0.89%    13754  (baseline)
   · stringMatching(/^[a-zA-Z0-9]+$/)                      466.03   1.5088  14.4289   2.1458   1.5996  12.5279  13.9282  14.4289  ±13.46%      234  [1.01x] ⇑
     stringMatching(/^[a-zA-Z0-9]+$/)                      461.58   1.5370  15.0589   2.1665   1.6241  13.7605  14.5103  15.0589  ±13.82%      231  (baseline)
   · mixedCase(string())                                   516.60   1.6739   6.3591   1.9357   1.7661   6.3182   6.3203   6.3591   ±5.64%      259  [1.05x] ⇑
     mixedCase(string())                                   493.98   1.6773   7.6445   2.0244   1.7782   7.0134   7.1165   7.6445   ±6.61%      249  (baseline)
   · integer().map(value+1)                              7,432.24   0.1212   4.6900   0.1345   0.1287   0.2561   0.2690   0.7126   ±1.97%     3717  [1.00x] ⇑
     integer().map(value+1)                              7,422.23   0.1249   1.4562   0.1347   0.1344   0.1520   0.1753   0.7191   ±0.83%     3714  (baseline)
   · integer().chain(integer())                          3,587.30   0.2651   0.8792   0.2788   0.2802   0.4276   0.6088   0.8019   ±0.64%     1794  [1.98x] ⇑
     integer().chain(integer())                          1,813.22   0.2760  21.8547   0.5515   0.2970  19.9369  20.5598  21.8547  ±25.26%      914  (baseline)
   · integer().filter(true)                              8,738.73   0.1080   0.6691   0.1144   0.1136   0.1439   0.1494   0.2376   ±0.39%     4370  [1.01x] ⇑
     integer().filter(true)                              8,633.02   0.1092   0.7772   0.1158   0.1155   0.1307   0.1356   0.1585   ±0.43%     4317  (baseline)

 ✓  fast-check  test/bench/runners.bench.ts > runner 2432ms
     name                                                     hz     min     max    mean     p75     p99    p995    p999     rme  samples
   · assert on sync predicate not returning anything   15,889.50  0.0600  0.3750  0.0629  0.0611  0.1071  0.1642  0.2109  ±0.43%     7945  [1.02x] ⇑
     assert on sync predicate not returning anything   15,525.93  0.0612  0.3656  0.0644  0.0625  0.1114  0.1836  0.2367  ±0.50%     7763  (baseline)
   · assert on sync predicate returning true           15,934.46  0.0597  0.3355  0.0628  0.0609  0.1094  0.1640  0.2185  ±0.43%     7968  [1.03x] ⇑
     assert on sync predicate returning true           15,543.44  0.0609  0.3973  0.0643  0.0622  0.1318  0.1774  0.2549  ±0.51%     7772  (baseline)
   · assert on async predicate not returning anything   9,984.59  0.0941  0.3455  0.1002  0.0962  0.1852  0.1909  0.2312  ±0.46%     4993  [1.03x] ⇑
     assert on async predicate not returning anything   9,666.17  0.0967  0.3284  0.1035  0.0997  0.1893  0.1942  0.2413  ±0.47%     4834  (baseline)
   · check on sync predicate not returning anything    15,988.35  0.0590  0.3644  0.0625  0.0607  0.1113  0.1674  0.2344  ±0.45%     7995  [1.04x] ⇑
     check on sync predicate not returning anything    15,425.82  0.0612  0.3235  0.0648  0.0625  0.1336  0.1740  0.2466  ±0.49%     7713  (baseline)

 BENCH  Summary

   fast-check  stringMatching(/^abc$/) - test/bench/arbitraries.bench.ts > generate
    1.17x faster than constant(1)
    2.30x faster than constantFrom(1, 2)
    2.47x faster than integer()
    2.83x faster than boolean()
    3.40x faster than integer().filter(true)
    3.99x faster than maxSafeInteger()
    4.00x faster than integer().map(value+1)
    5.30x faster than float()
    5.32x faster than option(integer())
    5.42x faster than tuple(integer())
    5.50x faster than oneof({ weight, arbitrary }, ...)
    5.54x faster than oneof(integer(), integer())
    8.28x faster than integer().chain(integer())
    8.56x faster than date()
    13.48x faster than subarray([1, 2, 3, 4, 5])
    17.38x faster than double()
    19.61x faster than array(integer())
    21.53x faster than record({ a: integer() })
    22.54x faster than bigInt()
    26.04x faster than uniqueArray(integer())
    27.69x faster than ipV4()
    34.57x faster than string()
    35.37x faster than set(integer())
    38.31x faster than base64String()
    44.14x faster than memo(tree)
    47.18x faster than letrec(tree)
    50.88x faster than uuid()
    51.64x faster than string({ unit: 'grapheme' })
    57.50x faster than mixedCase(string())
    63.74x faster than stringMatching(/^[a-zA-Z0-9]+$/)
    110.39x faster than array(integer(), { maxLength: 100, size: 'max' })
    167.57x faster than ipV6()
    184.35x faster than string({ maxLength: 100, size: 'max' })
    260.47x faster than webUrl()
    270.02x faster than map(string(), integer())
    378.63x faster than dictionary(string(), integer())
    425.34x faster than emailAddress()
    460.32x faster than anything()
    518.47x faster than json()
    2865.95x faster than entityGraph(employee -> manager? and team)

   fast-check  check on sync predicate not returning anything - test/bench/runners.bench.ts > runner
    1.00x faster than assert on sync predicate returning true
    1.01x faster than assert on sync predicate not returning anything
    1.60x faster than assert on async predicate not returning anything

Benchmark report written to /home/runner/work/fast-check/fast-check/benchmark.json

Commit: f796766 (merge: 4d6b4bf)

dubzzz pushed a commit that referenced this pull request Jul 8, 2026
@dubzzz
dubzzz enabled auto-merge (squash) July 8, 2026 21:06
@dubzzz
dubzzz merged commit 89fc6ed into main Jul 8, 2026
92 of 99 checks passed
@dubzzz
dubzzz deleted the claude/fast-check-publish-flow-jwlk4j branch July 8, 2026 21:16
@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.89%. Comparing base (bf78423) to head (f796766).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7125   +/-   ##
=======================================
  Coverage   94.89%   94.89%           
=======================================
  Files         212      212           
  Lines        5951     5951           
  Branches     1565     1565           
=======================================
  Hits         5647     5647           
  Misses        296      296           
  Partials        8        8           
Flag Coverage Δ
tests 94.89% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants