Skip to content

[Feature] Distribute pnpm run build output #45

@tcompa

Description

@tcompa

Hi there,

I'd like to suggest an extension of how vizarr is distributed - based on our experience in hosting it within the Fractal platform (cc @zonia3000 @jluethi)

How we deploy vizarr

One component of the Fractal platform is fractal-data, which is a disk-to-http data-streaming service. The HTTP URLs for ome-zarr images are then used as sources for a hosted vizarr instance.

Rather than setting up the development tools (e.g. pnpm) on the virtual machines where we run the Fractal services, we produce pre-built files for vizarr and host them on GitHub (currently within the fractal-data releases, see e.g. https://github.com/fractal-analytics-platform/fractal-data/releases/tag/v0.5.0) and we fetch them on the machine where vizarr is hosted.

That is, we fetch them e.g. as

FRACTAL_DATA_VERSION="0.5.0"
wget -qO- "https://github.com/fractal-analytics-platform/fractal-data/releases/download/v${FRACTAL_DATA_VERSION}/fractal-vizarr-v${FRACTAL_DATA_VERSION}.tar.gz" | tar -xz

and then we directly expose them over HTTP.

This approach has served us well in the past, especially since we sometimes relied on our own vizarr fork. As of the latest release, we started creating builds based on the BioNGFF/vizarr fork - and we'd like to continue doing so in the future. For the moment we are pulling a specific commit (88b6f81), but in the future we would rather rely on BioNGFF/vizarr released versions.

The main drawback here is that we are coupling vizarr-version updates with our streaming-tool releases. That is, we would have to create a new release of our streaming tool every time we want to use a more recent BioNGFF/vizarr version.

Possible way forward

Question: Would it possible/relevant for the BioNGFF team to generate and distribute the vizarr build outputs?

As far as I can tell, there are two options:

  1. Running pnpm run build in the GitHub action that creates a GitHub release and then attaching the output file as a release artifacts (which is what we are currently doing - see https://github.com/fractal-analytics-platform/fractal-data/blob/e25f19609603ce916ea9a68420349d98c5afd9da/.github/workflows/github_release.yaml#L29-L55). I am confident this should be doable, and we can provide support if needed.
  2. Maybe you could publish the build artifact on https://www.npmjs.com/package/@biongff/vizarr? Right now it seems to only host the source code, and to be honest I cannot say whether it's common/doable to host the built files over there.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions