This is to match the behavior currently seen when using the current (stable, strict) snap after transitioning to the new classic snap. Set the default values for bases to have a build-on/ run-on Ubuntu 20.04.Issue a deprecation message warning the user:īases configuration will be required in a future release. Without bases present in a user’s charmcraft configuration, Charmcraft shall: Without charmcraft.yaml present, Charmcraft shall issue a deprecation message warning the user:Ĭharmcraft.yaml will be required in a future release. Required Deprecation Notices Missing charmcraft.yaml Note: Initial work will focus on Linux support with LXD with longer-term goals to expand platform support. The default build provider will depend on the host operating system: To support bases, Charmcraft shall be adding three build provider options: Future work may further tweak the output name format, as deemed necessary. This format may result in verbose paths for complex cases with a large combination of run-on targets, but is simple enough for the majority of expected cases. To ensure uniqueness and allow the user to quickly identify the targets for each Charm, the output charm file names will be updated to the following format: Once building multiple charms, Charmcraft’s existing naming scheme will cause multiple output names to collide. To build a multi-arch charm on amd64: bases: To build amd64-only charms (one for each Ubuntu version): bases: To build two charms, one for Ubuntu 18.04 and another for Ubuntu 20.04: bases: For example, the following two stanzas are equivalent:Ĭharmcraft pack will pack one charm for each bases entry, assuming the build-environment is valid for the given platform (for example, architecture of the machine needs to match the architecture in a build-on entry, if specified). The short-form is simply a base object, implying build-on: and run-on. There are two forms allowed in bases, the short-form and long-form. run-on: A list of compatible base environments this charm may run on.Ī base object has the following properties:.build-on: A list of compatible base environments this charm should be built in.Each item in the list must be a base object or have the following properties: bases is a list of base configurations specifying the environments charms must be built and run on. In the charmcraft.yaml, support is being added for a new top-level bases: configuration. Charmcraft may now output multiple charms per charmcraft pack command, using either LXD container or Multipass VM instances to pack them in their respective environments (as defined by build-on), regardless of the user’s operating system & version.Ĭharmcraft clean will also be introduced to clean project build artifacts as a result of the integration with the providers. This specification describes Charmcraft’s behaviors with the introduction of the bases configuration in charmcraft.yaml. This bases configuration encapsulates both build-time and run-time environment configuration, allowing the charm developer to specify the environment required to build a charm, and the environment(s) the charm are compatible with. Charmcraft is introducing the concept of bases into charmcraft.yaml, where a base is defined as the combination of: operating system name, channel (version), and architectures.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |