Description
Prelude
We're going to try a change for our planning and work tracking by moving things to GitHub. We have a meeting every 3 weeks and go through the things we'd like to focus on, and we'd like to share that on GitHub. The goal is to give more visibility into what we're intending to accomplish for a given time period and track those things over time if they eclipse a single sprint's worth of work.
Additionally, the COVID-19 outbreak has affected the way we work and over overall output: #8879 - what we track here represents our intentions, but not necessarily our commitments.
Overarching priorities
This list represents our overall priorities that go beyond a particular sprint. The intention isn't to track items that we can call "complete". Instead, they represent what we view as generally important to focus on.
- Fix any high-priority bugs or regressions
- Release a great F# 5 alongside .NET 5
- Continue to invest in the performance and stability of Visual Studio tooling for F#
- Ensure there is a great experience for F# in .NET Interactive and Jupyter Notebooks
- Support the F# OSS community by reviewing their contributions and helping them along
- Improve our infrastructure
Focus items for this 3 week period
This set of lists represents what we're working on now, and hope to accomplish. Nothing here is guaranteed to be accomplished by a given date, since we will only merge and ship changes when they have an appropriate high level of quality. Sometimes things are easier than they seem, and sometimes they are harder.
F# 5
- Thoroughly review Witness Passing w.r.t Trait Constraints ([RFC FS-1071] Witnesses passing for trait-constraints w.r.t. quotations #6810 ) - @TIHan
- Bring up Extension Members Visible to Trait Constraints for review ([RFC FS-1043] Extension members visible to trait constraints #6805 ) - @dsyme
- Bring up Tasks and Resumable State Machines for review ([RFC FS-1087, FS-1097, FS-1098] tasks, resumable state machines, inline on parameters #6811) - @dsyme
- Bring up String Interpolation for review ([RFC FS-1001] String Interpolation #8907) - @dsyme
Core F#
- Perf improvements for VS tooling w.r.t. Find References - @TIHan
- Bug fix for VS tooling memory leak when switching solutions - @TIHan
- Update legacy templates to reference latest FSharp.Core (Update desktop templates to 4.7.1 #8950) - @KevinRansom
- Address regressions related to Type Providers (A test in F# passes in 16.5.2 but not 16.6.0 Preview 2.1 #8913, Missing method exception, .NET 5 #8881, Missing method exception on .NET 5 preview #8743) - @KevinRansom
- Investigate a fix for DependencyManager/AssemblyLoadContext to unlock .NET Standard 2.0 FCS - @KevinRansom
- Resolve NGEN issues in DependencyManager ([release/dev16.6] build net472 specific dependency manager to make ngen happy #8942) - @brettfo
- Modernize FsLexYacc to .NET Core and .NET Standard (Support netstandard fsprojects/FsLexYacc#78) - @cartermp
- Modernize Type Provider SDK to be .NET Standard only ([okay to merge now] - move to .NET Standard exclusively fsprojects/FSharp.TypeProviders.SDK#339) - @cartermp
F# support in .NET Interactive and Jupyter Notebooks scenarios
- Draft RFC for
#!nuget
for Jupyter notebooks - @KevinRansom and @cartermp - Dependency remoting support for Spark .NET - @KevinRansom
- Input / password support for .NET Kernel - @dsyme
- .NET Interactive language services API plumbing - @brettfo
- Variable/value sharing between C# and F# in Jupyter (PR) - @jonsequitur
- FSI API for getting values/variables from a script session (Added GetBoundValues and TryFindBoundValue APIs to FsiEvaluationSession #9068) - @TIHan
Infrastructure
- Use NGEN in our legacy fsharpqa suite in CI - @KevinRansom
Rough prioritized backlog
This list of items represents things we are very much planning on completing. However, they are not planned for this sprint specifically. If we complete items above or are blocked on them, we intend on focusing on these issues. This list is not exhaustive.
- Support for
#r "project"
- @cartermp, @KevinRansom, community - Editor performance with
#r "nuget"
- @KevinRansom - Complete design changes for
nameof
- @TIHan - Complete design changes for Open Static Classes - @TIHan
- FSharp.Core is .NET Standard 2.0 only - @KevinRansom
- FSharp.Compiler.Service is .NET Standard 2.0 only (incorporate @baronfel's work) - @cartermp, @KevinRansom
- Publish FSharp.Compiler.Service from this repository - @KevinRansom, @cartermp, community
- Remove the desktop compiler from our build, producing on a CoreCLR-based compiler and FSI - @KevinRansom
- Add support for .NET Interactive extensibility in XPlot - @cartermp