Scaffold 0.1 "Bring on the scaffolding!"



Hi,

* What is it ?
==============

Scaffold (formerly known as anjuta2) is a GNOME based Development
Environment (IDE). A scaffold is a support structure used during
construction.

This is a _DEVELOPMENT_ release which requires the GNOME 2.3 platform.
Use at your own risk etc. The main goal of this release is to get more
exposure and hopefully more people helping out with the development.
Even though this is a development release, the program itself is already
quite stable and is used by various people already to develop their
programs.

The goal of Scaffold is to provide the GNOME developers an integrated
environment in which they can develop (primarily) GNOME programs. To
this end, Scaffold uses various GNOME (based) technologies:

- Glimmer: a bonobo editor component based on GtkSourceView for
displaying syntax-highlighted documents.
- Gnome-build: a GObject-based framework for managing projects and
specifically automake/conf-based projects.
- Gdl: a support library providing common widgets and objects such as a
docking widget, symbol browser and various other small utility objects.


* What can it do ?
==================

>From the bottom up, Scaffold uses a plugin system where everything
except an empty main window is implemented using plugins. This allows
users to load/unload plugins on-the-fly. The two main plugins are the
document-manager and the project-manager.

The document-manager can display a document using any of the bonobo
components on the system which support the mimetype. An example of this
is that you can use the Eye Of Gnome (eog) component to display a .png
file.

The project-manager uses the automake/conf backend in gnome-build to
open projects and add/remove files to/from it. Gnome-build does not
store its own copy of the project: it parses the configure.in and
Makefile.am files to build an internal XML representation of the
project.
The current backend is designed to be as little intrusive as possible.
When the user edits the project, a script analyzes the project files and
makes small changes in a line by line basis, such that the final result
is nearly the same as what you would have done manually.

Version 0.1 also contains some other minor plugins like text,
shell-output, symbol-browser and a terminal plugin. There are other
plugins (like a devhelp plugin), but those are not in use and need work.


* Don't we already have anjuta/Eclipse ?
========================================

In the beginning, there was gIDE. Then later on anjuta appeared. At one
point a merger between these two projects was announced: anjuta2..
Unfortunately, the merge never really happened due to lack of interest
and the Anjuta team decided to go for a GNOME2 port instead. So recently
we changed the name of the project from anjuta2 to scaffold to avoid any
confusion in the name and distance us from it.
On a technical level, scaffold uses a plugin-based architecture wich
allows for far more flexibility than anjuta, but still lacks in
functionality compared to anjuta. This will hopefully change as more
people help out (This means YOU! ;) ). Scaffold also holds the HIG in
high regard.

Eclipse is also a plugin-based framework, but more focused on Java
development and less so on GNOME2. Scaffold is from the ground up a
GNOME2 project, with use of GConf, libglade, GtkSourceView, GdlDock etc.

* What can i work on ?
======================

There's lots of work left to do, as we lack a lot of functionality and
IDE-must-have features.  Here's a rather ambitious list of things
interested people can work on:

Major:
- Rewrite gnome-debug (Debugger!) to GNOME2 and make it use the GDB
Machine Interface (?) like Eclipse does. Perhaps look at the new Mono
debugger to see if that can be used as well for non-managed apps.
- Version Control System framework (gnome-vcs?) and specifically a CVS
backend.
- Implement more backends for gnome-build (perhaps an Ant
(http://ant.apache.org) backend), finish the automake/conf backend.
- Support for "CodeInsight" popups and tooltips in glimmer (requires
GtkSourceView work).
- Code folding (again, requires work in GtkSourceView/GtkTextView).
- Glade integration (glade3 is much more componentized and the
developers are willing to work with us to get it integrated in
Scaffold).
- Allow plugins to be written in Python and C# (Mono)
- Integration of tools such as memprof, valgrind/alleyoop.

Minor:
- The docking widget needs a better titlebar for dock items.
- Devhelp plugin needs work to work with the latest devhelp.
- Help/yelp plugin/documentation.
- TODO plugin (perhaps integrate it with mrproject somehow).
- Additional editors such as a GConf Schema editor (so you don't have to
edit the plain XML).
- Add more .lang files for syntax highlighting in GtkSourceView (C# for
example).
- GObject wizard plugin: easy tool to create a new GObject derived class
instead of copy/pasting/writing it yourself.
- Symbol browser needs serious love.
- Bugzilla integration (probably requires newer bugzilla with some sort
of web service/XML SOAP support).
- Desktop integration (when we have debugging working, make the crash
dialog have a button to open the application in scaffold for example).
- Bug fixes.

Discussion either takes place on the devtools mailing list
(http://mail.gnome.org/mailman/listinfo/gnome-devtools) or in the
#devel-apps channel on irc.gnome.org.

* Where can I get it ?
======================

In order to build & run, you need the following modules (in that order):
- GNOME 2.3 platform
- GDL 0.4.0
- GtkSourceView 0.5.0
- Glimmer 1.99.0
- Gnome-build 0.1.0
- Scaffold 0.1.0

Scaffold only depends on GDL and Gnome-build. Glimmer is a runtime
dependency (it needs a bonobo editor component).

You can download these modules from a GNOME ftp mirror:
http://ftp.gnome.org/pub/GNOME/sources/gdl/0.4/
http://ftp.gnome.org/pub/GNOME/sources/gtksourceview/0.5/
http://ftp.gnome.org/pub/GNOME/sources/glimmer/1.99/
http://ftp.gnome.org/pub/GNOME/sources/gnome-build/0.1/
http://ftp.gnome.org/pub/GNOME/sources/scaffold/0.1/

Thanks to Gustavo Giráldez for helping out with the release notes.

Regards,

Jeroen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]