Skip to content

Make fetching mod_invites dependencies optional #4554

@toastal

Description

@toastal

Is your feature request related to a problem? Please describe.

When trying to build the project in the Nix sandbox (which has no network access), the build now fails during the dependency fetch phase. Right now the choice is using cURL or npm to fetch deps—neither of which can be used.

Building aside & more practically, mod_invites can be both disabled or point to another endpoint all together meaning there is already 2 cases where these dependencies won’t be used at all making it an minimum a wasteful download.

Describe the solution you'd like

One of

  1. make a configure/environment variable that that can this block entirely (great for those not opting into mod_invites)
  2. detect first that priv/mod_invites/static/ isn’t empty before trying to run fetchers
  3. fully vendor the *.min.* files into the project
  4. remove the dependencies entirely

4 would be best since what is on that single page should be fairly small/straightforward which would not demand such a dependency chain. Ideally the CSS classes in the code would be semantic so downstream can easily modify or even replace the style sheet entirely.

Describe alternatives you've considered

To try to get the update for Nixpkgs, I need to decide on either running IFD for the POSIX script (which currently doesn’t work, see: #4553) or pull in the entire npm toolchain just to call install for fetching dependencies (manually fetching is infeasible since y’all added SRIs to the assets which would mean a failed dep update wouldn’t be discovered until it fails at runtime—which is likely why the build moved off of relying on OS updates). Neither option is ideal (simple cURL but IFD is slow, or a massive toolchain), but can be done, however… (the actual issue)

Even once I do that to get the dependencies, make must called which will try to run these fetcher regardless anyhow which fail without network access. Which means the makefile will need patching just to use those fetched dependencies. If there were at least an env var to opt out, I could put the files where they are expected to be (not to mention the derivation could now easily opt the user out to reduce the closure size if mod_invites is not used), & everything would run just fine.

Additional context

Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Component:InvitesInvite-based account registration, implemented in mod_invitesKind:Feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions