Skip to content

Commit 8690148

Browse files
committed
Shake out some bugs from the process docs
1 parent 308377d commit 8690148

2 files changed

Lines changed: 55 additions & 48 deletions

File tree

ProcessDocs/README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,18 @@ to processes we apply during development.
66
We aspire to processes and principles from
77
the [Python Developer Guide](https://devguide.python.org/)
88
where they are generic enough to apply to us.
9-
That guide, however, is oriented strongly towards
10-
the C implementation of Python.
11-
Here we aim to provide only what is different and specific to Jython,
9+
That guide, in its processes and cheat-sheets,
10+
is oriented strongly towards the C implementation of Python.
11+
Here we aim to provide versions of those things specific to Jython,
1212
our repositories, and a Java implementation[^1].
1313

1414
It will not, to begin with,
1515
contain sections for everything that could be translated to Java.
1616
Where it falls short,
17-
make an intelligent interpretation of the (C)Python Dev Guide
18-
for a Java context.
17+
readers should make an intelligent interpretation of the (C)Python Dev Guide
18+
for a Java context,
19+
and consider contributing that here.
20+
1921

2022
## Contents
2123

ProcessDocs/releasing.md

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -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

5958
You can dry-run this process with only the first pre-requisite (driver JARs),
6059
and a Git clone of the official repository.
6160
In 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

7879
The examples in this text were mostly made in Windows PowerShell,
7980
but 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,
171172
the version numbers set here will always appear with a "snapshot" suffix.
172173

173174
You 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,
175176
e.g. known to be attributable to limitations in your network environment.
176177
If 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
287289
Note that `git tag -a` creates a sort of commit.
288290
It will need to be pushed eventually,
289291
but 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,
291294
that requires changes and a fresh commit,
292295
it is possible to delete the tag with `git tag -d v2.7.4`,
293296
and make it again at the new tip when you're ready.
294297
The 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
298301
and the [CPython release-tools](https://github.com/python/release-tools).
299302
See 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

302306
As explained in [signing Git commits with GPG](
303307
https://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

335339
The 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
386390
16 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.
390394
When the build finishes, a JAR that is potentially fit to publish,
391395
and its subsidiary artifacts (source, javadoc, checksums),
392396
will 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`
395399
with the task `publishMainPublicationToMavenLocal`.
396400
This need not be done as part of a release,
397401
but 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.
535539
It is necessary to pick through the failures carefully
536540
to 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

561565
This 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
635641
PS work> ant -f maven\build.xml
@@ -660,7 +666,8 @@ In order to publish the bundles created in `./publications`,
660666
it is necessary to have an account with access to `groupId` `org.python`,
661667
which 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)
664671
about getting and using an account.
665672

666673

@@ -675,8 +682,8 @@ this release of Jython is really from the project.
675682

676683
The infrastructure of PGP has been overhauled
677684
since 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/),
680687
which now appears to have been updated with the changes.
681688

682689
```posh
@@ -698,24 +705,25 @@ Sonatype consults.
698705
Generation and publication of a key are one-time actions,
699706
except 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/)
703710
for 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

716723
You 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

814818
After a release,
815819
Jython 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.
817822
We do not know for sure the version next to be publicly released,
818823
so we use the smallest increment that results in a valid version number.
819824

@@ -859,7 +864,7 @@ Jython <successor version>a1 Bugs fixed
859864

860865
Commit 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

Comments
 (0)