Difference between revisions of "Building Glimpse"

From GlimpseWiki
Jump to navigation Jump to search
(Clarified versioning strategy)
(Clarified versioning strategy)
Line 24: Line 24:
 
Glimpse 0.x releases are always based on the GNU Image Manipulation Program 2.10, and we anticipate that 1.x releases will be based on the GNU Image Manipulation Program 3.0.
 
Glimpse 0.x releases are always based on the GNU Image Manipulation Program 2.10, and we anticipate that 1.x releases will be based on the GNU Image Manipulation Program 3.0.
   
There is a separate stream working in parallel on a potential rewrite that may one day form our 2.x releases. See [[Hard Fork]] for more details about ideas being generated that could be backported into Glimpse 1.x releases.
+
There is a separate stream working in parallel on a potential rewrite for the front-end UI and plugin wrapper that may one day form our 2.x releases. See [[Hard Fork]] for more details about ideas being generated that could be backported into Glimpse 1.x.
   
 
== Version Control ==
 
== Version Control ==

Revision as of 05:04, 22 September 2019

First Principles

There are several components of the Glimpse source code that must be built in a specific order.

Component Purpose Link
BABL Converts between different image formats and color spaces http://www.gegl.org/babl/
MyPaint Provides different different brushes and image editing components http://mypaint.org/
GEGL Core engine for non-destructive image editing and processing. Requires BABL http://www.gegl.org/
Glimpse Front end UI wrapper and plug-in framework based on the GNU Image Manipulation Program. Requires GEGL and MyPaint https://glimpse-editor.org

We stick to tagged versions of each component so builds can still be reproduced at a later date. That approach also ensures Glimpse development is never blocked by unanticipated upstream changes.

Release Status GNU IMP BABL MyPaint GEGL
Glimpse 0.1 In Development 2.10.12 0.1.68 1.3.0 0.4.16

Glimpse 0.x releases are always based on the GNU Image Manipulation Program 2.10, and we anticipate that 1.x releases will be based on the GNU Image Manipulation Program 3.0.

There is a separate stream working in parallel on a potential rewrite for the front-end UI and plugin wrapper that may one day form our 2.x releases. See Hard Fork for more details about ideas being generated that could be backported into Glimpse 1.x.

Version Control

The source code we maintain is available at https://github.com/glimpse-editor/Glimpse. We maintain three locked branches:

Branch name Purpose
main Current stable release code for Glimpse 0.1 (TODO)
dev-g210 Latest development changes based on the GNU Image Manipulation Program 2.10
dev-g30 Latest development changes based on the GNU Image Manipulation Program 3.0 (TODO)

You should ignore any other branches you see as they will usually be related to a pull request, and as a result they may not build and will usually be deleted once the changes have been merged into the development branch.

We have added the components that Glimpse project does not maintain as git submodules already preset at the correct tagged versions. This is provided for convenience so that you do not need to clone them separately and can have confidence that changes in the upstream "master" branches are not affecting your builds.

Build Tools

Because Glimpse 0.x is forked from the GNU Image Manipulation Program 2.10.12, we use Autotools and other programs contained within the GNU Build System. This also applies to the tagged versions of BABL, MyPaint and GEGL that we rely on.

When the GNU Image Manipulation Program 3.0 is released in 2020, that code will require Meson, an entirely different build system. If you do not stick to tagged releases of the components the Glimpse source code relies on, our documented build instructions will not work.

The Glimpse project and community can offer assistance with the instructions provided on https://wiki.glimpse-editor.org. If you choose to follow the upstream documentation instead and run into problems, we may not be able to help you.