Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: picoe/Eto
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.0.3
Choose a base ref
...
head repository: picoe/Eto
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: develop
Choose a head ref
Loading
Showing 3,302 changed files with 255,756 additions and 189,865 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
12 changes: 12 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-t4": {
"version": "2.2.1",
"commands": [
"t4"
]
}
}
}
95 changes: 95 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# use tabs by default for everything
[*.cs]
csharp_new_line_before_open_brace = all
csharp_indent_braces=false
csharp_indent_labels = no_change
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_space_around_binary_operators = before_and_after

[*.{csproj,vbproj,fsproj,proj,targets,props}]
indent_style = space
indent_size = 2
tab_size = 2

[*.yml]
intent_style = space
indent_size = 2

[*.{cs,vb}]
# Indentation style/size
charset=utf-8
indent_style = tab
tab_width = 4
indent_size = 4

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =

# Naming styles

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

* text=auto
*.sh eol=lf
*.entitlements eol=lf
*.sln eol=crlf
*.cmd eol=crlf
*.csproj text
12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: cwensley
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!-- Thanks for taking the time to report an issue! Some things to consider:
- Please be detailed and ensure there isn't already an open issue for your bug/request.
- If you can, please try to reproduce the problem using the develop branch first as your issue may already be fixed.
- If you have an enhancement request, you can remove the sections that don't apply.
-->

## Expected Behavior


## Actual Behavior


## Steps to Reproduce the Problem

1.
2.
3.

<!-- Supplying code that demonstrates the problem expedites a fix (and a response)! -->
## Code that Demonstrates the Problem

```
[Paste your code here]
```

<!-- Please specify the version of Eto and all platforms this can be reproduced in -->
## Specifications

- Version:
- Platform(s): <!-- WPF, WinForms, Gtk, Mac64, macOS, etc -->
- Operating System(s): <!-- E.g. Windows 10, macOS 10.13, Ubuntu 18.04, etc -->

152 changes: 152 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
name: Build

on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
release:
types: [ published ]

env:
DotNetVersion: "8.0.106"
BuildConfiguration: "Release"
BuildParameters: "build/Build.proj /v:Minimal /consoleLoggerParameters:NoSummary /p:Configuration=Release /p:BuildVersion=${{ github.run_id }} /p:BuildBranch=${{ github.ref }}"

jobs:
build-windows:

runs-on: windows-2022

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DotNetVersion }}

- name: Create global.json
run: echo '{"sdk":{"version":"${{ env.DotNetVersion }}"}}' > global.json

- name: Build
run: dotnet build ${{ env.BuildParameters }} /p:Platform=Windows /t:Build /bl:artifacts/log/Build.Windows.binlog

- name: Upload nuget artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-win
path: artifacts/nuget/${{ env.BuildConfiguration }}/*.nupkg

- name: Upload test artifacts
uses: actions/upload-artifact@v4
with:
name: test-win
path: |
artifacts/test/*/${{ env.BuildConfiguration }}/**/*
!artifacts/test/Eto.Test.Mac64/**/*
- name: Upload sample artifacts
uses: actions/upload-artifact@v4
with:
name: samples-win
path: artifacts/samples/*/${{ env.BuildConfiguration }}/**/*

- name: Upload log files
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: log-win
path: artifacts/log/**/*

build-mac:

runs-on: macos-14

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DotNetVersion }}

- name: Create global.json
run: del global.json || echo '{"sdk":{"version":"${{ env.DotNetVersion }}"}}' > global.json

- name: Install macos workload
run: sudo dotnet workload install macos --from-rollback-file dotnet-workloads.json

- name: Setup XCode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Import code signing certificate
if: github.event_name != 'pull_request'
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.DEVID_CERTIFICATE_P12 }}
p12-password: ${{ secrets.DEVID_CERTIFICATE_P12_PASSWORD }}

- name: Enable code signing
if: github.event_name != 'pull_request'
run: echo "BuildParameters=${{ env.BuildParameters }} /p:EnableCodeSignBuild=True" >> $GITHUB_ENV

- name: Set notarization credentials
if: startsWith(github.ref, 'refs/tags/')
run: |
xcrun notarytool store-credentials "AC_PASSWORD" --apple-id "${{ secrets.AC_USERNAME }}" --team-id "${{ secrets.AC_TEAMID }}" --password "${{ secrets.AC_PASSWORD }}"
echo "BuildParameters=${{ env.BuildParameters }} /p:EnableNotarizationBuild=True" >> $GITHUB_ENV
- name: Build
run: dotnet build ${{ env.BuildParameters }} /p:Platform=Mac /t:Build /bl:artifacts/log/Build.Mac.binlog

- name: Upload nuget artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-mac
path: |
artifacts/nuget/${{ env.BuildConfiguration }}/Eto.Platform.macOS*.nupkg
- name: Upload test artifacts
uses: actions/upload-artifact@v4
with:
name: test-mac
path: |
artifacts/test/Eto.Test.Mac64/${{ env.BuildConfiguration }}/**/Eto.Test.Mac64.dmg
artifacts/test/Eto.Test.macOS/${{ env.BuildConfiguration }}/*/Eto.Test.macOS.app
- name: Upload log files
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: log-mac
path: |
artifacts/log/**/*
lib/monomac/artifacts/generated/**/*.binlog
publish:
needs: [ build-windows, build-mac ]
runs-on: ubuntu-latest
if: (github.event_name == 'push' && github.ref == 'refs/heads/develop') || (github.event_name == 'release' && github.event.action == 'published' && startsWith(github.ref, 'refs/tags/'))
steps:
- name: Download nuget artifacts
uses: actions/download-artifact@v4
with:
pattern: nuget-*
merge-multiple: true

- name: Push packages to myget.org
run: dotnet nuget push '*.nupkg' --skip-duplicate -s https://www.myget.org/F/eto/api/v2/package -k ${{secrets.MYGET_API_KEY}}

- name: Add nuget packages to release
uses: softprops/action-gh-release@v2
if: (github.event_name == 'release' && github.event.action == 'published' && startsWith(github.ref, 'refs/tags/'))
with:
token: ${{ secrets.GITHUB_TOKEN }}
files: '*.nupkg'
28 changes: 28 additions & 0 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
on:
milestone:
types: [closed]

name: Create Release
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Add Milestone Description
run: |
echo "${{ github.event.milestone.description }}" > milestone_description.md
echo -e "\n\n" >> milestone_description.md
- name: Create Release
uses: softprops/action-gh-release@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ github.event.milestone.title }}
name: ${{ github.event.milestone.title }}
body_path: milestone_description.md
generate_release_notes: true
draft: true

24 changes: 24 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Release

on:
release:
types: [released]

jobs:
publish:
runs-on: ubuntu-latest
if: (github.event_name == 'release' && github.event.action == 'released' && startsWith(github.ref, 'refs/tags/'))
steps:
- name: Get the version
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/}" >> $GITHUB_OUTPUT

- uses: dsaltares/fetch-gh-release-asset@master
with:
version: ${{ steps.get_version.outputs.VERSION }}
file: ".*\\.nupkg"
regex: true
token: ${{ secrets.GITHUB_TOKEN }}

- name: Push packages to nuget.org
run: dotnet nuget push '*.nupkg' --skip-duplicate -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}}
15 changes: 9 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -5,12 +5,15 @@
*.suo
bin/
obj/
/BuildOutput
*.shfbproj_*
UpgradeLog*.htm
Source/packages
Source/Components
/src/Components
AppPackages
Resources/packages
Samples/packages
Source/Addins/Eto.Addin.XamarinStudio/packages
.vs/
[Tt]humbs.db
/artifacts
packages/
.store
.DS_Store
*.proj.Backup.tmp
._.*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "lib/monomac"]
path = lib/monomac
url = https://github.com/cwensley/monomac.git
Loading