1
1
Release Notes for
2
- P4Python, Helix Core API for Python
2
+ P4Python, P4 API for Python
3
3
4
- Version 2024.2
4
+ Version 2025.1
5
5
6
6
Introduction
7
7
@@ -23,11 +23,22 @@ Introduction
23
23
24
24
--------------------------------------------------------------------------
25
25
26
+ Important Product Rebrand Notice
27
+
28
+ Helix Core is now P4
29
+ Perforce has a new look and logo that reflects our place in DevOps
30
+ workflows. As part of these changes, Helix Core is now P4. Name updates
31
+ and new icons to align with the P4 branding will be rolled out soon.
32
+ To learn more, see:
33
+ https://www.perforce.com/blog/vcs/introducing-the-p4-platform
34
+
35
+ --------------------------------------------------------------------------
36
+
26
37
Important End-of-Life Notice
27
38
28
- This major release of P4Python would be the last to provide wheels for and
29
- test against Python 3.8 . This is part of our commitment to focus on
30
- supported technology platforms
39
+ This release of P4Python would be the last to support and test against
40
+ Python 3.9, which is in EOL status . This is part of our commitment to
41
+ focus on supported technology platforms.
31
42
32
43
--------------------------------------------------------------------------
33
44
@@ -47,9 +58,10 @@ Installation
47
58
48
59
python3 -m pip install --upgrade p4python
49
60
50
- P4Python is distributed as a binary wheels for Python 3.8, 3.9, 3.10,
51
- 3.11, 3.12 and 3.13. In order for the binary wheel to be used, the ABI tag needs to
52
- match.This often requires updated pip, to do so issue:
61
+ P4Python is distributed as a binary wheels for Python 3.9, 3.10,
62
+ 3.11, 3.12 and 3.13. In order for the binary wheel to be used, the ABI
63
+ tag needs to match. This often requires updated pip, to do so issue:
64
+
53
65
python3 -m pip install --upgrade pip
54
66
55
67
Installation using Linux binary packages
@@ -112,24 +124,23 @@ Compatibility Statements
112
124
113
125
Server Compatibility
114
126
115
- You can use any release of P4Python with any release of the
116
- Perforce server later than 2001.1
127
+ This release of P4Python supports the 2025.1 P4 Server.
128
+ Older releases might work but are not supported.
117
129
118
130
API Compatibility
119
131
120
- This release of P4Python requires at least 2024.2 Perforce API
121
- (2024.2/2675662 ). Older releases will not compile and are not supported.
132
+ This release of P4Python requires at least 2025.1 P4 C/C++ API
133
+ (2025.1/2761706 ). Older releases will not compile and are not supported.
122
134
123
135
Python Compatibility
124
136
125
137
This release of P4Python is supported building from source with
126
- Python 3.8, 3. 9, 3.10, 3.11, 3.12 and 3.13.
138
+ Python 3.9, 3.10, 3.11, 3.12 and 3.13.
127
139
128
140
For detailed compatibility, please check the following table:
129
141
130
142
Python Release | P4Python Release
131
143
======================================
132
- 3.8 | 2020.1 or later
133
144
3.9 | 2021.1 or later
134
145
3.10 | 2022.1 or later
135
146
3.11 | 2022.2 or later
@@ -139,11 +150,11 @@ Compatibility Statements
139
150
OpenSSL Compatibility
140
151
141
152
To build P4Python with encrypted communication support, you must use the
142
- version of OpenSSL that Perforce C/C++ API has been built against.
153
+ version of OpenSSL that P4 C/C++ API has been built against.
143
154
144
- Beginning with the 2017.1 release of the Helix C/C++ API, the dependency on
155
+ Beginning with the 2017.1 release of the P4 C/C++ API, the dependency on
145
156
OpenSSL is now enforced and the SSL stub library has been removed.
146
- Executables linked against the P4API libraries must also be linked against
157
+ Executables linked against the P4 C/C++ API libraries must also be linked against
147
158
real OpenSSL libraries: The latest 3.0.x or 1.1.1 patch is recommended
148
159
149
160
Platform Compatibility
@@ -172,33 +183,29 @@ Compatibility Statements
172
183
Compiler Compatibility
173
184
174
185
To build P4Python from source, you must use a version of P4Python that has
175
- been compiled with the same compiler used to build the Perforce C++ API.
186
+ been compiled with the same compiler used to build the P4 C/ C++ API.
176
187
For most platforms, use gcc/g++.
177
188
178
- On Linux since the 2019.1 P4API release, due to a change in library
189
+ On Linux since the 2019.1 P4 C/C++ API release, due to a change in library
179
190
dependencies, the source code requires gcc 6 or above to be used.
180
191
181
192
Attempting to use a different compiler or a different version of the
182
193
compiler will cause link errors due to differences in name handling.
183
194
184
- For more information about P4API compiler requirements, please see this link:
195
+ For more information about P4 C/C++ API compiler requirements, please see this link:
185
196
https://www.perforce.com/manuals/p4api/Content/P4API/client.programming.compiling.html
186
197
187
- On Windows platforms, the P4Python installer is build with Python from
188
- python.org. The installer for Python 3.x was built with Visual Studio 2017
189
- and Visual Studio 2008 for Python 2.
190
-
191
198
To run Python 3.x on Windows, it might be necessary to install the
192
199
redistributable version of the 2017 libraries, vc_redist.x64.exe or
193
200
vc_redist.x86.exe, respectively for 64 bit and 32 bit.
194
- Without these libraries the DLL for P4API will not load into Python and
201
+ Without these libraries the DLL for P4 C/C++ API will not load into Python and
195
202
the command 'import P4' will fail.
196
203
197
204
Known Limitations
198
205
199
- The Perforce client-server protocol is not designed to support
206
+ The P4 client-server protocol is not designed to support
200
207
multiple concurrent queries over the same connection. For this
201
- reason, multi-threaded applications using the C++ API or the
208
+ reason, multi-threaded applications using the P4 C/ C++ API or the
202
209
script APIs (P4Perl, P4Ruby, etc.) should ensure that a
203
210
separate connection is used for each thread or that only one
204
211
thread may use a shared connection at a time.
@@ -212,7 +219,7 @@ Compatibility Statements
212
219
213
220
Attributes
214
221
215
- Perforce P4Python provides the attributes listed below. Attributes
222
+ P4Python provides the attributes listed below. Attributes
216
223
can be set in the P4() constructor or by using their setters and
217
224
getters. For example:
218
225
@@ -277,7 +284,7 @@ Attributes
277
284
278
285
Tagged mode and form parsing
279
286
280
- In Perforce P4Python 2007.3 and later, form parsing and tagged
287
+ In P4Python 2007.3 and later, form parsing and tagged
281
288
output are enabled by default. (In Public Depot P4Python,
282
289
tagged output and form parsing mode were disabled by default,
283
290
but most scripts enabled them immediately.)
@@ -297,8 +304,36 @@ Tagged mode and form parsing
297
304
Key to symbols used in change notes below.
298
305
299
306
* -- requires new P4Python
300
- ** -- requires new p4d server program
301
- *** -- requires new P4API
307
+ ** -- requires new P4 server program
308
+ *** -- requires new P4 C/C++ API
309
+
310
+ --------------------------------------------------------------------------
311
+
312
+ New functionalities in 2025.1 (2025.1/2767466) (2025/05/21)
313
+
314
+ #2757777 (Job #125785)
315
+ Built P4Python with P4 C/C++ API 2025.1 (2025.1/2761706)
316
+
317
+ Bugs fixed in 2025.1
318
+
319
+ #2744582 (Job #123978)
320
+ Eliminated hardcoded bash paths, improving portability and flexibility.
321
+ Replaced shell=True with safer subprocess calls using command lists.
322
+
323
+ #2743827 (Job #124153)
324
+ Updated P4Python build behavior to disable silent OPENSSL installation.
325
+ Users must now explicitly set the env variable "P4PYTHON_BUILD_SSL=yes"
326
+ to enable OPENSSL support during build.
327
+ If enabled, OPENSSL sources will be downloaded from the HTTPS-based
328
+ URL: https://www.openssl.org/source.
329
+ Added the support to build P4Python with OPENSSL 3.x.
330
+
331
+ #2705918 (Job #124154)
332
+ Change auto_ptr into unique_ptr as auto_ptr is obsoleted from C++11.
333
+
334
+ #2743928 (Job #124332)
335
+ Fixed exponential rise of the time needed to run p4.run_print() with
336
+ growing file size.
302
337
303
338
--------------------------------------------------------------------------
304
339
0 commit comments