Skip to content

Commit 79c1414

Browse files
authored
Merge pull request #2402 from silx-kit/Doc_5
Update project.rst
2 parents caec1a9 + a5e9c6a commit 79c1414

File tree

1 file changed

+25
-38
lines changed

1 file changed

+25
-38
lines changed

doc/source/project.rst

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
:Author: Jérôme Kieffer
2-
:Date: 16/05/2023
2+
:Date: 28/01/2025
33
:Keywords: Project management description
44
:Target: developers
55

@@ -9,30 +9,30 @@ Project
99
PyFAI is a library to deal with diffraction images for data reduction.
1010
This chapter describes the project from the computer engineering point of view.
1111

12-
PyFAI is an open source project licensed under the MIT license (previously
13-
under GPL) mainly written in Python (3.6 or newer).
12+
PyFAI is an open source project licensed under the MIT license mainly written
13+
in Python (3.9 or newer).
1414
It is managed by the Silx team and is heavily relying on the
15-
Python scientific ecosystem: numpy, scipy and matplotlib.
15+
Python scientific ecosystem: numpy, scipy, h5py and matplotlib.
1616
It provides high performances image treatment thanks to Cython and
17-
OpenCL... but only a C-compiler is needed to build it.
17+
OpenCL... but only a C/C++-compiler is needed to build it.
1818

1919
Programming language
2020
--------------------
2121

2222
PyFAI is a Python project but uses many programming languages:
2323

24-
* 50000 lines of Python (of which 8000 are for the test)
24+
* 130000 lines of Python (of which 12000 are for the test)
2525
* 16000 lines of Cython which are converted into ... C or C++
26-
* 8000 lines of OpenCL kernels
26+
* 12000 lines of OpenCL kernels
2727

2828
The OpenCL code has been tested using:
2929

30-
* Nvidia OpenCL v1.1 and v1.2 on Linux, Windows (GPU device)
31-
* Intel OpenCL v1.2 on Linux and Windows (CPU and ACC (Phi) devices)
32-
* AMD OpenCL v1.2 on Linux and Windows (CPU and GPU device)
30+
* Nvidia OpenCL v1.1+ on Linux, Windows (GPU device)
31+
* Intel OpenCL v1.2+ on Linux and Windows (CPU and ACC (Phi) devices)
32+
* AMD OpenCL v1.2+ on Linux and Windows (CPU and GPU device)
3333
* Apple OpenCL v1.2 on MacOSX (CPU and GPU)
3434
* Beignet OpenCL v1.2 on Linux (GPU device)
35-
* Pocl OpenCL v1.2 on Linux (CPU device)
35+
* Pocl OpenCL v1.2+ on Linux (CPU device)
3636

3737
Repository
3838
----------
@@ -70,6 +70,8 @@ too much spammed. As the mailing list is archived, and can be consulted at:
7070
`http://www.edna-site.org/lurker <http://www.edna-site.org/lurker/list/pyfai.en.html>`_,
7171
you can also check the volume of the list.
7272

73+
You can also ask your question publicly on the ``Discussion`` page of `Github <https://github.com/silx-kit/pyFAI/discussions>`_ (you will need a GitHub account for that).
74+
7375
If you think you are facing a bug, the best is to
7476
`create a new issue on the GitHub page <https://github.com/silx-kit/pyFAI/issues>`_
7577
(you will need a GitHub account for that).
@@ -88,35 +90,20 @@ continue funding development.
8890
Run dependencies
8991
----------------
9092

91-
* Python version 3.6, 3.7, 3.8 or 3.9
93+
* Python version 3.9 to 3.13
9294
* NumPy
9395
* SciPy
9496
* Matplotlib
9597
* FabIO
9698
* h5py
9799
* pyopencl (optional)
98-
* PyQt5 or PySide2 (for the graphical user interface)
100+
* PyQt5/6 or PySide2/6 (for the graphical user interface)
99101
* Silx
100102

101103
Build dependencies
102104
------------------
103105

