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

✨ Migrate to new build system and documentation layout #32

Merged
merged 2 commits into from
Dec 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 27 additions & 3 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,34 @@
"version": 1,
"isRoot": true,
"tools": {
"cake.tool": {
"version": "2.2.0",
"gitversion.tool": {
"version": "5.12.0",
"commands": [
"dotnet-cake"
"dotnet-gitversion"
]
},
"thirdlicense": {
"version": "1.3.1",
"commands": [
"thirdlicense"
]
},
"dotnet-reportgenerator-globaltool": {
"version": "5.2.0",
"commands": [
"reportgenerator"
]
},
"docfx": {
"version": "2.74.0",
"commands": [
"docfx"
]
},
"gitreleasemanager.tool": {
"version": "0.16.0",
"commands": [
"dotnet-gitreleasemanager"
]
}
}
Expand Down
9 changes: 0 additions & 9 deletions .devcontainer/Dockerfile

This file was deleted.

29 changes: 0 additions & 29 deletions .devcontainer/devcontainer.json

This file was deleted.

131 changes: 103 additions & 28 deletions src/.editorconfig → .editorconfig
Original file line number Diff line number Diff line change
@@ -1,16 +1,39 @@
# Top-level config file
root = true

# All files
[*]
indent_style = space

[*.yml]
indent_size = 2

[*.md]
charset = utf-8
insert_final_newline = true
end_of_line = unset # Leave it to git
indent_style = space
indent_size = 2
max_line_length = 80

# XML project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2

# XML config files
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2

# Generic C# files
[*.cs]
[*.{cs,vb}]

## Generic options
charset = utf-8
charset = utf-8-bom
indent_size = 4
indent_style = space
tab_width = 8
trim_trailing_whitespace = true
end_of_line = lf
end_of_line = unset # Leave it to git
insert_final_newline = true

## .NET style rules
Expand All @@ -31,6 +54,7 @@ dotnet_style_predefined_type_for_member_access = true:warning

### Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning
dotnet_diagnostic.SA1400.severity = warning # it doesn't follow the above value
dotnet_style_readonly_field = true:warning

### Parentheses preferences
Expand All @@ -45,16 +69,16 @@ dotnet_style_collection_initializer = true:warning
dotnet_style_explicit_tuple_names = true:warning
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:warning
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_return = true:suggestion
dotnet_style_prefer_compound_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_return = true:warning
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:warning
dotnet_style_prefer_simplified_boolean_expressions = true:warning
dotnet_style_operator_placement_when_wrapping = end_of_line

### Null-checking preferences
dotnet_style_coalesce_expression = true:warning
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:warning
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning

Expand All @@ -67,23 +91,25 @@ dotnet_remove_unnecessary_suppression_exclusions = none
csharp_style_var_for_built_in_types = false:warning
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = false:suggestion
dotnet_diagnostic.IDE0008.severity = suggestion # Doesn't follow above values

### Expression-bodied members
csharp_style_expression_bodied_methods = when_on_single_line:suggestion
csharp_style_expression_bodied_methods = false
csharp_style_expression_bodied_constructors = false:suggestion
csharp_style_expression_bodied_operators = true:suggestion
csharp_style_expression_bodied_properties = when_on_single_line:warning
csharp_style_expression_bodied_indexers = when_on_single_line:warning
csharp_style_expression_bodied_accessors = when_on_single_line:warning
csharp_style_expression_bodied_lambdas = when_on_single_line:warning
csharp_style_expression_bodied_properties = when_on_single_line:suggestion
csharp_style_expression_bodied_indexers = when_on_single_line:suggestion
csharp_style_expression_bodied_accessors = when_on_single_line:suggestion
csharp_style_expression_bodied_lambdas = when_on_single_line:suggestion
csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion

### Pattern matching preferences
csharp_style_pattern_matching_over_is_with_cast_check = true:warning
csharp_style_pattern_matching_over_as_with_null_check = true:warning
csharp_style_prefer_switch_expression = true:warning
csharp_style_prefer_pattern_matching = true:warning
csharp_style_prefer_switch_expression = true:suggestion
csharp_style_prefer_pattern_matching = true:suggestion
csharp_style_prefer_not_pattern = true:warning
csharp_style_prefer_null_check_over_type_check = true:suggestion

### Expression-level preferences
csharp_style_inlined_variable_declaration = true:warning
Expand All @@ -95,25 +121,36 @@ csharp_style_prefer_range_operator = true:warning
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:warning
csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion
csharp_style_prefer_method_group_conversion = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion

### Null-checking preferences
csharp_style_throw_expression = true:warning
csharp_style_conditional_delegate_call = true:warning

### Code-block preferences
csharp_prefer_braces = when_multiline:error
csharp_prefer_braces = true:warning
dotnet_diagnostic.SA1503.severity = warning # Doesn't follow above value
csharp_prefer_simple_using_statement = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion

### 'using' directive preferences
csharp_using_directive_placement = outside_namespace:warning
csharp_using_directive_placement = inside_namespace:warning
dotnet_diagnostic.SA1200.severity = warning # Doesn't follow above value

### Modifier preferences
csharp_prefer_static_local_function = true:warning
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:warning

### New C# features
csharp_style_prefer_primary_constructors = true:suggestion
csharp_style_prefer_utf8_string_literals = true:suggestion
csharp_style_prefer_readonly_struct = true:suggestion
csharp_style_prefer_readonly_struct_member = true:suggestion

## C# formatting rules
### New line preferences
csharp_new_line_before_open_brace = local_functions,methods,types
csharp_new_line_before_open_brace = methods,types
csharp_new_line_before_else = false
csharp_new_line_before_catch = false
csharp_new_line_before_finally = false
Expand All @@ -128,6 +165,7 @@ csharp_indent_labels = one_less_than_current
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents_when_block = false
csharp_style_namespace_declarations = file_scoped

### Spacing preferences
csharp_space_after_cast = false
Expand Down Expand Up @@ -157,32 +195,65 @@ csharp_space_between_square_brackets = false
csharp_preserve_single_line_statements = false
csharp_preserve_single_line_blocks = true

### Top level statement
csharp_style_prefer_top_level_statements = true:silent

## Naming styles rules
dotnet_style_namespace_match_folder = true:warning
dotnet_diagnostic.IDE1006.severity = warning

dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
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_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_rule.types_should_be_pascal_case.severity = warning
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = 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_rule.non_field_members_should_be_pascal_case.severity = warning
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 =

## Code analyzers
### .NET SDK
dotnet_diagnostic.CA1303.severity = none # We don't translate exception and log messages from English
dotnet_diagnostic.SA1025.severity = none # Allow spaces in comments to structure info
dotnet_diagnostic.IDE0045.severity = suggestion # Simplify ifs
dotnet_diagnostic.IDE0046.severity = suggestion # Simplify ifs

### StyleCop
dotnet_diagnostic.SA1009.severity = none # False positive due to nullables
dotnet_diagnostic.SA1011.severity = none # False positive due to nullables
dotnet_diagnostic.SA1101.severity = none # Do not force to prefix local calls with 'this'
dotnet_diagnostic.SA1137.severity = none # False positive due to inline methods
dotnet_diagnostic.SA1204.severity = suggestion # Static methods should be before non-static
dotnet_diagnostic.SA1500.severity = none # Allow inline braces
dotnet_diagnostic.SA1503.severity = suggestion # Braces can be omitted (guards can)
dotnet_diagnostic.SA1633.severity = none # No XML-format header in source files
dotnet_diagnostic.SA1200.severity = none # Namespace outside

### IDE
dotnet_diagnostic.IDE0058.severity = suggestion # Expression value is never used

### SonarAnalyzer
dotnet_diagnostic.S1133.severity = suggestion # Remove deprecated code -.-' I know, some day
dotnet_diagnostic.S1135.severity = suggestion # It's almost inevitable to have TODO but add bug ID
dotnet_diagnostic.S1172.severity = silent # Buggy

# Special rules for test projects
[{*Tests/**,*Examples/**}]
[{src/*Tests/**,src/*Examples/**}]
dotnet_diagnostic.CS1591.severity = none # Disable documentation
dotnet_diagnostic.CA1001.severity = none # No need to implement IDisposable in test classes with cleanup.
dotnet_diagnostic.CA1034.severity = none # Public types in test classes for testing implementations
Expand All @@ -192,11 +263,15 @@ dotnet_diagnostic.CA1305.severity = none # No culture method for quick test code
dotnet_diagnostic.CA1307.severity = none # No culture method for quick test code
dotnet_diagnostic.SA0001.severity = none # Disable documentation
dotnet_diagnostic.SA1600.severity = none # Disable documentation
dotnet_diagnostic.SA1201.severity = none # Allow enums inside classes
dotnet_diagnostic.S1144.severity = none # Remove unused setter
dotnet_diagnostic.S2094.severity = none # Remove empty class
dotnet_diagnostic.S2699.severity = none # Assert may be in helper methods
dotnet_diagnostic.S3966.severity = none # Dispose twice to test implementation
dotnet_code_quality_unused_parameters = all:none # Some test methods may not use all the source args

# Special rules for example projects
[*Examples/**]
[src/*Examples/**]
dotnet_diagnostic.SA1123.severity = none # We can have regions inside methods
dotnet_diagnostic.SA1515.severity = none # Allow comment lines after region
dotnet_diagnostic.S1481.severity = none # Unused variables
29 changes: 11 additions & 18 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,22 @@ labels: ""
assignees: ""
---

**Describe the bug**
A clear and concise description of what the bug is.
## Description

**To Reproduce**
Steps to reproduce the behavior:
TODO: describe the issue

1. Get the library from '...' and version '...'
2. Use the class and method '....'
3. See error
## Reproducer

**Expected behavior**
A clear and concise description of what you expected to happen.
TODO: steps to reproduce the behavior.

**Exceptions**
If applicable, the full exception stacktrace that you get.
## Expected behavior

**Screenshots**
If applicable, add screenshots to help explain your problem.
TODO: description of the expected behavior.

**Desktop (please complete the following information):**
## Report info

- OS: [e.g. Windows, Linux, Mac]
- Version [e.g. 22]
TODO: if applicable, the full exception stacktrace that you get.

**Additional context**
Add any other context about the problem here.
TODO: if applicable, add screenshots to help explain your problem.

TODO: describe your environment like OS, app/lib version
Loading