Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add first draft of maintainer docs #609

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,10 @@ fi
/usr/lib/tmpfiles.d/%{name}.conf

%changelog
# tag::changelog-current[]
* Wed Jan 18 2023 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.18.0.0.10.adopt0
- Eclipse Temurin 11.0.18+10 release.
# end::changelog-current[]
* Thu Oct 25 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.17.0.0.8.adopt0
- Eclipse Temurin 11.0.17+8 release.
* Tue Aug 23 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.16.1.0.1.adopt0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# 17.0.1.0.0___12 == 17.0.1.0.0+12
%global spec_version 17.0.6.0.0.10
%global spec_release 2
%global priority 1161
%global priority 1711

%global source_url_base https://github.com/adoptium/temurin17-binaries/releases/download
%global upstream_version_url %(echo %{upstream_version} | sed 's/\+/%%2B/g')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,10 @@ fi
/usr/lib/tmpfiles.d/%{name}.conf

%changelog
# tag::changelog-current[]
* Wed Jan 18 2023 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.362.0.0.9.adopt0
- Eclipse Temurin 8.0.362-b09 release.
# end::changelog-current[]
* Thu Nov 03 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.352.0.0.8.adopt0
- Eclipse Temurin 8.0.352-b08 release.
* Thu Aug 08 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.345.0.0.1.adopt0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,10 @@ fi
%{prefix}

%changelog
# tag::changelog-current[]
* Wed Jan 18 2023 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.18.0.0.10.adopt0
- Eclipse Temurin 11.0.18+10 release.
# end::changelog-current[]
* Thu Oct 25 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.17.0.0.8.adopt0
- Eclipse Temurin 11.0.17+8 release.
* Tue Aug 23 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 11.0.16.1.0.1.adopt0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,8 +266,10 @@ fi
%{prefix}

%changelog
# tag::changelog-current[]
* Wed Jan 18 2023 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.362.0.0.9.adopt0
- Eclipse Temurin 8.0.362-b09 release.
# end::changelog-current[]
* Thu Nov 03 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.352.0.0.8.adopt0
- Eclipse Temurin 8.0.352-b08 release.
* Thu May 05 2022 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.332.0.0.9.adopt0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,5 +191,7 @@ fi
/usr/lib/tmpfiles.d/%{name}.conf

%changelog
# tag::changelog-current[]
* Mon Jan 30 2023 11:35:00 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.362.0.0.9.adopt0
- Eclipse Temurin JRE 8.0.362-b09 release.
# end::changelog-current[]
3 changes: 3 additions & 0 deletions src/main/docs/.asciidoctorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:toc: left
:toclevels: 5
:icons: font
215 changes: 215 additions & 0 deletions src/main/docs/maintenance.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
= Maintenance
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason for the src/main/docs path? I'd suggest just putting these docs into /docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason for the src/main/docs path? I'd suggest just putting these docs into /docs

No problem, I can move/rename everything. Usually I follow a Maven/Gradle directory scheme, but currently this project is not a typical Java Artefact build project.

This was only a draft to show the overall concept, and to discuss open questions. Please check the open points regarding version strings.

// Change these attributes if desired
:jdk8-full-version: 8.0.362.0.0+9-1
:jdk11-full-version: 11.0.18.0.0+10
:jdk17-full-version: 17.0.6.0.0+10
:jdk19-full-version: 19.0.2.0.0+7-1

Temurin installers need frequent maintenance activities, e.g.,

* When a new JDK version is released, either
** As <<sec:add-new-major-jdk,new major JDK release>>, or
** As <<sec:update-jdk,an update to an existing JDK>>;
* When the current version of a Linux distro (or other supported OS) is at the end of its support window;
* When <<sec:add-new-os,a new OS is added>>, or an existing one will no longer be supported.

In each of these cases a number of actions must be performed.
Even if we automate most of these tasks in the future, they still need to be reviewed.
Hence, the guide will not only help to perform the necessary changes, but to also make sure it's done in a unique way.

As a developer:: you can use this file to navigate to the respective changelog files and add the new entry.
As a reviewer:: you can compare the heads of all changelogs whether they were consistently extended by the developer.


[[sec:add-new-major-jdk]]
== Adding a new major JDK/JRE release

