TP

F# community on GitHub & MonoDevelop update

When I talked with Miguel de Icaza and Michael Hutchinson at the F# in Education workshop some time ago, someone mentioned that it would be nice to have a clone of the official F# code drop that could accept patches from the community. I also talked with Michael about GitHub and I think I finally understood why everybody uses it today. I said to myself that I'll need to take a look at it when I'll have a bit of time... After coming back from the workshop, I was quite busy getting the F# plugin for MonoDevelop out, but after I wrote about it, I finally found some time to look at GitHub.

I really like the way Mono team uses GitHub. They have a single "mono" organization that is owned by several people from the Mono community and all important projects that are parts of Mono have their repository as part of the "mono" organization. Thanks to GitHub, everyone can easily clone the repository, do some changes and submit a "pull request" to the main repository.

F# open-source community

I thought that the F# community could follow the same model, so I started the F# community organization on GitHub and invited a few people who were interested in the open-source F# release and MonoDevelop integration to join. If you're interested in open-source version of F#, check out the following links:

Currently, the community includes Andreia Gaita (who is working on integrating F# in Mono releases), Laurent Le Brun (who contributed to the F# open-source release as a contractor and wrote Emacs mode for F#), Matt Harrington (who was the first person to clone F# to GitHub and has a nice F# screencast on Mac), Michael Hutchinson (who works on MonoDevelop and various other parts of Mono), Miguel de Icaza (who doesn't need an introduction :-)) and myself.

What is the purpose of the F# open-source community?

If you heard about IronPython and IronRuby (which are now developed by the community and are partly coordinated by Miguel), you may be wondering whether F# is going to follow the same path... Does that mean that F# will be developed by the community? To be clear, I need to use the bold font. The answer is no!

F# will continue to be developed by the F# team at Microsoft. The purpose of the open-source community is to compile and package F# for various platforms and to add tools for other platforms (such as the F# MonoDevelop plugin). We have no intentions of modifying F#. This also means that the fsharp repository (when created) won't accept pull requests that change the F# language. We'll be mainly accepting fixes for issues that the F# tools have on Mono (running on various systems). In that case, you may also want to submit bug report to Microsoft, so that they can fix the issue in future source drops.

If you're interested in doing some research or experimental modification of the F# language, the best option is to create clone of the repository from GitHub and do your changes there. Then you'll be also easily able to merge your repository with the future F# releases from Microsoft.

F# plugin for MonoDevelop

As I already mentioned, I also moved the source code from F# cross-platform packages and samples at CodePlex to GitHub. If you're interested in contributing, please clone the repository and submit pull requests! There is currently no prioritized list of work items that need to be done. I'll try to create one as soon as possible, so that we can track these. A list of bugs is currently available on CodePlex. You should also join the F# open-source community mailing list and we can discuss potential work items and bug fixes there.

I also did a bit of work to improve the compilation of the F# plugin, so it should be easier to get it working, if you want to compile it from source and contribute. I added a simple ./configure.sh script that generates Makefile (from Makefile.orig that's included in the source tree). You can find more information about the compilation process on a dedicated F# plugin page, but here is a quick summary:

Summary

I'll make the summary of this blog post brief. If you're interested in doing something with the open-source code drop of F#, you should wait until Andreia creates a repository with the clone under the F# open-source community on GitHub and then clone it (this way, you'll be easily able to merge with future code drops from Microsoft and you'll be also easily able to compile it). You should also join our mailing list to receive all the updates.

If you're interested in contributing to the F# plugin for MonoDevelop, you should clone the fsharpbinding repository and join our mailing list to discuss work items and bug fixes. You can also follow me on twitter to find out what I'm working on...

Published: Friday, 19 November 2010, 2:01 PM
Author: Tomas Petricek
Typos: Send me a pull request!
Tags: universe, mono, f#