Invited by Mauricio to join and share FnSharp.

33 views
Skip to first unread message

Huw Simpson

unread,
Mar 23, 2012, 10:03:28 AM3/23/12
to fsh...@googlegroups.com
Hi everyone,

I would like to contribute FnSharp.Bcl... 
I have released it under Ms-PL!

Let the discussion begin :)

Thanks,
Huw.

Huw Simpson

unread,
Mar 23, 2012, 10:53:52 AM3/23/12
to fsh...@googlegroups.com
So which pieces are of interest?
Are there any confusing features?
How do we go about the merge?

That's what I can think of so far... If you aren't familiar with the feature set, go over to fnsharp.codeplex.com, there is a link to the API documetation.

Huw.

Mauricio Scheffer

unread,
Mar 23, 2012, 11:07:25 AM3/23/12
to fsh...@googlegroups.com
Welcome Huw!

I think Atom would be definitely worth adding to FSharpx.

Reading http://fnsharp.codeplex.com/wikipage?title=FnSharp.Bcl.Core&referringTitle=Home I see a lot of overlap in many areas, for example the Prelude and ParsePervasives are already present in FSharpx. But I think FSharpx doesn't have String.tryParse.
Other modules are in a similar situation: there's overlap, with FSharpx having some functions that FnSharp doesn't and viceversa. So it's a matter of comparing and seeing what's missing.
Some functions look very specific, like Option.ofBoolInvF2, I'm not sure we should include it.
Other modules, FnSharp.Bcl.Xml should be discussed individually.

Cheers,
Mauricio

Ryan Riley

unread,
Mar 23, 2012, 11:10:21 AM3/23/12
to fsh...@googlegroups.com
On Friday, March 23, 2012 7:53:52 AM UTC-7, huwman wrote:
So which pieces are of interest?
Are there any confusing features?
How do we go about the merge?

We seem to have a lot of duplication between the FnSharp.Bcl.Core and FSharpx.Core. I think all of it is of interest. Are you interested in pulling it all into F#x?

As to how to merge, I'd say pick the best performing implementations. :)

Ryan

Huw Simpson

unread,
Mar 23, 2012, 11:13:03 AM3/23/12
to fsh...@googlegroups.com
String.tryParse is mapped to an active pattern (|Pattern|_) which allows strings to be decomposed using a formatter pattern like "%i-%i" which would return a int * int given the string "10-99" for example. I've found it quite useful for lightweight parsing.

Huw Simpson

unread,
Mar 23, 2012, 11:21:59 AM3/23/12
to fsh...@googlegroups.com
I have attempted to provide somewhat complete slices of functionality and many extension functions to ease conversions etc., I use the 'Option.ofBool*' functions regularly to construct option types. Does anyone consider these sort of extensions bloat? 

Huw Simpson

unread,
Mar 23, 2012, 11:25:54 AM3/23/12
to fsh...@googlegroups.com
I am offering any / all code that is of interest. I have other projects which currently rely on FnSharp.Bcl, so if all the pieces I currently rely on don't make it in then I will continue to use FnSharp.Bcl.

Steffen Forkmann

unread,
Mar 24, 2012, 10:13:25 AM3/24/12
to fsh...@googlegroups.com
>> so if all the pieces I currently rely on don't make it in then I will continue to use FnSharp.Bcl

My proposal: bring everything in and we will try to decide together if we need to create another subproject.
I don't mind a little duplication in fsharpx at the moment. We can still break things.

Mauricio Scheffer

unread,
Mar 24, 2012, 11:38:30 AM3/24/12
to fsh...@googlegroups.com
+1 to Steffen's suggestion.

Huw: I also keep a library of general functions per project. I don't expect something like FSharpx to change that. Not everything is generic or useful enough to be included in FSharpx.
Also, there will probably be a few changes. Such is the compromise of community projects: we aim to reach a consensus on what's best for everyone, which sometimes means having to make changes on existing code. But hopefully it's always for the better. We all have the same goal here after all ;)

