IRC log for #bzflag on 20160413

03:09.25*** join/#bzflag heartnet (~msk@90-104-16-160.host.anywhere.rr.nu)
04:05.12*** join/#bzflag Snake12534 (uid87978@gateway/web/irccloud.com/x-cnhnwalyomerxsxc)
04:27.14BulletCatcherOn Fedora 23, at least, it appears that the only remaining obstacle to reproducible builds is the date compiled into buildDate.cxx.
04:27.16BulletCatcherIf we really want to make the 2.4.6 release have reproducible builds we could hard-code the date instead of using the __DATE__ preprocessor macro for just the tagged Git commit, and then go back to using __DATE__ again afterward.
04:27.43BulletCatcherMy preference would be to drop the date entirely for just the release.
04:32.12blast007if we go with the SOURCE_DATE_EPOCH spec, couldn't we fall back to use __DATE__ if SOURCE_DATE_EPOCH isn't defined?
04:33.57DTRemenakwhy is perfect reproducibility a goal?
04:34.25blast007https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal#Examples
04:34.50blast007DTRemenak: because the Linuxes are wanting reproducable builds, mainly
04:35.38DTRemenakreproducible builds for fixed environments can already be generated by running ./configure before the distribution (this is how we used to build SRPMs)
04:36.04DTRemenakand if the environment is not fixed there's not much point, I think (linking to a patched library breaks reproducibility too)
04:36.24blast007we use __DATE__ in one of our source files
04:36.37BulletCatcherThe build date is set when buildDate.cxx is compiled, not when configure is run.
04:36.41DTRemenakah
04:36.54DTRemenakwhy'd we do that?
04:37.12blast007probably so it behaved the same on Windows
04:37.32DTRemenakI thought windows' configure.h could take care of that
04:38.55DTRemenakyeah, it used to be a fixed date by configure
04:38.59DTRemenakhttps://github.com/BZFlag-Dev/bzflag/commit/32828d79acd5747d29c729c978aaf67c2797e394
04:39.43DTRemenaknote the #ifndef BZ_BUILD_DATE
04:39.54DTRemenak__DATE__ was only used if configure hadn't defined it
04:42.00DTRemenakapparently someone though it was too complicated ;)
04:44.53BulletCatcherI still think an abbreviated Git commit hash would be more useful than a date.
04:44.55BulletCatcherI also think we shouldn't clutter the version string with a hash for releases.
04:45.55BulletCatcherBut we developers don't have much of a consensus on exactly what info should be in the version string.
04:46.01blast007DTRemenak: BZ_BUILD_DATE was being undef'ed since 2005: https://github.com/BZFlag-Dev/bzflag/commit/69a298eae14a395653047b5590ffa8af421df4e5
04:46.51DTRemenakyeah, saw that shortly after pasting the link.  still, not sure why it was turned off, or why nobody has complained about our SRPMs since then (assuming we still supply them)
04:47.24blast007the project hasn't provided RPMs in years
04:47.40blast007we only provide source .zip, .tar.gz, and .tar.bz2
04:47.46DTRemenakI haven't run a system using RPMs in years, so... ;)
04:49.03blast007looks like 2003 for the last source RPM, and 2005 for the last binary RPM
04:49.16DTRemenakwell you can call me out of date
04:49.54BulletCatchergets off DTRemenak's lawn
04:50.54DTRemenakdates have the convenient property that they always go in one direction, whereas commit ids (especially abbreviated ones) don't
04:51.18DTRemenakit's easy to tell whether my development build is newer or older than someone else's with a date...much harder with a commit hash
04:51.46blast007in the case of Git, it doesn't matter if they're abbreviated or not - from an order standpoint is pretty random looking ;)
04:51.54DTRemenakfair enough
04:52.32blast007also, the idea was that the git hash would only be for development (odd) binaries
04:52.37DTRemenakfor release builds I don't see it mattering much at all, as long as we stick to the basic convention of "all builds with the same version number should be equivalent)
04:52.43blast007stable releases would just have the version number
04:58.40BulletCatcherIf having a nondecreasing number is more important than identifying the specific commit on which the code is based, then there are at least a couple of ways to get that from Git.
04:59.17BulletCatcherFor example, "git rev-list HEAD --count" gives the number of commits on the current branch all the way back to the first.
04:59.34BulletCatcherWe're currently at 13197 on the 2.4 branch.
05:00.15DTRemenakhow consistent is that between active repositories?
05:00.33BulletCatcherIt wouldn't be.
05:01.15DTRemenakin the past we've also ended up building multiple release binaries with the same version in some situations (when a particular platform...looking at you OSX...had problem due to the build system's configuration), and the date helped differentiate them.
05:02.16DTRemenakBulletCatcher: so it doesn't help me compare my version string to another developer's, just like a commit hash doesn't :(
05:02.29DTRemenakBulletCatcher: how about "last commit date"?
05:03.09BulletCatcher"Date of HEAD" would be doable.
05:04.17BulletCatcher... on unix and probably the Mac, but I don't know how to do anything like that on Windows.
05:04.48DTRemenak(also, you don't necessarily need to take anything I say into consideration, considering the last time I actually committed a change...;et;) )
05:05.01DTRemenak...let's just say I used "svn commit"
05:05.30BulletCatcherYour perspective remains valuable.
05:05.49DTRemenakwindows has almost always needed special attention for build stuff anyway
05:07.15DTRemenak(notably, even when BZ_BUILD_DATE was set in configure, windows used __DATE__)
05:08.20BulletCatcher"git log --author=dtremenak -n 1" :-)
05:10.04BulletCatcherI think the Windows behavior was part of the motivation for just using __DATE__ on all platforms.
05:12.28BulletCatcherSince the desire for reproducible builds seems to be mostly a unix thing, we could make it a configure option and continue as-is on Windows and the Mac.
05:13.46BulletCatcherSufficiently motivated Windows and Mac developers would be welcome to provide the same functionality for their platforms.
05:24.12BulletCatcherIn semantic versioning, different builds of the same underlying code base are distinguished by an extra dot-number rather than a date string.
05:24.36DTRemenakyeah, and that's almost certainly a better way to go
05:24.59DTRemenakI don't know that we currently have any facility for that though
05:25.17BulletCatcherNothing automatic.
05:25.22the_mapthe dot is to the right of the comma
05:25.35DTRemenak~fishslap the_map
05:25.35infobotACTION slaps the_map up side the head with a wet fish.
05:35.15blast007not a configure option, an environment variable: https://reproducible-builds.org/specs/source-date-epoch/
05:37.08DTRemenakheh.  and THAT approach would totally work on windows.
05:37.47DTRemenak<PROTECTED>
05:47.49BulletCatcherA commit identifier and the build date convey different information.
05:47.51BulletCatcherPerhaps we should use both.
06:20.07*** join/#bzflag zuii (~cauchy@BC06BF93.catv.pool.telekom.hu)
08:49.40*** join/#bzflag I_Died_Once (~I_Died_On@unaffiliated/idiedonce/x-1828535)
09:42.44*** join/#bzflag cods_ (~fred@tuxee.net)
09:53.44*** join/#bzflag jcp (uid143528@bzflag/contributor/javawizard2539)
10:30.27*** join/#bzflag DTRemenak|RDP (~DTRemenak@about/essy/CrazyCoder/DTRemenak)
10:30.27*** mode/#bzflag [+v DTRemenak|RDP] by ChanServ
11:20.50*** join/#bzflag zuii (~cauchy@BC06BF93.catv.pool.telekom.hu)
11:37.47*** join/#bzflag cods (~fred@tuxee.net)
11:39.10*** join/#bzflag FastLizard4|zZzZ (fastlizard@wikipedia/pdpc.active.FastLizard4)
11:47.01*** join/#bzflag ruskie (ruskie@sourcemage/mage/ruskie)
11:48.45*** join/#bzflag [dmp] (~dennis@unaffiliated/dmp/x-546784)
13:38.59*** join/#bzflag tw1sted_ (~tw1sted@104.236.87.240)
13:50.30*** join/#bzflag kaadmy (uid135503@gateway/web/irccloud.com/x-dkuzhfkxhnftcwzy)
14:09.18*** join/#bzflag Shuist (~Shuist@ppp203-122-213-220.static.internode.on.net)
14:41.30*** join/#bzflag tw1sted (~tw1sted@104.236.87.240)
14:44.50*** join/#bzflag dngor (~abuse@p3m/dngor)
15:36.21*** join/#bzflag meeba_ (~lamer@c-73-14-146-7.hsd1.co.comcast.net)
15:39.04*** join/#bzflag joevano_ (~joevano@bzflag/developer/JoeVano)
15:39.04*** mode/#bzflag [+v joevano_] by ChanServ
15:41.02*** join/#bzflag tw1sted (~tw1sted@104.236.87.240)
17:12.08*** join/#bzflag DTRemenak (~DTRemenak@about/essy/CrazyCoder/DTRemenak)
17:12.09*** mode/#bzflag [+v DTRemenak] by ChanServ
18:43.33*** join/#bzflag the_map_ (~the_map@unaffiliated/the-map/x-1795707)
18:45.18*** join/#bzflag TD-Linux (~Thomas@about/essy/indecisive/TD-Linux)
19:13.59*** join/#bzflag kaadmy (uid135503@gateway/web/irccloud.com/x-gmirogvpichqyqhb)
22:59.32*** join/#bzflag infobot (ibot@rikers.org)
22:59.32*** topic/#bzflag is http://BZFlag.org || http://ohloh.net/p/bzflag || https://wiki.bzflag.org/Getting_Help || Channel Logs: http://infobot.rikers.org/%23bzflag/ || 2.4.4 released! https://forums.bzflag.org/viewtopic.php?f=62&t=19186
22:59.32*** mode/#bzflag [+v infobot] by ChanServ
23:39.29*** join/#bzflag BulletCatcher (~bc@bzflag/developer/BulletCatcher)
23:40.18*** join/#bzflag Shuist (~Shuist@ppp203-122-213-220.static.internode.on.net)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.