@@ -54,13 +54,14 @@ To complete a public release you need the following things:
5454* The right to publish Jython at [ Sonatype] ( https://oss.sonatype.org ) .
5555* A PGP signing key pair (generated with ` gpg --gen-key ` ).
5656* Access to the channels where we announce releases (e.g. Twitter).
57- * Access to modify the bug-tracker configuration.
5857
5958You can dry-run this process with only the first pre-requisite (driver JARs),
6059and a Git clone of the official repository.
6160In that case, be careful not to push any changes.
62- (Hint: if you clone from ` https://github.com/jython/jython.git ` ,
63- that will prevent an unintended push.)
61+
62+ > [ !TIP]
63+ > If you clone from ` https://github.com/jython/jython.git ` ,
64+ > that will prevent an unintended push.)
6465
6566
6667## Making a Releasable Jython
@@ -73,7 +74,7 @@ so aim for:
7374
7475* short (i.e. near a file system root), in the examples ` D:\git ` .
7576* impersonal (not containing company or personal names).
76- * ASCII (even though Jython is pretty good with Unicode now).
77+ * represenable in ASCII (even though Jython is pretty good with Unicode now).
7778
7879The examples in this text were mostly made in Windows PowerShell,
7980but Git remote operations are in Git Bash.
@@ -171,13 +172,14 @@ The build script ensures that, until we actually tag a change set as a release,
171172the version numbers set here will always appear with a "snapshot" suffix.
172173
173174You should run the ` ant javatest ` and ` ant regrtest ` targets at this point.
174- These should run clean , or at least failures be explained and acceptable,
175+ These should run cleanly , or at least failures be explained and acceptable,
175176e.g. known to be attributable to limitations in your network environment.
176177If bugs are discovered that you need to fix,
177- it would be best to abandon work on this repository and
178- fix them in your usual development workbench.
178+ it would be best to abandon work on this repository,
179+ fix them in your usual development workbench,
180+ and push or PR them into the project.
179181
180- > [ NOTE! ]
182+ > [ !TIP ]
181183> You can run the ` ant bugtest ` target, but it is deprecated.
182184> (We haven't maintained it as Jython changed.)
183185> It produces some failures known to be spurious.
@@ -287,17 +289,19 @@ that requires a password to unlock your signing key
287289Note that ` git tag -a ` creates a sort of commit.
288290It will need to be pushed eventually,
289291but the current state of your repository is still at the change set tagged.
290- If something goes wrong after this point but before the eventual push to the repository,
292+ If something goes wrong after this point,
293+ but before the eventual push to the repository,
291294that requires changes and a fresh commit,
292295it is possible to delete the tag with ` git tag -d v2.7.4 ` ,
293296and make it again at the new tip when you're ready.
294297The Git book explains why you should not
295298[ delete a tag after the push] ( https://git-scm.com/docs/git-tag#_discussion ) .
296299
297- We follow CPython in signing the tag with GPG as indicated in PEP- 101
300+ We follow CPython in signing the tag with GPG as indicated in PEP 101
298301and the [ CPython release-tools] ( https://github.com/python/release-tools ) .
299302See the section [ PGP Signing] ( #pgp-signing ) for how to generate a key.
300- (If you are doing a dry-run you can avoid the signing by dropping the ` -s ` option.)
303+ (If you are doing a dry-run you can avoid signing it
304+ by dropping the ` -s ` option.)
301305
302306As explained in [ signing Git commits with GPG] (
303307https://jamesmckay.net/2016/02/signing-git-commits-with-gpg-on-windows/ ),
@@ -334,16 +338,16 @@ because the source tree is clean and the tag corresponds to the version.
334338
335339The artifacts of interest are produced in the ` ./dist ` directory and they are:
336340
337- # . ` jython.jar `
338- # . ` jython-installer.jar `
339- # . ` jython-standalone.jar `
340- # . ` sources.jar `
341- # . ` javadoc.jar `
341+ 1 . ` jython.jar `
342+ 1 . ` jython-installer.jar `
343+ 1 . ` jython-standalone.jar `
344+ 1 . ` sources.jar `
345+ 1 . ` javadoc.jar `
342346
343- > [ NOTE! ] At the time of writing, the ` javadoc ` sub-target produces many warnings.
347+ > [ !NOTE ] At the time of writing, the ` javadoc ` sub-target produces many warnings.
344348> Java 8 is much stricter than Java 7 about correct Javadoc.
345349> These are not fatal to the build:
346- > they are a sign that our documentation is a bit shabby (and always was secretly).
350+ > they are a sign that our Javadoc is a bit shabby (and always was secretly).
347351
348352
349353### Gradle Build for Release
@@ -386,7 +390,7 @@ BUILD SUCCESSFUL in 6m 41s
38639016 actionable tasks: 16 executed
387391```
388392
389- Don't worry, this doesn't actually * publish* Jython.
393+ Don't worry, despite the name, this doesn't actually * publish* Jython.
390394When the build finishes, a JAR that is potentially fit to publish,
391395and its subsidiary artifacts (source, javadoc, checksums),
392396will have been created in ` ./build2/stagingRepo/org/python/jython-slim/2.7.4 ` .
@@ -395,7 +399,7 @@ It can also be "published" to your local Maven cache (usually `~/.m2/repository`
395399with the task ` publishMainPublicationToMavenLocal ` .
396400This need not be done as part of a release,
397401but can be useful in verification using a Gradle or Maven build that references it
398- (see the section :ref: ` jython- slim-regrtest` ).
402+ (see the section [ Slim (Gradle) regrtest ] ( # slim-gradle- regrtest) .
399403
400404
401405### Test what you built
@@ -535,7 +539,7 @@ Others arise because we do not include certain JARs needed for the test.
535539It is necessary to pick through the failures carefully
536540to detect which are real.
537541
538- > [ NOTE! ]
542+ > [ !TIP ]
539543> We could probably do this better through skips in the tests,
540544> sensitive to running stand-alone,
541545> or (widely useful) a broader interpretation of "file path" in Jython,
@@ -560,7 +564,8 @@ PS work> .\gradlew --console=plain publishMainPublicationToMavenLocal
560564
561565This will deliver build artifacts to
562566` ~/.m2/repository/org/python/jython-slim/2.7.4 ` .
563- One can construct an application to run with that as a dependency like this:
567+ One can construct an application to run with that as a dependency,
568+ by giving it a Gradle build file like this:
564569
565570``` Gradle
566571// Application importing the jython-slim JAR.
@@ -629,7 +634,8 @@ One could improve the driver program, but it is complicated to do properly.
629634
630635### Build the Bundles to Publish
631636
632- The artifacts for Maven are built using a separate script ` maven/build.xml ` .
637+ Back in the release working directory,
638+ the artifacts for Maven are built using a separate script ` maven/build.xml ` .
633639
634640``` posh
635641PS work> ant -f maven\build.xml
@@ -660,7 +666,8 @@ In order to publish the bundles created in `./publications`,
660666it is necessary to have an account with access to ` groupId ` ` org.python ` ,
661667which Sonatype will grant given the support of an existing owner.
662668(This is a human process administered through JIRA.)
663- There is an extensive ` Sonatype OSSRH Guide ` _
669+ There is an extensive
670+ [ Sonatype OSSRH Guide] ( https://central.sonatype.org/pages/ossrh-guide.html )
664671about getting and using an account.
665672
666673
@@ -675,8 +682,8 @@ this release of Jython is really from the project.
675682
676683The infrastructure of PGP has been overhauled
677684since the previous version of these notes was written.
678- Follow the Sonatype guide [ Working with PGP Signatures ]
679- (https://central.sonatype.org/pages/ossrh-guide.html ),
685+ Follow the Sonatype guide
686+ [ Working with PGP Signatures ] ( https://central.sonatype.org/publish/requirements/gpg/ ) ,
680687which now appears to have been updated with the changes.
681688
682689``` posh
@@ -698,24 +705,25 @@ Sonatype consults.
698705Generation and publication of a key are one-time actions,
699706except that the key has a finite lifetime with possible extensions.
700707(The key here has been extended twice.)
701- See [ Working with PGP Signatures ]
702- (https://central.sonatype.org/publish/requirements/gpg/ )
708+ See
709+ [ Working with PGP Signatures ] ( https://central.sonatype.org/publish/requirements/gpg/ )
703710for how to extend the life of a key.
704711
705- > [ NOTE! ]
712+ > [ !IMPORTANT ]
706713> You may decide to create a new key for signing future releases.
707714> The key that was used to sign past releases should remain valid
708715> so that users can still validate those past releases.
709716> Renewing an old key is a valid and useful thing to do.
710- > (An exception might occur when the old * private* key is thought
717+ > (An exception to this rule is when the old * private* key is thought
711718> to have been lost.)
712719
713720
714721### Publication via Sonatype
715722
716723You are now ready to upload bundles acceptable to Sonatype.
717724
718- * Go to the Sonatype_ repository manager and log in.
725+ * Go to the [ Sonatype] ( https://oss.sonatype.org )
726+ repository manager and log in.
719727* Under "Build Promotion" select "Staging Upload".
720728* On the "Staging Upload" tab, and the Upload Mode drop-down,
721729 select "Artifact Bundle".
@@ -730,12 +738,13 @@ You are now ready to upload bundles acceptable to Sonatype.
730738 but the name is correct.
731739 Each upload creates a "staging repository".
732740
733- > [ NOTE! ] You may get a report (e-mail) from Sonatype Lift at this point
741+ > [ !NOTE ] You may get a report (e-mail) from Sonatype Lift at this point
734742> reporting potential vulnerabilities in dependencies.
735743> (It seems only to work on the ` -slim ` JAR, which is why we upload it first.)
736744> If any vulnerability is sufficiently serious to warrant upgrading JARs,
737745> treat this as a late test failure:
738- > fix it in your normal development environment with a PR and repeat the process.
746+ > fix it in your normal development environment with a PR and repeat the process.
747+ >
739748> Assuming you have deferred pushing the tag no publicly visible harm has been done.
740749> (See [ Push with tag] ( #only-now-is-it-safe-to-git-push ) below.)
741750> If you already pushed the tag,
@@ -759,7 +768,7 @@ from the "Staging Repositories" tab in the repository manager.
759768 [ Central Repository] ( https://search.maven.org/ )
760769 (takes an hour or two).
761770
762- > [ WARNING! ]
771+ > [ !CAUTION ]
763772> Release at Sonatype is irreversible.
764773
765774
@@ -785,7 +794,7 @@ and painfully obvious if this is a final release.
785794
786795### Announcement
787796
788- > [ NOTE! ]
797+ > [ !NOTE ]
789798> This section is untested since recent changes.
790799
791800* update files in (or make a PR against) the
@@ -801,19 +810,15 @@ and painfully obvious if this is a final release.
801810
802811 Exactly what you do here will depend on the kind of release you just made.
803812
804- * change the ` #jython ` irc channel topic
805- * announce on Twitter (as jython), irc channel, mailing lists, blog ...
806- * In the bug tracker:
807-
808- * add the new version, against which to report bugs.
809- * add a new milestone (future version), against which to plan delivery.
813+ * announce on Twitter (as jython), mailing lists, blog ...
810814
811815
812816## Ready for new work
813817
814818After a release,
815819Jython in the development environment
816- should no longer identify itself as the version just released, so we increment the version string.
820+ should no longer identify itself as the version just released,
821+ so we increment the version string.
817822We do not know for sure the version next to be publicly released,
818823so we use the smallest increment that results in a valid version number.
819824
@@ -859,7 +864,7 @@ Jython <successor version>a1 Bugs fixed
859864
860865Commit and push this change upstream.
861866
862- > [ !NOTE ]
867+ > [ !IMPORTANT ]
863868> The description of a new feature is associated with
864869> the prospective final release,
865870> not the alpha or beta that introduced it.
0 commit comments