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

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

    XMLWordPrintableJSON

Details

    • Quality Assurance
    • Normal
    • All
    • None
    • 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

              mck Michael Semb Wever
              mck Michael Semb Wever
              Michael Semb Wever
              Adam Holmberg
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: