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

Release notes proposal #16377

Merged
merged 28 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
80578f2
Move version-specific file into single CHANGELOG file.
nojaf Dec 4, 2023
55ee0c8
Override main menu width from theme.
nojaf Dec 4, 2023
06e8874
Propose keep a changelog format.
nojaf Dec 4, 2023
be9dc2b
Add missing favicon.
nojaf Dec 4, 2023
6238bd5
Update release notes check.
nojaf Dec 4, 2023
28d917d
Fix language header.
nojaf Dec 4, 2023
50770d9
Merge branch 'main' into release-notes-proposal
nojaf Dec 5, 2023
c682759
Restore original version files.
nojaf Dec 5, 2023
f30507b
Remove unused script.
nojaf Dec 5, 2023
ae63127
Compose single release overview for FSharp.Core.
nojaf Dec 5, 2023
74eddeb
Compose language page.
nojaf Dec 5, 2023
125c790
Add placeholders for documentation.
nojaf Dec 5, 2023
67a7df7
Update paths in bash script.
nojaf Dec 5, 2023
66c6bae
Add full example of Issue + PR link and Language suggestion + PR link.
nojaf Dec 5, 2023
a697451
Explain people might rewrite your changelog entry.
nojaf Dec 5, 2023
885da17
Update pull request template.
nojaf Dec 5, 2023
2dc5512
Merge branch 'main' into release-notes-proposal
nojaf Dec 5, 2023
e851cab
Merge branch 'main' into release-notes-proposal
nojaf Dec 6, 2023
e60d936
Merge branch 'main' into release-notes-proposal
nojaf Dec 6, 2023
179d506
Merge branch 'main' into release-notes-proposal
nojaf Dec 8, 2023
8f4cc2a
Multiple PRs in one entry.
nojaf Dec 8, 2023
00f1cad
Merge branch 'main' into release-notes-proposal
nojaf Dec 11, 2023
80598db
Add entry about new error when interfaces with auto properties
nojaf Dec 11, 2023
bebadc3
optionally
nojaf Dec 11, 2023
9dfd116
Merge branch 'release-notes-proposal' of https://github.com/nojaf/fsh…
nojaf Dec 11, 2023
f4cef95
Merge branch 'main' into release-notes-proposal
nojaf Dec 12, 2023
f49cdb3
Merge branch 'main' into release-notes-proposal
nojaf Dec 14, 2023
6d04c56
Merge branch 'release-notes-proposal' of https://github.com/nojaf/fsh…
nojaf Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 4 additions & 38 deletions .github/workflows/check_release_notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,45 +50,11 @@ jobs:

echo "Opt out of release notes: $OPT_OUT_RELEASE_NOTES"

# Parse version from eng/Versions.props
# For FSarp.Core:
# <FSMajorVersion>8</FSMajorVersion>
# <FSMinorVersion>0</FSMinorVersion>
# <FSBuildVersion>100</FSBuildVersion>
# For FCS:
# FCSMajorVersion>43</FCSMajorVersion>
# <FCSMinorVersion>8</FCSMinorVersion>
# <FCSBuildVersion>$(FSBuildVersion)</FCSBuildVersion>
# For VS:
# <VSMajorVersion>17</VSMajorVersion>
# <VSMinorVersion>8</VSMinorVersion>

_fs_major_version=$(grep -oPm1 "(?<=<FSMajorVersion>)[^<]+" eng/Versions.props)
_fs_minor_version=$(grep -oPm1 "(?<=<FSMinorVersion>)[^<]+" eng/Versions.props)
_fs_build_version=$(grep -oPm1 "(?<=<FSBuildVersion>)[^<]+" eng/Versions.props)
_fcs_major_version=$(grep -oPm1 "(?<=<FCSMajorVersion>)[^<]+" eng/Versions.props)
_fcs_minor_version=$(grep -oPm1 "(?<=<FCSMinorVersion>)[^<]+" eng/Versions.props)
_fcs_build_version=$_fs_build_version
_vs_major_version=$(grep -oPm1 "(?<=<VSMajorVersion>)[^<]+" eng/Versions.props)
_vs_minor_version=$(grep -oPm1 "(?<=<VSMinorVersion>)[^<]+" eng/Versions.props)

FSHARP_CORE_VERSION="$_fs_major_version.$_fs_minor_version.$_fs_build_version"
FCS_VERSION="$_fcs_major_version.$_fcs_minor_version.$_fcs_build_version"
VISUAL_STUDIO_VERSION="$_vs_major_version.$_vs_minor_version"

echo "Found F# version: ${FSHARP_CORE_VERSION}"
echo "Found FCS version: ${FCS_VERSION}"
echo "Found Visual Studio version: ${VISUAL_STUDIO_VERSION}"

[[ "$FSHARP_CORE_VERSION" =~ ^[0-9]+\.[0-9]+.[0-9]+$ ]] || (echo " Invalid FSharp.Core Version parsed"; exit 1)
[[ "$FCS_VERSION" =~ ^[0-9]+\.[0-9]+.[0-9]+$ ]] || (echo " Invalid FCS Version parsed"; exit 1)
[[ "$VISUAL_STUDIO_VERSION" =~ ^[0-9]+\.[0-9]+$ ]] || (echo " Invalid Visual Studio Version parsed"; exit 1)

_release_notes_base_path='docs/release-notes'
_fsharp_core_release_notes_path="${_release_notes_base_path}/FSharp.Core/${FSHARP_CORE_VERSION}.md"
_fsharp_compiler_release_notes_path="${_release_notes_base_path}/FSharp.Compiler.Service/${FSHARP_CORE_VERSION}.md"
_fsharp_language_release_notes_path="${_release_notes_base_path}/Language/preview.md"
_fsharp_vs_release_notes_path="${_release_notes_base_path}/VisualStudio/${VISUAL_STUDIO_VERSION}.md"
_fsharp_core_release_notes_path="${_release_notes_base_path}/FSharp.Core.md"
_fsharp_compiler_release_notes_path="${_release_notes_base_path}/FSharp.Compiler.Service.md"
_fsharp_language_release_notes_path="${_release_notes_base_path}/Language.md"
_fsharp_vs_release_notes_path="${_release_notes_base_path}/VisualStudio.md"

readonly paths=(
"src/FSharp.Core|${_fsharp_core_release_notes_path}"
Expand Down
3 changes: 3 additions & 0 deletions docs/content/fsdocs-theme.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:root {
--main-menu-width: 300px;
}
Binary file added docs/img/favicon.ico
Binary file not shown.
30 changes: 30 additions & 0 deletions docs/release-notes/About.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
category: Release Notes
categoryindex: 600
index: 1
title: About
---

# About

The release notes for the [F\# language](./Language.md), [FSharp.Core](./FSharp.Core.md) and [FSharp.Compiler.Service](./FSharp.Compiler.Service.md) are based on the [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format.
The target audience these release notes are the respective end-users.
nojaf marked this conversation as resolved.
Show resolved Hide resolved

## Writing a changelog entry

In order to keep the change logs consistent the following format was proposed for each entry:

```md
* <Informative description>. ([PR #16106](https://github.com/dotnet/fsharp/pull/16106))
```

Some tips:

* Use valid [Markdown](https://www.markdownguide.org/).
* Use `*` as bullet point symbol. We don't want to mix `*` and `-`.
* Start your description with a capital and end the sentence with a dot.
* **Always** include a link to your pull request before the closing `)`, `([PR #16106](https://github.com/dotnet/fsharp/pull/16106))`.
* If possible, include a link to an issue on `dotnet/fsharp` use `[Issue #16359](https://github.com/dotnet/fsharp/issues/16359)` before the link to the pull request.
* If possible, include a link to a language suggestion from `dotnet/fsharp` use `[Language suggestion #721](https://github.com/fsharp/fslang-suggestions/issues/721)` before the link to the pull request.
nojaf marked this conversation as resolved.
Show resolved Hide resolved
* Choose the right section for your type of change. (`## Added`, `## Changed`, `## Deprecated`, `## Removed`, `## Fixed` or `## Security`).
nojaf marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably don't want a separate "Security" area, they fit under "Fixes". Also since we categorizing changes, it would be great to somehow mark breaking changes (or rather ask people to mark them (Breaking prefix?)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Breaking is a good idea, although AFAIU we don't really have a definition for breaking changes yet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I'm on the fence with the breaking prefix. Could you give me an example of something that changed, wasn't a fix and isn't breaking? I don't think that combo happens often. If it is listed under change, you can typically assume the change is breaking.

Copy link
Member

@vzarytovskii vzarytovskii Dec 11, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Breaking is a good idea, although AFAIU we don't really have a definition for breaking changes yet.

We do (always had really):

  • Any binary change in API is a breaking change.
  • Any new Obsoleted API is a breaking change.
  • Any new warning on by default is a breaking change.
  • Almost any new change in whitespace parsing is a breaking change.
  • Any change in runtime behaviour is a breaking change (if it's not an implementation detail).

In other words, for libraries - if it doesn't compile anymore with no code changes, it's a breaking change. For compiler - if it's producing any new warnings - it's a breaking change. For FSharp.Core - if it produces different values in runtime than before - it's a breaking change.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice summary. Worth putting somewhere maybe.

* Ensure you description makes it clear what the change is about. The reader should be informed on a high level without needing to click through the pull request link and find out in the code what actually changed.
nojaf marked this conversation as resolved.
Show resolved Hide resolved
nojaf marked this conversation as resolved.
Show resolved Hide resolved
21 changes: 21 additions & 0 deletions docs/release-notes/FSharp.Compiler.Service.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
category: Release Notes
categoryindex: 600
index: 4
title: FSharp.Compiler.Service
---

# FSharp.Compiler.Service

## Unreleased
nojaf marked this conversation as resolved.
Show resolved Hide resolved

### Fixes

* Miscellaneous fixes to parentheses analysis. ([PR #16262](https://github.com/dotnet/fsharp/pull/16262))
* 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))

## 43.8.100 - 2023-11-14
nojaf marked this conversation as resolved.
Show resolved Hide resolved

### Fixed

* Include the `get,set` keywords in the range of `SynMemberDefn.AutoProperty`. ([PR #15835](https://github.com/dotnet/fsharp/pull/15835))
2 changes: 0 additions & 2 deletions docs/release-notes/FSharp.Compiler.Service/8.0.200.md

This file was deleted.

19 changes: 19 additions & 0 deletions docs/release-notes/FSharp.Core.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
category: Release Notes
categoryindex: 600
index: 3
title: FSharp.Core
---

# FSharp.Core

## Unreleased

### Added

* More inlines for Result module. ([PR #16106](https://github.com/dotnet/fsharp/pull/16106))

## 8.0.100 - 2023-11-14

### Added
* `TailCallAttribute` ([Language suggestion #721](https://github.com/fsharp/fslang-suggestions/issues/721), [PR #15503](https://github.com/dotnet/fsharp/pull/15503))
1 change: 0 additions & 1 deletion docs/release-notes/FSharp.Core/8.0.200.md

This file was deleted.

21 changes: 21 additions & 0 deletions docs/release-notes/Language.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
category: Release Notes
categoryindex: 600
index: 2
title: F# Language
---

# F\# Language

## Unreleased
nojaf marked this conversation as resolved.
Show resolved Hide resolved

### Added

* 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))
* Bidirectional F#/C# interop for 'unmanaged' constraint. ([PR #12154](https://github.com/dotnet/fsharp/pull/12154))
nojaf marked this conversation as resolved.
Show resolved Hide resolved

## 8.0.0 - 2023-11-14
nojaf marked this conversation as resolved.
Show resolved Hide resolved

### Added

* `while!` ([Language suggestion #1038](https://github.com/fsharp/fslang-suggestions/issues/1038), [PR #14238](https://github.com/dotnet/fsharp/pull/14238))
1 change: 0 additions & 1 deletion docs/release-notes/Language/preview.md

This file was deleted.