use a single manifest file
Now, there is a single manifest called manifest.numbers. The manifest.csv is formed by exporting manifest.numbers and running fix_manifest_csv.sh (which was fix_numbers_csv.sh). The "full_manifest" is now just manifest. Renamed "file_list.*.txt" to "path_list.txt". Renamed check_file_list.sh to check_path_list.sh. The previous set of manifest files are preserved, for now, under the OLD_manifest directory as a temporary measure in case we need to revert and very old changes. Updated README.md, check_path_list.sh and fix_manifest_csv.sh as per the above changes. Minor cleanup on a few manifest.number fields.
This commit is contained in:
1 parent
41c796a88f
commit
9cce43fb18
24 files changed
+17075
-311
No files matched your search
+68
-144
@@ -172,6 +172,15 @@ A `sort_word` match this regexp:
|
||||
## files
|
||||
|
||||
|
||||
### [OLD_manifest](OLD_manifest)
|
||||
|
||||
The files in the [OLD_manifest](OLD_manifest) were in the top of
|
||||
the tmp directory as of 2023 Oct 26. They represent the first
|
||||
complete manifest that matched the winner file directories.
|
||||
|
||||
These files in this directory are kept as a temporary snapshot for now.
|
||||
|
||||
|
||||
### [README.md](README.md)
|
||||
|
||||
This file.
|
||||
@@ -291,16 +300,16 @@ award line as at a level 1 markdown header we found, or the `README.md`
|
||||
file is missing, etc.
|
||||
|
||||
|
||||
### [check_file_list.sh](check_file_list.sh)
|
||||
### [check_path_list.sh](check_path_list.sh)
|
||||
|
||||
Look for problems with file_list.required.txt, file_list.full_manifest.txt,
|
||||
and file_list.found.txt files. In particular, the files found in
|
||||
Look for problems with path_list.required.txt, path_list.manifest.txt,
|
||||
and path_list.found.txt files. In particular, the files found in
|
||||
winning directories are compared with the list of required files
|
||||
as well as the complete manifest list of files.
|
||||
|
||||
If all is OK, [check_file_list.sh](check_file_list.sh) exits 0 and prints
|
||||
If all is OK, [check_path_list.sh](check_path_list.sh) exits 0 and prints
|
||||
nothing. If there are missing required files, or extra files found
|
||||
then [check_file_list.sh](check_file_list.sh) will exit non-zero and
|
||||
then [check_path_list.sh](check_path_list.sh) will exit non-zero and
|
||||
print information about problems.
|
||||
|
||||
|
||||
@@ -322,95 +331,15 @@ A `year/dir/.winner.json` file will be derived from the contents the `year/dir/.
|
||||
the [author_wins.csv](author_wins.csv) file, the `year/dir/.year` file, and the
|
||||
contents of the `year/dir` directory.
|
||||
|
||||
The 11 field names in [manifest.numbers](manifest.numbers),
|
||||
[missing_manifest.numbers](missing_manifest.numbers), and
|
||||
[full_manifest.numbers](full_manifest.numbers) match the JSON member
|
||||
names found in [example.dot_winner.json](example.dot_winner.json).
|
||||
The 11 field names in [manifest.numbers](manifest.numbers) match
|
||||
the JSON member names found in
|
||||
[example.dot_winner.json](example.dot_winner.json).
|
||||
|
||||
|
||||
### [file_list.full_manifest.txt](file_list.full_manifest.txt)
|
||||
### [fix_manifest_csv.sh](fix_manifest_csv.sh)
|
||||
|
||||
This is the list of file paths, both primary and constructed
|
||||
files from winners.
|
||||
|
||||
This is the sorted combined [file_list.built.txt](file_list.built.txt)
|
||||
and [file_list.required.txt](file_list.required.txt) files.
|
||||
|
||||
This file is formed by the [fix_numbers_csv.sh](fix_numbers_csv.sh) tool.
|
||||
|
||||
|
||||
### [file_list.built.txt](file_list.built.txt)
|
||||
|
||||
A list of file paths (from the top directory) of winner directories,
|
||||
that are built from other primary content files.
|
||||
|
||||
These paths are formed from [full_manifest.numbers](full_manifest.numbers)
|
||||
entries where the "created_by" (5th) field is null. See
|
||||
[manifest.numbers](manifest.numbers) for details on the fields.
|
||||
|
||||
This file is formed by the [fix_numbers_csv.sh](fix_numbers_csv.sh) tool.
|
||||
|
||||
|
||||
### [file_list.required.txt](file_list.required.txt)
|
||||
|
||||
A list of file paths (from the top directory) of winner directories,
|
||||
that are required to exist.
|
||||
|
||||
These paths are formed from [full_manifest.numbers](full_manifest.numbers)
|
||||
entries where the "created_by" (5th) field is non-null. See
|
||||
[manifest.numbers](manifest.numbers) for details on the fields.
|
||||
|
||||
This file is formed by the [fix_numbers_csv.sh](fix_numbers_csv.sh) tool.
|
||||
|
||||
|
||||
### [file_list.found.txt](file_list.found.txt)
|
||||
|
||||
A list of files that exist, or should exist once the tools to generate certain files,
|
||||
such as the `index.html`, or the `.winner.json` files for each entry, are created.
|
||||
|
||||
This file is created by [gen_file_list.found.sh](gen_file_list.found.sh).
|
||||
|
||||
|
||||
### [fix_numbers_csv.sh](fix_numbers_csv.sh)
|
||||
|
||||
This tool will fix the [manifest.csv](manifest.csv) and [missing_manifest.csv](missing_manifest.csv)
|
||||
files, removing carriage returns and appending a newline if it was missing.
|
||||
|
||||
This tool also creates / updates [full_manifest.csv](full_manifest.csv).
|
||||
|
||||
|
||||
### [full_manifest.csv](full_manifest.csv)
|
||||
|
||||
Combined and sorted [manifest.csv](manifest.csv) and [missing_manifest.csv](missing_manifest.csv).
|
||||
|
||||
This file is formed by the [fix_numbers_csv.sh](fix_numbers_csv.sh) tool.
|
||||
|
||||
See [manifest.numbers](manifest.numbers) for information on this file format
|
||||
as it has the exact same format.
|
||||
|
||||
In case of conflict, the data in [full_manifest.csv](full_manifest.csv) file is
|
||||
considered authoritative over the [full_manifest.numbers](full_manifest.numbers) file.
|
||||
|
||||
|
||||
### [full_manifest.numbers](full_manifest.numbers)
|
||||
|
||||
This file is formed by opening [manifest.csv](manifest.csv) in numbers
|
||||
and saving the result as a numbers file.
|
||||
|
||||
In case of conflict, the data in [full_manifest.csv](full_manifest.csv) file is
|
||||
considered authoritative over the [full_manifest.numbers](full_manifest.numbers) file.
|
||||
|
||||
**NOTE**: Due to the way that the macOS numbers program imports CSV
|
||||
files, some values of false may be turned into FALSE, some values
|
||||
of true may be turned into TRUE, and some values of null may be
|
||||
turned into NULL. JSON does not allow UPPER case FALSE, nor TRUE,
|
||||
nor NULL, so the UPPER case values of fields should be used in JSON
|
||||
in their lower case form.
|
||||
|
||||
The 11 field names in [manifest.numbers](manifest.numbers),
|
||||
[missing_manifest.numbers](missing_manifest.numbers), and
|
||||
[full_manifest.numbers](full_manifest.numbers) match the JSON member
|
||||
names found in [example.dot_winner.json](example.dot_winner.json).
|
||||
This tool will fix the [manifest.csv](manifest.csv) by
|
||||
removing carriage returns and appending a newline if it was missing.
|
||||
|
||||
|
||||
### [gen_author_json.sh](gen_author_json.sh)
|
||||
@@ -424,20 +353,20 @@ rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_win
|
||||
```
|
||||
|
||||
|
||||
### [gen_file_list.found.sh](gen_file_list.found.sh)
|
||||
### [gen_path_list.found.sh](gen_path_list.found.sh)
|
||||
|
||||
The list of paths of files in winners.
|
||||
|
||||
After doing a `make clobber` this tool updates, if needed,
|
||||
form [file_list.found.txt](file_list.found.txt).
|
||||
form [path_list.found.txt](path_list.found.txt).
|
||||
|
||||
|
||||
### [manifest.numbers](manifest.numbers)
|
||||
|
||||
|
||||
A [macOS](https://www.apple.com/macos) [Numbers](https://www.apple.com/numbers/)
|
||||
spreadsheet contains information about files, that must already exist, with the
|
||||
following fields:
|
||||
spreadsheet contains information about files in winner directories under year directories.
|
||||
This file as the following fields:
|
||||
|
||||
1. year:
|
||||
|
||||
@@ -473,18 +402,6 @@ following fields:
|
||||
that the contents of the file is created by given program from
|
||||
primary content files.
|
||||
|
||||
NOTE: The created_by values for [manifest.numbers](manifest.numbers)
|
||||
MUST always be null. This is because every file with primary
|
||||
content (i.e., content not created by some tool) MUST be listed
|
||||
in the [manifest.numbers](manifest.numbers) file and MUST NOT
|
||||
listed in the [missing_manifest.numbers](missing_manifest.numbers) file.
|
||||
|
||||
NOTE: The created_by values for [missing_manifest.numbers](missing_manifest.numbers) '
|
||||
MUST always be non-null. This is because every file that is NOT a primary
|
||||
content file (i.e., content that is created by some tool) MUST
|
||||
be listed in the [missing_manifest.numbers](missing_manifest.numbers)
|
||||
file and MUST NOT listed in the [manifest.numbers](manifest.numbers) file.
|
||||
|
||||
6. prog:
|
||||
|
||||
This field indicates if the file main program. This filed is one of:
|
||||
@@ -532,10 +449,9 @@ following fields:
|
||||
Any text that should be displayed at the end of line in `winners.html`
|
||||
(with a preceding " - "), or null is no such text is to be displayed.
|
||||
|
||||
The 11 field names in [manifest.numbers](manifest.numbers),
|
||||
[missing_manifest.numbers](missing_manifest.numbers), and
|
||||
[full_manifest.numbers](full_manifest.numbers) match the JSON member
|
||||
names found in [example.dot_winner.json](example.dot_winner.json).
|
||||
The 11 field names in [manifest.numbers](manifest.numbers), must
|
||||
match the JSON member names found in
|
||||
[example.dot_winner.json](example.dot_winner.json).
|
||||
|
||||
NOTE: Cells containing null are a JSON NULLs.
|
||||
NOTE: Cells containing true or false are JSON booleans.
|
||||
@@ -560,7 +476,7 @@ The [manifest.csv](manifest.csv) is generated from the [manifest.numbers](manife
|
||||
via the [macOS](https://www.apple.com/macos/)
|
||||
[Numbers](https://www.apple.com/numbers/) spreadsheet app, as follows:
|
||||
|
||||
0. open [manifest.csv](manifest.csv) in numbers: modify if/as needed
|
||||
0. open [manifest.numbers](manifest.numbers) in numbers: modify if/as needed
|
||||
|
||||
1. File -> Export To -> CSV...
|
||||
* 1a. `[ ]` Include table names (unset)
|
||||
@@ -573,53 +489,47 @@ via the [macOS](https://www.apple.com/macos/)
|
||||
3. Click ((Export))
|
||||
* 3a. If needed click ((Replace))
|
||||
|
||||
4. execute ./[fix_numbers_csv.sh](fix_numbers_csv.sh)
|
||||
4. execute ./[fix_manifest_csv.sh](fix_manifest_csv.sh)
|
||||
|
||||
|
||||
### [missing_manifest.numbers](missing_manifest.numbers)
|
||||
### [path_list.built.txt](path_list.built.txt)
|
||||
|
||||
A [macOS](https://www.apple.com/macos) [Numbers](https://www.apple.com/numbers/)
|
||||
spreadsheet contains information about files, that may not yet exist because
|
||||
a tool needs to create it, with the following fields:
|
||||
A list of file paths (from the top directory) of winner directories,
|
||||
that are built from other primary content files.
|
||||
|
||||
In case of conflict, the data in [missing_manifest.numbers](missing_manifest.numbers) file is
|
||||
considered authoritative over the [missing_manifest.csv](missing_manifest.csv) file.
|
||||
These paths are formed from [manifest.numbers](manifest.numbers)
|
||||
entries where the "created_by" (5th) field is null. See
|
||||
[manifest.numbers](manifest.numbers) for details on the fields.
|
||||
|
||||
See [manifest.numbers](manifest.numbers) for information on this file format
|
||||
as it has the exact same format.
|
||||
|
||||
The 11 field names in [manifest.numbers](manifest.numbers),
|
||||
[missing_manifest.numbers](missing_manifest.numbers), and
|
||||
[full_manifest.numbers](full_manifest.numbers) match the JSON member
|
||||
names found in [example.dot_winner.json](example.dot_winner.json).
|
||||
This file is formed by the [fix_manifest_csv.sh](fix_manifest_csv.sh) tool.
|
||||
|
||||
|
||||
### [missing_manifest.csv](missing_manifest.csv)
|
||||
### [path_list.found.txt](path_list.found.txt)
|
||||
|
||||
The [missing_manifest.csv](missing_manifest.csv) is a CSV file that was exported from the
|
||||
[missing_manifest.numbers](missing_manifest.numbers) file.
|
||||
A list of files that exist, or should exist once the tools to generate certain files,
|
||||
such as the `index.html`, or the `.winner.json` files for each entry, are created.
|
||||
|
||||
In case of conflict, the data in [missing_manifest.numbers](missing_manifest.numbers) file is
|
||||
considered authoritative over the [missing_manifest.csv](missing_manifest.csv) file.
|
||||
This file is created by [gen_path_list.found.sh](gen_path_list.found.sh).
|
||||
|
||||
The [missing_manifest.csv](missing_manifest.csv) is generated from the [missing_manifest.numbers](missing_manifest.numbers) file,
|
||||
via the [macOS](https://www.apple.com/macos/)
|
||||
[Numbers](https://www.apple.com/numbers/) spreadsheet app, as follows:
|
||||
|
||||
0. open [missing_manifest.csv](missing_manifest.csv) in numbers: modify if/as needed
|
||||
### [path_list.manifest.txt](path_list.manifest.txt)
|
||||
|
||||
1. File -> Export To -> CSV...
|
||||
* 1a. `[ ]` Include table names (unset)
|
||||
* 1b. Text Encoding: Unicode (UTF-8)
|
||||
* 1c. Click ((Save..))
|
||||
This is the list of file paths, both primary and constructed
|
||||
files from winners.
|
||||
|
||||
2. Save As: missing_manifest.csv
|
||||
* 2a. Select the `tmp` directory
|
||||
This file is formed by the [fix_manifest_csv.sh](fix_manifest_csv.sh) tool.
|
||||
|
||||
3. Click ((Export))
|
||||
* 3a. If needed click ((Replace))
|
||||
|
||||
4. execute ./[fix_numbers_csv.sh](fix_numbers_csv.sh)
|
||||
### [path_list.required.txt](path_list.required.txt)
|
||||
|
||||
A list of file paths (from the top directory) of winner directories,
|
||||
that are required to exist.
|
||||
|
||||
These paths are formed from [manifest.numbers](manifest.numbers)
|
||||
entries where the "created_by" (5th) field is non-null. See
|
||||
[manifest.numbers](manifest.numbers) for details on the fields.
|
||||
|
||||
This file is formed by the [fix_manifest_csv.sh](fix_manifest_csv.sh) tool.
|
||||
|
||||
|
||||
### [sql/winners.sql](sql/winners.sql)
|
||||
@@ -628,6 +538,20 @@ This is a SQL file, extracted from another SQL file that was used in the past
|
||||
to generate data for the old winners directory tree.
|
||||
|
||||
|
||||
### [src](src)
|
||||
|
||||
This is a temporary location for potential tools that are used to
|
||||
build and maintain the www.ioccc.org web site.
|
||||
|
||||
Eventually a separate build-ioccc repo will hold these tools.
|
||||
|
||||
|
||||
### [winner_dir.txt](winner_dir.txt)
|
||||
|
||||
A list of paths to winner directories that reside
|
||||
under year directories.
|
||||
|
||||
|
||||
### [winner_id.txt](winner_id.txt)
|
||||
|
||||
A text file containing `winner_id` strings: one `winner_id` per line.
|
||||
|
||||
Reference in new issue
Block a user