Anonymous | Login | 2024-10-11 14:03 CDT |
My View | View Issues |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000169 | Rosetta | [All Projects] Bad Coding | public | 2013-01-11 16:19 | 2013-03-26 16:15 | ||||
Reporter | smlewis | ||||||||
Assigned To | AndrewLeaverFay | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Platform | All platforms | OS | Any | OS Version | Any | ||||
Product Version | Trunk | ||||||||
Fixed in Version | Trunk | ||||||||
Summary | 0000169: Good idea to move svn_version.py to devel? | ||||||||
Description | There 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? | ||||||||
Tags | No tags attached. | ||||||||
Application(s) Affected | scons compile time | ||||||||
Command Line Used | scons; run:version | ||||||||
Developer Options | Feature Request | ||||||||
Fixed in SVN Version | 54533 | ||||||||
Attached Files | |||||||||
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 |