Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-16505

Create a tools package that can be installed separately from the server

    XMLWordPrintable

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.5.0
    • backlog
    • tools
    • Security Level: Public
    • None

    Description

      Standalone tool package including cbbackupmgr, cbexport, cbimport, couch_dbdump and possibly even cbc tools.

      +cbq (query shell)

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            Moving to the feature backlog since we will not have time to do this properly in the Spock time period. We will however make progress on the testing framework in order to allow us to do this much more quickly once we commit to it.

            mikew Mike Wiederhold [X] (Inactive) added a comment - Moving to the feature backlog since we will not have time to do this properly in the Spock time period. We will however make progress on the testing framework in order to allow us to do this much more quickly once we commit to it.

            From Build's perspective, so long as:

            • .zip / .tar.gz delivery is OK
            • The tools in the package are exactly the same as in the Server builds

            Then this is a reasonably small amount of effort with one significant caveat below. We would produce this alternate packaging alongside every build, and upload it alongside each release. (This means it would actually be available for MP releases as well.) Since some of these tools are compiled binaries, I believe we'd need to produce this package separately on each supported platform (eg., there would be a "tools-ubuntu20" package, not just "tools-linux").

            My one concern is cbsh, which is not currently part of Server builds. Ideally it would be added to the Server manifest, but I see that it is implemented in Rust, which is a language we don't currently have available in the Server build agents. Installing Rust and Cargo, and figuring out how to integrate cbsh into the Server build process, would be a significant and potentially disruptive amount of work. It would probably be easier to figure out how to simply download the most recent compiled cbsh release from GitHub and package it from there. My guess is that the SDK developers would prefer that their source code wasn't part of the Server builds anyway, since their different release schedules and source-code management styles have clashed with Server in the past.

            ceej Chris Hillery added a comment - From Build's perspective, so long as: .zip / .tar.gz delivery is OK The tools in the package are exactly the same as in the Server builds Then this is a reasonably small amount of effort with one significant caveat below. We would produce this alternate packaging alongside every build, and upload it alongside each release. (This means it would actually be available for MP releases as well.) Since some of these tools are compiled binaries, I believe we'd need to produce this package separately on each supported platform (eg., there would be a "tools-ubuntu20" package, not just "tools-linux"). My one concern is cbsh, which is not currently part of Server builds. Ideally it would be added to the Server manifest, but I see that it is implemented in Rust, which is a language we don't currently have available in the Server build agents. Installing Rust and Cargo, and figuring out how to integrate cbsh into the Server build process, would be a significant and potentially disruptive amount of work. It would probably be easier to figure out how to simply download the most recent compiled cbsh release from GitHub and package it from there. My guess is that the SDK developers would prefer that their source code wasn't part of the Server builds anyway, since their different release schedules and source-code management styles have clashed with Server in the past.

            Chris Hillery Great to see your input on this.

            The tools in the package are exactly the same as in the Server builds

            100% agree on this.

            The goal for now is, just these binaries:

            • cbimport
            • cbexport
            • cbbackupmgr
            • (Maybe) cblogredaction
            pvarley Patrick Varley added a comment - Chris Hillery Great to see your input on this. The tools in the package are exactly the same as in the Server builds 100% agree on this. The goal for now is, just these binaries: cbimport cbexport cbbackupmgr (Maybe) cblogredaction

            Patrick Varley If cbsh is out of the picture, this becomes a quite manageable change. I just saw cbsh on the list Hyun-Ju Vega mentioned back in March.

            As for making a single linux package, it's probably doable. We have already cut down to building Server on fewer platforms, with more consolidation coming shortly. For this tools package we'd just nominate one remaining Linux distribution (whichever one currently has the oldest glibc) to also produce the canonical server-tools-linux.tar.gz.

            ceej Chris Hillery added a comment - Patrick Varley  If cbsh is out of the picture, this becomes a quite manageable change. I just saw cbsh on the list Hyun-Ju Vega  mentioned back in March. As for making a single linux package, it's probably doable. We have already cut down to building Server on fewer platforms, with more consolidation coming shortly. For this tools package we'd just nominate one remaining Linux distribution (whichever one currently has the oldest glibc) to also produce the canonical server-tools-linux.tar.gz.

            People

              hyun-ju.vega Hyun-Ju Vega
              mikew Mike Wiederhold [X] (Inactive)
              Votes:
              5 Vote for this issue
              Watchers:
              24 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty