Hi,
do we know what is the reason users stay on an older version of Beam? My guess would be that it is not related to API changes, but more likely to state incompatibility. Maybe if we could figure out a way which would enable a smooth migration of state (and timers) between Beam versions, that might help? The migration would probably have to be runner-dependent, but Beam might offer some tooling to make this easier. One example would be coder evolution, where we currently do not have the option of "reading old way, writing new way" with some "coder-version-registry". I suppose there might have been a discussion about this in the past, does anyone know of any conclusion?

 Jan

On 4/6/21 10:54 PM, Robert Bradshaw wrote:
I do think there's value in having an LTS release, if there's sufficient interest to fund it (specifically, figuring out who would be backporting fixes and cutting the new releases).

On Mon, Apr 5, 2021 at 1:14 PM Elliotte Rusty Harold <elh...@ibiblio.org <mailto:elh...@ibiblio.org>> wrote:

    Hi,

    I'd like to return to the discussion around a long term support
    release that first came up here in 2018:

    
https://lists.apache.org/thread.html/6ec572d8edfe93225edebec18792cbcf44ef447ffe54ea35549cdafe%40%3Cdev.beam.apache.org%3E
    
<https://lists.apache.org/thread.html/6ec572d8edfe93225edebec18792cbcf44ef447ffe54ea35549cdafe%40%3Cdev.beam.apache.org%3E>

    This is important to some Google Cloud Dataflow Java customers, and
    likely others as well.

    Specifically, I'd like to propose cutting an LTS release off a branch
    and maintaining it with critical bug fixes and security updates for 18
    months. Right now we're finding that the current one year support
    period and six week release cycle is a tad fast for some customers.

    There's some wiggle room in terms of what's "critical", but in
    that category I include security fixes and data integrity issues.
    Essentially, this is any bug so bad that, if found in a new release,
    we'd recommend customers wait for the fix before upgrading to the
    latest and greatest. The difference is we'd backport the patch to the
    not-latest-and-greatest release.

    To run something up the flagpole, I propose:

    1. 2.28.0 becomes the first LTS release.
    2. New patch versions are released as 2.28.1, 2.28.2, etc.
    3. Patch releases do not change API, at all, except in the unlikely
    event this is absolutely required for a security fix.
    4. Dependencies are not upgraded in patch releases unless required to
    fix a critical bug or security issue.
    5. In a year, cut a new LTS release from whatever is then current so
    there's some overlap to give customers time to switch over.

    I picked 2.28.0 since it's the most recent release, and I prefer to
    stay off the bleeding edge for longterm support. This would also
    enable customers to develop on top of it sooner. However I understand
    others may well prefer to pick a different release such as 2.29.0 or
    2.30.0. I'm OK with whatever recent version the community picks.

    Thoughts?

-- Elliotte Rusty Harold
    elh...@ibiblio.org <mailto:elh...@ibiblio.org>

Reply via email to