Uploading results to the validphys repository

The primary method to share results within the collaboration is by uploading the corresponding files to the NNPDF server. Most commonly, results are uploaded to the validphys repository, so that they are accessible from


The files in this repository are backed up to two locations, indexed and cross referenced with the mailing list. The HTTP access to the files is password protected.

The uploading system is designed to be integrated with validphys. Reports, hopefully filled with the appropriate metadata in the runcard, can be uploaded directly, or after they have been completed using the vp-upload script. Arbitrary files can be uploaded using the wiki-upload script, which will interactively ask the user to fill in the metadata. In either case an URL will be returned with the location of the resource accessible with a web browser.

In order to be able to upload files, the user must have a valid SSH key installed in the NNPDF server access, and the rsync command must be present.

Several settings relevant to uploading files are configured in profile files.


Currently the following information is used to index the results:

  • title (string)

  • author (string)

  • keywords (list of strings)

The first two are self explanatory, and keywords is a list of tags used to categorize the result, such as ATLAS jets or nn31final. You can see more examples in the webpage. Keywords are used in various ways to aid the discoverability of the result, and so it is important to set them properly. Some keywords may be used to display the report in a prominent place of the index page.

For validphys runcards, this data is read from a meta mapping declared in the runcard. For example

    title: PDF comparisons
    author: NNPDF Collaboration
    keywords: [gallery]

validphys uses this mapping to write a meta.yaml file with the same information to the output folder. This file is then used by the indexers.

Conventions for writing metadata

Reports endowed with the correct metadata can be retrieved from the index even several years after they are uploaded.

  • Always fill appropriately the metadata fields for anything you upload.

  • Fill the author field with a complete form of your name, e.g. Zahari Kassabov rather than ZK, and always use the same name.

  • Add keywords that are relevant to the result you are uploading. Use existing tags if possible.

Metadata from HTML fallback

An index.html file in the uploaded output folder will serve as a source of metadata if the meta.yaml file is not present (e.g. because the meta mapping was not defined in the runcard). To automatically generate an index.html file from a report action, one may set the option main:True (alternatively there is the out_filename option, which may be used to specify the filename). In the template, use the pandoc-markdown syntax to set the metadata at the top of the file. In the runcard you would write:

template: mytemplate.md
  - report(main=True)

and you would begin mytemplate.md, using YAML syntax, like:

title: Testing the fit {@fit@}
author: Zahari Kassabov
keywords: [nnpdf31, nolhc]

Note that you can use the report syntax to get the parameters from the runcard. If you only want to set title or author, you can also prefix the two first lines of the markdown templates with %:

% Template title
% Myself, the template author


This is mostly useful for sub-reports not at the top level, in more complicated documents.

Uploading directly from validphys

When the --upload flag is set in the invocation of the validphys command, the contents of the output folder will be uploaded to the NNPDF data server, after validphys is done. Use this if you have filled the meta mapping in the runcard and already know that the output is going to be good enough to share. Otherwise use vp-upload after checking the result.

validphys will check the SSH connection before doing any work, and it will fail early if it cannot be established.

The vp-upload script

The vp-upload script uploads completed results to the NNPDF server, such as reports and fits. To upload a completed validphys report, use

vp-upload <output folder>

The output folder is expected to contain the metadata (e.g. in the form of a meta.yaml file). If it doesn’t exist or you want to upload and index arbitrary files, use the wiki-upload command.

The script automatically detects (validphys.uploadutils.check_input()) the type of the input. A fit is defined to be any folder structure that contains a filter.yml file at its root, a PDF is any folder containing a .info file at the root and a replica 0, and a report is any such structure containing an index.html file at the root. The input folder is then placed in the correct location in the server accordingly.


If there is already a fit or PDF on the server with the same name as the fit or PDF you wish to upload, then this command will not overwrite the resource that already exists. To overwite such a resource on the server, use the --force option.

The code is documented at validphys.scripts.vp_upload.

Note that fits are indexed separately, and can be retrieved with the vp-get command.

The wiki-upload script

The wiki-upload script is a more interactive counterpart to vp-upload. It allows uploading arbitrary files that do not have metadata attached. It will construct the metadata by asking the user to fill it in before uploading the result. The usage is

wiki-upload <file or folder>

This will cause the user to be prompted for the various metadata fields and the file or folder to be uploaded to the server, together with a generated meta.yaml file used for indexing.

The code is documented at validphys.scripts.wiki_upload.

The validphys index page

The source of the report index page is


inside the validphys2 directory in the main repository. This page can be edited to reflect the current interests (the Makefile directly uploads to the server). See the documentation on web scripts for more details.