Skip to content

Commit aea0fab

Browse files
2025.1 release
2025.1 release
1 parent 551a27a commit aea0fab

21 files changed

Lines changed: 1301 additions & 107 deletions

BUILD.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
These are Build instructions for P4API.net and its required DLL and various test utilities
44

5-
## The .NET Core (6.0) cross-platform port
5+
## The .NET Core (8.0) cross-platform port
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

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

11+
With the 2025.1 release, 'P4API.NET' has been extended to support .NET 8.0 and to be cross-platform on three Target OS's (Windows, Linux, OSX) and has dropped support for .NET 6.0.
12+
1113
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.
1214

1315
Within this directory are several subprojects. p4bridge, p4bridge-unit-test, p4bridgeStressTest, p4api.net and p4api.net-unit-test
@@ -17,15 +19,15 @@ Within this directory are several subprojects. p4bridge, p4bridge-unit-test, p4
1719
### p4apicore.net.sln
1820

1921
[p4apicore.net.sln](p4apicore.net.sln) - This solution includes projects [p4api.net.csproj](./p4api.net/p4api.net.csproj) and [p4api.net-unit-test.csproj](./p4api.net-unit-test/p4api.net-unit-test.csproj).
20-
Both of the projects target frameworks .NET Framework 4.6.2, .Net Core 6.0 and .NET Standard 2.0.
22+
Both of the projects target frameworks .NET Framework 4.6.2, .Net Core 8.0 and .NET Standard 2.0.
2123
> It only includes the C# portions of the project.
2224
> It can be built using the `dotnet build p4apicore.net.sln` command.
2325
This solution can be opened by the "dotnet" executable on any supported platform, or by VS2019+ on windows only.
2426
This is the primary solution to be used for building and/or debugging P4API.NET and its unit tests.
2527

2628
### Sample Applications
2729

28-
Sample Console Applications for .NET 6.0 are provided here:
30+
Sample Console Applications for .NET 8.0 are provided here:
2931
[consoleApps/ControlCTest.sln](consoleApps/ControlCTest.sln) and [consoleApps/P4DotNetConsole.sln](consoleApps/P4DotNetConsole.sln)
3032

3133
Sample Applications for .NET framework are provided here:
@@ -90,14 +92,14 @@ The source, build and configuration instructions for these tests is in the *p4br
9092

9193
**IMPORTANT!** - The C++ bridge must have already been built before building P4API.NET.
9294

93-
Make sure you have an updated .NET 6.0 SDK (or better) installed for your platform.
95+
Make sure you have an updated .NET 8.0 SDK (or better) installed for your platform.
9496
download from here: [Microsoft .NET Downloads](https://dotnet.microsoft.com/download)
9597

9698
in the p4api.net root folder run
9799
`dotnet build p4apicore.net.sln`
98100

99-
This will create The .NET DLL in `p4api.net\bin\Debug\net60\p4api.net.dll`, `p4api.net\bin\Debug\net462\p4api.net.dll`, `p4api.net\bin\Debug\netstandard2.0\p4api.net.dll`
100-
And the Unit test in `\p4api.net-unit-test\bin\Debug\net60\p4api.net-unit-test.dll`, `\p4api.net-unit-test\bin\Debug\net462\p4api.net-unit-test.dll`, `\p4api.net-unit-test\bin\Debug\netstandard2.0\p4api.net-unit-test.dll`
101+
This will create The .NET DLL in `p4api.net\bin\Debug\net80\p4api.net.dll`, `p4api.net\bin\Debug\net462\p4api.net.dll`, `p4api.net\bin\Debug\netstandard2.0\p4api.net.dll`
102+
And the Unit test in `\p4api.net-unit-test\bin\Debug\net80\p4api.net-unit-test.dll`, `\p4api.net-unit-test\bin\Debug\net462\p4api.net-unit-test.dll`, `\p4api.net-unit-test\bin\Debug\netstandard2.0\p4api.net-unit-test.dll`
101103
It will also copy the p4bridge.dll from the appropriate place in the ../p4bridge output into the default output directory.
102104

103105
On Windows, you can specify a specific Configuration and Platform with parameters:
@@ -115,10 +117,10 @@ into proper runtime locations.
115117
`dotnet test p4apicore.net.sln`
116118

117119
> Filter on the dotnet framework to run upon
118-
>> `dotnet test p4apicore.net.sln -f net60`
120+
>> `dotnet test p4apicore.net.sln -f net80`
119121
>
120122
> Filter on the specific test to run
121-
>> `dotnet test p4apicore.net.sln -f net60 --filter TestName`
123+
>> `dotnet test p4apicore.net.sln -f net80 --filter TestName`
122124
123125

124126
* **Visual Studio 2019** can be used to debug the .NET unit tests if you are running in Windows.
@@ -134,7 +136,7 @@ Unfortunately, you cannot debug through the C++ code using Rider.
134136
2. Build the four varieties of p4bridge first
135137
3. `dotnet pack p4apicore.net.sln`
136138

137-
This will create an Assembly DLL in *.\bin\p4api.net\bin\Debug\net6.0\p4api.net.dll*
139+
This will create an Assembly DLL in *.\bin\p4api.net\bin\Debug\net8.0\p4api.net.dll*
138140
and a nuget package in:
139141
*p4api.net\bin\Debug\p4api.net.VERSION.nupkg*
140142

LICENSE.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2024, Perforce Software, Inc. All rights reserved.
1+
Copyright (c) 2025, Perforce Software, Inc. All rights reserved.
22

33
Redistribution and use in source and binary forms, with or without
44
modification, are permitted provided that the following conditions are met:
@@ -40,7 +40,7 @@ this program.
4040

4141
P4/P4API License
4242
-----------------------
43-
Copyright (c) 1995-2024, Perforce Software, Inc.
43+
Copyright (c) 1995-2025, Perforce Software, Inc.
4444
All rights reserved.
4545

4646
Redistribution and use in source and binary forms, with or without

RELEASENOTES.txt

Lines changed: 59 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Release Notes for
2-
P4API.NET, the Helix P4API for .NET
2+
P4API.NET, the P4 API for .NET
33

4-
Version 2024.2
4+
Version 2025.1
55

66
Introduction
77

@@ -45,7 +45,7 @@ Building P4API.NET from Source
4545
P4API.NET supports SSL connections, and requires linking with SSL
4646
libraries.
4747

48-
Executables linked against the P4API libraries must also be linked
48+
Executables linked against the P4 C/C++ API libraries must also be linked
4949
against real OpenSSL libraries: The latest 3.0.x patch is recommended.
5050
Use the OpenSSL libraries as mentioned in BUILD.md.
5151

@@ -60,22 +60,20 @@ Compatibility Statements
6060

6161
Server Compatibility
6262

63-
You can use this release of P4API.NET with any release of the
64-
Perforce server at or later than 2018.1, but to ensure maximum
65-
compatibility, it is recommended that you use it with the
66-
corresponding Perforce server release
63+
This release of P4API.NET supports the P4 Server 2025.1.
64+
Older releases might work but are not supported.
6765

6866
API Compatibility
6967

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
68+
This release of P4API.NET requires the 2025.1 P4 C/C++ API
69+
(2025.1/2761706), built with Visual Studio 2019 or
7270
later.
7371

7472
C#/.NET Compatibility
7573

7674
This release of P4API.NET, when built from source using
7775
p4apicore.net.sln, is compatible with '.NET Framework 4.6.2',
78-
'.NET 6.0' and '.NET Standard 2.0'. Other .Net Framework, .NET Core
76+
'.NET 8.0' and '.NET Standard 2.0'. Other .Net Framework, .NET Core
7977
and .NET Standard versions might work, but are not supported.
8078

8179
Platform Compatibility
@@ -103,23 +101,67 @@ Compatibility Statements
103101
Compatibility with Previous Releases
104102

105103
Unless otherwise stated below, this release of P4API.NET is compatible
106-
with previous releases from Perforce Software.
104+
with previous releases from P4 Software.
107105

108-
---------------------------------------------------------------------------
109-
Important End-of-Life Notice
106+
--------------------------------------------------------------------------
107+
108+
Important Product Rebrand Notice
110109

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.
110+
Helix Core is now P4
111+
Perforce has a new look and logo that reflects our place in DevOps
112+
workflows. As part of these changes, Helix Core is now P4. Name updates
113+
and new icons to align with the P4 branding will be rolled out soon.
114+
To learn more, see:
115+
https://www.perforce.com/blog/vcs/introducing-the-p4-platform
114116

115117
--------------------------------------------------------------------------
116118

117119
Key to symbols used in change notes below.
118120

119121
* -- requires new P4API.NET
120-
** -- requires P4API.NET built with new P4API
122+
** -- requires P4API.NET built with new P4 C/C++ API
121123
*** -- requires new p4d server program
122124

125+
--------------------------------------------------------------------------
126+
New functionality in 2025.1 (2025.1/2773624) (2025/06/03)
127+
128+
#2762830,2763155 (Job #125774) * ** ***
129+
Updated P4API.NET to support 2025.1 release of P4 C/C++ API.
130+
131+
#2754421 (Job #123673) * ** ***
132+
Added support for .NET SDK 8.0.
133+
134+
#2765712,2766915 (Job #124086) * ** ***
135+
Added support for sparse stream creation and converting sparse
136+
stream into development/release stream.
137+
138+
#2749356,2752384 (Job #125614) * ** ***
139+
Added support for --sync-time option with -k for p4 sync.
140+
The --sync-time specifies the file modification time to
141+
be set when updating the server metadata with the -k flag.
142+
143+
#2760384 (Job #125905) * ** ***
144+
Added support for support -M and --parallel in p4 reconcile.
145+
The -M flag allows the missing and added files to be compared and
146+
converted to pairs of move/delete and move/add operations if they
147+
are similar enough.
148+
149+
#2762361 (Job #125907) * ** ***
150+
Added support for -M and --parallel flag for p4 move.
151+
The -M flag matches already opened files for add and delete in the
152+
default or specified changelist and reopens them as a move.
153+
154+
--------------------------------------------------------------------------
155+
Bugs fixed in 2025.1 (2025.1/2773624) (2025/06/03)
156+
157+
#2750543 (Job #125040) *
158+
Handled exception for GetFileHistory where start revision
159+
and end revision was exceeding limit for Int16.
160+
161+
#2766575 (Job #124034) *
162+
Corrected documentation for usage of GetFileContents
163+
and GetFileContentsEx methods.
164+
123165
--------------------------------------------------------------------------
124166
New functionality in 2024.2 (2024.2/2693570) (2024/12/10)
125167

consoleApps/ControlCTest/ControlCTest.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net5.0</TargetFramework>
5+
<TargetFramework>net8.0</TargetFramework>
66
</PropertyGroup>
77

88
<ItemGroup>

consoleApps/P4DotNetConsole/P4DotNetConsole.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net6.0</TargetFramework>
5+
<TargetFramework>net8.0</TargetFramework>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
88
</PropertyGroup>

0 commit comments

Comments
 (0)