Jogamp Versioning and Releases: Difference between revisions

From JogampWiki
Jump to navigation Jump to search
No edit summary
 
(58 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__TOC__
__TOC__
== Semantic Version Numbers ==
Given a version number MAJOR.MINOR.PATCH, increment the:
* MAJOR version indicates major incompatible API changes,
* MINOR version indicates minor incompatible API changes, and
* PATCH version indicates backwards-compatible bug fixes or added backwards-compatible functionality, i.e. these versions are binary compatible and a drop-in replacement.
Above semantics describe binary compatibility,
i.e. whether a new version can be used without recompilation (PATCH increment only).
Above semantics differ from [http://semver.org/ Semantic Versioning] since our MINOR
change allows minor incompatible API changes.
An example of a MAJOR incompatible API increment is JOGL 1.y.z -> 2.y.z,
where we thoroughly change the OO model, packaging, implementation or overall semantics.
Upgrading to a MINOR incompatible API increment of JogAmp
shall assure users that the model has not changed and the differences are indeed minor.
Hence a PATCH increment not only allows bugfixes but also
additional functionality, both backwards-compatible.
Note that manual test results showed that <i>none</i> of our 2.1 PATCH incrementing releases
were satisfying above semantics and hence incompatibilities could appear.
While this might be unlikely, the tests exposed at least removed protected fields or methods
at some uncommon places and hence compatibility was broken.
From version 2.2.0 on, we incorporate [https://github.com/jeluard/semantic-versioning semver]
in our JogAmp junit tests to guarantee automated validation and proper version increments.
See [{{SERVER}}/bugzilla/show_bug.cgi?id=1008 Bug 1008].


== Releases ==
== Releases ==


=== [[Release 2.0-rc1|2.0-rc1]] ===
* [[Release 2.5.0|2.5.0]], [[Release 2.4.0|2.4.0]]
* [[Release 2.3.2|2.3.2]], [[Release 2.3.1|2.3.1]], [[Release 2.3.0|2.3.0]]
* [[Release 2.2.4|2.2.4]], [[Release 2.2.3|2.2.3]], [[Release 2.2.2|2.2.2]], [[Release 2.2.1|2.2.1]], [[Release 2.2.0|2.2.0]]
* [[Release 2.1.5|2.1.5]], [[Release 2.1.4|2.1.4]], [[Release 2.1.3|2.1.3]], [[Release 2.1.2|2.1.2]], [[Release 2.1.1|2.1.1]], [[Release 2.1.0|2.1.0]]
* [[Release 2.0.2|2.0.2]]
** [[Release 2.0.2-rc12|2.0.2-rc12]],[[Release 2.0-rc11|2.0-rc11]],[[Release 2.0-rc10|2.0-rc10]], [[Release 2.0-rc9|2.0-rc9]], [[Release 2.0-rc8|2.0-rc8]], [[Release 2.0-rc7|2.0-rc7]], [[Release 2.0-rc6|2.0-rc6]], [[Release 2.0-rc5|2.0-rc5]], [[Release 2.0-rc4|2.0-rc4]], [[Release 2.0-rc3|2.0-rc3]], [[Release 2.0-rc2|2.0-rc2]], [[Release 2.0-rc1|2.0-rc1]]
 
[[Android Packages]]
 
=== Current Aliases ===
 
* [http://jogamp.org/deployment/jogamp-current/ jogamp-current] -> [http://jogamp.org/deployment/v2.5.0/ v2.5.0]
* [http://jogamp.org/deployment/jogamp-next/ jogamp-next] -> [http://jogamp.org/deployment/v2.5.0/ v2.5.0]
* [http://jogamp.org/deployment/webstart/ webstart] -> [http://jogamp.org/deployment/v2.5.0/ v2.5.0]
* [http://jogamp.org/deployment/webstart-next/ webstart-next] -> [http://jogamp.org/deployment/v2.5.0/ v2.5.0]


== Release Classification ==
== Release Classification ==
Line 11: Line 58:
The following list is ordered from <i>stable and oldest</i> to <i>experimental and newest</i>.
The following list is ordered from <i>stable and oldest</i> to <i>experimental and newest</i>.


=== [http://jogamp.org/deployment/webstart/ Signed Release] ===
=== [{{SERVER}}/deployment/jogamp-current/ Signed Release] ===
* This is our current signed release, IE a manual promoted and signed autobuild.
* This is our current signed release, IE a manual promoted and signed autobuild.
* As the URL suggests, it is suitable for JNLP and Applets (with or without JNLP).
* It is suitable for JNLP and Applets (with or without JNLP).
* This is the <b>most stable and recommended</b> version.
* This is the <b>most stable and recommended</b> version.
* [{{SERVER}}/deployment/jogamp-current/archive/ Archive folder] containing [[#Release_and_Archived_Files|platform ZIP files]] for manual installation.
* [[Downloading and installing JOGL#Downloading the latest aggregated autobuild|this section]]
* See instructions for  [[Downloading and installing JOGL#Downloading the latest stable version|downloading and installing]].


=== [http://jogamp.org/deployment/webstart-next/ Signed Candidate] ===
=== [{{SERVER}}/deployment/jogamp-next/ Signed Release Candidate] ===
* This is our signed release candidate, IE a manual promoted and signed autobuild.
* This is our signed release candidate, IE a manual promoted and signed autobuild.
* As the URL suggests, it is suitable for JNLP and Applets (with or without JNLP).
* It is suitable for JNLP and Applets (with or without JNLP).
 
* [{{SERVER}}/deployment/jogamp-next/archive/ Platform ZIP archive's URL] for manual installation.
=== [http://jogamp.org/deployment/jogamp-next/ Candidate] ===
* [{{SERVER}}/deployment/jogamp-next/archive/ Archive folder] containing [[#Release_and_Archived_Files|platform ZIP files]] for manual installation.
* This is our unsigned release candidate, IE a manual promoted autobuild.
* See instructions for  [[Downloading and installing JOGL#Downloading the latest stable version|downloading and installing]].


=== [http://jogamp.org/deployment/autobuilds/ Autobuilds] ===
=== [{{SERVER}}/deployment/v2.0-rc3/ Signed Release Specific Version] ===
* What others call <i>nightlies</i>, we call it autobuild.
* This is a specific signed release, IE a manual promoted autobuild.
* Autobuilds are provided by our [http://jogamp.org/chuck/job/jogl/ hudson build server],
* It is suitable for JNLP and Applets (with or without JNLP).
* they are [http://jogamp.org/chuck/job/jogl/211/changes#detail0 triggered by git commits]  
* [{{SERVER}}/deployment/v2.0-rc3/archive/ Archive folder] containing [[#Release_and_Archived_Files|platform ZIP files]] for manual installation.
* and build on all supported platforms. Have a look at a [http://jogamp.org/chuck/job/jogl/211/ hudson report] if you like.
* See instructions for  [[Downloading and installing JOGL#Downloading the latest stable version|downloading and installing]].


Here is a [http://jogamp.org/chuck/job/jogl/changes list of all JOGL changes, for example].
===  [{{SERVER}}/deployment/archive/master/?C=M;O=D Latest Aggregated Autobuild] ===
* This is our latest aggregated autobuild, which we seem fit for broad testing and submitting a [[Jogl FAQ#Bugreports & Testing|bugreport]].
* It is not signed and hence not suitable for JNLP and Applets.
* See instructions for  [[Downloading and installing JOGL#Downloading the latest aggregated autobuild|downloading and installing]].


These builds are also tested on all supported platforms automatically with junit.
=== [{{SERVER}}/deployment/autobuilds/ Autobuilds] ===
Here is a [http://jogamp.org/chuck/job/jogl/label=windows-x86_32/lastCompletedBuild/testReport/ complete test report from one platform].
What others call <i>nightlies</i>, we call it autobuild.
Autobuilds are provided by our [{{SERVER}}/chuck/job/jogl/ Jenkins build server]:
* For [{{SERVER}}/chuck/job/jogl/ each project build reports] are available:
** [{{SERVER}}/chuck/job/jogl/lastSuccessfulBuild/ Last Successful JOGL Build]
** [{{SERVER}}/chuck/job/jogl/476/ JOGL Build 476]
* They are [{{SERVER}}/chuck/job/jogl/476/changes#detail0 triggered by git commits]
* Here is a [{{SERVER}}/chuck/job/jogl/changes list of all JOGL changes].
* These builds are also tested on all supported platforms automatically with junit, see a [{{SERVER}}/chuck/job/jogl/label=win7-x86_64-nvida/lastCompletedBuild/testReport/ complete test report from one platform].
* [{{SERVER}}/deployment/autobuilds/master/jogl-b485-2011-09-20_08-30-36/ Autobuild URL] containing [[#Autobuild_Files|platform ZIP files]] for manual installation.


=== [http://jogamp.org/deployment/archive/ Archived builds] ===
=== [{{SERVER}}/deployment/archive/ Archived builds] ===
It is what it says, archived releases, which might have been signed.
* Contains archived builds and releases.
* May be signed.
* [{{SERVER}}/deployment/archive/rc/gluegen_28-joal_17-jogl_41-jocl_25/archive/ archive URL] containing [[#Release_and_Archived_Files|platform ZIP files]] for manual installation.


== Version Classification ==
== Version Classification ==
Line 52: Line 115:
<pre>
<pre>
   <module>-<base_version>-b<build_number>-<yyyymmdd>
   <module>-<base_version>-b<build_number>-<yyyymmdd>
</pre>
[http://jogamp.org/deployment/autobuilds/jogl-b209-2010-11-09_22-35-00/ Platform ZIP files]
are named in such fashion, plus contain the platform information, OS and ARCH:
<pre> 
  jogl-2.0-b210-20101110-linux-amd64.zip
</pre>
</pre>


Line 63: Line 120:


The version fingerprint is available in the  
The version fingerprint is available in the  
[http://jogamp.org/deployment/autobuilds/jogl-b209-2010-11-09_22-35-00/artifact.properties artifact.properties] file:
[{{SERVER}}/deployment/autobuilds/master/jogl-b485-2011-09-20_08-30-36/artifact.properties artifact.properties] file:
<pre>
<pre>
gluegen.build.number=200
gluegen.build.branch=origin/master
gluegen.build.id=2010-11-09_22-30-24
gluegen.build.commit=3fec08a69de571cf2939e6028487faea8a23ccaa
gluegen.build.branch=master
gluegen.build.id=2013-11-01_05-57-23
gluegen.build.commit=92e1e8b24d128e08f13b05bd630ad7b0bf1cbf9f
gluegen.build.number=741
jogl.build.number=209
gluegen.build.version=2.1.2
jogl.build.id=2010-11-09_22-35-00
jogl.build.branch=origin/master
jogl.build.branch=master
jogl.build.commit=3ed74abaddb90cb537897b9928e923be50f7f99f
jogl.build.commit=4ea473a2cbf59fcbd8e82d26da389cd8c2b4a291
jogl.build.id=2013-11-01_19-08-47
jogl.build.number=1135
jogl.build.version=2.1.2
</pre>
</pre>


We deploy artifacts.properties in the online [http://jogamp.org/deployment/autobuilds/jogl-b209-2010-11-09_22-35-00/ build folder]
We deploy artifacts.properties in the online [{{SERVER}}/deployment/autobuilds/master/jogl-b485-2011-09-20_08-30-36/ build folder]
and within the platform ZIP archives.
and within the platform ZIP archives.


Line 85: Line 144:
<pre>
<pre>
Manifest-Version: 1.0
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_21-b06 (Sun Microsystems Inc.)
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Application-Name: Java Bindings for OpenGL
Specification-Title: Java Bindings for OpenGL API Specification
Specification-Title: Java Bindings for OpenGL API Specification
Specification-Version: 2.0
Specification-Version: 2.1
Specification-Vendor: JogAmp community
Specification-Vendor: JogAmp Community
Implementation-Title: Java Bindings for OpenGL Runtime Environment
Implementation-Title: Java Bindings for OpenGL Runtime Environment
Implementation-Version: 2.0-b209-20101110
Implementation-Version: 2.1.2
Implementation-Branch: master
Implementation-Build: 2.1-b1135-20131101
Implementation-Commit: 4ea473a2cbf59fcbd8e82d26da389cd8c2b4a291
Implementation-Branch: origin/master
Implementation-Vendor: JogAmp community
Implementation-Commit: 3ed74abaddb90cb537897b9928e923be50f7f99f
Implementation-Vendor: JogAmp Community
Implementation-URL: http://jogamp.org/
Extension-Name: javax.media.opengl
Extension-Name: javax.media.opengl
Implementation-Vendor-Id: com.jogamp
Implementation-Vendor-Id: com.jogamp
Trusted-Library: true
Trusted-Library: true
Permissions: all-permissions
Codebase: *.jogamp.org
</pre>
</pre>
You can also verify the hudson build and test on our
[http://jogamp.org/chuck/job/jogl/ hudson server].
Here is the [http://jogamp.org/chuck/job/jogl/209/ hudson report] for the above mentioned build 209,
which also links directly to the github source code repository.


Each module has also a base version, like major and minor, ie 2.0,
Each module has also a base version, like major and minor, ie 2.0,
Line 110: Line 169:
==== Runtime Version Check ====
==== Runtime Version Check ====


Each module has a build in VersionInfo class with a static main entry,
Each module has a build in [http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/util/JogampVersion.html JogampVersion] specialization with a static <code>getInstance()</code> method to access the singleton instance,
ie com.jogamp.common.util.VersionInfo (gluegen), or com.jogamp.opengl.util.VersionInfo (JOGL).
eg. for the [http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/GlueGenVersion.html#getInstance%28%29 GlueGenVersion] or [http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/opengl/JoglVersion.html#getInstance%28%29 JoglVersion]. You may utilize the version information from within your application in a programmatic manner. For the latter you may find the [http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/os/Platform.html Platform] information useful as well.
 
Each module's [http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/com/jogamp/common/util/JogampVersion.html JogampVersion] specialization also contain a static main entry allowing you to retrieve the version information at runtime as described below.


When invoked, ie via JOGL's platform ZIP file:
When invoked, ie via JOGL's platform ZIP file:
* etc/test.sh (Unixoid), or  
* sh etc/test.sh (Unixoid), or  
* etc\test.bat (Windows)
* etc\test.bat (Windows)
you will see the full dump of the runtime platform and the above mentioned version footprint.
you will see the full dump of the runtime platform and the above mentioned version footprint.


<pre>
<pre>
JOGL Platform: Linux 2.6.35.7-x86_64-k10-x8-risa (os), amd64 (arch)
-----------------------------------------------------------------------------------------------------
JOGL Platform: littleEndian true, 32Bit false, a-ptr bit-size 64
Platform: LINUX / Linux 3.11.6-x64-k10-nlb-jau01 (3.11.6), amd64 (arch), GENERIC_ABI, 8 cores
JOGL Platform: Java 1.6.0_21, Sun Microsystems Inc., http://java.sun.com/, is JavaSE: true
MachineDescription: runtimeValidated true, littleEndian true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16  2 / 2
  int    4 / 4, long    8 / 8
  int32  4 / 4, int64  8 / 8
  float  4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
Platform: Java Version: 1.7.0_45 (1.7.0u45), VM: Java HotSpot(TM) 64-Bit Server VM, Runtime: Java(TM) SE Runtime Environment
Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.2
Implementation Build: 2.1-b741-20131101
Implementation Branch: origin/master
Implementation Commit: 3fec08a69de571cf2939e6028487faea8a23ccaa
-----------------------------------------------------------------------------------------------------
Package: javax.media.opengl
Extension Name: javax.media.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.2
Implementation Build: 2.1-b1135-20131101
Implementation Branch: origin/master
Implementation Commit: 3ed74abaddb90cb537897b9928e923be50f7f99f
-----------------------------------------------------------------------------------------------------
 
GLProfiles on device X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x207fd4ec, isOwner false, <2873e29f, 50234978>[count 0, qsz 0, owner <NULL>]]]
    Natives
        GL4bc  true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL4 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES3  false
        GL3bc  true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL3 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL2 true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES2  true [2.0 (ES profile, ES2 compat, FBO, software)]
        GLES1  true [1.0 (ES profile, FP32 compat, software)]
        Count  7 / 8
    Common
        GL4ES3  true
        GL2GL3  true
        GL2ES2  true
        GL2ES1  true
    Mappings
        GL2ES2  GLProfile[GL2ES2/GL4.hw]
        GL2ES1  GLProfile[GL2ES1/GL4bc.hw]
        GL2 GLProfile[GL2/GL4bc.hw]
        GL4 GLProfile[GL4/GL4.hw]
        GL3 GLProfile[GL3/GL4.hw]
        GL4bc  GLProfile[GL4bc/GL4bc.hw]
        GLES2  GLProfile[GLES2/GLES2.sw]
        GLES1  GLProfile[GLES1/GLES1.sw]
        GL4ES3  GLProfile[GL4ES3/GL4.hw]
        GL2GL3  GLProfile[GL2GL3/GL4bc.hw]
        GL3bc  GLProfile[GL3bc/GL4bc.hw]
        default GLProfile[GL4bc/GL4bc.hw]
        Count  11 / 12


JOGL package javax.media.opengl
 
JOGL Implementation-Title = Java Bindings for OpenGL Runtime Environment
Desktop Capabilities:
JOGL Implementation-Version = 2.0-b211-20101110
    GLCaps[glx vid 0x21, fbc 0x105: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[fbo, pbuffer, bitmap]]
JOGL Specification-Vendor = JogAmp Community
    .....
JOGL Manifest-Version = 1.0
 
JOGL Created-By = 1.6.0_21-b06 (Sun Microsystems Inc.)
Requesting: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
JOGL Implementation-Vendor = JogAmp Community
-----------------------------------------------------------------------------------------------------
JOGL Implementation-Commit = 0893339854e3f4a4fab7b19e073304973e763b10
X11GraphicsDevice[type .x11, connection :0]:
JOGL Ant-Version = Apache Ant 1.8.0
    Natives
JOGL Implementation-Vendor-Id = com.jogamp
        GL4bc  true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
JOGL Trusted-Library = true
        GL4 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
JOGL Specification-Title = Java Bindings for OpenGL API Specification
        GLES3  false
JOGL Implementation-Branch = master
        GL3bc  true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
JOGL Specification-Version = 2.0
        GL3 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
JOGL Extension-Name = javax.media.opengl
        GL2 true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES2  true [2.0 (ES profile, ES2 compat, FBO, software)]
        GLES1  true [1.0 (ES profile, FP32 compat, software)]
        Count  7 / 8
    Common
        GL4ES3  true
        GL2GL3  true
        GL2ES2  true
        GL2ES1  true
    Mappings
        GL2ES2  GLProfile[GL2ES2/GL4.hw]
        GL2ES1  GLProfile[GL2ES1/GL4bc.hw]
        GL2 GLProfile[GL2/GL4bc.hw]
        GL4 GLProfile[GL4/GL4.hw]
        GL3 GLProfile[GL3/GL4.hw]
        GL4bc  GLProfile[GL4bc/GL4bc.hw]
        GLES2  GLProfile[GLES2/GLES2.sw]
        GLES1  GLProfile[GLES1/GLES1.sw]
        GL4ES3  GLProfile[GL4ES3/GL4.hw]
        GL2GL3  GLProfile[GL2GL3/GL4bc.hw]
        GL3bc  GLProfile[GL3bc/GL4bc.hw]
        default GLProfile[GL4bc/GL4bc.hw]
        Count  11 / 12
 
GL Profile    GLProfile[GL4bc/GL4bc.hw]
GL Version    4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware) - 4.4.0 NVIDIA 331.13 [GL 4.4.0, vendor 331.13.0 (NVIDIA 331.13)]
Quirks        []
Impl. class    jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR      NVIDIA Corporation
GL_RENDERER    GeForce GTX 660/PCIe/SSE2
GL_VERSION    4.4.0 NVIDIA 331.13
GLSL          true, has-compiler-func: true, version: 4.40 NVIDIA via Cg compiler / 4.40.0
GL FBO: basic true, full true
GL_EXTENSIONS  292
GLX_EXTENSIONS 28
-----------------------------------------------------------------------------------------------------
Requested: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
Chosen  : GLCaps[glx vid 0x27, fbc 0x10d: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
GL impl. class jogamp.opengl.gl4.GL4bcImpl
GL4ES3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl
GL3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl
 
</pre>
The dump is hold in the file <pre>test.log</pre> which you should send to us in case of a bugreport.
 
===== Runtime Debug Logs =====
 
You may also like to send us the debug version:
* sh etc/test_dbg.sh (Unixoid), or
* etc\test_dbg.bat (Windows)
which produces the file <pre>test_dbg.log</pre> and should be send to us to complete the bugreport as well.
 
==== Retrieve Release Version Tag from GIT Hash ====
 
git-show-tags-of-commit.sh
<pre>
#! /bin/sh
 
sha1=$1
shift
 
git show-ref --tags -d | grep ^$sha1 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'
</pre>
</pre>


The dump is hold in the file <pre>test.log</pre>,
JOGL example:
which you should send to us in case of a bugreport.
<pre>
> git-show-tags-of-commit.sh 9ff0b0dafea2a03a915c97eb1513c39c27b6a7ae
v2.0-rc8
</pre>
 
GlueGen example:
<pre>
> git-show-tags-of-commit.sh 4ce601b38ca8418eddbe8cca4d531e6161fae26b
v2.0-rc7
v2.0-rc8
</pre>
 
== Maven ==
See the [[Setting_up_a_JogAmp_project_in_your_favorite_IDE#Maven|maven instructions]] for a guide to using Jogamp in
Maven projects.
 
== Autobuild Files ==
[{{SERVER}}/deployment/autobuilds/master/jogl-b485-2011-09-20_08-30-36/ Autobuild Platform ZIP files] for each module
follow the [[#Version_Classification|versioning]] scheme plus contain the platform identifier [{{SERVER}}/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NativeJARFileNameConvention OS and ARCH]:
<pre>  
  jogl-2.0-b210-20101110-linux-amd64.zip
</pre>
 
== Release and Archived Files ==
The [{{SERVER}}/deployment/jogamp-current/archive/ release archive folder]
contains 7z archive files for each platform containing all modules, ie. ''jogamp-linux-'''os.and.arch'''.7z''.
The '''os.and.arch''' refers to the
[{{SERVER}}/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NativeJARFileNameConvention native file naming convention].
 
For example:
* <tt>jogamp-linux-amd64.7z</tt>
* <tt>jogamp-linux-i586.7z</tt>
* <tt>jogamp-windows-amd64.7z</tt>
* <tt>jogamp-windows-i586.7z</tt>
 
The folder also contains the Java API document ZIP files:
* <tt>gluegen-javadoc.zip</tt>
* <tt>jogl-javadoc.zip</tt>
* <tt>jocl-javadoc.zip</tt>
* <tt>joal-javadoc.zip</tt>

Latest revision as of 18:21, 18 August 2023

Semantic Version Numbers

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version indicates major incompatible API changes,
  • MINOR version indicates minor incompatible API changes, and
  • PATCH version indicates backwards-compatible bug fixes or added backwards-compatible functionality, i.e. these versions are binary compatible and a drop-in replacement.

Above semantics describe binary compatibility, i.e. whether a new version can be used without recompilation (PATCH increment only).

Above semantics differ from Semantic Versioning since our MINOR change allows minor incompatible API changes.

An example of a MAJOR incompatible API increment is JOGL 1.y.z -> 2.y.z, where we thoroughly change the OO model, packaging, implementation or overall semantics.

Upgrading to a MINOR incompatible API increment of JogAmp shall assure users that the model has not changed and the differences are indeed minor.

Hence a PATCH increment not only allows bugfixes but also additional functionality, both backwards-compatible.

Note that manual test results showed that none of our 2.1 PATCH incrementing releases were satisfying above semantics and hence incompatibilities could appear. While this might be unlikely, the tests exposed at least removed protected fields or methods at some uncommon places and hence compatibility was broken.

From version 2.2.0 on, we incorporate semver in our JogAmp junit tests to guarantee automated validation and proper version increments.

See Bug 1008.

Releases

Android Packages

Current Aliases

Release Classification

Releases follow the above mentioned versioning scheme.

The following list is ordered from stable and oldest to experimental and newest.

Signed Release

Signed Release Candidate

Signed Release Specific Version

Latest Aggregated Autobuild

  • This is our latest aggregated autobuild, which we seem fit for broad testing and submitting a bugreport.
  • It is not signed and hence not suitable for JNLP and Applets.
  • See instructions for downloading and installing.

Autobuilds

What others call nightlies, we call it autobuild. Autobuilds are provided by our Jenkins build server:

Archived builds

Version Classification

Version Fingerprint

You can get the get the source code via git, hence all references of a JogAmp module version boils down to:

  • module base version
  • git commit sha1 hash
  • build number
  • module OS and ARCH

We construct a full version string as follows:

   <module>-<base_version>-b<build_number>-<yyyymmdd>

artifact.properties

The version fingerprint is available in the artifact.properties file:

gluegen.build.branch=origin/master
gluegen.build.commit=3fec08a69de571cf2939e6028487faea8a23ccaa
gluegen.build.id=2013-11-01_05-57-23
gluegen.build.number=741
gluegen.build.version=2.1.2
jogl.build.branch=origin/master
jogl.build.commit=3ed74abaddb90cb537897b9928e923be50f7f99f
jogl.build.id=2013-11-01_19-08-47
jogl.build.number=1135
jogl.build.version=2.1.2

We deploy artifacts.properties in the online build folder and within the platform ZIP archives.

JAR Manifest

The version fingerprint is also included within each JAR Manifest file, where the Specification-Version equals the module base version and the Implementation-Version equals the above mentioned full version string

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.7.0_45-b18 (Oracle Corporation)
Application-Name: Java Bindings for OpenGL
Specification-Title: Java Bindings for OpenGL API Specification
Specification-Version: 2.1
Specification-Vendor: JogAmp Community
Implementation-Title: Java Bindings for OpenGL Runtime Environment
Implementation-Version: 2.1.2
Implementation-Build: 2.1-b1135-20131101
Implementation-Branch: origin/master
Implementation-Commit: 3ed74abaddb90cb537897b9928e923be50f7f99f
Implementation-Vendor: JogAmp Community
Implementation-URL: http://jogamp.org/
Extension-Name: javax.media.opengl
Implementation-Vendor-Id: com.jogamp
Trusted-Library: true
Permissions: all-permissions
Codebase: *.jogamp.org

Each module has also a base version, like major and minor, ie 2.0, which we may change to emphasize major feature and API changes.

Runtime Version Check

Each module has a build in JogampVersion specialization with a static getInstance() method to access the singleton instance, eg. for the GlueGenVersion or JoglVersion. You may utilize the version information from within your application in a programmatic manner. For the latter you may find the Platform information useful as well.

Each module's JogampVersion specialization also contain a static main entry allowing you to retrieve the version information at runtime as described below.

When invoked, ie via JOGL's platform ZIP file:

  • sh etc/test.sh (Unixoid), or
  • etc\test.bat (Windows)

you will see the full dump of the runtime platform and the above mentioned version footprint.

-----------------------------------------------------------------------------------------------------
Platform: LINUX / Linux 3.11.6-x64-k10-nlb-jau01 (3.11.6), amd64 (arch), GENERIC_ABI, 8 cores
MachineDescription: runtimeValidated true, littleEndian true, 32Bit false, primitive size / alignment:
  int8    1 / 1, int16   2 / 2
  int     4 / 4, long    8 / 8
  int32   4 / 4, int64   8 / 8
  float   4 / 4, double  8 / 8, ldouble 16 / 16
  pointer 8 / 8, page    4096
Platform: Java Version: 1.7.0_45 (1.7.0u45), VM: Java HotSpot(TM) 64-Bit Server VM, Runtime: Java(TM) SE Runtime Environment
Platform: Java Vendor: Oracle Corporation, http://java.oracle.com/, JavaSE: true, Java6: true, AWT enabled: true
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Package: com.jogamp.common
Extension Name: com.jogamp.common
Specification Title: GlueGen Java Bindings Generator
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: GlueGen Run-Time
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.2
Implementation Build: 2.1-b741-20131101
Implementation Branch: origin/master
Implementation Commit: 3fec08a69de571cf2939e6028487faea8a23ccaa
-----------------------------------------------------------------------------------------------------
Package: javax.media.opengl
Extension Name: javax.media.opengl
Specification Title: Java Bindings for OpenGL API Specification
Specification Vendor: JogAmp Community
Specification Version: 2.1
Implementation Title: Java Bindings for OpenGL Runtime Environment
Implementation Vendor: JogAmp Community
Implementation Vendor ID: com.jogamp
Implementation URL: http://jogamp.org/
Implementation Version: 2.1.2
Implementation Build: 2.1-b1135-20131101
Implementation Branch: origin/master
Implementation Commit: 3ed74abaddb90cb537897b9928e923be50f7f99f
-----------------------------------------------------------------------------------------------------

GLProfiles on device X11GraphicsDevice[type .x11, connection :0, unitID 0, handle 0x0, owner false, ResourceToolkitLock[obj 0x207fd4ec, isOwner false, <2873e29f, 50234978>[count 0, qsz 0, owner <NULL>]]]
    Natives
        GL4bc   true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL4 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES3   false
        GL3bc   true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL3 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL2 true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES2   true [2.0 (ES profile, ES2 compat, FBO, software)]
        GLES1   true [1.0 (ES profile, FP32 compat, software)]
        Count   7 / 8
    Common
        GL4ES3  true
        GL2GL3  true
        GL2ES2  true
        GL2ES1  true
    Mappings
        GL2ES2  GLProfile[GL2ES2/GL4.hw]
        GL2ES1  GLProfile[GL2ES1/GL4bc.hw]
        GL2 GLProfile[GL2/GL4bc.hw]
        GL4 GLProfile[GL4/GL4.hw]
        GL3 GLProfile[GL3/GL4.hw]
        GL4bc   GLProfile[GL4bc/GL4bc.hw]
        GLES2   GLProfile[GLES2/GLES2.sw]
        GLES1   GLProfile[GLES1/GLES1.sw]
        GL4ES3  GLProfile[GL4ES3/GL4.hw]
        GL2GL3  GLProfile[GL2GL3/GL4bc.hw]
        GL3bc   GLProfile[GL3bc/GL4bc.hw]
        default GLProfile[GL4bc/GL4bc.hw]
        Count   11 / 12


Desktop Capabilities:
    GLCaps[glx vid 0x21, fbc 0x105: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/8/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[fbo, pbuffer, bitmap]]
    .....

Requesting: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
-----------------------------------------------------------------------------------------------------
X11GraphicsDevice[type .x11, connection :0]:
    Natives
        GL4bc   true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL4 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES3   false
        GL3bc   true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL3 true [4.4 (Core profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GL2 true [4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware)]
        GLES2   true [2.0 (ES profile, ES2 compat, FBO, software)]
        GLES1   true [1.0 (ES profile, FP32 compat, software)]
        Count   7 / 8
    Common
        GL4ES3  true
        GL2GL3  true
        GL2ES2  true
        GL2ES1  true
    Mappings
        GL2ES2  GLProfile[GL2ES2/GL4.hw]
        GL2ES1  GLProfile[GL2ES1/GL4bc.hw]
        GL2 GLProfile[GL2/GL4bc.hw]
        GL4 GLProfile[GL4/GL4.hw]
        GL3 GLProfile[GL3/GL4.hw]
        GL4bc   GLProfile[GL4bc/GL4bc.hw]
        GLES2   GLProfile[GLES2/GLES2.sw]
        GLES1   GLProfile[GLES1/GLES1.sw]
        GL4ES3  GLProfile[GL4ES3/GL4.hw]
        GL2GL3  GLProfile[GL2GL3/GL4bc.hw]
        GL3bc   GLProfile[GL3bc/GL4bc.hw]
        default GLProfile[GL4bc/GL4bc.hw]
        Count   11 / 12

GL Profile     GLProfile[GL4bc/GL4bc.hw]
GL Version     4.4 (Compat profile, arb, ES2 compat, ES3 compat, FBO, hardware) - 4.4.0 NVIDIA 331.13 [GL 4.4.0, vendor 331.13.0 (NVIDIA 331.13)]
Quirks         []
Impl. class    jogamp.opengl.gl4.GL4bcImpl
GL_VENDOR      NVIDIA Corporation
GL_RENDERER    GeForce GTX 660/PCIe/SSE2
GL_VERSION     4.4.0 NVIDIA 331.13
GLSL           true, has-compiler-func: true, version: 4.40 NVIDIA via Cg compiler / 4.40.0
GL FBO: basic true, full true
GL_EXTENSIONS  292
GLX_EXTENSIONS 28
-----------------------------------------------------------------------------------------------------
Requested: GLCaps[rgba 8/8/8/0, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
Chosen   : GLCaps[glx vid 0x27, fbc 0x10d: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]
GL impl. class jogamp.opengl.gl4.GL4bcImpl
GL4ES3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl
GL3 retrieved, impl. class jogamp.opengl.gl4.GL4bcImpl

The dump is hold in the file

test.log

which you should send to us in case of a bugreport.

Runtime Debug Logs

You may also like to send us the debug version:

  • sh etc/test_dbg.sh (Unixoid), or
  • etc\test_dbg.bat (Windows)

which produces the file

test_dbg.log

and should be send to us to complete the bugreport as well.

Retrieve Release Version Tag from GIT Hash

git-show-tags-of-commit.sh

#! /bin/sh

sha1=$1
shift

git show-ref --tags -d | grep ^$sha1 | sed -e 's,.* refs/tags/,,' -e 's/\^{}//'

JOGL example:

> git-show-tags-of-commit.sh 9ff0b0dafea2a03a915c97eb1513c39c27b6a7ae
v2.0-rc8

GlueGen example:

> git-show-tags-of-commit.sh 4ce601b38ca8418eddbe8cca4d531e6161fae26b
v2.0-rc7
v2.0-rc8

Maven

See the maven instructions for a guide to using Jogamp in Maven projects.

Autobuild Files

Autobuild Platform ZIP files for each module follow the versioning scheme plus contain the platform identifier OS and ARCH:

   
   jogl-2.0-b210-20101110-linux-amd64.zip

Release and Archived Files

The release archive folder contains 7z archive files for each platform containing all modules, ie. jogamp-linux-os.and.arch.7z. The os.and.arch refers to the native file naming convention.

For example:

  • jogamp-linux-amd64.7z
  • jogamp-linux-i586.7z
  • jogamp-windows-amd64.7z
  • jogamp-windows-i586.7z

The folder also contains the Java API document ZIP files:

  • gluegen-javadoc.zip
  • jogl-javadoc.zip
  • jocl-javadoc.zip
  • joal-javadoc.zip