Skip to content

Commit

Permalink
2024.2 release
Browse files Browse the repository at this point in the history
  • Loading branch information
shraddhaborate committed Dec 13, 2024
1 parent dff44f7 commit 551a27a
Show file tree
Hide file tree
Showing 20 changed files with 493 additions and 499 deletions.
2 changes: 2 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ These are Build instructions for P4API.net and its required DLL and various test

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)

With the 2024.2 release, 'P4API.NET' has been extended to support Linux and Mac ARM64 architecture systems.

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.

Within this directory are several subprojects. p4bridge, p4bridge-unit-test, p4bridgeStressTest, p4api.net and p4api.net-unit-test
Expand Down
332 changes: 12 additions & 320 deletions LICENSE.txt

Large diffs are not rendered by default.

89 changes: 78 additions & 11 deletions RELEASENOTES.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Release Notes for
P4API.NET, the Helix P4API for .NET

Version 2024.1
Version 2024.2

Introduction

Expand Down Expand Up @@ -67,8 +67,8 @@ Compatibility Statements

API Compatibility

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

C#/.NET Compatibility
Expand All @@ -81,17 +81,19 @@ Compatibility Statements
Platform Compatibility

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

Windows
Windows 10
Windows Server 2019
Windows Server 2022
Windows for Intel(x86_64)
Windows 10,11
Windows Server 2019,2022
Mac OS
MacOS 12.2
Linux
12.2 (x86_64)
12,13 (ARM64)
Linux kernel 2.6+ for Intel(x86_64)
Ubuntu 20.04

Linux kernel 2.6+ for ARM(aarch64)
Ubuntu 20.04

Compiler Compatibility

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

---------------------------------------------------------------------------
Important End-of-Life Notice

This major release of P4API.NET would be the last to support '.Net 6.0'.
Next major release will add support for '.Net 8.0'.
This is part of our commitment to focus on supported technology platforms.

--------------------------------------------------------------------------

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

--------------------------------------------------------------------------
New functionality in 2024.2 (2024.2/2693570) (2024/12/10)

#2682306 (Job #122604) * ** ***
Updated P4API.NET to support 2024.2 release of Helix Core.

#2688952,2688933,2690282 (Job #122182,#123875) * ** ***
Added P4Bridge & build support for Linux ARM64/AARCH64 architecture.

#2681514,2681534,2681515,2690282 (Job #118414,#123875) * ** ***
Added P4Bridge & build support for Apple M1 (ARM64) architecture.
P4Bridge now supports universal binary for x64 and ARM64 machines
for macosx.

#2683196 (Job #123225) * ** ***
Added support for --client-case-insensitive for client and
--user-case-insensitive option for user for changes command.
Users can now get changelists without case sensitivity for
usernames or client names, even if the server is case-sensitive.

#2684063 (Job #123230) * ** ***
Added support for multiple -c and -u for p4 changes command.
User can now get changelists from multiple clients and
users.
Note: User needs to pass client name/user name as ';' separated
string while passing values to ChangesCmdOptions object.

#2683152 (Job #123232) * ** ***
Add support for --user-case-insensitive flag for p4 labels command.
Users can now get labels without worrying about case sensitivity,
even if the server is case-sensitive.

#2683154 (Job #123227) * ** ***
Add support for --user-case-insensitive option for p4 branches.
Users can now get branches without worrying about case sensitivity,
even if the server is case-sensitive.

#2683169 (Job #123226) * ** ***
Added suppport for option --user-case-insensitve for p4 clients command.
Users can now get clients without worrying about case sensitivity,
even if the server is case-sensitive.

--------------------------------------------------------------------------
Bugs fixed in 2024.2 (2024.2/2693570) (2024/12/10)

#2689825 (Job #119342) *
Fixed issue while loading p4bridge.dll in single-file bundles.

#2685105 (Job #123137) *
This fix addresses vulnerabilties CVE-2024-43485

--------------------------------------------------------------------------

Bugs fixed in 2024.1 Patch 1 (2024.1/2655426) (2024/09/18)

#2654528 (Job #122566) *
Fixed unhandled exception while fetching server information.

--------------------------------------------------------------------------
New functionality in 2024.1 (2024.1/2618274) (2024/06/27)

Expand Down
18 changes: 16 additions & 2 deletions p4api.net-unit-test/Utilities.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using Microsoft.Extensions.Configuration;
using System.Text.RegularExpressions;
using File = System.IO.File;
using System.Runtime.InteropServices;

namespace p4api.net.unit.test
{
Expand All @@ -25,12 +26,15 @@ enum Platform

Platform current_platform;

Architecture current_architecture;

public PlatformID CurrentPlatform { get; set; }
public string WindowsTestDirectory { get; set; }
public string WindowsP4dPath { get; set; }
public string WindowsTarPath { get; set; }
public string LinuxTestDirectory { get; set; }
public string LinuxP4dPath { get; set; }
public string LinuxArm64P4dPath { get; set; }
public string LinuxTarPath { get; set; }
public string OsxTestDirectory { get; set; }
public string OsxP4dPath { get; set; }
Expand Down Expand Up @@ -75,7 +79,16 @@ public string P4dPath
return OsxP4dPath;

if (current_platform == Platform.Linux)
return LinuxP4dPath;
{
if (current_architecture == Architecture.Arm64)
{
return LinuxArm64P4dPath;
}
else
{
return LinuxP4dPath;
}
}

return WindowsP4dPath;
}
Expand All @@ -98,7 +111,8 @@ public string TarPath
public UnitTestConfiguration()
{
#if NET5_0_OR_GREATER
string pdesc = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
string pdesc = RuntimeInformation.OSDescription;
current_architecture = RuntimeInformation.OSArchitecture;

if (pdesc.Contains("Darwin"))
current_platform = Platform.Osx;
Expand Down
25 changes: 13 additions & 12 deletions p4api.net-unit-test/appsettings.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
// JSON configuration file for p4api.net-unit-test
{
"UnitTest": {
"WindowsTestDirectory": "C:\\run-test\\MyTestDir",
"WindowsP4dPath": "C:\\run-test\\p4-bin\\bin.ntx64\\p4d",
"WindowsTarPath": "C:\\run-test\\tar.exe", // Probable value for a local machine: "C:\\Windows\\system32\\tar.exe"
"LinuxTestDirectory": "/tmp/MyTestDir",
"LinuxP4dPath": "/home/mount/p4-bin/bin.linux26x86_64/p4d",
"LinuxTarPath": "/bin/tar",
"OsxTestDirectory": "/tmp/MyTestDir",
"OsxP4dPath": "/Users/admin/p4d/r24.1/p4d",
"OsxTarPath": "/usr/bin/tar",
"ServerPort": "localhost:3666"
}
"UnitTest": {
"WindowsTestDirectory": "C:\\run-test\\MyTestDir",
"WindowsP4dPath": "C:\\run-test\\p4-bin\\bin.ntx64\\p4d",
"WindowsTarPath": "C:\\run-test\\tar.exe", // Probable value for a local machine: "C:\\Windows\\system32\\tar.exe"
"LinuxTestDirectory": "/tmp/MyTestDir",
"LinuxP4dPath": "/home/mount/p4-bin/bin.linux26x86_64/p4d",
"LinuxArm64P4dPath": "/home/mount/p4-bin/bin.linux26aarch64/p4d",
"LinuxTarPath": "/bin/tar",
"OsxTestDirectory": "/tmp/MyTestDir",
"OsxP4dPath": "/Users/admin/p4d/r24.2/p4d",
"OsxTarPath": "/usr/bin/tar",
"ServerPort": "localhost:3666"
}
}
6 changes: 3 additions & 3 deletions p4api.net-unit-test/p4api.net-unit-test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.4.3" />
<PackageReference Include="MSTest.TestFramework" Version="3.4.3" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0-preview.6.21352.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0-preview.6.21352.12" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="6.0.0-preview.6.21352.12" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Loading

0 comments on commit 551a27a

Please sign in to comment.