-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Controls: Added metadata to the Controls project to enable publishing to NuGet #16611
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
6d566b7
371f28b
f69df1d
bd148fd
ae0a712
74cf1f1
55b2a56
e4d1896
32bd9c6
1ef3957
af8c126
7c207f2
6f1583c
089990a
9e8992b
b37ab4e
3949f43
de9eb16
f0b0bda
a3ad397
25a5501
4b75ccf
744ab9d
a8a757e
ed56c28
a0dc89f
bc1aab5
6f86b54
7539ba2
15437ed
6635231
b7e23da
d16e0c1
ef8140a
0414517
cb632a5
e65e342
1b0a7c5
7309b90
6ae0c0d
84b1b68
d708c17
cd67173
11de1fa
954223e
f7264e6
85c8344
a9b0470
47a23c5
4f5e7fe
1338cf5
0784f2d
cd8d9a5
d463b58
3e218fc
0f0f4b8
f45cecb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Copyright (c) Files Community | ||
# Licensed under the MIT License. | ||
|
||
# Abstract: | ||
# Bumps the version of the Files UI Controls library | ||
# | ||
# Workflow: | ||
# 1. Find the version of the Files UI Controls library | ||
# 2. Bump the version of the Files UI Controls library | ||
# 3. Commit the changes to a new branch in the repo | ||
# 4. Push the changes to the repo | ||
# 5. Create a pull request and request a review | ||
|
||
name: Bump Files.App.Controls | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
jobs: | ||
bump: | ||
runs-on: windows-latest | ||
environment: Pull Requests | ||
strategy: | ||
fail-fast: false | ||
env: | ||
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\ | ||
VERSION_PROPS_PATH: '${{ github.workspace }}\src\Files.App.Controls\CurrentVersion.props' | ||
|
||
steps: | ||
- name: Checkout the repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Generate GitHub Apps token | ||
if: github.repository_owner == 'files-community' | ||
id: generate | ||
uses: actions/create-github-app-token@v1 | ||
with: | ||
app-id: ${{ secrets.BOT_APP_ID }} | ||
private-key: ${{ secrets.BOT_PRIVATE_KEY }} | ||
|
||
- name: Bump Version | ||
id: bump_version | ||
shell: pwsh | ||
run: | | ||
$xml = [xml](Get-Content $env:PROPS_PATH) | ||
$version = [int]$xml.Project.PropertyGroup.MicroVersion | ||
$newVersion = $version + 1 | ||
$xml.Project.PropertyGroup.MicroVersion = $newVersion | ||
$xml.Save($env:PROPS_PATH) | ||
Write-Output "Bumped version to $newVersion" | ||
echo "::set-output name=new_version::$newVersion" | ||
- name: Get version for PR message | ||
id: get_version | ||
shell: pwsh | ||
run: | | ||
$xml = [xml](Get-Content $env:PROPS_PATH) | ||
$microVersion = [int]$xml.Project.PropertyGroup.MicroVersion | ||
$minorVersion = [int]$xml.Project.PropertyGroup.MinorVersion | ||
$majorVersion = [int]$xml.Project.PropertyGroup.MajorVersion | ||
$fullVersion = "$majorVersion.$minorVersion.$microVersion" | ||
Write-Output "Found publish version, $fullVersion" | ||
echo "::set-output name=full_version::$fullVersion" | ||
- name: Add and commit changes | ||
uses: EndBug/add-and-commit@v9 | ||
with: | ||
add: '${{ env.VERSION_PROPS_PATH }}' | ||
|
||
author_name: files-community-bot[bot] | ||
author_email: 152337890+files-community-bot[bot]@users.noreply.github.com | ||
default_author: github_actor | ||
|
||
message: 'Bump Files UI controls version to ${{ steps.get_version.outputs.full_version }}' | ||
new_branch: 'files/ui-controls/${{ steps.get_version.outputs.full_version }}' | ||
|
||
pathspec_error_handling: ignore | ||
push: true | ||
|
||
- name: Create Pull Request | ||
shell: pwsh | ||
env: | ||
GH_TOKEN: ${{ steps.generate.outputs.token }} | ||
run: | | ||
gh pr create --title "Controls: Bumped Controls version to ${{ steps.get_version.outputs.full_version }}" --body "This is an automated PR that bumps the version of the Files UI controls project." --base main --head bot/ui-controls/${{ steps.get_version.outputs.full_version }} |
Lamparter marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Copyright (c) Files Community | ||
# Licensed under the MIT License. | ||
|
||
# Abstract: | ||
# Deploys the Files UI Controls library to NuGet | ||
# | ||
# Workflow: | ||
# 1. Restore and build Files UI Controls | ||
# 2. Generate a NuGet package and symbols | ||
# 3. Publish the artifacts to NuGet | ||
|
||
name: Files CD (UI Controls) | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
yaira2 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
paths: | ||
- src/Files.App.Controls/CurrentVersion.props | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
yaira2 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
environment: Deployments | ||
strategy: | ||
fail-fast: false | ||
env: | ||
SOLUTION_NAME: 'Files.slnx' | ||
CONFIGURATION: 'Release' # It's not necessary to use a matrix as the package method will always be Release | ||
PLATFORM: 'x64' | ||
WORKING_DIR: '${{ github.workspace }}' # D:\a\Files\Files\ | ||
PROJECT_DIR: '${{ github.workspace }}\src\Files.App.Controls' | ||
PACKAGE_PROJECT_PATH: '${{ github.workspace }}\src\Files.App.Controls\Files.App.Controls.csproj' | ||
|
||
steps: | ||
- name: Checkout the repository | ||
uses: actions/checkout@v4 | ||
- name: Setup MSBuild | ||
uses: microsoft/setup-msbuild@v2 | ||
- name: Setup NuGet | ||
uses: NuGet/setup-nuget@v2 | ||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v4 | ||
with: | ||
global-json-file: global.json | ||
|
||
- name: Use Windows SDK Preview | ||
shell: cmd | ||
run: | | ||
for /f %%a in ('dir /b /a:d %localappdata%\Microsoft\VisualStudio\17*') do echo UsePreviews=True>%localappdata%\Microsoft\VisualStudio\%%a\sdk.txt | ||
- name: Restore NuGet | ||
shell: pwsh | ||
run: | | ||
msbuild $env:PACKAGE_PROJECT_PATH ` | ||
-t:Restore ` | ||
-p:Platform=$env:PLATFORM ` | ||
-p:Configuration=$env:CONFIGURATION | ||
- name: Build Files UI Controls | ||
run: | | ||
msbuild "$env:PACKAGE_PROJECT_PATH" ` | ||
-t:Build ` | ||
-p:Platform=$env:PLATFORM ` | ||
-p:Configuration=$env:CONFIGURATION ` | ||
-p:PackageOutputPath="$env:WORKING_DIR\output" | ||
- name: Publish package to NuGet | ||
run: dotnet nuget push .\output\*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,15 @@ | ||||||||||||||||||||||
<!-- Copyright (c) Files Community. Licensed under the MIT License. --> | ||||||||||||||||||||||
<!-- READ ME BEFORE MODIFYING THIS FILE: | ||||||||||||||||||||||
This file is used to track the version of the Files UI Controls package online. | ||||||||||||||||||||||
The version is automatically bumped by the 'Bump Files UI Controls' action online. | ||||||||||||||||||||||
You can bump the version here in a PR and when it is merged the controls project | ||||||||||||||||||||||
will be automatically published to NuGet online. --> | ||||||||||||||||||||||
Comment on lines
+2
to
+6
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think this change is necessary. |
||||||||||||||||||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||||||||||||||||||||
<PropertyGroup> | ||||||||||||||||||||||
<MajorVersion>1</MajorVersion> | ||||||||||||||||||||||
<MinorVersion>0</MinorVersion> | ||||||||||||||||||||||
<!-- This version is bumped automatically by CI. --> | ||||||||||||||||||||||
<MicroVersion>0</MicroVersion> | ||||||||||||||||||||||
<Version>$(MajorVersion).$(MinorVersion).$(MicroVersion)</Version> | ||||||||||||||||||||||
</PropertyGroup> | ||||||||||||||||||||||
</Project> |
Lamparter marked this conversation as resolved.
Show resolved
Hide resolved
|
yaira2 marked this conversation as resolved.
Show resolved
Hide resolved
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
> These controls are provided "as is", with no guaranteed support, but we hope they prove useful to the developer community. | ||
# 📁 Files UI Controls | ||
|
||
##### Elevate your WinUI applications with our collection of custom-built controls, crafted specifically to address our needs in Files. | ||
|
||
--- | ||
|
||
This package contains various controls for the [Files app](https://files.community), including `ThemedIcon`, `Toolbar` and various storage controls. | ||
It is available [on NuGet](https://www.nuget.org/packages/Files.App.Controls), however is unlisted and can only be installed by manually typing the package name and version number into the MSBuild project file. | ||
|
||
Please do not open issues on the Files repository about this package, as it is not officially supported by the Files team and is provided as is. | ||
If you have questions about the design or implementation of these controls, please ask [on Discord](https://discord.gg/files). |
Unchanged files with check annotations Beta
/// <summary> | ||
/// Analyzer that detects if string literals can be replaced with constants from the <c>Strings</c> class. | ||
/// </summary> | ||
[DiagnosticAnalyzer(LanguageNames.CSharp)] | ||
Check warning on line 12 in src/Files.Core.SourceGenerator/Analyzers/StringsPropertyAnalyzer.cs
|
||
internal sealed class StringsPropertyAnalyzer : DiagnosticAnalyzer | ||
{ | ||
/// <summary> |
/// <summary> | ||
/// Generates properties for strings based on resource files. | ||
/// </summary> | ||
[Generator] | ||
Check warning on line 13 in src/Files.Core.SourceGenerator/Generators/StringsPropertyGenerator.cs
|
||
internal sealed class StringsPropertyGenerator : IIncrementalGenerator | ||
{ | ||
// Static HashSet to track generated file names |
/// <summary> | ||
/// A generator for serializing/deserializing objects to/from the Windows Registry using attributes. | ||
/// </summary> | ||
[Generator] | ||
Check warning on line 9 in src/Files.Core.SourceGenerator/Generators/RegistrySerializationGenerator.cs
|
||
internal sealed class RegistrySerializationGenerator : IIncrementalGenerator | ||
{ | ||
/// <summary> |
{ | ||
public unsafe struct IStorageProviderQuotaUI : IComIID | ||
{ | ||
private void** lpVtbl; | ||
Check warning on line 14 in src/Files.App.CsWin32/IStorageProviderQuotaUI.cs
|
||
[MethodImpl(MethodImplOptions.AggressiveInlining)] | ||
public HRESULT GetQuotaTotalInBytes(ulong* value) |
{ | ||
public unsafe struct IStorageProviderStatusUISourceFactory : IComIID | ||
{ | ||
private void** lpVtbl; | ||
Check warning on line 14 in src/Files.App.CsWin32/IStorageProviderStatusUISourceFactory.cs
|
||
[MethodImpl(MethodImplOptions.AggressiveInlining)] | ||
public HRESULT GetStatusUISource(nint syncRootId, IStorageProviderStatusUISource** result) |
{ | ||
public unsafe struct IStorageProviderStatusUI : IComIID | ||
{ | ||
private void** lpVtbl; | ||
Check warning on line 14 in src/Files.App.CsWin32/IStorageProviderStatusUI.cs
|
||
[MethodImpl(MethodImplOptions.AggressiveInlining)] | ||
public HRESULT GetQuotaUI(IStorageProviderQuotaUI** result) |
{ | ||
public unsafe struct IStorageProviderStatusUISource : IComIID | ||
{ | ||
private void** lpVtbl; | ||
Check warning on line 14 in src/Files.App.CsWin32/IStorageProviderStatusUISource.cs
|
||
[MethodImpl(MethodImplOptions.AggressiveInlining)] | ||
public HRESULT GetStatusUI(IStorageProviderStatusUI** result) |
GetKeyState | ||
CreateDirectoryFromApp | ||
WNetCancelConnection2 | ||
NET_USE_CONNECT_FLAGS | ||
Check warning on line 48 in src/Files.App.CsWin32/NativeMethods.txt
|
||
NETRESOURCEW | ||
WNetAddConnection3 | ||
CREDENTIALW | ||
SetEntriesInAcl | ||
ACL_SIZE_INFORMATION | ||
DeleteAce | ||
EXPLICIT_ACCESS | ||
Check warning on line 81 in src/Files.App.CsWin32/NativeMethods.txt
|
||
ACCESS_ALLOWED_ACE | ||
LookupAccountSid | ||
GetComputerName | ||
CoTaskMemFree | ||
QueryDosDevice | ||
DeviceIoControl | ||
GetLastError | ||
Check warning on line 137 in src/Files.App.CsWin32/NativeMethods.txt
|
||
CreateFile | ||
GetVolumeInformation | ||
COMPRESSION_FORMAT |
Uh oh!
There was an error while loading. Please reload this page.