Skip to content

Latest commit

 

History

History
109 lines (76 loc) · 4.02 KB

CONTRIBUTING.md

File metadata and controls

109 lines (76 loc) · 4.02 KB

Contributing to GraphScope

GraphScope has been developed by an active team of software engineers and researchers. Any contributions from the open-source community to improve this project are welcome!

GraphScope is licensed under Apache License 2.0.

Newcomers to GraphScope

For newcomers to GraphScope, you could find instructions about how to build and run applications using GraphScope in README.

GraphScope is hosted on GitHub, and use GitHub issues as the bug tracker. you can file an issue when you meets trouble when working with GraphScope.

Before creating a new bug entry, we recommend you first search among existing GraphScope bugs to see if it has already been resolved.

When creating a new bug entry, please provide necessary information of your problem in the description , such as operating system version, GraphScope version, and other system configurations to help us diagnose the problem.

We also welcome any help on GraphScope from the community, including but not limited to fixing bugs and adding new features. Note that you will be required to sign the CLA before submitting patches to us.

Documentation

GraphScope documentation is generated using Doxygen and sphinx. Users can build the documentation in the build directory using:

make graphscope-docs

The HTML documentation will be available under docs/_build/html:

open docs/index.html

The latest version of online documentation can be found at https://graphscope.io/docs.

GraphScope provides comprehensive documents to explain the underlying design and implementation details. The documentation follows the syntax of Doxygen and sphinx markup. If you find anything you can help, submit pull request to us. Thanks for your enthusiasm!

Build Python Wheels

The GraphScope python package is built using the manylinux2010 environments. Please refer to ./docs/developer_guide.rst for more detail instructions.

Working Convention

Code format

GraphScope follows the Google C++ Style Guide for C++ code, and the black code style for Python code. When submitting patches to GraphScope, please format your code with clang-format by the Makefile command make graphscope_clformat, and make sure your code doesn't break the cpplint convention using the Makefile command make graphscope_cpplint.

Open a pull request

When opening issues or submitting pull requests, we'll ask you to prefix the pull request title with the issue number and the kind of patch (BUGFIX or FEATURE) in brackets, for example, [BUGFIX-1234] Fix bug in SSSP on property graph or [FEATURE-2345] Support loading empty graphs.

Git workflow for newcomers

You generally do NOT need to rebase your pull requests unless there are merge conflicts with the main. When GitHub complaining that "Can’t automatically merge" on your pull request, you'll be asked to rebase your pull request on top of the latest main branch, using the following commands:

  • First rebasing to the most recent main:

      git remote add upstream https://github.com/alibaba/GraphScope.git
      git fetch upstream
      git rebase upstream/main
    
  • Then git may show you some conflicts when it cannot merge, say conflict.cpp, you need

    • Manually modify the file to resolve the conflicts

    • After resolved, mark it as resolved by

      git add conflict.cpp
      
  • Then you can continue rebasing by

      git rebase --continue
    
  • Finally push to your fork, then the pull request will be got updated:

      git push --force