-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
44 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,8 +7,7 @@ Build, setup and running tests | |
psutil makes extensive use of C extension modules, meaning a C compiler is | ||
required, see | ||
`install instructions <https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`__. | ||
|
||
Once you have a compiler installed: | ||
Once you have a compiler installed run: | ||
|
||
.. code-block:: bash | ||
|
@@ -28,22 +27,30 @@ Once you have a compiler installed: | |
make test-parallel # faster | ||
make test-memleaks | ||
make test-coverage | ||
make lint # Python (PEP8) and C linters | ||
make lint-all # Run Python and C linter | ||
make fix-all # Fix linting erors | ||
make uninstall | ||
make help | ||
- if you're working on a new feature and you wish to compile & test it "on the | ||
- To run a specific unit test: | ||
|
||
.. code-block:: bash | ||
make test ARGS=psutil.tests.test_system.TestDiskAPIs | ||
- If you're working on a new feature and you wish to compile & test it "on the | ||
fly" from a test script, this is a quick & dirty way to do it: | ||
|
||
.. code-block:: bash | ||
make test TSCRIPT=test_script.py # on UNIX | ||
make test test_script.py # on Windows | ||
- do not use ``sudo``. ``make install`` installs psutil as a limited user in | ||
- Do not use ``sudo``. ``make install`` installs psutil as a limited user in | ||
"edit" mode, meaning you can edit psutil code on the fly while you develop. | ||
|
||
- if you want to target a specific Python version: | ||
- If you want to target a specific Python version: | ||
|
||
.. code-block:: bash | ||
|
@@ -53,7 +60,7 @@ Once you have a compiler installed: | |
Coding style | ||
------------ | ||
|
||
- python code strictly follows `PEP-8`_ styling guides and this is enforced by | ||
- Oython code strictly follows `PEP-8`_ styling guides and this is enforced by | ||
a commit GIT hook installed via ``make install-git-hooks`` which will reject | ||
commits if code is not PEP-8 complieant. | ||
- C code should follow `PEP-7`_ styling guides. | ||
|
@@ -74,63 +81,51 @@ Adding a new API | |
|
||
Typically, this is what you do: | ||
|
||
- define the new API in `psutil/__init__.py`_. | ||
- write the platform specific implementation in ``psutil/_ps{platform}.py`` | ||
- Define the new API in `psutil/__init__.py`_. | ||
- Write the platform specific implementation in ``psutil/_ps{platform}.py`` | ||
(e.g. `psutil/_pslinux.py`_). | ||
- if the change requires C code, write the C implementation in | ||
- If the change requires C code, write the C implementation in | ||
``psutil/_psutil_{platform}.c`` (e.g. `psutil/_psutil_linux.c`_). | ||
- write a generic test in `psutil/tests/test_system.py`_ or | ||
- Write a generic test in `psutil/tests/test_system.py`_ or | ||
`psutil/tests/test_process.py`_. | ||
- if possible, write a platform-specific test in | ||
- If possible, write a platform-specific test in | ||
``psutil/tests/test_{platform}.py`` (e.g. `psutil/tests/test_linux.py`_). | ||
This usually means testing the return value of the new API against | ||
a system CLI tool. | ||
- update the doc in ``doc/index.py``. | ||
- update `HISTORY.rst`_ and `CREDITS`_ files. | ||
- make a pull request. | ||
- Update the doc in ``docs/index.py``. | ||
- Update `HISTORY.rst`_ and `CREDITS`_ files. | ||
- Make a pull request. | ||
|
||
Make a pull request | ||
------------------- | ||
|
||
- fork psutil (go to https://github.com/giampaolo/psutil and click on "fork") | ||
- git clone the fork locally: ``git clone [email protected]:YOUR-USERNAME/psutil.git`` | ||
- create a branch:``git checkout -b new-feature`` | ||
- commit your changes: ``git commit -am 'add some feature'`` | ||
- push the branch: ``git push origin new-feature`` | ||
- create a new PR via the GitHub web interface and sign-off your work (see | ||
- Fork psutil (go to https://github.com/giampaolo/psutil and click on "fork") | ||
- Git clone the fork locally: ``git clone [email protected]:YOUR-USERNAME/psutil.git`` | ||
- Create a branch:``git checkout -b new-feature`` | ||
- Commit your changes: ``git commit -am 'add some feature'`` | ||
- Push the branch: ``git push origin new-feature`` | ||
- Create a new PR via the GitHub web interface and sign-off your work (see | ||
`CONTRIBUTING.md`_ guidelines) | ||
|
||
Continuous integration | ||
---------------------- | ||
|
||
Unit tests are automatically run on every ``git push`` on **Linux**, **macOS**, | ||
**Windows** and **FreeBSD** by using: | ||
|
||
- `Github Actions`_ (Linux, macOS, Windows) | ||
- `Appveyor`_ (Windows) | ||
|
||
.. image:: https://img.shields.io/github/workflow/status/giampaolo/psutil/CI?label=Linux%2C%20macOS%2C%20FreeBSD | ||
:target: https://github.com/giampaolo/psutil/actions?query=workflow%3ACI | ||
|
||
.. image:: https://img.shields.io/appveyor/ci/giampaolo/psutil/master.svg?maxAge=3600&label=Windows | ||
:target: https://ci.appveyor.com/project/giampaolo/psutil | ||
|
||
OpenBSD, NetBSD, AIX and Solaris does not have continuous test integration. | ||
**Windows**, **FreeBSD**, **NetBSD**, **OpenBSD**. | ||
AIX and Solaris does not have continuous test integration. | ||
|
||
Documentation | ||
------------- | ||
|
||
- doc source code is written in a single file: `/docs/index.rst`_. | ||
- doc source code is written in a single file: ``docs/index.rst``. | ||
- doc can be built with ``make setup-dev-env; cd docs; make html``. | ||
- public doc is hosted at https://psutil.readthedocs.io | ||
- public doc is hosted at https://psutil.readthedocs.io. | ||
|
||
.. _`appveyor.yml`: https://github.com/giampaolo/psutil/blob/master/appveyor.yml | ||
.. _`Appveyor`: https://ci.appveyor.com/project/giampaolo/psuti | ||
.. _`coveralls.io`: https://coveralls.io/github/giampaolo/psuti | ||
.. _`CREDITS`: https://github.com/giampaolo/psutil/blob/master/CREDITS | ||
.. _`CONTRIBUTING.md`: https://github.com/giampaolo/psutil/blob/master/CONTRIBUTING.md | ||
.. _`doc/index.rst`: https://github.com/giampaolo/psutil/blob/master/doc/index.rst | ||
.. _`Github Actions`: https://github.com/giampaolo/psutil/actions | ||
.. _`HISTORY.rst`: https://github.com/giampaolo/psutil/blob/master/HISTORY.rst | ||
.. _`make.bat`: https://github.com/giampaolo/psutil/blob/master/make.bat | ||
.. _`Makefile`: https://github.com/giampaolo/psutil/blob/master/Makefile | ||
|