1
1
# Contributing Guidelines
2
2
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).
7
11
8
12
When you install both the PySCF and PySCF-forge packages, you can access the
9
13
features of PySCF-forge using ` from pyscf import ... ` statement, just like you
10
14
would access the regular features in the PySCF core branch.
11
15
12
16
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,
16
20
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 .
20
26
21
27
## Principles
22
28
@@ -29,10 +35,10 @@ maintainers at https://github.com/orgs/pyscf/people .
29
35
A code review will still be required for pull requests (PR) for PySCF-forge.
30
36
Please update the code appropriately based on reviewers' suggestions.
31
37
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.
33
39
34
40
* 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".
36
42
When installing PySCF-forge, the sub-packages will be installed in the same
37
43
directory as PySCF. This ensures that these features can be accessed within
38
44
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 .
51
57
* Module compatibility and removal policy.
52
58
If a module causes installation or compatibility issues with existing modules or
53
59
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.
55
61
56
62
* Compiling C/C++ extensions.
57
63
You can utilize CMake or ` setuptools.Extension ` in setup.py within the
@@ -60,13 +66,15 @@ maintainers at https://github.com/orgs/pyscf/people .
60
66
should be compiled and placed under the directory ` pyscf-forge/pyscf/lib ` .
61
67
This is the location where .so files will be packaged in wheel.
62
68
63
- ## How to transfer a feature to PySCF core branch?
69
+ ## How to transfer a feature to the PySCF core branch?
64
70
65
71
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.
67
73
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.
69
77
70
78
---
71
79
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