|
1 |
| -# Standalone Experiments |
| 1 | +# Swift Bindings |
2 | 2 |
|
3 |
| -This branch contains a template for standalone experiments, which means that experiments that are a library, which doesn't depend on runtime changes. This minimal template allows such experiments to avoid the overhead of having all the runtime, libraries and installer code. |
| 3 | +This is a collection of tools designed to consume a compiled Apple Swift library and generate bindings and wrappers that enable it to be used as a .NET library. |
4 | 4 |
|
5 |
| -## Create your experiment |
| 5 | +## Current Status |
6 | 6 |
|
7 |
| -1. Create a new branch from this branch and make sure the branch name follows the naming guidelines to get CI and Official Build support. The name should use the `feature/` prefix. |
8 |
| - |
9 |
| -2. Identify whether you need to consume new APIs or features from `dotnet/runtime` and need to be able to consume these on a faster cadence than using a daily SDK build: |
10 |
| - - I don't need to depend on `dotnet/runtime`: |
11 |
| - 1. Update the `global.json` file: |
12 |
| - - Specify the minimum required `dotnet` tool and SDK version that you need to build and run tests |
13 |
| - - Remove the `runtimes` section under `tools` |
14 |
| - 2. Set `UseCustomRuntimeVersion` property to `false` in `Directory.Build.props` |
15 |
| - 3. Remove the `VS.Redist.Common.NetCore.SharedFramework.x64.6.0` dependency from `Version.Details.xml` and the corresponding property from `Version.props` |
16 |
| - - I do need to depend on `dotnet/runtime`: |
17 |
| - 1. Set a DARC dependency from `dotnet/runtime` to your branch in this repository. For more information on how to do it, see [here](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#darc) |
18 |
| - |
19 |
| - |
20 |
| - > Note that if you want to run `dotnet test` in you test projects you will need to either first run `build.cmd/sh` or install the runtime version specified by `MicrosoftNETCoreAppVersion` property in `Versions.props` in your global dotnet install. If you run `build.cmd/sh` arcade infrastructure will make sure that the repo `dotnet` SDK found in `<RepoRoot>\.dotnet` folder, has this runtime installed. Then during the build of the test projects, we generate a `.runsettings` file that points to this `dotnet` SDK. |
21 |
| -
|
22 |
| - |
23 |
| -> For both options above, you can choose whether your experiment needs arcade latest features, to do that, set the required DARC subscription from `dotnet/arcade` to this repository following these [instructions](https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#darc). |
24 |
| -
|
25 |
| -3. Set the right version for your library. In order to do that, set the following properties in `Versions.props`: |
26 |
| - - `VersionPrefix`: the version prefix for the produced nuget package. |
27 |
| - - `MajorVersion/MinorVersion/PatchVersion`: Properties that control file version. |
28 |
| - - `PreReleaseVersionLabel`: this is the label that your package will contain when producing a non stable package. i.e: `MyExperiment.1.0.0-alpha-23432.1.nupkg`. |
29 |
| - |
30 |
| -4. Choose the right set of platforms for CI and Official Builds by tweaking `eng/pipelines/runtimelab.yml` file. |
31 |
| - |
32 |
| -5. Rename `Experimental.sln`, `Experimental.csproj` and `Experimental.Tests.csproj` to your experiment name. |
33 |
| - |
34 |
| -The package produced from your branch will be published to the the [`dotnet-experimental`](https://dev.azure.com/dnceng/public/_packaging?_a=feed&feed=dotnet-experimental) feed. |
| 7 | +The components are currently undergoing iterative reviews and will be moved from https://github.com/xamarin/binding-tools-for-swift. |
35 | 8 |
|
36 | 9 | ## .NET Foundation
|
37 | 10 |
|
|
0 commit comments