fletch
fletch copied to clipboard
Support the CMake with Protobuf
Jenkins test this please
Jenkins test this please
@aaron-bray I want to revisit this branch so we can add support in MSVC. Can you discuss the version choices here so we can all see and remember?
Right now we support 2.5.0 & 3.4.1. Ideally we will only have a single 2 and a single 3 and hopefully very soon, drop version 2 altogether. Why were all the version choices added here?
Protobuf comes in 2 versions, 2 and 3 The last 'release' of 2 is version 2.6.1
- i.e. there is a release tag and is part of their releases on github. 2.6.1 has NO cmake support Protobuf 3 came out and added CMake (CMakeLists.txt is not in the root dir and thus the build is a bit unconventional, but I digress) To bridge the gap between Protobuf 2.6.1 and Protobuf 3, a 2.7.0 branch was created to help users migrate from 2 to 3 easier. Its kind of a 2/3 hybrid that is more 2 than 3. The 2.7.0 branch does have the CMake support.
So from a windows perspective, I only want to build a Protobuf with CMake support and not screw with nmake, so 2.7 is the only version of Protobuf2 that easily builds on windows, if we want to support Protobuf2.
So 2.6.1 is the last official release of Protobuf2 and hard to build on windows Branch 2.7.0 is the first and only Protobuf2 codebase to support CMake, and easy to build on windows I am also using Protobuf 3.6.1 on my Pulse, which is also easy to build on windows. Protobuf 3.6.x is the first version that utilizes C++11 and you don't get a bajillion deprecation warnings when building
Is something is dependent on 2.5? I left it in because of unknowns. I am not sure why we need Protobuf2 Caffe builds fine with Protobuf 3
So we should really only pull the latest 3 release, and if we need to support 2, use the 2.7 branch.
Whatever we want to do, I probably need to clean this up...
Part of the conversation that fed this question and the revisit of this branch involved whether we still needed and wanted to support version 2 anymore. I plan to send an email out to see if anyone is actively using it, but you were the person I was primarily thinking might.
Regardless of whether we drop 2 or not, is there a problem moving all version 2 support up to 2.7 so we can switch over to the CMake build? If not and depending on the answers to the first question, we can just move version 2 up and stop supporting the non-CMake versions. It's likely we can just upgrade version 3 to the one you recommend as well. I think you are probably the most active user.
Another possibility is to tackle the version 2 fixes first and then do version 3 to minimize risk. That only makes sense though if the branch doesn't get uglier (or more time-consuming) in the process.
I would assume there is no issue moving Protobuf2 from 2.5 to 2.7 Then just update the Protobuf3 version to the latest as needed
Protobuf3 should be default for fletch.
Then we are all CMake compatible. Figure out who/what is wanting Protobuf2.5 and we can ensure 2.7 works fine
Sounds perfect, thanks Aaron. I will start prodding people for answers.
On Thu, Nov 1, 2018 at 1:57 PM Aaron Bray [email protected] wrote:
I would assume there is no issue moving Protobuf2 from 2.5 to 2.7 Then just update the Protobuf3 version to the latest as needed
Protobuf3 should be default for fletch.
Then we are all CMake compatible. Figure out who/what is wanting Protobuf2.5 and we can ensure 2.7 works fine
— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435125188, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRAWoQ5PNhQqK0lob24uJyWOB8GuVv5ks5uqzX1gaJpZM4VbCwx .
-- David Stoup Principal Engineer
Kitware, Inc. 28 Corporate Drive Clifton Park, NY. 12065 518-881-4949 (W) 518-312-3946 (M) 518-371-4573 (F)
So I remembered the wrench that 2.7 has... 2.7 is not a release, its only a branch. So you cannot use a protobuf URL of https://github.com/google/protobuf/releases/download/v2.7.0/protobuf-$2.7.0.tar.bz2
Its just not on their github site. So, we either store our own 2.7.0 source zip in data.kitware, or we pull the branch.. I kind of like the idea of hosting our own zip...
thoughts?
I knew there was a wrinkle somewhere that we were missing.
I don't love hosting tarballs for packages because it makes updates such a black box. Though, if that's the best solution then so be it. One simple option is that we leave the version of 2 alone and continue disallowing Windows builds and open that path up with the version 3 update. That is appealing if we are going to consider removing version 2 anyway. It moves us forward and still provides Windows protobuf with version 3.
On Thu, Nov 1, 2018 at 3:09 PM Aaron Bray [email protected] wrote:
So I remembered the wrench that 2.7 has... 2.7 is not a release, its only a branch. So you cannot use a protobuf URL of
https://github.com/google/protobuf/releases/download/v2.7.0/protobuf-$2.7.0.tar.bz2
Its just not on their github site. So, we either store our own 2.7.0 source zip in data.kitware, or we pull the branch.. I kind of like the idea of hosting our own zip...
thoughts?
— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435150499, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRAWh8LriGzw0kjbLn89x4iKcwXdxJHks5uq0bvgaJpZM4VbCwx .
-- David Stoup Principal Engineer
Kitware, Inc. 28 Corporate Drive Clifton Park, NY. 12065 518-881-4949 (W) 518-312-3946 (M) 518-371-4573 (F)
I don't think protobuf 2 is ever going to change or be updated, 2.7.0 is a dead branch as is Protobuf2 (Latest commit on Jul 26, 2016) So I don't think we will ever be updating it, it will forever sit in data.kitware For Protobuf3 we can pull release zips I also do not mind updating from 2.5 and leaving code associated with 2 alone
Let's see who is using Protobuf2 to figure out which way to go. Maybe we can just remove 2 and not have to worry about this...
AFAIK github has a way to download a tarball of an arbitrary SHA...
On Thu, Nov 1, 2018, 15:09 Aaron Bray <[email protected] wrote:
So I remembered the wrench that 2.7 has... 2.7 is not a release, its only a branch. So you cannot use a protobuf URL of
https://github.com/google/protobuf/releases/download/v2.7.0/protobuf-$2.7.0.tar.bz2
Its just not on their github site. So, we either store our own 2.7.0 source zip in data.kitware, or we pull the branch.. I kind of like the idea of hosting our own zip...
thoughts?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435150499, or mute the thread https://github.com/notifications/unsubscribe-auth/AGLKqTqwVCcHmeMp45900J3w8UVKWnOTks5uq0bvgaJpZM4VbCwx .
Good plan!
On Thu, Nov 1, 2018 at 3:51 PM Aaron Bray [email protected] wrote:
I don't think protobuf 2 is ever going to change or be updated, 2.7.0 is a dead branch as is Protobuf2 (Latest commit on Jul 26, 2016) So I don't think we will ever be updating it, it will forever sit in data.kitware For Protobuf3 we can pull release zips I also do not mind updating from 2.5 and leaving code associated with 2 alone
Let's see who is using Protobuf2 to figure out which way to go. Maybe we can just remove 2 and not have to worry about this...
— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435164466, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRAWja7qfY-DGg8aG2cIHKq3xJe5lGSks5uq1C0gaJpZM4VbCwx .
-- David Stoup Principal Engineer
Kitware, Inc. 28 Corporate Drive Clifton Park, NY. 12065 518-881-4949 (W) 518-312-3946 (M) 518-371-4573 (F)
Yes, you are correct. I did miss the fact that it's a branch still on github, sorry. Was in a meeting a kind of glossed the the end about hosting tarballs.
We can in fact use the 2.7 branch for both Linux and Windows. I am happy enough doing that.
On Thu, Nov 1, 2018 at 4:04 PM Matthew Woehlke [email protected] wrote:
AFAIK github has a way to download a tarball of an arbitrary SHA...
On Thu, Nov 1, 2018, 15:09 Aaron Bray <[email protected] wrote:
So I remembered the wrench that 2.7 has... 2.7 is not a release, its only a branch. So you cannot use a protobuf URL of
https://github.com/google/protobuf/releases/download/v2.7.0/protobuf-$2.7.0.tar.bz2
Its just not on their github site. So, we either store our own 2.7.0 source zip in data.kitware, or we pull the branch.. I kind of like the idea of hosting our own zip...
thoughts?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435150499, or mute the thread < https://github.com/notifications/unsubscribe-auth/AGLKqTqwVCcHmeMp45900J3w8UVKWnOTks5uq0bvgaJpZM4VbCwx
.
— You are receiving this because your review was requested. Reply to this email directly, view it on GitHub https://github.com/Kitware/fletch/pull/422#issuecomment-435168106, or mute the thread https://github.com/notifications/unsubscribe-auth/AFRAWipq9O8tgpwmGrrSSZVUj7HtAo0Jks5uq1PGgaJpZM4VbCwx .
-- David Stoup Principal Engineer
Kitware, Inc. 28 Corporate Drive Clifton Park, NY. 12065 518-881-4949 (W) 518-312-3946 (M) 518-371-4573 (F)