Contributing?

With a brave new world ahead for IronRuby, what do you all think about
the
following ideas?

  1. Move to GitHub - I won’t likely contribute if I have to use CodePlex.
    And
    I’d like to contribute. Can we do like the rest of Mono and make GitHub
    the
    central repository and source of all truth? Please?

  2. Detach IronPython - Looking through the code, it seems that
    IronPython is
    in the same repo. I’m sure this is a holdover of how Microsoft had
    everything organized. And I’m sure it made sense then, but I don’t think
    it
    makes sense now. I’d like to work on IronRuby, and I honestly don’t care
    about having to check IronPython. Now that the DLR API is fixed, and
    there
    is no longer one Microsoft group in charge of both projects, can we move
    these into separate repos?

  3. Detach from Visual Studio - I’m not on Windows, and I won’t be using
    Visual Studio. I’d prefer everything to build with rake tasks on Windows
    and
    Mono. I assume things are the way they are right now because of
    Microsoft’s
    build process. And right now it does not seem possible for me to build
    without Visual Studio. What about devs who are using MonoDevelop? Or any
    of
    the more powerful text editors? I’m convinced this is a major hurdle to
    getting many of the other Rubyist language implementors involved.
    Assuming I
    am not alone on this, is it possible we can make this project reflect
    the
    realities of the majority of folks that would like to contribute?

  4. Remove ancillary projects into their own repos - IronRuby.Rack should
    live in its own repo, IMO. So should the Visual Studio tools. This is
    similar to separating IronPython into its own repo, but it needs to go
    further. Are there any reasons this should not be done?

What else do you guys think needs to change now that IronRuby is free
from
Microsoft’s processes?

A couple thoughts below:

On Fri, Oct 22, 2010 at 8:10 PM, Mike M. [email protected] wrote:

With a brave new world ahead for IronRuby, what do you all think about the
following ideas?

  1. Move to GitHub - I won’t likely contribute if I have to use CodePlex. And
    I’d like to contribute. Can we do like the rest of Mono and make GitHub the
    central repository and source of all truth? Please?

http://github.com/ironruby/ironruby

My understanding is that Codeplex is used only for end user
distribution and bug tracking

3)Detachfrom Visual Studio - I’m not on Windows, and I won’t be using
Visual Studio. I’d prefer everything to build with rake tasks on Windows and
Mono. I assume things are the way they are right now because of Microsoft’s
build process. And right now it does not seem possible for me to build
without Visual Studio. What about devs who are using MonoDevelop? Or any of
the more powerful text editors? I’m convinced this is a major hurdle to
getting many of the other Rubyist language implementors involved. Assuming I
am not alone on this, is it possible we can make this project reflect the
realities of the majority of folks that would like to contribute?

You can certainly build without VS, this has always been the case.
All you need is msbuild or xbuild for the solution files, in the past
there have been Rake files as part of the repo from very early on…
but they seem to have disappeared… anyone know what happened?

I’m taking a look now on building under mono on linux, it’s something
me and Ivan were working on earlier in the year and this seems like a
good time to revisit.


Michael L.
IronRuby MVP
http://blog.prokrams.com

  1. IronRuby is on github. I has been there for a while. There is no
    source code on CodePlex. The only CodePlex service we use is the bug
    tracker.

  2. It is not a holdover. It makes a lot of sense actually for at least
    the following reasons:
    a) Some IronRuby tests test interop between these languages. So there is
    a direct dependency. When you debug issues in language interop you need
    to have IronPython source code as well to step thru and make sense of
    the interactions.
    b) DLR has two parts - the “inner ring” that shipped in .NET Framework
    4.0 and the “outer ring”, which hasn’t shipped. Although the outer ring
    is pretty stable there are still many improvements that can/should be
    done. Obviously when you change the DLR you should run tests for both
    languages so that you don’t break anything. Thus IronPython’s test suite
    in the repo is handy. Also, if you change public API in the outer ring
    you might need to change both IronPython and IronRuby. All of this could
    be done in stages across different repos and even source control
    systems, but that’s obviously much more complicated than having it just
    work.

Is size of the repo really an issue? If not, what is?

  1. It is absolutely possible to build without Visual Studio. On Mono you
    can build using xbuild. Sometimes Mono’s xbuild might have a bug but I
    can assure you that Mono guys are more than happy to fix it asap if it
    breaks IronRuby or IronPython builds. Doesn’t MonoDevelop support
    .csproj files? I have no experience with it, but I would assume it does.
    The only part of the repo that is Visual Studio specific is (not
    surprisingly) Visual Studio integration in the Tools directory. Building
    a separate rake build system is just a redundancy that is difficult to
    maintain. Trust me, we tried. The less duplication in the build
    infrastructure the better.

  2. We have an installer builder in the MSI directory that builds the
    entire IronRuby.msi and IronPython.msi from command line. These
    installers include Visual Studio integration so it needs to be there. Of
    course we can come up with some sub-module structuring of the repo that
    allows you to make a local enlistment with VS and without VS. That might
    be the way to go. Though, again, why spend time on changing the
    infrastructure? Shouldn’t we focus on implementing features and fixing
    bugs instead? Does the size of the repo bother you?

Be assured that me and Dino have spent a lot of time to make sure no
unnecessary process (Microsoft’s or not) is needed when working on
IronRuby and IronPython.
There might be a few small things to clean up that were needed at
Microsoft and are not needed now. I’ll be happy to make the changes. Two
of them that I can think of right now are removing “LCA_RESTRICTED” and
TFS bindings from the solutions. Other than that there is not much.

Any ideas how to make the development easier on Windows, Linux or MacOS
are indeed welcome. Just be aware there might be good reasons behind the
current repo setup and virtually none of them would be Microsoft process
requirements. I’ll be happy to explain them should you have any
questions.

Thanks,
Tomas

From: [email protected]
[mailto:[email protected]] On Behalf Of Mike M.
Sent: Friday, October 22, 2010 5:10 PM
To: [email protected]
Subject: [Ironruby-core] Contributing?

With a brave new world ahead for IronRuby, what do you all think about
the following ideas?

  1. Move to GitHub - I won’t likely contribute if I have to use CodePlex.
    And I’d like to contribute. Can we do like the rest of Mono and make
    GitHub the central repository and source of all truth? Please?

  2. Detach IronPython - Looking through the code, it seems that
    IronPython is in the same repo. I’m sure this is a holdover of how
    Microsoft had everything organized. And I’m sure it made sense then, but
    I don’t think it makes sense now. I’d like to work on IronRuby, and I
    honestly don’t care about having to check IronPython. Now that the DLR
    API is fixed, and there is no longer one Microsoft group in charge of
    both projects, can we move these into separate repos?

  3. Detach from Visual Studio - I’m not on Windows, and I won’t be using
    Visual Studio. I’d prefer everything to build with rake tasks on Windows
    and Mono. I assume things are the way they are right now because of
    Microsoft’s build process. And right now it does not seem possible for
    me to build without Visual Studio. What about devs who are using
    MonoDevelop? Or any of the more powerful text editors? I’m convinced
    this is a major hurdle to getting many of the other Rubyist language
    implementors involved. Assuming I am not alone on this, is it possible
    we can make this project reflect the realities of the majority of folks
    that would like to contribute?

  4. Remove ancillary projects into their own repos - IronRuby.Rack should
    live in its own repo, IMO. So should the Visual Studio tools. This is
    similar to separating IronPython into its own repo, but it needs to go
    further. Are there any reasons this should not be done?

What else do you guys think needs to change now that IronRuby is free
from Microsoft’s processes?

I would caution you against moving too far away from Microsoft
Technology,
lest you alienate Windows developers.

  1. If this project is going to be owned by Mono, then it would be
    reasonable
    to move to GitHub. But to drop CodePlex just because you feel like being
    stubborn isn’t.

  2. One of the biggest barriers for Windows developers who want to
    contribute
    to Mono is the project/build system. When looking at it for the first
    time
    it is really hard to just figure out where to start. And they certainly
    don’t want to go back to editing source files with notepad. So while
    being
    able to build without Visual Studio is important, be careful not to
    remove
    the VS/MSBuild option.

Jonathan A.

On Fri, Oct 22, 2010 at 7:02 PM, Jonathan A.
[email protected]wrote:

I would caution you against moving too far away from Microsoft Technology,
lest you alienate Windows developers.

I don’t think Windows developers could be anymore alienated from
IronRuby.

  1. If this project is going to be owned by Mono, then it would be
    reasonable to move to GitHub. But to drop CodePlex just because you feel
    like being stubborn isn’t.

Dropping CodePlex because it requires some Uber Visual Studio product to
access the code repo and make code contributions is reasonable, and not
some
emotional reaction. Gladly this doesn’t seem to be the case anymore.

On Fri, Oct 22, 2010 at 6:59 PM, Tomas M. <
[email protected]> wrote:

  1. It is not a holdover. It makes a lot of sense actually for at least
    the following reasons:

a) Some IronRuby tests test interop between these languages. So there is a
direct dependency. When you debug issues in language interop you need to
have IronPython source code as well to step thru and make sense of the
interactions.

I don’t understand why the code needs to exist within the same git repo
for
this then. Can you not have a Visual Studio solution that includes
multiple
projects with their own repository? Can’t you have your automated build
system pull both the IronRuby and IronPython projects to run the
integration
tests?

b) DLR has two parts the inner ring that shipped in .NET Framework
4.0 and the outer ring, which hasnt shipped. Although the outer ring is
pretty stable there are still many improvements that can/should be done.
Obviously when you change the DLR you should run tests for both languages so
that you dont break anything. Thus IronPythons test suite in the repo is
handy. Also, if you change public API in the outer ring you might need to
change both IronPython and IronRuby. All of this could be done in stages
across different repos and even source control systems, but thats obviously
much more complicated than having it just work.

I assumed the DLR was fixed. If that is not the case then shouldn’t the
DLR
should be its own separate git repo as well?

Is size of the repo really an issue? If not, what is?

No, its not the size of the repo, rather the amount of tangental code.
As
someone who hasn’t looked at the code for well over a year, I am struck
by
the amount of orthogonal concerns that are front and center. I find it
too
busy and off-putting as a developer looking to become familiar with the
code
or make a small contribution. I don’t doubt there aren’t reasons it is
the
way it is, just that it can be better if you want to really open the
floodgates of contributions.

  1. If this project is going to be owned by Mono, then it would be
    reasonable to move to GitHub. But to drop CodePlex just because you feel
    like being stubborn isn’t.

Dropping CodePlex because it requires some Uber Visual Studio product to
access the code repo and make code contributions is reasonable, and not some
emotional reaction. Gladly this doesn’t seem to be the case anymore.


Uh… you know it doesn’t, right? Codeplex supports SVN and Mercurial
and there are free TFS tools available in any case.

http://codeplex.codeplex.com/wikipage?title=Source%20Control&version=1


Michael L.
IronRuby MVP
http://blog.prokrams.com

Along the lines of IronRuby on mono, a small change was required for
now since Mono doesn’t implement one of the newer Monitor.TryEnter
overloads, see my branch here:
http://github.com/mletterle/ironruby/tree/linux

compiles with:

xbuild /property:TreatWarningsAsErrors=false
/property:DefineConstants=“DEBUG MONO” Ruby.csproj

Working on getting IronRuby.Console compiled now… already ran into a
casing issue >.<

On Fri, Oct 22, 2010 at 9:02 PM, Jonathan A. [email protected]
wrote:

don’t want to go back to editing source files with notepad. So while being

  1. Move to GitHub - I won’t likely contribute if I have to use CodePlex.
    Visual Studio. I’d prefer everything to build with rake tasks on Windows and
    further. Are there any reasons this should not be done?

    Jonathan A.
    619-933-8527

Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core


Michael L.
IronRuby MVP
http://blog.prokrams.com

On Fri, Oct 22, 2010 at 7:06 PM, Michael L. <
[email protected]> wrote:

http://github.com/ironruby/ironruby

My understanding is that Codeplex is used only for end user
distribution and bug tracking

Good to know. Last time I was paying attention this was not the case.
The
commits I’ve seen through twitter seemed to be syncing commits from
Microsoft’s internal system out. I readily admin I am ignorant of the
truth
however. :slight_smile:

You can certainly build without VS, this has always been the case.

All you need is msbuild or xbuild for the solution files, in the past
there have been Rake files as part of the repo from very early on…
but they seem to have disappeared… anyone know what happened?

I’m taking a look now on building under mono on linux, it’s something
me and Ivan were working on earlier in the year and this seems like a
good time to revisit.

Excellent. I’d prefer to have rake be the official way to test and
build,
since that is what every other Ruby project I work on does.

The Rake files were deleted because they were hard to maintain and
redundant.

On Oct 22, 2010, at 10:00 PM, Jim D. [email protected]
wrote:

The Rake files were deleted because they were hard to maintain and redundant.

Not all of them.

http://github.com/ironruby/ironruby/blob/master/Rakefile

On Oct 22, 2010, at 10:13 PM, Michael L.
[email protected] wrote:

Uh… you know it doesn’t, right?

Obviously I don’t. :slight_smile:

Dropping CodePlex because it requires some Uber Visual Studio product to
access the code repo and make code contributions is reasonable, and not
some
emotional reaction.

While academic at this point, I would like to reiterate that you don’t
need
Visual Studio for CodePlex, Subversion works just fine. In fact,
Subversion
is preferred over VS because it allows anonymous access the source
control
repository while VS requires at least developer status on the project.

Jonathan

On Oct 22, 2010, at 8:27 PM, Mike M. [email protected] wrote:

Dropping CodePlex because it requires some Uber Visual Studio product to access
the code repo and make code contributions is reasonable, and not some emotional
reaction. Gladly this doesn’t seem to be the case anymore.

Or, has never been the case. I’ve used vim and mono on some pieces
before, so the new arrangement doesn’t change anything except allow us
to contribute directly to parts of the codebase we couldn’t before. :slight_smile:

Ryan

What do you need the “DEBUG MONO” constant for? The default “Debug”
configuration doesn’t work?

What version of Mono do you use? I think 2.8 should be the target for
IronRUby.

Tomas

I don’t understand how three distinct github repos that I need to map
into some directories on my disk whose relative location to each other
is hardcoded in some scripts in each are better than a single repo that
has a well-defined structure.

The amount of code you need to know depends on the part you contribute
to. If you work on IronRuby libraries you don’t need to even look at
IronPython. It is indeed better to look there because similar
functionality might already be implemented there. For example, if you
worked on FFI you might want to check out IronPython’s CTypes and
perhaps reuse some code. Why would you need to understand the entire
code base if you needed to do a local change? Just don’t look where you
don’t need to :). Building IronRuby is also simple - you just run xbuild
Ruby.sln from Solution directory. Subsequent builds are incremental, so
you don’t even need to build everything if you don’t change core
components. I don’t see how this could be any simpler.

Tomas

From: [email protected]
[mailto:[email protected]] On Behalf Of Mike M.
Sent: Friday, October 22, 2010 8:27 PM
To: [email protected]
Subject: Re: [Ironruby-core] Contributing?

On Fri, Oct 22, 2010 at 6:59 PM, Tomas M.
<[email protected]mailto:[email protected]>
wrote:
2) It is not a holdover. It makes a lot of sense actually for at least
the following reasons:
a) Some IronRuby tests test interop between these languages. So there is
a direct dependency. When you debug issues in language interop you need
to have IronPython source code as well to step thru and make sense of
the interactions.

I don’t understand why the code needs to exist within the same git repo
for this then. Can you not have a Visual Studio solution that includes
multiple projects with their own repository? Can’t you have your
automated build system pull both the IronRuby and IronPython projects to
run the integration tests?

b) DLR has two parts - the “inner ring” that shipped in .NET Framework
4.0 and the “outer ring”, which hasn’t shipped. Although the outer ring
is pretty stable there are still many improvements that can/should be
done. Obviously when you change the DLR you should run tests for both
languages so that you don’t break anything. Thus IronPython’s test suite
in the repo is handy. Also, if you change public API in the outer ring
you might need to change both IronPython and IronRuby. All of this could
be done in stages across different repos and even source control
systems, but that’s obviously much more complicated than having it just
work.

I assumed the DLR was fixed. If that is not the case then shouldn’t the
DLR should be its own separate git repo as well?

Is size of the repo really an issue? If not, what is?

No, its not the size of the repo, rather the amount of tangental code.
As someone who hasn’t looked at the code for well over a year, I am
struck by the amount of orthogonal concerns that are front and center. I
find it too busy and off-putting as a developer looking to become
familiar with the code or make a small contribution. I don’t doubt there
aren’t reasons it is the way it is, just that it can be better if you
want to really open the floodgates of contributions.

Jim, Jimmy, Tomas, and Miguel:

Shri used to offer pair programming sessions to people interested in
helping out with the project. I know at least a few participated, and I
found it really helpful. Is there any chance of starting this up again?
I don’t mean for you to necessarily be the ones to do it, but you might
know some food candidates. This might help onboard people like Mike who
are interested but unsure where to begin.

Ryan

Sent from my iPhone

Well, it’s just the DEBUG constant and a MONO constant.

I’m building with mono trunk, I added the MONO to the ifdef to use the
Monitor.TryEnter(object) overload that is also used for CLR2. I
couldn’t just use the CLR2 constant because that broke everything
else. I’m going to look into adding the Monitor.TryEnter(object,
bool) overloads to mono proper so this is just temporary.

On Sat, Oct 23, 2010 at 3:19 AM, Tomas M.
[email protected] wrote:

Subject: Re: [Ironruby-core] Contributing?

the first time it is really hard to just figure out where to start.

about the following ideas?
3)Detachfrom Visual Studio - I’m not on Windows, and I won’t be
This is similar to separating IronPython into its own repo, but it


Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core


Michael L.
IronRuby MVP
http://blog.prokrams.com

On Oct 23, 2010, at 1:30 AM, Tomas M.
[email protected] wrote:

I don’t understand how three distinct github repos that I need to map into some
directories on my disk whose relative location to each other is hardcoded in some
scripts in each are better than a single repo that has a well-defined structure.

You are speaking like someone responsible for both languages and the
DLR. I’m making a suggestion as someone really only interested in
IronRuby. The repo isn’t called “DynamicLanguages”, it’s called
“IronRuby”, which is at best confusing. If only git had some way to
define a link to another repository as some sort of sub module…

As a Rubyist I’d like to run a rake task to build to each defined target
and run the RubySpecs. It wouldn’t replace xbuild, just automate it. I
don’t understand the pushback to this idea. Why not make a dedicated
repo for IronRuby free of the ancillary projects and geared to someone
like me? And likewise make the IronPython repo friendly to our Pythonic
friends?

The amount of code you need to know depends on the part you contribute to. If
you work on IronRuby libraries you don’t need to even look at IronPython. It is
indeed better to look there because similar functionality might already be
implemented there. For example, if you worked on FFI you might want to check out
IronPython’s CTypes and perhaps reuse some code. Why would you need to understand
the entire code base if you needed to do a local change? Just don’t look where you
don’t need to J. Building IronRuby is also simple – you just run xbuild Ruby.sln
from Solution directory. Subsequent builds are incremental, so you don’t even need
to build everything if you don’t change core components. I don’t see how this
could be any simpler.

Unfortunately I do see how this could be simpler.

Maybe it is time to come up with the why’s??

This is how I see the Iron languages.

The languages are built on top of the DLR for Interoperability between
the languages and
to Ensure that the DLR offers the basic building blocks for Dynamic
languages and to the base CLR.
(be that mono or the CLR now that it is oss)

the Iron languages are built so that a Rubiest will feel comfortable in
the .net platform or a pythonist for that matter.

But more importantly that the libraries built can be used clr/dlr wide.
IOW a Ruby library can be used (in theory) by
a rubiest for sure, but also a pythonist, a c sharper, a Vber, and for
that matter a Fsharper.

Now to get working on my programming skills so I can contribute in the
future. took a 17 year diversion into equipment
repair.

But to me the single most important part of the project is the
interoperability it offers.

D

From: [email protected]
Date: Sat, 23 Oct 2010 06:44:16 -0600
To: [email protected]
Subject: Re: [Ironruby-core] Contributing?

On Oct 23, 2010, at 1:30 AM, Tomas M.
[email protected] wrote:

I dont understand how three distinct github repos that I need to map
into some directories on my disk whose relative location to each other
is hardcoded in some scripts in each are better than a single repo that
has a well-defined structure.
You are speaking like someone responsible for both languages and the
DLR. I’m making a suggestion as someone really only interested in
IronRuby. The repo isn’t called “DynamicLanguages”, it’s called
“IronRuby”, which is at best confusing. If only git had some way to
define a link to another repository as some sort of sub module…

As a Rubyist I’d like to run a rake task to build to each defined target
and run the RubySpecs. It wouldn’t replace xbuild, just automate it. I
don’t understand the pushback to this idea. Why not make a dedicated
repo for IronRuby free of the ancillary projects and geared to someone
like me? And likewise make the IronPython repo friendly to our Pythonic
friends?

The amount of code you need to know depends on the part you contribute
to. If you work on IronRuby libraries you dont need to even look at
IronPython. It is indeed better to look there because similar
functionality might already be implemented there. For example, if you
worked on FFI you might want to check out IronPythons CTypes and perhaps
reuse some code. Why would you need to understand the entire code base
if you needed to do a local change? Just dont look where you dont need
to J. Building IronRuby is also simple you just run xbuild Ruby.sln
from Solution directory. Subsequent builds are incremental, so you dont
even need to build everything if you dont change core components. I dont
see how this could be any simpler.
Unfortunately I do see how this could be simpler.

_______________________________________________ Ironruby-core mailing
list [email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core