From edf8c1bdcc6bfcd741503d2647deed998d0e4db4 Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Mon, 23 Dec 2024 18:17:24 -0800 Subject: [PATCH] add next/register.html page, improve bin/gen-status.sh Added a new `next/register.html` that is required by the mailing list server. The `next/register.md` still contains a big **XXX - put more data here - XXX** as a placeholder for information about the mailing list registration process. Improved the status text for `faq.html`, `next/index.html` and `status.html` via `faq.md`, `next/README.md` and `status.md`. We also removed the excessive links to IOCCC and instead use the term "contest" where applicable. IMPORTANT CHANGE: Registration be available when the contest is both pending and open. We made a number of changes to `faq.md`, `next/README.md` in an attempt to reflect the above. Changed `bin/gen-status.sh` VERSION from "1.7 2024-09-23" to "1.8 2024-11-23". Changed `bin/gen-top-html.sh` VERSION from "1.4.9 2024-08-11" to "1.4.10 2024-11-23". Perform `make www` and `make gen_status` to perform the above and test under macOS. TODO: Change **XXX - put more data here - XXX** in `next/register.md` for information about how to join the mailing list. --- Makefile | 3 +- bin/gen-status.sh | 95 +++++--- bin/gen-top-html.sh | 3 +- bin/md2html.cfg | 16 ++ faq.html | 37 +-- faq.md | 43 ++-- next/README.md | 64 +++++- next/index.html | 56 ++++- next/register.html | 549 ++++++++++++++++++++++++++++++++++++++++++++ next/register.md | 71 ++++++ status.html | 77 +++++-- status.json | 4 +- status.md | 82 +++++-- 13 files changed, 972 insertions(+), 128 deletions(-) create mode 100644 next/register.html create mode 100644 next/register.md diff --git a/Makefile b/Makefile index 5b7265075..29ccc8cf8 100644 --- a/Makefile +++ b/Makefile @@ -681,11 +681,12 @@ faq: ${GEN_TOP_HTML} faq.md @echo "Perhaps the FAQ might help!" @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' -gen_next: ${GEN_TOP_HTML} next/README.md next/guidelines.md next/rules.md +gen_next: ${GEN_TOP_HTML} next/README.md next/guidelines.md next/rules.md next/register.md @echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-=' ${GEN_TOP_HTML} -v 1 next/README ${GEN_TOP_HTML} -v 1 next/guidelines ${GEN_TOP_HTML} -v 1 next/rules + ${GEN_TOP_HTML} -v 1 next/register @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' markdown: ${GEN_TOP_HTML} markdown.md diff --git a/bin/gen-status.sh b/bin/gen-status.sh index 548d57f0d..baf51bfa3 100755 --- a/bin/gen-status.sh +++ b/bin/gen-status.sh @@ -86,7 +86,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.7 2024-09-23" +export VERSION="1.8 2024-11-23" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -824,37 +824,76 @@ if [[ $V_FLAG -ge 3 ]]; then fi -# obtain contest_status if CONTEST_STATUS was not set in the arg +# obtain the current contest status +# +export CURRENT_CONTEST_STATUS="" +PATTERN='$..contest_status' +CURRENT_CONTEST_STATUS=$("$JVAL_WRAPPER" -b -q "$STATUS_JSON" "$PATTERN") +status="$?" +if [[ $status -ne 0 || -z $CURRENT_CONTEST_STATUS ]]; then + echo "$0: ERROR: cannot determine current contest status from status.json: $STATUS_JSON" 1>&2 + exit 1 +fi +if [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: Contest status from $STATUS_JSON: $CURRENT_CONTEST_STATUS" 1>&2 +fi + +# validate and normalize the current contest status from status.json +# +case "$CURRENT_CONTEST_STATUS" in +pending) CURRENT_CONTEST_STATUS="pending" + ;; +open) CURRENT_CONTEST_STATUS="open" + ;; +judging) CURRENT_CONTEST_STATUS="judging" + ;; +closed) CURRENT_CONTEST_STATUS="closed" + ;; +*) echo "$0: ERROR: unexpected status from $status.json: $CURRENT_CONTEST_STATUS" 1>&2 + echo 1>&2 + echo "$USAGE" 1>&2 + exit 1 + ;; +esac +if [[ $V_FLAG -ge 1 ]]; then + echo "$0: debug[1]: Current contest status: $CURRENT_CONTEST_STATUS" 1>&2 +fi + + +# set the contest status if CONTEST_STATUS was not set in the arg # if [[ -z $CONTEST_STATUS ]]; then + CONTEST_STATUS="$CURRENT_CONTEST_STATUS" +fi - # obtain the contest_status from status.json - # - PATTERN='$..contest_status' - CONTEST_STATUS=$("$JVAL_WRAPPER" -b -q "$STATUS_JSON" "$PATTERN") - status="$?" - if [[ $status -ne 0 || -z $CONTEST_STATUS ]]; then - echo "$0: ERROR: cannot determine contest_status from status.json: $STATUS_JSON" 1>&2 - exit 1 + +# validate and normalize the contest status +# +case "$CONTEST_STATUS" in +pending) CONTEST_STATUS="pending" + ;; +open) CONTEST_STATUS="open" + ;; +judging) CONTEST_STATUS="judging" + ;; +closed) CONTEST_STATUS="closed" + ;; +*) echo "$0: ERROR: unknown new contest status: $CONTEST_STATUS" 1>&2 + echo 1>&2 + echo "$USAGE" 1>&2 + exit 1 + ;; +esac + + +# report on any potential contest status change +# +if [[ $V_FLAG -ge 1 ]]; then + if [[ $CURRENT_CONTEST_STATUS != "$CONTEST_STATUS" ]]; then + echo "$0: debug[1]: Contest status will change from: $CURRENT_CONTEST_STATUS to: $CONTEST_STATUS" 1>&2 + else + echo "$0: debug[1]: Contest status will not change from: $CONTEST_STATUS" 1>&2 fi - - # validate and normalize the contest_status from status.json - # - case "$CONTEST_STATUS" in - pending) CONTEST_STATUS="pending" - ;; - open) CONTEST_STATUS="open" - ;; - judging) CONTEST_STATUS="judging" - ;; - closed) CONTEST_STATUS="closed" - ;; - *) echo "$0: ERROR: unexpected status from $status.json: $CONTEST_STATUS" 1>&2 - echo 1>&2 - echo "$USAGE" 1>&2 - exit 1 - ;; - esac fi diff --git a/bin/gen-top-html.sh b/bin/gen-top-html.sh index ef6668ab7..1d22b97af 100755 --- a/bin/gen-top-html.sh +++ b/bin/gen-top-html.sh @@ -106,7 +106,7 @@ shopt -s globstar # enable ** to match all files and zero or more directories an # set variables referenced in the usage message # -export VERSION="1.4.9 2024-08-11" +export VERSION="1.4.10 2024-11-23" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -148,6 +148,7 @@ TOP_MD_SET+=("markdown") TOP_MD_SET+=("news") TOP_MD_SET+=("next/README") TOP_MD_SET+=("next/guidelines") +TOP_MD_SET+=("next/register") TOP_MD_SET+=("next/rules") TOP_MD_SET+=("nojs-menu") TOP_MD_SET+=("status") diff --git a/bin/md2html.cfg b/bin/md2html.cfg index faa7f0d80..6fec46d14 100644 --- a/bin/md2html.cfg +++ b/bin/md2html.cfg @@ -357,6 +357,22 @@ next/README.md -D ../ +next/register.md + -H + navbar=empty + -o + bin/subst.default.sh + -s + TITLE=The International Obfuscated C Code Contest + -s + DESCRIPTION=How to register for the IOCCC + -s + KEYWORDS=IOCCC, register, registration + -s + HEADER_2=How to register for the IOCCC + -D + ../ + next/rules.md -H navbar=empty diff --git a/faq.html b/faq.html index afc43bbd7..36d017cee 100644 --- a/faq.html +++ b/faq.html @@ -581,10 +581,11 @@

To submit your code to the IOCCC, you MUST follow these steps:

-

0. Verify that the IOCCC is open for submissions

-

Check the current status of the IOCCC see of the IOCCC is open.

-

You may only register for the IOCCC when the IOCCC is OPEN.

-

You may only submit your entries to the IOCCC when the IOCCC is OPEN.

+

0. Verify that the IOCCC is pending or open for submissions

+

First, check the current status of the IOCCC see of the contest. +You may only register for the IOCCC when the IOCCC is either pending +or open.

+

You may only submit your entries to the IOCCC when the IOCCC is open.

See also the IOCCC news for more information.

1. Read the latest IOCCC rules and review the IOCCC guidelines

Please pay close attention to the official IOCCC rules.

@@ -592,15 +593,17 @@ official IOCCC guidelines as they contain important suggestions, useful hints, and IOCCC humor. :-)

2. Register for the IOCCC

-

The IOCCC registration procedure is still being designed. - As such, we do not yet have instructions on how to -use the IOCCC registration procedure. Once IOCCC -registration procedure is ready, we will update this section -with the proper instructions. Watch the IOCCC news -for an announcement about the IOCCC registration procedure.

-

Once you have been registered, you will receive an email message for how to -prepare your entries for submission, and how to upload the compressed tarballs -to our submission portal.

+

IMPORTANT: You may only register for the IOCCC when the IOCCC is either pending +or open. See current status of the IOCCC for details.

+

If the contest is pending or open, +then follow the directions on How to register for the IOCCC.

+

For those who are registered for the IOCCC, +once the contest is open you will receive your own Email message +containing your very own Username and Initial Password until the contest is open. +You will need these to be able to upload your submission to the +IOCCC submit server.

+

Please check the current status of the IOCCC and +visit the How to register for the IOCCC for detailed instructions.

3. Obtain and compile the latest mkiocccentry toolkit

You MUST use the most recent version of the mkiocccentry toolkit. To help you, please see the @@ -650,7 +653,15 @@ your entry and then re-run the mkiocccentry tool.

If you choose to risk violating rules, be sure and explain your reason for doing so in your remarks.md file.

See also Rule 17!

+

5. Upload your entry to the IOCCC submit server

+
+

IMPORTANT NOTE: The IOCCC submit server is located at +https://submit.ioccc.org and ready for submissions +ONLY WHEN THE CONTEST IS open. See current status of the IOCCC +for details.

+

IMPORTANT NOTE: The contest is closed, the +https://submit.ioccc.org may be offline.

The following steps should be taken, in order to upload your mkiocccentry xz compressed tarball, to change the file (if you need to upload a different file or you have updated the submission), and to check the status of it after the diff --git a/faq.md b/faq.md index 5c09e5e49..df66de263 100644 --- a/faq.md +++ b/faq.md @@ -163,13 +163,13 @@ Jump to: [top](#) To submit your code to the IOCCC, you **MUST** follow these steps: -#### 0. Verify that the IOCCC is open for submissions +#### 0. Verify that the IOCCC is pending or open for submissions -Check the [current status of the IOCCC](status.html) see of the IOCCC is open. +First, check the [current status of the IOCCC](status.html) see of the contest. +You may **only register for the IOCCC when the IOCCC is either [pending](status.html#pending) +or [open](status.html#open)**. -You may **only register for the IOCCC when the IOCCC is OPEN**. - -You may **only submit your entries to the IOCCC when the IOCCC is OPEN**. +You may **only submit your entries to the IOCCC when the IOCCC is [open](status.html#open)**. See also the [IOCCC news](news.html#news) for more information. @@ -185,16 +185,20 @@ suggestions, useful hints, and IOCCC humor. :-) #### 2. Register for the IOCCC -The **IOCCC registration procedure** is still being designed. - As such, we do not yet have instructions on how to -use the **IOCCC registration procedure**. Once **IOCCC -registration procedure** is ready, we will update this section -with the proper instructions. Watch the [IOCCC news](news.html) -for an announcement about the **IOCCC registration procedure**. +**IMPORTANT**: You may **only register for the IOCCC when the IOCCC is either [pending](status.html#pending) +or [open](status.html#open)**. See [current status of the IOCCC](status.html) for details. -Once you have been registered, you will receive an email message for how to -prepare your entries for submission, and how to upload the compressed tarballs -to our submission portal. +If the contest is [pending](status.html#pending) or [open](status.html#open), +then follow the directions on **[How to register for the IOCCC](next/register.html)**. + +For those who are [registered for the IOCCC](next/register.html), +once the contest is [open](status.html#open) you will receive your own Email message +containing your very own **Username and Initial Password until the contest is [open](#open)**. +You will need these to be able to [upload your submission](faq.html#upload) to the +[IOCCC submit server](https:/submit.ioccc.org). + +Please check the [current status of the IOCCC](status.html) and +visit the [How to register for the IOCCC](next/register.html) for detailed instructions. #### 3. Obtain and compile the latest mkiocccentry toolkit @@ -206,6 +210,7 @@ and the FAQ on "[compiling mkiocccentry toolkit](#compiling_mkiocccentry)", for more details. + #### 4. Run the mkiocccentry tool to form your submission tarball For more details on `mkiocccentry`, what it is, how to obtain it and how to use @@ -269,7 +274,17 @@ for doing so in your `remarks.md` file. See also [Rule 17](next/rules.html#rule17)! +

#### 5. Upload your entry to the IOCCC submit server +
+ +**IMPORTANT NOTE**: The IOCCC [submit server](https://submit.ioccc.org) is located at +[https://submit.ioccc.org](https://submit.ioccc.org) and ready for submissions +**ONLY WHEN THE CONTEST IS [open](status.html#open)**. See [current status of the IOCCC](status.html) +for details. + +**IMPORTANT NOTE**: The contest is [closed](status.html#closed), the +[https://submit.ioccc.org](https://submit.ioccc.org) may be offline. The following steps should be taken, in order to upload your `mkiocccentry` xz compressed tarball, to change the file (if you need to upload a different file diff --git a/next/README.md b/next/README.md index 51a1656d7..ee4183fb1 100644 --- a/next/README.md +++ b/next/README.md @@ -1,6 +1,6 @@ # Rules and Guidelines -**IMPORTANT**: Did you read the **Important disclaimers about scope** +**IMPORTANT**: Did you read the **Important disclaimers about contest status** below, and did you check the current **[IOCCC status](../status.html)**? * [IOCCC rules](rules.html) @@ -12,16 +12,17 @@ especially when the [rules](rules.html) and [guidelines](guidelines.html) are official, to be sure you are **using an up to date official mkiocccentry tool set**. -# Important disclaimers about scope +# Important disclaimers about contest status ### When the IOCCC status is _closed_ -When the IOCCC status is _closed_, the [rules](rules.html) and [guidelines](guidelines.html) +While the IOCCC status is **[CLOSED](../status.html#closed)**, +the [rules](rules.html) and [guidelines](guidelines.html) are **OUT OF DATE**. -They are a **very tentative proposal** for the next IOCCC -that is **VERY LIKELY** to be updated before the next IOCCC. +A **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next contest becomes [pending](../status.html#pending). They are are provided as a **tentative** hint **at what might be used** for the next IOCCC. @@ -34,11 +35,11 @@ Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the ### When the IOCCC status is _pending_ -When the IOCCC status is **_pending_**, the [rules](rules.html) and [guidelines](guidelines.html) are -**tentative**. +While the IOCCC status is **[PENDING](../status.html#pending)**, +the [rules](rules.html) and [guidelines](guidelines.html) are **tentative**. One might think of them as a **beta** release for the IOCCC -that is about to open. +that is about to [open](../status.html#open). **IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html) are subject to change by the [IOCCC judges](../judges.html) at any time. @@ -46,10 +47,36 @@ See both the [IOCCC news](../news.html) and the [IOCCC Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the [IOCCC judges](../judges.html) **mention changes** there. +You may [register for the IOCCC](register.html) while the contest is [pending](../status.html#pending), +however you will **NOT** receive your own Email message containing your very own +**Username and Initial Password until the contest is [open](../status.html#open)**. You will need these +to be able to [upload your submission](../faq.html#upload) to the [IOCCC submit server](https:/submit.ioccc.org). + +Once contest moves from [pending](../status.html#pending") to [open](../status.html#open) an announcement +Email will be sent out to the mailing list of those have successfully registered for the IOCCC. +In addition, an announcement will be made to the [IOCCC news](../news.html) in case you miss +that announcement Email. + +While you are waiting for the contest to [open](../status.html#open), we **highly recommend** +that you review the [IOCCC rules](rules.html), [IOCCC guidelines](guidelines.html), +and [IOCCC mkiocccentry tools](https://github.com/ioccc-src/mkiocccentry). + +Should you have any comments, suggestions, and concerns about the above, and **while you waiting** +for the contest to [open](../status.html#open) please see the +FAQ on "[comment or make a suggestion on IOCCC rules, guidelines and tools](../faq.html#feedback)" +as well as the +FAQ on "[best way to ask a question about the IOCCC rules, guideline and tools](../faq.html#questions)" +for how. + +See also the +FAQ on "[how to submit](../faq.html#submit)" +for more information on the submission process when the IOCCC [reopens](../status.html#open). + ### When the IOCCC status is _open_ -When the IOCCC status is **_open_**, the [rules](rules.html) and [guidelines](guidelines.html) are **OFFICIAL**. +While the IOCCC status is **[OPEN](../status.html#open)**, +the [rules](rules.html) and [guidelines](guidelines.html) are **OFFICIAL**. Unless some significant problem turns up (such as a need to delay in when the IOCCC will close, or some major bug is discovered) they @@ -59,11 +86,26 @@ will remain **OFFICIAL** for this IOCCC. Mastodon](https://fosstodon.org/@ioccc) feed for the latest news about any **changes**. +The [IOCCC rules](rules.html), [IOCCC guidelines](guidelines.html), +and [IOCCC mkiocccentry tools](https://github.com/ioccc-src/mkiocccentry) +are now official. Should you have any questions about these, please see the +FAQ on "[best way to ask a question about the IOCCC rules, guideline and tools](../faq.html#questions)" +for how to ask them. + +Be sure to review the official [IOCCC rules](rules.html), [IOCCC guidelines](guidelines.html), +for any changes, as well as updating your [IOCCC mkiocccentry tools](https://github.com/ioccc-src/mkiocccentry) +as changes to them may have been made while the contest was "**[pending](../status.html#pending)**. + +See also the +FAQ on "[how to submit](../faq.html#submit)" +for more information on the submission process when the IOCCC [reopens](../status.html#open). + ### When the IOCCC status is _judging_ -When the IOCCC status is **_judging_**, the [rules](rules.html) and [guidelines](guidelines.html) are -for the current IOCCC **that is _no longer open_ for new submissions**. +While the IOCCC status is **[JUDGING](../status.html#pending]**, +the [rules](rules.html) and [guidelines](guidelines.html) are +for the when the was previously **[OPEN](../status.html#open)** for new submissions. See the [IOCCC news](../news.html) as well as the [IOCCC Mastodon](https://fosstodon.org/@ioccc) feed for updates diff --git a/next/index.html b/next/index.html index cb9935f31..5d52422d5 100644 --- a/next/index.html +++ b/next/index.html @@ -425,7 +425,7 @@

Rules and Guidelines

-

IMPORTANT: Did you read the Important disclaimers about scope +

IMPORTANT: Did you read the Important disclaimers about contest status below, and did you check the current IOCCC status?