Cheers,
Mauricio

Ryan Riley

unread,
Mar 24, 2012, 2:51:56 PM3/24/12
to fsh...@googlegroups.com
+1 here, as well. :)

nicolas

unread,
Mar 29, 2012, 5:06:52 AM3/29/12
to fsh...@googlegroups.com
Hi,

It is good to have liberty, but as a user, it is good to know exactly what library stands for
At the moment, between the powerpack, the code drop, the github compiler, the module extensions, the fsharp.reactive modules etc.. 
This is quite confusing, at least for me..

So I would try to define and contrast clearly the missions of each library.
just my 2 cents..

Nicolas


On Saturday, March 24, 2012 7:51:56 PM UTC+1, Ryan Riley wrote:
+1 here, as well. :)

Ryan Riley

unread,
Mar 29, 2012, 10:15:58 AM3/29/12
to fsh...@googlegroups.com
On Thursday, March 29, 2012, nicolas wrote:
Hi,

It is good to have liberty, but as a user, it is good to know exactly what library stands for
At the moment, between the powerpack, the code drop, the github compiler, the module extensions, the fsharp.reactive modules etc.. 
This is quite confusing, at least for me..

So I would try to define and contrast clearly the missions of each library.
just my 2 cents..

I agree. Here's the breakdown, as I see it:

Official drop spot from the F# team that includes the powerpack. No external contributions

Clone of the code drop from codeplex, sans powerpack. No external contributions.

Clone of the code drop from codeplex, but powerpack only. No external contributions. (Also note this hasn't been updated.)

Community contributions and extensions to the F# core libraries. The goal here is to depend only on the above code drops with an exception for tests or samples. Also, the features in F#x should be primarily those that the community feels "should" be in the box. Other projects, such as FSharp.Reactive, figment, frank, fracture, PitFW, and a host of others don't meet this criteria at this time.

Initially developed by Steffen and updated by me; this is meant to provide a better integration story for F#. However, as it depends on Rx, it doesn't fit within F#x. That could change. Any thoughts on allowing this in as a separate project?

Not sure what the module extensions are? Did you mean F#x?

Ryan

Huw Simpson

unread,
Mar 29, 2012, 10:20:34 AM3/29/12
to fsh...@googlegroups.com
+1 Steffan's suggestion.

How do we start?

Ryan Riley

unread,
Mar 29, 2012, 10:37:02 AM3/29/12
to fsh...@googlegroups.com
On Thursday, March 29, 2012, Huw Simpson wrote:
How do we start?

In the past, we've just brought the projects in alongside and then moved or merged pieces in small doses. It's a little time consuming, but it seems to have worked nicely.

If you can get your repo into git, I finally sorted out how to rebase a repo onto another to preserve history, if not necessarily order of commits. I can help if you need it. (Lookup git replace.)

Ryan

Huw Simpson

unread,
Mar 29, 2012, 10:49:43 AM3/29/12
to fsh...@googlegroups.com
Can a codeplex project's version control system be altered after the initial choice? (rebase?) My google searches haven't been successful!
It is currently a TFS repo.

Huw Simpson

unread,
Mar 29, 2012, 10:53:30 AM3/29/12
to fsh...@googlegroups.com
Mind you I turned this up:  http://codeplex.codeplex.com/wikipage?title=CodePlex%20FAQ#TFStoMercurial 
Is this what you would recommend, I've been wanting to use a DVCS anyway :)

Huw.

Mauricio Scheffer

unread,
Mar 29, 2012, 10:55:06 AM3/29/12
to fsh...@googlegroups.com
You could use git-tfs to migrate the TFS repository to git. 
However, it's only 4 commits going back two weeks, so in this case I wouldn't bother... I'd just dump the latest version in a single git commit.

Cheers,
Mauricio

Steffen Forkmann

unread,
Mar 29, 2012, 11:03:54 AM3/29/12
to fsh...@googlegroups.com
+1 
don't waste your time with history conversion

Ryan Riley

unread,
Mar 29, 2012, 11:05:56 AM3/29/12
to fsh...@googlegroups.com
Ooh... the IronRuby used git-svn over the svn-TFS bridge. You might try that.

Ryan Riley

unread,
Mar 29, 2012, 11:06:31 AM3/29/12
to fsh...@googlegroups.com
On Thursday, March 29, 2012, Mauricio Scheffer wrote:
You could use git-tfs to migrate the TFS repository to git. 
However, it's only 4 commits going back two weeks, so in this case I wouldn't bother... I'd just dump the latest version in a single git commit.

Yeah, in that case, I wouldn't think history is as important. 

Huw Simpson

unread,
Mar 29, 2012, 11:10:06 AM3/29/12
to fsh...@googlegroups.com
I think I'm going to make a request for my repo to be converted to Git. Once its converted people can either pull bits and pieces or we can do a merge and then sort it all?

Mauricio Scheffer

unread,
Mar 29, 2012, 11:15:52 AM3/29/12
to fsh...@googlegroups.com
IMHO it's not worth it... simply fork  https://github.com/fsharp/fsharpx and commit your latest code as-is, then start relocating things to FSharpx directory structure, etc. Once done, we merge it into the main repository.
It would be great if these commits were authored by you, so that the git history acknowledges you as the contributor of this code.

Cheers,
Mauricio

Ryan Riley

unread,
Mar 29, 2012, 11:16:46 AM3/29/12
to fsh...@googlegroups.com
Will they do that for you? I didn't think codeplex offered that.


On Thursday, March 29, 2012, Huw Simpson wrote:

Huw Simpson

unread,
Mar 29, 2012, 11:18:06 AM3/29/12
to fsh...@googlegroups.com

Ryan Riley

unread,
Mar 29, 2012, 11:18:51 AM3/29/12
to fsh...@googlegroups.com
I see in your previous link that they do. Very cool!

Huw Simpson

unread,
Mar 29, 2012, 11:19:01 AM3/29/12
to fsh...@googlegroups.com
Ok, I will begin shortly.

Thanks,
Huw.

Ryan Riley

unread,
Mar 29, 2012, 11:21:38 AM3/29/12
to fsh...@googlegroups.com
I'm pulling it down via git-svn now. I'll post it up to github when done so you can pull it over. If the CodePlex team does it, then it should work fine for you.

Now that CodePlex is updating, should we consider hosting a clone over there for fsharpx?

Steffen Forkmann

unread,
Mar 29, 2012, 11:26:29 AM3/29/12
to fsh...@googlegroups.com
>> Now that CodePlex is updating, should we consider hosting a clone over there for fsharpx?

öhm. I don't want to maintain it.

Mauricio Scheffer

unread,
Mar 29, 2012, 12:18:51 PM3/29/12
to fsh...@googlegroups.com

Now that CodePlex is updating, should we consider hosting a clone over there for fsharpx?
 
Anyone's free to clone it anywhere, but it will complicate pull request reviews... git's distributed and all, but that kind of things I'd rather keep centralized for now :)
And I think we all agree that Github is leaps and bounds better than Codeplex for collaboration.

--
Mauricio

Ryan Riley

unread,
Mar 29, 2012, 1:59:42 PM3/29/12
to fsh...@googlegroups.com
In case you are still waiting, I've cloned fnsharp to my github account: https://github.com/panesofglass/fnsharp.

Ryan Riley

unread,
Mar 29, 2012, 2:01:43 PM3/29/12
to fsh...@googlegroups.com
Btw, I'll transfer the repo to your account.

Ryan Riley

unread,
Mar 29, 2012, 2:03:48 PM3/29/12
to fsh...@googlegroups.com
I've sent the request to transfer to you.
Reply all
Reply to author
Forward
0 new messages