Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document multi-base support and build-plans #2009

Open
mr-cal opened this issue Nov 27, 2024 · 1 comment
Open

Document multi-base support and build-plans #2009

mr-cal opened this issue Nov 27, 2024 · 1 comment

Comments

@mr-cal
Copy link
Contributor

mr-cal commented Nov 27, 2024

What needs to get done

Add reference and how-to documentation for build plans, bases, platforms, and multi-base builds.

The craft-platforms reference and explanation for charm build plans from canonical/craft-platforms#75 can be imported.

Snapcraft's documentation may serve as a useful starting point (ref, exp, how-to), although it conflates reference and explanation.

Why it needs to get done

To enable charm developers to build charms using the platforms key.

@mr-cal mr-cal added Enhancement New feature or request triaged Documentation and removed Enhancement New feature or request labels Nov 27, 2024
Copy link

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/CRAFT-3720.

This message was autogenerated

lengau pushed a commit that referenced this issue Dec 19, 2024
Adds support for multi-base recipes with the `platforms` keyword.

Internally, this moves to a new practice where the application stops modifying project data before passing the it to craft-platforms.  This will ensure consistent processing by charmcraft and by launchpad.

Documentation is coming soon via canonical/craft-platforms#75 and #2009.

To summarize the usage, `base` and `build-base` are removed from the project and the base is encoded into the platform.

Platforms can be defined in a shorthand notation:
```yaml
platforms:
  ubuntu@22.04:amd64:
  ubuntu@24.04:amd64:
```

Or they can be defined in standard form:
```yaml
platforms:
  jammy:
    build-on: [ubuntu@22.04:amd64]
    build-for: [ubuntu@22.04:amd64]
  noble:
    build-on: [ubuntu@24.04:amd64]
    build-for: [ubuntu@24.04:amd64]
```


Fixes #1789 
Fixes #2008 
Creates canonical/craft-platforms#85
Found during implementation canonical/craft-platforms#80
(CRAFT-3718)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant