New Templates or Scripts or updates to existing Templates or Scripts can be submitted to the Repository by clicking the Repository icon in the top-right corner of a Template or Script to access the Repository Menu and selecting Submit to Repository, or by right-clicking on a Template or Script editor and choosing 'Repository > Submit to Repository'. Files can also be submitted by e-mailing them to 'firstname.lastname@example.org' but please try to ensure that the header at the beginning of the file contains the proper information as described below.
Submissions to the Repository require a special header at the beginning of the file that indicates special information about the file. The Submit dialog reads information from the comments to ensure they are in the correct format and any problems must be corrected before the Submit button can be clicked. An empty comment header is created every time a new Template or Script is created with the 'Templates > New Template' or 'Scripts > New Script' menu options. An example of the header for a Template is listed below:
//--- 010 Editor v7.0 Binary Template
// File: Test.bt
// Authors: SweetScape Software
// Version: 1.0
// Purpose: This is a test template.
// Category: Misc
// File Mask: *.test
// ID Bytes: 3F FF
// 1.0 2016-03-04 SweetScape Software: Initial release.
Most of this information must be entered using the editor; however, the Submit dialog contains some fields which make adding a Category or History item easier. The different sections of the header are described below:
- File - Must contain the name of the file that is being submitted (e.g. 'Test.bt').
- Authors - List the name or the initials of the author of the file. To list an e-mail or website add a separate line to the header marked E-mail: or Website:.
- Version - Lists the current version of the file and versions must contain only numbers or periods '.'. If submitting an update to an existing file, the highest version number is listed in the Submit dialog as Updates Version and the current Version must be greater than that version (for example, version 1.5.1 is greater than version 1.5 and version 2 is greater than version 1.5.1).
- Purpose - Describe the Template or Script.
- Category - Templates and Scripts are listed by category in the Repository. Also when Templates are Scripts are installed they are listed in categories in either the Templates or the Scripts main menu. If no category is found in the header a Category box will appear in the submit dialog. Choose one of the existing categories from the drop-down list and click the Add button to insert the category into the header. To use a category that does not yet exist enter the category directly in the editor.
- File Mask - (not required) For a Template this lists the file names of the data files that this Template can parse. The wildcards '*' (matches 0 to many characters) and '?' (matches exactly 1 character) can be used and multiple masks can be listed separated by commas. For example "*.test,test.A??" would match all files with extension .test or any 3-digit extension starting with A.
- ID Bytes - (not required) For data files which match the File Mask above, the Template will only be run if the hex bytes listed in this field match the bytes at the beginning of the file. This provides an extra check that the data is in a format that can be read and allows multiple Templates with the same File Mask to exist that parse different types of data. Some formats such as Linux or macOS executables do not have an extension and in this case enter the File Mask '*'. ID Bytes uses hex notation for bytes and to skip bytes use the special syntax [+DDD] or [+0xHHH] where DDD is a decimal number or HHH is a hex number. Comments may also be listed in the ID Bytes using '//'. For example the ID Bytes '00 [+4] FF' would match a '00' byte at position 0 in the file and a 'FF' byte at position 5. Currently only the first 2048 bytes of the file are checked for matches. This field can be left blank in which case the Template will be run on all files that match the File Mask.
- History - Provides a list of changes in each version of the file. On the next line after the History: line in the comments should be a line with the current version number, the date in YYYY-MM-DD format, the Author (either name or initials), a colon ':', and then a description of the changes in this version. The Submit dialog provides an easy way to add this information to the Template or Script. Enter information in the Author and Changes fields in the dialog and then click the Add button. If the submission is for a new file please enter "Initial release." in the Changes field.
- Requires Version - (not required) This is a special field which reads the first non-comment line in the Template or Script. If the line calls the RequiresVersion function the values are extracted from that function call. For example "RequiresVersion(3,1);" means that 010 Editor v3.1 or higher is needed to execute this Template. 010 Editor will warn the user when trying to install a file when the RequiresVersion is greater than the current application version. Use the RequiresVersion function when using functions or syntax in Templates or Scripts that is only available in particular versions of 010 Editor.
Once all the information in the header has been verified the Submit button will be enabled as shown in the figure below. Enter your e-mail address in the E-mail field and this address will not be published and will only be used to contact you if there is an issue with your submission. Click Submit to upload your file.
Once your file is uploaded please allow up to 48 hours for the file to be reviewed and added to the Repository. See Updating the Repository to check if your submission has been accepted. If adding a new file to the Repository, install the file from the Repository when it becomes available to ensure that any future update submissions are processed correctly. If adding an update to a file then see Updating and Merging Files to update your file to the new file in Repository.