Skip to content

v0.9.9

Choose a tag to compare

@github-actions github-actions released this 17 Sep 09:44

Changed

  • CI gains a URI-only job (test.yml): the package installed with just
    the uri extra and no scheme client at all, running the modules that must
    work without one plus an explicit check that a pure-path join imports
    nothing. Every other job installs all extras, which is why a join that
    built a backend -- and so needed paramiko to spell an sftp: path --
    survived from 0.9.3 to 0.9.8 behind a green matrix.

Fixed

  • glob(bound_loops=True) no longer drops a directory shared under two
    names.
    It bounded on every identity seen during the walk, so one
    directory junctioned in as both site-a and site-b -- a deliberate
    layout, and not a loop -- expanded under the first name only, silently. A
    loop is a directory reachable BELOW ITSELF, so the bound is now the
    current descent path rather than everything seen, which is the line
    find -L draws. The loop case is unchanged: 128 matches become 2.
    Reported by yaconfiglib against 0.9.7.

Documentation

  • Corrected the 0.9.8 entry's provenance. It says 0.9.7 introduced the
    join-builds-a-backend defect; it did not. Measured against the published
    wheels in a venv with only the uri extra: UriPath("sftp://h/mnt") / "c"
    raises ImportError on 0.9.3 and 0.9.6 as well, so the defect predates
    the 0.9.7 join rewrite, which preserved it rather than causing it. 0.9.8
    fixes it for the first time. (A related and DELIBERATE behaviour, unchanged
    throughout: constructing an http:/s3: path at all requires that
    scheme's extra, because the scheme module imports its client -- see the
    extras table in the shipped header.)

Full Changelog: v0.9.8...v0.9.9