You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a57979b
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -120,9 +120,9 @@ let listAccounts (apiToken: string) =
120
120
121
121
[`tests/HawaiiApi/Program.fs`](tests/HawaiiApi/Program.fs) exercises the same clients against a loopback server, including a multipart asset upload.
122
122
123
-
## NuGet release preparation
123
+
## NuGet packages
124
124
125
-
The first 0.1.0 release is being prepared. The [package catalog](https://fsprojects.github.io/FSharp.CloudEdge/libraries/packages/)lists the intended package IDs and URLs. The [maintainer release guide](docs/nuget-release.md) covers publisher access, the F#/.NET release tool, and the current upstream Fable packaging blocker. Public installation is pending those checks and publication.
125
+
**FSharp.CloudEdge 0.1.0 is available on NuGet.**[Browse all packages](https://www.nuget.org/packages?q=FSharp.CloudEdge), or use the [package catalog](https://fsprojects.github.io/FSharp.CloudEdge/libraries/packages/)for individual package IDs and versioned links. The [installation guide](https://fsprojects.github.io/FSharp.CloudEdge/guide/packages/) explains which packages to reference; examples use `0.1.*` to accept patches. The [maintainer release guide](docs/nuget-release.md) covers publisher access and the F#/.NET release tooling.
Copy file name to clipboardExpand all lines: docs/nuget-release.md
+10-6Lines changed: 10 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
# NuGet release and publisher setup
2
2
3
-
FSharp.CloudEdge's first release targets **0.1.0** for the 47 projects selected in `FSharp.CloudEdge.Bindings.slnx`. **GitHub Actions builds, validates, and publishes the packages.** Like Furnace, the workflow supports `v*` release tags and manual dispatch. A `v0.1.0` tag must match the configured package version. Local commands below reproduce the checks when investigating a failure; maintainers do not need to upload packages manually.
3
+
FSharp.CloudEdge**0.1.0**is published for the 47 projects selected in `FSharp.CloudEdge.Bindings.slnx`. [Browse the packages on NuGet](https://www.nuget.org/packages?q=FSharp.CloudEdge). **GitHub Actions builds, validates, and publishes the packages.** Like Furnace, the workflow supports `v*` release tags and manual dispatch. A release tag must match the configured package version. Local commands below reproduce the checks when investigating a failure; maintainers do not need to upload packages manually.
4
4
5
5
NuGet account ownership and publishing authorization are setup tasks independent of GitHub repository administration. This workflow uses **NuGet Trusted Publishing** with GitHub OIDC. GitHub obtains temporary publishing credentials for each run.
6
6
7
7
## Release dependencies and validation
8
8
9
9
The release uses the published **0.1.0** versions of `Xantham.Fable.Core` and `Xantham.Fable.Core.TS` from nuget.org. `publicDependencies` in `config/nuget-release.json` records those versions. Publishing CloudEdge does not require publishing or modifying Xantham.
10
10
11
-
Release validation builds the 19 site example projects against the candidate CloudEdge packages and public external dependencies, then compiles the Fable examples and checks the site's code snippets. Isolated package caches and resolved-package reports make those checks reproducible. The intended first CloudEdge release remains **0.1.0**until its packages have been published successfully.
11
+
Release validation builds the 19 site example projects against the candidate CloudEdge packages and public external dependencies, then compiles the Fable examples and checks the site's code snippets. Isolated package caches and resolved-package reports make those checks reproducible. Verification of the published **0.1.0**release uses the same consumers with nuget.org as their only source.
12
12
13
13
The `support` check restores both public Xantham packages, compiles `tests/SupportPackage/Smoke.fs` with .NET and Fable, and executes its key-value and indexer checks in JavaScript. This covers the support bindings used by CloudEdge; upstream inline helper functions are outside this release gate.
14
14
@@ -48,7 +48,7 @@ Sign into NuGet.org as **houstonhaynes** and create a **Trusted Publishing** pol
48
48
| Scope | Push new packages and package versions |
49
49
| Glob Patterns and Packages |`FSharp.CloudEdge.*`|
50
50
51
-
Enter the filename only, without `.github/workflows/`. Enter `FSharp.CloudEdge.*` as one line in **Glob Patterns and Packages**. The first release creates 47 new package IDs, so the policy must permit new packages as well as new versions. [NuGet Trusted Publishing setup](https://learn.microsoft.com/en-us/nuget/nuget-org/trusted-publishing).
51
+
Enter the filename only, without `.github/workflows/`. Enter `FSharp.CloudEdge.*` as one line in **Glob Patterns and Packages**. The policy covers all 47 package IDs and permits new packages as well as new versions. [NuGet Trusted Publishing setup](https://learn.microsoft.com/en-us/nuget/nuget-org/trusted-publishing).
52
52
53
53
In **fsprojects/FSharp.CloudEdge → Settings → Environments**, create the **`production` environment**, matching the policy and publication job. Configure environment branch/tag rules to permit `main` and `v*` release tags as appropriate. The repository owner is `fsprojects`; the NuGet package owner and login user are `houstonhaynes`. These fields identify different things.
54
54
@@ -86,13 +86,15 @@ Inspect the README, license, dependency versions, source assets, and emitted imp
86
86
87
87
## Publish and verify the public feed
88
88
89
+
**0.1.0 has already been uploaded.** Use **verify_only** to check that release again. The upload instructions below apply to a new, unpublished release version.
90
+
89
91
Run the **NuGet** workflow on `main` with **publish disabled** first. It builds candidates, checks consumers, and uploads the packages and verification evidence as an artifact. Fix failures before requesting the actual release.
90
92
91
93
After committing and merging fixes into `main`, use **Actions → NuGet → Run workflow**, choose `main`, and leave **publish** unchecked. The equivalent command is `gh workflow run publish.yml --ref main -f publish=false`. Here `publish.yml` is the workflow filename and `-f publish=false` supplies its boolean input. Rerunning the old tag's job uses the old commit; dispatching on `main` picks up the merged fixes without changing the package version or moving the tag. Enable **publish** only when ready to upload.
92
94
93
95
GitHub runs the public support binding check alongside candidate package and consumer validation. The publication job requires both jobs to succeed. Package compilation uses two MSBuild processes on the standard runner; uploads remain ordered by dependency.
94
96
95
-
When account ownership, the Trusted Publishing policy, and candidate checks are complete, push the release tag **`v0.1.0`**, or run the workflow manually with **publish enabled**. GitHub repeats validation, obtains temporary credentials, then uploads packages in the manifest's dependency order. A partial upload is possible: NuGet publication is not a transaction across 47 packages. The workflow stops on an upload error rather than silently skipping an existing version. Inspect ownership, versions, and package contents before deciding how to resume.
97
+
For a new release, when account ownership, the Trusted Publishing policy, and candidate checks are complete, push the matching **`v*` release tag**, or run the workflow manually with **publish enabled**. GitHub repeats validation, obtains temporary credentials, then uploads packages in the manifest's dependency order. A partial upload is possible: NuGet publication is not a transaction across 47 packages. The workflow stops on an upload error rather than silently skipping an existing version. Inspect ownership, versions, and package contents before deciding how to resume.
96
98
97
99
NuGet package versions are immutable. Do not publish a placeholder `0.1.0` as a test. If an uploaded version is wrong, unlisting does not free that version for replacement; publish a corrected version. [NuGet publication behavior](https://learn.microsoft.com/en-us/dotnet/standard/library-guidance/publish-nuget-package).
98
100
@@ -103,6 +105,8 @@ dotnet run --project tools/NuGetRelease -- availability
103
105
dotnet run --project tools/NuGetRelease -- examples --fable --public
104
106
```
105
107
106
-
The workflow performs these public checks after pushing. A processing delay can make the checks fail even after an upload succeeds. Resolve public availability and repeat the checks before announcing success; do not republish different bytes with the same version.
108
+
The workflow performs these public checks in a separate `verify-public` job after pushing. Availability checks wait up to 60 minutes for NuGet processing, retrying pending packages and temporary network/server failures every 30 seconds. `availability` alone checks once; `availability --wait-minutes 60` enables the same wait locally. NuGet validation and indexing are asynchronous after a successful upload. [NuGet processing](https://learn.microsoft.com/en-us/nuget/nuget-org/publish-a-package#package-validation-and-indexing).
109
+
110
+
If public verification times out after successful uploads, rerun only the failed verification job. To verify packages from a previous run, dispatch the workflow on `main` with **verify_only** checked; that mode skips candidate builds, authentication, and uploads, even if **publish** is also checked. The command is `gh workflow run publish.yml --ref main -f verify_only=true`. Publication logs and public consumer results are retained as separate artifacts. A verification failure does not undo an upload or require a version bump; do not repeat the upload of an existing version.
107
111
108
-
Finally, update the release-availability paragraph in `site/content/guide/packages.md`, deploy the site, and announce the release. Package IDs, `0.1.0` references, and NuGet URLs can be prepared beforehand with that pending-release notice. The beginner path should not claim public installation works until the public consumer checks pass.
112
+
For future releases, update the availability paragraph in `site/content/guide/packages.md`and the catalog's versioned NuGet links after public verification, then deploy the site and announce the release.
Copy file name to clipboardExpand all lines: site/content/guide/first-worker.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ order: 4
14
14
15
15
## Project Folder
16
16
17
-
Create the application anywhere convenient. It restores `FSharp.CloudEdge.Runtime.Workers` from the `0.1.*` patch series on NuGet; no sibling library checkout is required. See [Packages](packages.md) for release availability and candidate-feed testing.
17
+
Create the application anywhere convenient. It restores [`FSharp.CloudEdge.Runtime.Workers`](https://www.nuget.org/packages/FSharp.CloudEdge.Runtime.Workers) from the `0.1.*` patch series on NuGet; no sibling library checkout is required. See [Packages](packages.md) for installation guidance and links to the full package family.
18
18
19
19
1. Open a terminal in the folder where you keep your projects.
Copy file name to clipboardExpand all lines: site/content/guide/packages.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,9 +8,9 @@ Application projects reference the FSharp.CloudEdge libraries by NuGet package I
8
8
9
9
## Release availability
10
10
11
-
The first `0.1.0` release is being prepared. Package links and examples name the intended public versions; they do not assert that publication has completed. The release uses the published `Xantham.Fable.Core` and `Xantham.Fable.Core.TS`**0.1.0**packages from nuget.org. Until CloudEdge publication and public validation are complete, use the [contributor source build](local-build.md).
11
+
All **47 packages** in the **0.1.0**release are published on nuget.org. [Browse all FSharp.CloudEdge packages on NuGet](https://www.nuget.org/packages?q=FSharp.CloudEdge), or use the [package catalog](../libraries/packages.md) to find a specific library.
12
12
13
-
The release order is: validate candidate packages and consumers, publish dependencies before their consumers, confirm every `0.1.0` package restores from nuget.org, then announce availability. A package page appearing in search is separate from a clean restore succeeding.
13
+
The release uses the published `Xantham.Fable.Core`and `Xantham.Fable.Core.TS`**0.1.0** packages. Application projects restore these dependencies through NuGet; contributors can use the [source build](local-build.md) when regenerating or changing the bindings.
14
14
15
15
## Add the package your application uses
16
16
@@ -34,7 +34,7 @@ The NuGet feed is `https://api.nuget.org/v3/index.json`. A package page such as
34
34
35
35
## Fable and npm dependencies
36
36
37
-
CloudEdge's runtime and Fable support candidates contain their F# source as well as .NET assemblies. Fable uses that source when compiling the application to JavaScript. NuGet restores the published Xantham support dependencies transitively. Release validation compiles the site's actual examples against this package combination. Application developers do not run the binding generators.
37
+
CloudEdge's runtime and Fable support packages contain their F# source as well as .NET assemblies. Fable uses that source when compiling the application to JavaScript. NuGet restores the published Xantham support dependencies transitively. Release validation compiles the site's actual examples against this package combination. Application developers do not run the binding generators.
38
38
39
39
NuGet does not install the upstream JavaScript SDKs. Where an example imports an npm SDK, install the exact package version shown on its library page. Worker-native APIs such as `Request`, D1, and R2 are supplied by the Workers runtime. The platform type declarations describe those APIs; they are not a JavaScript runtime implementation to bundle.
Copy file name to clipboardExpand all lines: site/content/index.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ layout: splash
14
14
<divclass="ce-actions">
15
15
<aclass="ce-btn ce-btn--primary"href="#building-blocks">See what you can build <svgaria-hidden="true"viewBox="0 0 24 24"width="16"height="16"fill="none"stroke="currentColor"stroke-width="2"stroke-linecap="round"stroke-linejoin="round"><pathd="M12 5v14"/><pathd="m19 12-7 7-7-7"/></svg></a>
Copy file name to clipboardExpand all lines: site/content/libraries/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,4 +30,4 @@ The capability pages describe integration boundaries and areas that need runtime
30
30
31
31
See [installation and release availability](../guide/packages.md).
32
32
33
-
The [NuGetpackage catalog](packages.md) lists every package ID and its versioned `0.1.0` URL.
33
+
[Browse all FSharp.CloudEdge packages on NuGet](https://www.nuget.org/packages?q=FSharp.CloudEdge). The [package catalog](packages.md) lists every package ID and its versioned `0.1.0` URL.
Copy file name to clipboardExpand all lines: site/content/libraries/packages.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,9 @@ title: NuGet Package Catalog
3
3
description: Versioned package IDs and links for the FSharp.CloudEdge 0.1.0 release.
4
4
---
5
5
6
-
The selected release contains **47 packages**, all version **0.1.0**: 31 runtime bindings, three AI contract libraries, one Workers support library, shared API models, and eleven control-plane clients. These links name the intended public package versions. Check [release availability](../guide/packages.md#release-availability) before restoring the first release.
6
+
The **0.1.0** release contains **47 published packages**: 31 runtime bindings, three AI contract libraries, one Workers support library, shared API models, and eleven control-plane clients.
7
+
8
+
[Browse all FSharp.CloudEdge packages on NuGet](https://www.nuget.org/packages?q=FSharp.CloudEdge). The links below open each package's **0.1.0** page; the [installation guide](../guide/packages.md) shows how to add them to your project.
0 commit comments