Skip to content

Commit 093e901

Browse files
committed
Update releasing notes based on 2.7.4rc1
1 parent 3a586b0 commit 093e901

File tree

1 file changed

+69
-68
lines changed

1 file changed

+69
-68
lines changed

release_jy.rst

Lines changed: 69 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ To complete a public release you need the following things:
1919

2020
* Two JDBC driver JARs that we do not track with version control (licensing restrictions):
2121

22-
* Informix (currently ``jdbc-4.50.8.jar`` for Java 8).
23-
* Oracle (currently ``ojdbc8-19.14.0.0.jar`` for Java 8).
22+
* Informix (currently ``jdbc-4.50.11.jar`` for Java 8).
23+
* Oracle (currently ``ojdbc8-23.4.0.24.05.jar`` for Java 8).
2424

2525
.. Padding. See https://github.com/sphinx-doc/sphinx/issues/2258
2626
@@ -69,7 +69,7 @@ At the same time, let's check that we have the tools we need on the path:
6969
PS git> java -version
7070
java version "1.8.0_321"
7171
PS git> ant -version
72-
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
72+
Apache Ant(TM) version 1.10.14 compiled on August 16 2023
7373
PS git> gpg --version
7474
gpg (GnuPG) 2.3.3
7575
libgcrypt 1.9.4
@@ -96,10 +96,10 @@ the last commits should be the same as in the project repository:
9696
.. code-block:: ps1con
9797
9898
PS work> git log --oneline --graph -4
99-
* d9e1d72e7 (HEAD -> master, origin/master, origin/HEAD) Pin launcher tests to MacOS 12 for Java 8
100-
* f3d868433 Add upward compatibility to Java 9 Modularity (#325)
101-
* 668a95e83 Begin to identify as version 2.7.4b2
102-
* 228fe9ef9 (tag: v2.7.4b1) Prepare for 2.7.4b1 release.
99+
* 245deba51 (HEAD -> master, origin/master, origin/HEAD) Now with sensible timeouts.
100+
* 66600ad7e Impose timeout on regrtest workflows
101+
* f14a91e6a Note blocked from updating Netty by issue 349
102+
* 7df6cbd34 Update Bouncy Castle JARs to 1.78.1
103103
104104
.. _changes-preparing-for-a-release:
105105

@@ -118,11 +118,11 @@ The following files may need to be updated to match the version you are about to
118118
* ``jython.release_serial``.
119119

120120
In the language of these properties,
121-
version 2.7.4b2 is spelled ``2``, ``7``, ``4``, ``${PY_RELEASE_LEVEL_BETA}``, ``2``.
121+
version 2.7.4rc1 is spelled ``2``, ``7``, ``4``, ``${PY_RELEASE_LEVEL_GAMMA}``, ``1``.
122122
Every other expression needing a version number is derived from these 5 values.
123123
* ``build.gradle``: The version number appears as a simple string property ``version``,
124124
near the top of the file.
125-
Version 2.7.4b2 is simply set like this: ``version = '2.7.4b2'``.
125+
Version 2.7.4rc1 is simply set like this: ``version = '2.7.4rc1'``.
126126
* ``src/org/python/core/imp.java``: If there has been any compiler change,
127127
increment the magic number ``APIVersion``.
128128
This magic declares old compiled files incompatible, forcing a fresh compilation for users.
@@ -143,7 +143,7 @@ The following files may need to be updated to match the version you are about to
143143
- [ NNNN ] ...
144144
145145
Replace the first line with the release you are building
146-
e.g. "Jython 2.7.4b2".
146+
e.g. "Jython 2.7.4rc1".
147147
Add anything necessary to the section "New Features".
148148
After publication (not now),
149149
we will add a new, empty, section for the version then under development.
@@ -177,11 +177,12 @@ If you changed anything, commit this set of changes locally:
177177
Changes to be committed:
178178
(use "git restore --staged <file>..." to unstage)
179179
modified: NEWS
180+
modified: build.gradle
181+
modified: build.xml
180182
181-
182-
$ git commit -m"Prepare for 2.7.4b2 release."
183-
[master 30d2f859a] Prepare for 2.7.4b2 release.
184-
1 file changed, 7 insertions(+), 8 deletions(-)
183+
$ git commit -m"Prepare for 2.7.4rc1 release."
184+
[master 3562755e5] Prepare for 2.7.4rc1 release.
185+
3 files changed, 6 insertions(+), 4 deletions(-)
185186
186187
187188
Get the JARs
@@ -190,7 +191,7 @@ Get the JARs
190191
Find the database driver JARs from reputable sources.
191192

192193
* The Informix driver may be obtained from Maven Central.
193-
Version ``jdbc-4.50.8.jar`` is known to work on Java 8.
194+
Version ``jdbc-4.50.11.jar`` is known to work on Java 8.
194195

195196
* The Oracle JDBC driver may also be found at Maven Central.
196197
(The Oracle JARs on Maven Central are now official.)
@@ -202,8 +203,8 @@ Create an ``ant.properties`` correspondingly:
202203
.. code-block:: properties
203204
204205
# Ant properties defined externally to the release build.
205-
informix.jar = ../support/jdbc-4.50.8.jar
206-
oracle.jar = ../support/ojdbc8-19.14.0.0.jar
206+
informix.jar = ../support/jdbc-4.50.11.jar
207+
oracle.jar = ../support/ojdbc8-23.4.0.24.05.jar
207208
208209
Note that this file is ephemeral and local:
209210
it is ignored by Git because it is named in ``.gitignore``.
@@ -221,16 +222,16 @@ Run the ``full-check`` target, which does some simple checks on the repository:
221222
222223
force-snapshot-if-polluted:
223224
[echo]
224-
[echo] Change set 30d2f859a is not tagged 'v2.7.4b2' - build is a snapshot.
225+
[echo] Change set 3562755e5 is not tagged 'v2.7.4rc1' - build is a snapshot.
225226
226227
dump:
227228
[echo] --- build Jython version ---
228229
[echo] jython.version.short = '2.7.4'
229-
[echo] jython.release = '2.7.4b2'
230-
[echo] jython.version = '2.7.4b2-SNAPSHOT'
230+
[echo] jython.release = '2.7.4rc1'
231+
[echo] jython.version = '2.7.4rc1-SNAPSHOT'
231232
[echo] --- optional libraries ---
232-
[echo] informix = '../support/jdbc-4.50.8.jar'
233-
[echo] oracle = '../support/ojdbc8-19.14.0.0.jar'
233+
[echo] informix = '../support/jdbc-4.50.11.jar'
234+
[echo] oracle = '../support/ojdbc8-23.4.0.24.05.jar'
234235
235236
It makes an extensive dump,
236237
in which lines like those above matter particularly.
@@ -261,7 +262,7 @@ being careful to observe the conventional pattern
261262

262263
.. code-block:: ps1con
263264
264-
PS work> git tag -a -s v2.7.4b2 -m"Jython 2.7.4b2"
265+
PS work> git tag -a -s v2.7.4rc1 -m"Jython 2.7.4rc1"
265266
266267
This may open a pop-up from GPG
267268
that requires a password to unlock your signing key
@@ -308,9 +309,9 @@ Run the ``full-check`` target again:
308309
PS work> ant full-check
309310
Buildfile: D:\git\work\build.xml
310311
311-
[echo] Build is for release of 2.7.4b2.
312+
[echo] Build is for release of 2.7.4rc1.
312313
313-
[echo] jython.version = '2.7.4b2'
314+
[echo] jython.version = '2.7.4rc1'
314315
315316
This time the script confirms it is a release
316317
and the version appears without the "SNAPSHOT" qualifier.
@@ -350,7 +351,7 @@ working in folder ``./build2``.
350351
351352
PS work> .\gradlew --console=plain publish
352353
> Task :generateVersionInfo
353-
This build is for v2.7.4b2.
354+
This build is for v2.7.4rc1.
354355
355356
> Task :generateGrammarSource
356357
...
@@ -372,13 +373,13 @@ working in folder ``./build2``.
372373
> Task :publishMainPublicationToStagingRepoRepository
373374
> Task :publish
374375
375-
BUILD SUCCESSFUL in 7m 1s
376+
BUILD SUCCESSFUL in 10m 10s
376377
16 actionable tasks: 16 executed
377378
378379
Don't worry, this doesn't actually *publish* Jython.
379380
When the build finishes, a JAR that is potentially fit to publish,
380381
and its subsidiary artifacts (source, javadoc, checksums),
381-
will have been created in ``./build2/stagingRepo/org/python/jython-slim/2.7.4b2``.
382+
will have been created in ``./build2/stagingRepo/org/python/jython-slim/2.7.4rc1``.
382383

383384
It can also be "published" to your local Maven cache (usually ``~/.m2/repository``
384385
with the task ``publishMainPublicationToMavenLocal``.
@@ -398,9 +399,9 @@ Let's use Java 11, different from the version we built with.
398399

399400
.. code-block:: ps1con
400401
401-
PS 274b1-trial> mkdir kit
402-
PS 274b1-trial> copy "D:\git\work\dist\jython*.jar" .\kit
403-
PS 274b1-trial> java -jar kit\jython-installer.jar
402+
PS 274rc1-trial> mkdir kit
403+
PS 274rc1-trial> copy "D:\git\work\dist\jython*.jar" .\kit
404+
PS 274rc1-trial> java -jar kit\jython-installer.jar
404405
WARNING: An illegal reflective access operation has occurred
405406
...
406407
DEPRECATION: A future version of pip will drop support for Python 2.7.
@@ -411,20 +412,20 @@ It is worth checking the manifests:
411412

412413
.. code-block:: ps1con
413414
414-
PS 274b1-trial> jar -xf .\kit\jython-standalone.jar META-INF
415-
PS 274b2-trial> cat .\META-INF\MANIFEST.MF
415+
PS 274rc1-trial> jar -xf .\kit\jython-standalone.jar META-INF
416+
PS 274rc1-trial> cat .\META-INF\MANIFEST.MF
416417
Manifest-Version: 1.0
417-
Ant-Version: Apache Ant 1.10.12
418+
Ant-Version: Apache Ant 1.10.14
418419
Created-By: 1.8.0_321-b07 (Oracle Corporation)
419420
Main-Class: org.python.util.jython
420421
Built-By: Jeff
421422
Automatic-Module-Name: org.python.jython2.standalone
422423
Implementation-Vendor: Python Software Foundation
423424
Implementation-Title: Jython fat jar with stdlib
424-
Implementation-Version: 2.7.4b2
425+
Implementation-Version: 2.7.4rc1
425426
426427
Name: Build-Info
427-
version: 2.7.4b2
428+
version: 2.7.4rc1
428429
git-build: true
429430
oracle: true
430431
informix: true
@@ -442,12 +443,12 @@ The real test consists in running the regression tests:
442443

443444
.. code-block:: ps1con
444445
445-
PS 274b2-trial> inst\bin\jython -m test.regrtest -e
446-
== 274b2 (tags/v2.7.4b2:30d2f859a, May 4 2024, 13:46:27)
446+
PS 274rc1-trial> inst\bin\jython -m test.regrtest -e
447+
== 2.7.4rc1 (tags/v2.7.4rc1:3562755e5, Jul 29 2024, 14:01:55)
447448
== [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)]
448449
== platform: java11.0.22
449450
== encodings: stdin=ms936, stdout=ms936, FS=utf-8
450-
== locale: default=('en_GB', 'windows-1254'), actual=(None, None)
451+
== locale: default=('en_GB', 'windows-1252'), actual=(None, None)
451452
test_grammar
452453
test_opcodes
453454
test_dict
@@ -479,14 +480,14 @@ When the author last tried, they were these:
479480

480481
.. code-block:: ps1con
481482
482-
PS 274b2-trial> copy -r inst\Lib\test TestLib\test
483-
PS 274b2-trial> $env:JYTHONPATH = ".\TestLib"
484-
PS 274b2-trial> java -jar kit\jython-standalone.jar -m test.regrtest -e
485-
== 274b2 (tags/v2.7.4b2:30d2f859a, May 4 2024, 13:46:27)
483+
PS 274rc1-trial> copy -r inst\Lib\test TestLib\test
484+
PS 274rc1-trial> $env:JYTHONPATH = ".\TestLib"
485+
PS 274rc1-trial> java -jar kit\jython-standalone.jar -m test.regrtest -e
486+
== 2.7.4rc1 (tags/v2.7.4rc1:3562755e5, Jul 29 2024, 14:01:55)
486487
== [Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)]
487488
== platform: java11.0.22
488489
== encodings: stdin=ms936, stdout=ms936, FS=utf-8
489-
== locale: default=('en_GB', 'windows-1254'), actual=(None, None)
490+
== locale: default=('en_GB', 'windows-1252'), actual=(None, None)
490491
test_grammar
491492
test_opcodes
492493
...
@@ -554,7 +555,7 @@ such as your personal Maven cache:
554555
PS work> .\gradlew --console=plain publishMainPublicationToMavenLocal
555556
556557
This will deliver build artifacts to
557-
``~/.m2/repository/org/python/jython-slim/2.7.4b2``.
558+
``~/.m2/repository/org/python/jython-slim/2.7.4rc1``.
558559
One can construct an application to run with that as a dependency like this:
559560

560561
.. code-block:: groovy
@@ -570,7 +571,7 @@ One can construct an application to run with that as a dependency like this:
570571
}
571572
572573
dependencies {
573-
implementation 'org.python:jython-slim:2.7.4b2'
574+
implementation 'org.python:jython-slim:2.7.4rc1'
574575
}
575576
576577
application {
@@ -588,11 +589,13 @@ prepared for the stand-alone Jython.
588589
import org.python.util.PythonInterpreter;
589590
public class RegressionTest {
590591
public static void main(String[] args) {
591-
PythonInterpreter interp = new PythonInterpreter();
592-
interp.exec("import sys, os");
593-
interp.exec("sys.path[0] = os.sep.join(['.', 'TestLib'])");
594-
interp.exec("from test import regrtest as rt");
595-
interp.exec("rt.main(expected=True)");
592+
try (PythonInterpreter interp = new PythonInterpreter()) {
593+
interp.exec("import sys, os");
594+
interp.exec("sys.path[0] = os.sep.join(['.', 'TestLib'])");
595+
interp.exec("sys.argv[1:] = ['-e']");
596+
interp.exec("from test import regrtest as rt");
597+
interp.exec("rt.main()");
598+
}
596599
}
597600
}
598601
@@ -603,21 +606,19 @@ Bouncy Castle JAR is on the path.
603606
Tests end with a failure status under Gradle, even when all tests pass,
604607
because ``regrtest`` calls ``sys.exit``,
605608
which raises ``SystemExit``.
606-
They look like:
609+
It looks like:
607610

608611
.. code-block:: text
609612
610-
611-
All 2 tests OK.
613+
333 tests OK.
614+
...
615+
33 tests failed:
616+
...
612617
Exception in thread "MainThread" Traceback (most recent call last):
613618
File "<string>", line 1, in <module>
614619
File ".\TestLib\test\regrtest.py", line 521, in main
615620
sys.exit(surprises > 0)
616-
SystemExit: False
617-
618-
> Task :run FAILED
619-
620-
FAILURE: Build failed with an exception.
621+
SystemExit: True
621622
622623
One could improve the driver program, but it is complicated to do properly.
623624

@@ -664,10 +665,10 @@ During the build, ``gpg`` may prompt you (in a dialogue box)
664665
for the pass-phrase that protects your private signing key.
665666
This leaves the following new artifacts in ``./publications``:
666667

667-
* ``jython-2.7.4b2-bundle.jar``
668-
* ``jython-standalone-2.7.4b2-bundle.jar``
669-
* ``jython-installer-2.7.4b2-bundle.jar``
670-
* ``jython-slim-2.7.4b2-bundle.jar``
668+
* ``jython-2.7.4rc1-bundle.jar``
669+
* ``jython-standalone-2.7.4rc1-bundle.jar``
670+
* ``jython-installer-2.7.4rc1-bundle.jar``
671+
* ``jython-slim-2.7.4rc1-bundle.jar``
671672

672673

673674
Publication
@@ -744,10 +745,10 @@ You are now ready to upload bundles acceptable to Sonatype.
744745
select "Artifact Bundle".
745746
* Navigate to the ``./publications`` folder and upload in turn:
746747

747-
* ``jython-slim-2.7.4b2-bundle.jar``
748-
* ``jython-2.7.4b2-bundle.jar``
749-
* ``jython-standalone-2.7.4b2-bundle.jar``
750-
* ``jython-installer-2.7.4b2-bundle.jar``
748+
* ``jython-slim-2.7.4rc1-bundle.jar``
749+
* ``jython-2.7.4rc1-bundle.jar``
750+
* ``jython-standalone-2.7.4rc1-bundle.jar``
751+
* ``jython-installer-2.7.4rc1-bundle.jar``
751752

752753
For some reason (privacy?) the display shows a fake file path
753754
but the name is correct.
@@ -772,7 +773,7 @@ from the "Staging Repositories" tab in the repository manager.
772773
download the (as yet unreleased) artifacts from Sonatype and test them,
773774
repeating the section :ref:`test-what-you-built`.
774775
A staging URL has form:
775-
``https://oss.sonatype.org/content/repositories/orgpython-1110``
776+
``https://oss.sonatype.org/content/repositories/orgpython-1105``
776777
where the final number increments with each upload.
777778
* When you are absolutely satisfied ... "Release" the bundles.
778779
This will cause them to appear in the Maven `Central Repository`_

0 commit comments

Comments
 (0)