Ship Log
Changelog
One entry per version, newest first. Written with Ship Log itself.
Versions 2.28 down to 2.21 are on this page. Every earlier version is kept word for word in two archives: 2.20 back to 2.10 and 2.9 back to 0.1.
Version 2.28
Not yet checked in a real browser: this release changed no writing logic, only the way the example file is put together, and it was read rather than watched running.
- The example's older lines were written down twice in example.js: once as the previous lines the form is marked against, and once again as the 0.2 entry pasted into step 4. Two hand-kept copies of the same three sentences, and nothing checked one against the other. The file's own note said they were "kept in step by hand", which is the kind of copy that drifts the first time someone edits only one of them.
- example.js now holds one list of older versions as data, each with a version number and its lines. The block pasted into step 4 is built from that list — the same lines as bullets with a full stop — and the lines the form is marked against are the newest version's lines as they stand. One copy, so the entry the tool writes and the marking point it is read against cannot disagree any more.
- Adding an older version to the example is now one object in that list instead of an edit in two places, and the file is still plain data: app.js reads the same three fields it read before (the version, the later lines, the pasted block) and no other file changed. The lines you see in the form and pasted in step 4 are word for word the same as in 2.27.
- Nothing about what the tool writes changed in this release. The changelog entry, the snippet, the whole changelog page, the public update, the note, the new and edited tags, the tick state, the rendered preview, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.27.
Known problems: not yet checked in a real browser, so the built step 4 block is read from the code and not seen on the page; the example is still made up, so it claims nothing about Ship Log, and its known-problems and next-up lines are unchanged; a row that matched no old line at all, or that stops matching one, drops its hint entirely, open or not, which is intended but means an open hint can disappear while you type; the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; the two archive pages are frozen by design, so a typo in an older entry stays there unless the whole file is rewritten; this copy is written by hand and nothing checks it against the pages it describes; nothing prevents someone writing the example's older lines into the data list and the marking lines drifting apart again, except that the two are now the same value rather than two values.
Version 2.27
Not yet checked in a real browser: this release changed no JavaScript and no text of the tool, only which page holds which entry, and both pages were read rather than watched running.
- This page had grown to seventeen entries and about 49 KB, and every release adds another one on top, so the page a reader opens after each release kept getting longer to load and slower to scan. Versions 2.20 down to 2.10 have moved into a second archive page, changelog-archive-2.html, which sits beside the first archive (2.9 back to 0.1). This page now carries 2.27 down to 2.21 and says so at the top.
- The move was a copy, not a rewrite: every entry is word for word the same sentences as before, with the same bullets and the same known-problems lines, and the links between the pages work in both directions. The tool's footer now links both archives, so an older entry is two clicks from the tool rather than one.
- Why a second archive rather than adding to the first: the first archive is a single 42 KB file that has to be rewritten in full every time an entry joins it, and that full rewrite is the expensive part of keeping the record. A page that holds a fixed range of versions and is never touched again costs nothing after the move, so from now on a release only rewrites this page, which is under 25 KB again and should stay that way for many releases.
- Nothing about how the tool writes changed in this release. The changelog entry, the changelog.html snippet, the whole changelog page, the new and edited tags, the tick state, the rendered preview, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.26.
Known problems: not yet checked in a real browser; a reader who wants 2.20 or older now follows one more link, and there are two archive pages rather than one; the archives are frozen, so an older entry can no longer be corrected in place without rewriting a whole file, which is the point of freezing them but does mean a typo in one stays there; this copy is written by hand and nothing checks the pages against each other; the example's older lines are a second copy of the entry it pastes into step 4, so the two have to be kept in step by hand when the example is rewritten (fixed in 2.28); a row that matched no old line at all, or that stops matching one, drops its hint entirely, open or not, which is intended but means an open hint can disappear while you type; the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page.
Version 2.26
Not yet checked in a real browser: the change was read from the code rather than watched running.
- "Fill with an example" filled the form with a made-up release and then marked the form against those same lines, so nothing on the page was tagged: the new and edited tags, and the "was:" hint under an edited row, stayed empty until the reader typed lines of their own. The one part of step 1 that a newcomer most needs to see working was the part the example never showed.
- The example now carries the lines of the older version it reworks — its own 0.2 entry, in the order those lines stood — and the form is marked against those instead of against the example's own lines. Pressing the button now shows one line tagged "new" and two tagged "edited", each edited row with the old line it reads like underneath it, cut to 40 characters with the whole of it one press away.
- The older entry pasted into step 4 is the same three lines, so the page the tool writes and the marking point it is read against tell one story. Step 1's copy and the line under the example button now say that the example is the one case that arrives already tagged, since "a tag comes from your last marking point" was true of every other button and not of this one.
- Only app.js, example.js, index.html and this page changed. The changelog entry, the snippet, the whole changelog page, the public update, the note, the tick state, the rendered preview, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.25.
Known problems: not yet checked in a real browser, so the tags the example now shows are read from the code and not watched running; the example's older lines are a second copy of the entry it pastes into step 4, so the two have to be kept in step by hand when the example is rewritten and nothing checks them against each other (fixed in 2.28); the example's own known-problems and next-up lines are unchanged; a row that matched no old line at all, or that stops matching one, drops its hint entirely, open or not, which is intended but means an open hint can disappear while you type; the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; this page was about 49 KB and the archive about 42 KB, and both still grew with every release (fixed in 2.27).
Version 2.25
Not yet checked in a real browser: the change was read from the code rather than watched running.
- The "was:" hint under a row tagged "edited" kept its open state when the row was reworded. A long old line is shown cut to 40 characters, and the whole of it appears when you press the hint; but if you then rewrote the row so that it matched a different old line, the hint was still open — showing, in full, a line you never opened it on, inside a row you had not asked about. The row looked as if it had been changed back.
- The hint is now cut back as soon as the old line underneath it changes. It is not tied to the row: what it remembers is the old line it was opened on, so while the same old line stays underneath, an open hint stays open and typing further along the row does not close it. Only a reword that matches a different old line closes it.
- Step 1's copy now carries that in one clause: the old line it matched is shown under the row, cut short when it is long, the whole of it one press away, and cut back again once rewording changes which old line it matched. No other text on the page changed, and no other behaviour did.
- Only app.js, index.html and this page changed. The changelog entry, the snippet, the whole changelog page, the public update, the note, the new and edited tags, the tick state, the rendered preview, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.24.
Known problems: not yet checked in a real browser, so the fix is read from the code and not watched running; a row that matched no old line at all, or that stops matching one, drops its hint entirely, open or not, which is intended but means an open hint can disappear while you type; the example is made up, so it arrives as lines that are all new and never shows the new and edited tags reacting to your own wording — those only appear as you type in step 1 (fixed in 2.26); the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; this page was about 44 KB and the archive about 42 KB, and both still grew with every release (fixed in 2.27).
Version 2.24
Not yet checked in a real browser: the change was read from the code rather than watched running.
- The public update used to name the first three ticked items of step 1 whether or not they fitted. With three long items ticked, the whole sentence was written out and then cut at 280 characters, so the count of the items left over (the "plus 2 more" part) and the "Next: ..." line could both be lost — and the warning under the box told you to untick a line instead of saying that the text had been cut back.
- It now names as many of the first ticked items as fit. It still starts at three, stays there when they fit and still names more while the whole text fits, but when those items run past the limit it drops back one item at a time, never below one, until the update fits inside 280 characters with its count of the rest and its next-up line intact.
- The trim is still there for the one case left to it: a single ticked item long enough that even naming it on its own runs past the limit. That warning reads as before, and the other sentence — the one saying how many ticked items could be named — now says the rest are counted and that unticking a line or shortening step 1 is how you name more of them.
- Only app.js and this page changed. index.html, style.css, example.js and preview.js are untouched: the changelog entry, the snippet, the whole changelog page, the new and edited tags, the tick state, the rendered preview, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.23.
Known problems: not yet checked in a real browser; which items are named is decided by your order in step 1 and by how long the lines are, so the update names the first ticked lines that fit rather than the ones you would have picked — untick a line or move it up to change that; a single item long enough to fill 280 characters on its own is still cut back, and the warning still says so; the example is made up, so it arrives as lines that are all new and never shows the new and edited tags reacting to your own wording — those only appear as you type in step 1 (fixed in 2.26); an opened old line stayed open when you reworded that row, and closed only when you pressed it again or the tag cleared (fixed in 2.25); the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; this page was about 40 KB and the archive about 42 KB, and both still grew with every release (fixed in 2.27).
Version 2.23
Not yet checked in a real browser: this release changed no JavaScript and no text of the tool, only which page holds which entry, and both pages were read rather than watched running.
- This page had grown to fifteen entries and about 42 KB of text, and every release adds another one on top, so the page a reader opens after each release kept getting longer to load and slower to scan. Versions 2.9 and 2.8 were moved to the archive, which already held 2.7 back to 0.1.
- The move was a copy, not a rewrite: both entries are word for word the same sentences as before, with the same four bullets and the same known-problems line, and the links between the two pages still work in both directions. This page now carries 2.23 down to 2.10 and says so at the top; the archive carries 2.9 back to 0.1 and says so too.
- Nothing about how the tool writes changed in this release. The changelog entry, the snippet, the whole changelog page, the new and edited tags, the tick state, the rendered preview, the word count, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.22.
- Stated plainly, because this took a release of its own: the older entries are the record of this tool, so moving them is a careful hand copy rather than a code change, and nothing checks the two pages against each other. The archive is one file, so the next time it grows it will be rewritten in full again — that is the cost of keeping the entries as they were written.
Known problems: not yet checked in a real browser; a reader who wants versions 2.9 or 2.8 now follows one more link to the archive; the archive is about 42 KB and this page about 36 KB, and both still grow, so the archive has to be rewritten in full whenever entries are added to it, which this release did by hand; this copy is written by hand and nothing checks it against the pages themselves; the example is made up, so it arrives as lines that are all new and never shows the new and edited tags reacting to your own wording — those only appear as you type in step 1 (fixed in 2.26); an opened old line stayed open when you reworded that row, and closed only when you pressed it again or the tag cleared (fixed in 2.25); the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; the public update named the first three ticked items whether or not they fitted, so three long lines were written out and then cut at 280 characters, losing the count of the rest and the next-up line — it now names as many of them as fit, never below one (fixed in 2.24).
Version 2.22
Not yet checked in a real browser: this release changed no JavaScript at all, only the copy in index.html and this page, and it was read rather than watched running.
- Step 3's line about the rendered preview was true but incomplete. It said the preview redraws "as you type in step 1 and as you move an item", which describes only part of it: the preview redraws on any input in those boxes and after any button press on the page, because the example, Clear, Tick all, Untick all, Mark as read, Tick the tagged lines and the two move arrows all change the lines without anyone typing a key.
- It also did not say what the preview shows, so a reader could not tell whether their "next up" lines or their project name were meant to appear in it. The copy now names the three parts it draws: the version heading, or Unreleased when the version box is empty, one bullet per item line with a capital letter and a full stop, and a known-problems sentence when problems are listed. It also says what happens before you type a line: the preview says it is waiting rather than showing an empty box.
- The sentence that the look comes from this page's own stylesheet, so it is close to but not identical to your changelog page, and the promise that nothing you type is turned into markup, are both unchanged, and the intro line above the snippet box now points at the preview below it.
- Only index.html and this page changed. app.js, preview.js, style.css and example.js are untouched: the entry, the snippet, the whole changelog page, the new and edited tags, the tick state, the rendered preview itself, the word counts, the lines-to-move hint, the hype check and the copy buttons behave exactly as they did in 2.21.
Known problems: not yet checked in a real browser; no behaviour changed in this release, so the untested parts are the same ones as in 2.21 and are listed below it; this copy is written by hand and describes the preview part by part, so a later release that adds a part to the preview has to remember to say so here — nothing checks the two against each other; the example is made up, so it arrives as lines that are all new and never shows the new and edited tags reacting to your own wording — those only appear as you type in step 1 (fixed in 2.26); an opened old line stays open when you reword that row, and closes only when you press it again or the tag clears; the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page (which the copy now says); the public update named the first three ticked items whether or not they fitted, so three long lines were written out and then cut at 280 characters, losing the count of the rest and the next-up line (fixed in 2.24).
Version 2.21
Not yet checked in a real browser: this release changed no JavaScript logic, only the text of the example in example.js and one line of copy in index.html, and it was read rather than watched running.
- "Fill with an example" no longer fills in a release of this tool. That example was written and refreshed by hand, it was true for exactly one release each time, and it fell behind over and over: 2.13, 2.15 and 2.18 exist only to catch it up, 2.20 caught it up again, and this release was planned to stop the cycle rather than run it once more. Its "next up" line had a habit of naming work that was already done.
- It now fills in a short, made-up release for a made-up project: a search box with an empty state and a clear button, a counter fixed so it stops counting the spaces inside a word, a save button moved next to the field it saves, an honest known-problems line, one "next up" line and one older entry pasted into step 4. It runs past 150 words, so pressing the button brings up the lines-to-move hint under the word count, and its three item lines are each over 140 characters, so the hype check names them too.
- Nothing in the example claims anything about Ship Log or about any real release, so it cannot go out of date and will not need refreshing again. Step 1's copy now says so: the example is made up on purpose and shows the format rather than this tool's own last release.
- Only example.js, index.html and this page changed. Nothing about how the tool writes: the entry, the snippet, the page, the tags, the tick state, the rendered preview, the word count, the lines-to-move hint, the hype check and the copy buttons behave as they did in 2.20.
Known problems: not yet checked in a real browser; no writing logic changed in this release, so the untested parts are the same ones as in 2.20 and are listed in the second archive; the example is made up, so it arrives as lines that are all new and never shows the new and edited tags reacting to your own wording — those only appear as you type in step 1 (fixed in 2.26); an opened old line stays open when you reword that row, and closes only when you press it again or the tag clears; the tags and the tick state are held in memory only, so reloading the page starts again; a line rewritten in completely new words still reads as "new" and starts ticked (1.9); the lines-to-move hint and the hype check still count items longest first, so the lines they put in front of you are the long ones and not the old ones; the rendered preview's colours and spacing come from this page; the public update still names at most the first three ticked items and counts the rest.
Versions 2.20 back to 2.10 are in the second archive, and 2.9 back to 0.1 are in the first archive.