Add FAQs about .auth.json and .info.json
These are very detailed as they are very important parts of the mkiocccentry toolkit. The guidelines will likely refer to these for those who want to know more details but that is for another commit.
This commit is contained in:
1 parent
42f1ab8e0f
commit
d6f2bffd0e
2 files changed
+1277
-22
No files matched your search
@@ -394,6 +394,8 @@
|
||||
<li><a class="normal" href="#faq0_6">0.6 - What is the best way to ask a question about the IOCCC rules, guideline and tools?</a></li>
|
||||
<li><a class="normal" href="#faq0_7">0.7 - What are the IOCCC best practices for using markdown?</a></li>
|
||||
<li><a class="normal" href="#faq0_8">0.8 - How do I report bugs in a <code>mkiocccentry</code> tool?</a></li>
|
||||
<li><a class="normal" href="#faq0_9">0.9 - What is a <code>.auth.json</code> file?</a></li>
|
||||
<li><a class="normal" href="#faq0_10">0.10 - What is a <code>.info.json</code> file?</a></li>
|
||||
</ul>
|
||||
<h2 id="section-1---history-of-the-ioccc">Section 1 - <a href="#faq1">History of the IOCCC</a></h2>
|
||||
<ul>
|
||||
@@ -405,7 +407,7 @@
|
||||
<h2 id="section-2---ioccc-judging-process">Section 2 - <a href="#faq2">IOCCC Judging process</a></h2>
|
||||
<ul>
|
||||
<li><a class="normal" href="#faq2_0">2.0 - How many entries do the judges receive for a given IOCCC?</a></li>
|
||||
<li><a class="normal" href="#faq2_1">2.1 - What should I put in the remarks.md file of my entry?</a></li>
|
||||
<li><a class="normal" href="#faq2_1">2.1 - What should I put in the remarks.md file of my submission?</a></li>
|
||||
<li><a class="normal" href="#faq2_2">2.2 - Why don’t you publish entries that do not win?</a></li>
|
||||
<li><a class="normal" href="#faq2_3">2.3 - How much time does it take to judge the contest?</a></li>
|
||||
<li><a class="normal" href="#faq2_4">2.4 - How many judging rounds do you have?</a></li>
|
||||
@@ -470,7 +472,7 @@ other inconsistencies with the original entry?</a></li>
|
||||
<li><a class="normal" href="#faq6_3">6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?</a></li>
|
||||
<li><a class="normal" href="#faq6_4">6.4 - Why do you sometimes use the first person plural?</a></li>
|
||||
<li><a class="normal" href="#faq6_5">6.5 - What is an <code>author handle</code>?</a></li>
|
||||
<li><a class="normal" href="#faq6_6">6.6 - What is an author_handle.json file and how are they used?</a></li>
|
||||
<li><a class="normal" href="#faq6_6">6.6 - What is an <code>author_handle.json</code> file and how are they used?</a></li>
|
||||
<li><a class="normal" href="#faq6_7">6.7 - What is an <code>entry_id</code>?</a></li>
|
||||
<li><a class="normal" href="#faq6_8">6.8 - What is the purpose of the .top, .year and .path files?</a></li>
|
||||
<li><a class="normal" href="#faq6_9">6.9 - What is the current meaning of the IOCCC terms Author, Entry, and Submission?</a></li>
|
||||
@@ -658,10 +660,12 @@ of your <code>remarks.md</code> file, see <a href="#remarks_md">FAQ 2.1</a>,
|
||||
submitted theme</strong> and <strong>how compares with previous IOCCC winners</strong>
|
||||
of the same theme.</p>
|
||||
<div id="faq0_2">
|
||||
<div id="makefile">
|
||||
<div id="submission_makefile">
|
||||
<h3 id="faq-0.2-what-should-i-put-in-my-entrys-makefile">FAQ 0.2: What should I put in my entry’s Makefile?</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>We recommend starting with the <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example">sample
|
||||
Makefile</a>
|
||||
as found in the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry GitHub repo</a>,
|
||||
@@ -796,7 +800,7 @@ as it lists things you <strong>should not use</strong> in markdown files.</p>
|
||||
See also <a href="https://spec.commonmark.org/current/">CommonMark Spec</a>.</p>
|
||||
<div id="faq0_8">
|
||||
<div id="mkiocccentry_bugs">
|
||||
<h3 id="faq-0.8---how-do-i-report-bugs-in-a-mkiocccentry-tool">FAQ 0.8: - How do I report bugs in a <code>mkiocccentry</code> tool?</h3>
|
||||
<h3 id="faq-0.8-how-do-i-report-bugs-in-a-mkiocccentry-tool">FAQ 0.8: How do I report bugs in a <code>mkiocccentry</code> tool?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>As the <a href="https://github.com/ioccc-src/mkiocccentry">mkiocccentry toolkit</a> is
|
||||
@@ -820,6 +824,628 @@ file. If it does not find a problem but you think there is a problem, please
|
||||
still do feel free to report it and do make sure you attach the log nonetheless.
|
||||
If it does find problems, it will give you a summary of the problems and when
|
||||
you attach the log file we will see those too.</p>
|
||||
<div id="faq0_9">
|
||||
<div id="auth_json">
|
||||
<h3 id="faq-0.9-what-is-a-.auth.json-file">FAQ 0.9: What is a <code>.auth.json</code> file?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>This file is constructed by the <code>mkiocccentry(1)</code> <strong>prior to</strong> forming the xz
|
||||
compressed tarball of your submission. The <code>.auth.json</code> file contains
|
||||
information about the author or authors of the submission, in JSON format. The
|
||||
JSON <code>authors</code> <strong>array</strong> holds the following information about the authors of the
|
||||
submission:</p>
|
||||
<ul>
|
||||
<li><p><code>name</code> (string)</p>
|
||||
<ul>
|
||||
<li>The <strong>name</strong> of this author.</li>
|
||||
</ul></li>
|
||||
<li><p><code>location_code</code> (string)</p>
|
||||
<ul>
|
||||
<li>The <strong>location code</strong> of this author (an ISO 3166-1 2 character code).
|
||||
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</code> use <code>XX</code> if you want your location to be anonymous.</p></li>
|
||||
<li><p><code>email</code> (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>
|
||||
</ul></li>
|
||||
<li><p><code>url</code> (string)</p>
|
||||
<ul>
|
||||
<li>The primary <strong>URL</strong> of this author, or <code>null</code> if not provided.</li>
|
||||
</ul></li>
|
||||
<li><p><code>alt_url</code> (string)</p>
|
||||
<ul>
|
||||
<li>The <strong>alt URL</strong> of this author, or <code>null</code> if not provided.</li>
|
||||
</ul></li>
|
||||
<li><p><code>mastodon</code> (string)</p>
|
||||
<ul>
|
||||
<li>The <strong><a href="#try_mastodon">Mastodon</a> handle</strong> of this author in the form of <code>@user@domain</code>, or
|
||||
<code>null</code> if not provided.</li>
|
||||
</ul></li>
|
||||
<li><p><code>github</code> (string)</p>
|
||||
<ul>
|
||||
<li>The <strong><a href="https://github.com">GitHub</a> account</strong> of this author in the form of <code>@user</code>, or <code>null</code> if not
|
||||
provided.</li>
|
||||
</ul></li>
|
||||
<li><p><code>affiliation</code> (string)</p>
|
||||
<ul>
|
||||
<li>This author’s <strong>affiliation</strong>, if any, or <code>null</code> if not provided.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if provided, the length of the <strong>affiliation</strong> <strong>MUST</strong> be within
|
||||
the range of 1 <strong>THROUGH</strong> <code>MAX_AFFILIATION_LEN</code> (see
|
||||
<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>). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
||||
<p><strong>NOTE:</strong> an <strong>affiliation</strong> does <strong>NOT</strong> have any affect on whether you will win or not.</p></li>
|
||||
<li><p><code>past_winning_author</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if this author claims to have won a past IOCCC, <code>false</code> if this
|
||||
author has <strong>NOT</strong> won before.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this has <strong>NO</strong> effect on whether you will win or not.</p></li>
|
||||
<li><p><code>default_handle</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if this default handle was accepted, <code>false</code> if one is provided
|
||||
by this author.</li>
|
||||
</ul></li>
|
||||
<li><p><code>author_handle</code> (string)</p>
|
||||
<ul>
|
||||
<li>This author’s handle (custom or default provided).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if you have won before, we <strong>ENCOURAGE</strong> you to use the same handle of
|
||||
your previous winning entries, to help in organising the
|
||||
<a href="authors.html">authors.html</a> page and the author JSON file (see: <a href="#author_handle_faq">What is an
|
||||
author handle?</a> and <a href="#author_json">What is an <code>author_handle.json</code>
|
||||
file and how are they used?</a>).</p></li>
|
||||
<li><p><code>author_number</code> (number)</p>
|
||||
<ul>
|
||||
<li>This author number in the <code>authors</code> array.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h3 id="additional-fields-in-.auth.json">Additional fields in <code>.auth.json</code>:</h3>
|
||||
<p>The file also contains the following details:</p>
|
||||
<ul>
|
||||
<li><p><code>no_comment</code> (string)</p>
|
||||
<ul>
|
||||
<li>We can provide <code>no comment</code> about <code>no_comment</code> so we ask you to please
|
||||
<strong>NOT</strong> <code>comment</code> about our <code>no comments</code>. :-)</li>
|
||||
</ul></li>
|
||||
<li><p><code>IOCCC_auth_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The current version of the <code>.auth.json</code> file.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>IOCCC_contest</code> (string)</p>
|
||||
<ul>
|
||||
<li>Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s contest value, defined as
|
||||
<code>IOCCC_CONTEST</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>IOCCC_year</code> (number)</p>
|
||||
<ul>
|
||||
<li>The year this contest was run in.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> sometimes an IOCCC year runs into another year and the contest year
|
||||
might not match when it ends.</p>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s contest, defined as
|
||||
<code>IOCCC_YEAR</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>mkiocccentry_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>chkentry_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>chkentry</code> that was used to validate this <code>.auth.json</code>,
|
||||
assuming that it was created by <code>mkiocccentry</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>fnamchk_version</code> (string)</p>
|
||||
<ul>
|
||||
<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>NOTE:</strong> this <strong>MUST</strong> match <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> (string)</p>
|
||||
<ul>
|
||||
<li>The IOCCC contestant ID used as a username in the form of <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>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if the contest ID is <strong>NOT</strong> in this format then <code>fnamchk</code> will
|
||||
report it as an <strong>error</strong> and your submission <strong>WILL BE</strong> rejected for
|
||||
violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>tarball</code> (string)</p>
|
||||
<ul>
|
||||
<li>The xz compressed tarball filename.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for
|
||||
this to be valid. If there is a mismatch you stand a great risk of having
|
||||
your submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!
|
||||
Moreover, it is possible that <code>txzchk</code> will report a problem through
|
||||
<code>fnamchk(1)</code> which also puts you at great risk of violating <a href="next/rules.html#rule17">Rule
|
||||
17</a>. If <code>txzchk</code> does not detect this, though, it
|
||||
does not mean it’s a bug but rather that the directory in the tarball
|
||||
matches the filename.</p></li>
|
||||
<li><p><code>submit_slot</code> (number)</p>
|
||||
<ul>
|
||||
<li>The submission number.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be within the range of 0 <strong>THROUGH</strong>
|
||||
<code>MAX_SUBMIT_SLOT</code> (see
|
||||
<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>). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>author_count</code> (number)</p>
|
||||
<ul>
|
||||
<li>How many authors this submission has.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be within the range of 1 <strong>THROUGH</strong>
|
||||
<code>MAX_AUTHORS</code> (see
|
||||
<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>). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating the <a href="next/rules.html">Rules</a>! Moreover, if the
|
||||
<code>author_count</code> is inconsitent with how many authors are in the <code>authors</code>
|
||||
array your submission <strong>will be</strong> invalid.</p></li>
|
||||
<li><p><code>test_mode</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <code>test</code> ID was used to form the tarball, else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if <code>true</code> then this may <strong>NOT</strong> be submitted to the contest! Please do
|
||||
<strong>NOT</strong> email the <a href="judges.html">Judges</a> your submission!</p></li>
|
||||
<li><p><code>formed_timestamp</code> (number)</p>
|
||||
<ul>
|
||||
<li>Seconds since epoch when <code>.auth.json</code>/<a href="#info_json">.info json</a> was formed (see <code>gettimeofday(2)</code>).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be greater than or equal to <code>MIN_TIMESTAMP</code> (see
|
||||
<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>). If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected.</p></li>
|
||||
<li><p><code>formed_timestamp_usec</code> (number)</p>
|
||||
<ul>
|
||||
<li>Microseconds since the tstamp (seconds since epoch when <code>.auth.json</code> was
|
||||
formed - see <code>gettimeofday(2)</code>) second.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be within the range <code>MIN_FORMED_TIMESTAMP_USEC</code>
|
||||
<strong>THROUGH</strong> <code>MAX_FORMED_TIMESTAMP_USEC</code> and is validated by
|
||||
<code>test_formed_timestamp_usec()</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c">soup/entry_util.c</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
|
||||
this is not the case <code>chkentry(1)</code> will report an <strong>error</strong> and your
|
||||
submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>timestamp_epoch</code> (string)</p>
|
||||
<ul>
|
||||
<li><code>"Thu Jan 01 00:00:00 1970 UTC"</code> (<code>gettimeofday(2)</code> epoch).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be <code>"Thu Jan 01 00:00:00 1970 UTC"</code> which is <code>#define</code>d
|
||||
as <code>TIMESTAMP_EPOCH</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>min_timestamp</code> (number)</p>
|
||||
<ul>
|
||||
<li>Minimum number of second since epoch for <strong>this</strong> IOCCC.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be >= <code>MIN_TIMESTAMP</code> defined 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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
</ul>
|
||||
<p>This file will be verified with the <code>chkentry(1)</code> tool and if there are any
|
||||
problems <strong>it is an error</strong>. If there is an error the tarball will <strong>NOT</strong> be
|
||||
formed by <code>mkiocccentry</code>; otherwise the <code>txzchk(1)</code> tool will be executed on the
|
||||
tarball.</p>
|
||||
<p>This file will <strong>NOT</strong> be looked at unless the submission wins! Nonetheless,
|
||||
<code>chkentry(1)</code> <strong>WILL BE</strong> used on the file as part of the judging process.</p>
|
||||
<p>At the risk of stating the obvious, if your <code>.auth.json</code> file is invalid JSON or
|
||||
is reported invalid by <code>chkentry</code> your submission will almost certainly be
|
||||
rejected for violating the <a href="next/rules.html">Rules</a> and in particular <a href="next/rules.html#rule17">Rule
|
||||
17</a>.</p>
|
||||
<p>An obvious example where <code>chkentry</code> would fail to validate <code>.auth.json</code> is if
|
||||
there is a mismatch of type in the JSON file with what is expected, for
|
||||
instance, if in <code>.auth.json</code> the <code>no_comment</code> that we chose to not comment on is
|
||||
not a string. Another obvious example is when things are out of range (see above
|
||||
for list). Two more examples would be if a field is missing or if an unknown
|
||||
filed is in the file. In these cases (and any others that must be established as
|
||||
valid by <code>chkentry</code>) your submission would be rejected for violating <a href="next/rules.html#rule17">Rule
|
||||
17</a> and in particular because <code>chkentry</code> would not
|
||||
validate the <code>.auth.json</code> file.</p>
|
||||
<div id="faq0_10">
|
||||
<div id="info_json">
|
||||
<h3 id="faq-0.10-what-is-a-.info.json-file">FAQ 0.10: What is a <code>.info.json</code> file?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>This file is constructed by the <code>mkiocccentry(1)</code> <strong>prior to</strong> forming the xz
|
||||
compressed tarball of your submission. The <code>.info.json</code> file contains
|
||||
information about the submission, in JSON format. The
|
||||
JSON <code>manifest</code> array contains information about the files of the submission,
|
||||
<strong>including</strong> the <strong>mandatory</strong> <a href="#auth_json">.auth.json</a>, <a href="#info_json">.info.json</a>,
|
||||
C source and <a href="#remarks">remarks</a> files. In particular:</p>
|
||||
<ul>
|
||||
<li><p><code>info_JSON</code> (string)</p>
|
||||
<ul>
|
||||
<li>This <code>MUST</code> be <code>".info.json"</code>, defined as <code>INFO_JSON_FILENAME</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h">soup/entry_util.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>, and
|
||||
it is the <a href="#info_json">.info.json</a> file that <code>mkiocccentry</code> forms.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
|
||||
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>auth_JSON</code> (string)</p>
|
||||
<ul>
|
||||
<li>This <code>MUST</code> be <code>".auth.json"</code>, defined as <code>AUTH_JSON_FILENAME</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h">soup/entry_util.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>, and
|
||||
it is the <a href="#auth_json">.auth.json</a> file that <code>mkiocccentry</code> forms.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
|
||||
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>c_src</code> (string)</p>
|
||||
<ul>
|
||||
<li>This <code>MUST</code> be <code>"prog.c"</code>, defined as <code>PROG_C_FILENAME</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h">soup/entry_util.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>, and
|
||||
is your submission source code.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
|
||||
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
||||
<p><strong>NOTE:</strong> if you provide to <code>mkiocccentry</code> a different filename it will be
|
||||
copied to <code>prog.c</code>.</p></li>
|
||||
<li><p><code>Makefile</code> (string)</p>
|
||||
<ul>
|
||||
<li>This <code>MUST</code> be <code>"Makefile"</code>, defined as <code>MAKEFILE_FILENAME</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h">soup/entry_util.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>, and
|
||||
is your <a href="#makefile">Makefile</a>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
|
||||
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
||||
<p><strong>NOTE:</strong> if you provide to <code>mkiocccentry</code> a different filename it will be
|
||||
copied to <code>Makefile</code>.</p></li>
|
||||
<li><p><code>remarks</code> (string)</p>
|
||||
<ul>
|
||||
<li>This <code>MUST</code> be <code>"remarks.md"</code>, defined as <code>REMARKS_FILENAME</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h">soup/entry_util.h</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>, and
|
||||
is your <a href="#remarks">remarks.md</a>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great chance of having your
|
||||
submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p>
|
||||
<p><strong>NOTE:</strong> if you provide to <code>mkiocccentry</code> a different filename it will be
|
||||
copied to <code>remarks.md</code>.</p></li>
|
||||
</ul>
|
||||
<p>The <code>manifest</code> array also optionally has one or more of the field:</p>
|
||||
<ul>
|
||||
<li><p><code>extra_file</code> (string)</p>
|
||||
<ul>
|
||||
<li>Any additional file that you need or want to include with your submission.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this MUST <strong>NOT</strong> match a mandatory filename (see above list) and
|
||||
<code>chkentry</code> will verify this for you; it is <strong>also</strong> an <strong>error</strong> if it the
|
||||
filenames are not unique. In these cases you stand a great risk of having
|
||||
your submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>! On
|
||||
the other hand, <strong>ONLY</strong> <code>mkiocccentry</code> will verify that the files exist and
|
||||
can be read; <code>txzchk(1)</code> will <strong>NOT</strong> do this for you as it only <strong>LISTS</strong>
|
||||
the tarball: it does <strong>NOT</strong> extract it. Even so, the <a href="judges.html">Judges</a>
|
||||
<strong>WILL</strong> extract the tarball and if a file listed in the manifest does not
|
||||
exist your submission will very likely be rejected for not being as
|
||||
documented!</p></li>
|
||||
</ul>
|
||||
<p>The file also contains the following details:</p>
|
||||
<ul>
|
||||
<li><p><code>no_comment</code> (string)</p>
|
||||
<ul>
|
||||
<li>We can provide <code>no comment</code> about <code>no_comment</code> so we ask you to please
|
||||
<strong>NOT</strong> <code>comment</code> about our <code>no comments</code>. :-)</li>
|
||||
</ul></li>
|
||||
<li><p><code>IOCCC_info_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The current version of the <code>.info.json</code> files.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>IOCCC_contest</code> (string)</p>
|
||||
<ul>
|
||||
<li>Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s contest value, defined as
|
||||
<code>IOCCC_CONTEST</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>IOCCC_year</code> (number)</p>
|
||||
<ul>
|
||||
<li>The year this contest was run in.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> sometimes an IOCCC year runs into another year and the contest year
|
||||
might not match when it ends.</p>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <strong>THIS</strong> IOCCC’s contest, defined as
|
||||
<code>IOCCC_YEAR</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>mkiocccentry_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>mkiocccentry</code> that formed this <code>.auth.json</code> file.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>iocccsize_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>iocccsize</code> that was used for this <code>.info.json</code> file.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>chkentry_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>chkentry</code> that was used to validate this <code>.info.json</code>,
|
||||
assuming that it was created by <code>mkiocccentry</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>fnamchk_version</code> (string)</p>
|
||||
<ul>
|
||||
<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>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>txzchk_version</code> (string)</p>
|
||||
<ul>
|
||||
<li>The version of <code>txzchk</code> used to validate the xz compressed tarball.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match <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></li>
|
||||
<li><p><code>IOCCC_contest_id</code> (string)</p>
|
||||
<ul>
|
||||
<li>The IOCCC contestant ID used as a username in the form of <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>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if the contest ID is <strong>NOT</strong> in this format then <code>fnamchk</code> will
|
||||
report it as an <strong>error</strong> and your submission <strong>WILL BE</strong> rejected for
|
||||
violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>submit_slot</code> (number)</p>
|
||||
<ul>
|
||||
<li>The submission number.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be within the range of 0 <strong>THROUGH</strong>
|
||||
<code>MAX_SUBMIT_SLOT</code> (see
|
||||
<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>). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>title</code> (string)</p>
|
||||
<ul>
|
||||
<li>A short name (length >= 1 <strong>THROUGH</strong> <code>MAX_TITLE_LEN</code>, defined 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>) that
|
||||
matches the regexp <code>[a-z0-9][a-z0-9_+-]*</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <strong>NOT</strong> the case you stand a great risk of having your submission
|
||||
rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!</p></li>
|
||||
<li><p><code>abstract</code> (string)</p>
|
||||
<ul>
|
||||
<li>A one line summary of your submission, with a length of 1 <strong>THROUGH</strong>
|
||||
<code>MAX_ABSTRACT_LEN</code>, defined 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>)</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if your abstract is 0 in length or > the maximum abstract length you
|
||||
stand a great risk of having your submission rejected for violating <a href="next/rules.html#rule17">Rule
|
||||
17</a>!</p></li>
|
||||
<li><p><code>tarball</code> (string)</p>
|
||||
<ul>
|
||||
<li>The xz compressed tarball filename.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> match the actual tarball’s <strong>filename</strong> in order for
|
||||
this to be valid. If there is a mismatch you stand a great risk of having
|
||||
your submission rejected for violating <a href="next/rules.html#rule17">Rule 17</a>!
|
||||
Moreover, it is possible that <code>txzchk</code> will report a problem through
|
||||
<code>fnamchk(1)</code> which also puts you at great risk of violating <a href="next/rules.html#rule17">Rule
|
||||
17</a>. If <code>txzchk</code> does not detect this, though, it
|
||||
does not mean it’s a bug but rather that the directory in the tarball
|
||||
matches the filename.</p></li>
|
||||
<li><p><code>rule_2a_size</code> (number)</p>
|
||||
<ul>
|
||||
<li>The size calculated of <a href="next/rules.html#rule2a">Rule 2a</a>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this violates <a href="next/rules.html#rule2a">Rule 2a</a> you stand a great
|
||||
chance of having your submission rejected for violating the
|
||||
<a href="next/rules.html">Rules</a>!</p></li>
|
||||
<li><p><code>rule_2b_size</code> (number)</p>
|
||||
<ul>
|
||||
<li>The size calculated of <a href="next/rules.html#rule2b">Rule 2b</a>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this violates <a href="next/rules.html#rule2b">Rule 2b</a> you stand a great
|
||||
chance of having your submission rejected for violating the
|
||||
<a href="next/rules.html">Rules</a>!</p></li>
|
||||
<li><p><code>empty_override</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if user override warning of an empty source file, else <code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>rule_2a_override</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if user overrides warning of <a href="next/rules.html#rule2a">Rule 2a</a>
|
||||
violation, else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if the <a href="next/rules.html#rule2a">Rule 2a</a> calculated size is <strong>NOT</strong>
|
||||
violated but this 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></li>
|
||||
<li><p><code>rule_2a_mismatch</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if <a href="next/rules.html#rule2a">Rule 2a</a> calculated size is not the
|
||||
same as the file size.</li>
|
||||
</ul></li>
|
||||
<li><p><code>rule_2b_override</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if user overrides warning of <a href="next/rules.html#rule2b">Rule 2b</a>
|
||||
violation, else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if the <a href="next/rules.html#rule2b">Rule 2b</a> calculated size is <strong>NOT</strong>
|
||||
violated but this 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></li>
|
||||
<li><p><code>highbit_warning</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if <code>iocccsize</code> detects a high bit (unescaped octets with the high
|
||||
bit set - octet value >= 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>
|
||||
<li><code>true</code> if <code>iocccsize</code> detects a NUL character in the <code>prog.c</code>, else
|
||||
<code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>trigraph_warning</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if <code>iocccsize</code> detects an unknown or invalid trigraph in
|
||||
<code>prog.c</code>, else <code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>wordbuf_warning</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if <code>prog.c</code> triggered a word buffer overflow (see <code>iocccsize</code>),
|
||||
else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this does <strong>NOT</strong> mean that your code has been checked for buffer
|
||||
overflows in general.</p></li>
|
||||
<li><p><code>ungetc_warning</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if <code>prog.c</code> triggered an <code>ungetc(3)</code> error, else <code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>Makefile_override</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the user overrides any warnings about an incomplete/incorrect
|
||||
<a href="#makefile">Makefile</a>, else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if the <a href="#makefile">Makefile</a> has no problems and this 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></li>
|
||||
<li><p><code>first_rule_is_all</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the first rule in the <a href="#makefile">Makefile</a> is
|
||||
<code>all</code>, else <code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>found_all_rule</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <a href="#makefile">Makefile</a> has an <code>all</code> rule, else
|
||||
<code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>found_clean_rule</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <a href="#makefile">Makefile</a> has a <code>clean</code> rule, else
|
||||
<code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>found_clobber_rule</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <a href="#makefile">Makefile</a> has a <code>clobber</code> rule,
|
||||
else <code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>found_try_rule</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <a href="#makefile">Makefile</a> has a <code>try</code> rule, else
|
||||
<code>false</code>.</li>
|
||||
</ul></li>
|
||||
<li><p><code>test_mode</code> (boolean)</p>
|
||||
<ul>
|
||||
<li><code>true</code> if the <code>test</code> ID was used to form the tarball, else <code>false</code>.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> if this is <code>true</code> then this may <strong>NOT</strong> be submitted to the
|
||||
contest! Please do <strong>NOT</strong> email the <a href="judges.html">Judges</a> your submission!</p></li>
|
||||
<li><p><code>formed_timestamp</code> (number)</p>
|
||||
<ul>
|
||||
<li>Seconds since epoch when <a href="#auth_json">.auth.json</a>/<code>.info json</code> was formed (see <code>gettimeofday(2)</code>).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be greater than or equal to <code>MIN_TIMESTAMP</code> (see
|
||||
<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>). If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected.</p></li>
|
||||
<li><p><code>formed_timestamp_usec</code> (number)</p>
|
||||
<ul>
|
||||
<li>Microseconds since the tstamp (seconds since epoch when <code>.auth.json</code> was
|
||||
formed - see <code>gettimeofday(2)</code>) second.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be within the range <code>MIN_FORMED_TIMESTAMP_USEC</code>
|
||||
<strong>THROUGH</strong> <code>MAX_FORMED_TIMESTAMP_USEC</code> and is validated by
|
||||
<code>test_formed_timestamp_usec()</code> in
|
||||
<a href="https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c">soup/entry_util.c</a>
|
||||
in the <a href="https://github.com/ioccc-src/mkiocccentry/">mkiocccentry repo</a>. If
|
||||
this is not the case <code>chkentry(1)</code> will report an <strong>error</strong> and your
|
||||
submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>timestamp_epoch</code> (string)</p>
|
||||
<ul>
|
||||
<li><code>"Thu Jan 01 00:00:00 1970 UTC"</code> (<code>gettimeofday(2)</code> epoch).</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be <code>"Thu Jan 01 00:00:00 1970 UTC"</code> which is <code>#define</code>d
|
||||
as <code>TIMESTAMP_EPOCH</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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
<li><p><code>min_timestamp</code> (number)</p>
|
||||
<ul>
|
||||
<li>Minimum number of second since epoch for <strong>this</strong> IOCCC.</li>
|
||||
</ul>
|
||||
<p><strong>NOTE:</strong> this <strong>MUST</strong> be >= <code>MIN_TIMESTAMP</code> defined 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>. If
|
||||
this is not the case your submission <strong>WILL BE</strong> rejected!</p></li>
|
||||
</ul>
|
||||
<p>This file will be verified with the <code>chkentry(1)</code> tool and if there are any
|
||||
problems <strong>it is an error</strong>. If there is an error the tarball will <strong>NOT</strong> be
|
||||
formed by <code>mkiocccentry</code>; otherwise the <code>txzchk(1)</code> tool will be executed on the
|
||||
tarball.</p>
|
||||
<p>The <a href="judges.html">Judges</a> <strong>WILL</strong> use <code>chkentry(1)</code> on this file during the
|
||||
judging process and if it does not pass your submission <strong>WILL BE</strong> rejected.</p>
|
||||
<p>An obvious example where <code>chkentry</code> would fail to validate <code>.info.json</code> is if
|
||||
there is a mismatch of type in the JSON file with what is expected, for
|
||||
instance, if in <code>.info.json</code> the <code>no_comment</code> that we chose to not comment on is
|
||||
not a string. Another obvious example is when things are out of range (see above
|
||||
for list). Two more examples would be if a field is missing or if an unknown
|
||||
filed is in the file. In these cases (and any others that must be established as
|
||||
valid by <code>chkentry</code>) your submission would be rejected for violating <a href="next/rules.html#rule17">Rule
|
||||
17</a> and in particular because <code>chkentry</code> would not
|
||||
validate the <code>.info.json</code> file.</p>
|
||||
<div id="faq1">
|
||||
<h2 id="section-1-history-of-the-ioccc">Section 1: History of the IOCCC</h2>
|
||||
</div>
|
||||
@@ -1119,7 +1745,8 @@ to the <a href="https://www.ioccc.org">official IOCCC website</a>.</p>
|
||||
<p>By tradition, we do not say.</p>
|
||||
<div id="faq2_1">
|
||||
<div id="remarks_md">
|
||||
<h3 id="faq-2.1-what-should-i-put-in-the-remarks.md-file-of-my-entry">FAQ 2.1: What should I put in the remarks.md file of my entry?</h3>
|
||||
<div id="remarks">
|
||||
<h3 id="faq-2.1-what-should-i-put-in-the-remarks.md-file-of-my-submission">FAQ 2.1: What should I put in the remarks.md file of my submission?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p>First, <strong>PLEASE</strong> read the <a href="markdown.html">IOCCC markdown guidelines</a>.</p>
|
||||
@@ -2732,7 +3359,7 @@ in the case of <a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master
|
||||
<pre><code> Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$</code></pre>
|
||||
<div id="faq6_6">
|
||||
<div id="author_json">
|
||||
<h3 id="faq-6.6-what-is-an-author_handle.json-file-and-how-are-they-used">FAQ 6.6: What is an author_handle.json file and how are they used?</h3>
|
||||
<h3 id="faq-6.6-what-is-an-author_handle.json-file-and-how-are-they-used">FAQ 6.6: What is an <code>author_handle.json</code> file and how are they used?</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p><strong>TL:DR</strong>: The contents of these JSON files contain the best known
|
||||
@@ -2752,7 +3379,7 @@ of the form:</p>
|
||||
<pre><code> author/author_handle.json</code></pre>
|
||||
<p>where <em>author_handle</em> is an author handle. See <a href="#author_handle_faq">FAQ 6.5</a> for more
|
||||
information about an author handles.</p>
|
||||
<h4 id="author_handle.json-json-file-contents">author_handle.json JSON file contents</h4>
|
||||
<h4 id="author_handle.json-json-file-contents"><code>author_handle.json</code> JSON file contents</h4>
|
||||
<p>The syntax of a <code>author_handle.json</code> follows the <em>So-called JSON spec</em>.
|
||||
See <a href="https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/json_index.html#so_called_json_spec">json_index.html</a>
|
||||
for information on the <em>So-called JSON spec</em>.</p>
|
||||
@@ -2989,7 +3616,7 @@ unknown, it should be the <em>JSON null</em> as the <em>JSON value</em> of this
|
||||
For example:</p>
|
||||
<pre><code> "mastodon_url" : null,</code></pre>
|
||||
<p>NOTE: The <em>JSON null</em> is <strong>NOT</strong> enclosed in quotes!</p>
|
||||
<p>See “<a href="faq.html#try_mastodon">FAQ 6.12: What is Mastodon and why does IOCCC use it?</a>” for more
|
||||
<p>See <a href="faq.html#try_mastodon">the FAQ on what is Mastodon and why does IOCCC uses it</a> for more
|
||||
information on Mastodon.</p>
|
||||
<h5 id="github">github</h5>
|
||||
<pre><code> "github" : "@mame",</code></pre>
|
||||
@@ -3315,8 +3942,10 @@ to help ensure that everyone may enjoy the IOCCC.</p>
|
||||
<p>The <a href="https://fosstodon.org/@ioccc">IOCCC uses Mastodon</a> for news updates,
|
||||
announcements, and for various other social media purposes.</p>
|
||||
<p><strong>Please follow the <a href="https://fosstodon.org/@ioccc">IOCCC on Mastodon</a></strong>.</p>
|
||||
<pre><code> The IOCCC no longer uses twitter, or whatever that someone who appears to have poor impulse control
|
||||
(allegedly) calls their platform these days.</code></pre>
|
||||
<blockquote>
|
||||
<p>The IOCCC no longer uses twitter, or whatever that someone who appears to have
|
||||
poor impulse control (allegedly) calls their platform these days.</p>
|
||||
</blockquote>
|
||||
<p>The IOCCC prefers to reside in the <a href="https://fediverse.info">fediverse</a>.</p>
|
||||
<p><strong>For help with Mastodon</strong>:</p>
|
||||
<p>There is <a href="https://mastodon.help">help with Mastodon</a> available for
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
- <a class="normal" href="#faq0_6">0.6 - What is the best way to ask a question about the IOCCC rules, guideline and tools?</a>
|
||||
- <a class="normal" href="#faq0_7">0.7 - What are the IOCCC best practices for using markdown?</a>
|
||||
- <a class="normal" href="#faq0_8">0.8 - How do I report bugs in a `mkiocccentry` tool?</a>
|
||||
|
||||
- <a class="normal" href="#faq0_9">0.9 - What is a `.auth.json` file?</a>
|
||||
- <a class="normal" href="#faq0_10">0.10 - What is a `.info.json` file?</a>
|
||||
|
||||
|
||||
## Section 1 - [History of the IOCCC](#faq1)
|
||||
@@ -23,7 +24,7 @@
|
||||
|
||||
## Section 2 - [IOCCC Judging process](#faq2)
|
||||
- <a class="normal" href="#faq2_0">2.0 - How many entries do the judges receive for a given IOCCC?</a>
|
||||
- <a class="normal" href="#faq2_1">2.1 - What should I put in the remarks.md file of my entry?</a>
|
||||
- <a class="normal" href="#faq2_1">2.1 - What should I put in the remarks.md file of my submission?</a>
|
||||
- <a class="normal" href="#faq2_2">2.2 - Why don't you publish entries that do not win?</a>
|
||||
- <a class="normal" href="#faq2_3">2.3 - How much time does it take to judge the contest?</a>
|
||||
- <a class="normal" href="#faq2_4">2.4 - How many judging rounds do you have?</a>
|
||||
@@ -88,7 +89,7 @@ other inconsistencies with the original entry?](#faq4_3)
|
||||
- <a class="normal" href="#faq6_3">6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?</a>
|
||||
- <a class="normal" href="#faq6_4">6.4 - Why do you sometimes use the first person plural?</a>
|
||||
- <a class="normal" href="#faq6_5">6.5 - What is an `author handle`?</a>
|
||||
- <a class="normal" href="#faq6_6">6.6 - What is an author_handle.json file and how are they used?</a>
|
||||
- <a class="normal" href="#faq6_6">6.6 - What is an `author_handle.json` file and how are they used?</a>
|
||||
- <a class="normal" href="#faq6_7">6.7 - What is an `entry_id`?</a>
|
||||
- <a class="normal" href="#faq6_8">6.8 - What is the purpose of the .top, .year and .path files?</a>
|
||||
- <a class="normal" href="#faq6_9">6.9 - What is the current meaning of the IOCCC terms Author, Entry, and Submission?</a>
|
||||
@@ -363,10 +364,12 @@ of the same theme.
|
||||
|
||||
|
||||
<div id="faq0_2">
|
||||
<div id="makefile">
|
||||
<div id="submission_makefile">
|
||||
### FAQ 0.2: What should I put in my entry's Makefile?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
We recommend starting with the [sample
|
||||
Makefile](https://github.com/ioccc-src/mkiocccentry/blob/master/Makefile.example)
|
||||
@@ -542,10 +545,9 @@ See the [markdown syntax](https://www.markdownguide.org/basic-syntax) guide.
|
||||
See also [CommonMark Spec](https://spec.commonmark.org/current/).
|
||||
|
||||
|
||||
|
||||
<div id="faq0_8">
|
||||
<div id="mkiocccentry_bugs">
|
||||
### FAQ 0.8: - How do I report bugs in a `mkiocccentry` tool?
|
||||
### FAQ 0.8: How do I report bugs in a `mkiocccentry` tool?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -579,6 +581,631 @@ If it does find problems, it will give you a summary of the problems and when
|
||||
you attach the log file we will see those too.
|
||||
|
||||
|
||||
<div id="faq0_9">
|
||||
<div id="auth_json">
|
||||
### FAQ 0.9: What is a `.auth.json` file?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This file is constructed by the `mkiocccentry(1)` **prior to** forming the xz
|
||||
compressed tarball of your submission. The `.auth.json` file contains
|
||||
information about the author or authors of the submission, in JSON format. The
|
||||
JSON `authors` **array** holds the following information about the authors of the
|
||||
submission:
|
||||
|
||||
- `name` (string)
|
||||
* The **name** of this author.
|
||||
|
||||
- `location_code` (string)
|
||||
* The **location code** of this author (an ISO 3166-1 2 character code).
|
||||
See
|
||||
<https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements>
|
||||
for a list of valid codes.
|
||||
|
||||
**NOTE:** in `mkiocccentry` use `XX` if you want your location to be anonymous.
|
||||
|
||||
- `email` (string)
|
||||
* The **email** of this author in the form of `x@y`, or `null` if not provided.
|
||||
|
||||
- `url` (string)
|
||||
* The primary **URL** of this author, or `null` if not provided.
|
||||
|
||||
- `alt_url` (string)
|
||||
* The **alt URL** of this author, or `null` if not provided.
|
||||
|
||||
- `mastodon` (string)
|
||||
* The **[Mastodon](#try_mastodon) handle** of this author in the form of `@user@domain`, or
|
||||
`null` if not provided.
|
||||
|
||||
- `github` (string)
|
||||
* The **[GitHub](https://github.com) account** of this author in the form of `@user`, or `null` if not
|
||||
provided.
|
||||
|
||||
- `affiliation` (string)
|
||||
* This author's **affiliation**, if any, or `null` if not provided.
|
||||
|
||||
**NOTE:** if provided, the length of the **affiliation** **MUST** be within
|
||||
the range of 1 **THROUGH** `MAX_AFFILIATION_LEN` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
**NOTE:** an **affiliation** does **NOT** have any affect on whether you will win or not.
|
||||
|
||||
- `past_winning_author` (boolean)
|
||||
* `true` if this author claims to have won a past IOCCC, `false` if this
|
||||
author has **NOT** won before.
|
||||
|
||||
**NOTE:** this has **NO** effect on whether you will win or not.
|
||||
|
||||
- `default_handle` (boolean)
|
||||
* `true` if this default handle was accepted, `false` if one is provided
|
||||
by this author.
|
||||
|
||||
- `author_handle` (string)
|
||||
* This author's handle (custom or default provided).
|
||||
|
||||
**NOTE:** if you have won before, we **ENCOURAGE** you to use the same handle of
|
||||
your previous winning entries, to help in organising the
|
||||
[authors.html](authors.html) page and the author JSON file (see: [What is an
|
||||
author handle?](#author_handle_faq) and [What is an `author_handle.json`
|
||||
file and how are they used?](#author_json)).
|
||||
|
||||
- `author_number` (number)
|
||||
* This author number in the `authors` array.
|
||||
|
||||
|
||||
### Additional fields in `.auth.json`:
|
||||
|
||||
The file also contains the following details:
|
||||
|
||||
- `no_comment` (string)
|
||||
* We can provide `no comment` about `no_comment` so we ask you to please
|
||||
**NOT** `comment` about our `no comments`. :-)
|
||||
|
||||
- `IOCCC_auth_version` (string)
|
||||
* The current version of the `.auth.json` file.
|
||||
|
||||
**NOTE:** this **MUST** match **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/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `IOCCC_contest` (string)
|
||||
* Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).
|
||||
|
||||
**NOTE:** this **MUST** match **THIS** IOCCC's contest value, defined as
|
||||
`IOCCC_CONTEST` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `IOCCC_year` (number)
|
||||
* The year this contest was run in.
|
||||
|
||||
**NOTE:** sometimes an IOCCC year runs into another year and the contest year
|
||||
might not match when it ends.
|
||||
|
||||
**NOTE:** this **MUST** match **THIS** IOCCC's contest, defined as
|
||||
`IOCCC_YEAR` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `mkiocccentry_version` (string)
|
||||
* The version of `mkiocccentry` that formed this `.auth.json` file.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `chkentry_version` (string)
|
||||
* The version of `chkentry` that was used to validate this `.auth.json`,
|
||||
assuming that it was created by `mkiocccentry`.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `fnamchk_version` (string)
|
||||
* The version of `fnamchk` that `txzchk` uses to validate the filename of
|
||||
the xz compressed tarball.
|
||||
|
||||
**NOTE:** this **MUST** match **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` (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
|
||||
on this, and in particular [Rule 17](next/rules.html#rule17).
|
||||
|
||||
**NOTE:** if the contest ID is **NOT** in this format then `fnamchk` will
|
||||
report it as an **error** and your submission **WILL BE** rejected for
|
||||
violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
|
||||
- `tarball` (string)
|
||||
* The xz compressed tarball filename.
|
||||
|
||||
**NOTE:** this **MUST** match the actual tarball's **filename** in order for
|
||||
this to be valid. If there is a mismatch you stand a great risk of having
|
||||
your submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
Moreover, it is possible that `txzchk` will report a problem through
|
||||
`fnamchk(1)` which also puts you at great risk of violating [Rule
|
||||
17](next/rules.html#rule17). If `txzchk` does not detect this, though, it
|
||||
does not mean it's a bug but rather that the directory in the tarball
|
||||
matches the filename.
|
||||
|
||||
|
||||
|
||||
- `submit_slot` (number)
|
||||
* The submission number.
|
||||
|
||||
**NOTE:** this **MUST** be within the range of 0 **THROUGH**
|
||||
`MAX_SUBMIT_SLOT` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `author_count` (number)
|
||||
* How many authors this submission has.
|
||||
|
||||
**NOTE:** this **MUST** be within the range of 1 **THROUGH**
|
||||
`MAX_AUTHORS` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating the [Rules](next/rules.html)! Moreover, if the
|
||||
`author_count` is inconsitent with how many authors are in the `authors`
|
||||
array your submission **will be** invalid.
|
||||
|
||||
- `test_mode` (boolean)
|
||||
* `true` if the `test` ID was used to form the tarball, else `false`.
|
||||
|
||||
**NOTE:** if `true` then this may **NOT** be submitted to the contest! Please do
|
||||
**NOT** email the [Judges](judges.html) your submission!
|
||||
|
||||
- `formed_timestamp` (number)
|
||||
* Seconds since epoch when `.auth.json`/[.info json](#info_json) was formed (see `gettimeofday(2)`).
|
||||
|
||||
**NOTE:** this **MUST** be greater than or equal to `MIN_TIMESTAMP` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case your submission **WILL BE** rejected.
|
||||
|
||||
- `formed_timestamp_usec` (number)
|
||||
* Microseconds since the tstamp (seconds since epoch when `.auth.json` was
|
||||
formed - see `gettimeofday(2)`) second.
|
||||
|
||||
**NOTE:** this **MUST** be within the range `MIN_FORMED_TIMESTAMP_USEC`
|
||||
**THROUGH** `MAX_FORMED_TIMESTAMP_USEC` and is validated by
|
||||
`test_formed_timestamp_usec()` in
|
||||
[soup/entry_util.c](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case `chkentry(1)` will report an **error** and your
|
||||
submission **WILL BE** rejected!
|
||||
|
||||
- `timestamp_epoch` (string)
|
||||
* `"Thu Jan 01 00:00:00 1970 UTC"` (`gettimeofday(2)` epoch).
|
||||
|
||||
**NOTE:** this **MUST** be `"Thu Jan 01 00:00:00 1970 UTC"` which is `#define`d
|
||||
as `TIMESTAMP_EPOCH` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `min_timestamp` (number)
|
||||
* Minimum number of second since epoch for **this** IOCCC.
|
||||
|
||||
**NOTE:** this **MUST** be >= `MIN_TIMESTAMP` defined in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
This file will be verified with the `chkentry(1)` tool and if there are any
|
||||
problems **it is an error**. If there is an error the tarball will **NOT** be
|
||||
formed by `mkiocccentry`; otherwise the `txzchk(1)` tool will be executed on the
|
||||
tarball.
|
||||
|
||||
This file will **NOT** be looked at unless the submission wins! Nonetheless,
|
||||
`chkentry(1)` **WILL BE** used on the file as part of the judging process.
|
||||
|
||||
At the risk of stating the obvious, if your `.auth.json` file is invalid JSON or
|
||||
is reported invalid by `chkentry` your submission will almost certainly be
|
||||
rejected for violating the [Rules](next/rules.html) and in particular [Rule
|
||||
17](next/rules.html#rule17).
|
||||
|
||||
An obvious example where `chkentry` would fail to validate `.auth.json` is if
|
||||
there is a mismatch of type in the JSON file with what is expected, for
|
||||
instance, if in `.auth.json` the `no_comment` that we chose to not comment on is
|
||||
not a string. Another obvious example is when things are out of range (see above
|
||||
for list). Two more examples would be if a field is missing or if an unknown
|
||||
filed is in the file. In these cases (and any others that must be established as
|
||||
valid by `chkentry`) your submission would be rejected for violating [Rule
|
||||
17](next/rules.html#rule17) and in particular because `chkentry` would not
|
||||
validate the `.auth.json` file.
|
||||
|
||||
|
||||
<div id="faq0_10">
|
||||
<div id="info_json">
|
||||
### FAQ 0.10: What is a `.info.json` file?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
This file is constructed by the `mkiocccentry(1)` **prior to** forming the xz
|
||||
compressed tarball of your submission. The `.info.json` file contains
|
||||
information about the submission, in JSON format. The
|
||||
JSON `manifest` array contains information about the files of the submission,
|
||||
**including** the **mandatory** [.auth.json](#auth_json), [.info.json](#info_json),
|
||||
C source and [remarks](#remarks) files. In particular:
|
||||
|
||||
- `info_JSON` (string)
|
||||
* This `MUST` be `".info.json"`, defined as `INFO_JSON_FILENAME` in
|
||||
[soup/entry_util.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/), and
|
||||
it is the [.info.json](#info_json) file that `mkiocccentry` forms.
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `auth_JSON` (string)
|
||||
* This `MUST` be `".auth.json"`, defined as `AUTH_JSON_FILENAME` in
|
||||
[soup/entry_util.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/), and
|
||||
it is the [.auth.json](#auth_json) file that `mkiocccentry` forms.
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `c_src` (string)
|
||||
* This `MUST` be `"prog.c"`, defined as `PROG_C_FILENAME` in
|
||||
[soup/entry_util.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/), and
|
||||
is your submission source code.
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
**NOTE:** if you provide to `mkiocccentry` a different filename it will be
|
||||
copied to `prog.c`.
|
||||
|
||||
|
||||
- `Makefile` (string)
|
||||
* This `MUST` be `"Makefile"`, defined as `MAKEFILE_FILENAME` in
|
||||
[soup/entry_util.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/), and
|
||||
is your [Makefile](#makefile).
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
**NOTE:** if you provide to `mkiocccentry` a different filename it will be
|
||||
copied to `Makefile`.
|
||||
|
||||
- `remarks` (string)
|
||||
* This `MUST` be `"remarks.md"`, defined as `REMARKS_FILENAME` in
|
||||
[soup/entry_util.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/), and
|
||||
is your [remarks.md](#remarks).
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
**NOTE:** if you provide to `mkiocccentry` a different filename it will be
|
||||
copied to `remarks.md`.
|
||||
|
||||
|
||||
The `manifest` array also optionally has one or more of the field:
|
||||
|
||||
- `extra_file` (string)
|
||||
|
||||
* Any additional file that you need or want to include with your submission.
|
||||
|
||||
**NOTE:** this MUST **NOT** match a mandatory filename (see above list) and
|
||||
`chkentry` will verify this for you; it is **also** an **error** if it the
|
||||
filenames are not unique. In these cases you stand a great risk of having
|
||||
your submission rejected for violating [Rule 17](next/rules.html#rule17)! On
|
||||
the other hand, **ONLY** `mkiocccentry` will verify that the files exist and
|
||||
can be read; `txzchk(1)` will **NOT** do this for you as it only **LISTS**
|
||||
the tarball: it does **NOT** extract it. Even so, the [Judges](judges.html)
|
||||
**WILL** extract the tarball and if a file listed in the manifest does not
|
||||
exist your submission will very likely be rejected for not being as
|
||||
documented!
|
||||
|
||||
|
||||
The file also contains the following details:
|
||||
|
||||
- `no_comment` (string)
|
||||
* We can provide `no comment` about `no_comment` so we ask you to please
|
||||
**NOT** `comment` about our `no comments`. :-)
|
||||
|
||||
- `IOCCC_info_version` (string)
|
||||
* The current version of the `.info.json` files.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `IOCCC_contest` (string)
|
||||
* Which contest number this is (e.g. 1 for 1984, 2 for 1985, 27 for 2020).
|
||||
|
||||
**NOTE:** this **MUST** match **THIS** IOCCC's contest value, defined as
|
||||
`IOCCC_CONTEST` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `IOCCC_year` (number)
|
||||
* The year this contest was run in.
|
||||
|
||||
**NOTE:** sometimes an IOCCC year runs into another year and the contest year
|
||||
might not match when it ends.
|
||||
|
||||
**NOTE:** this **MUST** match **THIS** IOCCC's contest, defined as
|
||||
`IOCCC_YEAR` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `mkiocccentry_version` (string)
|
||||
* The version of `mkiocccentry` that formed this `.auth.json` file.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `iocccsize_version` (string)
|
||||
* The version of `iocccsize` that was used for this `.info.json` file.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `chkentry_version` (string)
|
||||
* The version of `chkentry` that was used to validate this `.info.json`,
|
||||
assuming that it was created by `mkiocccentry`.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `fnamchk_version` (string)
|
||||
* The version of `fnamchk` that `txzchk` uses to validate the filename of
|
||||
the xz compressed tarball.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `txzchk_version` (string)
|
||||
* The version of `txzchk` used to validate the xz compressed tarball.
|
||||
|
||||
**NOTE:** this **MUST** match **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!
|
||||
|
||||
- `IOCCC_contest_id` (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
|
||||
on this, and in particular [Rule 17](next/rules.html#rule17).
|
||||
|
||||
**NOTE:** if the contest ID is **NOT** in this format then `fnamchk` will
|
||||
report it as an **error** and your submission **WILL BE** rejected for
|
||||
violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
|
||||
- `submit_slot` (number)
|
||||
* The submission number.
|
||||
|
||||
**NOTE:** this **MUST** be within the range of 0 **THROUGH**
|
||||
`MAX_SUBMIT_SLOT` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case you stand a great risk of having your submission
|
||||
rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `title` (string)
|
||||
* A short name (length >= 1 **THROUGH** `MAX_TITLE_LEN`, defined in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)) that
|
||||
matches the regexp `[a-z0-9][a-z0-9_+-]*`.
|
||||
|
||||
**NOTE:** if this is **NOT** the case you stand a great risk of having your submission
|
||||
rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `abstract` (string)
|
||||
* A one line summary of your submission, with a length of 1 **THROUGH**
|
||||
`MAX_ABSTRACT_LEN`, defined in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/))
|
||||
|
||||
**NOTE:** if your abstract is 0 in length or > the maximum abstract length you
|
||||
stand a great risk of having your submission rejected for violating [Rule
|
||||
17](next/rules.html#rule17)!
|
||||
|
||||
|
||||
- `tarball` (string)
|
||||
* The xz compressed tarball filename.
|
||||
|
||||
**NOTE:** this **MUST** match the actual tarball's **filename** in order for
|
||||
this to be valid. If there is a mismatch you stand a great risk of having
|
||||
your submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
Moreover, it is possible that `txzchk` will report a problem through
|
||||
`fnamchk(1)` which also puts you at great risk of violating [Rule
|
||||
17](next/rules.html#rule17). If `txzchk` does not detect this, though, it
|
||||
does not mean it's a bug but rather that the directory in the tarball
|
||||
matches the filename.
|
||||
|
||||
|
||||
- `rule_2a_size` (number)
|
||||
* The size calculated of [Rule 2a](next/rules.html#rule2a).
|
||||
|
||||
**NOTE:** if this violates [Rule 2a](next/rules.html#rule2a) you stand a great
|
||||
chance of having your submission rejected for violating the
|
||||
[Rules](next/rules.html)!
|
||||
|
||||
- `rule_2b_size` (number)
|
||||
* The size calculated of [Rule 2b](next/rules.html#rule2b).
|
||||
|
||||
**NOTE:** if this violates [Rule 2b](next/rules.html#rule2b) you stand a great
|
||||
chance of having your submission rejected for violating the
|
||||
[Rules](next/rules.html)!
|
||||
|
||||
- `empty_override` (boolean)
|
||||
* `true` if user override warning of an empty source file, else `false`.
|
||||
|
||||
- `rule_2a_override` (boolean)
|
||||
* `true` if user overrides warning of [Rule 2a](next/rules.html#rule2a)
|
||||
violation, else `false`.
|
||||
|
||||
**NOTE:** if the [Rule 2a](next/rules.html#rule2a) calculated size is **NOT**
|
||||
violated but this is `true` then you stand a good chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `rule_2a_mismatch` (boolean)
|
||||
* `true` if [Rule 2a](next/rules.html#rule2a) calculated size is not the
|
||||
same as the file size.
|
||||
|
||||
- `rule_2b_override` (boolean)
|
||||
* `true` if user overrides warning of [Rule 2b](next/rules.html#rule2b)
|
||||
violation, else `false`.
|
||||
|
||||
**NOTE:** if the [Rule 2b](next/rules.html#rule2b) calculated size is **NOT**
|
||||
violated but this is `true` then you stand a good chance of having your
|
||||
submission rejected for violating [Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `highbit_warning` (boolean)
|
||||
* `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
|
||||
`false`.
|
||||
|
||||
- `trigraph_warning` (boolean)
|
||||
* `true` if `iocccsize` detects an unknown or invalid trigraph in
|
||||
`prog.c`, else `false`.
|
||||
|
||||
- `wordbuf_warning` (boolean)
|
||||
* `true` if `prog.c` triggered a word buffer overflow (see `iocccsize`),
|
||||
else `false`.
|
||||
|
||||
**NOTE:** this does **NOT** mean that your code has been checked for buffer
|
||||
overflows in general.
|
||||
|
||||
- `ungetc_warning` (boolean)
|
||||
* `true` if `prog.c` triggered an `ungetc(3)` error, else `false`.
|
||||
|
||||
- `Makefile_override` (boolean)
|
||||
* `true` if the user overrides any warnings about an incomplete/incorrect
|
||||
[Makefile](#makefile), else `false`.
|
||||
|
||||
**NOTE:** if the [Makefile](#makefile) has no problems and this is `true` then
|
||||
you stand a good chance of having your submission rejected for violating
|
||||
[Rule 17](next/rules.html#rule17)!
|
||||
|
||||
- `first_rule_is_all` (boolean)
|
||||
* `true` if the first rule in the [Makefile](#makefile) is
|
||||
`all`, else `false`.
|
||||
|
||||
- `found_all_rule` (boolean)
|
||||
* `true` if the [Makefile](#makefile) has an `all` rule, else
|
||||
`false`.
|
||||
|
||||
- `found_clean_rule` (boolean)
|
||||
* `true` if the [Makefile](#makefile) has a `clean` rule, else
|
||||
`false`.
|
||||
|
||||
- `found_clobber_rule` (boolean)
|
||||
* `true` if the [Makefile](#makefile) has a `clobber` rule,
|
||||
else `false`.
|
||||
|
||||
- `found_try_rule` (boolean)
|
||||
* `true` if the [Makefile](#makefile) has a `try` rule, else
|
||||
`false`.
|
||||
|
||||
- `test_mode` (boolean)
|
||||
* `true` if the `test` ID was used to form the tarball, else `false`.
|
||||
|
||||
**NOTE:** if this is `true` then this may **NOT** be submitted to the
|
||||
contest! Please do **NOT** email the [Judges](judges.html) your submission!
|
||||
|
||||
- `formed_timestamp` (number)
|
||||
* Seconds since epoch when [.auth.json](#auth_json)/`.info json` was formed (see `gettimeofday(2)`).
|
||||
|
||||
**NOTE:** this **MUST** be greater than or equal to `MIN_TIMESTAMP` (see
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/)). If
|
||||
this is not the case your submission **WILL BE** rejected.
|
||||
|
||||
- `formed_timestamp_usec` (number)
|
||||
* Microseconds since the tstamp (seconds since epoch when `.auth.json` was
|
||||
formed - see `gettimeofday(2)`) second.
|
||||
|
||||
**NOTE:** this **MUST** be within the range `MIN_FORMED_TIMESTAMP_USEC`
|
||||
**THROUGH** `MAX_FORMED_TIMESTAMP_USEC` and is validated by
|
||||
`test_formed_timestamp_usec()` in
|
||||
[soup/entry_util.c](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/entry_util.c)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case `chkentry(1)` will report an **error** and your
|
||||
submission **WILL BE** rejected!
|
||||
|
||||
- `timestamp_epoch` (string)
|
||||
* `"Thu Jan 01 00:00:00 1970 UTC"` (`gettimeofday(2)` epoch).
|
||||
|
||||
**NOTE:** this **MUST** be `"Thu Jan 01 00:00:00 1970 UTC"` which is `#define`d
|
||||
as `TIMESTAMP_EPOCH` in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
- `min_timestamp` (number)
|
||||
* Minimum number of second since epoch for **this** IOCCC.
|
||||
|
||||
**NOTE:** this **MUST** be >= `MIN_TIMESTAMP` defined in
|
||||
[soup/limit_ioccc.h](https://github.com/ioccc-src/mkiocccentry/blob/master/soup/limit_ioccc.h)
|
||||
in the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry/). If
|
||||
this is not the case your submission **WILL BE** rejected!
|
||||
|
||||
This file will be verified with the `chkentry(1)` tool and if there are any
|
||||
problems **it is an error**. If there is an error the tarball will **NOT** be
|
||||
formed by `mkiocccentry`; otherwise the `txzchk(1)` tool will be executed on the
|
||||
tarball.
|
||||
|
||||
The [Judges](judges.html) **WILL** use `chkentry(1)` on this file during the
|
||||
judging process and if it does not pass your submission **WILL BE** rejected.
|
||||
|
||||
An obvious example where `chkentry` would fail to validate `.info.json` is if
|
||||
there is a mismatch of type in the JSON file with what is expected, for
|
||||
instance, if in `.info.json` the `no_comment` that we chose to not comment on is
|
||||
not a string. Another obvious example is when things are out of range (see above
|
||||
for list). Two more examples would be if a field is missing or if an unknown
|
||||
filed is in the file. In these cases (and any others that must be established as
|
||||
valid by `chkentry`) your submission would be rejected for violating [Rule
|
||||
17](next/rules.html#rule17) and in particular because `chkentry` would not
|
||||
validate the `.info.json` file.
|
||||
|
||||
|
||||
<div id="faq1">
|
||||
## Section 1: History of the IOCCC
|
||||
</div>
|
||||
@@ -952,7 +1579,8 @@ By tradition, we do not say.
|
||||
|
||||
<div id="faq2_1">
|
||||
<div id="remarks_md">
|
||||
### FAQ 2.1: What should I put in the remarks.md file of my entry?
|
||||
<div id="remarks">
|
||||
### FAQ 2.1: What should I put in the remarks.md file of my submission?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3385,7 +4013,7 @@ Anonymous `author_handle`'s match this regexp:
|
||||
|
||||
<div id="faq6_6">
|
||||
<div id="author_json">
|
||||
### FAQ 6.6: What is an author_handle.json file and how are they used?
|
||||
### FAQ 6.6: What is an `author_handle.json` file and how are they used?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3414,7 +4042,7 @@ of the form:
|
||||
where _author_handle_ is an author handle. See [FAQ 6.5](#author_handle_faq) for more
|
||||
information about an author handles.
|
||||
|
||||
#### author_handle.json JSON file contents
|
||||
#### `author_handle.json` JSON file contents
|
||||
|
||||
The syntax of a `author_handle.json` follows the _So-called JSON spec_.
|
||||
See [json_index.html](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/json_index.html#so_called_json_spec)
|
||||
@@ -3825,7 +4453,7 @@ For example:
|
||||
|
||||
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||
|
||||
See "[FAQ 6.12: What is Mastodon and why does IOCCC use it?](faq.html#try_mastodon)" for more
|
||||
See [the FAQ on what is Mastodon and why does IOCCC uses it](faq.html#try_mastodon) for more
|
||||
information on Mastodon.
|
||||
|
||||
|
||||
@@ -4328,10 +4956,8 @@ announcements, and for various other social media purposes.
|
||||
|
||||
**Please follow the [IOCCC on Mastodon](https://fosstodon.org/@ioccc)**.
|
||||
|
||||
```
|
||||
The IOCCC no longer uses twitter, or whatever that someone who appears to have poor impulse control
|
||||
(allegedly) calls their platform these days.
|
||||
```
|
||||
> The IOCCC no longer uses twitter, or whatever that someone who appears to have
|
||||
poor impulse control (allegedly) calls their platform these days.
|
||||
|
||||
The IOCCC prefers to reside in the [fediverse](https://fediverse.info).
|
||||
|
||||
|
||||
Reference in new issue
Block a user