[IMPORTANT]
====
Adding a new major JDK release, e.g., JDK 20, in many cases means to drop the support for an older release (as long as it's no LTS version).
Therefore, you may perform the reverse actions to remove the outdated version as you do to add the new major release.
====

TBD

[[sec:update-jdk]]
== Updating an existing JDK/JRE

=== Update URLs and fingerprints

TBD

=== Change/Review the ChangeLogs

Almost any distro maintains its own source for the change log.
When a new release is created for the upstream tarballs, a new entry needs to be prepended to the existing changelogs.

==== Alpine ChangeLogs

Alpine packages do not contain a change log -> Nothing to do here.

[[sec:debian-changelogs]]
==== Debian/Ubuntu ChangeLogs

The changelog for a new JDK or JRE release should read something like this

[source]
----
temurin-<java-major-version>-{jdk,jre} (<java-full-version>) STABLE; urgency=medium // <1>

* Eclipse Temurin <java-full-version> release.

-- Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> <release-date in UTC> // <2>
----
<1> Question: Where do the exact _full version_ and the appendix like _STABLE; urgency=medium_ come from
<2> The Release date should be the (rough) datetime when the file was updated

A sample entry for Temurin JDK 8 should be

[source, subs="attributes"]
----
temurin-8-jdk ({jdk8-full-version}) STABLE; urgency=medium

* Eclipse Temurin 8.0.362.0.0+9-1 release.

-- Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> Wed, 18 Jan 2023 09:43:20 +0000
----

The respective file entries are

JDK 8::
+
[source]
.JDK 8: Full-Version should be `{jdk8-full-version}`
----
include::../../../linux/jdk/debian/src/main/packaging/temurin/8/debian/changelog[lines=1..5]
----

JRE 8::
+
[source]
.JRE 8: Full-Version should be `{jdk8-full-version}`
----
include::../../../linux/jre/debian/src/main/packaging/temurin/8/debian/changelog[lines=1..5]
----

JDK 11::
+
[source]
.JDK 11: Full-Version should be `{jdk11-full-version}`
----
include::../../../linux/jdk/debian/src/main/packaging/temurin/11/debian/changelog[lines=1..5]
----

JRE 11::
+
[source]
.JRE 11: Full-Version should be `{jdk11-full-version}`
----
include::../../../linux/jre/debian/src/main/packaging/temurin/11/debian/changelog[lines=1..5]
----

JDK 17::
+
[source]
.JDK 17: Full-Version should be `{jdk17-full-version}`
----
include::../../../linux/jdk/debian/src/main/packaging/temurin/17/debian/changelog[lines=1..5]
----

JRE 17::
+
[source]
.JRE 17: Full-Version should be `{jdk17-full-version}`
----
include::../../../linux/jre/debian/src/main/packaging/temurin/17/debian/changelog[lines=1..5]
----

JDK 19::
+
[source]
.JDK 19: Full-Version should be `{jdk19-full-version}`
----
include::../../../linux/jdk/debian/src/main/packaging/temurin/19/debian/changelog[lines=1..5]
----

JRE 19::
+
[source]
.JRE 19: Full-Version should be `{jdk19-full-version}`
----
include::../../../linux/jre/debian/src/main/packaging/temurin/19/debian/changelog[lines=1..5]
----


==== RPM ChangeLogs

New entries for RPM ChangeLogs (for distros Red Hat and SuSE) should have the following form

[source]
----
* Wed Jan 18 2023 Eclipse Adoptium Package Maintainers <temurin-dev@eclipse.org> 8.0.362.0.0.9.adopt0 <1>
- Eclipse Temurin 8.0.362-b09 release. <2>
----
<1> {nbsp}
* The Release date should be the date only (no time) when the file was updated
* Question: Why do we have here another flavor as with <<sec:debian-changelogs,Debian>> (`adopt0` appended)?
<2> Question: Why do we have again a slightly different (but nevertheless duplicate) form of the full version here?

The concrete current entry for

Red Hat JDK 8::
+
[source]
.JDK 8: Full-Version should be `{jdk8-full-version}`
----
include::../../../linux/jdk/redhat/src/main/packaging/temurin/8/temurin-8-jdk.spec[tag=changelog-current]
----

+
[source]
.JRE 8: Full-Version should be `{jdk8-full-version}`
----
include::../../../linux/jre/redhat/src/main/packaging/temurin/8/temurin-8-jre.spec[tag=changelog-current]
----

SuSE JDK 8::
+
[source]
.JDK 8: Full-Version should be `{jdk8-full-version}`
----
include::../../../linux/jdk/suse/src/main/packaging/temurin/8/temurin-8-jdk.spec[tag=changelog-current]
----

Red Hat JRE 8:: TBD
SuSE JRE 8:: TBD

Red Hat JDK 11::
+
[source]
.JDK 11: Full-Version should be `{jdk11-full-version}`
----
include::../../../linux/jdk/redhat/src/main/packaging/temurin/11/temurin-11-jdk.spec[tag=changelog-current]
----

SuSE JDK 11::
+
[source]
.JDK 11: Full-Version should be `{jdk11-full-version}`
----
include::../../../linux/jdk/suse/src/main/packaging/temurin/11/temurin-11-jdk.spec[tag=changelog-current]
----

Red Hat JRE 11:: TBD
SuSE JRE 11:: TBD

[[sec:update-distro-version]]
== Update/Remove existing OS distribution

TBD

[[sec:add-new-os]]
== Adding a new OS distribution or removing one

TBD