104-
In addition to the run dependencies, pyFAI needs a C compiler.
105-
106-
There is an issue with MacOS (v10.8 onwards) where the default compiler
107-
(Xcode5 or newer) dropped the support for OpenMP.
108-
On this platform pyFAI will enforce the generation of C-files from Cython sources
109-
(making Cython a build-dependency on MacOS) without support of OpenMP
110-
(options: --no-openmp --force-cython).
111-
On OSX, an alternative is to install a recent version of GCC (>=4.2) and to use
112-
it for compiling pyFAI.
113-
The options to be used then are * --force-cython --openmp*.
114-
115-
Otherwise, C files which are provided with pyFAI sources are directly useable
116-
and Cython is only needed for developing new binary modules.
117-
If you want to generate your own C files, make sure your local Cython version
118-
is recent enough (v0.21 and newer),
119-
otherwise your Cython files will not be translated to C, nor used.
106+
In addition to the run dependencies, pyFAI needs a C compiler & Cython.
120107

121108
Building procedure
122109
------------------
@@ -187,8 +174,9 @@ This software engineering practice consists in merging all developer working cop
187174
to a shared mainline several times a day and build the whole project for multiple
188175
targets.
189176

190-
On Debian 11
191-
............
177+
On Debian
178+
.........
179+
192180
Continuous integration is made by a home-made scripts which checks out the latest release and builds and runs the test every night.
193181
`Nightly builds <http://www.silx.org/pub/debian/binary/>`_ are available for debian8-64 bits. To install them:
194182

@@ -202,22 +190,19 @@ You have to accept non-signed packages because they are automatically built.
202190
In addition some "cloud-based" tools are used to ensure a larger coverage of operating systems/environment.
203191
They rely on a `"local wheelhouse" <http://www.silx.org/pub/wheelhouse/>`_.
204192

205-
Those wheels are optimized for Travis-CI, AppVeyor and ReadTheDocs, using them is not recommended as your Python configuration may differ
193+
Those wheels are optimized for github-actions, AppVeyor and ReadTheDocs, using them is not recommended as your Python configuration may differ
206194
(and those libraries could even crash your system).
207195

208196
Linux
209197
.....
210198

211-
212199
`Github workflows provides continuous integration on Linux <https://github.com/silx-kit/pyFAI/actions>`_,
213-
64 bits computer with Python 3.7 to 3.11. Travis.org is now dead since the service was discontinued.
214-
215-
`Gitlab runners <https://gitlab.esrf.fr/silx/bob/pyfai/-/pipelines>`_ are periodically triggered to build the project and provide *wheels* for all kind of systems.
200+
64 bits computer with Python 3.9 to 3.13 and is also used to build the wheels for the release.
216201

217202
AppVeyor
218203
........
219204

220-
`AppVeyor provides continuous integration on Windows <https://ci.appveyor.com/project/ESRF/pyfai>`_, 64 bits computer with Python 3.8 to 3.10.
205+
`AppVeyor provides continuous integration on Windows <https://ci.appveyor.com/project/ESRF/pyfai>`_, 64 bits computer with Python 3.9 to 3.13.
221206
Successful builds provide installers for pyFAI as *wheels* and *msi*, they are anonymously available as *artifacts*.
222207
Due to the limitation of AppVeyor's build system, those installers have openMP disabled.
223208

@@ -228,13 +213,15 @@ List of contributors in code
228213
229214
git log --pretty='%aN##%s' | grep -v 'Merge pull' | grep -Po '^[^#]+' | sort | uniq -c | sort -rn
230215
231-
As of 01/2021:
216+
As of 01/2025:
232217
* Jérôme Kieffer (ESRF)
233218
* Valentin Valls (ESRF)
219+
* Edgar GUTIERREZ FERNANDEZ (ESRF)
234220
* Frédéric-Emmanuel Picca (Soleil)
235221
* Aurore Deschildre (ESRF)
236222
* Giannis Ashiotis (ESRF)
237223
* Thomas Vincent (ESRF)
224+
* Emily Massahud (ANSTO)
238225
* Dimitrios Karkoulis (ESRF)
239226
* Alexandre Marie (Soleil)
240227
* Jon Wright (ESRF)

0 commit comments

Comments
 (0)