Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce $ABI [strict|lenient] for VMOD descriptors #2330

Closed
wants to merge 1 commit into from

Commits on May 17, 2017

  1. Introduce $ABI [strict|lenient] for VMOD descriptors

    When versioning appeared in the VRT API, the goal was to allow loose
    ABI compliance on loaded VMODs based on the major/minor revision against
    which it was built. Strict checking was performed if Varnish was built
    from the master branch in the VCC code, but omitted by the child.
    
    This however has two flaws:
    
    1) Release management might go wrong like it happened in 5.1.2 that got
       released from the master branch.
    
    2) This doesn't solve the original problem that some VMODs might rely
       on supported symbols encompassed by the VRT major/minor while others
       may choose to integrate deeper with Varnish and lose guarantees.
    
    This patch retires the `VCS_Branch` macro that is no longer needed and
    provides a new `$ABI` stanza that defaults to strict when omitted. To
    help discovery, in-tree modules advertise a strict match.
    
    To indicate that a VMOD needs the exact Varnish build to be loaded,
    the VMOD's metadata contains 0.0 for the VRT major/minor revision.
    
    In addition, both the VCC and child now perform the full ABI compliance
    check, picking the strict or lenient option depending on the VMOD's
    metadata.
    dridi committed May 17, 2017
    Configuration menu
    Copy the full SHA
    de0b467 View commit details
    Browse the repository at this point in the history