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:
NOTE: This may require a rewrite of the bin/ioccc-status.sh tool as well change the format of the from status.json file.
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.
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.
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.
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
Issue #2686 was created to satisfy this TODO item.
See comment-2189364148.
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.
See comment-2172105426 and see comment-2174364721.
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.
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.
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.
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.
Add, modify and/or remove things from the remaining TODOs if/as needed.
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.
Use this to look for any whitespace from markdown files
find . -name '*.md' -print0 | xargs -0 grep -E -l '[[:space:]][[:space:]]*$'
Use:
find . -name '*.md' ! -name markdown.md -print0 | xargs -0 pcregrep -M '^``.*\n[^|`\n \t]'
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.
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 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
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).
The only exceptions should be historic references found in news.md, news.hml, faq.md and faq.html.
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.
Be sure the mkiocccentry repo is up to date and perform a make install in that typo.
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.
- 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.
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:
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
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
- 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
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.
Accept any such PRs, if needed modify the result after accepting, and finally do a make update.
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.
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.
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.jsonformat.Write a new tool to generate the new top level
status.htmlfromstatus.jsonNOTE: This may require a rewrite of the
bin/ioccc-status.shtool as well change the format of the fromstatus.jsonfile.name wwwunder RHEL 9Port 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.
Complete issue Enhancement: Address XXX lines in top level files #2008
Complete issue Enhancement: improve the consistency of winning directories #3
Verify that the format of markdown files is good
See also comment 1993767060.
Complete issue Enhancement: add templates for issue forms #858
Complete issue Enhancement: Improve the IOCCC manifest #1933
Move all FAQ content into their own menu section
See comment 9192931.
The exception, of course, is the initial text down to the XXX that indicates this is a test repo.
Complete issue Enhancement: improve markdown links to FAQ entries #2417
Complete issue Enhancement: improve the look and feel of the constructed HTML files #2006
Improve the look and feel of the constructed HTML files.
Reorganize the FAQ.
Complete issue #979 in the mkiocccentry repo
Complete issue #955 in the mkiocccentry repo
Complete issue #956 in the mkiocccentry repo
Prepare the mkiocccentry repo for a code freeze and release.
See also GH-issue 931 from that other repo.
NOTE:
JSONPath.shwith only-S -Aand without-Tmay be helpful with this coversion.NOTE: The
bin/jprint-wrapper.shtool 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.
bin/README.mdNow that man pages for
bin/tools (issue #2009) are not planned, we need to review and likely improve thebin/README.mddocumentation.We need to add some notes about these recent additions:
news.mdIssue #2686 was created to satisfy this TODO item.
bintools makingmanifest.numbersno longer necessary and make.entry.jsonthe primary "entry data truth"See comment-2189364148.
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.mdfile.At a most,
README.mdshould suggest that the reader might wish to study theprog.ccode 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.mdmakes reference to something being a spoiler..entry.jsonfiles in mkioccentey repoSee comment-2172105426 and see comment-2174364721.
jparse/directory from mkioccentey repo tree into @xexyl's jparse treeSee comment-2197371351.
Resolve issue [Bug] bin tools are using jstrencode(1) when they should be decoding JSON encoded strings #2752
Create an initial text for details of the registration process as a new FAQ 1.4
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.
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.mdif 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.
We need to cleanup from testing tools, so we need to remove:
2024from.gitignore2024from.top2024from MakefileThese may have added as part of tool testing and need to be removed before we proceed along the Great Fork Merge process below.
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.
Use this to look for any whitespace from markdown files
Use:
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.
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.
www.ioccc.orginstead oftemp-test-iocccChange references as needed given their context.
This includes markdown files, HTML files,
var.mk, Makefiles, text files, etc.Try:
Also change the comment in
var.mkwww.ioccc.orginstead oftemp-test-iocccSee GH-#issuecomment-2403175498.
Re-release the mkiocccentry repo
Rebuild web tree via
make wwwAfter re-installing (both from the top level and the jparse sub-directory) from the mkiocccentry repo, perform a
make wwwand see if anything changed (there shouldn't be any changes).The only exceptions should be historic references found in
news.md,news.hml,faq.mdandfaq.html.news.mdannouncing the new www.ioccc.org web site.Edit
news.mdas needed.Perform
make wwwand 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.
location(1)tool is up to dateBe sure the mkiocccentry repo is up to date and perform a
make installin that typo.*.tar.bz2files and reduce Git repository sizeWe 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:
FYI: See:
NOTE: The
make updatein a TODO farther below will add back the needed*.tar.bz2files.NOTE: The
make gen_yearswill 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 updateormake taris done.REJECTED: Perform
make updateon macOS and push out any changesVerify that running
make updateagain on macOS changes only:If so, then revert those changes by:
If not, reset all TODOs under the Near Final TODOs section and fix the cause.
README.mdandindex.mdRemove 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:
reports:
Fetch any last minute changes:
The last command should report:
Perform
make updateon macOSCommit all changes and push the result to the temp-test-ioccc repo
git commit -m'final pre-Great Fork Merge' git pushFetch any last minute changes:
The last command should report:
make updateon macOS changes changes only:If so, then revert those changes by:
If not, reset all TODOs under the Near Final TODOs section and fix the cause.
FINAL REVIEW
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.
Accept any such PRs, if needed modify the result after accepting, and finally do a
make update.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.
Close issue Question: Issues that aren’t really major issues but are still issues #5
Transfer any remaining issues to the official IOCCC winner repo
Remove the website associated with the temp-test-ioccc repo
Verify that the official IOCCC winner website links work
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.