Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000169Rosetta[All Projects] Bad Codingpublic2013-01-11 16:192013-03-26 16:15
Reportersmlewis 
Assigned ToAndrewLeaverFay 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformAll platformsOSAnyOS VersionAny
Product VersionTrunk 
Fixed in VersionTrunk 
Summary0000169: Good idea to move svn_version.py to devel?
DescriptionThere is an auto-versioning script which runs every time you do scons. It detects git as well as SVN versions, and allows the -run:version flag to work. It may be a good idea to move the system from core to devel; this means that each-and-every git commit when developing won't cause the core and protocols libraries to re-link. The run:version code would have to move to devel:init, which is no longer a cost because all apps use devel:init now.

Also, I think someone (Rocco?) wrote in a flag to scons to skip running svn_version.py, which is an alternate way to prevent this problem...if that's true can someone mention it on this bug report?
TagsNo tags attached.
Application(s) Affectedscons compile time
Command Line Usedscons; run:version
Developer OptionsFeature Request
Fixed in SVN Version54533
Attached Files

- Relationships

-  Notes
(0000138)
rmoretti (Attentive Developer)
2013-01-11 16:47

The scons flag to skip the versioning check is --nover.

The other option is to use cmake, which only runs the versioning script in the initial generation phase, but not for any of the rebuild runs.

--

One possible complication to moving the versioning is that currently the core::init tracer does the -run:version printing. I'd be against moving it to the devel:init tracer, as currently the single core:init tracer is printing the relevant info to recapitulate the run (version information, command line, random seed), and spreading that out to other tracers would complicate managing logging.

One way around that is to possibly have static versioning strings at the core level, which the devel level then modifies (prior to calling core::init).

--

Finally, not all applications use devel::init, not even all the ones in public/ - run a grep in the src/apps directory just to see. Some are probably just mistaken, but there's some issues with devel for things like BOINC (though I don't know the exact details). Not a show-stopper, but something to be taken into consideration.
(0000181)
smlewis (Administrator)
2013-03-16 15:10

This will be harder to move than we thought: there are dependencies on svn_version; the features / database support in particular does actually use this data. Tim will post a note on ideas to use global mutable data to, um, fix this.

16:08:59 contador ~/git_from_andrew/rosetta/rosetta_source/src> ack-grep -l svn_version
apps/pilot/mike/rosetta_backend.cc
python/bindings/BuildBindings.py
python/bindings/src/__init__.py
protocols/jobdist/JobDistributors.hh
protocols/jobdist/JobDistributors.cc
protocols/features/ProtocolFeatures.cc
protocols/features/BatchFeatures.cc
protocols/jd2/AtomTreeDiffJobOutputter.cc
core/svn_version.cc
core/svn_version.hh
core/init.cc
(0000182)
tjacobs2 (Developer)
2013-03-16 15:17

We could simply move svn_version.cc (although we should really change it to git soon) to devel, and allow it to update the same way we do now. Then, at runtime we use a function call in devel init.cc to set a global data member that lives as low as we want based on the const data set by the compilation script.
(0000219)
AndrewLeaverFay (Administrator)
2013-03-26 16:12

SVN versioning script now writes the version and url info to devel/svn_version.cc. In devel::init(), this code is handed up to the core library before protocols::init() gets called. Then when core::init() is called, the version has been written.

- Issue History
Date Modified Username Field Change
2013-01-11 16:19 smlewis New Issue
2013-01-11 16:47 rmoretti Note Added: 0000138
2013-03-16 15:10 smlewis Note Added: 0000181
2013-03-16 15:17 tjacobs2 Note Added: 0000182
2013-03-26 16:12 AndrewLeaverFay Fixed in SVN Version => 54533
2013-03-26 16:12 AndrewLeaverFay Note Added: 0000219
2013-03-26 16:12 AndrewLeaverFay Assigned To => AndrewLeaverFay
2013-03-26 16:12 AndrewLeaverFay Status new => assigned
2013-03-26 16:12 AndrewLeaverFay Resolution open => fixed
2013-03-26 16:12 AndrewLeaverFay Status assigned => closed
2013-03-26 16:12 AndrewLeaverFay Fixed in Version => Trunk
2013-03-26 16:15 smlewis Status closed => resolved


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker