The `make quick_www` and `make www` rules in the top level `Makefile`
no longer build compressed tarballs.
The tools that form compressed tarballs now add _--no-xattrs --no-selinux_
when building compressed tarballs.
Changed `bin/tar-all.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-02-27".
Changed `bin/tar-entry.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-02-27".
Changed `bin/tar-year.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-02-27".
Added `make tar` rule to the top level `Makefile` to create all
compressed tarballs. In particular `make tar` calls:
* make clobber
* make genpath
* make genfilelist
* make verify_entry_files
* make form_entry_tarball
* make form_year_tarball
* make form_all_tarball
Performed `make tar` in an effort to see of tar warnings such as
have been fixed:
```
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.quarantine'
```
**NOTE**: We to **NOT** plan to rebuild compressed tarballs while some of the
((**top priority**)) issues are active. We only rebuilt the compressed tarballs
as a test.
Setup a simple topnav for missing HTML files for entries.
Added `bin/gen-other-html.sh` to build entry HTML files from
markdown other than README.md to index.html HTML files.
Fixed duplicate link text in `2020/ferguson1/gameplay.md`.
Improved `inc/md2html.cfg` to support building the missing HTML
files for entries.
Added `make gen_other_html` to top level Makefile.
Added `make gen_other_html` to `make quick_www` and `make www`.
Fixed inventory links for year level index.html files.
Changed `bin/output-year-index.sh` VERSION from "1.0.1 2024-02-23"
to "1.1 2024-02-27".
Added missing lines in `manifest.numbers`. Update the affected
`.entry.json` files.
The manifest (in both `manifest.numbers` and the collection of
manifests from of all entry `.entry.json` files) now match. Errors
from `make verify_entry_files` will now abort both `make quick_www`
and `make www` rules in the top level `Makefile`.
Changed markdown files in manifest to have an _inventory_order_ of
_2000000000_ so that the `index.html` file will usually appear at
the start of the _Secondary files_ set for the "#inventory" section
of an entry's `index.html` file.
Changed compressed tar files (files that end in _.tar.bz2_) in
manifest to have an _inventory_order_ of _100000_ so that these
files will usually appear at the end of the _Primary files_ set for
the "#inventory" section of an entry's `index.html` file.
Added 'Jump to top` link above the _Primary files_ section.
Changed `bin/output-index-inventory.sh` VERSION from "1.1.1 2024-02-23"
to "1.2 2024-02-27".
Updated HTML files to perform the above via `make www`.
We build several top level HTML files whose content
comes from top level markdown files:
- CODE_OF_CONDUCT.html
- README.html
- bugs.html
- contact.html
- faq.html
- thanks-for-help.html
Added new `bin/gen-top-md2html.sh` to perform the above.
Added `make gen_top_md2html` rule to top level Makefile.
Added `make gen_top_md2html` to `make quick_www` and `make www`.
Improved top level jump links for `authors.html`.
Updated `bin/gen-authors.sh` to improve the top level jump links.
Changed `bin/gen-authors.sh` version from "1.0.1 2024-02-23"
to "1.1 2024-02-25".
Changed typo of "TITIE" into "TITLE".
Fixed `bin/subst.entry-index.sh` as per the above typo.
Changed `bin/subst.entry-index.sh` version from "1.2.1 2024-02-23"
to "1.2.2 2024-02-25".
Updated the `inc/md2html.cfg` config file to perform the above.
Performed `make quick_www` which updated `2000/natori/index.html`.
While entries are under active edits, we disable
`make form_entry_tarball`, `make form_year_tarball`,
and `make form_all_tarball` from the `make quick_www`
rule and the `make www` rule.
We don't want to needlessly change the compressed tarballs for now.
Folded `all/README.md` into top level `README.md`.
Removed `all/summary.txt`.
Moved from `all/all.tar.bz2` to `ioccc.tar.bz2`.
Removed the `all/` directory.
Added `bin/tar-all.sh` form a compressed tarball for an IOCCC year:
```sh
bin/tar-all.sh -v 1 -W
```
Improved `bin/gen-years.sh`.
Added `make form_all_tarball` to `make quick_www` and `make www` in the top level Makefile.
Performed `make www` given the above. Some entry compressed tarballs
were updated due to recent updates.
Added `bin/tar-year.sh` form a compressed tarball for an IOCCC year:
```sh
bin/tar-year.sh -v 1 YYYY
```
We performed the following to generate all IOCCC year level compressed
tarballs.
```sh
bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W
```
Added `make genfilelist` to top level Makefile to generate YYYY
level .filelist files.
Added `make form_year_tarball` to top level Makefile to generate
YYYY level compressed tarballs.
Added `make genpath`, `make genfilelist`, and `make form_year_tarball`
to `make quick_www` and `make www` in the top level Makefile.
Performed `make www` given the above. Some entry compressed tarballs
were updated due to recent updates.
This is a HUGE commit and this task is not done. There are still some
changes that might need to be discussed and since so much is done here I
think it's better to let this go through and then make sure everything
is okay. When the remaining references are discussed they can also be
changed.
I did NOT include changes in the tmp/OLD_manifest directory.
Some of the changes in this commit (it might be exhaustive but it might
not be - not sure):
- In the Makefiles the WINNERS was renamed AUTHORS.
- References to winners.html were changed to authors.html.
- The FAQ named anchor 'fix_a_winner' was renamed 'fix_an_entry'.
- The JSON fields (or whatever they're called) 'winner_id' and
'winner_JSON_format_version' were changed so that 'winner' is 'entry'.
- In scripts for entries 'IOCCC winner' was changed to 'IOCCC entry'.
- 'winners_text' is now 'entries_text'. It might be better to be
'entry_text' as it's per entry but this was not noticed at first. Since
this is easy to fix I am holding off on this for the meantime.
- The script tmp/update-manifest.sh now has the commit log messages
changed to the correct terms as well.
The index.html files were updated as well with any of the above
changes.
There are some references that should NOT be updated. Two examples
caught (and maybe more have slipped through that will have to be changed
back): in 1984/anonymous/README.md the author wrote back to Landon after
being told about the famous tattoo and they used the words:
.. my entry will be the first IOCCC winner ..
but since this comes from the author it should remain so.
The other one is that winners.html should still refer to winners.html as
it informs people that it's been moved to authors.html (it does redirect
too but even so if it was changed it would defeat the purpose of the
message).
With paths like authors.html I tried to copy paste so that hopefully
there are no typos. It is possible that I did not end up doing this with
all but these can be fixed when discovered.
Added `bin/bin/tar-entry.sh` to build a compressed tarball for an
entry. The compressed tarball is formed by gnu tar with options
so that the same entry file content will always produce the same
compressed tarball, byte for byte.
As some files are missing from some entries, one should
use the `-W` option as in:
```sh
bin/tar-entry.sh -v 5 -W 2020/ferguson1
```
Added `make form_entry_tarball` to the top level `Makefile`
to build entry tarballs even when files are still missing.
Added `make verify_entry_files` to verify that all entries have all
of their files listed in their manifest, plus the top level ioccc.css
and var.mk files. As file entry files are still missing (due to
HTML files that need to be built), the overall `make quick_www` and
`make www` do **NOT** (yet) exit when the `make verify_entry_files`
fails.
Improved `bin/chk-entry.sh` by removing some variables
that were not needed.
TODO: Improve `bin/` tool exit codes as the current use is a bit silly.
TODO: Clean out some variables used in `bin/` tools as some of then
are only set printed in debug statements.
TODO: Clean up usage messages, some of the options listed to not
match the `getopts(1)` parsing. In some cases the option needs to
be parsed but needs to be ignored by the tool because another tool
automatically passes along certain options that really have no
effect. Such ignored options need to be show as "This option is
ignored" in the usage message.
To do with the build of html files in particular. The comments for each
now have the tool being used in the form of ${FOO} tool (bin/foo).
The entry_index rule has been aliased to readme2index as that is what
the rule uses (well bin/readme2index.sh).
The quick_entry_index rule has been aliased to quick_readme2index as
that is what the rule uses (well bin/quick-readme2index.sh).
Added `bin/all-years.sh` to run a command over all years.
Added `bin/gen-year-index.sh` to build an `index.html`
for a given year.
Added support code to build an `index.html`
for a given year.
Added `make gen_year_index` to to level Makefile
and related rules.
Using the above, added `index.html` files for all IOCCC years.
Updated `bin/README.md` according to the above.
Improved comments in `bin/all-run.sh`.
Exported TOPDIR in all `bin/` tools that use TOPDIR.
Removed incorrect lines in `bin/quick-readme2index.sh`
usage message.
Improve -v 3 printed important variables messages,
in order that important variables are exported,
from all `bin/` tools.
Rebuild all HTML pages via `make www`.
We add to the top level Makefile, some initial rules that
will facilitate the building of HTML content.
The `bin/md2html.sh` tool as been updated to output HTML comments
about the output during HTML phases 20, 21 and 22.
All entry `index.html` files were updated with some additional HTML
comments as a result of the above. The top level `location.html`,
`years.html` and `authors.html` have had HTML comments added also
a result.
Sorry (tm Canada 🇨🇦) for the mass update of entry `index.html` files.
Hopefully the times when all of them (often) need to be updated
will soon draw to a close.
Add .path files to each winner directory: a file containing
the path to the winner directory from the top directory.
Changed YYYY/.year files to contain the paths, from the top
directory, if the winning directories for the given year.
Changed `/.top` to contain the IOCCC years.
Added `make genpath` rule to the top Makefile and the
year Makefiles to generate the above.
Added FAQ 6.8 to `faq.md` to explain the above.
Updated manifest to reflect recent changes to the list of files.
We now have 6 diff rules:
diff_orig_prog
diff_prog_orig
diff_alt_prog
diff_prog_alt
diff_orig_alt
diff_alt_orig
The FAQ for these diffs needs to be updated
as we have 6 types of diffs now.
There was a comment in the form of:
... the liked/allowed ...
which should instead be:
... liked/allowed ...
and this was fixed with my sgit tool like:
sgit -e 's,the \(liked/allowed or compile\),\1,g' '*Makefile'
This is a HUGE commit:
417 files changed, 874 insertions(+), 874 deletions(-)
As the IOCCC website now is https enabled I have updated the
'http://www.ioccc' to 'https://www.ioccc'.
There was also a typo in Makefiles where it said 'for VERY WELCOME' when
it should be 'are VERY WELCOME'.
Finally slashdot.org is also https enabled so references to
'http://slashdot' were changed to 'https://slashdot'.
This was done by my sgit tool (see https://github.com/xexyl/sgit)
like:
sgit -e 's,http://www.ioccc,https://www.ioccc,g' -e 's/for VERY WELCOME/are VERY WELCOME/g' -e .
but because I didn't have a list of files that should be modified I had
to be careful which files to commit as I had files that were changed but
not ready to be committed. Since I did it in steps, finding typos as I
went along, I actually ran sgit three times but to simplify the above
(and to show that it's possible to do more than one sed command) I made
it all as one. Since I did not have a list of files ahead of time I had
to determine what files to commit, first going through them like:
for j in $(for i in $(git status|grep modified|cut -d: -f2); do \
git grep 'https://www.ioccc' "$i"; done|cut -d: -f1|sort|uniq); \
do git diff "$j"; done|less -r
(I had to pipe through less because of a strange problem with the git
diff which appears to be because of a terminal problem maybe due to the
command above but it was all I could come up with in a very tired head.)
The above and
git status | grep modified:
showed that some C files had been modified which obviously should not be
done so I had to do:
git co '*c'
to undo those changes.
Finally to commit the correct files I did:
for i in $(git status|grep modified|cut -d: -f2); do \
git grep -E 'https://www.ioccc|https://slashdot|are VERY WELCOME' "$i"; \
done |cut -d: -f1|sort|uniq|xargs git commit -v
or so (with any formatting issues or typos here due to typos in the log
due to the terminal (in)sanity issue described).
Simply the Makefile header.
Refer to the //www.ioccc.org/bugs.md URL (that will eventually exist).
Now using CC BY-SA 4.0 License to how you may share and adapt the
Makefile.
The 2020 winners are hinted it, but the source code is not there,
nor are the hints. Someone could look into the HTML and
see what was commented out, but that is not a problem because
WHO won is known and the name of their AWARD is known already.
Moreover a number of the winners have talked about what their
entirs do, so the commented out spoiler text is not a bit problem.
One will find HTML commented out with:
<!-- XXX remove when 2020 is ready
2020 links here
XXX remove when 2020 is ready -->
The "XXX remove when 2020 is ready" string is found at the
start and end comment blocks. Again, soneone could read
what was commented out, but that is OK since most of that
information is known or can be known. The following files
have such HTML comment blocks in them.
./winners.html
./years-spoiler.html
./years.html
In addition, ./all/summary.txt was modified to not
include the 2020 entries for the momemt.
The 2020 winner code AND write-ups are NOT part of this set.
p.s. The all/all.tar.bz2 does not contain the 2020 source code (yet?).