GithubHelp home page GithubHelp logo

Comments (9)

keithamus avatar keithamus commented on September 13, 2024

This has broken passing back a custom object as the world. For example, I can no longer do this:

//world.js
module.exports = function (callback) {
    var myworld = {
        doStuff: function (){}
    }
    callback(myworld);
}

Instead I now have to do this:

//world.js
module.exports = function (callback) {
    var myworld = {
        doStuff: function (){}
    }
    callback();
    return myworld;
}

This should be pointed out in documentation.

from cucumber-js.

jbpros avatar jbpros commented on September 13, 2024

Damn, I kind of stupidly hoped nobody was doing that just yet.

I had a second thought on the callback parameter thingy and felt it was overcomplicating the API. However, your example is enough to convince me I was wrong. Cucumber.js is actually using a lot of those "inner-constructors" in its own API.

I'll add it back soon.

from cucumber-js.

keithamus avatar keithamus commented on September 13, 2024

As an aside you should look into SemVer, which provides nice guidelines on how to assign version numbers to your releases.

In SemVer, it describes how patch version (x.y.Z) must only fix bugs, without introducing backwards incompatible changes to the code. This allows the rest of us to hang off of the x.y.* branch, automatically updating and all the while fixing bugs, without having to change our code.

from cucumber-js.

keithamus avatar keithamus commented on September 13, 2024

Nevertheless, thanks for your hard work on this. Using it is great fun and I appreciate what you've done.

from cucumber-js.

jbpros avatar jbpros commented on September 13, 2024

You are right, it's the second time I receive complaints about the version numbers. Up until now, I've considered minor numbers to be milestones and patch numbers to be steps within them. There were no more granular version numbers to announce fixes.

I'll stop linking milestones to minor versions and consider patch numbers to be fixes only. Because of the current scheme, we've been stuck on 0.2 for months and it does not make sense anymore.

Thank you for your feedback and encouragement.

from cucumber-js.

jbpros avatar jbpros commented on September 13, 2024

@keithamus I was reading the SemVer spec and the fifth rule states the following:

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

We're still in this initial development phase and I think it makes sense to use minor versions to refer to "initial development milestones".

Milestones 0.3 and 0.4 will have to be completed before we can consider releasing 1.0.

As soon as we hit 1.0, the versioning will be strict and patch versions will contain backward-compatible changes only.

from cucumber-js.

jbpros avatar jbpros commented on September 13, 2024

@keithamus 0.2.12 was released. You can pass a world object to the constructor callback again.

from cucumber-js.

keithamus avatar keithamus commented on September 13, 2024

Great to hear. Will give it a try tomorrow. Thanks for the quick work!

from cucumber-js.

lock avatar lock commented on September 13, 2024

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

from cucumber-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.