Skip to content

PackageJsonSynchronizer is not fail safe #1015

@nicolas-grekas

Description

@nicolas-grekas

The other day, I ran composer require webapp on a skeleton app during a workshop and this failed like that:

  • Configuring symfony/asset-mapper (>=6.4): From github.com/symfony/recipes:main
    Executing script importmap:require [KO]
    [KO]
    Script importmap:require returned with error code 1
    !!
    !! In ErrorChunk.php line 56:
    !!
    !! Could not resolve host: data.jsdelivr.com for "https://data.jsdelivr.com/v1
    !! /packages/npm/@hotwired/stimulus/resolved?specifier=%5E3.0.0".
    !!
    !!
    !! In CurlResponse.php line 315:
    !!
    !! Could not resolve host: data.jsdelivr.com for "https://data.jsdelivr.com/v1
    !! /packages/npm/@hotwired/stimulus/resolved?specifier=%5E3.0.0".
    !!
    !!
    !! importmap:require [--entrypoint] [--path PATH] [--] ...

Either we had bad network or jsdelivr was having troubles, but this means installing a webapp pack is not failsafe: if an error occurs in the middle of installing recipes, the app ends up in a f*cked up state. I ran recipes:install and that fixed the last recipes but I don't expect newcomers to know how to overcome this issue.

But I think PackageJsonSynchronizer shouldn't do that in the first place.

Instead, it should delegate doing anything with the network to a later state - e.g. when cache:clear is ran.

That's my current understanding of the issue and at this stage this might be enough for @weaverryan to follow up? 👼 🙏 💪

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions