<commit_before><!--
    ZConfig Configuration Schema for FARB
    farb_conf.xml vi:ts=4:sw=4:expandtab
-->
<schema prefix="farb.config">
    <sectiontype name="PackageBuildOptions" keytype="string">
        <key name="+" datatype="string" attribute="Options" required="yes"/>
    </sectiontype>
    
    <!-- Release Configuration -->
    <sectiontype name="Release" datatype=".release_handler">
        <key name="CVSRoot" datatype="existing-directory" required="yes"/>
        <key name="CVSTag" datatype="string" required="yes"/>
        <key name="InstallCDs" datatype="boolean" required="no" default="false"/>
        <!-- Could not find a way to reuse BuildOptions here -->
        <section type="PackageBuildOptions" name="*" attribute="PackageBuildOptions" required="no"/>
        <multikey name="LocalData" datatype="existing-path" required="no"/>
    </sectiontype>

    <sectiontype name="Releases" datatype=".releases_handler">
        <key name="BuildRoot" datatype="existing-directory" required="yes"/>
        <key name="InstallRoot" datatype="existing-directory" required="yes"/>
        <key name="NFSHost" datatype="ipaddr-or-hostname" required="yes"/>
        <multisection type="Release" name="+" attribute="Release" required="yes"/>
    </sectiontype>
    <section type="Releases" name="*" attribute="Releases" required="yes"/>

    <!-- Partitioning Schema -->
    <sectiontype name="Partition" datatype=".partition_handler">
        <key name="Type" datatype="string" required="yes"/>
        <key name="Size" datatype="byte-size" required="yes"/>
        <key name="Mount" datatype="string" required="no"/>
        <key name="SoftUpdates" datatype="boolean" default="true" required="no"/>
    </sectiontype>

    <sectiontype name="PartitionMap">
        <multisection type="Partition" name="+" attribute="Partition" required="yes"/>
    </sectiontype>
    
    <sectiontype name="Partitions">
        <multisection type="PartitionMap" name="+" attribute="PartitionMap" required="yes"/>
    </sectiontype>
    <section type="Partitions" name="*" attribute="Partitions" required="no"/>

    <!-- Packaging Schema -->
    <sectiontype name="BuildOptions" keytype="string">
        <key name="+" datatype="string" attribute="Options" required="yes"/>
    </sectiontype>

    <sectiontype name="Package" datatype=".package_handler">
        <key name="Port" datatype="string" required="yes"/>
        <key name="Package" datatype="string" required="no"/>
        <section type="BuildOptions" name="*" attribute="BuildOptions" required="no"/>
    </sectiontype>

    <sectiontype name="PackageSet">
        <multisection type="Package" name="*" attribute="Package" required="yes"/>
    </sectiontype>

    <sectiontype name="PackageSets">
        <key name="Distfiles" datatype="string" required="no"/>
        <multisection type="PackageSet" name="*" attribute="PackageSet" required="yes"/>
    </sectiontype>
    <section type="PackageSets" name="*" attribute="PackageSets" required="no"/>

    <!-- Installation Configuration -->
    <sectiontype name="Disk">
        <key name="PartitionMap" datatype="string" required="yes"/>
    </sectiontype>

    <sectiontype name="PostInstall">
        <multikey name="Command" datatype="string" required="yes"/>
    </sectiontype>

    <sectiontype name="Installation">
        <key name="Description" datatype="string" required="yes"/>
        <key name="Release" datatype="string" required="yes"/>
        <key name="Hostname" datatype="dotted-name" required="no" default="install"/>
        <key name="Domain" datatype="dotted-name" required="no" default="example.com"/>
        <key name="NetworkDevice" datatype="string" required="yes"/>
        <multikey name="PackageSet" datatype="string" required="no"/>
        <multisection type="Disk" name="+" attribute="Disk" required="yes"/>
        <section type="PostInstall" name="*" attribute="PostInstall" required="no"/>
    </sectiontype>

    <sectiontype name="Installations">
        <multisection type="Installation" name="+" attribute="Installation" required="yes"/>
    </sectiontype>
    <section type="Installations" name="*" attribute="Installations" required="no"/>

    <!-- Logging Configuration -->
    <import package="ZConfig.components.logger"/>
    <sectiontype name="Logging" extends="eventlog"/>
    <section type="Logging" name="*" attribute="Logging" required="yes"/>
</schema><commit_msg>Let's not require that each installation have a disk section. If it is left out, hopefully sysinstall will prompt us for how to partition the disk.<commit_after><!--
    ZConfig Configuration Schema for FARB
    farb_conf.xml vi:ts=4:sw=4:expandtab
