Skip to content

feat(install): install the snap package by default when supported #4525

Open

Description

@olivercalder

User Story

As an Ubuntu user, I want the install.sh script to install the openshell snap by default, so that I can get automatic updates in the future without needing to manually update.

Problem Statement

I want install.sh to automatically select the snap packaging format when snapd is available on the host system, and install the openshell snap package from the Snap Store instead of installing the standalone .deb or .rpm file.

Impact / Why This Matters

Without this feature, users must manually re-run install.sh whenever they want to update to a new version of OpenShell. Linux users usually expect packages to be managed by their system package manager and receive updates from their package repositories, so manually updating a standalone .deb or .rpm package is rather onerous.

Proposed Design

When snapd is available on the host system, indicated by snap version printing a version (this queries the snapd API), then the snap package should be selected by install.sh. Other checks already exist in install.sh to ensure compatibility with the openshell snap, so the only piece left is to update linux_package_method() to once again select the snap by default, rather than limiting snap selection to only if there's an existing openshell snap installation.

Acceptance Criteria

  • running install.sh on Ubuntu with the (non-snap) Docker daemon installed results in the openshell snap package being installed and a gateway configured to work with Docker

Alternatives Considered

Current alternatives require more manual intervention from the end user. Installing the snap automatically on supported systems provides the smoothest end-user experience. On Ubuntu, an alternative could be to ship OpenShell in the Ubuntu archives (.deb packages), but OpenShell receives many updates and the SRU process for backporting package updates to stable releases cannot keep up with the rate at which OpenShell is released. The snap package is independent of release-specific package archives and can be updated as quickly as desired.

Agent Investigation

No response

Checklist

  • I've reviewed existing issues and the published docs
  • This is a design proposal, not a "please build this" request

Activity

  1. olivercalder commented on Oct 14, 2026

    @olivercalder
    ContributorAuthor

    Addressed by #4380

  2. elezar commented on Oct 14, 2026

    @elezar
    Member

    📋 triage-agent

    Assessment: feasible feature request needing clarification.

    The automatic-update goal is reasonable, and OpenShell already supports explicit Snap installation. However, the proposed selection rule (Snap whenever snapd is available) is broader than the acceptance criterion, which requires non-Snap Docker. Reviewing #4380 and comparing its installer selection with the base confirmed that fresh hosts with the Docker snap or no Docker now select Snap, then fail its Docker preflight. This also affects Docker-free Podman or VM setups. The focused installer tests pass, but no real Snap/Docker integration test was run.

    Please clarify the proposal and extend the acceptance criteria:

    • Define supported automatic selection: for fresh installations, select Snap only when compatible Docker is available; otherwise retain native DEB/RPM selection.
    • Cover Docker-snap hosts, absent Docker with Podman/VM use, explicit package overrides, existing OpenShell Snap installations, and pinned/prerelease versions. Explicit Snap requests should retain compatibility errors, and existing OpenShell Snap installations should remain on the Snap path rather than silently installing a second gateway.
    • Describe the existing explicit-Snap workaround and why it is insufficient for your workflow. Automatic updates are already available through that path; the requested capability is automatic package selection.
    • Add the first-hand OpenShell use case required by the issue guidance: how you personally use OpenShell and where manual installation or update steps affect that workflow. The current generic Ubuntu user story does not provide that context.

    Native fallback must not imply that native OpenShell works with the Docker snap: #3666 attributes the incompatibility to the Docker daemon's AppArmor confinement, which changing the OpenShell package alone does not establish as resolved.

    Once these points are clarified, a maintainer can decide whether to accept the default change and its migration behavior. The implementation concern in #4380 does not invalidate the feature request. Recommended assessment state: state:needs-info.

  3. added
    state:needs-infoAssessment needs specific evidence or reproduction details
    and removed
    state:triage-neededOpened without agent diagnostics and needs triage
    on Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    state:needs-infoAssessment needs specific evidence or reproduction details

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions