[MonoDevelop] Cross platform build strategy
Jayme
jayme.edwards at gmail.com
Wed May 25 14:55:10 EDT 2005
Hi Todd,
Thanks for your reply. You can download a version of NAnt that works with
1.1.7 from sourceforge here (
http://sourceforge.net/project/showfiles.php?group_id=31650&package_id=23704&release_id=304418).
Unzip/tar it into a folder, add it to your path and your set.
You bring up some good issues. The installation of NAnt isn't turn-key yet
for platforms other than Windows although putting it on the box by manaually
extracting and adding it to your path for now will get the job done.
The reason I bring up NAnt is not about making it easier for the developers
already on the project. You know linux and makefiles well and obviously you
don't want to use something that you have to learn if your comfortable with
what you know. NAnt support in the build process for your project is about
making it easier for new developers who could speed up the current
development lifecycle of Monodevelop. There are a ton of Windows developers
with alot of solid experience in C# who could be helping you guys yet your
haven't taken steps to provide them with a build environment they can use.
You guys have tied newer builds of Monodevelop to linux, which makes no
sense whatsoever to me because the whole purpose of mono is portability. If
your argument is to code on linux and deploy anywhere that makes no sense
because I can a) build code with VS.NET <http://VS.NET> today on windows and
run it anywhere and b) build code with SharpDevelop today on windows and run
it anywhere. The whole purpose of Monodevelop, unless it has been twisted
into something else since then was to give people an IDE that will run
anywhere mono will.
That being said, if you spent a little time reading all the NAnt
documentation you'd see it does everything make does and a hell of alot
more. That's why people use Ant to build java projects and not makefiles
nowadays. SVN task support is an argument I brought up to discourage use of
MSBuild brought up by the last replier, you taking it as my reason for using
NAnt is a misinterpretation of my intent, sorry.
Using NAnt could give you:
-An XML based file format that can be managed and automatically updated by
other tools
-Access to a ton of tasks that will exercise everything in the .NET
framework plus many open source tools that when used by monodevelop can make
the IDE even more attractive
-A reason for developers who use Windows to switch to Monodevelop instead of
just using Sharpdevelop like they do today
-A reason for the NAnt team to create turn-key distros for linux
-Less lines of code in the build environment
-Better readability and validation of build files because they are well
formed XML not just text
-A quick upgrade path to MSBuild when it comes out
If you read the history of Ant and NAnt they were created to solve the exact
problems created by makefiles, I won't bore you with the details but make
dist, make dist check, make run, and make install are all possible with NAnt
and with less lines of code. A mono IDE should NOT depend on
platform-specific code so I would think the goal would be to not need to
check the user's environment using the ancient ./configure method of
makefiles - NAnt does this 100 times better.
You really need to read up on this stuff if the reason to use it still
does't make sense. No offense but your reasons for not wanting to use it
make it obvious that you have not really researched NAnt otherwise you would
fully understand why getting to a modern build environment should be a top
priority if you care about Monodevelop being anything more than just a "for
fun" project that will be obsoleted by Microsoft because it can't gain
community support to have a competitive release date cycle.
I would encourage anyone with your attitude to read the NAnt documentation.
I am really disappointed in how slow new builds of Monodevelop come out, how
it doesn't run on Windows anymore, and (now) how resistant developers on the
team are to trying to improve the current build/release process. I would
like to help with this project but if it is laden with "can't teach an old
dog new tricks" personell, I'll just have to leave it be.
-Jayme
On 5/25/05, Todd Berman <tberman at off.net> wrote:
>
> On Wed, 2005-05-25 at 12:12 -0500, Jayme wrote:
> > Hi John - thanks for your comments!
> >
> > Well just for kicks I created NAnt scripts for MonoDevelop.Dock,
> > ICSharpCode.SharpAssembly, ICSharpCode,SharpRefactory,
> > MonoDevelop.Core, and MonoDevelop.Gui.Utils (until I ran into the
> > dependency on Gnome-Sharp which isn't included in mono on windows) and
> > these all build and run the tests flawlessly under 1.1.7 on Windows.
> >
> > I've been writing tasks for NAnt for almost 4 years now and have used
> > it on two commercial projects at the companies I've worked as a
> > software architect for and I can tell you there are alot of great
> > people on the NAnt project that Microsoft basically ignored when they
> > started the MSBuild stuff. While MSBuild is cool because Microsoft has
> > finally decided to "wake up" and support a standard file format, the
> > reality is Whidbey is still a while away, the community (as usual) is
> > who innovated here in the first place (by porting Ant to .NET) and
> > there are over 80 tasks available for NAnt that do all kinds of things
> > that Microsoft won't have out the shoot (because of competitive
> > conflict of interest) such as support for the mono-specific parameters
> > of gcsc, subversion support, and oppenoffice etc.
> >
> > I hate to get into a religious discussion here but I will point out a
> > couple things. NAnt is available today and if Monodevelop used it I
> > can see the current NAnt developers being more than happy to test on
> > mono (and other platforms) even more rigorously then they already do.
> > Also since MSBuild and NAnt both use XML files, you can create an XSL
> > stylesheet that will convert from one format to another should MSBuild
> > become stable and released and have enough tasks to want to switch.
> > Some custom tasks like C# script etc. would have to be converted
> > manually, but I can't see that being a reason to not use it.
> >
>
> Where can I download a copy of NAnt that works with mono 1.1.7, the
> couple times I have tried I have been very unsucessful.
>
> Like it or not, installing auto* is far far easier than installing NAnt,
> and until it becomes *easier* to install auto* than NAnt, I don't see
> MonoDevelop switching.
>
> As much as you may think that moving to NAnt makes MD easier to build,
> the sad fact is that it makes it easier for 10 people to build and
> impossible for the rest.
>
> In my experience with NAnt on mono, dating from the very very early mono
> 0.21 days to today, NAnt fails to function half the time, and when it
> does, it is painfully slow compared to using auto*.
>
>
> Now, to get to your original question about moving MD to Nant, I dont
> think it is even a good idea, NAnt installation issues aside.
>
> If you could explain what it gives us, maybe you could make a better
> case, and IMO a svn-task that does the checkout, and the make seems
> pretty lame as 'what it gives us'. I can write a 4 line shell script
> that gives us exactly the same thing.
>
> Considering that NAnt doesnt support things such as make dist, and make
> dist-check, or any of the po/ integration that we do w/ intltool, etc.
> We would be losing a lot of functionality.
>
> And before you bring up that we could have all 3 build systems in the
> tree (make, nant, and *.md[s|p]) i will stop you there. I am loathe to
> introduce a second (.md[s|p]) and absolutely against introducing a
> third.
>
> So, just as a summary, until NAnt is
>
> 1) Easy to install, and runs 100% of the time
> 2) Able to do everything our current build scripts do, not just build,
> but help w/ i18n, make dist, and make dist-check, support make run, and
> make install.
>
> there is no way I would even look into accepting this is a viable
> change. That said, I wish you luck in getting NAnt to that stage.
>
> --Todd
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://galactus.ximian.com/pipermail/monodevelop-list/attachments/20050525/411fb515/attachment-0001.html
More information about the Monodevelop-list
mailing list