The end of the maintenance branch - Page 5

The end of the maintenance branch

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Post Reply
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

ivand wrote: 12 Oct 2020, 18:29 As I don't see these errors locally, will it be possible to sync up Travis CI/CD GCC version with one used by build-slaves? Otherwise I'll need to fix bugs blindfolded.
updating gcc for travis is difficult, updating blindfolded schould be ok. do you use gcc 10.2 locally? with mxe it should be easy to update, there is a plugin "gcc10": https://github.com/mxe/mxe/tree/master/plugins

some of the fixes are already in the development branch, i.e. https://github.com/spring/spring/commit ... f8ee913d24 +
https://github.com/spring/CircuitAI/com ... ae743b94bd

so maybe updating the git submodule(s) + applying the fixes is enough.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

I don't use mxe, locally (on Windows) I use mingw with GCC 8.1.0. I don't remember why, but I had some issues with less ancient versions of GCC/MinGW, so upgrading here is not an easy option. We also experimented with containerized build and the GCC in use there is 9.3-posix (ubuntu:latest-based). Probably in can be bumped up to 10.x something, but I for now it's not a priority.

Is setting build-slaves GCC to 8.x - 9.x possible?
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

abma wrote: 12 Oct 2020, 19:26 some of the fixes are already in the development branch, i.e. https://github.com/spring/spring/commit ... f8ee913d24 +
https://github.com/spring/CircuitAI/com ... ae743b94bd
Good catch, but since I don't have commit rights to cherry-pick those into two :? other branches, one of the engine devs should do that.
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

ivand wrote: 12 Oct 2020, 19:57 Is setting build-slaves GCC to 8.x - 9.x possible?
as updating the buildslaves is a lot of work, if you can't name a good reason (like unfixable syncerrors) why it shouldn't be gcc 10, i prefer gcc 10. we always had a mix of different gcc versions for release / CI. this change will bump the min gcc version required to compile spring.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

abma wrote: 12 Oct 2020, 20:31
ivand wrote: 12 Oct 2020, 19:57 Is setting build-slaves GCC to 8.x - 9.x possible?
as updating the buildslaves is a lot of work, if you can't name a good reason (like unfixable syncerrors) why it shouldn't be gcc 10, i prefer gcc 10. we always had a mix of different gcc versions for release / CI. this change will bump the min gcc version required to compile spring.
All right, makes sense. Can you cherry-pick these two commits into maintenance and transition?
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

ivand wrote: 12 Oct 2020, 20:39 All right, makes sense. Can you cherry-pick these two commits into maintenance and transition?
done!
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

Great, thanks.
Looks like though that your build-slave is out of disk space: https://buildbot.springrts.com/#/builders/5/builds/5

Also, FYI, we are setting "github actions" build of spring for BAR purposes. If it goes well, I'll share the action def file.
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

the transition branch fails with linking errors on spring-headless:

https://buildbot.springrts.com/#/builde ... logs/stdio

does compile/linking work for you locally?
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

That sucks... headless windows build fails for no apparent reason. I reproduced the issue locally, inside container and on github builder.
Will be looking what magic brought build down...

Added later:
OK, I think I found it, quite unexpected reason, but whatever...
I'll see if I submit a small PR or deliver the fix with some other major update.
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

ivand wrote: 14 Oct 2020, 00:29 I'll see if I submit a small PR or deliver the fix with some other major update.
nice! would be good if you send a pull request to fix it ASAP because when it doesn't compile i.e. bisecting is not possible in some cases.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

Ok, I'll do once I am done with Github actions, should be within a few days.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

After 3 and half sleepless nights I'm finally getting github builds. Something can be rough on the edges, but I consider it a huge progress and see nothing un-fixable.

The current draft of action workflow is here: https://github.com/beyond-all-reason/sp ... /build.yml
Unfortunately I discovered that so-called "artifacts" are not accessible to anyone outside the github organization, so artifacts well be eventually replaced with public github releases.

Also as promised: https://github.com/spring/spring/pull/546/files
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

nice! merged + works: https://springrts.com/dl/buildbot/defau ... 0bb/win64/


so, next step on my side is, to upgrade gcc on linux64 and then linux32 + win32 buildslaves.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

You might as well deprecate 32 bit builds.
spring as is is on the edge of 32-bit allocation limits, which causes it to crash after 10-20 minutes of play.

P.S. Github builds are done now.
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

ivand wrote: 16 Oct 2020, 20:58 You might as well deprecate 32 bit builds.
spring as is is on the edge of 32-bit allocation limits, which causes it to crash after 10-20 minutes of play.
this always happens for the latest builds of the transition branch? i thought that the last "maintenance" build should be 32 bit. but if that mostly crashes than i fully agree.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

I meant the maintenance crashes here.

Afaik 32 builds are already not used in ZK and BAR. Perhaps some of the less Lua and texture heavy games can still enjoy 32 bit builds, but it is the end of 2020 and I don't think many still run 32 bit OSes. In any case the transition assumes (although not strictly requires) more or less modern GPU, drivers, OS, etc. So...
raaar
Metal Factions Developer
Posts: 913
Joined: 20 Feb 2010, 12:17

Re: The end of the maintenance branch

Post by raaar »

It may be annoying for people running spads hosts from 32 bit servers.

Mine is 64bit so I'm safe there.
User avatar
ivand
Posts: 242
Joined: 27 Jun 2007, 17:05

Re: The end of the maintenance branch

Post by ivand »

@gajop disagrees with me, but I stick to my opinion, that the transition new primitives and the develop engine as a whole is not for every game. In fact it might be for only one or two or three of the existing or new ones.

Even though a good API wrapper will soften the experience, the Modern GL is still much more complex than the constructs we use in the maintenance:
  • Every draw call requires an active shader.
  • One needs to wrap their head around the concept of GPU buffers and generic attributes.
  • I'm thinking about retained rendering mode, essentially draw tasks, that would partially eliminate Lua<->engine round-trips. If ever, it's not going to be a very easy API to use.
etc...

Those who are good as is might stay on the maintenance. The maintenance received very few changes over the past year and we know it's been a good fit for the most popular spring games. It's fair to say it's battle tested and requires zero effort to stay on as far as OpenGL, 32-bit builds, 32-bit servers, etc.

The aim for the transition is to not crash on the old systems without the needed (new for transition) OpenGL profile or extensions. Idk whether the goal is 100% attainable, but at least I'd consider such crash a bug. That said, I personally not gonna wrestle with all kinds of legacy. Old or 32 bit OSes, old or incomplete drivers, GPU potatoes, etc are not in the scope of my concern. The transition is the way to move forward towards develop and carrying too much legacy is unjustified.
User avatar
PicassoCT
Journeywar Developer & Mapper
Posts: 10355
Joined: 24 Jan 2006, 21:12

Re: The end of the maintenance branch

Post by PicassoCT »

So the problem is us gamedevs, who need to rewrite our stack partially?
could we ease- accelerate that transition somehow?
abma
Spring Developer
Posts: 3701
Joined: 01 Jun 2009, 00:08

Re: The end of the maintenance branch

Post by abma »

PicassoCT wrote: 18 Oct 2020, 21:57 So the problem is us gamedevs, who need to rewrite our stack partially?
could we ease- accelerate that transition somehow?
no: the problem is, that changes hurts and some users don't understand why we need to change stuff: it is so vital to move to a newer opengl version. also when we do this, we need to cut off some old and deprecated stuff.

please give the engine development + infrastructure some more time, the transition branch exactly tries to allow a smooth migration.
Post Reply

Return to “Engine”