Request for classic confinement: Ignite

Hi,

I would like to request classic confinement for the ignite snap. Ignite is a developer tool that helps developers scaffold, build and launch a Cosmos SDK blockchain. Ignite needs a classic confinement as it requires access to Go and other system installed commands. This permits to abstract the building of the blockchain for the user and is a core Ignite functionality.

More information on Ignite can be found here: github.com/ignite/cli

Happy to clarify anything you require. You can verify that I am a member of the Ignite GitHub org: https://github.com/orgs/ignite/people

Hi, according to Process for reviewing classic confinement snaps , Classic requests should fall under at least one of the supported categories. Could you please clarify if ignite fits within any of the supported categories? Thanks.

Hi!

As it is a development tool, it can fit in this existing category: “tools for local, non-root user driven configuration of/switching to development workspaces/environments” as it abstracts / simplify configuration and building a Cosmos SDK blockchain with a config.yaml. Ignite does more than that, but this is the due to those features that classic confinement is required. Especially the following criteria: “running arbitrary command (esp if user-configurable such as a developer tool to organize dev environments)”

Hi, do you have any more details on the arbitrary commands run specifically with ignite? I see from the https://docs.ignite.com/welcome/install site that Go is required, which can be embedded inside the snap and used in strict. Thanks!

Hi, correct but next to go we need as well buf, nodejs and npm.

Does ignite use/interact with the existing nodejs, npm and buf on the users machine? or is it installed similarly to the way Go is installed? If the latter, these packages can also be embedded/staged with the snap.

We use/execute the installed nodejs, npm, buf (using os/exec). Ignite does not install them.

hi, what happens if users don’t have all of these dependencies installed? Does ignite then handle installation or still not install? Perhaps it could be better to ship and stage these dependencies along with Go inside the snap so that there are the benefits of an stable runtime environment without switching to classic.

Thanks again for answering my questions, just want to explore potential non-classic solutions.

1 Like

If the user does not have it installed, it crashes. I will check again if adding these dependencies along will keep Ignite 100% working. I’ll come back here with updates.

1 Like

I have been using the following in the part but ignite still cannot execute go or node.

    stage-snaps:
      - go
      - node

hi @julienrbrt, I have investigated further and because of the way Go, node , etc need to interact with ignite, classic confinement is needed. Thank you for having a look at potential strict confinement approaches.

ignite fits within more than one of the supported categories for classic confinement as per Process for reviewing classic confinement snaps , including “compliers” and “tools for local, non-root user driven configuration of/switching to development workspaces/environments”. I will begin publisher vetting.

Publisher is now vetted, granting classic to ignite. This is now live. Thanks!

1 Like