[7.21.0] - 2026-09-07
Features
- feat(cli): say when packages were skipped as untouched (#1065)
Bug Fixes
- fix(bot): require https and pin the token exchange to api.ferrflow.com (#1059)
- fix(config): stop splicing paths and package names into the JS loader script (#1057)
Performance
Binary
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
ferrflow |
16.7ms (-29%) |
16.1ms (-33%) |
3.3ms (-35%) |
2.9ms (-34%) |
2.8ms (-30%) |
15.5 MB |
| mono-100-1k |
ferrflow |
52.9ms |
50.7ms (-2%) |
5.6ms (+2%) |
4.7ms (+2%) |
4.2ms (-2%) |
15.1 MB |
| mono-50-5k |
ferrflow |
194.9ms (+3%) |
194.3ms (+3%) |
6.3ms (+2%) |
4.0ms (-2%) |
3.8ms (-5%) |
15.1 MB |
| mono-large |
ferrflow |
669.0ms (-1%) |
661.6ms (-3%) |
10.5ms (+5%) |
6.1ms (+15%) |
5.3ms (+6%) |
17.1 MB |
| mono-medium |
ferrflow |
24.4ms (-6%) |
23.5ms (-1%) |
4.5ms (-2%) |
3.8ms (-3%) |
3.6ms (-3%) |
15.2 MB |
| mono-small |
ferrflow |
8.2ms (-12%) |
7.3ms (-10%) |
3.0ms (-3%) |
2.8ms |
2.8ms |
13.2 MB |
| single |
ferrflow |
6.1ms (-21%) |
5.4ms (-28%) |
2.8ms (-13%) |
2.4ms (-20%) |
2.5ms (-17%) |
13.3 MB |
Note: every competitor is a Node.js package — none ship a native binary, so this section can only show ferrflow. Cross-tool comparisons live in the Npm section.
Docker
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
ferrflow |
396.2ms (+80%) |
467.4ms (+118%) |
349.6ms (+77%) |
449.7ms (+130%) |
327.3ms (+68%) |
43.3 MB |
| mono-100-1k |
ferrflow |
242.0ms (-3%) |
238.9ms (-2%) |
191.2ms (-4%) |
191.1ms (-4%) |
188.8ms (-4%) |
45.2 MB |
| mono-50-5k |
ferrflow |
387.6ms (+6%) |
383.3ms (+5%) |
193.5ms (+12%) |
191.6ms (+11%) |
191.7ms (+13%) |
42.7 MB |
| mono-large |
ferrflow |
889.0ms (-12%) |
880.2ms (-13%) |
195.9ms (-10%) |
192.9ms (-12%) |
189.5ms (-10%) |
43.6 MB |
| mono-medium |
ferrflow |
237.0ms (+8%) |
234.9ms (+9%) |
215.6ms (+9%) |
215.0ms (+9%) |
214.3ms (+8%) |
43.0 MB |
| mono-small |
ferrflow |
286.8ms (+19%) |
226.5ms (-49%) |
421.8ms (+58%) |
371.1ms (+51%) |
233.0ms (-29%) |
43.2 MB |
| single |
ferrflow |
197.2ms |
188.1ms (-4%) |
274.0ms (+43%) |
211.0ms (+9%) |
206.6ms (+9%) |
43.8 MB |
Note: no competitor publishes a first-party Docker image that is comparable to ghcr.io/ferrlabs/ferrflow (a single static binary). Wrapping the Node tools in node:lts would only re-time node startup + npm + the tool already measured in the Npm section, so this section is intentionally limited to ferrflow.
Npm
| Fixture |
Tool |
check |
release-dry-run |
tag |
validate |
version |
Peak RSS |
| complex |
changesets |
- |
466.8ms (-31%) |
- |
- |
- |
106.0 MB |
| complex |
commit-and-tag-version |
- |
329.3ms (-37%) |
- |
- |
- |
93.1 MB |
| complex |
ferrflow |
208.5ms (-34%) |
206.9ms (-35%) |
192.7ms (-36%) |
193.2ms (-36%) |
191.9ms (-36%) |
93.2 MB |
| complex |
semantic-release |
- |
1006.5ms (-35%) |
- |
- |
- |
143.9 MB |
| complex |
standard-version |
- |
380.3ms (-37%) |
- |
- |
- |
95.5 MB |
| mono-100-1k |
changesets |
- |
666.2ms (-5%) |
- |
- |
- |
106.0 MB |
| mono-100-1k |
commit-and-tag-version |
- |
576.0ms (-6%) |
- |
- |
- |
91.5 MB |
| mono-100-1k |
ferrflow |
338.6ms (-4%) |
333.0ms (-5%) |
288.3ms (-5%) |
287.9ms (-4%) |
287.6ms (-5%) |
91.5 MB |
| mono-100-1k |
semantic-release |
- |
1579.6ms (-5%) |
- |
- |
- |
162.1 MB |
| mono-100-1k |
standard-version |
- |
672.3ms (-4%) |
- |
- |
- |
97.6 MB |
| mono-50-5k |
changesets |
- |
625.7ms (+2%) |
- |
- |
- |
104.4 MB |
| mono-50-5k |
commit-and-tag-version |
- |
984.6ms (+9%) |
- |
- |
- |
106.1 MB |
| mono-50-5k |
ferrflow |
485.8ms (+5%) |
484.3ms (+5%) |
296.6ms (+9%) |
295.1ms (+8%) |
292.8ms (+7%) |
91.2 MB |
| mono-50-5k |
semantic-release |
- |
2451.9ms (+10%) |
- |
- |
- |
314.5 MB |
| mono-50-5k |
standard-version |
- |
1242.3ms (+12%) |
- |
- |
- |
126.6 MB |
| mono-large |
changesets |
- |
806.4ms (+8%) |
- |
- |
- |
115.8 MB |
| mono-large |
commit-and-tag-version |
- |
1339.4ms (+6%) |
- |
- |
- |
127.5 MB |
| mono-large |
ferrflow |
984.1ms (-6%) |
975.5ms (-6%) |
295.1ms (+15%) |
296.3ms (+18%) |
290.2ms (+15%) |
91.6 MB |
| mono-large |
semantic-release |
- |
3151.7ms (+14%) |
- |
- |
- |
358.2 MB |
| mono-large |
standard-version |
- |
1770.0ms (+15%) |
- |
- |
- |
163.4 MB |
| mono-medium |
changesets |
- |
575.7ms (-7%) |
- |
- |
- |
104.0 MB |
| mono-medium |
commit-and-tag-version |
- |
506.2ms (-7%) |
- |
- |
- |
91.4 MB |
| mono-medium |
ferrflow |
296.8ms (-7%) |
295.8ms (-8%) |
281.6ms (-6%) |
282.6ms (-6%) |
277.2ms (-7%) |
91.5 MB |
| mono-medium |
semantic-release |
- |
1414.6ms (-9%) |
- |
- |
- |
144.0 MB |
| mono-medium |
standard-version |
- |
575.1ms (-9%) |
- |
- |
- |
94.8 MB |
| mono-small |
changesets |
- |
405.9ms (-30%) |
- |
- |
- |
103.6 MB |
| mono-small |
commit-and-tag-version |
- |
305.2ms (-24%) |
- |
- |
- |
91.5 MB |
| mono-small |
ferrflow |
201.4ms (-15%) |
199.6ms (-16%) |
191.4ms (-18%) |
194.5ms (-17%) |
194.3ms (-18%) |
92.0 MB |
| mono-small |
semantic-release |
- |
909.6ms (-26%) |
- |
- |
- |
132.1 MB |
| mono-small |
standard-version |
- |
345.2ms (-19%) |
- |
- |
- |
91.6 MB |
| single |
changesets |
- |
434.3ms (-18%) |
- |
- |
- |
103.1 MB |
| single |
commit-and-tag-version |
- |
368.3ms (-25%) |
- |
- |
- |
91.7 MB |
| single |
ferrflow |
230.3ms (-23%) |
232.9ms (-22%) |
225.2ms (-25%) |
225.5ms (-24%) |
225.0ms (-23%) |
91.7 MB |
| single |
semantic-release |
- |
1099.9ms (-25%) |
- |
- |
- |
135.0 MB |
| single |
standard-version |
- |
419.2ms (-25%) |
- |
- |
- |
91.6 MB |
Install footprint
| Tool |
npm |
binary |
| changesets |
5.0 MB |
— |
| commit-and-tag-version |
8.0 MB |
— |
| ferrflow |
8.0 MB |
8.0 MB |
| release-please |
95.0 MB |
— |
| semantic-release |
69.0 MB |
— |
| standard-version |
21.0 MB |
— |