SDKv9 with current master (3cc71760)?

Problems and solutions for installing or running FreeOrion, including discussion of bugs if needed before posting a bug report. For problems building from source, post in Compile.
Post Reply
Message
Author
User avatar
Dilvish
AI Lead, Programmer
Posts: 4683
Joined: Sat Sep 22, 2012 6:25 pm

SDKv9 with current master (3cc71760)?

#1 Post by Dilvish » Sat May 26, 2018 12:06 am

Is it intended that current master would not yet compile with the SDKv9, at least for MSVC2015? I do note that Build.md has not yet been updated to reference SDKv9, but in the SDK repo itself I didn't note anything indicating that v9 was not yet fully ready. The errors I'm getting (with the FreeOrionSDK_9_MSVC-v140-xp.zip version) are

Code: Select all

Severity	Code	Description	Project	File	Line	Suppression State
Error	C1083	Cannot open include file: 'ft2build.h': No such file or directory	GiGi	C:\Users\Public\Documents\Development\Entertainment\freeorion_project\FreeOrion\GG\src\Font.cpp	34	
Error	LNK1181	cannot open input file 'GiGi.lib'	GiGiSDL	C:\Users\Public\Documents\Development\Entertainment\freeorion_project\FreeOrion\msvc2015\GiGiSDL\LINK	1	
Error	LNK1104	cannot open file 'boost_python-vc140-mt-x32-1_66.lib'	FreeOrionCA	C:\Users\Public\Documents\Development\Entertainment\freeorion_project\FreeOrion\msvc2015\FreeOrionCA\LINK	1	
Error	LNK1104	cannot open file 'boost_log-vc140-mt-x32-1_66.lib'	FreeOrionD	C:\Users\Public\Documents\Development\Entertainment\freeorion_project\FreeOrion\msvc2015\FreeOrionD\LINK	1	
Error	C1083	Cannot open include file: 'ft2build.h': No such file or directory	FreeOrion	C:\Users\Public\Documents\Development\Entertainment\freeorion_project\FreeOrion\util\DependencyVersions.cpp	17	
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12246
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: SDKv9 with current master (3cc71760)?

#2 Post by Geoff the Medio » Sat May 26, 2018 5:52 am

Dilvish wrote:Is it intended that current master would not yet compile with the SDKv9, at least for MSVC2015?
No; patching for new dependency locations is needed.

I could commit that, but wanted to wait a bit for people to get the new SDK set up...

The MSVC 2017 project files should work with SDK9, though.
Attachments

[The extension patch has been deactivated and can no longer be displayed.]


User avatar
adrian_broher
Programmer
Posts: 1072
Joined: Fri Mar 01, 2013 9:52 am
Location: Germany

Re: SDKv9 with current master (3cc71760)?

#3 Post by adrian_broher » Sat May 26, 2018 7:37 am

Dilvish wrote:Is it intended that current master would not yet compile with the SDKv9, at least for MSVC2015
Why should it work? freeorion/freeorion#2118 is still open.
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz

User avatar
Dilvish
AI Lead, Programmer
Posts: 4683
Joined: Sat Sep 22, 2012 6:25 pm

Re: SDKv9 with current master (3cc71760)?

#4 Post by Dilvish » Sat May 26, 2018 8:24 am

adrian_broher wrote:
Dilvish wrote:Is it intended that current master would not yet compile with the SDKv9, at least for MSVC2015
Why should it work? freeorion/freeorion#2118 is still open.
I thought it might work because freeorion-bot released v9 a few days ago without indicating that it was incompatible with current master. And since you direct me to #2118, I'll note that it says "This PR isn't suppose to work yet, as the release wasn't created yet." which is no longer true as of 3 days ago, 2 days after #2118 was opened. So it seems someone should edit the issue summary, and preferably also get some kind of note into the V9 release summary indicating that it was premature or incomplete or something.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Dilvish
AI Lead, Programmer
Posts: 4683
Joined: Sat Sep 22, 2012 6:25 pm

Re: SDKv9 with current master (3cc71760)?

#5 Post by Dilvish » Sat May 26, 2018 8:39 am

