What Open Source projects should our scholarship recipient work on?

Outreachy Diversity Program & FSharp

The F# Software Foundation Board has recently voted YES to tentatively beginning a foray into Outreachy, the 501©(3) nonprofit under The Software Freedom Conservancy, as a diversity initiative to bring talented junior developers into F# Open Source Software. To read more about the program click here.

We need your help.

We are looking to get feedback from the community on what projects would be good and appropriate to present to a mentee. Remember, they will have a mentor from the community helping them on their contribution(s) and will work for 3 months on it. These projects should be somewhat “hype”-worthy as a deliverable for the mentee is blogging about their work.

Where to begin?

The board has some ideas about what would be good, but what do you think? Fable? Paket? Giraffe? Ionide? Most desired language feature? Reply below and start the conversation.

If you’re interested in becoming a mentor, please reach out on FSSF Slack and definitely check out Selketjah’s post.

4 Likes

Ionide?

If someone would be interested in editor tooling, I’d recommend working on FsAutoComplete or Forge rather than Ionide itself - those utilities used by Ionide (and other editors) are the places where most of the interesting things happen.

2 Likes

While I can’t suggest specific projects, I’d say that one of the most asked-for pieces in the F# ecosystem is better IDE support.

These days, I realise that people come to F# from many different backgrounds, but AFAICT, a large proportion are still C# developers who are curious about F#.

C# developers are used to astoundingly good IDE support. Given that the C# language itself is what it is, it’s amazing what Visual Studio can do with it. Not only syntax highlighting, but refactoring support, code snippets, code lens, static code analysis, all of that.

When C# developers realise how little of that is available for F#, they’re already put off by the language. F# could really use better IDE support.

I’m not only talking about more features, but just as much features that are as reliable, as robust, as the corresponding features are for C#.

3 Likes

One topic that our local meetup has discussed working on together is increasing the overall helpfulness/friendliness of error messages from the compiler. Perhaps a specific subset of error messages — e.g. ones that might be daunting to new F# devs — would be a sufficiently narrow focus for a mentor/mentee pair over the course of 3 months?

At the very least, I would be up for working on and blogging about error messages (though I’ll probably end up applying regardless of the particular project FSSF chooses) ^^

How about something around missing = after a let…?

Couple of thoughts / suggestions:

IFSharp / F# kernel for Jupyter notebooks might be a good candidate: https://github.com/fsprojects/IfSharp - This project has a solid base, and is interesting, it provides basically a ready-to-use familiar environment for data scientists.

Perhaps Tensorflow.FSharp would benefit from additional hands? https://github.com/fsprojects/TensorFlow.FSharp

Is there a project or topic in the Fable ecosystem where some help would be welcome? I don’t know the domain well enough to know what would make a good candidate.

Perhaps Fabulous?

1 Like

The breadth of ideas offered by Mathias brought up a question in my mind:

Is it best for the intern to focus on a specific sub-community/project, or should the focus be at the language-level, such that a larger proportion of F# community would benefit from their contributions?

I don’t have have any particular insight as to what the answer to that question might be — or even how relevant the question itself is for this particular effort — but it’s something that crossed my mind.

( …that said, Fabulous is very much an interest of mine at the moment, and I would certainly enjoy an opportunity to contribute to it, either through Outreachy or on my own someday )

This might not be as interesting as writing code, but I’d love to see better docs on how to contribute to the compiler (think tutorial-style). My sense is that there are a lot of people who would love to help take on the backlog of compiler bugs, but don’t even know where to start. The documentation as it exists now is okay, but I think documentation going through an example of how to fix a specific compiler bug would be very helpful.

1 Like

I agree. I think I fixed a compiler bug, but I found it difficult to learn how to test the fix. A walk-through that included how to write the automated tests and any other prerequisites for a pull request would be very helpful. Of course, it might also help if we could standardize all the tests to use just one testing framework.

How about a new project that adds an inline analyzer using FCS.