Skip to content

Commit 70ae387

Browse files
committed
reorg descriptions for Python (etc.) packages
1 parent bb16f1c commit 70ae387

File tree

1 file changed

+87
-52
lines changed

1 file changed

+87
-52
lines changed

docs/source/packages.rst

Lines changed: 87 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ Details for GSAS-II use on these specific platforms follows below:
6666

6767
**Raspberry Pi** (ARM) Linux: GSAS-II has been installed on both 32-bit
6868
and the 64-bit version of the Raspberry Pi OS (formerly
69-
called Raspbian) and compiled binaries are provided at present for
70-
both, but the 32-bit support may not continue. It is expected that
69+
called Raspbian) and some older compiled binaries are provided at present for
70+
both, but 32-bit support may not continue. It is expected that
7171
these binaries will also function on Ubuntu Linux for Raspberry Pi,
7272
but this has not been tried.
7373
The performance of GSAS-II on a Raspberry Pi is not blindingly fast,
@@ -81,31 +81,28 @@ Details for GSAS-II use on these specific platforms follows below:
8181
versions of Python and its packages, `see here for more information
8282
<https://advancedphotonsource.github.io/GSAS-II-tutorials/install-pip.html>`_.
8383
With
84-
64-bit Pi OS it may be possible for us to provide a GSAS2FULL installer
84+
64-bit Pi OS it may be possible for us to provide a GSAS2MAIN installer
8585
(which will need to include a custom-supplied wxPython wheel, since
8686
that is not available in conda-forge) or else pip must be used to
87-
download and build wx. Please let us know if you are intending to
87+
download and build wxpython (quite slow). Please let Brian know if you are intending to
8888
use GSAS-II on a Raspberry Pi for a classroom, etc and would need
89-
this.
89+
help with this.
9090

91-
Version Control
91+
Source Code Management
9292
-----------------------
93+
9394
The master version of the source code for GSAS-II resides on
94-
GitHub at URL and the git
95+
GitHub at URL (in branch main) and the git
9596
version control system (VCS) is usually used to install the files needed by GSAS-II. When
9697
GSAS-II is installed in this manner, the software can be easily
9798
updated, as git commands can download only the changed sections of files
9899
that need to be updated. It is likewise possible to use git to regress
99100
to an older version of GSAS-II, though there are some limitations on
100101
how far back older versions of GSAS-II will be with current versions
101-
of Python. While git is not required for use of GSAS-II, special
102+
of Python and associated packages. While git is not required for use of GSAS-II, special
102103
procedures must be used to install GSAS-II without it and once
103104
installed without git, updates of GSAS-II must be done manually.
104105

105-
We are currently in a transition period to GitHub from
106-
a previous subversion server. As we migrate to GitHub, updates will be
107-
made in parallel to both servers.
108-
109106
Python Requirements
110107
-----------------------
111108

@@ -120,12 +117,16 @@ as defined in variable :attr:`GSASIIdataGUI.versionDict`,
120117
but for new installations we are currently recommending the following
121118
interpreter/package versions:
122119

123-
* Python 3.11, 3.12 or 3.13 is recommended. GSAS-II should run with any Python
124-
version from 3.7 or later, but you will need to locate (from the
125-
old subversion server) or locate binaries to match that Python version.
120+
* Python 3.11, 3.12 or 3.13 is recommended. No testing has yet been
121+
done with Python 3.14, but no problems are expected.
122+
GSAS-II should run with any Python
123+
version from 3.7 or later, but we do not create binaries for
124+
all versions of Python and numpy. You will need to locate (from the
125+
old subversion server) older binaries to match older Python
126+
versions or compile them yourself.
126127
* wxPython 4.2 or later is recommended, but with Python <=3.9 any
127-
wx4.x version should be OK. However, there may be problems with
128-
newer sections of the GUI with wx <4.0.
128+
wx4.x version should be OK. Problems with
129+
newer sections of the GUI are expected for wx <4.0.
129130
* NumPy 1.26 recommended with Python 3.11 and 2.2 with 3.12 or 3.13,
130131
but anything from 1.17 on is likely fine,
131132
but if you do not match the supplied GSAS-II binaries you will
@@ -139,7 +140,7 @@ interpreter/package versions:
139140
* SciPy: no version-related problems have been seen, but in at least one
140141
case multiple imports are tried to account for where function
141142
names have changed.
142-
* PyCifRW: no version issues are known. We have been using an older
143+
* PyCifRW: no version issues are known. We had been using an older
143144
version for a long time, but in 2025 switched to the latest version
144145
and did not see any problems.
145146
* pybaselines: no version issues are known.
@@ -149,12 +150,7 @@ and Python packages, see comments below and details here:
149150
:attr:`GSASIIdataGUI.versionDict`,
150151

151152
Note that GSAS-II is currently being developed using Python 3.11
152-
through 3.13. We
153-
have just adopted a build process using meson (replacing scons) for
154-
Python 3.12+ and
155-
is not fully documented. If you need to build the GSAS-II binaries at
156-
this time, please contact Brian.
157-
153+
through 3.13.
158154
We are no longer
159155
supporting Python 2.7 and <=3.6, and strongly encourage that
160156
systems running GSAS-II under these older Python versions reinstall
@@ -194,6 +190,10 @@ Python extension packages are required:
194190
GSAS-II will not start or will start but will not be able to do much
195191
if the above packages are not available.
196192

193+
----------------------------------
194+
Recommended Packages for GUI Use
195+
----------------------------------
196+
197197
In addition to the previous required packages, several Python packages
198198
are utilized in limited sections of the GUI code, but are not
199199
required. If these packages are not present, warning
@@ -220,13 +220,13 @@ optional packages are:
220220
(http://www.pythonware.com/products/pil/). This is used to read and
221221
save certain types of images.
222222

223-
* h5py is the HDF5 interface and hdf5 is the support package. These
223+
* h5py and hdf5: h5py is the HDF5 interface and hdf5 is the support package. These
224224
packages are (not surprisingly) required
225225
to import images from HDF5 files. If these libraries are not present,
226-
the HDF5 importer(s) will not appear in the import menu and a
226+
the HDF5 importers will not appear in the import menu and a
227227
warning message appears on GSAS-II startup.
228228

229-
* imageio is used to make movies. This is optional and is offered for plotting
229+
* imageio is used to make movies. This is optional and is utilized for plotting
230230
superspace (modulated) structures.
231231

232232
* seekpath is used for magnetic lattice (k-vector) searches
@@ -301,7 +301,13 @@ installing the SciPy is recommended:
301301

302302
* SciPy (http://docs.scipy.org/doc/scipy/reference/).
303303

304-
These packages fortunately are common and are easy to install. There are
304+
These packages fortunately are common and are easy to install.
305+
306+
------------------------------------
307+
Recommended Packages for Scripting
308+
------------------------------------
309+
310+
There are
305311
some relatively minor scripting capabilities that will only run when a few
306312
additional packages are installed:
307313

@@ -316,7 +322,55 @@ additional packages are installed:
316322
but none of these are required to run scripts and the vast
317323
majority of scripts will not need these packages.
318324

319-
**Installing a minimal Python configuration**:
325+
---------------------------
326+
Optional Python Packages
327+
---------------------------
328+
329+
* Sphinx (https://www.sphinx-doc.org) is used to generate the
330+
documentation you are currently reading. Generation of this documentation
331+
is not generally something needed by users or even most code
332+
developers, since the prepared documentation on
333+
https://gsas-ii.readthedocs.io is usually reasonably up to date.
334+
335+
* The sphinx-rtd-theme is required to build the documentation in
336+
standard the format (though this can be changed with minor editing.)
337+
338+
--------------------------
339+
Compilation Requirements
340+
--------------------------
341+
342+
Most users on Windows and Mac will not need to compile
343+
GSAS-II. Binaries are supplied as part of the gsas2main
344+
self-installer. Linux users may need to install the software in a
345+
manner that allows for local compilation. Developers may wish to
346+
perform all installation steps for themselves. These are the
347+
requirements:
348+
349+
* The gfortran complier is required. There has been some work done
350+
with glang, and I think this passes the self-tests but it is unknown
351+
if there are other problems. This can be installed in a number of
352+
ways. For Windows and Mac, conda-forge is a good choice. (For MacOS,
353+
Apple's XCode must also be installed). For Linux,
354+
dist-supplied versions are probably a better choice.
355+
356+
* gcc or other c compiler is required to build one binary for image
357+
processing. For Windows use Microsoft Visual C/C++. On Mac, use of
358+
conda-forge to install gcc is a good installation choice (again
359+
XCode is required). For Linux, dist-supplied versions are probably a
360+
better choice.
361+
362+
* meson (https://mesonbuild.com/meson-python/) is used to compile the
363+
relatively small amount of Fortran, C and Cython code that is included with
364+
GSAS-II. This is a Python package typically installed with conda or
365+
pip. On Linux, a dist-supplied version (Debian, RedHat, etc.) is
366+
likely available too.
367+
368+
* Cython is needed to build one binary used for magnetism (k-vector
369+
searching). Install this typically with conda or pip.
370+
371+
--------------------------------------------------------
372+
Installation Notes for Minimal Python configuration
373+
--------------------------------------------------------
320374

321375
There are many ways to install a minimal Python configuration.
322376
Below, I show some example commands used to install using the
@@ -355,24 +409,7 @@ Notes on these commands:
355409
* the 2nd command (python) is used to invoke GSAS-II scriptable for the first time, which is needed to load the binary files from the server.
356410

357411

358-
---------------------------
359-
Optional Python Packages
360-
---------------------------
361-
362-
* Sphinx (https://www.sphinx-doc.org) is used to generate the
363-
documentation you are currently reading. Generation of this documentation
364-
is not generally something needed by users or even most code
365-
developers, since the prepared documentation on
366-
https://gsas-ii.readthedocs.io is usually reasonably up to date.
367-
368-
* meson (https://mesonbuild.com/meson-python/) is used to compile the
369-
relatively small amount of Fortran code that is included with
370-
GSAS-II.
371-
372-
* SCons (https://scons.org/) was used to compile the relatively small amount of
373-
Fortran code that is included with GSAS-II. Use of this is only for
374-
Python 3.11 and previous. It should no longer be needed.
375-
412+
376413
Required Binary Files
377414
--------------------------------
378415

@@ -406,10 +443,8 @@ Should one wish to run GSAS-II where binary files are not
406443
supplied (such as 32-bit Windows or Linux) or with other combinations of
407444
Python/NumPy, compilation will be need to be done by the user. See
408445
the `compilation information <https://advancedphotonsource.github.io/GSAS-II-tutorials/compile.html>`_ for more information.
409-
We have just adopted a build process using meson (in place of scons) for
410-
Python 3.12+. This is incorporated in the "main" branch, but
411-
is not fully documented. If you need to build the GSAS-II binaries at
412-
this time, please contact Brian.
446+
The build process was recently updated to use meson (in place of
447+
scons).
413448

414449
Supported Externally-Developed Software
415450
----------------------------------------------------
@@ -495,6 +530,6 @@ as part of the GSAS-II distribution and must be installed separately:
495530
Python environment for PDFfit2, so that there is no possibility for
496531
conflict between package versions. When GSAS-II is run from a
497532
Python installation that includes the conda package manager (which
498-
is the case with the GSAS2FULL installer), the GUI will offer an option to
533+
is the case with the GSAS2MAIN installer), the GUI will offer an option to
499534
install PDFfit2 via a separate environment when the
500535
PDFfit2 option is selected on the Phase/RMC tab.

0 commit comments

Comments
 (0)