# Coppermine Photo Gallery v1.5.x: Documentation and Manual

# Versioncheck

Dev-only issues related to versioncheck.

## Hidden features

In versioncheck versions prior to cpg1.5.x it has been comparatively hard to update the version information when a new package was going to be released, as the packager had to go through all changes manually. In cpg1.5.x (revision 3977 and later), the packager can simply add the parameter `?output=create` to the URL to force the script loop through the existing entries and update the version / revision / MD5 hashes. You only have to copy the output of the screen and paste it into include/cpg15x.files.xml

Another "hidden" feature is the option to embedd the output into another coppermine-driven page to allow an initial check to be performed during first install.

However, something that needs to be done manually: if folders/files get added to the svn or are renamed, the change needs to be reflected in the XML file as well.

## XML structure

The XML file is being updated when using the `?output=create` parameter, but each developer who is adding a new file to the SVN repository is responsible as well for coming up with a corresponding entry in the XML file. The XML structure should be self-explanatory. Here's a list of possible entries:

- `<fullpath> ... <fullpath>`
  The full relative path to the file in question, seen from the coppermine root folder. Folders should have a trailing slash. Possible placeholders: `**fullpath**` will be replaced with the albums folder - for a default install, this would be `albums`; `**userpics**` will be replaced with the userpics folder set in config.
- `<version> ... </version>`
  The version number in the header. Only applies for text files - folder names and binary files can not have a version information.
- `<revision> ... </revision>`
  The SVN revision number in the header. Only applies for text files - folder names and binary files can not have a version information.
- `<status> ... </status>`
  Currently, there are three possible values: mandatory, optional, remove. If a file get's tagged as "remove", the user running versioncheck will be notified that the file needs to be removed for security reasons. This is meant to make sure that we don't have to carry so many outdated files from older versions with us.
- `<permission> ... </permission>`
  Possible values: read, write. Needs only to be set specifically for folders that must be writable.
- `<hash> ... </hash>`
  MD5-hash of the file meant to make sure that we notcie if files got corrupted or tampered with. Will not work on all platforms. Value is being created during the output=create stage.

## To do list

- Add help icons and corresponding explanations.
- Proper integration into new installer