ferrflow 4.10.3 → 5.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # FerrFlow
2
2
 
3
3
  [![Latest release](https://img.shields.io/github/v/release/FerrLabs/FerrFlow)](https://github.com/FerrLabs/FerrFlow/releases/latest)
4
- [![Coverage](https://codecov.io/gh/FerrLabs/FerrFlow/graph/badge.svg)](https://codecov.io/gh/FerrLabs/FerrFlow)
4
+ [![Quality Gate](https://sonar.ferrlabs.com/api/project_badges/measure?project=ferrflow&metric=alert_status&token=sqb_53f0d93466bd01a6c6a94a15125d5aa8390c67fa)](https://sonar.ferrlabs.com/dashboard?id=ferrflow)
5
+ [![Coverage](https://sonar.ferrlabs.com/api/project_badges/measure?project=ferrflow&metric=coverage&token=sqb_53f0d93466bd01a6c6a94a15125d5aa8390c67fa)](https://sonar.ferrlabs.com/dashboard?id=ferrflow)
5
6
  [![License](https://img.shields.io/github/license/FerrLabs/FerrFlow)](LICENSE)
6
7
  [![Socket Badge](https://badge.socket.dev/npm/package/ferrflow/latest)](https://badge.socket.dev/npm/package/ferrflow/latest)
7
8
  [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/FerrLabs/FerrFlow/badge)](https://scorecard.dev/viewer/?uri=github.com/FerrLabs/FerrFlow)
@@ -47,10 +48,12 @@ cargo install ferrflow
47
48
  npm install -D ferrflow
48
49
  ```
49
50
 
51
+ (`@ferrlabs/ferrflow` is kept as a published alias for the same package.)
52
+
50
53
  **Docker**
51
54
 
52
55
  ```bash
53
- docker run ghcr.io/ferrflow/ferrflow:latest check
56
+ docker run ghcr.io/ferrlabs/ferrflow:latest check
54
57
  ```
55
58
 
56
59
  **Pre-built binaries**
@@ -152,7 +155,7 @@ Add `$schema` to get autocompletion and validation in VS Code, WebStorm, and any
152
155
  "name": "my-app",
153
156
  "path": ".",
154
157
  "changelog": "CHANGELOG.md",
155
- "versioned_files": [
158
+ "versionedFiles": [
156
159
  { "path": "package.json", "format": "json" }
157
160
  ]
158
161
  }
@@ -173,7 +176,7 @@ Add `$schema` to get autocompletion and validation in VS Code, WebStorm, and any
173
176
  name: "my-app",
174
177
  path: ".",
175
178
  changelog: "CHANGELOG.md",
176
- versioned_files: [
179
+ versionedFiles: [
177
180
  { path: "package.json", format: "json" },
178
181
  ],
179
182
  },
@@ -210,8 +213,8 @@ format = "toml"
210
213
  "name": "api",
211
214
  "path": "services/api",
212
215
  "changelog": "services/api/CHANGELOG.md",
213
- "shared_paths": ["services/shared/"],
214
- "versioned_files": [
216
+ "sharedPaths": ["services/shared/"],
217
+ "versionedFiles": [
215
218
  { "path": "services/api/Cargo.toml", "format": "toml" }
216
219
  ]
217
220
  },
@@ -219,7 +222,7 @@ format = "toml"
219
222
  "name": "frontend",
220
223
  "path": "frontend",
221
224
  "changelog": "frontend/CHANGELOG.md",
222
- "versioned_files": [
225
+ "versionedFiles": [
223
226
  { "path": "frontend/package.json", "format": "json" }
224
227
  ]
225
228
  }
@@ -490,7 +493,7 @@ on_failure = "abort" # or "continue"
490
493
 
491
494
  If a hook exits non-zero and `on_failure` is `abort` (default), the release is cancelled. Set `on_failure` to `continue` to ignore hook failures.
492
495
 
493
- Hook commands receive environment variables: `FERRFLOW_PACKAGE`, `FERRFLOW_VERSION`, `FERRFLOW_PREV_VERSION`, `FERRFLOW_CHANNEL`, `FERRFLOW_IS_PRERELEASE`.
496
+ Hook commands receive environment variables: `FERRFLOW_PACKAGE`, `FERRFLOW_OLD_VERSION`, `FERRFLOW_NEW_VERSION`, `FERRFLOW_BUMP_TYPE`, `FERRFLOW_TAG`, `FERRFLOW_PACKAGE_PATH`, `FERRFLOW_DRY_RUN`, `FERRFLOW_CHANNEL`, `FERRFLOW_IS_PRERELEASE`.
494
497
 
495
498
  ## Conventional Commits
496
499
 
@@ -509,7 +512,7 @@ FerrFlow follows the [Conventional Commits](https://www.conventionalcommits.org/
509
512
 
510
513
  ```yaml
511
514
  release:
512
- image: ghcr.io/ferrflow/ferrflow:latest
515
+ image: ghcr.io/ferrlabs/ferrflow:latest
513
516
  script:
514
517
  - ferrflow release
515
518
  rules:
package/bin/ferrflow.js CHANGED
@@ -4,6 +4,7 @@ import { existsSync } from "fs";
4
4
  import { join, dirname } from "path";
5
5
  import { fileURLToPath } from "url";
6
6
  import { createRequire } from "module";
7
+ import { constants } from "os";
7
8
 
8
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
10
  const require = createRequire(import.meta.url);
@@ -14,6 +15,8 @@ const PLATFORMS = {
14
15
  "darwin-x64": "@ferrflow/darwin-x64",
15
16
  "darwin-arm64": "@ferrflow/darwin-arm64",
16
17
  "win32-x64": "@ferrflow/win32-x64",
18
+ "win32-arm64": "@ferrflow/win32-arm64",
19
+ "linux-arm": "@ferrflow/linux-arm",
17
20
  };
18
21
 
19
22
  function getBinaryPath() {
@@ -43,4 +46,11 @@ function getBinaryPath() {
43
46
 
44
47
  const binary = getBinaryPath();
45
48
  const result = spawnSync(binary, process.argv.slice(2), { stdio: "inherit" });
49
+ if (result.error) {
50
+ console.error(`ferrflow: failed to launch ${binary}: ${result.error.message}`);
51
+ process.exit(1);
52
+ }
53
+ if (result.signal) {
54
+ process.exit(128 + (constants.signals[result.signal] ?? 0));
55
+ }
46
56
  process.exit(result.status ?? 1);
package/package.json CHANGED
@@ -3,6 +3,12 @@
3
3
  "ferrflow": "./bin/ferrflow.js"
4
4
  },
5
5
  "description": "Universal semantic versioning for monorepos and classic repos",
6
+ "engines": {
7
+ "node": ">=18"
8
+ },
9
+ "files": [
10
+ "bin"
11
+ ],
6
12
  "homepage": "https://ferrflow.com",
7
13
  "keywords": [
8
14
  "semver",
@@ -14,16 +20,18 @@
14
20
  "license": "MPL-2.0",
15
21
  "name": "ferrflow",
16
22
  "optionalDependencies": {
17
- "@ferrflow/darwin-arm64": "4.10.3",
18
- "@ferrflow/darwin-x64": "4.10.3",
19
- "@ferrflow/linux-arm64": "4.10.3",
20
- "@ferrflow/linux-x64": "4.10.3",
21
- "@ferrflow/win32-x64": "4.10.3"
23
+ "@ferrflow/darwin-arm64": "5.22.2",
24
+ "@ferrflow/darwin-x64": "5.22.2",
25
+ "@ferrflow/linux-arm": "5.22.2",
26
+ "@ferrflow/linux-arm64": "5.22.2",
27
+ "@ferrflow/linux-x64": "5.22.2",
28
+ "@ferrflow/win32-arm64": "5.22.2",
29
+ "@ferrflow/win32-x64": "5.22.2"
22
30
  },
23
31
  "repository": {
24
32
  "type": "git",
25
33
  "url": "git+https://github.com/FerrLabs/FerrFlow.git"
26
34
  },
27
35
  "type": "module",
28
- "version": "4.10.3"
36
+ "version": "5.22.2"
29
37
  }
@@ -1,16 +0,0 @@
1
- {
2
- "cpu": [
3
- "arm64"
4
- ],
5
- "description": "FerrFlow macOS arm64 binary",
6
- "license": "MPL-2.0",
7
- "name": "@ferrflow/darwin-arm64",
8
- "os": [
9
- "darwin"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
- },
15
- "version": "4.10.3"
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "cpu": [
3
- "x64"
4
- ],
5
- "description": "FerrFlow macOS x64 binary",
6
- "license": "MPL-2.0",
7
- "name": "@ferrflow/darwin-x64",
8
- "os": [
9
- "darwin"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
- },
15
- "version": "4.10.3"
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "cpu": [
3
- "arm64"
4
- ],
5
- "description": "FerrFlow Linux arm64 binary",
6
- "license": "MPL-2.0",
7
- "name": "@ferrflow/linux-arm64",
8
- "os": [
9
- "linux"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
- },
15
- "version": "4.10.3"
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "cpu": [
3
- "x64"
4
- ],
5
- "description": "FerrFlow Linux x64 binary",
6
- "license": "MPL-2.0",
7
- "name": "@ferrflow/linux-x64",
8
- "os": [
9
- "linux"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
- },
15
- "version": "4.10.3"
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "cpu": [
3
- "x64"
4
- ],
5
- "description": "FerrFlow Windows x64 binary",
6
- "license": "MPL-2.0",
7
- "name": "@ferrflow/win32-x64",
8
- "os": [
9
- "win32"
10
- ],
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
- },
15
- "version": "4.10.3"
16
- }
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- VERSION="${1:?Usage: publish-wasm.sh <version>}"
5
-
6
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
7
- REPO_DIR="$(dirname "$(dirname "$SCRIPT_DIR")")"
8
- WASM_DIR="${REPO_DIR}/ferrflow-wasm"
9
-
10
- echo "Building @ferrflow/wasm@${VERSION}..."
11
-
12
- cd "$WASM_DIR"
13
- wasm-pack build --target bundler --scope ferrflow
14
-
15
- cd pkg
16
-
17
- # Rename package from @ferrflow/ferrflow-wasm to @ferrflow/wasm
18
- node -e "
19
- const fs = require('fs');
20
- const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
21
- pkg.name = '@ferrflow/wasm';
22
- pkg.version = '${VERSION}';
23
- pkg.repository = {
24
- type: 'git',
25
- url: 'git+https://github.com/FerrLabs/FerrFlow.git',
26
- directory: 'ferrflow-wasm'
27
- };
28
- pkg.homepage = 'https://ferrflow.com';
29
- fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
30
- "
31
-
32
- echo "Publishing @ferrflow/wasm@${VERSION}..."
33
- npm publish --access public
34
-
35
- echo "Published @ferrflow/wasm@${VERSION}"
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- VERSION="${1:?Usage: publish.sh <version>}"
5
-
6
- # Map: archive name -> platform dir
7
- declare -A ARCHIVES=(
8
- ["ferrflow-linux-x64.tar.gz"]="linux-x64"
9
- ["ferrflow-linux-arm64.tar.gz"]="linux-arm64"
10
- ["ferrflow-darwin-x64.tar.gz"]="darwin-x64"
11
- ["ferrflow-darwin-arm64.tar.gz"]="darwin-arm64"
12
- ["ferrflow-windows-x64.zip"]="win32-x64"
13
- )
14
-
15
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
16
- NPM_DIR="$(dirname "$SCRIPT_DIR")"
17
- WORK_DIR="$(mktemp -d)"
18
-
19
- echo "Downloading release binaries for v${VERSION}..."
20
-
21
- for archive in "${!ARCHIVES[@]}"; do
22
- platform="${ARCHIVES[$archive]}"
23
- echo " ${archive} -> @ferrflow/${platform}"
24
-
25
- gh release download "v${VERSION}" -p "$archive" -D "$WORK_DIR"
26
-
27
- # Prepare platform package
28
- pkg_dir="${WORK_DIR}/packages/${platform}"
29
- mkdir -p "${pkg_dir}/bin"
30
-
31
- # Extract binary
32
- if [[ "$archive" == *.zip ]]; then
33
- unzip -q "${WORK_DIR}/${archive}" -d "${pkg_dir}/bin/"
34
- else
35
- tar xzf "${WORK_DIR}/${archive}" -C "${pkg_dir}/bin/"
36
- fi
37
-
38
- # Copy package.json, README, and LICENSE
39
- cp "${NPM_DIR}/platforms/${platform}/package.json" "${pkg_dir}/package.json"
40
- cp "${NPM_DIR}/../README.md" "${pkg_dir}/README.md"
41
- cp "${NPM_DIR}/../LICENSE" "${pkg_dir}/LICENSE" 2>/dev/null || true
42
- cd "$pkg_dir"
43
- npm version "$VERSION" --no-git-tag-version --allow-same-version
44
- npm publish --access public
45
- cd - > /dev/null
46
- done
47
-
48
- # Publish main wrapper
49
- echo "Publishing main package ferrflow@${VERSION}..."
50
- cp "${NPM_DIR}/../README.md" "${NPM_DIR}/README.md"
51
- cp "${NPM_DIR}/../LICENSE" "${NPM_DIR}/LICENSE" 2>/dev/null || true
52
- cd "$NPM_DIR"
53
-
54
- # Update version and optionalDependencies versions
55
- npm version "$VERSION" --no-git-tag-version --allow-same-version
56
-
57
- node -e "
58
- const pkg = JSON.parse(require('fs').readFileSync('package.json', 'utf8'));
59
- for (const dep of Object.keys(pkg.optionalDependencies || {})) {
60
- pkg.optionalDependencies[dep] = '${VERSION}';
61
- }
62
- require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
63
- "
64
-
65
- npm publish --access public
66
-
67
- echo "Published ferrflow@${VERSION} with all platform packages"
68
-
69
- # Cleanup
70
- rm -rf "$WORK_DIR"