From 4a01bfc58ac9b509be17fc0d9beef080db1d2fd3 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Thu, 23 Jan 2025 07:26:35 -0800 Subject: [PATCH 1/2] Clarify clobber rule in guidelines wrt rule 17 --- next/guidelines.html | 47 ++++++++++++++++++++++++++++++++++----- next/guidelines.md | 52 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 89 insertions(+), 10 deletions(-) diff --git a/next/guidelines.html b/next/guidelines.html index 1993a487b..97a1d4174 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -461,7 +461,7 @@ writing by contacting the judges.

-These IOCCC guidelines are version 28.32 2025-01-22. +These IOCCC guidelines are version 28.33 2025-01-23.

The markdown form of these guidelines @@ -1332,9 +1332,46 @@ Again, please note that in macOS, /usr/bin/gcc is actually cl

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. +

+

+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. +

+

+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. +

+

+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! +

+

+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. +

+

+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. +

+

+Do NOT rely on these tools for any other rule, either.

Jump to: top

@@ -1355,7 +1392,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.

We LIKE submissions that use an edited version of the diff --git a/next/guidelines.md b/next/guidelines.md index 950424a23..277436f17 100644 --- a/next/guidelines.md +++ b/next/guidelines.md @@ -49,7 +49,7 @@ Jump to: [top](#)

-These [IOCCC guidelines](guidelines.html) are version **28.32 2025-01-22**. +These [IOCCC guidelines](guidelines.html) are version **28.33 2025-01-23**.

@@ -1155,11 +1155,53 @@ Again, please note that in macOS, `/usr/bin/gcc` is actually `clang`!

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.

+

+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. +

+ +

+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. +

+ +

+ 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)! +

+ +

+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. +

+ +

+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. +

+ +

+Do **NOT** rely on these tools for any other rule, either. +

Jump to: [top](#) @@ -1183,7 +1225,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.

From 065bd090cdde0427d7b45a0a23e7823cd2fc8fb4 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Thu, 23 Jan 2025 07:36:32 -0800 Subject: [PATCH 2/2] More clarification in guidelines wrt rule 17 --- next/guidelines.html | 10 +++++++++- next/guidelines.md | 20 +++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/next/guidelines.html b/next/guidelines.html index 97a1d4174..dbb8d1a33 100644 --- a/next/guidelines.html +++ b/next/guidelines.html @@ -1371,7 +1371,15 @@ it will remove files that are not under git(1) control! Instead, se clobber rule in the example Makefile to see how to manage this.

-Do NOT rely on these tools for any other rule, either. +In other words, for make clobber, do something like: +

+
    clobber:
+            ${RM} -f foo bar baz
+

and NOT something like this:

+
    clobber:
+            -git clean -f
+

+And do NOT use git for any other tool either.

Jump to: top

diff --git a/next/guidelines.md b/next/guidelines.md index 277436f17..be5ace028 100644 --- a/next/guidelines.md +++ b/next/guidelines.md @@ -1200,9 +1200,27 @@ it will remove files that are not under `git(1)` control! Instead, see the

-Do **NOT** rely on these tools for any other rule, either. +In other words, for `make clobber`, do something like:

+ +``` + clobber: + ${RM} -f foo bar baz +``` + +and **NOT** something like this: + +``` + clobber: + -git clean -f +``` + +

+And do **NOT** use `git` for any other tool either. +

+ + Jump to: [top](#)