Skip to content

Commit

Permalink
Initial project commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ChiefMonk committed Dec 19, 2023
1 parent 2ffadfb commit abc5e2f
Show file tree
Hide file tree
Showing 39 changed files with 873 additions and 2 deletions.
143 changes: 143 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Suppress: EC112
# top-most EditorConfig file
root = true

# Don't use tabs for indentation.
[*]
indent_style = space
# (Please don't specify an indent_size here; that has too many unintended consequences.)

# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4

# Code files
[*.sln]
indent_size = 4

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

# Xml config files
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct,plist}]
indent_size = 4

# JSON files
[*.json]
indent_size = 4

# XML files
[*.xml]
indent_size = 4

# XAML files
[*.xaml]
indent_size = 4

# Dotnet code style settings:
[*.{cs,vb}]
# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true

dotnet_style_qualification_for_field = true:error
dotnet_style_qualification_for_property = true:error
dotnet_style_qualification_for_method = true:error
dotnet_style_qualification_for_event = true:error

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_require_accessibility_modifiers = omit_if_default:warning

# Suggest more modern language features when available
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion

# Naming Conventions:
# Pascal Casing
dotnet_naming_symbols.method_and_property_symbols.applicable_kinds= method,property,enum
dotnet_naming_symbols.method_and_property_symbols.applicable_accessibilities = *
dotnet_naming_style.pascal_case_style.capitalization = pascal_case

dotnet_naming_rule.methods_and_properties_must_be_pascal_case.severity = warning
dotnet_naming_rule.methods_and_properties_must_be_pascal_case.symbols = method_and_property_symbols
dotnet_naming_rule.methods_and_properties_must_be_pascal_case.style = pascal_case_style

# Non-public members must be lower-case
dotnet_naming_symbols.non_public_symbols.applicable_kinds = field
dotnet_naming_symbols.non_public_symbols.applicable_accessibilities = private
dotnet_naming_style.all_lower_case_style.capitalization = camel_case

dotnet_naming_rule.non_public_members_must_be_lower_case.severity = warning
dotnet_naming_rule.non_public_members_must_be_lower_case.symbols = non_public_symbols
dotnet_naming_rule.non_public_members_must_be_lower_case.style = all_lower_case_style
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 4
end_of_line = crlf
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
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_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_namespace_match_folder = true:silent
dotnet_style_allow_statement_immediately_after_block_experimental = true:silent

# CSharp code style settings:
[*.cs]
# Do not prefer "var" everywhere
csharp_style_var_for_built_in_types = true:error
csharp_style_var_when_type_is_apparent = true:error
csharp_style_var_elsewhere = true:error

# Prefer method-like constructs to have a block body
csharp_style_expression_bodied_methods = true:suggestion
csharp_style_expression_bodied_constructors = true:suggestion
csharp_style_expression_bodied_operators = true:suggestion

# Prefer property-like constructs to have an expression-body
csharp_style_expression_bodied_properties = true:suggestion
csharp_style_expression_bodied_indexers = true:suggestion
csharp_style_expression_bodied_accessors = true:suggestion

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Newline settings
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_indent_labels = one_less_than_current
csharp_using_directive_placement = outside_namespace:silent
csharp_prefer_simple_using_statement = true:warning
csharp_prefer_braces = when_multiline:error
csharp_style_namespace_declarations = file_scoped:warning
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_prefer_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
csharp_style_prefer_tuple_swap = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_top_level_statements = true:silent
csharp_style_prefer_utf8_string_literals = true:suggestion
63 changes: 63 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
20 changes: 20 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Code of Conduct

REMEMBER - this is a free project you use - the maintainers are not here to look into a crystal ball or take any form of abuse. This is not a product, it is something that is given away for free.

* Be respectful
* Be concise by providing as much information as possible such as code samples, FULL stack traces, etc - stating that you've followed docs/samples/etc is just not good enough
* Reply to questions back from the maintainer if you want your issue resolved
* Issues are only taken for the latest STABLE version of the library - preview versions of the library can be discussed on the SponsorConnect Discord channel available to sponsors only
* Just because you have an issue, doesn't mean it will be fixed right away. The maintainer isn't a developer for your project. Using reasoning such as "critical, time sensitive, etc" is not fair to the developers of this project. Don't do it and be respectful
* Issues that contain "Mono.Linker.MarkException: Error processing method: '*****' in assembly" are something you need to learn to setup in your release versions. You need to read the documentation from Microsoft here: https://docs.microsoft.com/en-us/xamarin/cross-platform/deploy-test/linker
* DO NOT REQUEST TIMELINES - the answer every single time will be "when it's done"! Refer to very first note above
* We do not take the Sat4.NET samples repository for issues. Why you might ask? A number of reasons
* They aren't always up-to-date with the latest version of Sat4.NET, .NET, etc
* They are setup for debugging or as general guidelines for users
* No requests will be taken for the following
* Library Updates
* Documentation Updates
* Samples
* Support for libraries not listed in the product selection
* Timelines
24 changes: 24 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Contributing

