Update FAQ, guidelines and rules
The new syntax (though not all functionality is yet finished) of mkiocccentry does not match what was in the FAQ, guidelines and rules. Also added an important reminder to use v7 format with tarballs as not doing so can reveal who you are which would break the rules. This is mentioned in the rules and guidelines, showing how to create such a tarball. More work does have to be done with these two things however.
This commit is contained in:
1 parent
16c5ca3896
commit
db6fd9ab66
6 files changed
+93
-82
No files matched your search
@@ -684,24 +684,20 @@ explain how to use this tool. If you want to know what it is in simpler terms,
|
||||
see the
|
||||
FAQ on “<a href="#about_mkiocccentry">what mkiocccentry is</a>”.</p>
|
||||
<p>As the <a href="next/guidelines.html">Guidelines</a> state, the synopsis is:</p>
|
||||
<pre><code> mkiocccentry [options] work_dir prog.c \
|
||||
Makefile remarks.md [file ...]</code></pre>
|
||||
<p>… where <code>work_dir</code> is a directory that will be used to build the submission
|
||||
tarball, <code>prog.c</code> is your submission source code, <code>Makefile</code> is your submission’s
|
||||
<code>Makefile</code>, <code>remarks.md</code> are your remarks (that will be the basis of the
|
||||
<code>README.md</code> file which will be used to form the <code>index.html</code> file, if your
|
||||
submission wins) and the remaining args are the paths to any other files you
|
||||
wish to submit.</p>
|
||||
<p>The <code>work_dir</code> <strong>MUST</strong> already exist, as a directory, and it is an error if it
|
||||
<pre><code> mkiocccentry [options] workdir topdir</code></pre>
|
||||
<p>… where <code>workdir</code> is a directory that will be used to build the submission
|
||||
tarball and <code>topdir</code> is the directory which has your files, including the
|
||||
mandatory <code>prog.c</code>, <code>Makefile</code> and <code>remarks.md</code>.</p>
|
||||
<p>The <code>workdir</code> <strong>MUST</strong> already exist, as a directory, and it is an error if it
|
||||
is not a directory that can be written to. In <strong>this</strong> directory your <strong>submission
|
||||
directory</strong> will be created, with the name based on your IOCCC registration
|
||||
username, which is <strong>in the form of a UUID</strong>, and submission number; see the
|
||||
<a href="next/rules.html">rules</a> for more details on this, and in particular <a href="next/rules.html#rule17">Rule
|
||||
17</a>.</p>
|
||||
<p>If the <strong><em>subdirectory</em> in the <em>work directory</em></strong> already exists, you will have to
|
||||
<p>If the <strong><em>subdirectory</em> in the <em>work directory</em></strong> (based on your submit ID and
|
||||
slot number) already exists, you will have to
|
||||
move it, remove it or otherwise specify a different work directory (<strong>NOT</strong> the
|
||||
subdirectory), as it needs to be empty and the <code>mkiocccentry(1)</code> tool does not
|
||||
check this for you as it could not do anything about anyway.</p>
|
||||
subdirectory), as it needs to be empty.</p>
|
||||
<p>This <em>subdirectory is where your files will be <strong>copied</strong> to</em>. Your <em>submission
|
||||
tarball</em> (which you will upload to the submit server) that <code>txzchk(1)</code> will
|
||||
validate <em>will be placed in the <strong>work directory</strong></em>, and <strong>its <em>contents</em> will
|
||||
|
||||
@@ -300,28 +300,24 @@ FAQ on "[what mkiocccentry is](#about_mkiocccentry)".
|
||||
As the [Guidelines](next/guidelines.html) state, the synopsis is:
|
||||
|
||||
``` <!---sh-->
|
||||
mkiocccentry [options] work_dir prog.c \
|
||||
Makefile remarks.md [file ...]
|
||||
mkiocccentry [options] workdir topdir
|
||||
```
|
||||
|
||||
... where `work_dir` is a directory that will be used to build the submission
|
||||
tarball, `prog.c` is your submission source code, `Makefile` is your submission's
|
||||
`Makefile`, `remarks.md` are your remarks (that will be the basis of the
|
||||
`README.md` file which will be used to form the `index.html` file, if your
|
||||
submission wins) and the remaining args are the paths to any other files you
|
||||
wish to submit.
|
||||
... where `workdir` is a directory that will be used to build the submission
|
||||
tarball and `topdir` is the directory which has your files, including the
|
||||
mandatory `prog.c`, `Makefile` and `remarks.md`.
|
||||
|
||||
The `work_dir` **MUST** already exist, as a directory, and it is an error if it
|
||||
The `workdir` **MUST** already exist, as a directory, and it is an error if it
|
||||
is not a directory that can be written to. In **this** directory your **submission
|
||||
directory** will be created, with the name based on your IOCCC registration
|
||||
username, which is **in the form of a UUID**, and submission number; see the
|
||||
[rules](next/rules.html) for more details on this, and in particular [Rule
|
||||
17](next/rules.html#rule17).
|
||||
|
||||
If the **_subdirectory_ in the _work directory_** already exists, you will have to
|
||||
If the **_subdirectory_ in the _work directory_** (based on your submit ID and
|
||||
slot number) already exists, you will have to
|
||||
move it, remove it or otherwise specify a different work directory (**NOT** the
|
||||
subdirectory), as it needs to be empty and the `mkiocccentry(1)` tool does not
|
||||
check this for you as it could not do anything about anyway.
|
||||
subdirectory), as it needs to be empty.
|
||||
|
||||
This _subdirectory is where your files will be **copied** to_. Your _submission
|
||||
tarball_ (which you will upload to the submit server) that `txzchk(1)` will
|
||||
|
||||
+12
-5
@@ -461,7 +461,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="leftbar">
|
||||
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.34 2025-01-24</strong>.
|
||||
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.35 2025-01-30</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="guidelines.md" download="guidelines.md">markdown form of these guidelines</a>
|
||||
@@ -600,9 +600,11 @@ without having to put in answers each time, you can use the <code>-d</code> or <
|
||||
option to <code>mkiocccentry</code> for the tool to pseudo-randomly create answers for you.
|
||||
The <code>-d</code> option is an alias for <code>-s 21701</code>. An example use:
|
||||
</p>
|
||||
<pre><code> mkiocccentry -d test_work prog.c Makefile remarks.md</code></pre>
|
||||
<pre><code> mkiocccentry -d workdir topdir</code></pre>
|
||||
<p class="leftbar">
|
||||
where <code>test_work</code> is the directory which the tarball will be formed. Be aware
|
||||
where <code>workdir</code> is the directory which the tarball will be formed and the
|
||||
<code>topdir</code> is the directory which has the required files (<code>prog.c</code>, <code>Makefile</code> and
|
||||
<code>remarks.md</code>) along with extra data files you wish to submit. Be aware
|
||||
that if the directory exists already, you will have to remove it or move it
|
||||
before this option will work a second time, just like in normal mode.
|
||||
</p>
|
||||
@@ -845,6 +847,12 @@ If you <strong>DO</strong> include a tarball, and the build process or the progr
|
||||
said tarball(s), the make <code>clobber</code> rule <strong>MUST</strong> remove them.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
<strong>IMPORTANT REMINDER</strong>: make <strong>SURE</strong> your tarball DOES <strong>NOT</strong> reveal who you are!
|
||||
The <code>mkiocccentry(1)</code> tool creates v7 format tarballs to prevent this. You can
|
||||
do so like:
|
||||
</p>
|
||||
<pre><code> tar --format=v7 -cJf foo.txz directory</code></pre>
|
||||
<p class="leftbar">
|
||||
See <a href="rules.html#rule17">Rule 17</a> and in particular the part about the <a href="rules.html#max-files">maximum
|
||||
number of files</a>. If you do not follow these points, you
|
||||
are at a great risk of violating <a href="rules.html#rule17">Rule 17</a>!
|
||||
@@ -911,8 +919,7 @@ correct details as you go along.
|
||||
<p class="leftbar">
|
||||
The synopsis of the <code>mkiocccentry(1)</code> tool is:
|
||||
</p>
|
||||
<pre><code> mkiocccentry [options] work_dir prog.c \
|
||||
Makefile remarks.md [file ...]</code></pre>
|
||||
<pre><code> mkiocccentry [options] workdir topdir</code></pre>
|
||||
<p class="leftbar">
|
||||
To help you with editing a submission, the <code>mkiocccentry(1)</code> tool has
|
||||
some options to write <em>OR</em> read from an answers file so you do not have to input
|
||||
|
||||
+15
-4
@@ -222,11 +222,13 @@ The `-d` option is an alias for `-s 21701`. An example use:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
mkiocccentry -d test_work prog.c Makefile remarks.md
|
||||
mkiocccentry -d workdir topdir
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
where `test_work` is the directory which the tarball will be formed. Be aware
|
||||
where `workdir` is the directory which the tarball will be formed and the
|
||||
`topdir` is the directory which has the required files (`prog.c`, `Makefile` and
|
||||
`remarks.md`) along with extra data files you wish to submit. Be aware
|
||||
that if the directory exists already, you will have to remove it or move it
|
||||
before this option will work a second time, just like in normal mode.
|
||||
</p>
|
||||
@@ -518,6 +520,16 @@ If you **DO** include a tarball, and the build process or the program extracts
|
||||
said tarball(s), the make `clobber` rule **MUST** remove them.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
**IMPORTANT REMINDER**: make **SURE** your tarball DOES **NOT** reveal who you are!
|
||||
The `mkiocccentry(1)` tool creates v7 format tarballs to prevent this. You can
|
||||
do so like:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
tar --format=v7 -cJf foo.txz directory
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
See [Rule 17](rules.html#rule17) and in particular the part about the [maximum
|
||||
number of files](rules.html#max-files). If you do not follow these points, you
|
||||
@@ -604,8 +616,7 @@ The synopsis of the `mkiocccentry(1)` tool is:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
mkiocccentry [options] work_dir prog.c \
|
||||
Makefile remarks.md [file ...]
|
||||
mkiocccentry [options] workdir topdir
|
||||
```
|
||||
|
||||
<p class="leftbar">
|
||||
|
||||
+25
-26
@@ -462,7 +462,7 @@ writing by <a href="../contact.html">contacting the judges</a>.</p>
|
||||
</div>
|
||||
<p>Jump to: <a href="#">top</a></p>
|
||||
<p class="leftbar">
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.18 2025-01-24</strong>.
|
||||
These <a href="rules.html">IOCCC rules</a> are version <strong>28.19 2025-01-30</strong>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <a href="rules.md" download="rules.md">markdown form of these rules</a>
|
||||
@@ -1034,22 +1034,6 @@ issues
|
||||
page</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
You submission may have additional files, however the filenames of those additional files <strong>MUST</strong>:
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
Be less than <strong>100</strong> characters in length.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
Match the regular expression:
|
||||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code>
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
The <code>mkiocccentry(1)</code> tool will not package any files that do not meet
|
||||
those requirements.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
The <code>Makefile</code> <strong>MUST</strong> be a <strong>non</strong>-empty file in <strong><a href="https://www.gnu.org/software/make/manual/make.html">GNU
|
||||
Makefile</a></strong> form. See the
|
||||
<a href="guidelines.html#makefile">Makefile section in the guidelines</a>,
|
||||
@@ -1098,9 +1082,9 @@ more details on this tool and the <a href="https://github.com/ioccc-src/mkioccce
|
||||
repo</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Your entry may <strong>NOT</strong> have subdirectories. However, you can provide files that
|
||||
are in different directories as <code>mkiocccentry(1)</code> will copy them to the work
|
||||
directory (see the <a href="guidelines.html">guidelines</a> for more details).
|
||||
Your entry may have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like <code>.git</code>, <code>RCCS</code>, <code>CVS</code> and <code>.svn</code> are
|
||||
skipped. For more information, see the <a href="guidelines.html">guidelines</a>.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Filenames in your entry (that is, not including the files generated by the
|
||||
@@ -1108,7 +1092,7 @@ Filenames in your entry (that is, not including the files generated by the
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
Be less than <strong>100</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
|
||||
@@ -1125,13 +1109,19 @@ the exception of files generated by <code>mkiocccentry(1)</code> itself, it must
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
Match the regular expression
|
||||
<code>^[0-9A-Za-z][0-9A-Za-z._+-]*$</code> (again, excluding files generated by
|
||||
<code>^[0-9A-Za-z]+[0-9A-Za-z_+.-]*$</code> (again, excluding files generated by
|
||||
<code>mkiocccentry(1)</code>).
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> be a directory depth > 4.
|
||||
</p></li>
|
||||
<li><p class="leftbar">
|
||||
<strong>NOT</strong> have a total path length > 99 characters.
|
||||
</p></li>
|
||||
</ul>
|
||||
<p class="leftbar">
|
||||
Additionally, the tarball <strong>MUST</strong> have the following files (generated
|
||||
by the <code>mkiocccentry(1)</code> tool):
|
||||
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):
|
||||
</p>
|
||||
<ul>
|
||||
<li><p class="leftbar">
|
||||
@@ -1181,7 +1171,10 @@ if you need to include more files.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you do include a tarball that takes your extra files count over the maximum,
|
||||
you <strong>MUST</strong> explain this in your <code>remarks.md</code> file!
|
||||
you <strong>MUST</strong> explain this in your <code>remarks.md</code> file! <strong>PLEASE</strong> do not include a
|
||||
tarball with extra files for a test-suite; instead mention in your remarks that
|
||||
you have extra files for a test-suite that can be included should your
|
||||
submission win.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
If you need to extract a tarball by some Makefile, or perhaps the program
|
||||
@@ -1190,8 +1183,14 @@ created!
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Tarballs <strong>MUST</strong> only create files and directories <em>under them</em>. They may
|
||||
<strong>NOT</strong> contain absolute paths (paths that start with <code>/</code>)!
|
||||
<strong>NOT</strong> contain absolute paths (paths that start with <code>/</code>)! <code>txzchk</code> only checks
|
||||
the submission tarball so you must verify these details yourself.
|
||||
</p>
|
||||
<p class="leftbar">
|
||||
Make <strong>SURE</strong> your tarball does not reveal who you are! The <code>mkiocccentry(1)</code>
|
||||
tool uses the v7 format. For instance you might try:
|
||||
</p>
|
||||
<pre><code> tar --format=v7 -cJf foo.txz directory</code></pre>
|
||||
<hr style="width:50%;text-align:left;margin-left:0">
|
||||
<p class="leftbar">
|
||||
<strong>IMPORTANT</strong>: where <a href="#rule17">Rule 17</a> and the tools from the latest
|
||||
|
||||
+25
-23
@@ -55,7 +55,7 @@ Jump to: [top](#)
|
||||
|
||||
|
||||
<p class="leftbar">
|
||||
These [IOCCC rules](rules.html) are version **28.18 2025-01-24**.
|
||||
These [IOCCC rules](rules.html) are version **28.19 2025-01-30**.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -809,19 +809,6 @@ issues
|
||||
page](https://github.com/ioccc-src/mkiocccentry/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml&title=%5BBug%5D+%3Ctitle%3E).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
You submission may have additional files, however the filenames of those additional files **MUST**:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">Be less than **100** characters in length.</p>
|
||||
* <p class="leftbar">Match the regular expression:
|
||||
`^[0-9A-Za-z][0-9A-Za-z._+-]*$`</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `mkiocccentry(1)` tool will not package any files that do not meet
|
||||
those requirements.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
The `Makefile` **MUST** be a **non**-empty file in **[GNU
|
||||
Makefile](https://www.gnu.org/software/make/manual/make.html)** form. See the
|
||||
@@ -883,9 +870,9 @@ repo](https://github.com/ioccc-src/mkiocccentry).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Your entry may **NOT** have subdirectories. However, you can provide files that
|
||||
are in different directories as `mkiocccentry(1)` will copy them to the work
|
||||
directory (see the [guidelines](guidelines.html) for more details).
|
||||
Your entry may have subdirectories, depending on the depth and total length of
|
||||
the filenames. Certain directories like `.git`, `RCCS`, `CVS` and `.svn` are
|
||||
skipped. For more information, see the [guidelines](guidelines.html).
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -893,7 +880,7 @@ Filenames in your entry (that is, not including the files generated by the
|
||||
`mkiocccentry(1)` tool or the tools it or any other tool invokes) **MUST**:
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">Be less than **100** characters in length</p>
|
||||
* <p class="leftbar">Be <= **38** characters in length</p>
|
||||
* <p class="leftbar">**NOT** have a **`/`** (excluding the entry directory that
|
||||
the `mkiocccentry(1)` tool generates).</p>
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`.`** (that is, with
|
||||
@@ -902,12 +889,14 @@ the exception of files generated by `mkiocccentry(1)` itself, it must have
|
||||
* <p class="leftbar">**NOT** contain a path component of: **`..`** (that is,
|
||||
**NO** **`..`**).</p>
|
||||
* <p class="leftbar">Match the regular expression
|
||||
`^[0-9A-Za-z][0-9A-Za-z._+-]*$` (again, excluding files generated by
|
||||
`^[0-9A-Za-z]+[0-9A-Za-z_+.-]*$` (again, excluding files generated by
|
||||
`mkiocccentry(1)`).</p>
|
||||
* <p class="leftbar">**NOT** be a directory depth > 4.</p>
|
||||
* <p class="leftbar">**NOT** have a total path length > 99 characters.</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Additionally, the tarball **MUST** have the following files (generated
|
||||
by the `mkiocccentry(1)` tool):
|
||||
Additionally, the submission tarball created by `mkiocccentry(1)` **MUST** have
|
||||
the following files (generated by the `mkiocccentry(1)` tool):
|
||||
</p>
|
||||
|
||||
* <p class="leftbar">`.auth.json` which contains information about the author or
|
||||
@@ -959,7 +948,10 @@ if you need to include more files.
|
||||
|
||||
<p class="leftbar">
|
||||
If you do include a tarball that takes your extra files count over the maximum,
|
||||
you **MUST** explain this in your `remarks.md` file!
|
||||
you **MUST** explain this in your `remarks.md` file! **PLEASE** do not include a
|
||||
tarball with extra files for a test-suite; instead mention in your remarks that
|
||||
you have extra files for a test-suite that can be included should your
|
||||
submission win.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
@@ -970,9 +962,19 @@ created!
|
||||
|
||||
<p class="leftbar">
|
||||
Tarballs **MUST** only create files and directories _under them_. They may
|
||||
**NOT** contain absolute paths (paths that start with `/`)!
|
||||
**NOT** contain absolute paths (paths that start with `/`)! `txzchk` only checks
|
||||
the submission tarball so you must verify these details yourself.
|
||||
</p>
|
||||
|
||||
<p class="leftbar">
|
||||
Make **SURE** your tarball does not reveal who you are! The `mkiocccentry(1)`
|
||||
tool uses the v7 format. For instance you might try:
|
||||
</p>
|
||||
|
||||
``` <!---sh-->
|
||||
tar --format=v7 -cJf foo.txz directory
|
||||
```
|
||||
|
||||
<hr style="width:50%;text-align:left;margin-left:0">
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user