Skip to content

0.2.3 Beta

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:53
· 2 commits to main since this release

Which file do I want?

Take one row. Every download already contains what that row needs.

I want to File
Run a bulletin board — the board and all its tools icyboard-0.2.3-<platform>.zip
Write PPL in VS Code ppl-vscode-0.2.3-<platform>.vsix
Write PPL in Helix, Neovim, Zed or another LSP editor ppl-lsp-0.2.3-<platform>.tar.gz (.zip on Windows)
Read the manual icyboard-manual-0.2.3.pdf

<platform> is one of:

Platform Your machine
linux-x64 Linux on a 64-bit PC
windows-x64 Windows on a 64-bit PC
macos-arm64 Mac with Apple Silicon (M1 and later)
macos-x64 Mac with an Intel processor

You do not need more than one. icyboard-*.zip already holds the ppl-lsp
language server next to the board in bin/, and each ppl-vscode-* package
holds the server for its platform. ppl-lsp-* on its own is for editors other
than VS Code when you are not installing the board.

ppl-vscode-0.2.3-no-server.vsix is the exception: it carries no server and
expects ppl-lsp on your PATH already. Take it only if your platform is not
in the list above.

Fourth public beta. This release includes the Windows board-creation fix and
file-area maintenance and deletion fixes. It also extends PPL 4.00 and improves
file transfers, conference selection and door handling.

Compatibility

  • PPL 4.00 remains unstable. Review the area and directory numbering changes
    below and recompile affected PPEs.
  • Relative file-area paths in lists inside a board now use the nearest ancestor
    containing icboard.toml, matching the normal BBS layout. Standalone lists
    retain list-relative paths. Use absolute paths for externally located lists
    or differently named board configurations.
  • Before the version bump, full CI checks passed on Linux and macOS, and the
    Windows embedded-help checks passed. Release-package builds and manual runtime
    checks still need review before publishing. This remains a beta release.

Added

  • icbfile delete deletes an exact, case-insensitive filename from disk and
    removes its database entry. Already-missing files can have their entries
    removed; disk deletion failures retain the entry.
  • PPL 4.00 ZIP writer APIs, bulletin and survey access, and Board.AddUser and
    Board.FindUser.
  • Native PPL 4.00 date/time values and arithmetic, and PPL/PPE target 3.01 support.
  • Native DOS setup console, DOS image setup and X00 installation helpers,
    door arguments and private drop files, and socket-connected doors.
  • PPL 4.00 can read archives: Archive.Open() returns an ArchiveReader that
    lists members, reads them as bytes or text and extracts single files, in every
    format unarc-rs supports (ZIP, RAR, 7z, ARJ, LHA, ACE, ARC, ZOO, TAR and more).
    ArchiveEntry.Kind distinguishes files, directories, links and special entries.

Changed

  • PPL message areas are numbered from 1: Area.Number, the area in AreaId()
    and the AREA command now use the same number. AreaId(conf, 0) and a plain
    conference number still address the first area. PPEs that added one to
    Area.Number or passed zero-based areas above 0 to AreaId() must be updated.
  • File directories are numbered from 1 as well: Directory.Number and
    @DIRNUM@ now show the number the F command takes, and Directory.Number
    is 0 for a directory that does not exist. PPEs that added one to
    Directory.Number must be updated.

Fixed

  • Single-file ZMODEM uploads complete the session handshake instead of reporting
    a remote cancellation at 100% (#27). Additional queued files beyond the upload
    limit are skipped without receiving their payloads.
  • ZMODEM binary CRC-16 headers and subpackets use the protocol's network byte order,
    allowing transfers with independent clients that select CRC-16.
  • Missing advertisement rule files no longer reject uploads: archive
    transformations are skipped, preserving the original file and FILE_ID.DIZ
    extraction. Enabled virus scanning and approval policies still apply.
  • The bundled area, cnfn, dir, door and script2 PPEs for new boards
    are recompiled with the current compiler.
  • Windows board creation no longer aborts with
    Embedded English fingerprint mismatch: hlp!.md (#28, #32). Checkouts
    preserve embedded source bytes, and catalog fingerprint verification runs
    in tests rather than blocking startup.
  • icbfile resolves nested board area lists against the board root instead of
    opening a different database (#31). check --prune without --area checks
    every area in the supplied list. Unavailable storage and inspection errors
    fail explicitly; cached BBS listings refresh externally changed entries.
  • Conference plaintext passwords accept stored and entered mixed case.
  • X/YMODEM packet timeouts and final ACK recovery, ZMODEM flow control,
    8 KiB receive subpackets and 1 KiB uploads.
  • SSH reads apply backpressure when the consumer falls behind (#30).
  • PPL file-channel handling, UTF-8 text reads, dot-relative PPE resources,
    malformed list/loop diagnostics and empty index-list crashes.
  • Conference join ordering and registration checks, new-file scan date input,
    logoff display hooks, PCBoard user-record compatibility and local status rows.
  • POSIX locale selection on all platforms, native stdio door buffering and
    door terminal restoration.
  • The AREA command's search list and its confirmation showed zero-based
    numbers, so choosing a listed number joined the wrong area.
  • Entering -2147483648 as an area or bulletin number ended the session
    instead of reporting an invalid number.
  • @DIRNUM@, @DIRNAME@ and Session.Directory always reported the first
    directory. They now follow the directory last listed with F, and joining a
    conference resets them to its first directory.

What's Changed

  • icy_net: hold back the SSH server when the reader falls behind by @NuSkooler in #30

New Contributors

Full Changelog: 0.2.2...0.2.3