Giter Site home page Giter Site logo

Comments (22)

bsergean avatar bsergean commented on May 14, 2024 1

Ok I'll take a look. Documentation change is probably the only thing needed then. I've been thinking about adding a small 'Build' wiki page (or markdown or whatever is the most convenient) where we could explain all the different ways to build this lib.

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024 1

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024 1

Great thanks.

I'm trying to document what's changing in here -> https://github.com/machinezone/IXWebSocket/blob/master/CHANGELOG.md

There wasn't too much since 5.0.0, no changes to the core library, but there was a windows fix I just made, caused by something I introduced ... at some point :)

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024 1

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

Hi @LunarWatcher. Thanks for all the efforts trying to get this building with conan. I've actually been playing with vcpkg and there's a 'port' for it that got merged recently.

This port I linked too is un-maintained and ancient indeed. The README for this project has examples, and the unittest is a good place to look for up to date code.

I am very unfamiliar with conan, so if you want to make a PR for it I'll accept it. I don't know much about the steps for pushing something conan-center.

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I haven't tried publishing anything to conan-center, but I already have an account on Bintray, so it shouldn't be too hard.

When you say you want a PR, do you want the recipe in this repo? Most of the other conan recipes I've seen use separate repos. It's no problem either way, I just need to make sure I understand what you want. (A documentation update PR is kinda implied here either way)

Either way, I'll need to set up some tests, but I think once I've done that, I should be able to upload it. Now that there are actual tests, I might be able to run it from there instead of manually creating tests. Some packages create their own tests, others (like Boost), appear to use placeholder C++ files linking to the internal tests. Not really sure - like I said, I don't have much experience with creating conan recipes.

Like I said, the current one works minimally, but IIRC, there needs to be tests in order to upload it to the central repo. And since you said you're not familiar with conan, conan center is the central conan repository. Packages can be added there freely, but there's constraints and I think review before that happens, but I haven't tried publishing a package. Uploading it to Bintray alone allows the repo to be added as a remote, and it enables the recipe/any built binaries for compatible platforms to be downloaded without manually calling conan create to install it anywhere necessary.

Users can also upload recipes for third party libraries, so it's not limited to the owners. The specific guidelines for both are listed here if you're interested.

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

Update on the issue:

I've re-written the entire recipe from scratch. It's in the same repo, but it's no longer a fork because, like I said, re-writes.

I added a test as well, but it currently excludes Windows due to an issue that may or may not be of importance:

Unable to connect to echo.websocket.org on port 80, error: Either the application has not called WSAStartup, or WSAStartup failed

This is Windows-only from the looks of it (no-repro on an Ubuntu 18.04 Docker container). I have practically no experience with this library - could I be missing some library linking here, or is Windows just broken?

Anyway, beyond that, the recipe should be ready. I ended up creating a test using websocket.org as an echo server, which works fine on Linux (aside two messages and a race condition, but that's not really a big deal as long as it's at lesat returning something).

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I'll push the new code in a second - that call fixed it on Windows. As for the race condition, that appears to have been a loop problem. Weirdly though, it doesn't happen on Windows, only Linux (might be a container issue of course, but I kinda had that coming for using a while loop to dispatch messages :] ).

In this I noticed I created a bug with linking the vendored version of MbedTLS on Linux. I'll fix that tomorrow. Beyond that, the test seems to be fine, and the library is doing its job. I'll leave another comment once I've patched up the vendored MbedTLS issue on Linux, but after that, I think the recipe should be up to date. It's still untested on Apple (which I can't test because I don't have access to an Apple device) and Android, but I imagine Android is pretty close to Linux.

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I've fixed the build issue in Linux with mbedTLS (it was a linking order issue - added a safeguard to make sure it's linked in the right order).

The recipe should be mostly ready now. It could of course do with more testing, but I can't break it locally on two different operating systems, using three different compilers. Like I said yesterday, I can't test Apple, but it should be easy to patch any issues there.

I'll see if I can figure out how to push it to Conan Center, and any issues with the recipe can be handled as they show up (issues are also enabled in the recipe repo). I can submit a documentation update once I get it published if you want.

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I should probably update this. I figured I'd wait until I heard back from Bintray, but I haven't heard anything.

I've finished off the rest of the inclusion requirements and submitted it for inclusion. I haven't gotten a reply yet. When it gets included, just adding the dependency is enough. For the record, it's:

IXWebSocket/5.0.0@LunarWatcher/stable

In the meanwhile, it can be accessed by adding a new remote (conan remote add remote_name_here https://api.bintray.com/conan/oliviazoe0/conan-packages).

I'm not sure if you want to make a temporary documentation update while the request gets processed, but either way, the recipe is up.

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I had to set up CI as a part of the inclusion criteria, and the Mac builds pass there at least. But that's also a full build, and not direct local inclusion. That being said, it works fine locally on Linux and Windows (no local build - pulling straight from Bintray). Still waiting for a reply from Bintray (I really have no idea how long this will take at this point).

The instructions appear to be fine, but you have a copy-paste error on the remote line (an accidental ). snuck in at the end of the code block).

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

I just released 5.0.4 which had a build fix on Windows, if this matter.
Not sure what we should do with this ticket, can we close it?
Did bintray ever replied ?

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

I haven't gotten a reply yet. No idea when I can expect it either. Thanks for the message though - I'll set up some builds and push 'em (I see I've missed a few versions - I need to find a decent notification system).

I suppose it makes sense to close this issue. I'll rather leave a comment on this if I get a reply from them - the problem itself is fixed.

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

It seems the former Bintray inclusion process has been deprecated, so I guess I'll never get a reply.

I'll poke around and see what I can find on the new inclusion process. I'll have to check if the project qualifies, and how badly it breaks the recipe. The existing conan repo and everything I've mentioned earlier should:tm: still work regardless of inclusion. It seems Bintray is used as well, so it shouldn't break that at least, regardless of the inclusion outcome. I'll keep you updated when I figure out the main stuff.

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

Sorry about the delay.

From what I can tell, it's just a different build process. The teaks should be minor and I'm already working on that. There doesn't seem to be any requirements. All I need is (in theory:tm:) a PR and to be in the early access program, which I requested and was let into a few days ago. It's not specifically exclusive, it's actually very open. Anyway, I'm gonna be working on the recipe and testing over the next few days. There's a few factors I'm not sure about yet, such as how to go about mitigating the few builds that're somehow broken - for an instance, the release with Windows bugs a while ago, and how libraries specify the version of C++ they're using. Abeit some C++11 libraries doesn't specify anything, so it might be fine.

Anyway, I'll send you a link whenever I submit the PR

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

PR submitted. There might be more work to do before it gets merged, but I'll stay on top of that as problems show up

from ixwebsocket.

bsergean avatar bsergean commented on May 14, 2024

from ixwebsocket.

LunarWatcher avatar LunarWatcher commented on May 14, 2024

Looks like everything is ready. Waiting on a final review (ended up bumping the version, but the version before that was cleared), so it should be merged some time tonight. I'll submit a documentation change PR (here) for conan usage whenever my PR for conan center gets merged in (Conan 1.21.x includes several changes, which I need to get into before I submit a documentation PR). There's a heavy reduction in the amount of versions available, but it's much easier to keep up to date now. It'll also be easier to access (no more explicit remotes to use the library)

from ixwebsocket.

Related Issues (20)

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.