From 8efe80e6712b72e8a5133f136ada9e7cbd42c600 Mon Sep 17 00:00:00 2001 From: STAM Date: Sun, 29 Sep 2024 18:03:58 +0300 Subject: [PATCH] pre 1.3.x metarelease * added compablity with dotnet5+ * migrated from Appveyor to GHA as CI\CD * updated meta for modern guidelines (nuspec, csproj) * Fixed readme --- .github/CODE_OF_CONDUCT.md | 76 +++++++++++++++++++ .github/FUNDING.yml | 12 +++ .github/ISSUE_TEMPLATE/bug_report.md | 38 ++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 +++++ .github/workflows/build-and-deploy.yml | 70 +++++++++++++++++ LICENSE => LICENSE.md | 0 UpdateVersion.csx | 31 ++++++++ appveyor.yml | 21 ----- readme.md | 25 ++++-- LambaBinder.cs => src/LambaBinder.cs | 0 .../kasthack.binding.wf.csproj | 17 ++++- 11 files changed, 278 insertions(+), 32 deletions(-) create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/workflows/build-and-deploy.yml rename LICENSE => LICENSE.md (100%) create mode 100644 UpdateVersion.csx delete mode 100644 appveyor.yml rename LambaBinder.cs => src/LambaBinder.cs (100%) rename kasthack.binding.wf.csproj => src/kasthack.binding.wf.csproj (70%) diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..94f37cc --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at kasthack@epicm.org. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..9ec8d24 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: #kasthack +patreon: kasthack # 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'] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..dd84ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bbcbbe7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml new file mode 100644 index 0000000..fa29b07 --- /dev/null +++ b/.github/workflows/build-and-deploy.yml @@ -0,0 +1,70 @@ +name: Build and Deploy + +on: + push: + branches: [ master, develop ] + pull_request: + branches: [ master, develop ] + +defaults: + run: + working-directory: src + +jobs: + build: + runs-on: windows-latest + env: + DOTNET_NOLOGO: true + DOTNET_CLI_TELEMETRY_OPTOUT: true + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true + + strategy: + matrix: + configuration: [Debug, Release] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8 + + - name: Install dotnet-script + run: dotnet tool install --global dotnet-script + shell: pwsh + + - name: Update version in project + run: dotnet script "${{ github.workspace }}/UpdateVersion.csx" + env: + GITHUB_RUN_NUMBER: ${{ github.run_number }} + shell: pwsh + + - name: Restore dependencies in project + run: dotnet restore + + - name: Build project + run: dotnet build --configuration ${{ matrix.configuration }} --verbosity minimal + + - name: Pack NuGet package [Debug] + if: matrix.configuration == 'Debug' + run: dotnet pack --configuration Debug --output ./nupkg + + - name: Pack NuGet package [Release] + if: matrix.configuration == 'Release' + run: dotnet pack --configuration Release --output ./nupkg + + - name: Push NuGet package + if: matrix.configuration == 'Release' + run: dotnet nuget push ./nupkg/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json + + - name: Create GitHub Release + if: matrix.configuration == 'Release' + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ env.new_version }} + name: ${{ env.new_version }} + files: ./nupkg/*.nupkg + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/UpdateVersion.csx b/UpdateVersion.csx new file mode 100644 index 0000000..17e3f67 --- /dev/null +++ b/UpdateVersion.csx @@ -0,0 +1,31 @@ +//////////////////////////////////////////////////////////// +// +// This is META-file for using in CI system. +// STAM, EpicMorg +//////////////////////////////////////////////////////////// + +#r "nuget: System.Xml.ReaderWriter" + +using System; +using System.IO; +using System.Xml; + +var versionFilePath = "kasthack.binding.wf.csproj"; +var xmlDoc = new XmlDocument(); +xmlDoc.Load(versionFilePath); + +var versionNode = xmlDoc.SelectSingleNode("//Version"); +var currentVersion = versionNode.InnerText; + +Console.WriteLine($"Current version is: {currentVersion}"); + +var buildNumber = Environment.GetEnvironmentVariable("GITHUB_RUN_NUMBER"); +var newVersion = $"{currentVersion.Split('.')[0]}.{currentVersion.Split('.')[1]}.{buildNumber}"; + +versionNode.InnerText = newVersion; +var assemblyVersionNode = xmlDoc.SelectSingleNode("//AssemblyVersion"); +assemblyVersionNode.InnerText = $"{newVersion}.0"; + +xmlDoc.Save(versionFilePath); + +Console.WriteLine($"Updated version to: {newVersion}"); diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 6d00617..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: 1.2.{build} -image: Visual Studio 2017 -before_build: -- ps: dotnet restore -configuration: - - Debug - - Release -build: - publish_nuget: true - verbosity: minimal -dotnet_csproj: - patch: true - file: '**\*.csproj' - version: $(appveyor_build_version) -deploy: -- provider: NuGet - api_key: - secure: 1TRtLMdrz0Uw+6VWQBSUG49Wf6zlHRzMk0FfIRDdw9+4ciMeAkDKcswpI8aAMbxc - on: - branch: master - configuration: Release diff --git a/readme.md b/readme.md index 375276a..4a4b75d 100644 --- a/readme.md +++ b/readme.md @@ -1,19 +1,30 @@ # kasthack.binding.wf -[![Nuget](https://img.shields.io/nuget/v/kasthack.binding.wf.svg)](https://www.nuget.org/packages/kasthack.binding.wf/) -[![NuGet](https://img.shields.io/nuget/dt/kasthack.binding.wf.svg)](https://www.nuget.org/packages/kasthack.binding.wf/) -[![Build status](https://img.shields.io/appveyor/ci/kasthack/kasthack-binding-wf.svg)](https://ci.appveyor.com/project/kasthack/kasthack-binding-wf) -[![license](https://img.shields.io/github/license/kasthack/kasthack.binding.wf.svg)](LICENSE) -[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/kasthack_binding_wf) +[![NuGet Version](https://img.shields.io/nuget/v/kasthack.binding.wf?style=flat-square&link=https%3A%2F%2Fwww.nuget.org%2Fpackages%2Fkasthack.binding.wf)](https://www.nuget.org/packages/kasthack.binding.wf/) +[![NuGet Downloads](https://img.shields.io/nuget/dt/kasthack.binding.wf?style=flat-square&link=https%3A%2F%2Fwww.nuget.org%2Fpackages%2Fkasthack.binding.wf)](https://www.nuget.org/packages/kasthack.binding.wf/) +[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/kasthack-labs/kasthack.binding.wf/build-and-deploy.yml?style=flat-square&link=https%3A%2F%2Fgithub.com%2Fkasthack-labs%2Fkasthack.binding.wf%2Factions%2Fworkflows%2Fbuild-and-deploy.yml)](https://github.com/kasthack-labs/kasthack.binding.wf/actions/workflows/build-and-deploy.yml) +[![GitHub License](https://img.shields.io/github/license/kasthack-labs/kasthack.binding.wf?style=flat-square&link=LICENSE.md)](LICENSE.md) +[![GitHub repo size](https://img.shields.io/github/repo-size/kasthack-labs/kasthack.binding.wf?style=flat-square&link=https%3A%2F%2Fgithub.com%2Fkasthack-labs%2F)](https://github.com/kasthack-labs/) +[![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/kasthack-labs/kasthack.binding.wf/total?style=flat-square&link=https%3A%2F%2Fgithub.com%2Fkasthack-labs%2Fkasthack.binding.wf%2Freleases)](https://github.com/kasthack-labs/releases) -## What +## About -Windows.Forms data binding lambda helper. Gets rid of that literal / nameof bullshit in your code. +Windows.Forms data binding lambda helper. Gets rid of that literal / nameof in your code. ## Installation +### CLI + `Install-Package kasthack.binding.wf` +### dotNet 5+ + +`dotnet add package kasthack.binding.wf` + +### Direct in project via PackageReference + +`` + ## Usage `control.Bind(a=>a.ControlProperty, model, a=>a.ModelProperty.ModelSubProperty)` diff --git a/LambaBinder.cs b/src/LambaBinder.cs similarity index 100% rename from LambaBinder.cs rename to src/LambaBinder.cs diff --git a/kasthack.binding.wf.csproj b/src/kasthack.binding.wf.csproj similarity index 70% rename from kasthack.binding.wf.csproj rename to src/kasthack.binding.wf.csproj index 9aca4b5..bb4e3f0 100644 --- a/kasthack.binding.wf.csproj +++ b/src/kasthack.binding.wf.csproj @@ -4,19 +4,28 @@ true true true - net40;net45;net451;net452;net46;net461;net462;net47 + net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net48;net481;net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows kasthack.binding.wf Windows.Forms data binding lambda helper. Gets rid of that literal / nameof bullshit in your code. false kasthack databinding lambda winforms binding windows forms - https://github.com/kasthack/kasthack.binding.wf/blob/master/LICENSE.txt http://github.com/kasthack/kasthack.binding.wf true - 1.2.1 - 1.2.1.0 + true + 1.3.0 + 1.3.0.0 + + + LICENSE.md + + + + + +