Devpacks¶
Devpacks are snap-packaged command-line tools that automate development environment setup, project scaffolding, and library management for specific toolchains on Ubuntu. They aim to lower the barrier of entry for developers building software according to best practices.
What devpacks do¶
A devpack provides a curated set of tools, libraries, and resources for a specific development context. Typically, a devpack automates:
Environment setup: installing the language runtime, build tools, IDEs, and supporting utilities through a single command
Project scaffolding: creating new projects with sensible defaults and pre-configured build files
Library management: providing prebuilt libraries as locally stored packages, reducing build times and enabling offline development
Build plugins: running formatters and linters, as well as packaging tools with pre-configured settings
How devpacks are distributed¶
Each devpack is distributed as a snap package with classic confinement, which allows it to access system resources required for development tooling. Installing a devpack installs the devpack command-line tool itself, which then orchestrates the installation of additional apt and snap packages.
A devpack is not a development container. A devcontainer is a customized container with all necessary software pre-installed, while a devpack is a collection of opinionated tools and resources. Devpacks also support creating devcontainers, but the two concepts are distinct.
When to use a devpack¶
Use a devpack to quickly set up a development environment on a fresh Ubuntu installation, or to ensure consistent tooling across multiple machines. Devpacks are particularly useful when:
Setting up a new development workstation
Onboarding new team members with a consistent environment
Automating repetitive setup tasks across projects
For manual control over which packages are installed, use the individual toolchain setup guides in the How-to guides section instead.
What next¶
Devpack for Spring tutorial