You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Michael Semb Wever (Jira)" <ji...@apache.org> on 2021/01/13 16:22:00 UTC

[jira] [Created] (CASSANDRA-16383) Python dtests to use ccm tag instead of the `cassandra-test` branch

Michael Semb Wever created CASSANDRA-16383:
----------------------------------------------

             Summary: Python dtests to use ccm tag instead of the `cassandra-test` branch
                 Key: CASSANDRA-16383
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16383
             Project: Cassandra
          Issue Type: Task
          Components: Test/dtest/python
            Reporter: Michael Semb Wever
            Assignee: Michael Semb Wever


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|https://github.com/apache/cassandra-dtest/blob/trunk/requirements.txt#L3].

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|https://www.perforce.com/sites/default/files/flow-change-wingerd.pdf] and [book|https://books.google.no/books?id=mlm61wb2v3MC&pg=PT191&lpg=PT191&dq=%22don%27t+drive+through+hedges%22&source=bl&ots=I_rYBRJwTD&sig=ACfU3U1iKLORDQii5uiTveaKPOpa3cFqng&hl=en&sa=X&ved=2ahUKEwju96-DpZnuAhWytYsKHeW6D5EQ6AEwAHoECAEQAg#v=onepage&q=%22don't%20drive%20through%20hedges%22&f=false] 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 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
{code}
git tag -a -f cassandra-test
git push origin :refs/tags/cassandra-test
git push -f origin --tags
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org