Skip to content

Commit 551a27a

Browse files
2024.2 release
1 parent dff44f7 commit 551a27a

20 files changed

Lines changed: 493 additions & 499 deletions

BUILD.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ These are Build instructions for P4API.net and its required DLL and various test
66

77
With the 2021.2 release, `P4API.NET` has been extended to support .NET CORE and to be cross-platform on three Target OS's (Windows, Linux, OSX)
88

9+
With the 2024.2 release, 'P4API.NET' has been extended to support Linux and Mac ARM64 architecture systems.
10+
911
P4API.NET consists of a DLL written in C++ which contains the Perforce C++ API, which is wrapped by a layer of C# code which exports the .NET interface.
1012

1113
Within this directory are several subprojects. p4bridge, p4bridge-unit-test, p4bridgeStressTest, p4api.net and p4api.net-unit-test

LICENSE.txt

Lines changed: 12 additions & 320 deletions
Large diffs are not rendered by default.

RELEASENOTES.txt

Lines changed: 78 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Release Notes for
22
P4API.NET, the Helix P4API for .NET
33

4-
Version 2024.1
4+
Version 2024.2
55

66
Introduction
77

@@ -67,8 +67,8 @@ Compatibility Statements
6767

6868
API Compatibility
6969

70-
This release of P4API.NET requires the 2024.1 Helix Core API
71-
(2024.1/2596294) for C/C++ (P4API), built with Visual Studio 2019 or
70+
This release of P4API.NET requires the 2024.2 Helix Core API
71+
(2024.2/2675662) for C/C++ (P4API), built with Visual Studio 2019 or
7272
later.
7373

7474
C#/.NET Compatibility
@@ -81,17 +81,19 @@ Compatibility Statements
8181
Platform Compatibility
8282

8383
While P4API.NET is generally usable on Windows, Linux and MacOS
84-
platforms, the release is certified only on the following platforms:
84+
platforms, the release is tested only on the following platforms:
8585

86-
Windows
87-
Windows 10
88-
Windows Server 2019
89-
Windows Server 2022
86+
Windows for Intel(x86_64)
87+
Windows 10,11
88+
Windows Server 2019,2022
9089
Mac OS
91-
MacOS 12.2
92-
Linux
90+
12.2 (x86_64)
91+
12,13 (ARM64)
92+
Linux kernel 2.6+ for Intel(x86_64)
9393
Ubuntu 20.04
94-
94+
Linux kernel 2.6+ for ARM(aarch64)
95+
Ubuntu 20.04
96+
9597
Compiler Compatibility
9698

9799
Details regarding compiler compatibility can be found in the source
@@ -103,6 +105,13 @@ Compatibility Statements
103105
Unless otherwise stated below, this release of P4API.NET is compatible
104106
with previous releases from Perforce Software.
105107

108+
---------------------------------------------------------------------------
109+
Important End-of-Life Notice
110+
111+
This major release of P4API.NET would be the last to support '.Net 6.0'.
112+
Next major release will add support for '.Net 8.0'.
113+
This is part of our commitment to focus on supported technology platforms.
114+
106115
--------------------------------------------------------------------------
107116

108117
Key to symbols used in change notes below.
@@ -111,6 +120,64 @@ Key to symbols used in change notes below.
111120
** -- requires P4API.NET built with new P4API
112121
*** -- requires new p4d server program
113122

123+
--------------------------------------------------------------------------
124+
New functionality in 2024.2 (2024.2/2693570) (2024/12/10)
125+
126+
#2682306 (Job #122604) * ** ***
127+
Updated P4API.NET to support 2024.2 release of Helix Core.
128+
129+
#2688952,2688933,2690282 (Job #122182,#123875) * ** ***
130+
Added P4Bridge & build support for Linux ARM64/AARCH64 architecture.
131+
132+
#2681514,2681534,2681515,2690282 (Job #118414,#123875) * ** ***
133+
Added P4Bridge & build support for Apple M1 (ARM64) architecture.
134+
P4Bridge now supports universal binary for x64 and ARM64 machines
135+
for macosx.
136+
137+
#2683196 (Job #123225) * ** ***
138+
Added support for --client-case-insensitive for client and
139+
--user-case-insensitive option for user for changes command.
140+
Users can now get changelists without case sensitivity for
141+
usernames or client names, even if the server is case-sensitive.
142+
143+
#2684063 (Job #123230) * ** ***
144+
Added support for multiple -c and -u for p4 changes command.
145+
User can now get changelists from multiple clients and
146+
users.
147+
Note: User needs to pass client name/user name as ';' separated
148+
string while passing values to ChangesCmdOptions object.
149+
150+
#2683152 (Job #123232) * ** ***
151+
Add support for --user-case-insensitive flag for p4 labels command.
152+
Users can now get labels without worrying about case sensitivity,
153+
even if the server is case-sensitive.
154+
155+
#2683154 (Job #123227) * ** ***
156+
Add support for --user-case-insensitive option for p4 branches.
157+
Users can now get branches without worrying about case sensitivity,
158+
even if the server is case-sensitive.
159+
160+
#2683169 (Job #123226) * ** ***
161+
Added suppport for option --user-case-insensitve for p4 clients command.
162+
Users can now get clients without worrying about case sensitivity,
163+
even if the server is case-sensitive.
164+
165+
--------------------------------------------------------------------------
166+
Bugs fixed in 2024.2 (2024.2/2693570) (2024/12/10)
167+
168+
#2689825 (Job #119342) *
169+
Fixed issue while loading p4bridge.dll in single-file bundles.
170+
171+
#2685105 (Job #123137) *
172+
This fix addresses vulnerabilties CVE-2024-43485
173+
174+
--------------------------------------------------------------------------
175+
176+
Bugs fixed in 2024.1 Patch 1 (2024.1/2655426) (2024/09/18)
177+
178+
#2654528 (Job #122566) *
179+
Fixed unhandled exception while fetching server information.
180+
114181
--------------------------------------------------------------------------
115182
New functionality in 2024.1 (2024.1/2618274) (2024/06/27)
116183

p4api.net-unit-test/Utilities.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Microsoft.Extensions.Configuration;
1010
using System.Text.RegularExpressions;
1111
using File = System.IO.File;
12+
using System.Runtime.InteropServices;
1213

1314
namespace p4api.net.unit.test
1415
{
@@ -25,12 +26,15 @@ enum Platform
2526

2627
Platform current_platform;
2728

29+
Architecture current_architecture;
30+
2831
public PlatformID CurrentPlatform { get; set; }
2932
public string WindowsTestDirectory { get; set; }
3033
public string WindowsP4dPath { get; set; }
3134
public string WindowsTarPath { get; set; }
3235
public string LinuxTestDirectory { get; set; }
3336
public string LinuxP4dPath { get; set; }
37+
public string LinuxArm64P4dPath { get; set; }
3438
public string LinuxTarPath { get; set; }
3539
public string OsxTestDirectory { get; set; }
3640
public string OsxP4dPath { get; set; }
@@ -75,7 +79,16 @@ public string P4dPath
7579
return OsxP4dPath;
7680

7781
if (current_platform == Platform.Linux)
78-
return LinuxP4dPath;
82+
{
83+
if (current_architecture == Architecture.Arm64)
84+
{
85+
return LinuxArm64P4dPath;
86+
}
87+
else
88+
{
89+
return LinuxP4dPath;
90+
}
91+
}
7992

8093
return WindowsP4dPath;
8194
}
@@ -98,7 +111,8 @@ public string TarPath
98111
public UnitTestConfiguration()
99112
{
100113
#if NET5_0_OR_GREATER
101-
string pdesc = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
114+
string pdesc = RuntimeInformation.OSDescription;
115+
current_architecture = RuntimeInformation.OSArchitecture;
102116

103117
if (pdesc.Contains("Darwin"))
104118
current_platform = Platform.Osx;
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
// JSON configuration file for p4api.net-unit-test
22
{
3-
"UnitTest": {
4-
"WindowsTestDirectory": "C:\\run-test\\MyTestDir",
5-
"WindowsP4dPath": "C:\\run-test\\p4-bin\\bin.ntx64\\p4d",
6-
"WindowsTarPath": "C:\\run-test\\tar.exe", // Probable value for a local machine: "C:\\Windows\\system32\\tar.exe"
7-
"LinuxTestDirectory": "/tmp/MyTestDir",
8-
"LinuxP4dPath": "/home/mount/p4-bin/bin.linux26x86_64/p4d",
9-
"LinuxTarPath": "/bin/tar",
10-
"OsxTestDirectory": "/tmp/MyTestDir",
11-
"OsxP4dPath": "/Users/admin/p4d/r24.1/p4d",
12-
"OsxTarPath": "/usr/bin/tar",
13-
"ServerPort": "localhost:3666"
14-
}
3+
"UnitTest": {
4+
"WindowsTestDirectory": "C:\\run-test\\MyTestDir",
5+
"WindowsP4dPath": "C:\\run-test\\p4-bin\\bin.ntx64\\p4d",
6+
"WindowsTarPath": "C:\\run-test\\tar.exe", // Probable value for a local machine: "C:\\Windows\\system32\\tar.exe"
7+
"LinuxTestDirectory": "/tmp/MyTestDir",
8+
"LinuxP4dPath": "/home/mount/p4-bin/bin.linux26x86_64/p4d",
9+
"LinuxArm64P4dPath": "/home/mount/p4-bin/bin.linux26aarch64/p4d",
10+
"LinuxTarPath": "/bin/tar",
11+
"OsxTestDirectory": "/tmp/MyTestDir",
12+
"OsxP4dPath": "/Users/admin/p4d/r24.2/p4d",
13+
"OsxTarPath": "/usr/bin/tar",
14+
"ServerPort": "localhost:3666"
15+
}
1516
}

p4api.net-unit-test/p4api.net-unit-test.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
3232
<PackageReference Include="MSTest.TestAdapter" Version="3.4.3" />
3333
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" />
34-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0-preview.6.21352.12" />
35-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0-preview.6.21352.12" />
36-
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0-preview.6.21352.12" />
34+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
35+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
36+
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
3737
<PackageReference Include="coverlet.collector" Version="6.0.2">
3838
<PrivateAssets>all</PrivateAssets>
3939
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)