Development and releases

From gvSIG CE Wiki

(Difference between revisions)
Jump to: navigation, search
(Release planning)
(Special topics)
 
(21 intermediate revisions not shown)
Line 30: Line 30:
*[[Getting started with SF.net]] (essential reading for new developers)
*[[Getting started with SF.net]] (essential reading for new developers)
*[[How to report bugs]] (for everyone who wishes to help improving gvSIG CE)
*[[How to report bugs]] (for everyone who wishes to help improving gvSIG CE)
 +
*[[Customizing gvSIG CE]] (for direct access to configuration and GUI settings)
*[[How to make patches]] (for new developers and sporadic contributors)
*[[How to make patches]] (for new developers and sporadic contributors)
*[[Synchronizing gvSIG CE]] (working in changes from other versions of gvSIG)
*[[Synchronizing gvSIG CE]] (working in changes from other versions of gvSIG)
Line 35: Line 36:
*[[Documenting your work]] (don't risk losing track of it)
*[[Documenting your work]] (don't risk losing track of it)
*[[Programming for gvSIG CE]] (introduction to the API)
*[[Programming for gvSIG CE]] (introduction to the API)
 +
*[[How to update the EPSG database]] (keep spatial reference systems up-to-date)
Additional information (for web administrators):
Additional information (for web administrators):
Line 58: Line 60:
*[[Setting up Eclipse]] (essential first steps)
*[[Setting up Eclipse]] (essential first steps)
*[[Compiling the Java sources]] (including SEXTANTE and other external projects)
*[[Compiling the Java sources]] (including SEXTANTE and other external projects)
-
*[[Running gvSIG CE]] (creating a binary distribution)
 
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.
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.
Line 64: Line 65:
*[[Setting up the GNU Compiler Collection]] (for producing native binaries in 32 and 64 bit)
*[[Setting up the GNU Compiler Collection]] (for producing native binaries in 32 and 64 bit)
*[[Getting started with MSYS]] (for Windows users and those with little command line knowledge)
*[[Getting started with MSYS]] (for Windows users and those with little command line knowledge)
-
*[[Compiling the C/C++ support libraries]] (native binaries; for raster support, GRASS and SAGA)
+
*[[Compiling the C/C++ support libraries]] (native binaries; GDAL/OGR; GRASS and SAGA)
*[[Compiling GRASS GIS]] (to run under SEXTANTE)
*[[Compiling GRASS GIS]] (to run under SEXTANTE)
*[[Compiling SAGA GIS]] (to run under SEXTANTE)
*[[Compiling SAGA GIS]] (to run under SEXTANTE)
-
*[[Distributing the native binaries]] (where to put all the stuff in a gvSIG distribution)
 
-
And last not least, some tips for fine-tuning a gvSIG installation
+
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):
 +
 
 +
*[[Running gvSIG CE]] (creating a binary distribution)
 +
 
 +
And last not least, some tips for fine-tuning an existing gvSIG CE installation
*[[Java VM Tuning]] (how to get the best run-time experience)
*[[Java VM Tuning]] (how to get the best run-time experience)
-
=Compilation issues=
+
=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.
 +
 
 +
*[[View navigation]] (tools for panning and zooming in different contexts)
 +
*[[Annotation (single labels)]] (Improving the existing UI and workflow for placing and modifying annotations)
 +
*[[PostGIS 2.x update]] (improving driver, capabilities and GUI)
 +
*[[3D data support]] (pseudo and real 3D concepts)
 +
 
 +
=Special topics=
-
This section lists a number of tricky issues that may need attention when updating the gvSIG sources
+
This section lists a number of advanced topics to be taken into consideration and/or worked on for future releases.
-
or compiling them for specific targets/operating systems.
+
*[[Java Advanced Imaging (JAI) and 64 bit]] (how to get JAI to work with a 64 bit JDK)
*[[Java Advanced Imaging (JAI) and 64 bit]] (how to get JAI to work with a 64 bit JDK)
*[[Updating the JTS (Java Topology Suite) JARs]] (used by gvSIG and SEXTANTE)
*[[Updating the JTS (Java Topology Suite) JARs]] (used by gvSIG and SEXTANTE)
 +
*[[Modifying the parser for vector feature label and filter expressions (extSymbology)]]
 +
*[[Guidelines for designing GUI elements]] (creating usable dialogs and other widgets)
 +
*[[Performance: Multi-threaded operations]] (multi-core CPU and GPU support)
 +
*[[Survey device protocols]] (list of devices that can send coordinates, such as total stations, and their protocols)
 +
*[[Geometry Management]] (notes on the updated API for vector feature geometries)
=Release planning=
=Release planning=
Line 100: Line 117:
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.
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.
-
We plan to release the first beta version of 1.0 in November 2012 and the final version 1.0 before the end of that year.
+
GvSIG CE 1.0.0 will be released soon, as can be seen on the roadmap: http://gvsigce.sourceforge.net/mantis/roadmap_page.php
-
 
+
-
There is currently no release time plan for version 1.2.
+
*[[Release preparation]] (important chores before a new release)
*[[Release preparation]] (important chores before a new release)
-
*[[Next release announcement]] (the announcement text to ship with the next release)
+
 
 +
== gvSIG CE 1.0.0 (Berlin) Beta 1 ==
 +
 
 +
*[[gvSIG CE 1.0.0 beta 1 release notes]]
 +
 
 +
== Next Release ==
 +
 
 +
*[[Next release announcement]] (the announcement text/notes to ship with the next release)
[[Category: Development]]
[[Category: Development]]

Latest revision as of 09:24, 24 August 2017

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