diff --git a/README.md b/README.md index 26ffedc9..b15072a8 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ BOSS requires the following libraries: BOSS expects all libraries' folders to be present alongside the BOSS repository folder that contains this readme, or otherwise installed such that the compiler and linker used can find them without suppling additional paths. All paths below are relative to the folder(s) containing the libraries and BOSS. -BOSS also requires GraphVis and Subversion binaries, which can be obtained [here](http://sourceforge.net/projects/win32svn) and [here](http://www.graphviz.org/Download_windows.php) respectively and should be installed as detailed below. +BOSS can also make use of [GraphVis](http://www.graphviz.org/Download_windows.php) and [Subversion](http://sourceforge.net/projects/win32svn) binaries. If provided, they should be installed as detailed below. Alphanum, Libespm and PugiXML do not require any additional setup. The rest of the libraries must be built separately. diff --git a/docs/BOSS Metadata Syntax.html b/docs/BOSS Metadata Syntax.html index a3c85322..66cf1125 100644 --- a/docs/BOSS Metadata Syntax.html +++ b/docs/BOSS Metadata Syntax.html @@ -80,6 +80,7 @@ h3{
Some important points that are more specific to how BOSS uses YAML:
-?:,[]{}#&*!|>"%@`, unless they also contain any single quotes, in which case the string should be enclosed in double quotes instead. Any backslashes or double quotes within a double-quoted string should be escaped with a backslash, ie. " → \" and \ → \\.
+ -?:,[]{}#&*!|>"%@`, unless they also contain any single quotes, in which case the string should be enclosed in double quotes instead. This isn't always strictly necessary, but it's better to err on the side of caution. If you really want to only quote strings when absolutely neccessary, be sure to check what you write by copy/pasting the whole data structure the string appears into a YAML parser such as this one and making sure that what it outputs is correct.
+ " → \" and \ → \\.
These docs give all example syntax in YAML's least compact representation: you can also use a more compact representation, but it's better for the masterlist to be readable than compact. +
These docs give all example syntax in YAML's least compact representation: you can also use a more compact representation, but make sure that you do not sacrifice readability when doing so.
Some properties of file paths as used by BOSS:
While you could write whatever you wanted in a metadata file without problems, so long as it was valid YAML, it would be pointless as BOSS expects the metadata to be laid out using a certain set of data structures, described in this section. +
BOSS expects metadata to be laid out using a certain set of data structures, described in this section.
BOSS metadata files can contain suggestions for the addition or removal of Bash Tags, and this is the structure used for them. It has two forms: the first is a simple string, and the second is a key-value map. All values in the map are strings. @@ -206,7 +208,7 @@ display: OBSE v18+
saywarnerrorerrorThe content data structure is a key-value map, with all values being strings:
inc | file list | ✗ | An unordered list of files that this plugin is incompatible with. If any of these files are present, an error message will be displayed. |
msg | message list | ✗ | The messages attached to this plugin. The messages will be displayed in the order that they are listed. |
tag | tag list | ✗ | An unordered list of Bash Tags suggested for this plugin. If a Bash Tag is suggested for both addition and removal, the latter will override the former when the list is evaluated. + |
url | location list | ✗ | An unordered list of location data structures (see below) for this plugin. If the same version can be found at multiple locations, only one location should be recorded. This metadata is not currently used by BOSS. |
Example:
name: "Oscuro's_Oblivion_Overhaul.esm"
@@ -277,6 +280,27 @@ msg:
content: 'Do not clean. "Dirty" edits are intentional and required for the mod to function.'
+
This data structure is used to hold information on where plugins are hosted online. It is not currently used by BOSS, but it was suggested that since the BOSS team receives a considerable number of plugin URLs, they should be recorded in a standard format, as there is no existing store of such information and it could prove useful in the future. +
The data structure has two forms: the first is a simple string, and the second is a key-value map. The first form should be used for a URL without any associated version data, such as when it is not clear which version is found there, or when it is the only known hosting location for the plugin and as such hosts all available versions. The second form should be used when version data can be associated with the URL, such as when the URL only hosts a subset of the available versions of the plugin. +
The simple form:
+URL
+
where URL is a URL at which the plugin may be found.
+
The map form: +
| Key Name | Data Type | Required | Notes + |
|---|---|---|---|
link | string | ✓ | A URL at which the plugin may be found. + |
ver | string list | ✓ | A list of versions that can be found at the URL. + |
Examples:
+http://skyrim.nexusmods.com/mods/19/
+or
+link: http://steamcommunity.com/sharedfiles/filedetails/?id=87144366
+ver:
+ - 1.3.2c
+
+
Condition strings can be used to ensure that data is only acted on by BOSS under certain circumstances. They are very similar to boolean conditional expressions in programming languages such as Python, though more limited. Their EBNF grammar is:
[ negator ], function, { junctor, [ negator ], function } ;
diff --git a/docs/BOSS Readme.html b/docs/BOSS Readme.html
index 5f23329a..0d17ae13 100644
--- a/docs/BOSS Readme.html
+++ b/docs/BOSS Readme.html
@@ -74,10 +74,6 @@ h3{
OKbutton is pressed, the final load order will be applied. Otherwise, no load order changes will be made.
Sorting around 90 plugins generally takes under 30 seconds, depending on the sizes of the plugins that are installed. For very large plugins, such as the game's main master file, BOSS may appear to stop responding while the plugin is read: this is not an issue. +
While reading very large plugins, such as the game's main master file, BOSS may appear to stop responding: this is not an issue. +
The time it takes for BOSS to sort your load order depends primarily on the size of the masterlist being used, the total size of the files in your load order, and the number of plugins in your load order. The first run is likely to be longer than subsequent runs as BOSS needs to download the full masterlist, rather than just the changes made by updates. In testing, it was found that sorting ~90 plugins with a total size of ~350 MB and a 5 MB masterlist takes around 15 seconds, though performance will vary with computer hardware.
The report is comprised of three main sections:
Summarytab gives information on the versions of BOSS and the masterlist used, whether masterlist updating is enabled, and breaks down the numbers of each message type in the Summary and Details tabs. It also notifies you if there have been no changes in the
Detailstab since you last ran BOSS for the same game. Finally, the
Summarytab is also where any global messages supplied in the masterlist and any errors encountered during sorting are displayed. -
Detailstab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display plugin version according to what it found in each plugin's description field. -
Graphtab displays a graph of all the interactions between the plugins in your load order. It's not very useful to the average user, but may contain information that would aid in debugging any issues encountered, and is also provided as an item of interest. +
Detailstab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display the plugin's CRC value and extract its version if found in the plugin's description field. +
Graphtab displays a graph of all the interactions between the plugins in your load order. It's not very useful to the average user, but may contain information that would aid in debugging any issues encountered, and is also provided as an item of interest. Graph image generation typically takes a long time, so it is disabled by default.
In addition, there are a few filters that can be used to selectively hide items in the Details
tab. These filters are:
BOSS will display the version numbers of any plugins that provide them in their description fields. If a plugin supplies no version number, it cannot be displayed. The version numbers may not reflect the actual version of the mod installed - this could either be due to the mod author forgetting to update the description, or due to a mistake in BOSS's detection. As version numbers are supplied by mod authors in a wide range of formats and BOSS has to detect as many as possible, it occasionally identifies parts of some descriptions as version numbers incorrectly. When in doubt, check the version number given in a mod's readme. -
BOSS's mod messages are one of the most important features BOSS provides, acting as a means of providing users with information that they might otherwise not obtain. It is important for a stable, healthy game that you act on any messages that require action. -
If you think a message suggests an unnecessary action, report it to an official BOSS thread. If you encounter a message that is non-conditional, ie. it suggests an action but is still displayed on subsequent runs of BOSS after the action has been carried out, or that it suggests an action that is not necessary, also report it to an official BOSS thread, so that it can be made conditional. +
BOSS's mod messages are a valuable resource, acting as a means of providing users with information that they might otherwise not obtain. It is important for a stable, healthy game that you act on any messages that require action. +
If you think a message suggests an unnecessary action, report it to an official BOSS thread. If you encounter a message that is non-conditional, ie. it suggests an action but is still displayed on subsequent runs of BOSS after the action has been carried out, also report it to an official BOSS thread, so that it can be made conditional.
Any file, not just plugins, can be listed here, and each file has the same three sub-fields as for the requirements field.
Each message has four sub-fields:
BOSS is written in C/C++ and makes use of Subversion and the Alphanum, Boost, libespm, libloadorder, PugiXML, svgweb, wxWidgets and yaml-cpp libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of Polyfill.js to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found here. +
BOSS is written in C/C++ and makes use of Subversion and the Alphanum, Boost, libespm, libgit2, libloadorder, PugiXML, wxWidgets and yaml-cpp libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of Polyfill.js and svgweb to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found here.