Skip to content
This repository has been archived by the owner on Aug 30, 2022. It is now read-only.

Resolve #112 Build Under Windows #115

Merged
merged 6 commits into from Sep 4, 2019

Conversation

mdouaihy
Copy link
Contributor

Which problem is this PR solving?

Short description of the changes

  • Move to OpenTracing 1.5.0 that builds under Windows
  • Change link of OpenTracing to dynamic. With Static linking of OpenTracing, we end up with multi definition of OT Symbols. This is not acceptable especially for the OT Global Tracer
  • Fix OS specificities
    ** Networking API
    ** Windows headers
  • Fix some tests with random behavior that failed on Windows
  • Fix some MSVC specific compilation
  • Add appveyor build file.

Signed-off-by: Mehrez Douaihy mehrez.douaihy@gmail.com

@mdouaihy mdouaihy force-pushed the windowsbuild branch 3 times, most recently from 1c7a31e to 9091fc4 Compare July 1, 2018 15:31
CMakeLists.txt Outdated Show resolved Hide resolved
Copy link
Contributor

@isaachier isaachier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see a number of good changes but not sure if this is the right approach. I don't know if this is worthwhile seeing as I plan on deprecating most of this code soon in favor of a C client.

CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
src/jaegertracing/net/Socket.h Show resolved Hide resolved
src/jaegertracing/platform/Endian.h Outdated Show resolved Hide resolved
src/jaegertracing/testutils/MockAgent.cpp Outdated Show resolved Hide resolved
src/jaegertracing/ThriftMethods.cpp Outdated Show resolved Hide resolved
src/jaegertracing/ThriftMethods.cpp Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
@isaachier
Copy link
Contributor

@mdouaihy do you plan on updating this or are you busy?

@mdouaihy
Copy link
Contributor Author

Hello @isaachier, sorry for the delay to answer but I have been sick for the past weeks.

I will take your comments into consideration and update the PR soon.

@isaachier
Copy link
Contributor

Sorry to hear you were sick @mdouaihy. I based some of the code changes in #120 on some changes in dynamic loading you have here, so I appreciate the PR. Whenever you have a chance to update this, I'll be glad to help review it.

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 3, 2018

@rnburn, @isaachier, @ruslo
Sorry for the late PR update. I took me some time but I was able finally to allocate time for it.

CMakeLists.txt Outdated Show resolved Hide resolved
src/jaegertracing/Config.h Outdated Show resolved Hide resolved
src/jaegertracing/LogRecord.h Show resolved Hide resolved
src/jaegertracing/Span.h Outdated Show resolved Hide resolved
src/jaegertracing/Reference.h Outdated Show resolved Hide resolved
src/jaegertracing/net/http/ResponseTest.cpp Outdated Show resolved Hide resolved
src/jaegertracing/samplers/SamplerTest.cpp Show resolved Hide resolved
src/jaegertracing/testutils/MockAgent.cpp Outdated Show resolved Hide resolved
src/jaegertracing/utils/UDPClientTest.cpp Outdated Show resolved Hide resolved
@isaachier
Copy link
Contributor

This is all great. I understand you probably had to redo your changes entirely for this second review. From now on, if possible, please commit on top of the older changes and do not squash so we can see updates more easily.

@FredrikAppelros
Copy link

Is work on this progressing? Do you need any help? Would love to see this merged ASAP.

@mdouaihy
Copy link
Contributor Author

Hi @FredrikAppelros, some tests are failing on Windows because if the bug described in issue #127.

I believe this is the last issue to solve in order to have this PR pushed.

@isaachier
Copy link
Contributor

Hi @FredrikAppelros, some tests are failing on Windows because if the bug described in issue #127.

I believe this is the last issue to solve in order to have this PR pushed.

Hey I'll try to look this over tonight. If that is the only issue, I will allow a quick hack seeing as I have not come up with an easy fix for the bug.

@solomonlu
Copy link

Hello everyone, can this PR continue? We are eager to use jaeger on Windows.

@isaachier
Copy link
Contributor

I'll try to see if this still merges and looks good.

@isaachier
Copy link
Contributor

I see I have a bunch of unresolved comments here. Please fix them and resubmit.

@FredrikAppelros
Copy link

@isaachier: Are you referring to the style changes you requested or something more substantial when you mention unresolved comments?

As I offered before, I can help if I were given permission to push commits to this PR from @mdouaihy. The style changes should be easy enough, and I also have some fixes on top of this locally that I would like to see here.

One of the issues I had prevented me from getting this to compile since it could not pull in some dependency properly and the other makes sure that we can target the Windows 8.1 SDK.

I have not looked into the failing test case you guys mention though. Would be great if you could work out a solution for that.

@isaachier
Copy link
Contributor

@FredrikAppelros I have no control over the PR source, but you can always fork the windowsbuild branch from @mdouaihy and make the changes there. If you do that, we can open a PR based off of your version of windowsbuild and potentially land this without @mdouaihy's involvement. If @mdouaihy is free to help, then there is a better way to do this: make a PR onto @mdouaihy's windowsbuild branch and it will automatically update here when it lands there.

@yurishkuro
Copy link
Member

Or make smaller incremental PRs.

@mdouaihy
Copy link
Contributor Author

hello guys, I will recheck the changes requested by @isaachier. However, i still have the problem described in issue #127. That blocked me from going further.

@isaachier
Copy link
Contributor

@mdouaihy I was/am ready to accept this PR despite #127, especially because there is no easy fix there. You can use the local fix you had previously used. Just try to fix other comments and style suggestions.

@efficks
Copy link

efficks commented May 23, 2019

Hi, Is anybody have any news on this PR. Is someone needs help to make it merged? I offer my help if needed.

@isaachier
Copy link
Contributor

isaachier commented May 23, 2019

Hi, Is anybody have any news on this PR. Is someone needs help to make it merged? I offer my help if needed.

Hey @efficks thanks for the offer. Last I heard, @mdouaihy was going to look over the changes. If you'd like to take over this PR, try pulling @mdouaihy's branch and writing a PR against @mdouaihy's fork. Then, if @mdouaihy accepts it on this branch, it will automatically update the PR.

EDIT: Alternatively, use this branch or a new branch to implement Windows compatibility and create a new PR.

@mdouaihy
Copy link
Contributor Author

Hello,
I am working again on the PR. However, due to update of msvc to 15.9, some dependencies dont compile anymore. I am following/working on them.

@mdouaihy
Copy link
Contributor Author

Hi @yurishkuro, I configured a build for my fork at https://ci.appveyor.com/project/mdouaihy/jaeger-client-cpp/builds with appveyor configuration. I am thinking of keeping only Debug or Release instead of having them both (leading to doubled build time). What do you think?

@yurishkuro
Copy link
Member

@mdouaihy what do you mean by "keeping debug or release only"? keeping where?

we seem to have an official appvoyer account for this repo, but it has no builds since last year.

https://ci.appveyor.com/project/jaegertracing/jaeger-client-cpp/settings

Would you like to configure it to build for this PR? I sent you an invitation to that project.

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 1, 2019

Hi @yurishkuro, my question was about the types of builds to run under windows: Debug and/or Release. I ended up keeping only the Debug build since the release one does offer any added value.

As for the integration with Appveyor, I dont have permission on the github project. Can you check that the Github Appveyor app is well configured to run on PR?

@yurishkuro
Copy link
Member

I reinstalled AppVeyor GitHubApp.

I see this in the Events
image

But in the build history I only see older builds.

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 1, 2019

I think that this is because it's configured to run only on the master and not for the PR, no?

@yurishkuro
Copy link
Member

I don't think so.
image

image

Signed-off-by: FR-MUREX-COM\mchaikhadouaihy <mehrez.douaihy@gmail.com>
@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 1, 2019

I pushed a small change to the PR. Appveyor was triggered.

@AppVeyorBot
Copy link

Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am ready to merge this, just a couple of asks for comments.

Any idea why AppVeyor only posted a comment, instead of adding the status to the build check like Travis does?

src/jaegertracing/TracerTest.cpp Show resolved Hide resolved
src/jaegertracing/TracerTest.cpp Show resolved Hide resolved
@AppVeyorBot
Copy link

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 1, 2019

it seems that Appveyor does both: update the check and submit a message.

@yurishkuro
Copy link
Member

Hm, I don't get it, now the Travis status is gone. I was hoping to get both, testing on different OSes

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 3, 2019

hi @yurishkuro, maybe we need to reinstall travis ci?

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 3, 2019

hi @yurishkuro, any update?

@yurishkuro
Copy link
Member

I disabled and re-enabled the repo in Travis, and restarted the last build (which was for commit d08082c, so it missed several latest commits).

@yurishkuro
Copy link
Member

Can you push another commit to this PR?

Signed-off-by: FR-MUREX-COM\mchaikhadouaihy <mehrez.douaihy@gmail.com>
@AppVeyorBot
Copy link

@yurishkuro yurishkuro merged commit fec4327 into jaegertracing:master Sep 4, 2019
@mdouaihy mdouaihy deleted the windowsbuild branch September 4, 2019 21:07
@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 4, 2019

Thank you @yurishkuro !

@yurishkuro
Copy link
Member

thank YOU for your contribution.

@FredrikAppelros
Copy link

Excellent! Will we see this in a release soon? :)

@yurishkuro
Copy link
Member

According to https://github.com/jaegertracing/jaeger-client-cpp/blob/master/RELEASE.md, releasing is just a tag? If someone can create the pre-release PR (changelog changes, etc), then I can do a release.

@mdouaihy
Copy link
Contributor Author

mdouaihy commented Sep 6, 2019

PR #169 sent for that purpose.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make Jaeger Client Cpp build and run on Windows
9 participants