project-meta - opendata project metafile manager

NAME

project-meta - opendata project metafile manager

USAGE

project-meta help
project-meta version
project-meta check
project-meta dap-publish [--verbose|-v] [--dataset|-d dataset] [--force|-f]
project-meta dap-unpublish [--verbose|-v] [--dataset|-d dataset]
project-meta dataset-list
project-meta dataset-size [--verbose|-v] [--dataset|-d dataset]
project-meta make-zip [--verbose|-v] [--dataset|-d dataset]
project-meta list-license
project-meta make-file-license
project-meta make-file-author
project-meta make-file-copyright
project-meta upgrade

DESCRIPTION

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".

COMMANDS

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).

check

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.

dap-publish

project-meta dap-publish [--verbose|-v] [--dataset|-d dataset] [--force|-f]

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 (pipe to bash).

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

By default, it is not possible to publish data under your HOME. Indeed, the HOME is personal and data cannot be shared in order to comply with personal data rights (GDPR). You must first position yourself on a shared data space that will be accessible to all users (the data you publish will be public). You can use the --force option to force publication under a personal folder. However, there's a good chance that this won't work!

dap-unpublish

project-meta dap-unpublish [--verbose|-v] [--dataset|-d dataset]

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.

dataset-list

project-meta dataset-list

dataset-size

project-meta dataset-size [--verbose|-v] [--dataset|-d dataset]

make-zip

project-meta make-zip [--verbose|-v] [--dataset|-d dataset]

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:

make-allfiles

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".

list-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:

make-file-license

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".

make-file-author

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.

upgrade

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.

METAFILE SPECIFICATION

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:

KNOWN BUGS

- not really check keys and tags before doing action!

SEE ALSO

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

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

Own project ressources:

AUTHOR

Written by Gabriel Moreau <Gabriel.Moreau@univ-grenoble-alpes.fr>

SPECIAL THANKS

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 AND COPYRIGHT

License GNU GPL version 2 or later and Perl equivalent

Copyright (C) 2017-2024, LEGI UMR 5519 / CNRS UGA G-INP, Grenoble, France

 project-meta - opendata project metafile manager