瀏覽代碼

Add initial CONTRIBUTING.md file

Closes #962
rdb 5 年之前
父節點
當前提交
8ae4c8eee8
共有 1 個文件被更改,包括 48 次插入16 次删除
  1. 48 16
      CONTRIBUTING.md

+ 48 - 16
CONTRIBUTING.md

@@ -1,23 +1,55 @@
 # Contributing to Panda3D
-Thank you for looking into ways to contribute to Panda3D.
-Most information on how to contribute and get involved already exists in other places.
-Therefore this page serves as another way to find those resources.
 
-## Useful Links
-* [panda3d.org](https://www.panda3d.org)
-* [Manual](https://docs.panda3d.org/1.10/python/index)
+Panda3D is an open-source, community-driven project, completely dependent on the
+contribution of volunteers.  As such we highly welcome you to contribute code to
+the project.  This document aims to outline some guidelines for doing so.
 
-### Getting in Touch With the Community
-* [Discord](https://discord.gg/UyepRMm)
-* [IRC](https://www.panda3d.org/manual/?title=The_IRC_Channel)
-* [Forum](https://discourse.panda3d.org/)
+If you would like to contribute but aren't sure where to start, please visit the
+[Get Involved](https://www.panda3d.org/get-involved/) page on our website, or
+the excellent [Open Source Guide](https://opensource.guide/how-to-contribute/).
 
+## Before implementing a change
 
-## Building the Project
-Information on how to build Panda3D can be found in the [README](https://github.com/panda3d/panda3d#building-panda3d).
+We highly recommend that you file issues before making a change.  Issues are
+used to track bugs and feature requests but also to get feedback from the other
+developers about design decisions or a specific implementation strategy.
 
-## Testing the Project
-Information on how to test Panda3D can be found in the [README](https://github.com/panda3d/panda3d#running-tests).
+It is important for acceptance that the change is implemented in a way that fits
+the general design principles of the Panda3D API, and fits well with the general
+priorities of the team.  Therefore, prior discussion with other developers is
+critical.  Issues can be used to facilitate this, but we also invite you to
+visit the #development channel on Discord (or #panda3d-devel on FreeNode IRC).
 
-## Ways to Get Involved
-Information on various ways to get involved with Panda3D can be found [on the main web site](https://www.panda3d.org/get-involved/).
+We also recommend that you familiarize yourself with the established coding
+style and design patterns of Panda3D, to reduce the amount of changes that have
+to be made during the review process.
+
+## Submitting a change
+
+All changes from non-core contributors are made via pull requests.  This
+requires you to fork the Panda3D repository, create a branch for your change,
+push your changes to this branch, and request that this branch is merged into
+the upstream branch.  Each pull request is reviewed by a maintainer and
+automatically tested for regressions and unit test coverage.  The maintainer
+will suggest any changes, which you can add by committing more code to the same
+branch (you can do a force push if necessary).  Once the change is deemed
+acceptable, the maintainer will merge your change into the appropriate branch of
+the repository.
+
+To make it easier for the maintainer to review your changes, we highly recommend
+that you give a clear and concise description of intent (linking to any issues
+that are resolved by the change), as well as the inclusion of unit tests, which
+contribute to a high level of confidence that this change does not break any
+existing behaviours.  We also recommend breaking up separate changes into
+separate PRs, rather than submitting one big PR with several unrelated changes.
+
+If your change is still a work in progress, please mark the PR as "draft".  This
+will prevent other contributors from receiving an email every time you push a
+new change to your branch.  Draft PRs can also be used to invite early feedback
+on your change, especially if you are uncertain about whether you are going in
+the right direction.
+
+The code in the Panda3D repository is copyrighted to Carnegie Mellon University
+and licensed under the Modified BSD License.  By submitting your changes, you
+accept that your code becomes placed under the same license.  Except in specific
+agreed-upon cases, we do not accept code contributions under alternate licenses.