Skip to content

Commit 68fef88

Browse files
authored
Release notes proposal (dotnet#16377)
1 parent dd610a6 commit 68fef88

File tree

17 files changed

+272
-22
lines changed

17 files changed

+272
-22
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ Fixes # (issue, if applicable)
99
- [ ] Test cases added
1010
- [ ] Performance benchmarks added in case of performance changes
1111
- [ ] Release notes entry updated:
12-
> Please make sure to add an entry with short succint description of the change as well as link to this pull request to the respective release notes file, if applicable.
12+
> Please make sure to add an entry with short succinct description of the change as well as link to this pull request to the respective release notes file, if applicable.
1313
>
1414
> Release notes files:
15-
> - If anything under `src/Compiler` has been changed, please make sure to make an entry in `docs/release-notes/FSharp.Compiler.Service/<version>.md`, where `<version>` is usually "highest" one, e.g. `42.8.200`
16-
> - If language feature was added (i.e. `LanguageFeatures.fsi` was changed), please add it to `docs/releae-notes/Language/preview.md`
17-
> - If a change to `FSharp.Core` was made, please make sure to edit `docs/release-notes/FSharp.Core/<version>.md` where version is "highest" one, e.g. `8.0.200`.
15+
> - If anything under `src/Compiler` has been changed, please make sure to make an entry in `docs/release-notes/.FSharp.Compiler.Service/<version>.md`, where `<version>` is usually "highest" one, e.g. `42.8.200`
16+
> - If language feature was added (i.e. `LanguageFeatures.fsi` was changed), please add it to `docs/releae-notes/.Language/preview.md`
17+
> - If a change to `FSharp.Core` was made, please make sure to edit `docs/release-notes/.FSharp.Core/<version>.md` where version is "highest" one, e.g. `8.0.200`.
1818
19-
> Examples of release notes entries:
20-
> - Respect line limit in quick info popup - https://github.com/dotnet/fsharp/pull/16208
21-
> - More inlines for Result module - https://github.com/dotnet/fsharp/pull/16106
22-
> - Miscellaneous fixes to parens analysis - https://github.com/dotnet/fsharp/pull/16262
23-
>
19+
> Information about the release notes entries format can be found in the [documentation](https://fsharp.github.io/fsharp-compiler-docs/release-notes/About.html).
20+
> Example:
21+
> * More inlines for Result module. ([PR #16106](https://github.com/dotnet/fsharp/pull/16106))
22+
> * Correctly handle assembly imports with public key token of 0 length. ([Issue #16359](https://github.com/dotnet/fsharp/issues/16359), [PR #16363](https://github.com/dotnet/fsharp/pull/16363))
23+
> *`while!` ([Language suggestion #1038](https://github.com/fsharp/fslang-suggestions/issues/1038), [PR #14238](https://github.com/dotnet/fsharp/pull/14238))
2424
2525
> **If you believe that release notes are not necessary for this PR, please add `NO_RELEASE_NOTES` label to the pull request.**

.github/workflows/check_release_notes.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ jobs:
8585
[[ "$VISUAL_STUDIO_VERSION" =~ ^[0-9]+\.[0-9]+$ ]] || (echo " Invalid Visual Studio Version parsed"; exit 1)
8686
8787
_release_notes_base_path='docs/release-notes'
88-
_fsharp_core_release_notes_path="${_release_notes_base_path}/FSharp.Core/${FSHARP_CORE_VERSION}.md"
89-
_fsharp_compiler_release_notes_path="${_release_notes_base_path}/FSharp.Compiler.Service/${FSHARP_CORE_VERSION}.md"
90-
_fsharp_language_release_notes_path="${_release_notes_base_path}/Language/preview.md"
91-
_fsharp_vs_release_notes_path="${_release_notes_base_path}/VisualStudio/${VISUAL_STUDIO_VERSION}.md"
88+
_fsharp_core_release_notes_path="${_release_notes_base_path}/.FSharp.Core/${FSHARP_CORE_VERSION}.md"
89+
_fsharp_compiler_release_notes_path="${_release_notes_base_path}/.FSharp.Compiler.Service/${FSHARP_CORE_VERSION}.md"
90+
_fsharp_language_release_notes_path="${_release_notes_base_path}/.Language/preview.md"
91+
_fsharp_vs_release_notes_path="${_release_notes_base_path}/.VisualStudio/${VISUAL_STUDIO_VERSION}.md"
9292
9393
readonly paths=(
9494
"src/FSharp.Core|${_fsharp_core_release_notes_path}"

docs/content/fsdocs-theme.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
:root {
2+
--main-menu-width: 300px;
3+
}

docs/img/favicon.ico

105 KB
Binary file not shown.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Fixed
2+
3+
* Include the `get,set` keywords in the range of `SynMemberDefn.AutoProperty`. ([PR #15835](https://github.com/dotnet/fsharp/pull/15835))
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
### Fixed
2+
3+
* Miscellaneous fixes to parentheses analysis. ([PR #16262](https://github.com/dotnet/fsharp/pull/16262), [PR #16391](https://github.com/dotnet/fsharp/pull/16391), [PR #16370](https://github.com/dotnet/fsharp/pull/16370), [PR #16395](https://github.com/dotnet/fsharp/pull/16395))
4+
* Correctly handle assembly imports with public key token of 0 length. ([Issue #16359](https://github.com/dotnet/fsharp/issues/16359), [PR #16363](https://github.com/dotnet/fsharp/pull/16363))
5+
6+
### Added
7+
* Raise a new error when interfaces with auto properties are implemented on constructor-less types. ([PR #16352](https://github.com/dotnet/fsharp/pull/16352))
8+
* Allow usage of `[<TailCall>]` with older `FSharp.Core` package versions. ([PR #16373](https://github.com/dotnet/fsharp/pull/16373))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Added
2+
3+
* More inlines for Result module. ([PR #16106](https://github.com/dotnet/fsharp/pull/16106))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Added
2+
3+
* `while!` ([Language suggestion #1038](https://github.com/fsharp/fslang-suggestions/issues/1038), [PR #14238](https://github.com/dotnet/fsharp/pull/14238))
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
### Added
2+
3+
* Better generic unmanaged structs handling. ([Language suggestion #692](https://github.com/fsharp/fslang-suggestions/issues/692), [PR #12154](https://github.com/dotnet/fsharp/pull/12154))
4+
* Bidirectional F#/C# interop for 'unmanaged' constraint. ([PR #12154](https://github.com/dotnet/fsharp/pull/12154))

docs/release-notes/.aux/Common.fsx

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#r "nuget: Markdig, 0.33.0"
2+
#r "nuget: FsHttp, 12.1.0"
3+
4+
open System.IO
5+
open System.Xml.Linq
6+
open System.Text.RegularExpressions
7+
open FsHttp
8+
9+
let versionProps = Path.Combine(__SOURCE_DIRECTORY__, "../../../eng/Versions.props")
10+
let versionPropsDoc = XDocument.Load(versionProps)
11+
12+
/// Find all published versions of a package on NuGet
13+
let getAvailableNuGetVersions (packageName: string) : Set<string> =
14+
let packageName = packageName.ToLowerInvariant()
15+
16+
http { GET $"https://api.nuget.org/v3-flatcontainer/%s{packageName}/index.json" }
17+
|> Request.send
18+
|> Response.deserializeJson<{| versions: string array |}>
19+
|> fun json -> Set.ofArray json.versions
20+
21+
/// Try and find the publish date on NuGet
22+
let tryGetReleaseDate (packageName: string) (version: string) : string option =
23+
let packageName = packageName.ToLowerInvariant()
24+
25+
http { GET $"https://api.nuget.org/v3/registration5-gz-semver2/%s{packageName}/%s{version}.json" }
26+
|> Request.send
27+
|> Response.deserializeJson<{| published: string |}>
28+
|> fun json ->
29+
if System.String.IsNullOrWhiteSpace json.published then
30+
None
31+
else
32+
Some(json.published.Split('T').[0])
33+
34+
/// In order for the heading to appear in the page content menu in fsdocs,
35+
/// they need to follow a specific HTML structure.
36+
let transformH3 (version: string) (input: string) : string =
37+
let pattern = "<h3>(.*?)</h3>"
38+
39+
let replacement =
40+
$"<h3><a name=\"%s{version}-$1\" class=\"anchor\" href=\"#%s{version}-$1\">$1</a></h3>"
41+
42+
Regex.Replace(input, pattern, replacement)
43+
44+
/// Process all MarkDown files from the given release folder
45+
let processFolder (path: string) (processFile: string -> string) : string =
46+
Directory.EnumerateFiles(path, "*.md")
47+
|> Seq.sortByDescending Path.GetFileNameWithoutExtension
48+
|> Seq.map processFile
49+
|> String.concat "\n"

0 commit comments

Comments
 (0)