Changelog¶
3.0.0 (2024-Jun-28)¶
Craft Application 3.0.0 implements the BuildPlanner
class and can create
a build plan. This is a breaking change because it requires more fields to
be defined.
Warning
platforms
is now a required field in the Project
platforms
, base
, and build-base
are now required fields in the
BuildPlanner
model
Application¶
Extends
add_command_groups()
to accept a sequence instead of a list.Adds support for building architecture-independent artefacts by accepting
all
as thebuild-for
target.
Models¶
Adds a default
Platform
model. See platforms for a reference of the model.Adds a default
get_build_plan()
function to theBuildPlanner
class. See Build plans for an explanation of how the defaultget_build_plan()
works.Changes
BuildPlanner
from an abstract class to a fully implemented class. Applications can now use theBuildPlanner
class directly.
For a complete list of commits, check out the 3.0.0 release on GitHub.
2.8.0 (2024-Jun-03)¶
Commands¶
Fixes a bug where the pack command could accept a list of parts as command line arguments.
Adds support for commands to accept multiple
platform
orbuild-for
values from the command line as comma-separated values.
Remote build¶
Retries more API calls to Launchpad.
Adds an exponential backoff to API retries with a maximum total delay of 62 seconds.
Fixes a bug where the full project name was not used in the remote build log files.
For a complete list of commits, check out the 2.8.0 release on GitHub.
2.7.0 (2024-May-08)¶
Base naming convention¶
Applications that use a non-default base naming convention must implement
Project._providers_base()
to translate application-specific base names into
a Craft Providers base.
The default base naming convention is <distribution>@<series>
. For example,
ubuntu@24.04
, centos@7
, and almalinux@9
.
LifecycleCommand¶
Adds a new LifecycleCommand
class that can be inherited for creating
application-specific lifecycle commands.
_needs_project()
¶
Adds a new command function _needs_project()
that can be overridden by
subclasses. It’s similar to the always_load_project
class variable but takes
parsed_args
as a parameter. The default value is always_load_project
.
For a complete list of commits, check out the 2.7.0 release on GitHub.