project-meta - opendata project metafile manager


 project-meta help
 project-meta version
 project-meta check
 project-meta dap-publish
 project-meta dap-unpublish
 project-meta dataset-size
 project-meta make-zip
 project-meta list-license
 project-meta make-file-license
 project-meta make-file-author
 project-meta make-file-copyright
 project-meta upgrade


Project-Meta is a small tool to maintain a set of open data files. In order to help you in this task, project-meta command has a set of action to generated and maintain many files in your dataset.

Everything is declare in the metafile PROJECT-META.yml. This YAML file must exist in your root projet folder. See "METAFILE SPECIFICATION".


Some command are defined in the source code but are not documented here. Theses could be not well defined, not finished, not well tested... You can read the source code and use them at your own risk (like for all the Project-Meta code).


 project-meta check

Check your PROJECT-META.yml has the good key. If your metafile is not a valid YAML file, you can use yamllint or ysh commands to check just it's format.


 project-meta dap-publish

Publish data on an OpeNDAP server. Because data can be very large, This command just create UNIX soft links on the OpeNDAP folder to the real data. There is no copy. Files AUTHORS.txt, LICENSE.txt and COPYRIGHT.txt are mandatory but could be generated (see below). The main keys use in the PROJECT-META.yml are:

Because this command could be dangerous, it does nothing! It print on terminal shell command to be done. You have to verify ouput before eval it.

 project-meta dap-publish
 project-meta dap-publish | bash


 project-meta dap-unpublish

Unpublish data from the OpeNDAP server. In practice, it remove links in OpeNDAP folder for that projet. Because command rm is always dangerous, we use here the command find limited to folder and link.

Please verify the returned values before excuted it with the -delete option.


 project-meta dataset-size


 project-meta make-zip

Create a ZIP archive with the open data set. Files AUTHORS.txt, LICENSE.txt and COPYRIGHT.txt are mandatory but could be generated (see below). The main keys use in the PROJECT-META.yml are:


 project-meta make-allfiles

Generate or update all files: AUTHORS.txt, COPYRIGHT.txt and LICENSE.txt. This command is just a shortcut for "make-file-author", "make-file-copyright" and "make-file-license".


 project-meta list-license

Give the list of all the open data licenses supported by the project-meta license database. At this time the possible licenses are:

Note that these licenses are dedicated to open data. Please do not use an open license that would have been thought for source code or documentation and not for open data. Here are some links about open data licence context:


 project-meta make-file-license

Copy the license file from the project-meta license database at the current folder with the file name: LICENSE.txt.

The license is defined in the PROJECT-META.yml specification under the key public-dap/data-license. The list of possible license is given with the command "list-license".


 project-meta make-file-author

Create or update the AUTHORS.txt file at the current folder. Authors data are extracted from the PROJECT-META.yml file.

 project-meta make-file-copyright

Create or update the COPYRIGHT.txt file at the current folder. Authors, license and copyright data are extracted from the PROJECT-META.yml file.


 project-meta upgrade

Upgrade config file to last version. Create a file PROJECT-META-vVERSION.yml in the current directory if it's not exists, error otherwise. Please maually verify this autogenerated config file before rename and using it.


Each project must have an open data metafile describing the project : PROJECT-META.yml. The file is in YAML format because this is a human-readable text file style. Other formats could have been Plain XML, RDF, JSON... but they are much less readable.

You can find in the project-meta software a PROJECT-META.sample.yml example. This one is actually the master reference specification!

Some interresting papers or links about Open Meta Data Schema:


 - not really check keys and tags before doing action!


yamllint(1), ysh(1), YAML, Archive::Zip

In Debian GNU/Linux distribution, packages for yamllint and ysh are:

Own project ressources:


Written by Gabriel Moreau, LEGI UMR5519, CNRS, Grenoble - France


The list of people below did not directly contribute to project-meta's source code but provided me with some data, returned bugs or helped me in another task like having new ideas, specifications... Maybe I forgot your contribution in recent years, please forgive me in advance and send me an e-mail to correct this.

Joel Sommeria, Julien Chauchat, Cyrille Bonamy, Antoine Mathieu.


License GNU GPL version 2 or later and Perl equivalent

Copyright (C) 2017-2018 Gabriel Moreau <Gabriel.Moreau(A)>.