Skip to content
This repository was archived by the owner on Dec 30, 2024. It is now read-only.
This repository was archived by the owner on Dec 30, 2024. It is now read-only.

Enhancement: Perform the Great Fork Merge #2239

@lcn2

Description

@lcn2

The Great Fork Merge

The Great Fork Merge will occur when the multi-thousand commits that the temp-test-ioccc repo is ahead of the Official IOCCC winner repo are bright back to main Official www.ioccc.org web site.

TODOs

In order to perform the Great Fork Merge, the following tasks need to be completed:

  • Revise status.json format.

  • Write a new tool to generate the new top level status.html from status.json

NOTE: This may require a rewrite of the bin/ioccc-status.sh tool as well change the format of the from status.json file.

  • Fix name www under RHEL 9

Port the bin tools tools to run under RHEL 9 version of Linux. With this port, the IOCCC judges should be able to use these tools on a wide enough variety of systems for their purposes.

See also comment 1993767060.

See comment 9192931.

  • Verify that the top level README.md contains suitable content for a GitHub repo README file.

The exception, of course, is the initial text down to the XXX that indicates this is a test repo.

Improve the look and feel of the constructed HTML files.

Reorganize the FAQ.

Prepare the mkiocccentry repo for a code freeze and release.

  • Reformat JSON indented with multiples of 4 ASCII spaces and no TABs

See also GH-issue 931 from that other repo.

NOTE: JSONPath.sh with only -S -A and without -T may be helpful with this coversion.

NOTE: The bin/jprint-wrapper.sh tool should also be updated.

This will be in keeping with the completed TODO the JSON indented with multiples of 4 ASCII spaces and no TABs.

  • Review and improve bin/README.md

Now that man pages for bin/ tools (issue #2009) are not planned, we need to review and likely improve the bin/README.md documentation.

We need to add some notes about these recent additions:

  • bin/all-jfmt.sh
  • bin/combine_author_handle.sh
  • bin/jval-wrapper.sh
  • bin/manifest.csv.entry.awk
  • bin/manifest.entry.json.awk
  • Create a new issue for recovery of very old entries in news.md

Issue #2686 was created to satisfy this TODO item.

  • Build bin tools making manifest.numbers no longer necessary and make .entry.json the primary "entry data truth"

See comment-2189364148.

  • Add an FAQ about how to handle de-obfuscated code

See comment 919283.

See comment-2198635072.

This TODO was changed from referring to a "spoiler" into a "de-obfucated" educational emphasis. In that regard we should NOT use terms like "spoiler" in the FAQ as well as NOT using "spoiler" in the entry's README.md file.

At a most, README.md should suggest that the reader might wish to study the prog.c code first before going on to review the de-obfuscated "alt" code.

See also comment-2198807715.

After completing the FAQ entry how to handle de-obfuscated code, consider if needed, revising entries with existing de-obfuscated code AND if needed, fixing cases where the entry README.md makes reference to something being a spoiler.

  • While OT, create an issue for a that performs JSON semantical checks on the .entry.json files in mkioccentey repo

See comment-2172105426 and see comment-2174364721.

  • While OT, fork the jparse/ directory from mkioccentey repo tree into @xexyl's jparse tree

See comment-2197371351.

Add a "see also" link to the new FAQ 1.4 in FAQ 0.0 subsection 2.

If the registration process is not "screenshot ready" by the time this TODO is addressed, put in a "stay tuned for images" placeholder into this new FAQ.

  • Create an initial text for details of the submit process as a new FAQ 1.5

Add a "see also" link to the new FAQ 1.4 in FAQ 0.0 subsection 5.

If the ** submit process** is not "screenshot ready" by the time this TODO is addressed, put in a "stay tuned for images" placeholder into this new FAQ.

  • Carefully reread and review the next rules and guidelines

  • Carefully reread and review the FAQ - Especially content related to how to enter the IOCCC

In addition to the useful check for typos, wording, and broken links: review for suitability and readability for gong live with on the main web site after the Great Fork Merge. Update faq.md if and as needed.

MOST IMPORTANT / HIGHEST PRIORITY: The most important is to review for suitability and readability the "FAQ 0.0" / "How to enter" stuff and the related pages (such as "next/*.md"), as well as the rules and guidelines. This is what people who have been waiting to enter the IOCCC will use most often.

  • Cleanup from 2024 testing

We need to cleanup from testing tools, so we need to remove:

  • 2024 from .gitignore
  • 2024 from .top
  • 2024 from Makefile

These may have added as part of tool testing and need to be removed before we proceed along the Great Fork Merge process below.

  • Inspect and sanity check the remaining TODO items

Add, modify and/or remove things from the remaining TODOs if/as needed.

  • Determine that we are ready to perform the Great Fork Merge

  • Announce a code freeze

Add a "GFM-code-freeze" (Great Fork Merge code freeze) git tag to top commit of the master branch.

In a comment in this issue #2239, announce that: General pull requests for the temp-test-ioccc repo will not be accepted as are beginning work on the Near Final TODOs.

Getting ready for the Near Final TODOs

NOTE: Once the above TODOs have been completed, the following last minute TODO actions must be completed in relatively short order (preferably in the same calendar day) before the Great Fork Merge takes place.

  • Remove all trailing whitespace from markdown files

Use this to look for any whitespace from markdown files

find . -name '*.md' -print0 | xargs -0 grep -E -l '[[:space:]][[:space:]]*$'
  • Verify the markdown code blocks are properly indented

Use:

find . -name '*.md' ! -name markdown.md -print0 | xargs -0 pcregrep -M '^``.*\n[^|`\n \t]'
  • Verify that the Nu Html Checker finds no errors, warnings nor info messages for all generated HTML

After making sure that the temp-test-ioccc repo is up to date and related GitHub pages have been rendered, use the ✓ on the navbar to check all generated HTML pages.

Fix any errors, warnings and info messages reported. Update the temp-test-ioccc repo and recheck those pages.

  • Update FAQ 1.2 with there date of Great Fork Merge

In FAQ 1.2, look for the <!-- XXX - Fill in the date when Great Fork Merge happens --> and update the date as for that section as needed.

Change default URLs and REPOs to refer to the https://www.ioccc.org web site and winner repo.

  • Change references to use www.ioccc.org instead of temp-test-ioccc

Change references as needed given their context.

This includes markdown files, HTML files, var.mk, Makefiles, text files, etc.

Try:

make www
find . \( -name .git -o -name NOTES \) -prune -o -type f -print0 | xargs -0 grep -l -F temp-test-ioccc

Also change the comment in var.mk

  • In mkiocccentry repo, Change references to use www.ioccc.org instead of temp-test-ioccc

See GH-#issuecomment-2403175498.

After re-installing (both from the top level and the jparse sub-directory) from the mkiocccentry repo, perform a make www and see if anything changed (there shouldn't be any changes).

  • Scan repo to verify that references to temp-test-ioccc have been processed.

The only exceptions should be historic references found in news.md, news.hml, faq.md and faq.html.

  • Add news event to news.md announcing the new www.ioccc.org web site.

Edit news.md as needed.

Perform make www and commit any changes.

Near Final TODOs

NOTE: Once the above TODOs have been completed, the following last minute TODO actions must be completed in relatively short order (preferably in the same calendar day) before the Great Fork Merge takes place.

  • Verify that the installed location(1) tool is up to date

Be sure the mkiocccentry repo is up to date and perform a make install in that typo.

  • REJECTED: Purge repo of previous *.tar.bz2 files and reduce Git repository size

We have rejected the action because we see LITTLE VALUE and TOO MUCH RISH. So we have rejected these 2 TODO steps.

See GH-issuecomment-2430718370 for a summary of the test process.

We will perform the following actions:

git mv 2011/dlowe/dlowe-aux-data.tar.bz2 HOLD
git commit -m'move dlowe-aux-data.tar.bz2 to HOLD'

git remote -v
git filter-repo --path-glob '????/*.tar.bz2' --invert-paths --force
git remote add origin git@github.com:lcn2/trim-temp-test-ioccc.git

git mv HOLD 2011/dlowe/dlowe-aux-data.tar.bz2
git commit -m'move HOLD back to dlowe-aux-data.tar.bz2'

for year in [12][0-9][0-9][0-9]; do
  touch "$year/$year.tar.bz2"; git add "$year/$year.tar.bz2";
done

for year in [12][0-9][0-9][0-9]; do
  for dir in $(< "$year/.year"); do
    entry_id=${dir/\//_};
    touch "$dir/$entry_id.tar.bz2";
    git add "$dir/$entry_id.tar.bz2";
  done;
done

git commit -m'add empty tar.bz2 files until we do make update'

git repack
git prune-packed
git reflog expire --expire=now --all
git gc --aggressive --prune=now
git fsck --full

git push --all --force
git push --tags --force
git push --set-upstream origin master

FYI: See:

NOTE: The make update in a TODO farther below will add back the needed *.tar.bz2 files.

NOTE: The make gen_years will generate Warnings of the form: "bin/gen-years.sh: Warning: compressed tarball for YYYY: yyyy is empty: yyyy/yyyy.tar.bz2".

This is OK and will be corrected once make update or make tar is done.

  • REJECTED: Perform make update on macOS and push out any changes

  • Verify that running make update again on macOS changes only:

  • sitemap.xml
  • status.html
  • status.json

If so, then revert those changes by:

git restore sitemap.xml status.html status.json

If not, reset all TODOs under the Near Final TODOs section and fix the cause.

  • update README.md and index.md

Remove the lines between:

<!-- XXX - This entire section goes away during the final stages of the Great Fork Merge -->

and:

<!-- XXX - remove down to here in the final stages of the Great Fork Merge -->

Verify that:

git status

reports:

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

Fetch any last minute changes:

cd docroot/temp-test-iocc

git fetch && git rebase

git clean -f

git status

The last command should report:

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
  • Perform make update on macOS

  • Commit all changes and push the result to the temp-test-ioccc repo

git commit -m'final pre-Great Fork Merge'

git push

Fetch any last minute changes:

cd docroot/temp-test-iocc

git fetch && git rebase

git clean -f

git status

The last command should report:

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
  • Re-Verify make update on macOS changes changes only:
  • sitemap.xml
  • status.html
  • status.json

If so, then revert those changes by:

git restore sitemap.xml status.html status.json

If not, reset all TODOs under the Near Final TODOs section and fix the cause.

FINAL REVIEW

  • REJECTED: Pause and ask for a review of readiness

We expect this period to be between 2024 November 1 and 2024 November 15.

Please review the effect of all of the above completed to do. Please limit PRs to only critical problems, and broken links, and linked to the wrong file, and failure to the official website and repo, etc.

  • REJECTED: Incorporate any PRs as a result of the previously mentioned review

Accept any such PRs, if needed modify the result after accepting, and finally do a make update.

Great Fork Merge

  • Perform the Great Fork Merge

Click Create Pull Request for the Official IOCCC winner repo.

Inspect the pull request for the Official IOCCC winner repo.

Accept and complete the pull request.

Post Great Fork Merge TODOs

Once the Great Fork Merge occurs and the official IOCCC winner repo and related Official www.ioccc.org web site has been updated, these TODOs need to be performed on the official IOCCC winner repo:

Close down issue #2686 as "won't fix" in this repo.

Fix any problems found on the Official www.ioccc.org web site by editing the official IOCCC winner repo as needed.

  • Announce on Mastodon that the Great Fork Merge has happened and the official IOCCC web site has been updated

  • Mark the temp-test-ioccc repo read-only

From temp-test-ioccc repo settings click on the ((Archive this repository)) button.

This will Freeze the temp-test-ioccc repo but leave it in place for historic purposes.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesttop priorityThis a top priory critical path issue for next milestone

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions