6 UpdateVersions
Vitalii Koshura edited this page 2023-04-02 07:01:15 +02:00

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

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 platform in the database (if needed, add the platform to the DB using xadd).
  • PLAN-CLASS is an optional 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

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 <executable/> flag on its <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

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 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 recommended code-signing practices.

If a file of the form

FILENAME.file_ref_info

is found, its contents will be added to the <file_ref> element describing the file (you can use this for attributes like <copy_file>).

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 sign executables (not recommended)

-f or --force

don't prompt before committing changes