Fix version checks related FAQ

On second thoughts: there is a potential issue down the road with max
version checks so this change was rolled back.
This commit is contained in:
Cody Boone Ferguson committed 2025-03-09 12:39:02 -07:00
1 parent c8730660f5
commit 4d34c9d759
2 files changed
+81 -212

No files matched your search

+44 -101
View File
@@ -484,7 +484,7 @@
<li><strong>Q 3.9</strong>: <a class="normal" href="#entry_id_faq">What is an <code>entry_id</code>?</a></li>
<li><strong>Q 3.10</strong>: <a class="normal" href="#entry_json">What is a <code>.entry.json</code> file and how is it used?</a></li>
<li><strong>Q 3.11</strong>: <a class="normal" href="#jparse">How can I validate any JSON document?</a></li>
<li><strong>Q 3.12</strong>: <a class="normal" href="#versions">What are required versions and how are they checked?</a></li>
<li><strong>Q 3.12</strong>: <a class="normal" href="#install">How can I install the <code>mkiocccentry(1)</code> and related tools?</a></li>
</ul>
<h2 id="compiling-ioccc-entries">4. <a href="#compiling">Compiling IOCCC entries</a></h2>
<ul>
@@ -2273,13 +2273,11 @@ information about the author or authors of the submission, in JSON format.</p>
<ul>
<li>The current version of the <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>.auth.json</code> version for <strong>THIS</strong>
IOCCC’s <code>.auth.json</code>, defined as <code>AUTH_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>.auth.json</code> version, defined as
<code>AUTH_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>.</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>IOCCC_contest</code> (double quoted string)</p>
<ul>
<li>Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).</li>
@@ -2304,39 +2302,28 @@ this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<ul>
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>mkiocccentry(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>mkiocccentry(1)</code>, defined as <code>MKIOCCCENTRY_VERSION</code>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
defined as <code>MKIOCCCENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>.</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>chkentry_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>chkentry(1)</code> that was used to validate the submission
<li>The version of <code>chkentry</code> that was used to validate the submission
directory, including the <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>chkentry(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>chkentry(1)</code>, defined as <code>CHKENTRY_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
as <code>CHKENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>fnamchk_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>fnamchk(1)</code> that <code>txzchk(1)</code> uses to validate the filename of
<li>The version of <code>fnamchk</code> that <code>txzchk</code> uses to validate the filename of
the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>fnamchk(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>fnamchk(1)</code>, defined as <code>FNAMCHK_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version in order for it
to be valid. If this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>IOCCC_contest_id</code> (double quoted string)</p>
<ul>
<li>The IOCCC contestant ID used as a username in the form of <strong>in the form of
@@ -2402,7 +2389,7 @@ See
<a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements" class="uri">https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements</a>
for a list of valid codes.</li>
</ul>
<p><strong>NOTE:</strong> in <code>mkiocccentry(1)</code> use <code>XX</code> if you want your location to be anonymous.</p></li>
<p><strong>NOTE:</strong> in <code>mkiocccentry</code> use <code>XX</code> if you want your location to be anonymous.</p></li>
<li><p><code>email</code> (<code>null</code> or double quoted string)</p>
<ul>
<li>The <strong>email</strong> of this author in the form of <code>x@y</code>, or <code>null</code> if not provided.</li>
@@ -2575,14 +2562,11 @@ for more information.</p>
<ul>
<li>The current version of the <code>.info.json</code> files.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>.info.json</code> version for
<strong>THIS</strong> IOCCC’s <code>.info.json</code>, defined as <code>INFO_VERSION</code>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>.info.json</code> version, defined as
<code>INFO_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>IOCCC_contest</code> (double quoted string)</p>
<ul>
<li>Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).</li>
@@ -2605,66 +2589,51 @@ in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>mkiocccentry_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>mkiocccentry(1)</code> that formed this <code>.auth.json</code> file.</li>
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>mkiocccentry(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>mkiocccentry(1)</code>, defined as <code>MKIOCCCENTRY_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>mkiocccentry</code> version,
defined as <code>MKIOCCCENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>iocccsize_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>iocccsize(1)</code> that was used for this <code>.info.json</code> file.</li>
<li>The version of <code>iocccsize</code> that was used for this <code>.info.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>iocccsize(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>iocccsize(1)</code>, defined as <code>IOCCCSIZE_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>iocccentry</code> version,
defined as <code>IOCCCSIZE_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>chkentry_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>chkentry(1)</code> that was used to validate the submission
<li>The version of <code>chkentry</code> that was used to validate the submission
directory, including the <code>.info.json</code> file.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>chkentry(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>chkentry(1)</code>, defined as <code>CHKENTRY_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>chkentry</code> version, defined
as <code>CHKENTRY_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>fnamchk_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>fnamchk(1)</code> that <code>txzchk</code> uses to validate the filename of
<li>The version of <code>fnamchk</code> that <code>txzchk</code> uses to validate the filename of
the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>fnamchk(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>fnamchk(1)</code>, defined as <code>FNAMCHK_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>fnamchk</code> version, defined
as <code>FNAMCHK_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>txzchk_version</code> (double quoted string)</p>
<ul>
<li>The version of <code>txzchk(1)</code> used to validate the xz compressed tarball.</li>
<li>The version of <code>txzchk</code> used to validate the xz compressed tarball.</li>
</ul>
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be a valid <code>txzchk(1)</code> version for <strong>THIS</strong>
IOCCC’s <code>txzchk(1)</code>, defined as <code>TXZCHK_VERSION</code> in
<p><strong>IMPORTANT:</strong> this <strong>MUST</strong> be &gt;= <strong>THIS</strong> IOCCC’s <code>txzchk</code> version, defined
as <code>TXZCHK_VERSION</code> in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
this is not the case your submission <strong>WILL BE</strong> rejected!</p>
<p>See the
FAQ on “<a href="#versions">version requirements</a>”
for more details on what this means.</p></li>
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
<li><p><code>IOCCC_contest_id</code> (double quoted string)</p>
<ul>
<li>The IOCCC contestant ID used as a username in the form of <strong>in the form of
@@ -2755,7 +2724,9 @@ violated but this is <code>true</code> then you stand a good chance of having yo
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
<li><p><code>highbit_warning</code> (boolean)</p>
<ul>
<li>This is ignored and will be removed for IOCCC29 and beyond.</li>
<li><code>true</code> if <code>iocccsize</code> detects a high bit (unescaped octets with the high
bit set - octet value &gt;= 128); see <a href="next/rules.html#rule13">Rule 13</a>, else
<code>false</code>.</li>
</ul></li>
<li><p><code>nul_warning</code> (boolean)</p>
<ul>
@@ -2820,7 +2791,7 @@ for more information.</p></li>
<ul>
<li><code>true</code> if the <code>Makefile</code> file has a <code>clobber</code> rule, else <code>false</code>.</li>
</ul>
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have a <code>clobber</code> rule and this
<p><strong>IMPORTANT:</strong> if the <code>Makefile</code> file does <strong>NOT</strong> have an <code>clobber</code> rule and this
boolean is <code>true</code> then you stand a good chance of having your submission
rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
<p>See the
@@ -3875,34 +3846,6 @@ install via the <code>mkiocccentry</code> repo because it has the dependencies b
and because the <code>mkiocccentry</code> copy is that which is used by the current IOCCC,
as the two can be different at times.</p>
<p>Jump to: <a href="#">top</a></p>
<div id="versions">
<h3 id="q-3.12-what-are-required-versions-and-how-are-they-checked">Q 3.12: What are required versions and how are they checked?</h3>
</div>
<p>For each contest the tools used must be a correct version. This correct version
can be in a range: a valid version is &gt;= the minimum version of a tool or file
format that is specific to a particular IOCCC and which is not greater than the
maximum version for that specific IOCCC. A required version is therefore a
range, where as long as the version is between the min and max, that is &gt;= min
and &lt;= max, and as long as it’s not a blacklisted version (the so-called
poisonous versions), it is okay.</p>
<p>The concept of a poisonous version exists in the case that a version has to be
blacklisted for some problem. The file
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h">soup/version.h</a>
includes a list of versions, their minimum values and their maximum values.</p>
<p>As an example, at the time of writing this, during IOCCC28, the minimum version
of <code>mkiocccentry(1)</code> is <code>2.0.1 2025-03-02</code>. If however a fix was needed that
necessitated a version change, the macro
<code>MIN_MKIOCCCENTRY_VERSION</code> would be changed to that value, rather than map
directly to <code>MKIOCCCENTRY_VERSION</code>. The maximum, <code>MAX_MKIOCCCENTRY_VERSION</code>, is
defined as <code>MKIOCCCENTRY_VERSION</code> but to help distinguish that it is also the
maximum, we use a separate macro.</p>
<p>So as long as the version you use is &gt;= this minimum and is &lt;= the maximum, and
as long as it is not in the poisonous list, you are okay. The poisonous versions
lists can be found in
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c">soup/entry_util.c</a>.</p>
<p>But as long as you are using the official version you should be fine as the
contest would not open with an invalid version.</p>
<p>Jump to: <a href="#">top</a></p>
<hr style="width:50%;text-align:left;margin-left:0">
<hr style="width:50%;text-align:left;margin-left:0">
<div id="compiling">
+37 -111
View File
@@ -58,7 +58,7 @@ This is FAQ version **28.2.14 2025-03-09**.
- **Q 3.9**: <a class="normal" href="#entry_id_faq">What is an `entry_id`?</a>
- **Q 3.10**: <a class="normal" href="#entry_json">What is a `.entry.json` file and how is it used?</a>
- **Q 3.11**: <a class="normal" href="#jparse">How can I validate any JSON document?</a>
- **Q 3.12**: <a class="normal" href="#versions">What are required versions and how are they checked?</a>
- **Q 3.12**: <a class="normal" href="#install">How can I install the `mkiocccentry(1)` and related tools?</a>
## 4. [Compiling IOCCC entries](#compiling)
@@ -2189,14 +2189,11 @@ In order of the file's contents we describe each required field, below:
- `IOCCC_auth_version` (double quoted string)
* The current version of the `.auth.json` file.
**IMPORTANT:** this **MUST** be a valid `.auth.json` version for **THIS**
IOCCC's `.auth.json`, defined as `AUTH_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `.auth.json` version, defined as
`AUTH_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/).
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
- `IOCCC_contest` (double quoted string)
* Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).
@@ -2222,42 +2219,28 @@ In order of the file's contents we describe each required field, below:
- `mkiocccentry_version` (double quoted string)
* The version of `mkiocccentry` that formed this `.auth.json` file.
**IMPORTANT:** this **MUST** be a valid `mkiocccentry(1)` version for **THIS**
IOCCC's `mkiocccentry(1)`, defined as `MKIOCCCENTRY_VERSION`
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `mkiocccentry` version,
defined as `MKIOCCCENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/).
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
- `chkentry_version` (double quoted string)
* The version of `chkentry(1)` that was used to validate the submission
* The version of `chkentry` that was used to validate the submission
directory, including the `.auth.json` file.
**IMPORTANT:** this **MUST** be a valid `chkentry(1)` version for **THIS**
IOCCC's `chkentry(1)`, defined as `CHKENTRY_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `chkentry` version, defined
as `CHKENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `fnamchk_version` (double quoted string)
* The version of `fnamchk(1)` that `txzchk(1)` uses to validate the filename of
* The version of `fnamchk` that `txzchk` uses to validate the filename of
the xz compressed tarball.
**IMPORTANT:** this **MUST** be a valid `fnamchk(1)` version for **THIS**
IOCCC's `fnamchk(1)`, defined as `FNAMCHK_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `fnamchk` version in order for it
to be valid. If this is not the case your submission **WILL BE** rejected!
- `IOCCC_contest_id` (double quoted string)
* The IOCCC contestant ID used as a username in the form of **in the form of
@@ -2321,7 +2304,7 @@ author(s) of the submission:
<https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements>
for a list of valid codes.
**NOTE:** in `mkiocccentry(1)` use `XX` if you want your location to be anonymous.
**NOTE:** in `mkiocccentry` use `XX` if you want your location to be anonymous.
- `email` (`null` or double quoted string)
* The **email** of this author in the form of `x@y`, or `null` if not provided.
@@ -2491,16 +2474,12 @@ In order of the file's contents we describe each required field, below:
- `IOCCC_info_version` (double quoted string)
* The current version of the `.info.json` files.
**IMPORTANT:** this **MUST** be a valid `.info.json` version for
**THIS** IOCCC's `.info.json`, defined as `INFO_VERSION`
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `.info.json` version, defined as
`INFO_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `IOCCC_contest` (double quoted string)
* Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).
@@ -2523,72 +2502,52 @@ In order of the file's contents we describe each required field, below:
this is not the case your submission **WILL BE** rejected!
- `mkiocccentry_version` (double quoted string)
* The version of `mkiocccentry(1)` that formed this `.auth.json` file.
* The version of `mkiocccentry` that formed this `.auth.json` file.
**IMPORTANT:** this **MUST** be a valid `mkiocccentry(1)` version for **THIS**
IOCCC's `mkiocccentry(1)`, defined as `MKIOCCCENTRY_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `mkiocccentry` version,
defined as `MKIOCCCENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `iocccsize_version` (double quoted string)
* The version of `iocccsize(1)` that was used for this `.info.json` file.
* The version of `iocccsize` that was used for this `.info.json` file.
**IMPORTANT:** this **MUST** be a valid `iocccsize(1)` version for **THIS**
IOCCC's `iocccsize(1)`, defined as `IOCCCSIZE_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `iocccentry` version,
defined as `IOCCCSIZE_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `chkentry_version` (double quoted string)
* The version of `chkentry(1)` that was used to validate the submission
* The version of `chkentry` that was used to validate the submission
directory, including the `.info.json` file.
**IMPORTANT:** this **MUST** be a valid `chkentry(1)` version for **THIS**
IOCCC's `chkentry(1)`, defined as `CHKENTRY_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `chkentry` version, defined
as `CHKENTRY_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `fnamchk_version` (double quoted string)
* The version of `fnamchk(1)` that `txzchk` uses to validate the filename of
* The version of `fnamchk` that `txzchk` uses to validate the filename of
the xz compressed tarball.
**IMPORTANT:** this **MUST** be a valid `fnamchk(1)` version for **THIS**
IOCCC's `fnamchk(1)`, defined as `FNAMCHK_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `fnamchk` version, defined
as `FNAMCHK_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `txzchk_version` (double quoted string)
* The version of `txzchk(1)` used to validate the xz compressed tarball.
* The version of `txzchk` used to validate the xz compressed tarball.
**IMPORTANT:** this **MUST** be a valid `txzchk(1)` version for **THIS**
IOCCC's `txzchk(1)`, defined as `TXZCHK_VERSION` in
**IMPORTANT:** this **MUST** be >= **THIS** IOCCC's `txzchk` version, defined
as `TXZCHK_VERSION` in
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
this is not the case your submission **WILL BE** rejected!
See the
FAQ on "[version requirements](#versions)"
for more details on what this means.
- `IOCCC_contest_id` (double quoted string)
* The IOCCC contestant ID used as a username in the form of **in the form of
a UUID** and submission number; see the [rules](next/rules.html) for more details
@@ -2676,7 +2635,9 @@ In order of the file's contents we describe each required field, below:
submission rejected for violating [Rule 17](next/rules.html#rule17)!
- `highbit_warning` (boolean)
* This is ignored and will be removed for IOCCC29 and beyond.
* `true` if `iocccsize` detects a high bit (unescaped octets with the high
bit set - octet value >= 128); see [Rule 13](next/rules.html#rule13), else
`false`.
- `nul_warning` (boolean)
* `true` if `iocccsize` detects a NUL character in the `prog.c`, else
@@ -2740,7 +2701,7 @@ In order of the file's contents we describe each required field, below:
- `found_clobber_rule` (boolean)
* `true` if the `Makefile` file has a `clobber` rule, else `false`.
**IMPORTANT:** if the `Makefile` file does **NOT** have a `clobber` rule and this
**IMPORTANT:** if the `Makefile` file does **NOT** have an `clobber` rule and this
boolean is `true` then you stand a good chance of having your submission
rejected for violating [Rule 17](next/rules.html#rule17)!
@@ -4162,41 +4123,6 @@ as the two can be different at times.
Jump to: [top](#)
<div id="versions">
### Q 3.12: What are required versions and how are they checked?
</div>
For each contest the tools used must be a correct version. This correct version
can be in a range: a valid version is >= the minimum version of a tool or file
format that is specific to a particular IOCCC and which is not greater than the
maximum version for that specific IOCCC. A required version is therefore a
range, where as long as the version is between the min and max, that is >= min
and <= max, and as long as it's not a blacklisted version (the so-called
poisonous versions), it is okay.
The concept of a poisonous version exists in the case that a version has to be
blacklisted for some problem. The file
[soup/version.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/version.h)
includes a list of versions, their minimum values and their maximum values.
As an example, at the time of writing this, during IOCCC28, the minimum version
of `mkiocccentry(1)` is `2.0.1 2025-03-02`. If however a fix was needed that
necessitated a version change, the macro
`MIN_MKIOCCCENTRY_VERSION` would be changed to that value, rather than map
directly to ` MKIOCCCENTRY_VERSION`. The maximum, `MAX_MKIOCCCENTRY_VERSION`, is
defined as `MKIOCCCENTRY_VERSION` but to help distinguish that it is also the
maximum, we use a separate macro.
So as long as the version you use is >= this minimum and is <= the maximum, and
as long as it is not in the poisonous list, you are okay. The poisonous versions
lists can be found in
[soup/entry_util.c](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c).
But as long as you are using the official version you should be fine as the
contest would not open with an invalid version.
Jump to: [top](#)
<hr style="width:50%;text-align:left;margin-left:0">
<hr style="width:50%;text-align:left;margin-left:0">