http://www.perlmonks.org?node_id=982205


in reply to Re^4: Perl 6: Managing breakages across Rakudo versions
in thread Perl 6: Managing breakages across Rakudo Star versions

But if you are not going to break backwards compatibility

"not breaking backwards compatiblity" isn't on the menu plate at all. The original question was how to manage breaking changes:

In practice what this means is that we want to minimize the number and impact of any "breakages" that people encounter when using existing code on subsequent releases of Rakudo Star.

So, the question is not "should we stop to break backwards compatiblity", but "how do we do it while doing least harm to our users".

I don't think that chosing one release and declaring it "production ready" out of the blue, and not doing any breaking changes is going to work. It's much more realistic to first learn how to handle such changes gracefully, then reduce the number of breaking changes, and if that works well, we can start using a stricter policy.

  • Comment on Re^5: Perl 6: Managing breakages across Rakudo versions

Replies are listed 'Best First'.
Re^6: Perl 6: Managing breakages across Rakudo versions
by Anonymous Monk on Jul 17, 2012 at 11:47 UTC

    This doesn't fit in to what is the general definition of a support policy/stability policy.

    Perl 6 is making this a habit to take well used, defined and understood terms and give them totally different meanings. And then then expect the whole world to relearn those new meanings.

    The general definition of a support/stability policy is to define what will be fixed, when it will be fixed, and till how long the fixes will be provided between two 'No going back from once made to public' releases. That's how Perl 5 defines it and all software that is released

    I think what you are talking of is number of test cases failed or spec coverage affected with a particular refactoring effort. In that case a stability policy is meaningless. For a programming language, many features depend on each other.

    A program has many parts, many that depend on each other. If you say you are breaking a very tiny part of it, in essence you break the whole program Eg: If you break the addition operator, you are likely to break all while loops in a program, that is likely to break nearly everything. Therefore a stability policy for any such non backwards compatible release doesn't make much sense.

      I think the idea is to make Rakudo a viable platform for developing extensions (like, say, LWP6, DBI6, AnyEvent6) for. Nobody will port a library to Rakudo if there is no soft or hard promise of how much breakage will happen how fast.

      I interpret the call for comments as an attempt to gauge how much interest there is in stability of Rakudo, and/or as an announcement that Rakudo will try to change less radically or less quickly than it did before.

      This doesn't fit in to what is the general definition of a support policy/stability policy.

      So, who said we are going to have a support policy/stability policy, and that it doesn't meet the general definition of these terms? Once again, we were asking for feedback on how to manage changes. I think you're reading things that weren't written.

      If you are a user or a potential use of Rakudo, actual, non-bikeshedding feedback on that topic is very much appreciated.

        I will give you a frank feedback on what I think should be the way forward for managing things in Rakudo

        1. No more major rewrites, as they break a lot of code and a lot of catching up is required in the months that follow.

        2. Implementation for at least one backend complete, which is backwards compatible, has basic libraries and usable documentation.

        3. Path towards making Perl 5 and CPAN compatible defined, and planned to achieve over a period of time.

      I think what you are talking of is number of test cases failed or spec coverage affected with a particular refactoring effort.

      No.

      Eg: If you break the addition operator, you are likely to break all while loops in a program, that is likely to break nearly everything. Therefore a stability policy for any such non backwards compatible release doesn't make much sense.

      Imagine that Perl 6 and Rakudo have reached the point that it's very unlikely that such a basic problem would occur but might. More generally, issues are much more likely to arise than with a mature product such as Perl 5.

      If you were writing Perl 6 code that runs under Rakudo, wouldn't you want to know what the Rakudo team thinks about such things? Wouldn't you want to know whether they'd consciously break the addition operator and how much notice you might get if they did, and what happens if it occurs accidentally, and so on? Wouldn't you want to know what explicit commitments they are making in this regard? Wouldn't you want to participate in discussions about this?

        Wouldn't you want to know whether they'd consciously break ...

        I might like to know it, but I shouldn't be surprised and wouldn't be heartbroken to learn it.

        If you are guaranteed to break stuff(which is no backwards compatibility) a stability policy has little meaning.

        I cannot imagine anyone, breaking something for just fun. I know there are valid reasons why anybody would break anything.

        If you want to discuss about a stability policy you must first work towards a backward compatible release