At least one link in the FAQ was fixed (not to a file but a named
reference). The FAQ has not been checked entirely for broken links
because the changes have got a bit out of hand and an entire make www
will have to be performed due to a problem I discovered doing the below.
Other improvements were made.
When going through the FAQ for broken links another problem was
discovered, one that broke the scripts that rely on jstrdecode(1). These
have been fixed but need further testing with make www. Some index.html files
were modified; for why this can be done without make quick_readme2index
see below on what changed and why it could be done this way.
When going through the FAQ for broken links I discovered some
issues with some entries' synopsis. This means that a number of
index.html and .entry.json files have been updated. The reason the
index.html files could be modified without running the scripts which
would were broken due to the jstrdecode(1) issue (a missing option in
the scripts) is because I used sgit(1). However, a single README.md file
was modified and the index.html file was not modified just yet. That
will happen with make www. The change is not significant, however, so
this should be okay this time. As the next step is a long process I
therefore decided to commit these things to get them out of the way to
try and prevent the commit from being even larger.
Minor fixes in next/try.sh and next/try.alt.sh were also discovered when
going through the FAQ.
Minor typos were made in the FAQ.
The .gitignore file was also updated: with the last change I
accidentally made it so vim swap files without a filename are not
ignored. That means there have to be two vim swap file globs.
Rather than have several globs for vim swap files it is now a single
glob (explanation below):
.s[a-zA-Z][a-zA-Z0-9]
I encountered another letter, 'v', after the '.s', and instead of having
several globs the glob just has [a-zA-Z] followed by [a-zA-Z0-9]. I
believe this new way should cover everything. I have not checked the vim
source code so I don't know if numbers are necessary and I don't know if
it ever (if there were an incredible amount of swap files which might
indicate rather a problem with the tree on the user's system) has more
than three characters but this should theoretically cover everything and
it is not a problem as no files in this glob should ever be in the
website and definitely not in an entry as txzchk(1) and chkentry(1)
verify.
We add an initial "_title_" and "_abstract_" to all entry `.entry.json` files.
The `bin/csv2entry.sh` tool reads the `summary.csv` file and
loads the "_title_" and "_abstract_" to entry `.entry.json` files.
Changed `bin/csv2entry.sh` VERSION from "1.3 2024-09-23"
to "1.4 2024-09-27".
Perform `make csv2entry` to perform the above and test under macOS.
The `bin/cvt-submission.sh` tool adds "_title_" and "_abstract_" to the
.entry.json based on the `.info.json` file.
Changed `bin/cvt-submission.sh` VERSION from "1.2 2024-09-23"
to "1.3 2024-09-27".
The `bin/entry2csv.sh` tool forms the `summary.csv` file
based on the "_title_" and "_abstract_" fields found in .entry.json files.
Changed `bin/entry2csv.sh` VERSION from "1.3 2024-09-23"
to "1.4 2024-09-27".
Perform `make entry2csv` to perform the above and test under macOS.
Added `-H` and `header=with-header-3` to the `bin/md2html.cfg`
for the configuration entry for `[12][0-9][0-9][0-9]/*/README.md`.
Changed `bin/md2html.sh` VERSION from "1.6 2024-08-17"
to "1.7 2024-09-27".
All entry `index.html` files now list the "_abstract_" in a new
`<h3>abstract</h3>` header.
Changed `bin/subst.entry-index.sh` VERSION from "1.6 2024-09-23"
to "1.7 2024-09-27".
Removed `summary.csv`.
Added `summary.csv` and `summary.numbers` to `.gitignore`.
Sorted the result with `bin/sgi.sh`.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test under macOS.
We added ._.DS_Store to `.gitignore`, and generalized the `/archive/historic/`
year sub-directories into a single pattern line.
We fix `bin/sgi.sh` to properly sort, canonically, `.gitignore` files
including `._.DS_Store` lines. The tool now stories stdin content
into a temporary file, then prints 6 classes of files from the
temporary file to stdout.
Changed `bin/sgi.sh` VERSION from "1.1.3 2024-08-18"
to "1.2 2024-09-05".
Fixed a bug in `bin/sort.gitignore.sh` that prevented it from
finding the `bin/sgi.sh` tool.
Changed `bin/sort.gitignore.sh` VERSION from "1.1.8 2024-07-28"
to "1.2 2024-09-05".
Performed `make sort_gitignore` to test the above under macOS.
NOTE: The above canonically sorted:
- 2004/hibachi/.gitignore
- 2005/mynx/.gitignore
- 2011/vik/.gitignore
- 2013/dlowe/.gitignore
- 2020/otterness/.gitignore
Always exclude `.auth.json` and `.info.json` files
in this repo.
This will be useful for IOCCC judges who are processing
submissions that are going to be announced as
new winning entries.
We are testing tools and need to maintain a 2024 test directory
so we have added 2024 to `.gitignore` temporarily.
We have added a TODO item to issue #2239 to undo the effect
of this commit and similar testing commits.
We add a new `bin/entry2csv.sh` tool VERSION "1.0 2024-07-14"
that will convert entry `.entry.json` files into 3 CSV files
`author_wins.csv`, `manifest.csv`, and `year_prize.csv`.
The `bin/entry2csv.sh` tool uses `bin/manifest.csv.entry.awk`.
The new `bin/manifest.csv.entry.awk` VERSION is "1.0 2024-07-14".
This tool will be used to convert entry `.entry.json` file into
CSV files suitable for importing into a spreadsheet application
for further processing.
TODO: Write the `bin/csv2entry.sh` tool, for a given entry, to
convert 3 CSV files into that entry's c`.entry.json` file.
When `bin/pandoc-wrapper.sh` encounters a fatal error, it will
leave behind `debug.input.md` and `debug.output.html`.
Added `debug.input.md` and `debug.output.html` to `.gitignore`.
The `.gitignore` file comment noew refers to `sgi.sh` not sgi.
Changed `bin/pandoc-wrapper.sh` VERSION from "1.6.2 2024-04-18"
to 1.6.3 2024-06-22" to preform the above.
Perform `make www` to perform the above and test under macOS.
Temporary files are now of the form:
```
export TMP_AB_CD=".tmp.NAME.AB_CD.$$.tmp"
```
Where `NAME` is the basename of the script, and `AB_CD` is the
part of the exported variable name after the "TMP_".
This will help avoid bugs such as that
commit c7dc9a9f6b had to fix.
Added `.tmp.*` to the top level `.gitignore` file.
Changed `bin/chk-entry.sh` VERSION from "1.1.6 2024-04-13"
to "1.1.7 2024-04-28".
Changed `bin/gen-authors.sh` VERSION from "1.9 2024-04-21"
to "1.9.1 2024-04-28".
Changed `bin/gen-location.sh` VERSION from "1.4 2024-04-21"
to "1.4.1 2024-04-28".
Changed `bin/gen-other-html.sh` VERSION from "1.2.2 2024-04-21"
to "1.2.3 2024-04-28".
Changed `bin/gen-sitemap.sh` VERSION from "1.3.7 2024-04-14"
to "1.3.8 2024-04-28".
Changed `bin/gen-status.sh` VERSION from "1.5 2024-04-22"
to "1.5.1 2024-04-28".
Changed `bin/gen-years.sh` VERSION from "1.3 2024-04-21"
to "1.3.1 2024-04-28".
Changed `bin/md2html.sh` VERSION from "1.5 2024-04-20"
to "1.5.1 2024-04-28".
Changed `bin/output-index-author.sh` VERSION from "1.7 2024-04-15"
to "1.7.1 2024-04-28".
Changed `bin/output-index-inventory.sh` VERSION from "1.4 2024-04-21"
to "1.4.1 2024-04-28".
Changed `bin/output-year-index.sh` VERSION from "1.4 2024-04-21"
to "1.4.1 2024-04-28".
Changed `bin/sort.gitignore.sh` VERSION from "1.1.6 2024-04-13"
to "1.1.7 2024-04-28".
Changed `bin/status2html.sh` VERSION from "1.4 2024-04-18"
to "1.4.1 2024-04-28".
Changed `bin/tar-entry.sh` VERSION from "1.3.5 2024-04-13"
to "1.3.6 2024-04-28".
Changed `bin/tar-year.sh` VERSION from "1.2.3 2024-04-13"
to "1.2.4 2024-04-28".
Ran `make www` to perform test the above under macOS.
We sort with lines starting with # first.
We sort with lines starting with * second.
We sort with lines that do not start with [#!*] third.
We sort with lines starting with ! fourth.
Example usage in vim with a keyboard macro <escape>f:
```vim
:map ^[f 1G!G../../bin/sgi^M
```
or via .vimrc:
```vimrc
" sort the entire .gitignore file using ../../bin/sgi
:map ^[f 1G!G../../bin/sgi^M
```
NOTE: The ^[ above is ((Escape)) and ^M is ((Control-M)).
Example usage in shell:
```sh
rm -f t && ../../bin/sgi < .gitignore > t && mv -f t .gitignore
```
Suggested usage:
```sh
bin/all-run.sh bin/sort.gitignore -v 1
```
Sorted all winner .gitignore according to this method.
Sorted all year level .gitignore according to this method.
Sorted top level .gitignore according to this method.
fix experimental web site links in experimental index.html
sync CNAME with https://github.com/ioccc-src/winner/blob/master/CNAME
improve .gitignore files
Added to each .gitignore file, comments on how to sort.
Put into winner .gitignore files, ignore *.dSYM files.
Put into winner .gitignore files, ignore indent.c,
indent.o and indent files. This is done so that the
winner directory can more self contained.
We did not put into winner .gitignore files, however,
excludes of .-files as found in the top level .gitignore file.
As .-files are not allowed by mkiocccentry, the top level
.gitignore file remains sufficient.
Added to year level .gitignore files, excludes of
mkentry or iocccsize files as needed.
Sorted (via sort -d -u) all .gitignore file.
This is because of the make rule 'indent' which runs 'indent' on the
files, saving to 'indent.c'.
If any entry ever has a file called indent.c something will have to
change obviously but for now this will prevent a cluttered git status if
someone runs make indent (like I did yesterday or the day before).
The `src/` tree has been moved under `tmp/`.
The `tmp/src/sgit` tree was removed. Instead the sgit
as installed from the [sgit repo](https://github.com/xexyl/sgit/).
The .gitignore was sorted and cleared up.
The src tree now contains source for tools that will be published
as part of the IOCCC winner web site. However, the compiled and/or
installed tools that install under bin, will NOT be published.
The bin directory is now excluded under .gitignore so that
those who use this repo will have to do:
```sh
cd src; make clobber all install
```
The src/Makefile in turn drives rules in sub-directory
Makefiles. Currently there are only two sub-directories:
winner_name - a completely re-written extract_winner_handles.sh
sgit - run sed on all files under git control
The check_awards.sh tool was moved under tmp
as this tool depends on CSV file, will not be needed soon,
and will go away when the tmp directory is cleaned
out towards the end of finishing issue #4.
The reason the top level .gitignore is updated is because this entry
will create vi swap files and it seems that the glob belongs with the
others.
For instance after running this entry numerous times over numerous days:
$ ls -1 .s*|wc -l
52
I was not aware of them until it started getting to .su like .sux and
others.
I've noted this fact in the README.md file as well, explaining to those
who don't know how they're named, how to find them (or what they're
called).
The rationale behind it is that it's useful to sometimes use discount
(or rdiscount) to test that the README.md file formatting is correct but
readme.html is the obvious target file. This glob can be removed at a
later date.
Sort .gitignore file.
Our /NOTES directory contains internal notes that, while
useful to ourselves, should NOT be part of the main repo.
This allows us to have various files as useful notes
without cluttering up the git repo tree.
Discovered more globs for vim swap files that somehow were in a
directory in my local repo. These were discovered as I'm working on
getting the directory clean.
I wasn't sure about this: no other html files are in .gitignore but this
will eventually be generated to a html file so it seems like it might be
good to not have it included in the repo.
The archive/archive-YYYY.tar.bz2 compressed tarballs
came from the old IOCCC web site files of the form
YYYY/YYYY.tar.bz2.
The directories archive/YYYY/ are added to .gitignore
so that one may unpack all of the archives without
adding content to this repo.
TODO: Mention the archive/archive-YYYY.tar.bz2 compressed tarballs
on the web site. Perhaps a archive/README.md file would be best.
This was a tool that was used for some years but it was not in
.gitignore which meant that if someone compiled it it the binary mkentry
would be in git status.