| | 1 | = Pinning jobs to app version numbers = |
| | 2 | |
| | 3 | BOINC's default behavior is to process jobs with the latest app versions. |
| | 4 | |
| | 5 | During the lifetime of an app, there may be changes that are not backward compatible, e.g.: |
| | 6 | |
| | 7 | * A new version uses a different input file format |
| | 8 | * A new version produces output that won't validate against older versions. |
| | 9 | |
| | 10 | If the new version is introduced while there are still older jobs in the system, |
| | 11 | jobs will fail and/or not validate. |
| | 12 | |
| | 13 | One alternative is to stop adding jobs until there are no jobs in progress, |
| | 14 | then add the new app versions and resume creating jobs. |
| | 15 | This can cause lots of unused capacity. |
| | 16 | |
| | 17 | Another option is to create a new app. |
| | 18 | This can cause various problems, e.g. invalidating user configurations |
| | 19 | and app selection settings. |
| | 20 | |
| | 21 | == Job pinning == |
| | 22 | |
| | 23 | A third option is to '''pin''' jobs to a particular app version number. |
| | 24 | For example, |
| | 25 | {{{ |
| | 26 | create_work --app_version_num 405 ... |
| | 27 | }}} |
| | 28 | means that the job is to be processed only by app versions with version number 415 (i.e. 4.15). |
| | 29 | |
| | 30 | The default is 0, meaning that the job is processed using the latest version. |
| | 31 | |
| | 32 | In addition, you must tell BOINC what the earliest usable version for the app is, |
| | 33 | i.e. the lowest version number for jobs currently in progress. |
| | 34 | Do this by setting the "min_version" field in the app's DB entry. |
| | 35 | The easiest way to do this is to change the project.xml, e.g. |
| | 36 | {{{ |
| | 37 | <app> |
| | 38 | <name>uppercase</name> |
| | 39 | <user_friendly_name>upperCASE</user_friendly_name> |
| | 40 | <min_version>415</min_version> |
| | 41 | </app> |
| | 42 | }}} |
| | 43 | and then run [XaddTool xadd]. |