You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pegasus.apache.org by Yingchun Lai <ac...@gmail.com> on 2022/06/06 03:39:27 UTC

Re: [DISCUSSION] Plan to merge xiaomi/rdsn repository to apache/incubator-pegasus

I'm going to do this work, and this plan will be tracked on GitHub issue[1].
Thanks!

1. https://github.com/apache/incubator-pegasus/issues/945

Best regards,
Yingchun Lai

On Mon, May 30, 2022 at 11:34 AM Jia Shuo <js...@live.com> wrote:
>
> Good! I agree with it!
> ________________________________
> 发件人: Yingchun Lai <la...@apache.org>
> 发送时间: 2022年5月30日 11:25
> 收件人: dev@pegasus.apache.org <de...@pegasus.apache.org>; dev <de...@pegasus.incubator.apache.org>; private@pegasus.incubator.apache.org <pr...@pegasus.incubator.apache.org>; private@pegasus.apache.org <pr...@pegasus.apache.org>
> 主题: [DISCUSSION] Plan to merge xiaomi/rdsn repository to apache/incubator-pegasus
>
> # Background
>
> rDSN (Robust Distributed System Nucleus), is a framework for quickly
> building robust distributed systems, you can see more details about
> rDSN on its official site on GitHub[1].
> Apache Pegasus uses rDSN as an underlying dependent layer since the
> Pegasus project started in 2015 at XiaoMi, we forked the repository
> and contributed to the forked repository in Pegasus usage scenarios,
> including modifying files, adding files, and deleting files.
> Since the forked XiaoMi rDSN repository is so different from the
> original Microsoft repository, it's very hard to pick these changes
> back, and the original repository is not active for years, it seems
> nobody maintains it since 2019. Furthermore, the XiaoMi rDSN
> repository is specially modified and only used for Apache Pegasus, to
> reduce the maintenance cost of Pegasus, we are planning to merge
> XiaoMi rDSN to Apache Pegasus repository for years.
>
> # Roadmap
> There are several steps we are going to take, and I will list the
> indefinite points we can discuss.
> Yuchen has listed the license problems we have to resolve[2], now it's
> a chance to do it.
>
> 1. Create a pull request to add license checker in XiaoMi rDSN
> repository on GitHub
>   - It will use apache/skywalking-eyes [3] github action
>   - It will check the files lack of a specified license, here we use
> it to check the Apache License, Version 2.0 license
>   - Then it will give a report with a file list which lack of APLv2
>
> 2. Add/Update license header for the files reported in step 1 in the
> rDSN project. There are some cases:
>   a. The files lack any license header(e.g. [4]):
>       - we will add APLv2 license header for them
>       Q: Is it OK to add the Apache license header to the files which
> were originally created by Microsoft ?
>
>   b. The files have the MIT license header, and copyright is Microsoft
> (e.g. [5]):
>       - we will not modify these license
>       - we will add rule for the checker action to ignore these files
>       - we should add their license to LICENSE file in the project root path
>
>   c. The files has APLv2 license header, and copyright is XiaoMi (the
> company who donate Pegasus project to ASF, e.g. [6])
>       - we will remove the copyright and simplified Apache license header
>       - then add standard APLv2 header for them
>
>   d.There are a few files have other type of license or copyright:
>       // I'm not sure, you guys can check it again
>       - APLv2 License, copyright Facebook (e.g. [7]): The same to '2.b'
>       - zlib License, copyright Jeff Preshing (e.g. [8]): The same to '2.b'
>       - BSD-style license, copyright The Chromium Authors (e.g. [9]):
> The same to '2.b'
>       - APLv2 License, copyright The Abseil Authors (e.g. [10]): The
> same to '2.b'
>       - BSD-style license, copyright Rob Jansen (e.g. [11]): The same to '2.b'
>       - MIT license, copyright Guillaume Papin (e.g. [12]): The same to '2.b'
>
> 3. Make sure all license problems are resolved, and there is no
> ongoing development work on XiaoMi rDSN repository.
> 4. Add rdsn as subdirectory instead of submodule in the Pegasus project
>   - As how the other Pegasus client projects did [13]
>   - Add licenses to LICENSE file in Pegasus
> 5. Reorganize the subdirectories, and also related CMakeList.txt files.
>
>
> Links:
> 1. https://github.com/microsoft/rDSN
> 2. https://github.com/apache/incubator-pegasus/issues/823
> 3. https://github.com/apache/skywalking-eyes
> 4. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/crc.h
> 5. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/service_api_cpp.h
> 6. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/aio/aio_task.cpp
> 7. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/TokenBucket.h
> 8. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/hpc_locks/autoreseteventcondvar.h
> 9. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/runtime/build_config.h
> 10. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/absl/base/internal/invoke.h
> 11. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/bin/FindRT.cmake
> 12. https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/scripts/linux/run-clang-format.py
> 13. https://github.com/apache/incubator-pegasus/issues/945
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: private-unsubscribe@pegasus.apache.org
> For additional commands, e-mail: private-help@pegasus.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pegasus.apache.org
For additional commands, e-mail: dev-help@pegasus.apache.org


Re: [DISCUSSION] Plan to merge xiaomi/rdsn repository to apache/incubator-pegasus

Posted by Yingchun Lai <ac...@gmail.com>.
I think MIT license does not require a license header for every source
file, so as long as the project itself is licensed under MIT, I think we
should consider all the files in it are licensed under MIT, and the
copyright owner is microsoft by default.
--
I see. IMO it would be better to add the MIT license for these files
without any license header, and keep the license header after
xiaomi/rdsn repo has been migrated to apache/incubator-pegasus repo.


Did the SGA between ASF and Xiaomi include these files?

And I suggest we contact Xiaomi through the official channel about this
operation. Although this operation could just be a copy, but I prefer we do
it like a 'migration', i.e, after merging it, we just archive the repo of
XiaoMi/rdsn
--
I don't remember whether the SGA include these files or not, could
anybody find the SGA copy to check that?

Best regards,
Yingchun Lai




On Tue, Jun 7, 2022 at 9:42 PM 张铎(Duo Zhang) <pa...@gmail.com> wrote:
>
>  a. The files lack any license header(e.g. [4]):
>       - we will add APLv2 license header for them
>       Q: Is it OK to add the Apache license header to the files which
> were originally created by Microsoft ?
>
> I think MIT license does not require a license header for every source
> file, so as long as the project itself is licensed under MIT, I think we
> should consider all the files in it are licensed under MIT, and the
> copyright owner is microsoft by default.
>
>   c. The files has APLv2 license header, and copyright is XiaoMi (the
> company who donate Pegasus project to ASF, e.g. [6])
>       - we will remove the copyright and simplified Apache license header
>       - then add standard APLv2 header for them
>
> Did the SGA between ASF and Xiaomi include these files?
>
> And I suggest we contact Xiaomi through the official channel about this
> operation. Although this operation could just be a copy, but I prefer we do
> it like a 'migration', i.e, after merging it, we just archive the repo of
> XiaoMi/rdsn
>
> Thanks.
>
> Yingchun Lai <ac...@gmail.com> 于2022年6月6日周一 11:39写道:
>
> > I'm going to do this work, and this plan will be tracked on GitHub
> > issue[1].
> > Thanks!
> >
> > 1. https://github.com/apache/incubator-pegasus/issues/945
> >
> > Best regards,
> > Yingchun Lai
> >
> > On Mon, May 30, 2022 at 11:34 AM Jia Shuo <js...@live.com> wrote:
> > >
> > > Good! I agree with it!
> > > ________________________________
> > > 发件人: Yingchun Lai <la...@apache.org>
> > > 发送时间: 2022年5月30日 11:25
> > > 收件人: dev@pegasus.apache.org <de...@pegasus.apache.org>; dev <
> > dev@pegasus.incubator.apache.org>; private@pegasus.incubator.apache.org <
> > private@pegasus.incubator.apache.org>; private@pegasus.apache.org <
> > private@pegasus.apache.org>
> > > 主题: [DISCUSSION] Plan to merge xiaomi/rdsn repository to
> > apache/incubator-pegasus
> > >
> > > # Background
> > >
> > > rDSN (Robust Distributed System Nucleus), is a framework for quickly
> > > building robust distributed systems, you can see more details about
> > > rDSN on its official site on GitHub[1].
> > > Apache Pegasus uses rDSN as an underlying dependent layer since the
> > > Pegasus project started in 2015 at XiaoMi, we forked the repository
> > > and contributed to the forked repository in Pegasus usage scenarios,
> > > including modifying files, adding files, and deleting files.
> > > Since the forked XiaoMi rDSN repository is so different from the
> > > original Microsoft repository, it's very hard to pick these changes
> > > back, and the original repository is not active for years, it seems
> > > nobody maintains it since 2019. Furthermore, the XiaoMi rDSN
> > > repository is specially modified and only used for Apache Pegasus, to
> > > reduce the maintenance cost of Pegasus, we are planning to merge
> > > XiaoMi rDSN to Apache Pegasus repository for years.
> > >
> > > # Roadmap
> > > There are several steps we are going to take, and I will list the
> > > indefinite points we can discuss.
> > > Yuchen has listed the license problems we have to resolve[2], now it's
> > > a chance to do it.
> > >
> > > 1. Create a pull request to add license checker in XiaoMi rDSN
> > > repository on GitHub
> > >   - It will use apache/skywalking-eyes [3] github action
> > >   - It will check the files lack of a specified license, here we use
> > > it to check the Apache License, Version 2.0 license
> > >   - Then it will give a report with a file list which lack of APLv2
> > >
> > > 2. Add/Update license header for the files reported in step 1 in the
> > > rDSN project. There are some cases:
> > >   a. The files lack any license header(e.g. [4]):
> > >       - we will add APLv2 license header for them
> > >       Q: Is it OK to add the Apache license header to the files which
> > > were originally created by Microsoft ?
> > >
> > >   b. The files have the MIT license header, and copyright is Microsoft
> > > (e.g. [5]):
> > >       - we will not modify these license
> > >       - we will add rule for the checker action to ignore these files
> > >       - we should add their license to LICENSE file in the project root
> > path
> > >
> > >   c. The files has APLv2 license header, and copyright is XiaoMi (the
> > > company who donate Pegasus project to ASF, e.g. [6])
> > >       - we will remove the copyright and simplified Apache license header
> > >       - then add standard APLv2 header for them
> > >
> > >   d.There are a few files have other type of license or copyright:
> > >       // I'm not sure, you guys can check it again
> > >       - APLv2 License, copyright Facebook (e.g. [7]): The same to '2.b'
> > >       - zlib License, copyright Jeff Preshing (e.g. [8]): The same to
> > '2.b'
> > >       - BSD-style license, copyright The Chromium Authors (e.g. [9]):
> > > The same to '2.b'
> > >       - APLv2 License, copyright The Abseil Authors (e.g. [10]): The
> > > same to '2.b'
> > >       - BSD-style license, copyright Rob Jansen (e.g. [11]): The same to
> > '2.b'
> > >       - MIT license, copyright Guillaume Papin (e.g. [12]): The same to
> > '2.b'
> > >
> > > 3. Make sure all license problems are resolved, and there is no
> > > ongoing development work on XiaoMi rDSN repository.
> > > 4. Add rdsn as subdirectory instead of submodule in the Pegasus project
> > >   - As how the other Pegasus client projects did [13]
> > >   - Add licenses to LICENSE file in Pegasus
> > > 5. Reorganize the subdirectories, and also related CMakeList.txt files.
> > >
> > >
> > > Links:
> > > 1. https://github.com/microsoft/rDSN
> > > 2. https://github.com/apache/incubator-pegasus/issues/823
> > > 3. https://github.com/apache/skywalking-eyes
> > > 4.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/crc.h
> > > 5.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/service_api_cpp.h
> > > 6.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/aio/aio_task.cpp
> > > 7.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/TokenBucket.h
> > > 8.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/hpc_locks/autoreseteventcondvar.h
> > > 9.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/runtime/build_config.h
> > > 10.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/absl/base/internal/invoke.h
> > > 11.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/bin/FindRT.cmake
> > > 12.
> > https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/scripts/linux/run-clang-format.py
> > > 13. https://github.com/apache/incubator-pegasus/issues/945
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: private-unsubscribe@pegasus.apache.org
> > > For additional commands, e-mail: private-help@pegasus.apache.org
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: private-unsubscribe@pegasus.apache.org
> > For additional commands, e-mail: private-help@pegasus.apache.org
> >
> >

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pegasus.apache.org
For additional commands, e-mail: dev-help@pegasus.apache.org


Re: [DISCUSSION] Plan to merge xiaomi/rdsn repository to apache/incubator-pegasus

Posted by "张铎(Duo Zhang)" <pa...@gmail.com>.
 a. The files lack any license header(e.g. [4]):
      - we will add APLv2 license header for them
      Q: Is it OK to add the Apache license header to the files which
were originally created by Microsoft ?

I think MIT license does not require a license header for every source
file, so as long as the project itself is licensed under MIT, I think we
should consider all the files in it are licensed under MIT, and the
copyright owner is microsoft by default.

  c. The files has APLv2 license header, and copyright is XiaoMi (the
company who donate Pegasus project to ASF, e.g. [6])
      - we will remove the copyright and simplified Apache license header
      - then add standard APLv2 header for them

Did the SGA between ASF and Xiaomi include these files?

And I suggest we contact Xiaomi through the official channel about this
operation. Although this operation could just be a copy, but I prefer we do
it like a 'migration', i.e, after merging it, we just archive the repo of
XiaoMi/rdsn

Thanks.

Yingchun Lai <ac...@gmail.com> 于2022年6月6日周一 11:39写道:

> I'm going to do this work, and this plan will be tracked on GitHub
> issue[1].
> Thanks!
>
> 1. https://github.com/apache/incubator-pegasus/issues/945
>
> Best regards,
> Yingchun Lai
>
> On Mon, May 30, 2022 at 11:34 AM Jia Shuo <js...@live.com> wrote:
> >
> > Good! I agree with it!
> > ________________________________
> > 发件人: Yingchun Lai <la...@apache.org>
> > 发送时间: 2022年5月30日 11:25
> > 收件人: dev@pegasus.apache.org <de...@pegasus.apache.org>; dev <
> dev@pegasus.incubator.apache.org>; private@pegasus.incubator.apache.org <
> private@pegasus.incubator.apache.org>; private@pegasus.apache.org <
> private@pegasus.apache.org>
> > 主题: [DISCUSSION] Plan to merge xiaomi/rdsn repository to
> apache/incubator-pegasus
> >
> > # Background
> >
> > rDSN (Robust Distributed System Nucleus), is a framework for quickly
> > building robust distributed systems, you can see more details about
> > rDSN on its official site on GitHub[1].
> > Apache Pegasus uses rDSN as an underlying dependent layer since the
> > Pegasus project started in 2015 at XiaoMi, we forked the repository
> > and contributed to the forked repository in Pegasus usage scenarios,
> > including modifying files, adding files, and deleting files.
> > Since the forked XiaoMi rDSN repository is so different from the
> > original Microsoft repository, it's very hard to pick these changes
> > back, and the original repository is not active for years, it seems
> > nobody maintains it since 2019. Furthermore, the XiaoMi rDSN
> > repository is specially modified and only used for Apache Pegasus, to
> > reduce the maintenance cost of Pegasus, we are planning to merge
> > XiaoMi rDSN to Apache Pegasus repository for years.
> >
> > # Roadmap
> > There are several steps we are going to take, and I will list the
> > indefinite points we can discuss.
> > Yuchen has listed the license problems we have to resolve[2], now it's
> > a chance to do it.
> >
> > 1. Create a pull request to add license checker in XiaoMi rDSN
> > repository on GitHub
> >   - It will use apache/skywalking-eyes [3] github action
> >   - It will check the files lack of a specified license, here we use
> > it to check the Apache License, Version 2.0 license
> >   - Then it will give a report with a file list which lack of APLv2
> >
> > 2. Add/Update license header for the files reported in step 1 in the
> > rDSN project. There are some cases:
> >   a. The files lack any license header(e.g. [4]):
> >       - we will add APLv2 license header for them
> >       Q: Is it OK to add the Apache license header to the files which
> > were originally created by Microsoft ?
> >
> >   b. The files have the MIT license header, and copyright is Microsoft
> > (e.g. [5]):
> >       - we will not modify these license
> >       - we will add rule for the checker action to ignore these files
> >       - we should add their license to LICENSE file in the project root
> path
> >
> >   c. The files has APLv2 license header, and copyright is XiaoMi (the
> > company who donate Pegasus project to ASF, e.g. [6])
> >       - we will remove the copyright and simplified Apache license header
> >       - then add standard APLv2 header for them
> >
> >   d.There are a few files have other type of license or copyright:
> >       // I'm not sure, you guys can check it again
> >       - APLv2 License, copyright Facebook (e.g. [7]): The same to '2.b'
> >       - zlib License, copyright Jeff Preshing (e.g. [8]): The same to
> '2.b'
> >       - BSD-style license, copyright The Chromium Authors (e.g. [9]):
> > The same to '2.b'
> >       - APLv2 License, copyright The Abseil Authors (e.g. [10]): The
> > same to '2.b'
> >       - BSD-style license, copyright Rob Jansen (e.g. [11]): The same to
> '2.b'
> >       - MIT license, copyright Guillaume Papin (e.g. [12]): The same to
> '2.b'
> >
> > 3. Make sure all license problems are resolved, and there is no
> > ongoing development work on XiaoMi rDSN repository.
> > 4. Add rdsn as subdirectory instead of submodule in the Pegasus project
> >   - As how the other Pegasus client projects did [13]
> >   - Add licenses to LICENSE file in Pegasus
> > 5. Reorganize the subdirectories, and also related CMakeList.txt files.
> >
> >
> > Links:
> > 1. https://github.com/microsoft/rDSN
> > 2. https://github.com/apache/incubator-pegasus/issues/823
> > 3. https://github.com/apache/skywalking-eyes
> > 4.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/crc.h
> > 5.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/service_api_cpp.h
> > 6.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/aio/aio_task.cpp
> > 7.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/TokenBucket.h
> > 8.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/hpc_locks/autoreseteventcondvar.h
> > 9.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/runtime/build_config.h
> > 10.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/absl/base/internal/invoke.h
> > 11.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/bin/FindRT.cmake
> > 12.
> https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/scripts/linux/run-clang-format.py
> > 13. https://github.com/apache/incubator-pegasus/issues/945
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: private-unsubscribe@pegasus.apache.org
> > For additional commands, e-mail: private-help@pegasus.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: private-unsubscribe@pegasus.apache.org
> For additional commands, e-mail: private-help@pegasus.apache.org
>
>