Releases: microsoft/p4vfs
1.26.0.0
The 1.26.0.0 is primarily a refactor of perforce login flow to properly support new single-sign-on (SSO) features such as the Helix Authentication Service (2). Microsoft P4VFS continues to support legacy client P4LOGINSSO login, as well as password login. The on-demand HAS web browser SSO login flow integrates well with login requests from either the p4vfs.exe client or the windows service.
The Helix Authentication Service extension is becoming a very popular technique across Microsoft Xbox Studios for authenticating perforce credentials using Microsoft Azure Active Directory. Similar support exists for the Okta identity provider as well.
Version [1.26.0.0]
- Driver using officially allocated FSFilter HSM altitude of 189700
- Refactor of perforce client login operations to support common forms of password and
SSO login. This includes password auth, classic P4LOGINSSO client script auth, and server
auth extensions such as Helix Authentication Service. - Fixing service process launch as impersonated user to include the user's profile environment.
This allows the service's interactive password prompt, or browser authentication, to execute
with expected user environment variables.
1.25.1.0
The 1.25.1.0 release is a minor update containing bug fixes and a few new features. A primary motivation for this release has been to support a new reconfig
command. We currently require this command to help quickly switch existing placeholder files in a workspace to use a new P4PORT, such as replica or broker server, instead of the commit server. It also supports modifying the P4CLIENT, and/or P4USER referenced by the placeholder files.
Version [1.25.1.0]
- Addition of new "hydrate" command as synonym for "resident -x". Moved the implementation into
C++ and now using a single fstat command instead of a files & where command. - Moving native thread pool utilites for system limits into shared location
- Addition of native parallel directory traversal utility and new TestIterateDirectoryParallel
unit test to verify correctness. Implementation allows both the directory traversal, as well
as the visitation, to be done across multiple threads. This will be used for sweeping operations
including hydrating and reconfiguring files recursively. - Addition of new service setting "PoolDefaultNumberOfThreads" to customize the default number
of thread pool threads for concurrent operations, such as a virtual sync. - Native test factory now displays both skipped and executed tests, similar to Managed factory.
- Major refactor to managed interface for native SettingManager which fixes missing new
properties being serialized in configuration files, and reported in 'p4vfs set'. Managed property
code generation now moved into C++ to remove duplication. - Addition of service tick thread for performing garbage collection on cached DepotClient
connections. Two new settings GarbageCollectPeriodMs & DepotClientCacheIdleTimeoutMs can be
configured to remove lingering (cached) connections at a certain frequency and life-time. - Addition of user settings file locations for allowing incremental overrides of installed settings.
Settings files are now loaded in order (with UserSettingsFilePath loaded last)- InstalledSettingsFilePath -
C:\Program Files\P4VFS\P4VFS.Settings.xml
This is most common installed settings file - AssemblySettingsFilePath -
<directory of p4vfs.exe or P4VFS.Service.exe>\P4VFS.Settings.xml
Primarily used for custom unit test run settings - PublicSettingsFilePath -
%PUBLIC%\P4VFS.Settings.xml
Shared user location for both p4vfs and service - UserSettingsFilePath -
%USERPROFILE%\P4VFS.Settings.xml
Different for p4vfs.exe and non-impersonated service
- InstalledSettingsFilePath -
- Addition of DepotClientCacheIdleTimeoutTest which verifies correct operation of service
garbage collection frequency and behavior - Adding timestamps to version headers in release notes P4VFS.Notes.txt
- Addition of
p4vfs reconfig
command to modify the perforce configuration of local
placeholder files. Includes options for limiting which configuration variable to apply.
This is commonly used to change files in an existing workspace to use a different
perforce server endpoint (ie, a different broker or proxy server) without requiring a
force sync #have - Fixing bug where resident command doesn't correctly support quiet logging (#23). Additional
unit test to verify -q option works correctly for commands that support it.
1.25.0.0
The 1.25.0.0 release is the first release developed as Open Source on GitHub. This version includes some significant optimizations and fixes from the community. This has also given us the opportunity to create GitHub actions for CI, as well as production CI/CD pipelines internal to Microsoft for codesigned releases. Notable changes from the previous release:
Version [1.25.0.0]
- Updated drivers for VS 2022 and WDK 10.0.22621.382
Version [1.24.2.0]
- Specializing the Algo::Contains method to for optimized use of HashSet. This significantly
speeds up the Contains ops in the last loop of DepotOperations::SyncCommand. @belkiss - Fixing test FileAttributeTest for handling possible NotContentIndexed attribute @belkiss
- Removing UnitTest EventSourceAnalyzer dependency and cleanup of EventSource trace
support and tests
Version [1.24.1.0]
- Adding simple verify pipeline for running on GitHub hosted runners which has required
some library updates, for the best. Full CI/CD pipelines remain in internal Microsoft
DevOps for codesign purposes. - Updating to Visual Studio 2022 (17.5.1). Platform toolset v143. MSVC Redist 14.34.31931
- Updating to Windows SDK version 10.0.22621.0 (current latest component install for 17.5.1)
- Updating to WDK version 10.0.22621.382
- Updating to OpenSSL 1.1.1t
- Dropping driver support for Windows 8.1 and earlier.
Full Release Notes