| 430 | | |
| 431 | | |
| 432 | | |
| 433 | | |
| | 430 | = ''dybbin'' Approach Under Discussion = |
| | 431 | |
| | 432 | |
| | 433 | * '''dybbin''' allows a NuWa installation to be copied to another location |
| | 434 | |
| | 435 | == email to David, Jiajie == |
| | 436 | |
| | 437 | {{{ |
| | 438 | I like the elimination of a separate build in this dybbin |
| | 439 | approach however I see several problems with usage of update builds |
| | 440 | and externally imposed cron dybbin, my suggested solutions : |
| | 441 | |
| | 442 | * Update build |
| | 443 | Are promoting usage of an update build, |
| | 444 | which is prone to breakage on data model changes and is generally |
| | 445 | the subject of negative prejudice. |
| | 446 | |
| | 447 | Can eliminate this issue by making the dybinst command used by the slave |
| | 448 | "./dybinst -c trunk project dybgaudi" |
| | 449 | do a refresh when data model changes are detected. |
| | 450 | |
| | 451 | Enforcing external cron cut-off times introduces issues (and leads to |
| | 452 | complicated workarounds) : |
| | 453 | |
| | 454 | * A build can be in-progress at cron dybbin time or the last build |
| | 455 | can be broken ... meaning there is no valid build to copy. |
| | 456 | |
| | 457 | * Uncoordinated between sites, the prevalent build at dybbin time |
| | 458 | may differ between sites according to speed/breakage differences between slaves. |
| | 459 | |
| | 460 | To avoid these issues (and complicated workarounds), |
| | 461 | I suggest not to impose an external cron job but rather to to add a |
| | 462 | final step to the dybinst slave build that (if the tests succeeded) |
| | 463 | performs a dybbin copy "installation" into a directory named after the revision. |
| | 464 | And performs purging to remove excess revision directories. |
| | 465 | |
| | 466 | One possible problem with this scheme is that our 'daily' might not match the |
| | 467 | 'daily' elsewhere, but I think that could be handled, perhaps by having the master |
| | 468 | define the revision number corresponding to the current 'daily'. |
| | 469 | |
| | 470 | |
| | 471 | Concerning coordination between slaves (although I have implemented |
| | 472 | such a system in the ad-hoc daily.bash) I think supporting and explaining |
| | 473 | complex procedures for this is not worth the effort/confusion. |
| | 474 | |
| | 475 | Simply referring to builds by their real name : '''the revision number''' |
| | 476 | and not the date eliminates the issue and benefits from direct |
| | 477 | correspondence between the state of builds reported in the web interface |
| | 478 | (including the timeline). |
| | 479 | |
| | 480 | Users will want to use a build after a particular |
| | 481 | feature has been added (or bug removed) ... thus they should |
| | 482 | know the minimum revision they want. |
| | 483 | They can then look for a corresponding build that the slave on |
| | 484 | their cluster succeeded to build at : |
| | 485 | http://dayabay.ihep.ac.cn/tracs/dybsvn/build/dybinst |
| | 486 | |
| | 487 | Yours, Simon |
| | 488 | }}} |
| | 489 | |
| | 490 | |
| | 491 | |