Geoff the Medio wrote:I could commit that, but wanted to wait a bit for people to get the new SDK set up...
I guess I'd suggest that it seems to me that it would work better to try to put the corresponding changes in simultaneously (or maybe note the two step process in the SDK release notes along with a link to the fix/patch for the base project)-- I don't see why someone would want to update the SDK an indeterminate amount of time before the corresponding changes were available for the base project since in the interim time it would just break their ability to build FO (though I suppose that if it was clear to them that they were not yet compatible then they'd know to set up a new project location-- probably a significant contributing factor here is that I didn't have prior experience with shifting from one SDK release to another, and the SDK release notes didn't mention the issue).

But I do thank you for the clarification and the patch.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
adrian_broher
Programmer
Posts: 1072
Joined: Fri Mar 01, 2013 9:52 am
Location: Germany

Re: SDKv9 with current master (3cc71760)?

#6 Post by adrian_broher » Sat May 26, 2018 9:59 am

@Dilvish

Did you ever see a `with-FreeOrionSDK-v9` tag popping up in the freeorion/freeorion repository? I don't. Just because a SDK release happened this doesn't mean it's integrated or tested on any of those platforms that require the SDK. This process of SDK updates is not new, but years in place.

Baseline: YOU downloaded the SDK and botchered your local build environment despite the new SDK usage wasn't signed off and integration wasn't complete.
I guess I'd suggest that it seems to me that it would work better to try to put the corresponding changes in simultaneously
To break the previous setup guaranteed AND potentially fucking up the master branch in case the SDK release is botchered?

No, the integration branches stays that way and the tags indicates that the integration has happened.
I don't see why someone would want to update the SDK an indeterminate amount of time [...]
This is required to test the SDK functionality across all platforms via CI. The CI can only access releases of the SDK.
[...] before the corresponding changes were available for the base project [...]
That's wrong, the integration branch existed way before the SDK release and contained all obvious required changes.
[...] since in the interim time it would just break their ability to build FO
That's wrong, for other platforms this doesn't matter at all as you use separate build trees, don't need an SDK or the build system downloads the correct SDK for you. The Windows platform is here the odd one out with in-source building, no ability for a smooth transition and requiring manual intervention for fetching the right SDK.
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz

User avatar
Dilvish
AI Lead, Programmer
Posts: 4683
Joined: Sat Sep 22, 2012 6:25 pm

Re: SDKv9 with current master (3cc71760)?

#7 Post by Dilvish » Sat May 26, 2018 5:21 pm

adrian_broher wrote:Baseline: YOU downloaded the SDK and botchered your local build environment despite the new SDK usage wasn't signed off and integration wasn't complete.
Right, I did, and then I fixed it, and then I posted here politely asking for clarification because the current state of affairs had seemed inconsistent and confusing to me.
Did you ever see a `with-FreeOrionSDK-v9` tag popping up in the freeorion/freeorion repository? I don't. Just because a SDK release happened this doesn't mean it's integrated or tested on any of those platforms that require the SDK.
Do you see anything in the v9 release summary indicating that any of that is a requirement? I don't. I am used to our 'normal' release process in which we release something that we expect to work. I think some explanation of this two-step SDK release process would be useful in the SDK release notes.
This process of SDK updates is not new, but years in place.
While I have been compiling FO on Linux for many years, I am relatively new to using the SDK and compiling FO in Windows. Relying on your users to have familiarity with your historical practices in order to sort out inconsistencies between various current documents is patently unreliable and seems like poor practice to me.

I see that although you have edited your PR and repurposed it towards SDK v10, you are still using the wrong/misleading "This PR isn't suppose to work yet, as the release wasn't created yet." statement.

Baseline: by clinging to your "blame the user" trope you blind yourself to the ways you could shift your 98% perfect work towards being 99% perfect.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
adrian_broher
Programmer
Posts: 1072
Joined: Fri Mar 01, 2013 9:52 am
Location: Germany

Re: SDKv9 with current master (3cc71760)?

#8 Post by adrian_broher » Sat May 26, 2018 8:16 pm

Dilvish wrote:Relying on your users to have familiarity with your historical practices in order to sort out inconsistencies between various current documents is patently unreliable and seems like poor practice to me.
What various documents are you talking about? There is only the README.md, inside the repository refering to BUILD.md in the FO root, which states that you should use FreeOrionSDK v8.
Dilvish wrote:I see that although you have edited your PR and repurposed it towards SDK v10, you are still using the wrong/misleading "This PR isn't suppose to work yet, as the release wasn't created yet." statement.

Baseline: by clinging to your "blame the user" trope you blind yourself to the ways you could shift your 98% perfect work towards being 99% perfect.
So there is no documentation change instructing you to download another SDK, there is not tag signing off the usage of another version of the SDK and there is an open branch containing the changes for testing a new SDK release. So yes, the user is here to blame for not reading the instructions properly.
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12246
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: SDKv9 with current master (3cc71760)?

#9 Post by Geoff the Medio » Sun May 27, 2018 1:33 am

Dilvish wrote:...it would work better to try to put the corresponding changes in simultaneously...
Problem is that updating the include paths for the new layout would break builds with the old SDK. I didn't want to do that immediately. Also, I first got the new MSVC 2017 project files working, which never existed for the older SDKs, as adding those wouldn't break old builds.

User avatar
Dilvish
AI Lead, Programmer
Posts: 4683
Joined: Sat Sep 22, 2012 6:25 pm

Re: SDKv9 with current master (3cc71760)?

#10 Post by Dilvish » Sun May 27, 2018 3:31 am

adrian_broher wrote:So yes, the user is here to blame for not reading the instructions properly.
As I indicated in the first post, I was aware that the build instructions indicated v8, but was also aware that a new SDK had been released. In that first post I didn't bother mentioning the timing of that awareness, but since it seems to matter to you, let me clarify, it was before choosing which SDK to use. I was setting up a new environment, and had to make a choice about which piece of info to go with-- was it more likely that the newly released SDK was inappropriate, or that the build instructions simply had not yet been updated and were stale. I read through the release notes, to see if there was any indication that it would not be appropriate, and found none.

I had to make a call one way or the other about the apparent inconsistency, decided that the older document was more likely to be stale, tried the new SDK, found it didn't work, redid everything with SDK v8, found it did work, and then posted a question here asking for clarification about the situation.

I could totally understand if you were to say it's a low priority task for you to determine appropriate and accurate clarifying guidance on this point to be added to the SDK release notes. But for you to repeatedly assert there is no inconsistency, and to berate me for suggesting a clarification should be made, well, that I do not understand.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

User avatar
Vezzra
Release Manager, Design
Posts: 4606
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: SDKv9 with current master (3cc71760)?

#11 Post by Vezzra » Sun May 27, 2018 1:19 pm

To be fair, adding a short statement to the SDK release notes along the lines of "Please use this SDK to build FO for the commit tagged 'with-FreeOrionSDK-vX' and later" certainly wouldn't hurt and further help avoiding potential confusion. AFAIK the significance of the 'with-FreeOrionSDK-vX' tags isn't documented anywhere else.

Of course, once the cmake build scripts and the SDK work on Windows as they do now on OSX, the point is moot anyway, as the special case handling on Windows will be history, so this isn't really a priority.

Post Reply