Repository: python/cpython
Pull request #133888: gh-133604: remove deprecated `java_ver` function
Author: login: makridenko
Created: 2025-05-11T10:52:47Z | Merged: 2025-05-16T14:17:55Z

<!--
Thanks for your contribution!
Please read this comment in its entirety. It's quite important.

# Pull Request title

It should be in the following format:

```
gh-NNNNNN: Summary of the changes made
```

Where: gh-NNNNNN refers to the GitHub issue number.

Most PRs will require an issue number. Trivial changes, like fixing a typo, do not need an issue.

# Backport Pull Request title

If this is a backport PR (PR made against branches other than `main`),
please ensure that the PR title is in the following format:

```
[X.Y] <title from the original PR> (GH-NNNNNN)
```

Where: [X.Y] is the branch name, for example: [3.13].

GH-NNNNNN refers to the PR number from `main`.

-->

<!-- gh-issue-number: gh-133604 -->
* Issue: gh-133604
<!-- /gh-issue-number -->


<!-- readthedocs-preview cpython-previews start -->
----
📚 Documentation preview 📚: https://cpython-previews--133888.org.readthedocs.build/

<!-- readthedocs-preview cpython-previews end -->


Diff:
diff --git a/Doc/deprecations/pending-removal-in-3.15.rst b/Doc/deprecations/pending-removal-in-3.15.rst
index 8953aedf989869..707253a91ecd40 100644
--- a/Doc/deprecations/pending-removal-in-3.15.rst
+++ b/Doc/deprecations/pending-removal-in-3.15.rst
@@ -51,7 +51,7 @@ Pending removal in Python 3.15
 
 * :mod:`platform`:
 
-  * :func:`~platform.java_ver` has been deprecated since Python 3.13.
+  * :func:`!platform.java_ver` has been deprecated since Python 3.13.
     This function is only useful for Jython support, has a confusing API,
     and is largely untested.
 
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
index 5c999054323be5..06de152a742f28 100644
--- a/Doc/library/platform.rst
+++ b/Doc/library/platform.rst
@@ -188,24 +188,6 @@ Cross platform
       :attr:`processor` is resolved late instead of immediately.
 
 
-Java platform
--------------
-
-
-.. function:: java_ver(release='', vendor='', vminfo=('','',''), osinfo=('','',''))
-
-   Version interface for Jython.
-
-   Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a
-   tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple
-   ``(os_name, os_version, os_arch)``. Values which cannot be determined are set to
-   the defaults given as parameters (which all default to ``''``).
-
-   .. deprecated-removed:: 3.13 3.15
-      It was largely untested, had a confusing API,
-      and was only useful for Jython support.
-
-
 Windows platform
 ----------------
 
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index 7ae184058111d8..e64eb19bddb522 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
     to be removed in Python 3.15.
     This function is only useful for Jython support, has a confusing API,
     and is largely untested.
diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst
index 14d96420f698fa..9e9a168db0e725 100644
--- a/Doc/whatsnew/3.15.rst
+++ b/Doc/whatsnew/3.15.rst
@@ -121,6 +121,14 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the :func:`!platform.java_ver` function,
+  which was deprecated since Python 3.13.
+  (Contributed by Alexey Makridenko in :gh:`133604`.)
+
+
 sysconfig
 ---------
 
diff --git a/Lib/platform.py b/Lib/platform.py
index 55e211212d4209..077db81264a57c 100644
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
 #
 #    1.0.9 - added invalidate_caches() function to invalidate cached values
 #    1.0.8 - changed Windows support to read version from kernel32.dll
@@ -110,7 +110,7 @@
 
 """
 
-__version__ = '1.0.9'
+__version__ = '1.1.0'
 
 import collections
 import os
@@ -528,53 +528,6 @@ def ios_ver(system="", release="", model="", is_simulator=False):
     return IOSVersionInfo(system, release, model, is_simulator)
 
 
-def _java_getprop(name, default):
-    """This private helper is deprecated in 3.13 and will be removed in 3.15"""
-    from java.lang import System
-    try:
-        value = System.getProperty(name)
-        if value is None:
-            return default
-        return value
-    except AttributeError:
-        return default
-
-def java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', '')):
-
-    """ Version interface for Jython.
-
-        Returns a tuple (release, vendor, vminfo, osinfo) with vminfo being
-        a tuple (vm_name, vm_release, vm_vendor) and osinfo being a
-        tuple (os_name, os_version, os_arch).
-
-        Values which cannot be determined are set to the defaults
-        given as parameters (which all default to '').
-
-    """
-    import warnings
-    warnings._deprecated('java_ver', remove=(3, 15))
-    # Import the needed APIs
-    try:
-        import java.lang  # noqa: F401
-    except ImportError:
-        return release, vendor, vminfo, osinfo
-
-    vendor = _java_getprop('java.vendor', vendor)
-    release = _java_getprop('java.version', release)
-    vm_name, vm_release, vm_vendor = vminfo
-    vm_name = _java_getprop('java.vm.name', vm_name)
-    vm_vendor = _java_getprop('java.vm.vendor', vm_vendor)
-    vm_release = _java_getprop('java.vm.version', vm_release)
-    vminfo = vm_name, vm_release, vm_vendor
-    os_name, os_version, os_arch = osinfo
-    os_arch = _java_getprop('java.os.arch', os_arch)
-    os_name = _java_getprop('java.os.name', os_name)
-    os_version = _java_getprop('java.os.version', os_version)
-    osinfo = os_name, os_version, os_arch
-
-    return release, vendor, vminfo, osinfo
-
-
 AndroidVer = collections.namedtuple(
     "AndroidVer", "release api_level manufacturer model device is_emulator")
 
@@ -1034,13 +987,6 @@ def uname():
                     version = '16bit'
             system = 'Windows'
 
-        elif system[:4] == 'java':
-            release, vendor, vminfo, osinfo = java_ver()
-            system = 'Java'
-            version = ', '.join(vminfo)
-            if not version:
-                version = vendor
-
     # System specific extensions
     if system == 'OpenVMS':
         # OpenVMS seems to have release and version mixed up
@@ -1370,15 +1316,6 @@ def platform(aliased=False, terse=False):
         platform = _platform(system, release, machine, processor,
                              'with',
                              libcname+libcversion)
-    elif system == 'Java':
-        # Java platforms
-        r, v, vminfo, (os_name, os_version, os_arch) = java_ver()
-        if terse or not os_name:
-            platform = _platform(system, release, version)
-        else:
-            platform = _platform(system, release, version,
-                                 'on',
-                                 os_name, os_version, os_arch)
 
     else:
         # Generic handler
diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py
index 818e807dd3a6fb..3b673a47c8c137 100644
--- a/Lib/test/test_platform.py
+++ b/Lib/test/test_platform.py
@@ -383,15 +383,6 @@ def raises_oserror(*a):
                 finally:
                     platform._uname_cache = None
 
-    def test_java_ver(self):
-        import re
-        msg = re.escape(
-            "'java_ver' is deprecated and slated for removal in Python 3.15"
-        )
-        with self.assertWarnsRegex(DeprecationWarning, msg):
-            res = platform.java_ver()
-        self.assertEqual(len(res), 4)
-
     @unittest.skipUnless(support.MS_WINDOWS, 'This test only makes sense on Windows')
     def test_win32_ver(self):
         release1, version1, csd1, ptype1 = 'a', 'b', 'c', 'd'
diff --git a/Misc/NEWS.d/next/Library/2025-05-11-12-56-52.gh-issue-133604.kFxhc8.rst b/Misc/NEWS.d/next/Library/2025-05-11-12-56-52.gh-issue-133604.kFxhc8.rst
new file mode 100644
index 00000000000000..526ac38f09bab3
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-05-11-12-56-52.gh-issue-133604.kFxhc8.rst
@@ -0,0 +1 @@
+Remove :func:`!platform.java_ver` which was deprecated since Python 3.13.


Reviews:
user: login: eendebakpt
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T11:16:50Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T11:17:47Z
user: login: eendebakpt
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T11:21:04Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T11:32:08Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-11T13:18:33Z
user: login: StanFromIreland
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-11T18:32:48Z
user: login: StanFromIreland
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-11T18:36:22Z
user: login: malemburg
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-12T19:39:02Z
user: login: malemburg
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-12T19:39:57Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T12:33:56Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T12:34:09Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:24:29Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:27:28Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:46:53Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:47:17Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:47:52Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:47:58Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:49:14Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:50:46Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:51:38Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:52:05Z
user: login: picnixz
body: Sorry to give you contradictory comments :') I didn't read the previous reviews, my bad!
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:53:27Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:53:37Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:55:04Z
user: login: picnixz
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-16T11:57:19Z
user: login: picnixz
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-16T11:58:12Z
user: login: makridenko
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-16T11:58:43Z
user: login: malemburg
body: LGTM, though I haven't actually run the test suite with these changes, or built the docs.

Note: The PR branch needs to be rebased before it can be merged.
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-16T12:38:34Z

Review comments:
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: eendebakpt
body: The 3.13 what's new is a historical document, I would leave it unchanged.
created_at: 2025-05-11T11:16:50Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: makridenko
body: @eendebakpt One of the tests failed because of this. If that's acceptable, I'll keep it.
created_at: 2025-05-11T11:17:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,12 @@ Deprecated
 Removed
 =======
 
+platform
+---------
path: Doc/whatsnew/3.15.rst
user: login: eendebakpt
body: ```suggestion
--------
```
created_at: 2025-05-11T11:21:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,12 @@ Deprecated
 Removed
 =======
 
+platform
+---------
path: Doc/whatsnew/3.15.rst
user: login: makridenko
body: @eendebakpt thank you! fixed it
created_at: 2025-05-11T11:32:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: makridenko
body: @eendebakpt so.. keep '~' with failed test or not?
created_at: 2025-05-11T13:18:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: StanFromIreland
body: It is fine. These are always updated when a function is removed.
created_at: 2025-05-11T18:32:48Z
author_association: MEMBER
diff_hunk: @@ -121,6 +121,12 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* The deprecated :func:`!platform.java_ver` function.
path: Doc/whatsnew/3.15.rst
user: login: StanFromIreland
body: ```suggestion
* Removed the deprecated :func:`!platform.java_ver` function.
```
To save Benedikt copy-editing it later. (See line 133)

You can also link this pr. (See line 134 as an example)
created_at: 2025-05-11T18:33:52Z
author_association: MEMBER
diff_hunk: @@ -31,6 +31,7 @@
 #
 #    <see CVS and SVN checkin messages for history>
 #
+#    1.1.0 - removed deprecated java_ver()
path: Lib/platform.py
user: login: StanFromIreland
body: Not noteworthy enough IMO. These are rarely updated, but it is up to @malemburg in the end.
created_at: 2025-05-11T18:35:21Z
author_association: MEMBER
diff_hunk: @@ -31,6 +31,7 @@
 #
 #    <see CVS and SVN checkin messages for history>
 #
+#    1.1.0 - removed deprecated java_ver()
path: Lib/platform.py
user: login: malemburg
body: No need to add to that list anymore. The checkin messages provide enough history.
created_at: 2025-05-12T19:39:02Z
author_association: MEMBER
diff_hunk: @@ -31,6 +31,7 @@
 #
 #    <see CVS and SVN checkin messages for history>
 #
+#    1.1.0 - removed deprecated java_ver()
path: Lib/platform.py
user: login: malemburg
body: You may want to change `#    <see CVS and SVN checkin messages for history>` to `#    <see checkin messages for history>`
created_at: 2025-05-12T19:39:57Z
author_association: MEMBER
diff_hunk: @@ -31,6 +31,7 @@
 #
 #    <see CVS and SVN checkin messages for history>
 #
+#    1.1.0 - removed deprecated java_ver()
path: Lib/platform.py
user: login: makridenko
body: @malemburg thank you! done
created_at: 2025-05-13T12:33:56Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,12 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* The deprecated :func:`!platform.java_ver` function.
path: Doc/whatsnew/3.15.rst
user: login: makridenko
body: @StanFromIreland thank you! done
created_at: 2025-05-13T12:34:09Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: picnixz
body: We need to update them because otherwise docs won't be able to build.
created_at: 2025-05-16T11:24:29Z
author_association: MEMBER
diff_hunk: @@ -121,6 +121,13 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the deprecated :func:`!platform.java_ver` function.
+  (Contributed by Alexey Makridenko in :gh:`133888`.)
path: Doc/whatsnew/3.15.rst
user: login: picnixz
body: ```suggestion
* Removed the :func:`!platform.java_ver` function,
  which was deprecated since Python 3.13.
  (Contributed by Alexey Makridenko in :gh:`133888`.)
```

The link should be the issue, not the PR.
created_at: 2025-05-16T11:25:47Z
author_association: MEMBER
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
path: Lib/platform.py
user: login: picnixz
body: ```suggestion
#    <see VCS messages for history>
```
created_at: 2025-05-16T11:26:18Z
author_association: MEMBER
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
 #
 #    1.0.9 - added invalidate_caches() function to invalidate cached values
path: Lib/platform.py
user: login: picnixz
body: Update the history to add the 1.1.0 entry (I've updated it, and I think it's fine to continue adding major updates in this file)
created_at: 2025-05-16T11:26:31Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1 @@
+Remove deprecated function :func:`!platform.java_ver`.
path: Misc/NEWS.d/next/Library/2025-05-11-12-56-52.gh-issue-133604.kFxhc8.rst
user: login: picnixz
body: ```suggestion
Remove :func:`!platform.java_ver` which was deprecated since Python 3.13.
```
created_at: 2025-05-16T11:27:26Z
author_association: MEMBER
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
 #
 #    1.0.9 - added invalidate_caches() function to invalidate cached values
path: Lib/platform.py
user: login: makridenko
body: Hi, @picnixz 
@malemburg said that there is no need to update this list anymore
created_at: 2025-05-16T11:46:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
path: Lib/platform.py
user: login: makridenko
body: @malemburg ask to change this line to `#    <see checkin messages for history>`
created_at: 2025-05-16T11:47:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,13 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the deprecated :func:`!platform.java_ver` function.
+  (Contributed by Alexey Makridenko in :gh:`133888`.)
path: Doc/whatsnew/3.15.rst
user: login: makridenko
body: thank you! fixed it
created_at: 2025-05-16T11:47:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1 @@
+Remove deprecated function :func:`!platform.java_ver`.
path: Misc/NEWS.d/next/Library/2025-05-11-12-56-52.gh-issue-133604.kFxhc8.rst
user: login: makridenko
body: thank you! fixed it
created_at: 2025-05-16T11:47:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: makridenko
body: I'm sorry, I'm a little confused. What should I leave in this file? `~` or `!`?
created_at: 2025-05-16T11:49:14Z
author_association: CONTRIBUTOR
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: picnixz
body: Leave `!`
created_at: 2025-05-16T11:50:46Z
author_association: MEMBER
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
path: Lib/platform.py
user: login: picnixz
body: Oh right, my bad!
created_at: 2025-05-16T11:51:38Z
author_association: MEMBER
diff_hunk: @@ -29,7 +29,7 @@
 #
 #    History:
 #
-#    <see CVS and SVN checkin messages for history>
+#    <see checkin messages for history>
 #
 #    1.0.9 - added invalidate_caches() function to invalidate cached values
path: Lib/platform.py
user: login: picnixz
body: Oh. I've updated it in 1.0.9 (in Python 3.14), but ok.
created_at: 2025-05-16T11:52:05Z
author_association: MEMBER
diff_hunk: @@ -121,6 +121,13 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the deprecated :func:`!platform.java_ver` function, which was deprecated since Python 3.13.
path: Doc/whatsnew/3.15.rst
user: login: picnixz
body: ```suggestion
* Removed :func:`!platform.java_ver`, which was deprecated since Python 3.13.
```

Let's not exceed 80 chars and let's not repeat "deprecated". Or just repeat the NEWS entry.
created_at: 2025-05-16T11:53:14Z
author_association: MEMBER
diff_hunk: @@ -1908,7 +1908,7 @@ New Deprecations
 
 * :mod:`platform`:
 
-  * Deprecate :func:`~platform.java_ver`,
+  * Deprecate :func:`!platform.java_ver`,
path: Doc/whatsnew/3.13.rst
user: login: makridenko
body: @picnixz got it, thank you!
created_at: 2025-05-16T11:53:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,13 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the deprecated :func:`!platform.java_ver` function, which was deprecated since Python 3.13.
path: Doc/whatsnew/3.15.rst
user: login: makridenko
body: @picnixz fixed it
created_at: 2025-05-16T11:55:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -121,6 +121,14 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the :func:`!platform.java_ver` function, 
path: Doc/whatsnew/3.15.rst
user: login: picnixz
body: ```suggestion
* Removed the :func:`!platform.java_ver` function,
```

There was an extra space, my bad.
created_at: 2025-05-16T11:58:12Z
author_association: MEMBER
diff_hunk: @@ -121,6 +121,14 @@ Deprecated
 Removed
 =======
 
+platform
+--------
+
+* Removed the :func:`!platform.java_ver` function, 
path: Doc/whatsnew/3.15.rst
user: login: makridenko
body: @picnixz fixed it
created_at: 2025-05-16T11:58:43Z
author_association: CONTRIBUTOR

PR comments:
user: login: python-cla-bot[bot]
created_at: 2025-05-11T10:52:51Z
body: All commit authors signed the Contributor License Agreement.

[![CLA signed](https://img.shields.io/badge/CLA%20Signed-FAE085?style=flat-square&logo=Python)](https://cla.python.org/)<!-- CLA BOT SIGNING COMMENT DO NOT EDIT -->
author_association: NONE
user: login: bedevere-app[bot]
created_at: 2025-05-11T10:52:52Z
body: Most changes to Python [require a NEWS entry](https://devguide.python.org/core-developers/committing/#updating-news-and-what-s-new-in-python). Add one using the [blurb_it](https://blurb-it.herokuapp.com) web app or the [blurb](https://pypi.org/project/blurb/) command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the `skip news` label instead.

author_association: NONE
user: login: malemburg
created_at: 2025-05-16T12:39:21Z
body: Hmm, apparently, Github changed its mind about the need to rebase.
author_association: MEMBER
user: login: malemburg
created_at: 2025-05-16T12:40:40Z
body: @StanFromIreland Do want to review again ? Otherwise, I'll merge the PR soon.
author_association: MEMBER
user: login: malemburg
created_at: 2025-05-16T14:18:17Z
body: Thanks, @makridenko, for your work on this.
author_association: MEMBER
user: login: StanFromIreland
created_at: 2025-05-16T14:29:45Z
body: Apologies I was unavailable.
author_association: MEMBER