[[PageOutline]] = Releasing application versions = DEPRECATED: see AppVersionNew The `update_versions` script releases new application versions. It creates database entries and copies files to the download directory. To use: * In your project's apps/ directory, create a subdirectory for each application, with the short name of the application. Put new application files here (see below). `update_versions` scans these directories for new application versions. * From the project's root directory, run `./bin/update_versions`. == Single-file application versions == #singlefile File names must be of the form `NAME_VERSION_PLATFORM[__PLAN-CLASS][.ext]`, e.g.: {{{ astropulse_7.17_windows_intelx86.exe }}} * NAME is ignored; typically it is the app name. It must not contain numbers. * VERSION is a string of the form N.M, where N and M are integers with M<100. This is converted to the single integer N*100 + M, which is used to specify application versions elsewhere in BOINC. M may have a leading zero, which is ignored. * PLATFORM is the name of a [BoincPlatforms platform] in the database (if needed, add the platform to the DB using [XaddTool xadd]). * PLAN-CLASS is an optional [AppPlan plan class] for the app version. The file in the example above would have the path {{{ apps/astropulse/astropulse_7.17_windows_intelx86.exe }}} == Multiple-file application versions == #multifile Application versions can consist of multiple files, one of which is the main program. To create a multiple-file application version, create a directory '''with the same name as the main program''' (of the form `NAME_VERSION_PLATFORM[__PLAN-CLASS][.ext]`) and put the files in that directory. If your application includes executable files other than the main file, make sure that their protection flags include the user execute (u+x) bit (`update_versions` will then set the `` flag on its [XmlFormat#file_info ]). Example: {{{ apps/astropulse/astropulse_7.17_windows_intelx86.exe/ apps/astropulse/astropulse_7.17_windows_intelx86.exe/astropulse_7.17_windows_intelx86.exe apps/astropulse/astropulse_7.17_windows_intelx86.exe/some_required_file.dat apps/astropulse/astropulse_7.17_windows_intelx86.exe/graphics_application.exe }}} == Passing extra information about files == #extrainfo If a filename of the form {{{ LOGICAL_NAME=PHYSICAL_NAME }}} is found, the file will have the given logical and physical names (i.e., the application will be able to access the file by passing the logical name to [BasicApi#filenames boinc_resolve_filename()]). If a file of the form {{{ FILENAME.sig }}} is found, its contents will be used as a digital signature for the corresponding file. See the [CodeSigning recommended code-signing practices]. If a file of the form {{{ FILENAME.file_ref_info }}} is found, its contents will be added to the [BoincFiles#file_ref ] element describing the file (you can use this for attributes like [BoincFiles#file_ref ]). In the above 2 cases, if the file has a separate logical name, then FILENAME is the full LOGICAL_NAME=PHYSICAL_NAME. == Options to update_versions == -v or --verbose:: Enable verbose mode -s or --sign:: silently [CodeSigning sign executables] (not recommended) -f or --force:: don't prompt before committing changes