Development and releases

From gvSIG CE Wiki

Jump to: navigation, search

As an open source project, gvSIG CE depends on contributions from its community to prosper. This section provides information for everyone who wants to get actively involved in developing, growing and improving our software. This includes developers with Java programming skills, but also advanced users who want to report bugs, help improve our web pages or simply learn how to make better use of our Internet resources.

This is a complex development project and it is hard work to keep all documentation accurate and up-to-date. If you find any of the information here lacking or erroneous, please report your suggestions to the developers mailing list. Or better yet: get an account for this wiki and work in your improvements directly!


Contents

Terms and philosophy of development

The gvSIG CE project is open source and developed under the terms of the GNU General Public License (GPL).

As a community-driven project, we aim to follow a development model that is:

Open
Everyone is welcome to join and contribute. Both short (e.g. inclusion of small patches) and long term (e.g. design of new features) issues are discussed openly and all interested parties will have a voice in the decision making process.
Inclusive
New developers are always welcome, regardless of their skill level. We consider this project a learning experience for all involved.
Agile
Contributions will be included without much fuzz. Peer review is done by the entire community. We all value thorough and well-documented work -- but we value useful and working software even more!
Enjoyable
Zero bureaucracy, frequent releases, learning-by-doing.

Some important things to keep in mind: As an open source project that produces completely free software, nobody on this project owes anything to anybody else. Unless a developer is hired to work under specific contract terms, there is no obligation to produce anything, fix any bugs or stick to any time table. As a developer working in this project, you are expected to keep this in mind and to be willing to make an effort of your own first, before you ask others to solve technical problems. This includes using all available project resources and the willingness to go through the same time-consuming self-teaching process that all open source developers have to go through.

Please see our Guidelines for good software for some general advice on designing new features or improving existing ones.

Resources for developers/contributors

This project, including its source code and all web pages, is generously hosted by Sourceforge.net (SF.net). In order to get started with gvSIG CE development, you will first need to know some basic facts about the SF.net services we use. The information below is also valuable to other contributors, such as advanced users who wish to report bugs or content contributors to the web sites.

Some pointers to get you on your way:

Additional information (for web administrators):

The gvSIG CE project site on SF.net is here.

If there are any problems with the SF.net services (downtime, slow web sites, etc.), then chances are the reasons will be reported on the Site Status page.

We also have continuously updated Javadoc API pages.

Compiling and running gvSIG CE

As a developer or interested advanced user, you will probably want to know how to compile the source code (and run the resulting binaries on your system). Most of gvSIG consists of Java (1.6) code. But the support libraries for raster data (GDAL/OGR), as well as the GRASS and SAGA GIS modules (to be used with SEXTANTE) are written in C/C++. Thus, the entire compilation procedure is lengthy and can be hard to set up. We have tried our best to document all of its aspects on these pages.

Please work through the following from top to bottom, as listed on this page, so that you can build up on previously completed work in the most efficient way.

If you also want to produce your own set of native binaries (raster drivers, GRASS and SAGA), for 32 or 64 bit systems, then you must additionally work through all of the below.

Once you have compiled the Java source code (and perhaps created native binaries), read on below to learn how to create a working gvSIG CE installation (distribution):

And last not least, some tips for fine-tuning an existing gvSIG CE installation

Task views

This section complements the bug tracker by doing something that is difficult to do in a ticket system: It provides a context (both technical and conceptual) for a group of tickets that all relate to a large topic/issue (i.e. a more coherent view on a programming task). Typically, entries represent tasks to restructure, fix and substantially improve existing functionality.

Special topics

This section lists a number of advanced topics to be taken into consideration and/or worked on for future releases.

Release planning

The diagram (click thumbnail image to enlarge) shows the planned development and release paths for gvSIG CE. Every stable version, suitable for use in a production environment, has an even minor version (including "0"). So 1.0, 1.2, etc. will be stable versions, with the revision number indicating updates (e.g. 1.0.1). Odd minor versions (e.g. 1.1) indicate branches that are under heavy development. These are intended for developers and testers only. Following the GvSIG CE Code Sprint in Munich, there will be only two branches: 1.0 and 1.1.

CE devel paths.jpg

The next release will be a beta release for 1.0. Shortly after this, we plan to release version 1.0. It will feature many bug fixes, user interface improvements, and some new/updated extensions (most importantly, a new version of SEXTANTE, OpenCAD and NavTable).

All heavy refactoring of the code and all elimination of unmaintained extensions, drivers, etc. ("clean-ups") will happen in the unstable 1.1 branch. That branch will also serve as the basis for integration of the GeoTools libraries, which will allow us to "outsource" much functionality to external projects. While under development, version 1.1 will lack some features and drivers that have to be dropped due to unclear ownership and/or unfeasible costs of maintenance, such as the native DXF and DWG drivers. By the time 1.2 gets released, there will be alternatives based on GeoTools and/or other 3rd party libraries. We will only carry those interface translations into 1.2 that are actively maintained by the community.

Critical bug fixes and useful improvements will be applied to the stable and unstable branches, to keep them sychronized as much as possible.

At some point, we will concentrate our development efforts on the 1.1 branch, in order to produce the first stable 1.2 release. From that point on, only critical bug fixes will be applied to the 1.0.x branch.

GvSIG CE 1.0.0 will be released soon, as can be seen on the roadmap: http://gvsigce.sourceforge.net/mantis/roadmap_page.php

gvSIG CE 1.0.0 (Berlin) Beta 1

Next Release