Giter VIP home page Giter VIP logo

Comments (10)

Gigas002 avatar Gigas002 commented on September 21, 2024 2

Some progress reports here.

TLDR, nearest goals for now:

  • Publish native nuget package (almost done);
  • Upgrade cpp bindings logics into dotnet core bindings library (in progress);
  • Upgrade the way options are handled in WinForms app;
  • Publish bindings package to nuget;
  • Configure ci autobuilds;

All the other stuff goes on later, that's the first step.

Currently I'm working on upgrading binding's core logics. I've encountered some difficulties and also lack time, so the progress goes on very slow, but I'm not abandoning the project. I've decided to rewrite the way, Ad...Options handled in application, so in my dev branch it's functionality partly broken atm (master branch is still safe to use for now).
Packaging cpp core into native nuget package going on pretty well, I'm ready to publish it to nuget already. I'd like to use vcpkg's simd before it, but no one seems to grab on my issue on adding simd into vcpkg package feed (I don't know how to do it myself unfortunately).
I also thought about WPF app, and from my perspective it would be better to write Avalonia GUI instead of WPF. It's THEORETICALLY possible to port the cpp core to linux, so writing cross-platofrm gui from the start would result into less pain in the future.

from antidupl.

Edi61 avatar Edi61 commented on September 21, 2024 1

Hi Gigas002,

are you still working on this? I have implemented the support of simd in vcpkg, so its now available. It should directly work, after removing all simd stuff from AntiDupl.
microsoft/vcpkg#28163

from antidupl.

Gigas002 avatar Gigas002 commented on September 21, 2024

Talking about x86 versions of projects, at current state it's easily to add them back again (only configuration changes needed, no adding new files, etc), but I just don't see the point.

from antidupl.

ermig1979 avatar ermig1979 commented on September 21, 2024

I am glad to see activities at AntiDupl project. The many items above are usefull and I was going to do some of them. In particular to remain only x64 support, replace main functionality form C++ to C#. I hope it will not only plans.

from antidupl.

Gigas002 avatar Gigas002 commented on September 21, 2024

Thank you for your answer! I'm in process of implementation these features, yet I can't tell yet, when I'll be able to create a solid PR. For now I hope to complete most part until the end of 2021's January.

from antidupl.

Gigas002 avatar Gigas002 commented on September 21, 2024

@Edi61 Sorry for a late response. Unfortunately, as you can see, I've stopped working on project due to some personal difficulties (plus, I've moved to linux on my personal pc, so I can't even build winforms/wpf projects without VMs). Feel free to contact me if you have any questions about the stages I have already done. Some stuff, like moving to AntiDupl.Native package is easy to implement, but I haven't completed the bindings for AntiDupl.NET.Core package

from antidupl.

Edi61 avatar Edi61 commented on September 21, 2024

Hi @Gigas002,
thanks for response

from antidupl.

Gigas002 avatar Gigas002 commented on September 21, 2024

@Edi61 Great to see a lot of work being done and my fork was helpful at least for a bit 👍!
Since this a discussable question, I wasn't sure where to put it, so decided not to create a new issue.
IMO it would be a good architecture change to publish AntiDupl.Native and AntiDupl.NET.Core packages onto nuget. That would simplify the building process for people, who doesn't want to build c++ portion of the code, install c++ toolset and just want to work on GUI apps. Plus, that could simplify the writing of CI/CD. What do you think about that?

from antidupl.

Edi61 avatar Edi61 commented on September 21, 2024

Hello @Gigas002,
I am not jet familiar with Nuget so much, but your idea sounds plausible. At least I have also seen in the discussions that they seem to be interested people just on the AntiDupl.Native.
Could you describe a little more how a nuget publish procedure would look like and also how your concrete idea was regarding CI/CD?

from antidupl.

Gigas002 avatar Gigas002 commented on September 21, 2024

@Edi61 Native package, in fact, is doesn't contain any code with exception of .csproj file. The example for AntiDupl.Native in my repo should work just fine.
First PropertyGroup just defines package's metadata.
Next block controls Release-specific metadata. The nuget package will automatically be built on release if GeneratePackageOnBuild property is set to true.
The last ItemGroup block sets a path to a binaries to put into library (pre-built c++ AntiDupl binaries), e.g. <None Include="../AntiDupl/bin/$(Platform)/Release/*.dll">. After that, the package must be manually put onto https://www.nuget.org/. It's possible to auto-update it with CI/CD afterwards, but the first push must be manual, I think.
I also think, that AntiDupl (C++ project) and AntiDupl.Native should have it's own configurations (e.g. <Configurations>Native-Debug;Native-Release</Configurations>, so we can separate them from build in C#-only CI/CD config.
I'm not familiar with CI/CD for C++ projects, but as we separate native part from C# code I think I'll contribute to a repo. If you want to implement it by yourself, it's pretty easy to do with GitHub's CI/CD tools. Since this project doesn't have any tests, the yml code would look something like this:

name: .NET

on: [push, pull_request]

jobs:

# Build on Windows

  build-windows:

    runs-on: windows-latest
    
    steps:
    - uses: actions/[email protected]
    - name: Setup .NET
      uses: actions/[email protected]
      with:
        dotnet-version: 6.0.x
    - name: Restore dependencies
      run: dotnet restore
    - name: Build
      run: dotnet build --no-restore -c Release /p:Platform=x64

for a build tasks. Now, for CD, I haven't written this with GitHub (though I don't think would be hard to implement), but I've used AppVeyor. It uses yml files as config as well, it's syntax is pretty straightforward and it also has a web GUI for creating config.

from antidupl.

Related Issues (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.