Request for Classic Confinement Approval: "lazy-dev" Snap

Hey Snapcraft Forum Team,

I hope you’re doing well. I’m Gabriel, the developer behind “lazy-dev,” and I’m reaching out to ask for your nod on enabling classic confinement for my snap.

Overview:

“lazy-dev” is a small project aiming to simplify the installation of development and productivity tools for lazy devs. Currently, I’m facing some permission issues during installations, particularly when attempting to install tools like Spotify, Discord, Slack, VScode, etc.

Issue:

The snappy confinement is a bit too strict, and I’m running into permission errors, especially when dealing with system-level commands.

Example:

func installSlack() {
    installationCommand := "sudo snap install slack --classic"
    libs.ExecuteCommand(installationCommand)
    // ... (completion messages)
}

Request:

I’m kindly asking for classic confinement to streamline these installations and offer users a smoother experience with “lazy-dev.”

Justification:

Classic confinement is a key piece for “lazy-dev” to seamlessly integrate these system-level commands.

Thanks a bunch for your time and consideration. If you need more details, just shoot me a message.

Github Repo

I’m ready to comply with all the requirements to ensure the snap is available securely for everyone !

Gabriel

Hey Gabriel,

lazy-dev looks useful (for lazy devs like me :wink: ), but I’m not convinced that it’s going to be possible to grant classic for it. There is a hard list of supported and unsupported categories for snaps that request classic listed here: Process for reviewing classic confinement snaps, and there is an explicit rule describing things like this:

unsupported

  • 3rd party installer snaps (eg, for native packages, appimages, flatpaks, snaps, etc)

…and while there is also…

Supported

  • tools for local, non-root user driven configuration of/switching to development workspaces/environments

… it’s important to note the non-root bit of that description, and the fact that all of your snap and apt installations and upgrade require root access. I would also say that the snap is not going to be very portable to non- debian based systems either given the heavy use of apt. Snaps should be self-contained (including on removal) and portable.

For me, this falls into the category of a nifty set of scripts, but not something that is suitable for packaging as a classic mode snap.

2 Likes

Hello Dclane,

I appreciate you taking the time to review my “cow-say” ( in this case “lazy-dev” ) project in Go. This was my first attempt at publishing a snap, and the experience was fantastic.

I understand the restrictions and guidelines of classic confinement, and I agree that they are important measures to ensure the security and portability of snaps. Your insights were enlightening, and now I feel more confident using snaps, knowing these limitations.

I will continue to use the compiled binary without any issues. Thank you again for your attention and valuable insights.

1 Like

I will mark this closed from the reviewers side given dclanes response.

1 Like