Skip to content

Should core_version stay, or should we follow the more common action patterns? #114

Description

@marcalexiei

Opening this for discussion (thinking about it while working on #113).

Because core_version lets callers pick the internal core version at run time, the action has to stay a composite action that installs from npm on every invocation.
Most actions instead let their own ref be the version (uses: org/action@v2, a SHA) and ship the code bundled, with ncc compiling into a committed dist/index.js, using: node24, and a check-dist job as a guard.

There's also a coupling argument: index.js expects specific core exports and a { content, status } result, so a core_version outside that range breaks the action's own code rather than the caller's configuration. latest would do exactly that the day a v3 renames an export.
fail_on_error is the quieter version of the problem, since it reads result.status, which older cores don't return, so an older core_version silently makes the flag a no-op.

If we wanted to move that way:

  • Remove the core_version input; pin core in package.json only.
  • Bundle and switch to using: node24, dropping the install steps from action.yml.
  • Ship core updates through automation, since dependabot already opens the bump PR: a release on merge plus update-tags.yml would carry it to users on @v1.

Against that: it's breaking for anyone setting core_version, whose replacement would be an exact tag or SHA, and a committed dist/ adds review noise and a stale-bundle failure mode.

If people rely on the input, leaving things as they are seems reasonable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions