[MonoDevelop] Planning MonoDevelop 1.0

Lluis Sanchez lluis at ximian.com
Wed Nov 22 18:28:39 EST 2006

Hi all!

After several years of development MonoDevelop is beginning to be really
useful to develop real applications, so I think it makes sense to start
planning a stable 1.0 release. My proposal is the following:

      * MD beta 1 release around mid January (two months from now). In
        this release we would include most of the missing features for
        1.0 (see below). We would do code freeze at this point.

      * MD beta 2 (or RC) release around mid February. Mainly bug fixes
        and memory usage reduction. 

      * MD 1.0 release around mid March. It will include the latest bug
        fixes. I also think we should work on writing documentation for
        this release, specially tutorials.

So, which features is MD 1.0 going to include?. I'd like to get input
from contributors and users about that, but I think what we should do is
to finish and polish what we already have.

I went through all add-ins and I have written down some notes about
what's missing on each of them (bugs aside):

      * MonoDevelop core: The core can be considered complete now. No
        major new features are planned. However, we need to make an
        audit of the API to make sure we don't have public classes or
        methods which don't really need to be public. I'd like also to
        find some time to reorganize a bit the extension point tree
        (which has a mixture of SharpDevelop and MonoDevelop branches),
        to something like what I described some months ago:

      * Debugger: I know a lot of people will ask for this, but I fear
        the debugger won't be ready by our code freeze date. We can
        release it later on as a separate add-in.

      * Documentation browser: The Monodoc integration more or less
        works, but there are some known crashes. However I still believe
        that showing Monodoc in an external window would be more
        practical that the current integrated view. The integrated
        documentation tree is not really useful, we don't have search or
        an index integrated.

      * Text editor: There are several requests/issues to solve: 
              * Parameter completion: after typing the name of a method,
                show a popup window with information about the
                parameters the method takes. 
              * Remove C#-isms. The code completion engine has several
                C#-isms in the code, which may make it difficult to
                integrate with other languages. 
              * Configurable key bindings. That's not specific to the
                editor, but people mostly complain about it. I'm not
                sure we can implement this for 1.0. 
              * Refactory operations. We have and under-used refactory
                API. It would be nice to use it to implement some basic
                refactoring operations.
      * VS importer: Ankit is working on supporting VS2005 files right
        now. The idea is that you can open VS files directly in MD and
        work with those projects like if they were native projects. It
        will support writing changes such as adding files or modifying
        the project configuration. Ideally, we should do the same for
        VS2003 (right now it only supports importing for VS2003

      * ASP.NET support: I don't know if this add-in can be mature
        enough for the 1.0 release. I'll need input on that (which
        features could we release? would the add-in be really useful for
        real world web projects?).

      * GTK# designer: There are several features to be implemented in
        the designer before the release: 
              * Support partial classes when generating code. 
              * Support for Undo/Redo. 
              * Reuse the toolbox implemented for the ASP.NET add-in. 
              * Support for some missing controls, such as Gtk.Fixed and
                context menus. It would be nice to have a TreeView
                designer, but it may be too much work for 1.0. 

      * MonoQuery database management: I have no idea of what is the
        status of this add-in. I have never really used it. Can somebody
        give input about it? Do we want to support it for 1.0?

      * NUnit: It can be considered feature complete for 1.0. The only
        missing issue to resolve is what to do with the NUnit
        dependency. Right now the add-in can't be built with recent
        NUnit versions since they have breaking changes. I talked about
        this with Charlie Poole in the Mono summit and he suggested to
        embed the most recent NUnit dlls into the add-in, since even if
        the API has some breaking changes, new NUnit versions can still
        run tests written for all the previous versions.

      * Version Control: I recently integrated some of the changes done
        for the Google SoC project and improved it a lot. Support for
        SVN is mostly functional. What's missing is support for CVS. It
        would be nice to have for MD 1.0.

      * Welcome page: It looks ok to me.

      * Web references: I'd like to integrate the web references add-in
        implemented by Gideon de Swardt. The only problem I see is that
        it only supports .NET 2.0 projects. It would be nice to make it
        work for 1.1 as well.

      * Xml editor: It's being maintained outside of MD, so nothing to
        add. Just to make sure it works when we release 1.0.

      * Boo: I think this add-in is complete, but I'd also like to know
        the opinion of Peter about this. In any case, there is one issue
        that should be fixed: right now the Boo add-in always starts an
        external process which runs the backend for the Boo shell. This
        process should only be started if the user opens the shell,
        since it's a waste of memory otherwise.

      * CSharp: It is mostly complete. We may need to add support for
        partial classes. I'm not sure they are correctly handled by the
        parser right now.

      * ILAsm: I haven't used it for a long time. I guess it works.

      * Java: It's mostly complete, although there are some IKVM
        configuration issues that need to be fixed.

      * VB.NET: I don't think there is support for generics. We may want
        to migrate to the new VB compiler.

      * Nemerle: Don't know much about the status. Any input? The big
        problem I find is that it depends on a specific version of
        Nemerle from SVN. If it can't be made to depend on a packaged
        Nemerle version we won't be able to include it in the MD

      * ChangeLog add-in: It's now integrated with the version control
        add-in. There are ideas for improving it.

      * Autotools: There are several features I'd like to support for MD
              * Support integration with existing Makefiles. That is, if
                somebody has a project with complex build rules which
                can't be emulated by MD, just make it possible to
                delegate the entire build process to Make, and still be
                able to launch the build from inside MD. About modifying
                the Makefile in MD, I think supporting adding/removing
                files would be enough for now. 
              * We need to find a solution for file templates (.in
                files). MD uses some of them. We need to support them in
                the MD build model if we want to be able to completely
                build MD using MD. 
              * There may be other missing features needed for
                self-hosting MD. 
              * It would be nice to support generating a tarball without
                having to pollute the project directory with autotools

      * IDE extensions for Mono: Nothing much to do. Just make sure it
        works with the most recent Mono makefiles.

As you can see that's a lot of work. I think we should prioritize
working on features related with development GNOME desktop applications
(which has been the main goal of MD anyway).

I'd like to get feedback about this plan. I may not have a complete view
of every add-in, and I'm sure I'm missing things.


More information about the Monodevelop-list mailing list