C 0000015 mmmv package info t1
This specification is still being written.
One development deliverable may produce multiple different deployment deliverables. A deployment deliverable has a relative ID in relation to its development deliverable. A development deliverable is a tar-file that contains its own secure hash and size in bytes as part of its name. For example, the tar-files might be Silktorrent packets, stblob-files. The ID of the development deliverable is the name of the tar-file. An absolute ID of a deployment deliverable has the following format:
The tar-file of the development deliverable and the relative ID of the deployment deliverable must both include only characters that meet the requirements of the C_0000014 mmmv_ASCII_subset_t1.
Deployment Deliverable Format
Deployment deliverables all have an executable file named mmmv_package_info_t1 at their root folder. It is a console application that has the following mandatory command line fomrat, in EBNF:
COMMANDLINE_ARGUMENTS :== NONE | HELP | DISPLAY_VARIABLE | DISPLAY_CONSTANT NONE :== // displays this EBNF and exits with error code 1 HELP :== "--help" | "-help" | "help" | "-?" | "-h" | "h" // displays this EBNF and exits with error code 0 DISPLAY_VARIABLE :== ("--display-variable" | "--var" | "-var" | "var" ) (DISPLAY_COMPULSORY_VARIABLE | DISPLAY_OPTIONAL_VARIABLE) DISPLAY_CONSTANT :== ("--display-constant" | "--const" | "-const" | "const" ) (DISPLAY_COMPULSORY_CONSTANT | DISPLAY_OPTIONAL_CONSTANT) DISPLAY_BOOLEAN_X :== <name prefix that consists of only characters in the mmmv_ASCII_subset_t1>"_boolean="<true|false> DISPLAY_HEX_X :== <name prefix that consists of only characters in the mmmv_ASCII_subset_t1>"_lower_case_hex="<lower case hex> DISPLAY_ARRAY_X :== (<one or more spaces>)* (DISPLAY_BOOLEAN_X|DISPLAY_HEX_X) (<one or more spaces>(DISPLAY_BOOLEAN_X|DISPLAY_HEX_X))*(<one or more spaces>)* DISPLAY_COMPULSORY_VARIABLE :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X DISPLAY_OPTIONAL_VARIABLE :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X DISPLAY_COMPULSORY_CONSTANT :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X DISPLAY_OPTIONAL_CONSTANT :== DISPLAY_BOOLEAN_X | DISPLAY_HEX_X | DISPLAY_ARRAY_X
- If the command does not exist, for example, "hhhelpp" is used in stead of "help", then the mmmv_package_info_t1 exits with error code 1.
- If the variable does not exist, but the command is correct, then the mmmv_package_info_t1 exits with error code 2.
- Variable values, including arrays, are displayed so that there are no linebreaks. Text with linebreaks can be converted to hex and then stored as a variable value.
- The value of constants never changes due to availability or state change of runtime dependencies.
- The value of variables may change due to availability or state change of runtime dependencies.
- s_deployment_deliverable_relative_ID // s_development_deliverable_ID is never known to the development deliverable itself before the tar-file with the secure hash in its name is created
- s_ar IDs_of_dependency_development_deliverables // a space-separated list of tar-file names
- s_ar_absolute_IDs_of_dependency_deployment_deliverables // a space-separated list
- s_ar_deployment_state_constants_boolean // a space-separated list
- s_ar_deployment_state_variables_boolean // a space-separated list
- s_ar_deployment_state_constants_lower_case_hex // a space-separated list
- s_ar_deployment_state_variables_lower_case_hex // a space-separated list
The idea behind the constant boolean values is that may be a theorem prover and some database might be used for speeding up the calculation that determines, whether dependencies are met or not.