Skip to content

Commit 8141d37

Browse files
committed
Merge branch 'main' of https://github.com/files-community/Files into terminal
2 parents bb3d854 + 4d614f5 commit 8141d37

File tree

262 files changed

+11147
-3161
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

262 files changed

+11147
-3161
lines changed

.github/README.md

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,48 @@
11
<p align="center">
2-
<img alt="Files Logo" src="../src/Files.App%20(Package)/Assets/AppTiles/Release/StoreLogo.scale-400.png" width="100px" />
3-
<h1 align="center">Files</h1>
2+
<img alt="Files hero image" src="../assets/ReadmeHero.png" />
43
</p>
54

6-
[![Build Status](https://dev.azure.com/filescommunity/Files/_apis/build/status/Build%20Pipeline?branchName=main)](https://dev.azure.com/filescommunity/Files/_build/latest?definitionId=4&branchName=main)
7-
[![Crowdin](https://badges.crowdin.net/files-app/localized.svg)](https://crowdin.com/project/files-app)
8-
[![Discord](https://discordapp.com/api/guilds/725513575971684472/widget.png)](https://discord.gg/files)
9-
[![Download](https://img.shields.io/badge/Download%20Installer-blue.svg?style=flat-round)](https://files.community/download)
10-
[![Documentation](https://img.shields.io/badge/View%20Documentation-purple.svg?style=flat-round)](https://files.community/docs)
11-
12-
Introducing Files, the ultimate file manager app for Windows. With its sleek and intuitive design, navigating through your files has never been easier. Files features tabs for easy switching between different folders, a column view for quick file browsing, and dual pane support for efficient file management. In addition, you can easily create and extract archives with just a few clicks, making file compression and decompression a breeze.
5+
<p align="center">
6+
<a style="text-decoration:none" href="https://files.community/">
7+
<img src="https://img.shields.io/badge/Files-Website-F9B81F" alt="Files Website" /></a>
8+
<a style="text-decoration:none" href="https://github.com/files-community/Files/actions/workflows/ci.yml">
9+
<img src="https://github.com/files-community/Files/actions/workflows/ci.yml/badge.svg" alt="Files CI Status" /></a>
10+
<a style="text-decoration:none" href="https://crowdin.com/project/files-app">
11+
<img src="https://badges.crowdin.net/files-app/localized.svg" alt="Files Localization Status" /></a>
12+
<a style="text-decoration:none" href="https://discord.gg/files">
13+
<img src="https://img.shields.io/discord/725513575971684472?label=Discord&color=7289da" alt="Files Discord" /></a>
14+
</p>
1315

14-
Files also offers advanced features such as file tagging for easy organization, support for QuickLook for previewing files without opening them, and the ability to customize the background color to match your personal style. Whether you're a power user or just looking for a better way to manage your files, Files has everything you need to keep your files organized and easily accessible. With its combination of powerful features and ease of use, Files is the ultimate file management solution for Windows.
16+
Files is a modern file manager that helps users organize their files and folders. Our mission with Files is to build the best file manager for Windows, and we’re proud to be building it out in the open so everyone can participate. User feedback helps shape the features we work on, & the bug reports on GitHub help to make Files more reliable. Built and maintained by the open-source community, Files features robust multitasking experiences, file tags, deep integrations, and an intuitive design.
1517

16-
## Building from source
18+
## Installing and running Files
1719

18-
### 1. Prerequisites
20+
Files is a community-driven project that depends on your support to grow and improve. Please consider purchasing Files through the Microsoft Store or supporting us on GitHub if you use the classic installer.
1921

20-
- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) with the following individual components:
21-
- Windows 11 SDK (10.0.22621.0)
22-
- .NET 8 SDK
23-
- MSVC v143 - VS 2022 C++ x64/x86 or ARM64 build tools (latest)
24-
- C++ ATL for latest v143 build tools (x86 & x64 or ARM64)
25-
- Git for Windows
26-
- [Windows App SDK 1.5](https://learn.microsoft.com/windows/apps/windows-app-sdk/downloads#current-releases)
27-
28-
### 2. Clone the repository
22+
You can also use the preview version alongside the stable release to get early access to new features and improvements.
2923

30-
```ps
31-
git clone https://github.com/files-community/Files
32-
```
33-
34-
This will create a local copy of the repository.
24+
<p align="left">
25+
<!-- Store Badge -->
26+
<a style="text-decoration:none" href="https://apps.microsoft.com/detail/9NGHP3DX8HDX?launch=true&mode=full">
27+
<picture>
28+
<source media="(prefers-color-scheme: light)" srcset="../assets/StoreBadge-dark.png" width="220" />
29+
<img src="../assets/StoreBadge-light.png" width="220" />
30+
</picture></a>
31+
&ensp;
32+
<!-- Classic Installer Badge -->
33+
<a style="text-decoration:none" href="https://cdn.files.community/files/download/Files.Stable.exe">
34+
<picture>
35+
<source media="(prefers-color-scheme: light)" srcset="../assets/ClassicInstallerBadge-dark.png" width="220" />
36+
<img src="../assets/ClassicInstallerBadge-light.png" width="220" />
37+
</picture></a>
38+
</p>
3539

36-
### 3. Build the project
40+
## Building from source
3741

38-
To build Files for development, open the `Files.sln` item in Visual Studio. Right-click on the `Files.Package` packaging project in solution explorer and select ‘Set as Startup item’.
42+
Instructions for building the source code can be found on our [documentation site](https://files.community/docs/contributing/building-from-source).
3943

40-
In the top pane, select the items which correspond to your desired build mode and the processor architecture of your device like below:
41-
![image](https://user-images.githubusercontent.com/39923744/148721296-2bd132d0-4a4d-4555-8f58-16b00b18ade3.png)
4244

43-
## Contributors
45+
## Contributing to Files
4446

4547
Want to contribute to this project? Let us know with an [issue](https://github.com/files-community/Files/issues) that communicates your intent to create a [pull request](https://github.com/files-community/Files/pulls). Also, view our [contributing guidelines](https://github.com/files-community/Files/blob/main/.github/CONTRIBUTING.md) to make sure you're up to date on the coding conventions.
4648

.github/workflows/cd-preview.yml

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
# Copyright (c) 2024 Files Community
22
# Licensed under the MIT License. See the LICENSE.
33

4+
# Abstract:
5+
# Deploys Files Preview (Sideload).
6+
#
7+
# Workflow:
8+
# 1. Configure manifest, logo and secrets
9+
# 2. Restore, build and package Files
10+
# 3. Publish the appinstaller to files.community
11+
# 4. Sign the package
12+
# 5. Publish the package to Azure
13+
414
name: Files CD (Preview)
515

616
on:
@@ -16,35 +26,37 @@ jobs:
1626
configuration: [Preview]
1727
platform: [x64]
1828
env:
19-
SOLUTION_NAME: 'Files.sln'
20-
PACKAGE_PROJECT_DIR: 'src\Files.App (Package)'
21-
PACKAGE_PROJECT_PATH: 'src\Files.App (Package)\Files.Package.wapproj'
22-
TEST_PROJECT_PATH: 'tests\Files.InteractionTests\Files.InteractionTests.csproj'
23-
CONFIGURATION: ${{ matrix.configuration }}
24-
PLATFORM: ${{ matrix.platform }}
25-
APPX_BUNDLE_PLATFORMS: 'x64|arm64'
26-
WORKING_DIR: ${{ github.workspace }} # Default: D:\a\Files\Files\
27-
ARTIFACTS_STAGING_DIR: ${{ github.workspace }}\artifacts
28-
APPX_PACKAGE_DIR: ${{ github.workspace }}\artifacts\AppxPackages
29+
SOLUTION_NAME: 'Files.sln'
30+
CONFIGURATION: '${{ matrix.configuration }}'
31+
PLATFORM: '${{ matrix.platform }}'
32+
APPX_BUNDLE_PLATFORMS: 'x64|arm64'
33+
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\
34+
ARTIFACTS_STAGING_DIR: '${{ github.workspace }}\artifacts'
35+
APPX_PACKAGE_DIR: '${{ github.workspace }}\artifacts\AppxPackages'
36+
PACKAGE_PROJECT_DIR: 'src\Files.App (Package)'
37+
PACKAGE_PROJECT_PATH: 'src\Files.App (Package)\Files.Package.wapproj'
38+
PACKAGE_MANIFEST_PATH: 'src\Files.App (Package)\Package.appxmanifest'
39+
TEST_PROJECT_PATH: 'tests\Files.InteractionTests\Files.InteractionTests.csproj'
40+
APP_INSTALLER_SIDELOAD_URL: 'https://cdn.files.community/files/preview/'
2941

3042
steps:
3143
- name: Checkout the repository
3244
uses: actions/checkout@v4
3345
- name: Setup MSBuild
34-
uses: microsoft/setup-msbuild@v1
46+
uses: microsoft/setup-msbuild@v2
3547
- name: Setup NuGet
36-
uses: NuGet/setup-nuget@v1.1.1
48+
uses: NuGet/setup-nuget@v2
3749
- name: Setup .NET 8
38-
uses: actions/setup-dotnet@v3
50+
uses: actions/setup-dotnet@v4
3951
with:
4052
dotnet-version: '8.0.x'
4153

42-
- name: Configure the package manifest, logo sets, and secrets
54+
- name: Configure the package manifest, logo, and secrets
4355
shell: pwsh
4456
run: |
4557
. './scripts/Configure-AppxManifest.ps1' `
4658
-Branch "$env:CONFIGURATION" `
47-
-PackageProjectDir "$env:PACKAGE_PROJECT_DIR" `
59+
-PackageManifestPath "$env:PACKAGE_MANIFEST_PATH" `
4860
-Publisher "$env:SIDELOAD_PUBLISHER_SECRET" `
4961
-WorkingDir "$env:WORKING_DIR" `
5062
-SecretBingMapsKey "$env:SECRET_BINGMAPS_KEY" `
@@ -65,7 +77,7 @@ jobs:
6577
shell: pwsh
6678
run: 'nuget restore $env:SOLUTION_NAME'
6779

68-
- name: Restore ${{ env.SOLUTION_NAME }}
80+
- name: Restore Files
6981
shell: pwsh
7082
run: |
7183
msbuild $env:SOLUTION_NAME `
@@ -74,7 +86,7 @@ jobs:
7486
-p:Configuration=$env:CONFIGURATION `
7587
-p:PublishReadyToRun=true
7688
77-
- name: Build ${{ env.SOLUTION_NAME }}
89+
- name: Build & package Files
7890
shell: pwsh
7991
run: |
8092
msbuild "$env:PACKAGE_PROJECT_PATH" `
@@ -87,7 +99,7 @@ jobs:
8799
-p:AppxBundle=Always `
88100
-p:UapAppxPackageBuildMode=Sideload `
89101
-p:GenerateAppInstallerFile=True `
90-
-p:AppInstallerUri=https://cdn.files.community/files/preview/
102+
-p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL
91103
92104
- name: Remove empty files from the packages
93105
shell: bash
@@ -101,8 +113,8 @@ jobs:
101113
$fileContent = $fileContent.Replace("http://schemas.microsoft.com/appx/appinstaller/2017/2", $newSchema)
102114
$fileContent | Set-Content $localFilePath
103115
104-
- name: Sign files with Azure Trusted Signing
105-
uses: azure/[email protected].16
116+
- name: Sign Files with Azure Trusted Signing
117+
uses: azure/[email protected].20
106118
with:
107119
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
108120
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -119,12 +131,12 @@ jobs:
119131
timestamp-digest: SHA256
120132

121133
- name: Login to Azure
122-
uses: azure/login@v1
134+
uses: azure/login@v2
123135
with:
124136
creds: ${{ secrets.AZURE_CREDENTIALS }}
125137

126138
- name: Upload to Azure blob storage
127-
uses: azure/powershell@v1
139+
uses: azure/powershell@v2
128140
with:
129141
inlineScript: |
130142
az storage blob upload-batch --account-name "filescommunity" --destination "files" --destination-path "preview" --source ${{ env.APPX_PACKAGE_DIR }} --overwrite true
@@ -134,7 +146,7 @@ jobs:
134146
run: 'az logout'
135147

136148
- name: Upload the packages to GitHub Actions
137-
uses: actions/upload-artifact@v3
149+
uses: actions/upload-artifact@v4
138150
with:
139151
name: 'Appx Packages (${{ env.CONFIGURATION }}, ${{ env.PLATFORM }})'
140152
path: ${{ env.ARTIFACTS_STAGING_DIR }}

.github/workflows/cd-stable.yml

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
# Copyright (c) 2024 Files Community
22
# Licensed under the MIT License. See the LICENSE.
33

4+
# Abstract:
5+
# Deploys Files (Sideload).
6+
#
7+
# Workflow:
8+
# 1. Configure manifest, logo and secrets
9+
# 2. Restore, build and package Files
10+
# 3. Publish the appinstaller to files.community
11+
# 4. Sign the package
12+
# 5. Publish the package to Azure
13+
414
name: Files CD (Stable)
515

616
on:
@@ -16,35 +26,37 @@ jobs:
1626
configuration: [Stable]
1727
platform: [x64]
1828
env:
19-
SOLUTION_NAME: 'Files.sln'
20-
PACKAGE_PROJECT_DIR: 'src\Files.App (Package)'
21-
PACKAGE_PROJECT_PATH: 'src\Files.App (Package)\Files.Package.wapproj'
22-
TEST_PROJECT_PATH: 'tests\Files.InteractionTests\Files.InteractionTests.csproj'
23-
CONFIGURATION: ${{ matrix.configuration }}
24-
PLATFORM: ${{ matrix.platform }}
25-
APPX_BUNDLE_PLATFORMS: 'x64|arm64'
26-
WORKING_DIR: ${{ github.workspace }} # Default: D:\a\Files\Files\
27-
ARTIFACTS_STAGING_DIR: ${{ github.workspace }}\artifacts
28-
APPX_PACKAGE_DIR: ${{ github.workspace }}\artifacts\AppxPackages
29+
SOLUTION_NAME: 'Files.sln'
30+
CONFIGURATION: '${{ matrix.configuration }}'
31+
PLATFORM: '${{ matrix.platform }}'
32+
APPX_BUNDLE_PLATFORMS: 'x64|arm64'
33+
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\
34+
ARTIFACTS_STAGING_DIR: '${{ github.workspace }}\artifacts'
35+
APPX_PACKAGE_DIR: '${{ github.workspace }}\artifacts\AppxPackages'
36+
PACKAGE_PROJECT_DIR: 'src\Files.App (Package)'
37+
PACKAGE_PROJECT_PATH: 'src\Files.App (Package)\Files.Package.wapproj'
38+
PACKAGE_MANIFEST_PATH: 'src\Files.App (Package)\Package.appxmanifest'
39+
TEST_PROJECT_PATH: 'tests\Files.InteractionTests\Files.InteractionTests.csproj'
40+
APP_INSTALLER_SIDELOAD_URL: 'https://cdn.files.community/files/stable/'
2941

3042
steps:
3143
- name: Checkout the repository
3244
uses: actions/checkout@v4
3345
- name: Setup MSBuild
34-
uses: microsoft/setup-msbuild@v1
46+
uses: microsoft/setup-msbuild@v2
3547
- name: Setup NuGet
36-
uses: NuGet/setup-nuget@v1.1.1
48+
uses: NuGet/setup-nuget@v2
3749
- name: Setup .NET 8
38-
uses: actions/setup-dotnet@v3
50+
uses: actions/setup-dotnet@v4
3951
with:
4052
dotnet-version: '8.0.x'
4153

42-
- name: Configure the package manifest, logo sets, and secrets
54+
- name: Configure the package manifest, logo, and secrets
4355
shell: pwsh
4456
run: |
4557
. './scripts/Configure-AppxManifest.ps1' `
4658
-Branch "$env:CONFIGURATION" `
47-
-PackageProjectDir "$env:PACKAGE_PROJECT_DIR" `
59+
-PackageManifestPath "$env:PACKAGE_MANIFEST_PATH" `
4860
-Publisher "$env:SIDELOAD_PUBLISHER_SECRET" `
4961
-WorkingDir "$env:WORKING_DIR" `
5062
-SecretBingMapsKey "$env:SECRET_BINGMAPS_KEY" `
@@ -65,7 +77,7 @@ jobs:
6577
shell: pwsh
6678
run: 'nuget restore $env:SOLUTION_NAME'
6779

68-
- name: Restore ${{ env.SOLUTION_NAME }}
80+
- name: Restore Files
6981
shell: pwsh
7082
run: |
7183
msbuild $env:SOLUTION_NAME `
@@ -74,7 +86,7 @@ jobs:
7486
-p:Configuration=$env:CONFIGURATION `
7587
-p:PublishReadyToRun=true
7688
77-
- name: Build ${{ env.SOLUTION_NAME }}
89+
- name: Build & package Files
7890
shell: pwsh
7991
run: |
8092
msbuild "$env:PACKAGE_PROJECT_PATH" `
@@ -87,7 +99,7 @@ jobs:
8799
-p:AppxBundle=Always `
88100
-p:UapAppxPackageBuildMode=Sideload `
89101
-p:GenerateAppInstallerFile=True `
90-
-p:AppInstallerUri=https://cdn.files.community/files/stable/
102+
-p:AppInstallerUri=$env:APP_INSTALLER_SIDELOAD_URL
91103
92104
- name: Remove empty files from the packages
93105
shell: bash
@@ -101,8 +113,8 @@ jobs:
101113
$fileContent = $fileContent.Replace("http://schemas.microsoft.com/appx/appinstaller/2017/2", $newSchema)
102114
$fileContent | Set-Content $localFilePath
103115
104-
- name: Sign files with Azure Trusted Signing
105-
uses: azure/[email protected].16
116+
- name: Sign Files with Azure Trusted Signing
117+
uses: azure/[email protected].20
106118
with:
107119
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
108120
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -119,22 +131,22 @@ jobs:
119131
timestamp-digest: SHA256
120132

121133
- name: Login to Azure
122-
uses: azure/login@v1
134+
uses: azure/login@v2
123135
with:
124-
creds: ${{ secrets.AZURE_CREDENTIALS }}
136+
creds: ${{ secrets.AZURE_CREDENTIALS }}
125137

126138
- name: Upload to Azure blob storage
127-
uses: azure/powershell@v1
139+
uses: azure/powershell@v2
128140
with:
129141
inlineScript: |
130-
az storage blob upload-batch --account-name "filescommunity" --destination "files" --destination-path "stable" --source ${{ env.APPX_PACKAGE_DIR }} --overwrite true
142+
az storage blob upload-batch --account-name "filescommunity" --destination "files" --destination-path "stable" --source ${{ env.APPX_PACKAGE_DIR }} --overwrite true
131143
azPSVersion: "latest"
132144

133145
- name: Logout from Azure
134146
run: 'az logout'
135147

136148
- name: Upload the packages to GitHub Actions
137-
uses: actions/upload-artifact@v3
149+
uses: actions/upload-artifact@v4
138150
with:
139151
name: 'Appx Packages (${{ env.CONFIGURATION }}, ${{ env.PLATFORM }})'
140152
path: ${{ env.ARTIFACTS_STAGING_DIR }}

.github/workflows/ci.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -99,16 +99,13 @@ jobs:
9999
steps:
100100

101101
- name: Checkout the repository
102-
uses: actions/checkout@v3
103-
102+
uses: actions/checkout@v4
104103
- name: Setup MSBuild
105-
uses: microsoft/setup-msbuild@v1
106-
104+
uses: microsoft/setup-msbuild@v2
107105
- name: Setup NuGet
108-
uses: NuGet/[email protected]
109-
106+
uses: NuGet/setup-nuget@v2
110107
- name: Setup .NET 8
111-
uses: actions/setup-dotnet@v3
108+
uses: actions/setup-dotnet@v4
112109
with:
113110
dotnet-version: '8.0.x'
114111

@@ -178,7 +175,7 @@ jobs:
178175
179176
- if: env.ARCHITECTURE == env.AUTOMATED_TESTS_ARCHITECTURE && env.CONFIGURATION == env.AUTOMATED_TESTS_CONFIGURATION
180177
name: Upload the packages to the Artifacts
181-
uses: actions/upload-artifact@v3
178+
uses: actions/upload-artifact@v4
182179
with:
183180
name: 'Appx Packages (${{ env.CONFIGURATION }}, ${{ env.ARCHITECTURE }})'
184181
path: ${{ env.ARTIFACTS_STAGING_DIR }}
@@ -207,10 +204,10 @@ jobs:
207204
run: exit 1
208205

209206
- name: Checkout the repository
210-
uses: actions/checkout@v3
207+
uses: actions/checkout@v4
211208

212209
- name: Download the packages from the Artifacts
213-
uses: actions/download-artifact@v3
210+
uses: actions/download-artifact@v4
214211
with:
215212
name: 'Appx Packages (${{ env.CONFIGURATION }}, ${{ env.AUTOMATED_TESTS_ARCHITECTURE }})'
216213
path: ${{ env.ARTIFACTS_STAGING_DIR }}

0 commit comments

Comments
 (0)