+1 to either doing full release or deferring to 2.56.0.

 Jan

On 3/28/24 16:52, Yi Hu via dev wrote:
> Just releasing Python can break multi-lang by default (unless expansion service is overridden manually) since we match versions across languages when picking the default expansion service.

Yes, that's why I proposed "the source code of release candidate (e.g. apache_beam/version.py) still reads 2.55.0. " Anyways it seems doing a full release is preferred as it reduces the risk of breakages.

On Thu, Mar 28, 2024 at 11:38 AM Chamikara Jayalath via dev <dev@beam.apache.org> wrote:



    On Thu, Mar 28, 2024 at 8:36 AM Chamikara Jayalath
    <chamik...@google.com> wrote:

        Just releasing Python can break multi-lang by default (unless
        expansion service is overridden manually) since we match
        versions across languages when picking the default expansion
        service.

        
https://github.com/apache/beam/blob/2f8854a3e34f31c1cc034f95ad36f317abc906ff/sdks/python/apache_beam/utils/subprocess_server.py#L42


    Correct link:
    
https://github.com/apache/beam/blob/2f8854a3e34f31c1cc034f95ad36f317abc906ff/sdks/python/apache_beam/utils/subprocess_server.py#L352



        Thanks,
        Cham

        On Thu, Mar 28, 2024 at 8:26 AM Danny McCormick via dev
        <dev@beam.apache.org> wrote:

            > The patch itself [1] is trivial, however, the release
            process is not trivial. There is little documentation nor
            practice for a patch release process. I could imagine two
            options

            I think there's not a ton of documentation because we
            haven't done it, but all the release workflows were
            authored in such a way that they should "just work",
            outside of cutting the release branch itself. So the
            workflow should be almost identical to the existing one,
            but with several steps skipped (cherry picks, beam
            website, most validation). Notably, this shouldn't be any
            easier/harder if we're doing it for one language or all 3.

            I can take that on if needed.

            > Besides, there should be a Beam YAML validation workflow
            and added in
            
https://docs.google.com/spreadsheets/d/1qk-N5vjXvbcEk68GjbkSZTR8AGqyNUM-oLFo_ZXBpJw/edit#gid=1368030253

            > If we do a patch release for Python SDK, let's also
            patch another known issue for which fix is available:
            https://github.com/apache/beam/blob/master/CHANGES.md#known-issues-1

            +1 to both of these

            On Thu, Mar 28, 2024 at 11:25 AM Yi Hu via dev
            <dev@beam.apache.org> wrote:

                Thanks Valentyn for raising this. In this case, Python
                containers will also be included. Different from PyPI
                wheels, docker tag can override so it can stay with 2.55.0

                On Thu, Mar 28, 2024 at 11:15 AM Valentyn Tymofieiev
                <valen...@google.com> wrote:

                    If we do a patch release for Python SDK, let's
                    also patch another known issue for which fix is
                    available:
                    
https://github.com/apache/beam/blob/master/CHANGES.md#known-issues-1

                    On Thu, Mar 28, 2024 at 8:01 AM Yi Hu via dev
                    <dev@beam.apache.org> wrote:

                        2.55.0 release manager here

                        The patch itself [1] is trivial, however, the
                        release process is not trivial. There is
                        little documentation nor practice for a patch
                        release process. I could imagine two options

                        1. Do a full "2.55.1" release

                        2. Do a patch release only for Python SDK, that is
                          a. cherry-pick [1] into release-2.55.0 branch
                          b. tag a 2.55.1rc1 release candidate - note
                        that the source code of release candidate
                        (e.g. apache_beam/version.py) still reads
                        2.55.0. This ensures Python SDK picks up the
                        Java expansion service / job server of
                        existing version (2.55.0). We did it once for
                        Go SDK
                        (https://github.com/apache/beam/tree/sdks/v2.48.2)
                          c. Build the release candidate for Python
                        wheels (also Python containers? Not sure if it
                        is needed)
                          d. send out the RC for validation
                          e. finalize the release

                        If we decided to do a patch release I would
                        prefer option 2. I can take on that if decided
                        to do. However, if we decide do a full release
                        (or both Java and Python) I would suggest
                        defer to next release cycle, as the release
                        process itself could take ~10 days minimum if
                        there is single RC.

                        Besides, there should be a Beam YAML
                        validation workflow and added in
                        
https://docs.google.com/spreadsheets/d/1qk-N5vjXvbcEk68GjbkSZTR8AGqyNUM-oLFo_ZXBpJw/edit#gid=1368030253


                        [1] https://github.com/apache/beam/pull/30780

                        On Thu, Mar 28, 2024 at 10:22 AM Danny
                        McCormick via dev <dev@beam.apache.org> wrote:

                            +1 on a patch release - we've done a fair
                            amount of work to make releasing easier,
                            and one of my hopes is that it will enable
                            quick patches like this. I'd vote we try
                            to fix the underlying Java piece as well,
                            though, doing a patch release for one
                            language shouldn't be significantly
                            cheaper than doing it for multiple languages.

                            Thanks,
                            Danny

                            On Wed, Mar 27, 2024 at 7:19 PM Robert
                            Burke <rob...@frantil.com> wrote:

                                +1 to a targeted patch release.

                                We did the same for the Go SDK a
                                little while back. It would be good to
                                see what's different for a different SDK.

                                On Wed, Mar 27, 2024, 4:01 PM Robert
                                Bradshaw via dev <dev@beam.apache.org>
                                wrote:

                                    Given the severity of
                                    the breakage, and the simplicity
                                    of the workaround, I'm in favor of
                                    a patch release. I think we could
                                    do Python-only, which would make
                                    the process even more lightweight.

                                    On Wed, Mar 27, 2024 at 3:48 PM
                                    Jeff Kinard <j...@thekinards.com>
                                    wrote:

                                        Hi all,

                                        Beam 2.55 was released with a
                                        bug that causes WriteToJson on
                                        Beam YAML to fail when using
                                        the Java variant. This also
                                        affects any user attempting to
                                        use the Xlang
                                        JsonWriteTransformProvider -
                                        
https://github.com/apache/beam/blob/master/sdks/java/io/json/src/main/java/org/apache/beam/sdk/io/json/providers/JsonWriteTransformProvider.java


                                        This is due to a change to
                                        
https://github.com/apache/beam/blob/master/sdks/java/io/json/build.gradle
                                        that removed
                                        a dependency on everit which
                                        also removed it from being
                                        packaged into the expansion
                                        service JAR:
                                        
beam-sdks-java-extensions-sql-expansion-service-2.55.0.jar


                                        There is a temporary fix to
                                        disable the provider in Beam
                                        YAML:
                                        
https://github.com/apache/beam/pull/30777

                                        I think with the total loss of
                                        function, and a trivial fix,
                                        it is worth creating a patch
                                        release of Beam 2.55 to
                                        include this fix.

                                        - Jeff

Reply via email to