Skip to content

Support trying out packed SDKs#448

Merged
dmitry-lyfar merged 10 commits into
mainfrom
feature/try-sdks
Aug 12, 2025
Merged

Support trying out packed SDKs#448
dmitry-lyfar merged 10 commits into
mainfrom
feature/try-sdks

Conversation

@jonathan-conder
Copy link
Copy Markdown
Contributor

@jonathan-conder jonathan-conder commented Jul 31, 2025

Description

Support sdkcraft try. After running sdkcraft try in an SDKcraft project, the local user can use the SDK(s) it built by adding - name: try-<SDK> to a workshop definition.

Currently the SDK volume is imported synchronously (i.e. not part of the launch or refresh change). This is something we'll look to rework once we know more about the Store API (and maybe have nicer output for dynamic workshop tasks).

Another outstanding issue is cleaning up SDK volumes (and SDKs copied to the try area) when no longer in use.

Breaking changes:

  • The list of installed SDKs in the workshop's metadata now tracks where the SDK came from. Existing workshops may need to be removed before switching to this branch.
  • SDK volumes now include additional metadata. I don't think any of this is currently used outside of try, but it might be worth removing old volumes.

Self-review quick check

  • Make decisions that cost a lot to reverse explicit in the PR description.
  • Avoid nested conditions.
  • Delete dead code and redundant comments.
  • Normalise symmetries by sticking to doing identical things identically.
// one way to handle errors
if err := f(); err != nil {
   ...
}

// one way to handle multiple returns
val, err := f()
if err != nil {
   ...
}
...
  • Check that coupled code elements, files, and directories are adjacent. For example, test data is stored as close as possible to a test.
  • Put variable declaration and initialisation together.
  • Divide large expressions into digestable and self-explanatory ones. Use multiple variables if required.
  • Put a blank line between two logically different chunks of code.
  • Follow the style guide for new error messages.

Docs

  • I have checked and added or updated relevant documentation.
  • I have checked and added or updated relevant release notes.
  • I have included the technical author in the review.

Or:

  • I confirm the PR has no implications for documentation.

@jonathan-conder jonathan-conder self-assigned this Jul 31, 2025
@jonathan-conder jonathan-conder force-pushed the feature/try-sdks branch 5 times, most recently from 76050e8 to b4c5364 Compare August 5, 2025 03:52
@jonathan-conder jonathan-conder force-pushed the feature/try-sdks branch 3 times, most recently from d5dc780 to 413e877 Compare August 7, 2025 00:15
@jonathan-conder jonathan-conder marked this pull request as ready for review August 7, 2025 00:16
Comment thread internal/overlord/workshopstate/request.go Outdated
Comment thread docs/explanation/sdks/concepts.rst Outdated
Comment thread internal/overlord/sdkstate/handlers.go Outdated
Comment thread internal/overlord/workshopstate/request.go Outdated
Comment thread internal/workshop/workshop_dirs.go
Comment thread tests/main/try-sdks/task.yaml
@github-actions
Copy link
Copy Markdown

TICS Quality Gate

✔️ Passed

workshop

All conditions passed

See the results in the TICS Viewer

The following files have been checked for this project
  • internal/daemon/api_workshops_test.go
  • internal/osutil/env_test.go
  • internal/osutil/env.go
  • internal/osutil/export_test.go
  • internal/osutil/user.go
  • internal/overlord/workshopstate/request.go

Automatic-tests / code-coverage / TICS GitHub Action

@dmitry-lyfar dmitry-lyfar merged commit c134517 into main Aug 12, 2025
12 checks passed
@dmitry-lyfar dmitry-lyfar deleted the feature/try-sdks branch August 12, 2025 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants