• 
      

    Rewrite the Bazaar support to use the command line tool.

    Review Request #8835 — Created March 22, 2017 and submitted

    Information

    Review Board
    release-2.0.x
    0190459...

    Reviewers

    Our support for Bazaar, a third-party contribution, has depended on
    their Python API. This change rewrites the module, modernizing it and
    updating it to use the command line bzr tool instead. This keeps us
    license-compliant and improves maintainability.

    The one tricky part about Bazaar compatibility is that in order to use a
    custom SSH program (rbssh in our case), we have to register it using the
    Python API. To solve this, the rbssh support has been moved to a Bazaar
    plugin, which is loaded by bzr on launch. Review Board sets environment
    variables to tell bzr when it can find this. The plugin lives in the
    Review Board source tree, but isn't part of the product, and instead
    acts as its own top-level module living in the bzrlib.plugins
    namespace (a requirement for Bazaar plugins).

    Some other parts, like the revision handling, have been improved to be
    more versatile, allowing for additional revision specifiers. The rbssh
    support has also been simplified some, making use of the existing
    RB_LOCAL_SITE environment variable instead of having to define custom
    URLs with the Local Site name.

    Additional unit tests have been written to more thoroughly test Bazaar
    functionality.

    Unit tests pass.

    Tested unit tests without the bzr tool installed.

    Tested functionality with a Bazaar repository.

    Description From Last Updated

    This should be marked as GPL, right?

    daviddavid
    david
    1. 
        
    2. reviewboard/scmtools/bzr/plugins/README (Diff revision 1)
       
       
       
       
      Show all issues

      This should be marked as GPL, right?

      1. GPL'd apps can use MIT licensed modules. MIT and GPL are compatible in this way. I don't mind relicensing under GPL, if we have to, but I don't think that's necessary in this case?

      2. Yes, but this imports a GPL library and is therefore a derived work under the static linking section of the GPL and must be GPL itself, no?

      3. Fair point. I'll fix it.

    3. 
        
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-2.0.x (4832100)