Skip to content

mapcan 0.21.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 12:47
· 63 commits to main since this release

mapcan 0.21.0

The first version on PyPI: uv tool install "mapcan[desktop]" (or pipx install), and
mapcan[lsp] for the VS Code extension.

Every change keeps mapcan: 1; former names stay readable with the warning deprecated-key, and
mapcan migrate (or the VS Code quick fix) rewrites a map and its included files keeping comments.
The policy is in docs/format.md ("Versioning and compatibility"), the details in
docs/format-changelog.md. (#67)

  • The frame field dlc is length, the data length in bytes; the DLC code follows from it. (#59)

  • signed and signed_code are one field, representation. (#63)

  • The frame field type is canopen, the frame's CANopen function. (#62)

  • invalid is invalid_raw, and takes ranges and values by meaning (not_available, error),
    with …_is_not_available() / …_is_error() in generated code. (#60, #97)

  • The bus field interface is connector; the adapter and channel are not part of the map. (#96)

  • The print details of the title page move into document.print. (#61)

  • An included file starts with mapcan: 1 and part_of: <map>, and has its own JSON Schema. (#54)

  • New: CAN FD data_bitrate and sample points of buses (#95), the receive timeout timeout_ms of
    frames (#98), encoding: string for text such as a VIN (#99), a signal's source to send the map
    version or a layout CRC32 (#104).

  • mapcan fmt [--check] writes maps in one key order.

  • A map split into several files is edited as one: the nodes of an included file are edited in the
    web editor, the VS Code forms and the Map view, each written in its own file; rename and
    references cover every file, and an included file opens in the context of its map. (#49, #56)

  • The language server analyses a change once typing pauses, in a worker thread. (#85, in part)

  • The web editor asks with explicit buttons and does not lose edits through dialogs or YAML drafts.
    (#81)

  • mapcan serve on a network address requires a token. (#82)

  • The web editor and VS Code link to the project, its documentation and a new issue.

  • 11-bit and 29-bit frames with the same number are told apart. (#91)

  • J1939: an RX frame takes its source address from its sender. (#92)

  • The flags of a signed bit field are exported to DBC as unsigned again.

  • Missing translations fall back to the document language, not Russian.

  • Python 3.12, 3.13 and 3.14; the heavy dependencies are extras (desktop, lsp, …). (#84, #86)

  • Published to PyPI from the release workflow. (#68)

Installation

  • Windows: download mapcan-0.21.0-setup.exe and run it. No administrator rights required.
    Without installing: mapcan-0.21.0-windows-x64.zip (run mapcan-app.exe).
  • Linux (x64): extract mapcan-0.21.0-linux-x64.tar.gz and run mapcan/mapcan-app (the editor opens in the browser) or mapcan/mapcan (command line).
  • Python 3.12 or newer: uv tool install "mapcan[desktop]==0.21.0" (or pipx install), PyPI
  • Docker: docker run --rm -v "$PWD:/work" ghcr.io/ordu1453/mapcan:0.21.0 build mapcan.yaml -o build

What's Changed

  • J1939 RX source address, issue forms and PR template by @tamashny in #108

New Contributors

Full Changelog: v0.20.0...v0.21.0