* relax manual: The find_replicate_titles.py script can now handle the presence of latex2html. If latex2html had been set up via the docs/devel/latex2html/setup script, then find_replicate_titles.py would fail due to the presence of *.tex files outside of docs/latex/.
* Update from LaTeX2HTML 2008 to 2019. The instructions now point to the latex2html repository fork at SourceForge (https://sourceforge.net/p/nmr-relax/code-latex2html/ci/master/tree/), with the relax manual specific branches.
* GUI tests: Addition of the User_functions.test_bug_2_structure_read_pdb_failure test. This is to catch [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] in the GUI.
* GUI tests: Addition of the User_functions.test_bug_3_no_argument_validation test. This is to catch [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI.
* Unit tests: Addition of two tests for specific_analyses.relax_disp.parameters.param_num(). This is to catch [https://sourceforge.net/p/nmr-relax/tickets/6/ bug #6], the failure of the parameter counting for the 3-site relaxation dispersion models when spins are clustered. The two unit tests are Test_parameters.test_param_num_clustered_spins and Test_parameters.test_param_num_single_spin in the unit test module _specific_analyses._relax_disp.test_parameters.
<section begin=bugfixes/>
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/2/ bug #2], the failure of the [http://www.nmr-relax.com/manual/structure_read_pdb.html structure.read_pdb user function ] in the GUI. The problem was that the file selection argument was being set up incorrectly as two GUI elements - an inactive file selection element and a normal value setting GUI element. Only the second value input GUI element was active (due to the GUI elements being stored in a dictionary, with the first key value being overwritten by the second).
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/3/ bug #3], the absence of user function argument validation within the GUI. The code for the user function argument validation in the prompt/script UIs was simply copied and slightly modified to fit into the GUI user function window execution. All arguments are now passed into the new lib.arg_check.validate_arg() function and are checked based on their user function definitions.
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/4/ bug #4], the relax controller in the GUI not displaying text when required. Calls to the captured IO stream flush() methods are now been made in a number of places to allow the controller to show the text when required. This includes after printing out the intro text, after any captured and GUI handled errors, after clicking on the "help->licence" menu entry, after thread exceptions, and after a number of GUI message dialogs. The bug is only present in relax 4.1.0.
* Typo fix in the description of the 'atomic' argument for the [http://www.nmr-relax.com/manual/structure_rmsd.html structure.rmsd user function].
* Fix for [https://sourceforge.net/p/nmr-relax/tickets/5/ bug #5], the incorrect numpy version check in the relaxation dispersion auto-analysis. The dep_check.version_comparison() function is now used for the version comparisons.
* Dispersion: Fix for [https://sourceforge.net/p/nmr-relax/tickets/7/ bug #7], the model list containing 'No Rex' twice. The MODEL_LIST_FULL variable contained the model 'No Rex' twice. The only manifestation of the bug is a RelaxError message showing the full list of models, when a user selects a non-existent dispersion model.