Skip to content

Crate and feature lists in wasm CI loops can easily go stale #1988

Open
@EliahKagan

Description

@EliahKagan

Current behavior 😯

The wasm job definition in ci.yml contains steps that loop over various subsets of crates and features. One of the lists of crates is rather long:

- name: crates without feature toggles
run: |
set +x
for name in gix-actor gix-attributes gix-bitmap gix-chunk gix-command gix-commitgraph gix-config-value gix-date gix-glob gix-hash gix-hashtable gix-mailmap gix-object gix-packetline gix-path gix-pathspec gix-prompt gix-quote gix-refspec gix-revision gix-traverse gix-url gix-validate; do
(cd -- "$name" && cargo build --target "$TARGET")
done

For that list especially, but also other lists of crates and of features, it looks like no mechanism is in place to keep the lists updated or to automatically determine if they are up to date. For example, a crate may gain or lose feature toggles across versions.

Expected behavior 🤔

I don't know if it would make sense to dynamically generate those lists of crates, but even if not, I think it would be good to have some way to verify if they are still accurate to their descriptions. This could be a new CI job, or a new justfile recipe, or a new justfile recipe that is called in a new CI job.

(I don't think the check would depend on which wasm target is used, which is why I do not suggest doing it in a new step of that job, which would cause it to be done twice. That could be done if it turns out to be clearer or more elegant overall, though.)

Git behavior

Not applicable.

Steps to reproduce 🕹

For the general issue, see above.

As for the question of whether the lists are current as of now, I have not (yet?) investigated that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    acknowledgedan issue is accepted as shortcoming to be fixedhelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions