Skip to content
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

Infra: Multi-platform support #36

Draft
wants to merge 54 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5af849e
create new core lib for multi platform
NoobNotFound Jul 8, 2024
c749d5a
add some files to CoreX
NoobNotFound Jul 8, 2024
f33b9e4
Moved to .Net 8
NoobNotFound Jul 8, 2024
85bb0d3
Remove win10 runtime condition
Lamparter Jul 12, 2024
7867dab
[CodeFactor] Apply fixes
code-factor Jul 12, 2024
caa5fe4
Update README.md
Lamparter Jul 13, 2024
7aa85c9
Update Emerald.App.csproj
0x5bfa Jul 13, 2024
13c2ffb
Merge branch 'main' into cross-platform
Lamparter Jul 13, 2024
20ed0cd
Merge branch 'main' into cross-platform
Lamparter Jul 14, 2024
4f0ce52
Merge branch 'main' into cross-platform
Lamparter Jul 14, 2024
9ec98d8
Merge branch 'main' into cross-platform
Lamparter Jul 14, 2024
00d6049
Merge branch 'main' into cross-platform
Lamparter Jul 14, 2024
d05fb35
Add fluent themed blank Uno app (maccatalyst, desktop)
NoobNotFound Jul 17, 2024
0642c5a
Remove Uno Platform project
Lamparter Jul 18, 2024
28eb041
Add universal solution
Lamparter Jul 18, 2024
4cce0a3
Rename CI
Lamparter Jul 18, 2024
3859bb1
Modify solution to include projects
Lamparter Jul 18, 2024
e5313a5
Update gitignore
Lamparter Jul 18, 2024
4a72c70
Rename CI
Lamparter Jul 18, 2024
e54b196
Rename CI
Lamparter Jul 18, 2024
d0dd261
Rename CI
Lamparter Jul 18, 2024
71bb783
Completely modify the modrinth store managing system
NoobNotFound Aug 8, 2024
6b9caab
[CodeFactor] Apply fixes
code-factor Aug 8, 2024
e7d8b84
add suppport for loading different categories to different types in s…
NoobNotFound Aug 8, 2024
5310d98
apply code fix
NoobNotFound Aug 8, 2024
5e1476f
undo 1 change
NoobNotFound Aug 8, 2024
05b9a09
👷 Implement central package management (#42)
Lamparter Aug 22, 2024
da23505
declare verison in InstallerPage
NoobNotFound Aug 22, 2024
e38d23a
remove the need of `GithubClientID`
NoobNotFound Aug 22, 2024
ae1f893
fix some typos in mod downloader, update some dependencies
HymnalTeminal Aug 22, 2024
2e9e7a4
[CodeFactor] Apply fixes
code-factor Aug 22, 2024
6f9843c
👔 Fix header identity typo
Lamparter Aug 24, 2024
d99d1b9
Merge branch 'main' into cross-platform
Lamparter Aug 25, 2024
56c1770
Merge branch 'main' into cross-platform
Lamparter Aug 25, 2024
bbbba85
➕ Upgrade from Newtonsoft.Json to System.Text.Json (#45)
Lamparter Aug 25, 2024
30945be
Merge branch 'main' into cross-platform
Lamparter Aug 28, 2024
4744f3e
add summaries to Mod stores methods
HymnalTeminal Aug 30, 2024
03233e4
Merge branch 'cross-platform' of https://github.com/RiversideValley/E…
NoobNotFound Aug 30, 2024
00254c1
update dependencies
NoobNotFound Aug 30, 2024
2f8a808
improve the stability of the mod downloader by creating a helper file…
NoobNotFound Aug 30, 2024
a41cb82
[CodeFactor] Apply fixes (#49)
codefactor-io[bot] Sep 1, 2024
117778b
🔀 📸 Add hero image to `README.md` (#51)
Lamparter Sep 2, 2024
af4d4c2
Merge branch 'main' into cross-platform
Lamparter Sep 2, 2024
3b8b4ba
rename IMinecraftStore to IModrinthStore
NoobNotFound Sep 2, 2024
567a207
fix a bug in `CoreX.Helpers.FileDownloader`, `VerifyFileIntegrityAsy…
NoobNotFound Sep 2, 2024
44018f3
remove unwanted file
NoobNotFound Sep 2, 2024
f151c66
🔀 Merge branch 'main' into cross-platform
Lamparter Sep 13, 2024
ac23225
some updates on Uno UI
NoobNotFound Oct 6, 2024
c3739c3
apply fixes for Navview in Uno
NoobNotFound Oct 7, 2024
19469e0
navbar changes
NoobNotFound Oct 14, 2024
a3228d3
Fix label not unloading Navviews
NoobNotFound Oct 24, 2024
4a0fb60
add converters to Uno app
NoobNotFound Oct 28, 2024
ddb892d
Rename Emerald namsepace to Emerald.Uno + Some updates
NoobNotFound Oct 29, 2024
ea84310
Undo namespace rename
NoobNotFound Oct 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
173 changes: 159 additions & 14 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,22 +1,167 @@
[*.cs]
; This file is for unifying the coding style for different editors and IDEs.
; More information at http://editorconfig.org

# CS8618: Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
dotnet_diagnostic.CS8618.severity = silent
# This file is the top-most EditorConfig file
root = true

dotnet_diagnostic.CS8604.severity = silent
##########################################
# Common Settings
##########################################

dotnet_diagnostic.CS8622.severity = silent
[*]
indent_style = space
end_of_line = crlf
trim_trailing_whitespace = true
insert_final_newline = true
charset = utf-8

dotnet_diagnostic.CS8625.severity = silent
##########################################
# File Extension Settings
##########################################

# CS8602: Dereference of a possibly null reference.
dotnet_diagnostic.CS8602.severity = silent
[*.{yml,yaml}]
indent_size = 2

# CS8603: Possible null reference return.
dotnet_diagnostic.CS8603.severity = silent
[.vsconfig]
indent_size = 2
end_of_line = lf

# CS0252: Possible unintended reference comparison; left hand side needs cast
dotnet_diagnostic.CS0252.severity = silent
[*.sln]
indent_style = tab
indent_size = 2

# CS8600: Converting null literal or possible null value to non-nullable type.
dotnet_diagnostic.CS8600.severity = silent
[*.{csproj,proj,projitems,shproj}]
indent_size = 2

[*.{json,slnf}]
indent_size = 2
end_of_line = lf

[*.{props,targets}]
indent_size = 2

[*.xaml]
indent_size = 2
charset = utf-8-bom

[*.xml]
indent_size = 2
end_of_line = lf

[*.plist]
indent_size = 2
indent_style = tab
end_of_line = lf

[*.manifest]
indent_size = 2

[*.appxmanifest]
indent_size = 2

[*.{json,css,webmanifest}]
indent_size = 2
end_of_line = lf

[web.config]
indent_size = 2
end_of_line = lf

[*.sh]
indent_size = 2
end_of_line = lf

[*.cs]
# EOL should be normalized by Git. See https://github.com/dotnet/format/issues/1099
end_of_line = unset

# See https://github.com/dotnet/roslyn/issues/20356#issuecomment-310143926
trim_trailing_whitespace = false

tab_width = 4
indent_size = 4

# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_property = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_event = false:suggestion

#### 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
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion

csharp_indent_labels = one_less_than_current
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_braces = true:silent
csharp_style_namespace_declarations = file_scoped:warning
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_primary_constructors = 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
101 changes: 66 additions & 35 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,83 @@
name: 🐛 Bug Report
description: Create a bug report to help improve Emerald
labels: [bug]
title: "🐛 "
name: 🐞 Bug
title: '[BUG] <title>'
description: File a bug report
labels: ["bug", "to verify"]
assignees: []
body:
- type: checkboxes
- type: markdown
attributes:
label: ⏱️ Before you start...
options:
- label: Are you on the latest version of Emerald? You might be using an old version.
required: true
- label: Have you checked whether or not a similar issue has already been reported?
required: true
- type: textarea
attributes:
label: 🪟 What build of Windows is this issue present? (optional)
description: Windows key + R > winver.exe
placeholder: build 25174.1010
value: |
Thanks for taking the time to fill out this bug report! Please make sure to add as much detail as you can.
- type: textarea
id: description
attributes:
label: 🔢 What version of Emerald are you on?
description: Go to Emerald > Settings > About
label: Description
description: Please give a detailed description of the issue that you're seeing. You can add screenshots and videos as well.
placeholder: Tell us what you see!
validations:
required: true
- type: textarea
id: repro-steps
attributes:
label: 📄 Description
description: A clear and concise description of what the bug is.
label: Steps to Reproduce
description: Describe all the steps we need to take to show the behavior that you have observed. Also, include what you expected to happen and what did actually happen.
placeholder: |
1. Create a File > New App
2. Add a `Button` like so: `<Button Text="this is a bug" />`
3. Click the added button and observe the bug 🐞

Expected outcome: a bug was added
Actual outcome: a ladybug appeared
validations:
required: true
- type: textarea
- type: dropdown
id: platform-with-bug
attributes:
label: 🪜 Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '....'
2. Click on '....'
3. Scroll down to '....'
4. See the error
label: Platform with bug
description: What Platform is this bug affecting?
options:
- Core
- Android
- iOS
- MacCatalyst
- Windows
- Skia
- WebAssembly
- Other
validations:
required: false
- type: textarea
required: true

- type: dropdown
id: platforms-affected
attributes:
label: 🤔 Expected behavior
description: A clear and concise description of what you expected to happen.
label: Affected platforms
description: Select all or any platform that you see this issue on. This helps us determine if it's something platform-specific or in the core. If you were only able to test on 1 platform, please check the last option to inform us about that.
multiple: true
options:
- Android
- iOS
- MacOS
- MacCatalyst
- Windows
- GTK
- Linux Framebuffer
- WPF
- Skia Desktop
- WebAssembly
- Other
- I was *not* able test on other platforms
validations:
required: true

- type: textarea
id: workaround
attributes:
label: Did you find any workaround?
description: Did you find any workaround for this issue? This can unblock other people while waiting for this issue to be resolved or even give us a hint on how to fix this.

- type: textarea
id: logs
attributes:
label: 📸 Assets
description: |
A list of assets (errors, screenshots) relevant to the bug.
label: Relevant log output
description: Please copy and paste any relevant log output. This will be auomatically formatted into code, so no need for back ticks.
render: shell
57 changes: 26 additions & 31 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,39 @@
name: Feature Request
description: Request a new feature for Emerald
labels: [feature request]
title: "✨ "
name: Feature Request
description: Suggest an idea for this project
labels: ["enhancement"]
assignees: []
body:
- type: markdown
attributes:
value: |
##### ⏱️ Before you start...
- [ ] Have you checked whether or not a similar feature request has already been reported?
Fill in this template with some detail. A detailed description, perhaps supported with some screenshots, mockups, and a (public) API design in pseudo-code.
- type: textarea
id: description
attributes:
label: 📄 Description
description: A clear and concise description of what your idea is. Include things like possible use cases, drawbacks, etc.
label: Description
description: Please give us a detailed description of the feature that you envision. Focus on _what_ this feature does, over the _why_ you want this feature. What would be the end-result when implemented? Feel free to add any diagrams, (mocked up) screenshots, or other materials that support your story.
placeholder: I would love to have a button that I can make shiny. This is something that is supported on all the underlaying platforms.
validations:
required: true
- type: textarea
id: api-changes
attributes:
label: 🗃️ Alternative solutions
description: Describe more ways this idea could be implemented.
validations:
required: false
- type: textarea
attributes:
label: ✅ Tasks
description: Give an overview of all the specific things you would like to be changed or implemented.
value: |
```[tasklist]
### High Priority
- [ ] Something
- [ ] Another thing
- [ ] https://github.com/link/to/an/issue
```
```[tasklist]
### Nice to have
- [ ] Something
- [ ] Another thing
- [ ] https://github.com/link/to/an/issue
label: API Changes
description: Include a list of all API changes, additions, subtractions as would be required by your proposal. These APIs should be considered placeholders, so the naming is not as important as getting the concepts correct. If possible you should include some example (pseudo-)code of usage of your new API.
placeholder: |
```csharp
var button = new Button ();
button.MakeShiny = true; // new API
```

The MakeShiny API works even if the button is already visible.
validations:
required: true
- type: textarea
id: use-case
attributes:
label: 📸 Assets
description: |
A list of assets (screenshots, mockups) relevant to this feature request.
label: Intended Use-Case
description: Provide a detailed example of where your proposal would be used and for what purpose. Focus on _why_ you want this feature instead of _what_ the feature does.
placeholder: I have a situation where I would really want a shiny button to make it stand out from the rest of the plain and boring buttons.
validations:
required: true
Loading
Loading