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 | |