Skip to content

Commit 5384a46

Browse files
authored
Update CONTRIBUTING.md
1 parent c4eec45 commit 5384a46

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

CONTRIBUTING.md

+25-17
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
# Contributing Guidelines
22

3-
PySCF-forge repository is a place where new methodologies, pilot features, and
4-
testing functionalities can be developed and tested before being integrated into
5-
the PySCF core branch (https://github.com/pyscf/pyscf). The PySCF core branch is
6-
supposed to serve methods that have been published and widely used.
3+
The PySCF-forge repository is a place to stage new methodologies that may one day be incorporated
4+
into the PySCF core branch (https://github.com/pyscf/pyscf). By placing your code into PySCF-forge,
5+
existing PySCF maintainers will have a chance to comment on the code and work with you to assess the feasibility and
6+
suitability for the core. Placing your code in PySCF-forge means that pull requests
7+
have to be approved by an existing PySCF maintainer, so it is not the place for code that is in
8+
the earliest stages of development. Code in PySCF-forge does not necessarily make it into the core branch: this requires
9+
explicit approval from the board (see below). Note that the PySCF core branch is
10+
intended only for methods that have been published and are widely used (or have the clear potential for wide use).
711

812
When you install both the PySCF and PySCF-forge packages, you can access the
913
features of PySCF-forge using `from pyscf import ...` statement, just like you
1014
would access the regular features in the PySCF core branch.
1115

1216
You might have noticed several PySCF extensions hosted in the PySCF organization
13-
page on GitHub (https://github.com/pyscf). These extensions are created to
14-
decouple compilation and maintenance efforts from the PySCF core branch. They
15-
are expected to follow the same standards of documentation, testing,
17+
page on GitHub (https://github.com/pyscf). These extensions have been created to
18+
decouple compilation and maintenance efforts from the PySCF core branch.
19+
They are expected to follow the same standards of documentation, testing,
1620
cross-Python-version compatibility, and maintenance requirements as the core
17-
branch. You are welcome to release new features as PySCF extensions. If you
18-
choose to develop features as PySCF extensions, please contact any PySCF
19-
maintainers at https://github.com/orgs/pyscf/people .
21+
branch, but the PySCF maintainers do not actively ensure these standards are met.
22+
Most new features which are built using PySCF, but which do not affect the core functionality, are best released as extensions,
23+
and you always welcome to do so. If you
24+
choose to develop a feature as a PySCF extension, please contact any of the PySCF
25+
maintainers at https://github.com/orgs/pyscf/people.
2026

2127
## Principles
2228

@@ -29,10 +35,10 @@ maintainers at https://github.com/orgs/pyscf/people .
2935
A code review will still be required for pull requests (PR) for PySCF-forge.
3036
Please update the code appropriately based on reviewers' suggestions.
3137
The PR will not be merged until all comments are addressed. Additionally,
32-
there is a quick static code check for the code that should all pass.
38+
there is a quick static code check, which the code should pass.
3339

3440
* Avoiding filename and module conflicts.
35-
PySCF-forge manages sub-packages through the mechanism "namespace packages".
41+
PySCF-forge manages sub-packages through the mechanism of "namespace packages".
3642
When installing PySCF-forge, the sub-packages will be installed in the same
3743
directory as PySCF. This ensures that these features can be accessed within
3844
the same namespace as PySCF. If any packages or files have the same name as
@@ -51,7 +57,7 @@ maintainers at https://github.com/orgs/pyscf/people .
5157
* Module compatibility and removal policy.
5258
If a module causes installation or compatibility issues with existing modules or
5359
those in the PySCF core branch, a post will be created on GitHub issue board to
54-
address the problem. Features may be removed without notifying to the contributor.
60+
address the problem. Features may be removed without notifying the contributor.
5561

5662
* Compiling C/C++ extensions.
5763
You can utilize CMake or `setuptools.Extension` in setup.py within the
@@ -60,13 +66,15 @@ maintainers at https://github.com/orgs/pyscf/people .
6066
should be compiled and placed under the directory `pyscf-forge/pyscf/lib`.
6167
This is the location where .so files will be packaged in wheel.
6268

63-
## How to transfer a feature to PySCF core branch?
69+
## How to transfer a feature to the PySCF core branch?
6470

6571
After a feature has been added to PySCF-forge for over 6 months, developers can
66-
open an issue to request transferring the feature to the PySCF core branch.
72+
open an issue to request to transfer the feature to the PySCF core branch.
6773
The proposal template can be accessed at (TBD). The proposal will be reviewed
68-
during the PySCF board meetings, held approximately every 3 months.
74+
during the PySCF board meetings, held approximately every 3 months. If it is decided that
75+
the feature is incompatible with the requirements of the core branch, the board may recommend
76+
additional modifications, or that the feature be removed from PySCF-forge.
6977

7078
---
7179

72-
Thank you for considering contributing your works to PySCF community!
80+
Thank you for considering contributing your work to the PySCF community!

0 commit comments

Comments
 (0)