summaryrefslogtreecommitdiff
path: root/Utilities/Release/files-v1.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Utilities/Release/files-v1.rst')
-rw-r--r--Utilities/Release/files-v1.rst166
1 files changed, 0 insertions, 166 deletions
diff --git a/Utilities/Release/files-v1.rst b/Utilities/Release/files-v1.rst
deleted file mode 100644
index 3b916d432..000000000
--- a/Utilities/Release/files-v1.rst
+++ /dev/null
@@ -1,166 +0,0 @@
-File Table v1
-*************
-
-The set of package files distributed on ``cmake.org`` varies by CMake version.
-One file, named ``cmake-<ver>-files-v1.json``, contains a table of the package
-files available for a given version. Clients may use this to find other files.
-
-Format
-------
-
-The format is a JSON object:
-
-.. code-block:: json
-
- {
- "version": {
- "major": 3, "minor": 18, "patch": 6,
- "string": "3.18.6"
- },
- "files": [
- {
- "os": ["...", "..."],
- "architecture": ["...", "..."],
- "class": "...",
- "name": "..."
- }
- ],
- "hashFiles": [
- {
- "algorithm": ["...", "..."],
- "name": "cmake-<version>-<algo>.txt",
- "signature": ["cmake-<version>-<algo>.txt.asc"]
- }
- ]
- }
-
-The members are:
-
-``version``
- A JSON object specifying the version of CMake with members:
-
- ``major``, ``minor``, ``patch``
- Integer values specifying the major, minor, and patch version components.
-
- ``suffix``
- A string specifying the version suffix, if any, e.g. ``rc1``.
-
- ``string``
- A string specifying the full version in the format
- ``<major>.<minor>.<patch>[-<suffix>]``.
-
-``files``
- A JSON array of entries corresponding to available package files.
- Each entry is a JSON object containing members:
-
- ``os``
- A JSON array of strings naming the operating system for which the
- package file is built, possibly using multiple alternative spellings.
- Possible names include:
-
- ``source``
- Source packages.
-
- ``Linux``, ``linux``
- Linux packages.
-
- ``macOS``, ``macos``
- macOS packages.
-
- ``Windows``, ``windows``
- Windows packages.
-
- ``architecture``
- A JSON array of strings naming the architecture(s) for which the
- package file is built, possibly using multiple alternative spellings.
- Source packages have an empty list of architectures (``[]``).
- Binary packages have a non-empty list of architectures, with at least
- one name matching the output of ``uname -m`` on corresponding hosts.
- On Windows, architecture names include ``x86_64`` and ``i386``.
- On macOS, universal binary packages list all architectures,
- e.g. ``["arm64","x86_64"]``.
-
- ``class``
- A JSON string naming the class of package. The value is one of:
-
- ``archive``
- A tarball or zip archive.
- The extension, such as ``.tar.gz`` or ``.zip``, indicates the format.
- The rest of the file name matches the top-level directory in the archive.
-
- ``installer``
- An interactive installer.
-
- ``volume``
- A disk image (``.dmg`` on macOS).
-
- ``name``
- A JSON string specifying the name of the package file.
-
- ``macOSmin``
- Optional member that is present on package files for macOS.
- The value is a JSON string specifying the minimum version of macOS
- required to run the binary, e.g. ``"10.13"``.
-
-``hashFiles``
- A JSON array of entries corresponding to files containing cryptographic
- hashes of the package file contents. Each entry is a JSON object
- containing members:
-
- ``algorithm``
- A JSON array of strings naming a cryptographic hash algorithm, possibly
- using multiple alternative spellings, e.g. ``["sha256", "SHA-256"]``.
-
- ``name``
- A JSON string specifying the name of the file containing hashes,
- e.g. ``"cmake-<version>-SHA-256.txt"``.
-
- ``signature``
- A JSON array of strings naming files containing a cryptographic
- signature of the hash file specified by ``name``, e.g.
- ``["cmake-<version>-SHA-256.txt.asc"]``.
-
-The table and hash files are generated by `files.bash`_ from
-the `files-v1.json.in`_ template and the package files themselves.
-
-.. _`files.bash`: files.bash
-.. _`files-v1.json.in`: files-v1.json.in
-
-Queries
--------
-
-Clients may download the `File Table v1`_ file ``cmake-<ver>-files-v1.json``
-and query it to get the name(s) of specific package files adjacent to it.
-Make queries as specific as possible in order to account for additional
-alternative binaries in future CMake versions.
-
-For example, one may use ``jq`` queries:
-
-* To select a Windows binary archive supporting ``x86_64`` hosts::
-
- .files[] | select((.os[] | . == "windows") and
- (.architecture[] | . == "x86_64") and
- (.class == "archive")) | .name
-
-* To select a Linux binary archive supporting ``aarch64`` hosts::
-
- .files[] | select((.os[] | . == "linux") and
- (.architecture[] | . == "aarch64") and
- (.class == "archive")) | .name
-
-* To select a macOS binary archive supporting ``arm64`` hosts::
-
- .files[] | select((.os[] | . == "macos") and
- (.architecture[] | . == "arm64") and
- (.class == "archive")) | .name
-
-* To select a macOS binary archive supporting macOS 10.12 on ``x86_64`` hosts::
-
- .files[] | select((.os[] | contains("macOS")) and
- (.architecture[] | . == "x86_64") and
- ([.macOSmin] | inside(["10.10", "10.11", "10.12"]))
- ) | .name
-
-* To select a SHA-256 hash file::
-
- .hashFiles[] | select(.algorithm[] | . == "SHA-256") | .name