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

Projection tooling for Swift interop in .NET 10 #95633

Open
32 tasks
Tracked by #95638
kotlarmilos opened this issue Dec 5, 2023 · 2 comments
Open
32 tasks
Tracked by #95638

Projection tooling for Swift interop in .NET 10 #95633

kotlarmilos opened this issue Dec 5, 2023 · 2 comments
Assignees
Labels
area-Meta os-ios Apple iOS os-mac-os-x macOS aka OSX tracking This issue is tracking the completion of other related issues. User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@kotlarmilos
Copy link
Member

kotlarmilos commented Dec 5, 2023

Overview

This issue tracks the progress of implementing and shipping the projection tooling for .NET 10. The primary goal is to release the projection tooling as an experimental NuGet CLI capable of generating bindings for a specific set of Swift frameworks, as defined in the use cases. It should follow general principles outlined in the Swift interop proposal.

Currently, the projection tooling is available as an experimental NuGet CLI in dotnet-experimental feed.

Workstream: Swift language features

Based on the selected frameworks, the following Swift language features are in use:

Workstream: Swift runtime features

To support the mentioned language features, the following runtime features are required:

Workstream: Projection tooling

To generate bindings, we need projection tooling that includes the following components (based on the current design):

Workstream: Shipping

We need the following infrastructure:

Note

The projection tooling will be experimental in .NET 10.

@kotlarmilos kotlarmilos added area-Meta User Story A single user-facing feature. Can be grouped under an epic. labels Dec 5, 2023
@kotlarmilos kotlarmilos added this to the 9.0.0 milestone Dec 5, 2023
@ghost
Copy link

ghost commented Dec 5, 2023

Tagging subscribers to this area: @dotnet/area-meta
See info in area-owners.md if you want to be subscribed.

Issue Details

Description

This issue tracks the work for adapting the existing Binding Tools for Swift and shipping it as a product in .NET 9. The projection tooling consists of three main areas: Importing Swift into .NET, Exporting .NET to Swift, and distribution.

Below is a list of tasks that needs to be implemented. Please note that the breakdown of the issues does not impose hard deadlines. If some of the functionality does not get upstreamed for a particular preview version, this issue will be updated accordingly.

Tasks

.NET9 Preview 1

  • Update documentation to specify tool's layout
  • Update documentation to specify type representations
  • Create a NuGet package for the BTfS
  • Ensure that the NuGet package is shipped for supported platforms such as OSX and Apple mobile

.NET9 Preview 2

  • Adapt the tool to work with the new runtime support
  • Add Roslyn source generators to generate Swift metadata for selected assemblies

.NET9 Preview 3

TBD

Author: kotlarmilos
Assignees: kotlarmilos, stephen-hawley
Labels:

area-Meta, User Story

Milestone: 9.0.0

@kotlarmilos kotlarmilos changed the title [Tracking] Binding Tools for Swift integration and distribution in .NET 9 [Tracking] Binding Tools for Swift integration and distribution Dec 5, 2023
@kotlarmilos kotlarmilos changed the title [Tracking] Binding Tools for Swift integration and distribution Binding Tools for Swift integration and distribution Dec 5, 2023
@kotlarmilos kotlarmilos added the tracking This issue is tracking the completion of other related issues. label Dec 5, 2023
@stephen-hawley
Copy link

Might want to include "Update BTfS to run on .NET 7 and later" - I'm in the middle of that right now.

@kotlarmilos kotlarmilos changed the title Binding Tools for Swift integration and distribution Swift projection tooling May 10, 2024
@jeffhandley jeffhandley added os-mac-os-x macOS aka OSX os-ios Apple iOS labels Aug 6, 2024
@vitek-karas vitek-karas modified the milestones: 9.0.0, 10.0.0 Aug 22, 2024
@kotlarmilos kotlarmilos changed the title Swift projection tooling Projection tooling for Swift interop in .NET 10 Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Meta os-ios Apple iOS os-mac-os-x macOS aka OSX tracking This issue is tracking the completion of other related issues. User Story A single user-facing feature. Can be grouped under an epic.
Projects
None yet
Development

No branches or pull requests

4 participants