22 Normally this would mean a new file index_jy.rst, but index.rst is the
33 starting point for the documentation.
44 We therefore keep it as modified, although merging changes from the CPython
5- devguide difficult for this file.
5+ devguide will be difficult for this file.
66
77========================
88Jython Developer's Guide
99========================
1010
1111This guide is a comprehensive resource for :ref: `contributing <contributing >`
1212to Jython _ -- for both new and experienced contributors.
13- It has been adapted from the CPython Developer's Guide and the reader should
13+ It has been (somewhat incompletely)
14+ adapted from the CPython Developer's Guide and the reader should
1415bear in mind that:
1516
16- * The CPython process is PR-based on GitHub and this guide anticipates our
17- adoption of that for Jython.
18- * The existing Jython process uses Mercurial so the guide describes that too.
17+ * The Jython process, like CPython's, is based GitHub PRs,
18+ but Jython does not have the same set of tool integrations.
19+ * Jython migrated from Mercurial in 2020, much later than CPython,
20+ so Jython-specific parts of the guide may refer to the old process.
1921* Statements about "Python" should apply to both CPython and Jython.
20- * The adaptation is imperfect: parts of the guide will say (or mean) CPython.
22+ The adaptation is imperfect: parts of the guide will say (or mean) CPython.
2123
2224This guide is :ref: `maintained <helping-with-the-developers-guide >` by the same
2325community that maintains CPython and Jython.
@@ -30,20 +32,9 @@ Quick Reference
3032Mercurial
3133^^^^^^^^^
3234
33- 1. :ref: `Get the source code <checkout-jy >`::
35+ Mercurial is no longer used.
36+ The previous official repository at ``https://hg.python.org/jython `` is not current.
3437
35- hg clone http://hg.python.org/jython
36-
37- 2. :ref: `Build Jython <compiling-jy >`::
38-
39- ant
40-
41- 3. :doc: `Run the tests <runtests_jy >`::
42-
43- ant regrtest
44-
45- 4. Make the :doc: `patch <patch_hg_jy >`.
46- 5. Submit it to the `Jython issue tracker `_.
4738
4839GitHub
4940^^^^^^
@@ -56,7 +47,7 @@ instructions please see the :ref:`setup guide <setup-jy>`.
56471. Install and set up :ref: `Git <vcsetup-jy >` and other dependencies
5748 (see the :ref: `Get Setup <setup-jy >` page for detailed information).
5849
59- 2. Fork ` the Jython repository < https://github.com/jython/jython > `_
50+ 2. Fork the ` Jython GitHub repository `_
6051 to your GitHub account and :ref: `get the source code <checkout-jy >` using::
6152
6253 git clone https://github.com/<your_username>/jython
@@ -72,39 +63,50 @@ instructions please see the :ref:`setup guide <setup-jy>`.
7263
73644. :doc: `Run the tests <runtests_jy >`::
7465
75- dist/bin/jython -m test -e
66+ dist/bin/jython -m test.regrtest -e
7667
77- (for Jython 3). With Jython 2.7, replace ``test`` with ``test.regrtest``.
68+ This applies for Jython 2.7.
69+ To test Jython 3, when it exists, replace ``test.regrtest`` with ``test``.
7870
79715. Create a new branch where your work for the issue will go, e.g.::
8072
8173 git checkout -b fix-issue-12345 master
8274
83- If an issue does not already exist, please `create it
84- <https://bugs.jython.org/>`_. Trivial issues (e.g. typo fixes) do not
85- require any issue to be created.
75+ If an issue does not already exist, please create it on
76+ the `Jython GitHub repository`_.
77+ The legacy `bug tracker <https://bugs.jython.org/>`_ still operates
78+ (for Jython 2.7 only) but is not preferred.
79+ Trivial issues (e.g. typo fixes) do not require any issue to be created:
80+ create a PR directly.
8681
87826. Once you fixed the issue, run the tests, and if
8883 everything is ok, commit.
8984
90- 7. Push the branch on your fork on GitHub and :doc: ` create a pull request
91- <pullrequest>`. Include the issue number using `` bpo-NNNN `` in the
92- pull request description. For example::
85+ 7. Push the branch to your fork on GitHub::
86+
87+ git push -u origin fix-issue-12345
9388
94- bpo-12345: Fix some bug in spam module
89+ and :doc:`create a pull request
90+ <pullrequest>`.
91+ Include the issue number using GitHub conventions in the pull request
92+ description.
93+ (Use ``bjo-NNNN`` if it is from the legacy tracker.)
9594
9695.. note ::
9796
98- bpo stands for bugs.python.org and these flags are used by CPython's GitHub
99- tools. For Jython we need our own naming convention, and to re-use the
100- CPython tools. It is also worth considering whether we move away from
101- bugs.jython.org to GitHub issues, and how we do that.
97+ bpo-NNNN is used by CPython for for bugs.python.org
98+ and is picked up by CPython's GitHub tools.
99+ For Jython we need our own naming convention, but cannot yet re-use the
100+ CPython tools.
101+ We intend to move away from bugs.jython.org to GitHub issues more aggressively
102+ that CPython has made the switch.
102103
103104.. note ::
104105
105106 First time contributors will need to sign the Contributor Licensing
106107 Agreement (CLA) as described in the :ref: `Licensing <cla >` section of
107108 this guide.
109+ This requires an account on the CPython's legacy bug tracker.
108110
109111
110112Quick Links
@@ -113,7 +115,7 @@ Quick Links
113115Here are some links that you probably will reference frequently while
114116contributing to Jython:
115117
116- * `Jython issue tracker `_
118+ * `Jython GitHub repository `_ (or maybe the ` Jython issue tracker `_)
117119* :doc: `help `
118120* PEPs _ (Python Enhancement Proposals)
119121* :doc: `gitbootcamp `
@@ -123,27 +125,21 @@ contributing to Jython:
123125Status of Jython branches
124126-------------------------
125127
126- .. note :: Maybe how it should look in a process based on GitHub,
127- and for Jython 3. Not how it is.
128-
129- +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------------------------------------------+
130- | Branch | Schedule | Status | First release | End-of-life | Comment |
131- +========+==========+=============+===============+=============+=================================================================================================================+
132- | master | | features | | | The default branch is currently the future Jython 3.5. |
133- +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------------------------------------------+
134- | 2.7 | | bugfix | | | The support has been extended to 2020 (1). |
135- | | | | | | Most recent binary release: `Jython 2.7.1 |
136- | | | | | | <http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.7.1/jython-installer-2.7.1.jar>`_ |
137- +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------------------------------------------+
138- | 2.5 | | end-of-life | | | Final release: `Jython 2.5.3 |
139- | | | | | | <https://repo1.maven.org/maven2/org/python/jython/2.5.3/>`_ |
140- +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------------------------------------------+
141-
142- (1) The exact date of Python 2.7 end-of-life has not been decided yet. It will
143- be decided by Python 2.7 release manager, Benjamin Peterson, who will update
144- the :pep: `373 `. Read also the `[Python-Dev] Exact date of Python 2 EOL?
145- <https://mail.python.org/pipermail/python-dev/2017-March/147655.html> `_ thread
146- on python-dev (March 2017).
128+
129+ +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------+
130+ | Branch | Schedule | Status | First release | End-of-life | Comment |
131+ +========+==========+=============+===============+=============+=============================================================================+
132+ | master | | bugfix | | | PSF support for Python 2 ended in 2020 (see :pep: `373 `) but |
133+ | | | | | | the most recent release of Jython is still `Jython 2.7.2 |
134+ | | | | | | <https://search.maven.org/artifact/org.python/jython-installer/2.7.2/jar>`_ |
135+ +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------+
136+ | 3.8 | | features | | | This branch is the future of Jython. |
137+ | | | | | | (It should be master, but is just a gleam in the eye at present.) |
138+ +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------+
139+ | 2.5 | | end-of-life | | | Final release: `Jython 2.5.3 |
140+ | | | | | | <https://repo1.maven.org/maven2/org/python/jython/2.5.3/jar>`_ |
141+ +--------+----------+-------------+---------------+-------------+-----------------------------------------------------------------------------+
142+
147143
148144Status:
149145
@@ -163,40 +159,18 @@ have reached end-of-life.
163159The Jython project follows the Python Software Foundation in the naming of
164160versions of the language (e.g. Jython 2.7 implements Python 2.7), and whether an
165161implementation of that version has reached reached end-of-life.
162+ The third element (micro) has bears no relationship to CPython micro-versions.
166163
167164See also :ref: `Security branches <secbranch >`.
168165
169- Each release of Python is tagged in the source repo with a tag of the form
166+ Jython names its releases in the same scheme as CPython.
167+ Each release of Jython is tagged in the source repo with a tag of the form
170168``vX.Y.ZTN ``, where ``X `` is the major version, ``Y `` is the
171169minor version, ``Z `` is the micro version, ``T `` is the release level
172170(``a `` for alpha releases, ``b `` for beta, ``rc `` release candidate,
173171and *null * for final releases), and ``N `` is the release serial number.
174172Some examples of release tags: ``v3.7.0a1 ``, ``v3.6.3 ``, ``v2.7.14rc1 ``.
175173
176- The code base for a release cycle which has reached end-of-life status
177- is frozen and no longer has a branch in the repo. The final state of
178- the end-of-lifed branch is recorded as a tag with the same name as the
179- former branch, e.g. ``3.3 `` or ``2.6 ``. For reference, here are the
180- most recently end-of-lifed release cycles:
181-
182- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
183- | Tag | Schedule | Status | First release | End-of-life | Comment |
184- +==================+==============+=============+================+================+============================================================================+
185- | 3.3 | :pep: `398 ` | end-of-life | 2012-09-29 | 2017-09-29 | `Final release: Python 3.3.7 |
186- | | | | | | <https://www.python.org/downloads/release/python-337/>`_ |
187- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
188- | 3.2 | :pep: `392 ` | end-of-life | 2011-02-20 | 2016-02-20 | `Final release: Python 3.2.6 |
189- | | | | | | <https://www.python.org/downloads/release/python-326/>`_ |
190- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
191- | 3.1 | :pep: `375 ` | end-of-life | 2009-06-27 | 2012-04-11 | `Final release: Python 3.1.5 |
192- | | | | | | <https://www.python.org/downloads/release/python-315/>`_ |
193- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
194- | 3.0 | :pep: `361 ` | end-of-life | 2008-12-03 | 2009-01-13 | `Final release: Python 3.0.1 |
195- | | | | | | <https://www.python.org/download/releases/3.0.1/>`_ |
196- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
197- | 2.6 | :pep: `361 ` | end-of-life | 2008-10-01 | 2013-10-29 | `Final release: Python 2.6.9 |
198- | | | | | | <https://www.python.org/download/releases/2.6.9/>`_ |
199- +------------------+--------------+-------------+----------------+----------------+----------------------------------------------------------------------------+
200174
201175.. _contributing :
202176
@@ -297,14 +271,9 @@ Key Resources
297271-------------
298272
299273* Coding style guides
300- * Jython's `Java coding standard < https://wiki.python.org/jython/CodingStandards > `_
274+ * Jython's `Java coding standard `_
301275 * :PEP: `8 ` (Style Guide for Python Code)
302- * `Jython issue tracker `_
303- * `Meta tracker <http://psf.upfronthosting.co.za/roundup/meta >`_ (issue
304- tracker for the issue tracker)
305- * :doc: `experts `
306276* Source code
307- * `Browse in Mercurial online <http://hg.python.org/jython/file/default/ >`_
308277 * `Browse in GitHub <https://github.com/jython/jython/ >`_
309278
310279* PEPs _ (Python Enhancement Proposals)
@@ -421,4 +390,6 @@ you understand the Jython one.
421390.. _Issue tracker : https://bugs.python.org/
422391.. _open pull requests : https://github.com/jython/jython/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20label%3A%22awaiting%20review%22
423392.. _Jython issue tracker : https://bugs.jython.org/
393+ .. _Jython GitHub repository : https://github.com/jython/jython
394+ .. _Java coding standard : https://wiki.python.org/jython/CodingStandards
424395.. _Style Guide for Java code : http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
0 commit comments