Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-16383

Python dtests to use ccm tag instead of the `cassandra-test` branch

    XMLWordPrintableJSON

    Details

    • Change Category:
      Quality Assurance
    • Complexity:
      Normal
    • Platform:
      All
    • Impacts:
      None
    • Test and Documentation Plan:
      Hide

      merge ccm, remove cassandra-test branch, tag master HEAD with "cassandra-test", run all CI

      Show
      merge ccm, remove cassandra-test branch, tag master HEAD with "cassandra-test", run all CI

      Description

      The python dtests (cassandra-dtest repo) creates its clusters using ccm.

      The version of ccm it uses is the HEAD of the cassandra-test branch. This is referenced in the requirements.txt.

      The history for why a separate branch of ccm is used by dtests is explained in https://github.com/apache/cassandra-dtest/pull/13

      Long story short: the separate branch avoids two headaches

      • the 'latest commit to master' broke all the c* builds surprises', and
      • the 'i have to cut a release of ccm just to get a ccm change into use by dtests'

      But the two branches: master and cassandra-test; have effectively been treated as two separate repositories, with (non-fast-forward) merges happening in both directions. This makes the git history of both branches messy and difficult to use, and it makes the merge strategy confusing. Bi-directional merging between branches is considered a poor practice by many (Laura Wingerd's 'The Flow of Change' presentation and book refers to this as "don't drive through hedges" and encourages the "merge down, copy up" approach against the "tofu scale: firm above, soft below").

      To date, AFAIK no merges between the branches have occurred since January 2018.

      A possible improvement to this process is to replace the cassandra-test branch with a floating tag (of the same name).

      That way new commits to master are not automatically used by the python dtests. And changes made to ccm and intended/needed to be used by the dtests can be put in use by re-tagging cassandra-test to master's HEAD.

      The re-tagging approach is

      git tag -a -f cassandra-test
      git push origin :refs/tags/cassandra-test
      git push -f origin --tags
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mck Michael Semb Wever
                Reporter:
                mck Michael Semb Wever
                Authors:
                Michael Semb Wever
                Reviewers:
                Adam Holmberg
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: