Update rules, guidelines and FAQ for file perms
Rule 17 mandates specific file permissions for files/directories in submission tarballs but the documentation did not state this. More work might need to be done here but it should be better now.
This commit is contained in:
1 parent
b0f512b865
commit
a2e216ec82
6 files changed
+299
-213
No files matched your search
+30
-15
@@ -460,9 +460,8 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
<h2 id="ioccc-rules-version">IOCCC Rules version</h2>
|
||||
</div>
|
||||
</div>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<p class="leftbar">
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.19 2025-01-30</strong>.
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.21 2025-02-03</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="rules.md" download="rules.md">markdown form of these rules</a>
|
||||
@@ -973,8 +972,8 @@ if you need to include more files than this maximum.
|
||||
<p class="leftbar">
|
||||
Extra files are defined as files that are not the required files (<code>prog.c</code>,
|
||||
<code>Makefile</code>, <code>remarks.md</code> and the two generated by <code>mkiocccentry(1)</code> <code>.info.json</code>
|
||||
and <code>.auth.json</code>) and the optional files (<code>try.sh</code>, <code>prog.alt.c</code> and
|
||||
<code>try.alt.sh</code>).
|
||||
and <code>.auth.json</code>) and files that are also not the optional files (<code>try.sh</code>,
|
||||
<code>prog.alt.c</code> and <code>try.alt.sh</code>).
|
||||
</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<h3 id="rule-17---the-complex-details">Rule 17 - The COMPLEX details</h3>
|
||||
@@ -1056,7 +1055,7 @@ See also the <a href="https://www.markdownguide.org/basic-syntax">markdown synta
|
||||
and the <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The xz compressed tarball file <strong>MUST</strong> be less than or equal <strong>3999971</strong> octets in size.
|
||||
The xz compressed tarball file <strong>MUST</strong> be less than or equal to <strong>3999971</strong> octets in size.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
When your submission’s xz compressed tarball is uncompressed,
|
||||
@@ -1092,11 +1091,10 @@ Filenames in your entry (that is, not including the files generated by the
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
Be <= <strong>38</strong> characters in length
|
||||
Be <= <strong>38</strong> characters in length.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> have a <strong><code>/</code></strong> (excluding the entry directory that
|
||||
the <code>mkiocccentry(1)</code> tool generates).
|
||||
<strong>NOT</strong> have a leading <strong><code>/</code></strong>.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> contain a path component of: <strong><code>.</code></strong> (that is, with
|
||||
@@ -1116,12 +1114,12 @@ Match the regular expression
|
||||
<strong>NOT</strong> be a directory depth > 4.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> have a total path length > 99 characters.
|
||||
<strong>NOT</strong> have a total <strong>path</strong> length > 99 characters.
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
Additionally, the submission tarball created by <code>mkiocccentry(1)</code> <strong>MUST</strong> have
|
||||
the following files (generated by the <code>mkiocccentry(1)</code> tool):
|
||||
The submission tarball created by <code>mkiocccentry(1)</code> <strong>MUST</strong> have
|
||||
the additional files that are generated by the <code>mkiocccentry(1)</code> tool:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
@@ -1134,11 +1132,27 @@ entry.
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>chkentry(1)</code> tool will validate these two JSON files <em>prior to</em> the tarball
|
||||
being formed.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Files and directories in your submission tarball <strong>MUST</strong> be specific
|
||||
permissions and <code>mkiocccentry(1)</code> does this for you. In particular: directories
|
||||
<strong>MUST</strong> be <code>drwxr-xr-x</code> (i.e. <code>0755</code>), the optional files, <code>try.sh</code> or
|
||||
<code>try.alt.sh</code>, if provided, <strong>MUST</strong> be <code>-r-xr-xr-x</code> (i.e. <code>0555</code>) and all other
|
||||
files <strong>MUST</strong> be <code>-r--r--r--</code> (i.e. <code>0444</code>). If the files do not have these
|
||||
permissions, your submission <strong>WILL</strong> be rejected for violating <a href="#rule17">Rule
|
||||
17</a>! If you do need different permissions, then see the
|
||||
FAQ on “<a href="../faq.html#file_perms">file permissions</a>”. Also keep in mind
|
||||
<a href="#rule4">Rule 4</a>, <a href="#rule5">Rule 5</a> and <a href="#rule21">Rule 21</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>txzchk(1)</code> tool will verify these (and other things) for you and
|
||||
the <code>chkentry(1)</code> tool will do additional checks on the contents of the
|
||||
<code>.auth.json</code> and <code>.info.json</code> files (including JSON validity). If these checks
|
||||
fail it is an error and <code>mkiocccentry(1)</code> will fail. In this case it is very
|
||||
<strong>possibly</strong> a bug; please <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it as a bug at the mkiocccentry issues
|
||||
fail it is an error and <code>mkiocccentry(1)</code> will fail. In this case (it fails and
|
||||
you used <code>mkiocccentry(1)</code>) it is very <strong>possibly</strong> a bug; please <a href="https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E">report it as
|
||||
a bug at the mkiocccentry issues
|
||||
page</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
@@ -1162,7 +1176,8 @@ having your submission rejected for violating <a href="#rule17">Rule 17</a>!
|
||||
<p class="leftbar">
|
||||
The maximum number of files your submission tarball may contain, not counting
|
||||
the optional files (<code>prog.alt.c</code>, <code>try.sh</code>, <code>try.alt.sh</code>) and the mandatory
|
||||
files (<code>prog.c</code>, <code>Makefile</code>, <code>remarks.md</code>) is 31. This is defined in the macro
|
||||
files (<code>prog.c</code>, <code>Makefile</code>, <code>remarks.md</code> plus the <code>mkiocccentry(1)</code> generated
|
||||
files <code>.auth.json</code> and <code>.info.json</code>) is 31. This is defined in the macro
|
||||
<code>MAX_EXTRA_FILE_COUNT</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h">soup/limit_ioccc.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry repo</a>. See the
|
||||
@@ -1251,7 +1266,7 @@ do this <strong>AFTER</strong> the <a href="../status.html">contest status</a> h
|
||||
<p class="leftbar">
|
||||
<strong><a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International</a></strong>
|
||||
</p>
|
||||
<p>You (the author(s)) <strong>MUST</strong> own the contents of your submission <strong>OR</strong>
|
||||
<p>You (the author(s)) <strong>MUST</strong> own the content of your submission <strong>OR</strong>
|
||||
you <strong>MUST HAVE PERMISSION</strong> from the owner(s) to submit their content.</p>
|
||||
<p>You <strong>MUST NOT</strong> submit anything that cannot be submitted under that license.</p>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
|
||||
Reference in new issue
Block a user