Facilitating Open Contributions for the F# Compiler, Library and Visual F# Tools
The Visual F# Team are very happy to announce that, through our participation in Microsoft Open Technologies (MSOpenTech) and in conjunction with the F# community, we are now able to accept contributions to the Visual F# Tools.
Through this, we will also be enabling community contributions to the F# language, compiler, library more generally, including F# on Linux, Mac, Android, iOS and other platforms.
The F# language is already open, cross-platform and freely available. You can find out more about how F# is being used in practice through the F# Software Foundation, the primary community organization for the language.
F# is already available for use with Windows, OSX, Android, iOS and Linux. Recently, we have seen a surge in open engineering activity in the F# community, leading to a host of productivity tools, libraries and ground-breaking applications of the F# feature set. The F# community is already doing high-quality, cross-platform open engineering using modern tools, testing methodology and build processes. Some particularly active projects include the Visual F# Power Tools, FSharp.Data, F# Editing Support for Open Editors, the Deedle DataFrame library and a host of testing tools, web tools, templates, type providers and other tools. F# has recently evolved one of the most dynamic, exciting and active open engineering communities for a programming technology. We have been impressed by what the F# community have to contribute, and we believe that programming technologies are stronger through open co-development with an empowered community.
Prior to today, contributions were not accepted to the core implementation of the F# language. From today, we are enabling the community to contribute to the F# language, library and tools, and to the Visual F# Tools themselves, while maintaining the integrity and unity of the F# language itself.
In more detail:
- Contributions can now be made to the core F# compiler, library and tools implementation.
- Proposed changes will be rigorously moderated by ourselves and other community contributors from Microsoft Research and the F# community.
- The full tests for the F# compiler and library are now available.
- In time, the full source code and test suite for the Visual F# Tools will be made available.
- At regular points, we intend to package collected contributions into Out-of-band (OOB) updates to the Visual F# Tools. An OOB release includes a new compiler, library and tools. We recently shipped our first OOB update as the Visual F# Tools 3.1.1.
- Source code releases/contributions are made by/to Microsoft Open Technologies. The contributions will flow as follows:
- Contributions to the core language and library should be made via the Git-enabled MSOpenTech repositories at visualfsharp.codeplex.com.
- We will work with the F# Community to ensure that accepted contributions are also applied to the open edition of F#.
- This gives the crucial assurance that the Visual F# Tools and the open edition will implement the same set of language and library features.
- The repository at github.com/fsharp/fsharp will continue to serve as a packaging repository for the F# open edition.
- Contributions specifically related to the cross-platform capabilities of the F# open-edition should continue to be made to github.com/fsharp/fsharp.
- Contributors to the core F# language, library and tooling must sign an MSOpenTech CLA. This is necessary if contributions are to be eligible to be part of the Visual F# Tools. This is standard practice for contributions that may ship as part of Visual Studio.
- Contributions will be rigorously policed for quality.
- We expect contributors to be actively involved in quality assurance.
- Partial, incomplete or poorly tested contributions will not be accepted.
- Contributions may be put on hold according to stability, testing and design-coherence requirements.
- We initially solicit contributions for
- compiler optimizations
- code generation improvements
- bug fixes
- library improvements
- improvements related to FSharp.Data.TypeProviders.dll
- improvements to allow additional targets for the F# compiler, such as Windows Phone 8 and WinRT libraries
- Some candidate proposed improvements already exist at github.com/fsharp/fsharp, and we request these be instead proposed via visualfsharp.codeplex.com
We remain very committed to carefully managing the evolution of the F# language. Major improvements to the F# language itself (as opposed to library and tools) will be managed via an “F# 4.0” track and released as a collected, major releases. This will not be an OOB release, but rather is intended to align with major Visual Studio releases. Microsoft Research (and specifically Don Syme, a contributor to the F# language) will
help manage the design and delivery of the F# 4.0 language design. You can submit and vote on suggestions for the F# language and library design at the F# Language and Library User Voice.
Today is a great step forward for the Visual F# Team. We are happy to be contributors to language, tools and a great community.
The Visual F# Team