Skip to content

Commit

Permalink
Merge pull request #66 from xexyl/rule17-clobber
Browse files Browse the repository at this point in the history
lcn2 authored Jan 23, 2025
2 parents 4c49df9 + 065bd09 commit b2bc881
Showing 2 changed files with 115 additions and 10 deletions.
55 changes: 50 additions & 5 deletions next/guidelines.html
Original file line number Diff line number Diff line change
@@ -461,7 +461,7 @@ <h1 id="ioccc-guidelines-version">IOCCC Guidelines version</h1>
</div>
</div>
<p class="leftbar">
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.32 2025-01-22</strong>.
These <a href="guidelines.html">IOCCC guidelines</a> are version <strong>28.33 2025-01-23</strong>.
</p>
<p class="leftbar">
The <a href="guidelines.md" download="guidelines.md">markdown form of these guidelines</a>
@@ -1332,9 +1332,54 @@ <h2 id="the-clobber-rule">The clobber rule</h2>
</div>
<p class="leftbar">
When <code>make clobber</code> is invoked, we request that submissions be restored
to its original submission state. For example, any temporary files
created during the build process, or during execution should be
removed by the <code>clobber</code> rule.
to their original submission state. For example, any temporary files
(<strong>including</strong> the compiled program(s)) created during the build process, or
during execution should be removed by the <code>clobber</code> rule. In other words, the
only things that should be in the directory after running <code>make clobber</code> is what
is in your submission tarball itself.
</p>
<p class="leftbar">
While people are free to mange their submission under <code>git(1)</code> or even use a
GitHub repo, dot-files and dot-directories such as <code>.git</code> are not allowed in a
submission.
</p>
<p class="leftbar">
The <code>mkiocccentry(1)</code> tool will ignore dot-files and dot-directories (such as
<code>.vimrc</code>, <code>.bashrc</code>, <code>.git</code> and <code>.github</code>) and not put them in the submission’s
compressed tarball. So while you may use such files and
directories to help develop your submission, they won’t be included when you run
the <code>mkiocccentry(1)</code> tool.
</p>
<p class="leftbar">
Even if you did manage to get it into the tarball somehow, <code>txzchk(1)</code> will
flag it as an error. When the judges run <code>txzchk(1)</code> on the uploaded submission
compressed tarball, if anything is wrong, for instance if you “sneak in” any
dot files or dot directories, the submission <strong>WILL BE REJECTED</strong> for violating
<a href="rules.html#rule17">Rule 17</a>!
</p>
<p class="leftbar">
You may use whatever tools you need to develop your submission, including the
use of <code>git(1)</code> or <code>gh(1)</code>, just be sure that your submission code and your
submission Makefile don’t depend on such tools.
</p>
<p class="leftbar">
If this is not clear, please do <strong>NOT</strong> use these tools to help with the
<code>clobber</code> rule! For instance, do <strong>NOT</strong> use <code>git clean</code>! Not only does this
depend on the user having <code>git(1)</code> but it also does not account for the
submission tarballs. Even worse is when someone does have it in a <code>git(1)</code> repo
it will remove files that are not under <code>git(1)</code> control! Instead, see the
<code>clobber</code> rule in the example Makefile to see how to manage this.
</p>
<p class="leftbar">
In other words, for <code>make clobber</code>, do something like:
</p>
<pre><code> clobber:
${RM} -f foo bar baz</code></pre>
<p>and <strong>NOT</strong> something like this:</p>
<pre><code> clobber:
-git clean -f</code></pre>
<p class="leftbar">
And do <strong>NOT</strong> use <code>git</code> for any other tool either.
</p>
<p>Jump to: <a href="#">top</a></p>
<div id="likes">
@@ -1355,7 +1400,7 @@ <h1 id="our-likes-and-dislikes">OUR LIKES AND DISLIKES:</h1>
the idea of spoilers. In other words, unless your submission does some kind of
encryption (or something with encryption), you should not encrypt your remarks,
say with rot13 or anything else, and it is also appreciated if your remarks have
some education value, though these are not required.
some education value. And although these are not required, they are a nice bonus.
</p>
<p class="leftbar">
We <strong>LIKE</strong> submissions that use an edited version of the
70 changes: 65 additions & 5 deletions next/guidelines.md
Original file line number Diff line number Diff line change
@@ -49,7 +49,7 @@ Jump to: [top](#)
</div>

<p class="leftbar">
These [IOCCC guidelines](guidelines.html) are version **28.32 2025-01-22**.
These [IOCCC guidelines](guidelines.html) are version **28.33 2025-01-23**.
</p>

<p class="leftbar">
@@ -1155,9 +1155,69 @@ Again, please note that in macOS, `/usr/bin/gcc` is actually `clang`!

<p class="leftbar">
When `make clobber` is invoked, we request that submissions be restored
to its original submission state. For example, any temporary files
created during the build process, or during execution should be
removed by the `clobber` rule.
to their original submission state. For example, any temporary files
(**including** the compiled program(s)) created during the build process, or
during execution should be removed by the `clobber` rule. In other words, the
only things that should be in the directory after running `make clobber` is what
is in your submission tarball itself.
</p>

<p class="leftbar">
While people are free to mange their submission under `git(1)` or even use a
GitHub repo, dot-files and dot-directories such as `.git` are not allowed in a
submission.
</p>

<p class="leftbar">
The `mkiocccentry(1)` tool will ignore dot-files and dot-directories (such as
`.vimrc`, `.bashrc`, `.git` and `.github`) and not put them in the submission's
compressed tarball. So while you may use such files and
directories to help develop your submission, they won't be included when you run
the `mkiocccentry(1)` tool.
</p>

<p class="leftbar">
Even if you did manage to get it into the tarball somehow, `txzchk(1)` will
flag it as an error. When the judges run `txzchk(1)` on the uploaded submission
compressed tarball, if anything is wrong, for instance if you "sneak in" any
dot files or dot directories, the submission **WILL BE REJECTED** for violating
[Rule 17](rules.html#rule17)!
</p>

<p class="leftbar">
You may use whatever tools you need to develop your submission, including the
use of `git(1)` or `gh(1)`, just be sure that your submission code and your
submission Makefile don't depend on such tools.
</p>

<p class="leftbar">
If this is not clear, please do **NOT** use these tools to help with the
`clobber` rule! For instance, do **NOT** use `git clean`! Not only does this
depend on the user having `git(1)` but it also does not account for the
submission tarballs. Even worse is when someone does have it in a `git(1)` repo
it will remove files that are not under `git(1)` control! Instead, see the
`clobber` rule in the example Makefile to see how to manage this.
</p>

<p class="leftbar">
In other words, for `make clobber`, do something like:
</p>


``` <!---makefile-->
clobber:
${RM} -f foo bar baz
```

and **NOT** something like this:

``` <!---makefile-->
clobber:
-git clean -f
```

<p class="leftbar">
And do **NOT** use `git` for any other tool either.
</p>


@@ -1183,7 +1243,7 @@ that your submission should not be obfuscated but the IOCCC has moved away from
the idea of spoilers. In other words, unless your submission does some kind of
encryption (or something with encryption), you should not encrypt your remarks,
say with rot13 or anything else, and it is also appreciated if your remarks have
some education value, though these are not required.
some education value. And although these are not required, they are a nice bonus.
</p>


0 comments on commit b2bc881

Please sign in to comment.