7

I have a project on CodePlex that I have opened to basically anyone to join and help out on. I am mostly an enthusiast coder, although I have done some programming work as part of my job it has always been solo projects that my team uses for IT support.

With my CodePlex project, I got my first new fork yesterday. I cloned it to see some of the changes and realized he had upgraded the package to VS 2012 from my 2010.

What is team etiquette for Visual Studio in a team environment? I can see the benefit of using the latest and greatest, but forcing the hand of a team to upgrade seems a little off too.

My assumption is this developer did not consider it.

Is it considered good etiquette to maintain a standard, even if outdated like with VS 2010? Or is the best etiquette to use the latest stable Visual Studio, and those with out an upgrade can use the Express versions of the latest? Or is there a standard way to make a solution IDE agnostic between VS versions?


Edit

A ton of great input. And the verdict seems to be there is no universal or established etiquette. That it really boils down to my own preferences for the project and what affect the change has on the project.

8
  • 1
    2012 is no longer the latest version. You're too slow, its up to 2013. Nov 21, 2013 at 11:44
  • 1
    @DaveHillier: what has this to do with the fact that the upgrade whas to VS 2012?
    – Doc Brown
    Nov 21, 2013 at 11:53
  • @DocBrown The OP wrote, "benefit of using the latest and greatest". It is not the latest; so it's not like he's pushed them to the bleeding edge. Nov 21, 2013 at 12:40
  • 2
    Are you asking about a team environment, or a loose collection of people working on the same code base? The problem you describe doesn't sound like a team to me. Nov 21, 2013 at 14:16
  • @DaveHillier Thanks, I am aware that 2013 is the latest, but the question was meant to be a little more in general about general etiquette, and 2013 does come to play there as someone could update the solution again to 2013 at any time.
    – AthomSfere
    Nov 21, 2013 at 15:46

4 Answers 4

9

VS 2012 is capable to work with VS 2010 projects in their format, without forcing you to upgrade. So if you don't want get excluded, and don't want to exclude other developers who are not willing or able to upgrade to VS 2012 (at least not now), and as long as there is no real benefit of using the VS 2012 format in your project, you should encourage everyone to keep projects in the older format (especially, if that is the VS version you are working with). For example, put a "readme" file beside the solution file where you explain your wishes.

In fact, if someone else is willing to maintain a VS 2012 project file in parallel to your VS 2010, you can't hinder them from that, but as you are the author and maintainer of the project, it would be at least polite for your contributors to respect your wishes as long this does not mean extrordinary efforts for them.

On the other hand, when the next VS version brings you and your contributors some benefits like noticeable productivity increasements, and these benefits are ony available for the drawback of an incompatible project format, then IMHO you should consider to upgrade as soon as possible.

4
  • If the project is in C++, VS2012 is necessary to have access to new C++ 11 features. So that would be a real benefit to upgrading.
    – 17 of 26
    Nov 21, 2013 at 15:02
  • Note that VS 2012 can't work with SQL projects or Reporting Services without upgrading them. Nov 21, 2013 at 15:06
  • I have 2010, 2012 and 2013. I prefer 2010 although there is no reason for the project to be on one or another. I just prefer the colors, icons and navigation of 2010. I realize not all developers have access to pro for all 3 though... If this effects your thought process at all
    – AthomSfere
    Nov 21, 2013 at 15:51
  • @athomsfere you can easily style 2012 to look like 2010, and still benefit from current features.. :)
    – Max
    Nov 21, 2013 at 19:21
6

By definition, he has forked the project. He hasn't forced anything on "the team".... yet.

He has taken his own copy, and for whatever reason, upgraded it.

Maybe at some point he would like to request that it is merged back into the main project, but that would then have to be approved by you/the team.

5
  • Even when it is a fork, it would be at least polite from the contributor to let the original author see what's going on in between and don't detract the ability of compiling the code from him just because he has an older VS version. The situation would be, of course, different, when the contributor would be forced to use VS 2010 instead of VS 2012 in this situation, or upgrading to VS 2012 project file format would bring any productivity increasements, but I doubt that is the case.
    – Doc Brown
    Nov 21, 2013 at 13:15
  • Well, that was my only point, he hasn't forced it on the team. He may not even ever be planning to submit it back in.
    – ozz
    Nov 21, 2013 at 13:32
  • @DocBrown Being opensource and it being a fork of the code then i dont think there is anything impolite with this. This is opensource , which is basically "here is my code, do whatever the f45k you want" you can read the MIT license with basically outlines that statement
    – user91382
    Nov 21, 2013 at 14:41
  • @Ozz Good points, I know the plan is to add functionality and then fork back up to the source. I suppose I could diff the changes into the 2010 files, but it adds work for at least me this router.
    – AthomSfere
    Nov 21, 2013 at 15:48
  • @AthomSfere - The only thing VS2010 cannot do that 2012 can do is compile against the new C++ 11 and I believe .NET 4.5.X. Unless your project framework target was also update the upgraded solution is a simple enough fix.
    – Ramhound
    Nov 21, 2013 at 17:07
2

You have to decide what's more important in putting your code into public: Maintaining strict control or getting as many contributors as possible.

Personally, I think getting contributors is difficult. This person may not know the ramifications of using a different version of VS. There are plenty of hobbyists out there. Maybe you can ask if the person wouldn't mind converting back to 2010? They may have just downloaded the latest and greatests because that's what was most available.

It's like inviting someone into your house and telling them to make themselves at home and there's plenty of beer in the refrigerator. Obviously they should know to close the door when finished, but can you really expect them to recognize that they shouldn't use the broken handle you just glued?

0

If you are the maintainer for the original project, you should decide what version of dev tools (Visual Studio) you want to standardize on. You should communicate this decision somewhere visible on the project's website.

Then, if anyone submits a pull request that changes the VS project, and they moved away from the standard version, ask them to fix this before you merge their changes.

In the case of Visual Studio, it probably depends on what language you are using in your original project - if you use C++, you might want to consider to use VS2012 or VS2013, just because of the greatly improved C++11 support. If it's a C# project, unless you use async, you can probably keep everything on VS2010 to have the greatest compatibility.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.