Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cucumber/cucumber-jvm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v4.7.4
Choose a base ref
...
head repository: cucumber/cucumber-jvm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v4.8.0
Choose a head ref
  • 4 commits
  • 34 files changed
  • 3 contributors

Commits on Oct 5, 2019

  1. Configuration menu
    Copy the full SHA
    e883987 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2019

  1. [Java] Deprecate timout in favour of library based solutions

    It is possible to provide a timeout to step definitions, however the
    semantics are unreliable ( #1506).
    
    ```java
    @given(value = "^I have (\\d+) cukes in my belly$", timeout = 5000)
    public void I_have_cukes_in_my_belly(int cukes) throws Throwable {
    
    }
    ```
    
    Fixes: #1694
    
    When the step starts a long running task Cucumber will attempt to
    interrupt the step once the timeout period is exceeded. If the long
    running task ignores the interrupt Cucumber will however not stop the
    test. Depending on the context this behavior is either desired or
    undesirable. See #1506 for in detail discussion.
    
    Additionally the current implementation is complex and has been prone
    to failures (#1244, #1241, #811, #639, #540).
    
    While it is possible to implement different strategies to deal with
    timeouts; there is no perfect solution. And regardless of which solution
    we pick we would take on a significant amount of complexity. So I
    believe that for Cucumber there is no good solution.
    
    However this problem has been solved by various libraries:
    
     * [JUnit 5 `Assertions.assertTimeout*`](https://junit.org/junit5/docs/5.0.1/api/org/junit/jupiter/api/Assertions.html#assertTimeout-java.time.Duration-org.junit.jupiter.api.function.Executable-)
     * [Awaitility](https://github.com/awaitility/awaitility)
     * [Guava `TimeLimiter`](https://github.com/google/guava/blob/master/guava/src/com/google/common/util/concurrent/TimeLimiter.java)
    
    So rather then keeping a poor feature alive we should recommend users
    to migrate to third party solutions.
    
    Remove the eldritch horror that is `Invoker/Timeout.timeout`. While this
    could have been done in v4.x, v5 will use Java 8 and most of the above
    libraries require Java 8.
    
    (cherry picked from commit 0ee6620)
    mpkorstanje committed Oct 8, 2019
    Configuration menu
    Copy the full SHA
    ad78266 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2019

  1. [Core] Update jQuery from 1.8.2 to 3.4.1 (#1794)

    Updates jQuery to a supported version of jQuery that is safer and won't
    cause security scanners to flag the library as vulnerable.
    
    (cherry picked from commit f68be2c)
    clarkead authored and mpkorstanje committed Oct 9, 2019
    Configuration menu
    Copy the full SHA
    95ccb90 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2019

  1. Configuration menu
    Copy the full SHA
    db5611a View commit details
    Browse the repository at this point in the history
Loading