-->
<schema prefix="farb.config">
    <sectiontype name="PackageBuildOptions" keytype="string">
        <key name="+" datatype="string" attribute="Options" required="yes"/>
    </sectiontype>
    
    <!-- Release Configuration -->
    <sectiontype name="Release" datatype=".release_handler">
        <key name="CVSRoot" datatype="existing-directory" required="yes"/>
        <key name="CVSTag" datatype="string" required="yes"/>
        <key name="InstallCDs" datatype="boolean" required="no" default="false"/>
        <!-- Could not find a way to reuse BuildOptions here -->
        <section type="PackageBuildOptions" name="*" attribute="PackageBuildOptions" required="no"/>
        <multikey name="LocalData" datatype="existing-path" required="no"/>
    </sectiontype>

    <sectiontype name="Releases" datatype=".releases_handler">
        <key name="BuildRoot" datatype="existing-directory" required="yes"/>
        <key name="InstallRoot" datatype="existing-directory" required="yes"/>
        <key name="NFSHost" datatype="ipaddr-or-hostname" required="yes"/>
        <multisection type="Release" name="+" attribute="Release" required="yes"/>
    </sectiontype>
    <section type="Releases" name="*" attribute="Releases" required="yes"/>

    <!-- Partitioning Schema -->
    <sectiontype name="Partition" datatype=".partition_handler">
        <key name="Type" datatype="string" required="yes"/>
        <key name="Size" datatype="byte-size" required="yes"/>
        <key name="Mount" datatype="string" required="no"/>
        <key name="SoftUpdates" datatype="boolean" default="true" required="no"/>
    </sectiontype>

    <sectiontype name="PartitionMap">
        <multisection type="Partition" name="+" attribute="Partition" required="yes"/>
    </sectiontype>
    
    <sectiontype name="Partitions">
        <multisection type="PartitionMap" name="+" attribute="PartitionMap" required="yes"/>
    </sectiontype>
    <section type="Partitions" name="*" attribute="Partitions" required="no"/>

    <!-- Packaging Schema -->
    <sectiontype name="BuildOptions" keytype="string">
        <key name="+" datatype="string" attribute="Options" required="yes"/>
    </sectiontype>

    <sectiontype name="Package" datatype=".package_handler">
        <key name="Port" datatype="string" required="yes"/>
        <key name="Package" datatype="string" required="no"/>
        <section type="BuildOptions" name="*" attribute="BuildOptions" required="no"/>
    </sectiontype>

    <sectiontype name="PackageSet">
        <multisection type="Package" name="*" attribute="Package" required="yes"/>
    </sectiontype>

    <sectiontype name="PackageSets">
        <key name="Distfiles" datatype="string" required="no"/>
        <multisection type="PackageSet" name="*" attribute="PackageSet" required="yes"/>
    </sectiontype>
    <section type="PackageSets" name="*" attribute="PackageSets" required="no"/>

    <!-- Installation Configuration -->
    <sectiontype name="Disk">
        <key name="PartitionMap" datatype="string" required="yes"/>
    </sectiontype>

    <sectiontype name="PostInstall">
        <multikey name="Command" datatype="string" required="yes"/>
    </sectiontype>

    <sectiontype name="Installation">
        <key name="Description" datatype="string" required="yes"/>
        <key name="Release" datatype="string" required="yes"/>
        <key name="Hostname" datatype="dotted-name" required="no" default="install"/>
        <key name="Domain" datatype="dotted-name" required="no" default="example.com"/>
        <key name="NetworkDevice" datatype="string" required="yes"/>
        <multikey name="PackageSet" datatype="string" required="no"/>
        <multisection type="Disk" name="+" attribute="Disk" required="no"/>
        <section type="PostInstall" name="*" attribute="PostInstall" required="no"/>
    </sectiontype>

    <sectiontype name="Installations">
        <multisection type="Installation" name="+" attribute="Installation" required="yes"/>
    </sectiontype>
    <section type="Installations" name="*" attribute="Installations" required="no"/>

    <!-- Logging Configuration -->
    <import package="ZConfig.components.logger"/>
    <sectiontype name="Logging" extends="eventlog"/>
    <section type="Logging" name="*" attribute="Logging" required="yes"/>
</schema>
{'fraction_non_alphanumeric': 0.17310045611302705, 'fraction_numerical': 0.00044498831905662476, 'mean_word_length': 4.238927738927739, 'pattern_counts': {'":': 0, '<': 159, '<?xml version=': 0, '>': 159, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7212834', 'n_tokens_mistral': 2450, 'n_tokens_neox': 2410, 'n_words': 544}