Skip to content

Version Resolving

When a workflow step references a function block with a partial version, the engine resolves it to the newest matching version using semantic versioning rules.

Resolution Rules

Input version Resolution strategy Example
1.2.3 Exact match Must match 1.2.3 precisely
1.2 Highest patch Finds the latest 1.2.* (e.g., 1.2.5)
1 Highest minor + patch Finds the latest 1.*.* (e.g., 1.3.2)

At least the major version must be specified. A major version bump implies breaking changes, so the engine never auto-upgrades across major versions.

Example

Given these registered versions of fb.neops.io/ping:

Version Status
1.0.0 Available
1.1.0 Available
1.1.2 Available
2.0.0 Available

Resolution results:

Reference Resolves to Why
fb.neops.io/ping:1.1.2 1.1.2 Exact match
fb.neops.io/ping:1.1 1.1.2 Highest patch in 1.1.*
fb.neops.io/ping:1 1.1.2 Highest minor+patch in 1.*.*
fb.neops.io/ping:2 2.0.0 Highest in 2.*.*

Resolution Order

The engine sorts candidates in descending order:

  1. Major version (descending)
  2. Minor version (descending)
  3. Patch version (descending)

The first match is returned. If no match is found, the workflow validation fails.

Implications for Workflow Authors

Pin to major for flexibility: : Reference fb.neops.io/ping:1 to automatically pick up bug fixes and minor improvements.

Pin to exact for stability: : Reference fb.neops.io/ping:1.0.0 in production workflows where you need deterministic behavior.

Pin to minor for a balance: : Reference fb.neops.io/ping:1.1 to get patch fixes but stay on a known feature set.