The Open Knowledgebase of Interatomic Models (OpenKIM) aims to be an online resource for standardized testing, long-term warehousing and easy retrieval of interatomic models and data.
Drop embedding of data files in the item shared library (SL)
Install item README, LICENSE, etc. files (will need to determine exactly how these are identified/specified for each item; perhaps only a simple prescription like what homebrew does… OR do item developers need more control/flexibility?). Put these in the DOCDIR.
For SYSTEM COLLECTION install SL in LIBDIR, data files in DATADIR (/usr/local/share), etc. [There may need to be some tricks here to support homebrew] Everything should go under the “kim-api” (really, the KIM_API_PROJECT_NAME) subdirectories within each standard DIR.
Store a hash of parameter files (and others) in SL to verify that files have not been modified. (This can be done by using cmake to generate a hash and then using one of these libraries at run time to verify the hash value; possibly using https://github.com/okdshin/PicoSHA2 or https://create.stephan-brumme.com/hash-library)
For USER COLLECTION: reduce specification (in config file, env-vars, etc.) to just one directory (instead of a dir for each item-type), treat this dir as a PREFIX and install all files in a standard hierarchy below it.
For ENV COLLECTION: same as for USER COLLECTION
For CWD COLLECTION: remove this feature. It doesn’t seem to make sense any longer in this context. The ENV COLLECTION seems sufficiently flexible. Deprecate CWD Collection now.
Item development can be done with the ENV collection and repeated use of “make install” from the build directory. Should add an explanation of how to do this to the INSTALL and/or documentation.
Create an option to install an item’s source package in PREFIX/src/kim-api/…. Default should be to NOT install source. CM can use this to keep the source around when requested by the user.
Drop embedding of data files in the item shared library (SL)
Install item README, LICENSE, etc. files (will need to determine exactly how these are identified/specified for each item; perhaps only a simple prescription like what homebrew does… OR do item developers need more control/flexibility?). Put these in the DOCDIR.
For SYSTEM COLLECTION install SL in LIBDIR, data files in DATADIR (/usr/local/share), etc. [There may need to be some tricks here to support homebrew] Everything should go under the “kim-api” (really, the KIM_API_PROJECT_NAME) subdirectories within each standard DIR.
Store a hash of parameter files (and others) in SL to verify that files have not been modified. (This can be done by using cmake to generate a hash and then using one of these libraries at run time to verify the hash value; possibly using https://github.com/okdshin/PicoSHA2 or https://create.stephan-brumme.com/hash-library)
For USER COLLECTION: reduce specification (in config file, env-vars, etc.) to just one directory (instead of a dir for each item-type), treat this dir as a PREFIX and install all files in a standard hierarchy below it.
For ENV COLLECTION: same as for USER COLLECTION
For CWD COLLECTION: remove this feature. It doesn’t seem to make sense any longer in this context. The ENV COLLECTION seems sufficiently flexible. Deprecate CWD Collection now.
Item development can be done with the ENV collection and repeated use of “make install” from the build directory. Should add an explanation of how to do this to the INSTALL and/or documentation.
Create an option to install an item’s source package in PREFIX/src/kim-api/…. Default should be to NOT install source. CM can use this to keep the source around when requested by the user.