Skip to content

v0.6.1

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Oct 23:04
· 24 commits to main since this release
v0.6.1
ab8a778

A patch release of 0.6.0. On a 32-bit target, such as the WebAssembly the
browser viewer runs, an export could panic when a size read from a
partition wrapped around (#836); the viewer, built from main, has had the
fix since it landed there. crates.io and PyPI show the README packed into
each version, and 0.6.0's support table said more than was measured: it
marked opening Revit 2027, 2015 and 2014-and-earlier projects, with their
previews and schema, as supported, and said every element's IsExternal is
written. 0.6.1's says what is measured. 0.6.1 is built from 0.6.0, not from
main, which has changes for the next minor release.

Upgrading from 0.6.0

Nothing to change. An export names 0.6.1 in its IFC header's FILE_NAME
and in its IfcApplication. Otherwise, on a 64-bit target, Measure's scores
and diagnostics of the reference models, Autodesk's sample projects and the
family corpus are the same as 0.6.0's.

Fixed

  • The one-pass data-object scan checks the end it computes (#836).
    partition_room_parameters::data_objects tries a header at every offset
    of a partition and added the size it reads there to the offset unchecked.
    On a 32-bit target a size near 4 GiB from arbitrary bytes wrapped the end
    around, and a wrapped end below 4 made its next read panic, which in the
    browser viewer aborts the export. The i686 job found it on every family
    release. A 64-bit build cannot overflow there, so its output is unchanged.
    The job then found partition_type_materials' map reader multiplying a
    count read from arbitrary bytes by 12 before checking it against its
    64-entry limit; the count is now checked first.
  • The README's support table says what is measured. 0.6.0's marked
    opening Revit 2027 and 2015 projects, with their previews and schema, as
    supported: they open on Autodesk's sample projects, where previews and
    PartAtom are not measured. It marked Revit 2014 and earlier projects as
    supported too: no documented 2014 project is measured, and a public 2014
    family opens and its schema reads (RE-147). It said every element's
    IsExternal is written (RE-193): curtain mullions and panels get none,
    as the 0.6.0 notes below now say too. The rows for 2015 to 2022 and 2027
    say that no Revit export of those files was measured, rather than that
    there is none to measure against, and the summary of what rvt-rs reads
    names the releases their elements are measured against: Revit 2019, 2023
    and 2026 copies of the same sample projects.

Changed

  • CI runs the real-file, CLI, contract and hardening checks on 32-bit
    i686 with overflow checks on (#836).
    A sum or product of lengths read
    from a file that cannot overflow a 64-bit usize can still wrap on a
    32-bit target and pass a bounds check it should fail: #835 found one on
    wasm32, where the browser viewer runs, and every other CI job builds for
    64 bits. In the new job, which CI passed requires, such a wrap panics in
    the fuzz regressions and the family-corpus checks instead.

User guide: https://github.com/DrunkOnJava/rvt-rs/blob/v0.6.1/docs/user-guide.md