You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pegasus.apache.org by GitBox <gi...@apache.org> on 2022/06/06 03:22:28 UTC

[GitHub] [incubator-pegasus] acelyc111 commented on issue #945: Merge sub-projects to Pegasus main repository

acelyc111 commented on issue #945:
URL: https://github.com/apache/incubator-pegasus/issues/945#issuecomment-1146994036

   # How to merge XiaoMi/rDSN
   ## 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.
   @hycdong has listed the license problems we have to resolve[2], now it's
   a chance to do it.
   
   - [ ] 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
   
   - [ ] Add/Update license header for the files reported in step 1 in the rDSN project. There are some cases:
     - [ ] 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 ?
   
     - [ ] 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
   
     - [ ] 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
   
     - [ ] 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'
   
   - [ ] Make sure all license problems are resolved, and there is no
   ongoing development work on XiaoMi rDSN repository.
   - [ ] 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
   - [ ] 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


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pegasus.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


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