Thanks you for your interest in contributing to Sat4.NET - Please see our our [Code of Conduct](CODE_OF_CONDUCT.md).


### Bug Fixes
If you're looking for something to fix, please browse [open issues](https://github.com/chiefmonk/sat4.net/issues).

Please follow the style used within the project

- Don't use the `private` keyword as it is the default accessibility level in C#
- Apply readonly on class level private variables that are assigned in the constructor
- 4 SPACES - tabs do not exist :)

### Feature Requests

To propose a change or new feature, please make use the feature request area in issues/

#### Non-Starter Topics
The following topics should generally not be proposed for discussion as they are non-starters:

* Large renames of APIs
* Large non-backward-compatible breaking changes
* Avoid clutter posts like "+1" which do not serve to further the conversation
2 changes: 2 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github: [chiefmonk]
# custom: https://www.buymeacoffee.com/chiefmonk
94 changes: 94 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Bug Report
description: You have found something wrong with Shiny
title: "[Bug]: "
labels: [bug, unverified]
body:
- type: markdown
attributes:
value: |
Thank you for filing an issue. Please only file issues against the LATEST STABLE or LATEST BETA version of Shiny from Nuget (ALPHAs are not accepted for issues). If you are a sponsor, you can discuss issues with preview releases in the SponsorConnect Discord channel
If you have questions, please post them in GitHub discussions.
- type: dropdown
id: component
attributes:
label: Component/Nuget
description: The component you are filing against. If it is not listed here it means there is no support for it
options:
- Lightweight constraint programming with a SAT solver (Sat4.NET.Core)
- SAT Toolkit (Sat4.NET.Sat)
- Pseudo-boolean Solvers (Sat4.NET.Pseudo)
- MAX SAT Solvers based on reduction to Pseudo-boolean optimization problems (Sat4.NET.Maxsat)
- CSP solvers based on a translation into SAT (Sat4.NET.Csp)
- SAT-based Sudoku generator and solver (Sat4.NET.Sudoku)
- Other
validations:
required: true
- type: checkboxes
id: operatingsystems
attributes:
label: What operating system(s) are effected?
description: You may select more than one
options:
- label: iOS (13+ supported)
- label: Mac Catalyst
- label: Android (8+ supported)
- label: Windows (.NET 7 Target - only Core is currently supported)
- type: textarea
validations:
required: true
attributes:
label: Version(s) of Operation Systems
- type: checkboxes
id: platforms
attributes:
label: Hosting Model
description: You really should only select one of these
options:
#- label: Blazor
- label: MAUI
- label: Native/Classic Xamarin
- label: Manual
- type: textarea
validations:
required: true
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1.
2.
3.
- type: textarea
attributes:
label: Expected Behavior
validations:
required: true
- type: textarea
attributes:
label: Actual Behavior
validations:
required: true
- type: textarea
id: exception
attributes:
label: Exception or Log output
description: Please copy and paste any relevant log output
- type: textarea
id: codesample
attributes:
label: Code Sample
description: Please include a github repo with your reproducible sample
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/chiefmonk/sat4.net/blob/master/.github/CODE_OF_CONDUCT.md)
options:
- label: I have supplied a reproducible sample that is NOT FROM THE SHINY SAMPLES!
required: true
- label: I am a Sponsor OR I am using the LATEST stable/beta version from nuget (v3.0 stable - ALPHAS are not taking issues - Sponsors can still send v2 issues)
required: true
- label: I am Sponsor OR My GitHub account is 30+ days old
required: true
- label: I understand that if I am checking these boxes and I am not actually following what they are saying, I will be removed from this repository!
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Sat4.NET Community Forums
url: https://github.com/chiefmonk/sat4.net/discussions
about: Please ask and answer questions here.
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Feature Request
description: You have an idea for an enhancement within Shiny
title: "[Feature Request]: "
labels: [feature request, unverified]
body:
- type: markdown
attributes:
value: |
Please note that we are not taking feature requests for Windows or Shiny v2.
- type: textarea
attributes:
label: Summary
description: Your summary of the feature
validations:
required: true
- type: textarea
attributes:
label: API Changes
validations:
required: true
- type: textarea
attributes:
label: Intended Use Case
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/chiefmonk/sat4.net/blob/master/.github/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
Loading

0 comments on commit abc5e2f

Please sign in to comment.