Lucene - Core
  1. Lucene - Core
  2. LUCENE-2248

Tests using Version.LUCENE_CURRENT will produce problems in backwards branch, when development for 3.2 starts

    Details

    • Lucene Fields:
      New

      Description

      A lot of tests for the most-recent functionality in Lucene use Version.LUCENE_CURRENT, which is fine in trunk, as we use the most recent version without hassle and changing this in later versions.

      The problem is, if we copy these tests to backwards branch after 3.1 is out and then start to improve analyzers, we then will have the maintenance hell for backwards tests. And we loose backward compatibility testing for older versions. If we would specify a specific version like LUCENE_31 in our tests, after moving to backwards they must work without any changes!

      To not always modify all tests after a new version comes out (e.g. after switching to 3.2 dev), I propose to do the following:

      • declare a static final Version TEST_VERSION = Version.LUCENE_CURRENT (or better) Version.LUCENE_31 in LuceneTestCase(4J).
      • change all tests that use Version.LUCENE_CURRENT using eclipse refactor to use this constant and remove unneeded import statements.

      When we then move the tests to backward we must only change one line, depending on how we define this constant:

      • If in trunk LuceneTestCase it's Version.LUCENE_CURRENT, we just change the backwards branch to use the version numer of the released thing.
      • If trunk already uses the LUCENE_31 constant (I prefer this), we do not need to change backwards, but instead when switching version numbers we just move trunk forward to the next major version (after added to Version enum).
      1. LUCENE-2248.patch
        367 kB
        Uwe Schindler
      2. LUCENE-2248.patch
        366 kB
        Uwe Schindler
      3. LUCENE-2248.patch
        365 kB
        Uwe Schindler
      4. LUCENE-2248.patch
        10 kB
        Uwe Schindler
      5. LUCENE-2248.patch
        10 kB
        Uwe Schindler

        Activity

        Uwe Schindler created issue -
        Uwe Schindler made changes -
        Field Original Value New Value
        Summary Tests using Version.LUCENE_CURRENT will produce problems in backwards branch, wen development for 3.2 starts Tests using Version.LUCENE_CURRENT will produce problems in backwards branch, when development for 3.2 starts
        Description A lot of tests for the most-recent functionality in Lucene use Version.LUCENE_CURRENT, which is fine in trunk, as we use the most recent version without hassle and changing this in later versions.

        The problem is, if we copy these tests to backwards branch after 3.1 is out and then start to improve analyzers, we then will have the maintenance hell for backwards tests. And we loose backward compatibility testing for older versions. If we would specify a specific version like LUCENE_31 in our tests, after moving to backwards they must work without any changes!

        To not always modify all tests after a new version comes out (e.g. after switching to 3.2 dev), I propse to do the following:
        - declare a static final Version TEST_VERSION = Version.LUCENE_CURRENT (or better) Version.LUCENE_31 in LuceneTestCase(4J).
        - change all tests that use Version.LUCENE_CURRENT using eclipse refactor to use this constant and remove unneeded import statements.

        When we then move the tests to backward we must only change one line, depending on how we define this constant:
        - If in trunk LuceneTestCase it's Version.LUCENE_CURRENT, we just change the backwards branch to use the version numer of the released thing.
        - If trunk already uses the LUCENE_31 constant (I prefer this), we do not need to change backwards, but instead when switching version numbers we just move trunk forward to the next major version (after added to Version enum).
        A lot of tests for the most-recent functionality in Lucene use Version.LUCENE_CURRENT, which is fine in trunk, as we use the most recent version without hassle and changing this in later versions.

        The problem is, if we copy these tests to backwards branch after 3.1 is out and then start to improve analyzers, we then will have the maintenance hell for backwards tests. And we loose backward compatibility testing for older versions. If we would specify a specific version like LUCENE_31 in our tests, after moving to backwards they must work without any changes!

        To not always modify all tests after a new version comes out (e.g. after switching to 3.2 dev), I propose to do the following:
        - declare a static final Version TEST_VERSION = Version.LUCENE_CURRENT (or better) Version.LUCENE_31 in LuceneTestCase(4J).
        - change all tests that use Version.LUCENE_CURRENT using eclipse refactor to use this constant and remove unneeded import statements.

        When we then move the tests to backward we must only change one line, depending on how we define this constant:
        - If in trunk LuceneTestCase it's Version.LUCENE_CURRENT, we just change the backwards branch to use the version numer of the released thing.
        - If trunk already uses the LUCENE_31 constant (I prefer this), we do not need to change backwards, but instead when switching version numbers we just move trunk forward to the next major version (after added to Version enum).
        Uwe Schindler made changes -
        Attachment LUCENE-2248.patch [ 12435083 ]
        Uwe Schindler made changes -
        Assignee Uwe Schindler [ thetaphi ]
        Uwe Schindler made changes -
        Attachment LUCENE-2248.patch [ 12435085 ]
        Uwe Schindler made changes -
        Attachment LUCENE-2248.patch [ 12435163 ]
        Uwe Schindler made changes -
        Attachment LUCENE-2248.patch [ 12435165 ]
        Uwe Schindler made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Uwe Schindler made changes -
        Attachment LUCENE-2248.patch [ 12435442 ]
        Mark Thomas made changes -
        Workflow jira [ 12497995 ] Default workflow, editable Closed status [ 12564255 ]
        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12564255 ] jira [ 12584047 ]
        Shai Erera made changes -
        Component/s contrib/analyzers [ 12312333 ]
        Shai Erera made changes -
        Component/s contrib/wikipedia [ 12312097 ]
        Uwe Schindler made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Uwe Schindler
            Reporter:
            Uwe Schindler
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development