What is springboot versioning convention? - java

Can anybody please explain what is the meaning of PRE, SNAPSHOTS, GA and Current for spring-boot versions?
Below is a screenshot of versions shown on spring-boot website.
Also, latest version contains M3 appended in end just before PRE.
Please help!

GA
GA as in general availability are versions that have been released to the public. A version that has had this status for once will never change its contents.
CURRENT
The most recent GA release that should usually be used for all new projects.
PRE
pre release versions will also not change but are only released to let developers test the features of an upcoming GA release. They might contain some bugs that will be fixed in a later pre release of the same version (i.e. bugs in 2.0.0 M1 will probably be fixed in 2.0.0 M2). M is short for milestone.
SNAPSHOT
Same as PRE but this version is usually built every night to include the most recent changes. See this question on more about snapshots. Might also contain bugs.
Version life cycle
The usual life cycle of a single version would be as follows on the example of version 1.0.0:
1.0.0 SNAPSHOT those releases are built every day, replacing earlier snapshots of the same version
1.0.0 M1 once a development milestone was reached a single build is made that is called M#. For the next milestone # is increased by one. Milestones are never overwritten. Snapshots are continued to be made every day.
1.0.0 GA once the last milestone was released and the latest snapshot is feature complete and all known bugs are fixed the general availability release is made. From there on no other Releases of the same version are made, i.e. no more snapshots or milestones.
If bugs are found in a GA release the last version number is increased by one (i.e. 1.0.0 to 1.0.1 and a new release cycle is being started).

Related

Where can I find Google App Engine API for Java release notes

I'm running an old version of appengine-api-1.0-sdk (1.9.54) and want to upgrade to a newer version (1.9.90), but I can't find any list of changes from one version to the next. I would have expected a release note or something in the download, but it just points me to a general Java page for Appengine: https://cloud.google.com/appengine/docs/java/release-notes. This doesn't tell me what has changed from one version of the SDK to the next.
Thanks
Tim
You can use BigQuery to select different points between 2 versions
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=google_cloud_release_notes&t=release_notes&page=table&_ga=2.107183563.811335336.1632571946-1193389554.1631929347

What do all this different versions tell me?

I'm still starting with Spring and I'm asking myself what are all this different hashtags before the version
https://spring.io/projects/spring-hateoas#learn
(GA, Snapshot, PRE..)
Should I always use the current version or how can I understand this?
Your best bet is to use the latest GA which means general availability. Its the latest stable release
PRE is a release candidate. You can look at it as a beta version that is done before a GA so its not stable and might contain breaking changes
SNAPSHOT is the version under development. Do not use this version because it will not be stable and it will change continuously

What means the "M5" or "M6" in Maven Version exactly?

I would like to use a Java library (SpringBoot) in latest version (2.0.0.M6), but I prefer to use only releases. So what means this "M6" in the library version? Is it a pre-release?
Thanks!
It is a Milestone release. The version includes some set of functionality that were released as soon as that set of functionality was complete.
In some organizations, this is considered pre-alpha software, where an alpha release is the first phase to start white-box, and possibly black-box or grey-box testing techniques.
Since these milestones have a number associated with it, this is the sixth milestone. What that means is entirely dependent on the project, and its development / release plan.
For spring-boot specifically, they targeted the completion of these issues to state that they had "achieved" 2.0.0, Milestone 6.
https://github.com/spring-projects/spring-boot/milestone/92?closed=1
In any case, this is pre-release software.

Was Gradle syntax frozen with version 1.0?

I remember issue then I could not perform build with old version 0.7 of Gradle when my colleague was using 0.8...
So was Gradle syntax frozen with version 1.0?
I didn't find such statement in release note...
The 1.x series will see major new features (for example parallel build execution) while at the same time retaining backwards compatibility with 1.0. Once we make the jump to 2.x (which we don't plan to do anytime soon), certain 1.x versions will still be supported for an extended period of time (long-term support model).
It has no evidence. I didn't see any information about frozen api

What's 'API Baseline' in Eclipse PDT

Since upgrading to Eclipse 3.7, the Eclipse PDE plugin wants me to specify an 'API Baseline' for all my Eclipse Plugin projects.
However there seems to be no documentation which actually explains what 'API Baseline' stands for here, and what is it used for.
Could somebody please explain?
API Baseline are intended to help you maintain plugins that others can use. The API Tools help you create compatible API versions. Follow the link that Sumit Singh posted to get an explanation on how to use them.
The Problem:
You create your plugin and release version 1 to the public.
Millions of people will use your plugin and create their own code that depends on the API of your plugin.
You release version 2 to the public. By mistake you change the API of your plugin.
Millions of people update to the new version and have to adapt their code. Thousands of programs fail. People are sad.
The Solution:
You create your plugin, annotate its API and release version 1 to the public.
Millions of people will use your plugin and create their own code that depends on the API of your plugin.
You declare version 1 of your plugin to be the API-Baseline that your code changes are automatically compared against. Any break in the API is presented to you before you release your plugin or run your tests. You release version 2 without any API changes.
Millions of people can update your plugin in their application, because the new plugin release is binary compatible to the previous one.
You declare version 2 of your plugin ....
Summary
If you develop a plugin just for your personal use and are not interested to maintain a compatible API, you can follow the advices to disable the warnings.
When you develop plugins for a community, e. g. the eclipse plugins themselves, it is essential that you keep API incompatibilities to a minimum. Then you will follow the advice and set the baseline to 4.2 when you develop for 4.3. The API tools will help you make 4.3 an enjoyment for all current 4.2 users.
Please note, that the API Tools are for the developers of the plugins that will be used by others. They are not addressed at the users of those plugins.
From the PDE API Tools User Guide:
An API baseline defines the state you want to compare your development workspace bundles against for the purposes of binary compatibility, bundle version numbers, and #since tags. For example, if you are developing bundles for Eclipse 3.4, you will use Eclipse 3.3 as your baseline.

Categories