* <code>log_converter.py</code> development script: Conversion from SVN to git. A number of spacing bugs have also been removed, simplifying the release process.
* relax manual: The [http://www.nmr-relax.com/api/4.1/docs.latex.find_replicate_titles-module.html find_replicate_titles.py script] can now handle the presence of latex2html. If latex2html had been set up via the <code>docs/devel/latex2html/setup</code> script, then [http://www.nmr-relax.com/api/4.1/docs.latex.find_replicate_titles-module.html find_replicate_titles.py] would fail due to the presence of <code>*.tex</code> files outside of <code>docs/latex/</code>.
* 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/)latex2html repository fork at SourceForge], with the relax manual specific branches.
* GUI tests: Addition of the [http://www.nmr-relax.com/api/4.1/test_suite.gui_tests.test_user_functions.User_functions-class.html#test_bug_2_structure_read_pdb_failure 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 [http://www.nmr-relax.com/api/4.1/test_suite.gui_tests.test_user_functions.User_functions-class.html#test_bug_3_no_argument_validation 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.
* [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html Module specific_analyses.relax_disp.parameters]: Fix for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters()] with the '[[R2eff model|R2eff]]' model. This now only returns the {{:i0}} parameter when exponential curve data is present. This fix has no apparent affect on the operation of relax, so the {{:i0}} parameter is probably correctly handled in code that calls the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function].
* Dispersion: Shift of the model parameters from the parameter loop to [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables]. This removes all references to specific model parameters from the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function] in the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html specific_analyses.relax_disp.parameters module] into [http://www.nmr-relax.com/api/4.1/lib.dispersion.variables-module.html lib.dispersion.variables]. This simplifies the [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#loop_parameters loop_parameters() function] and should minimise latent bugs.
* Unit tests: Addition of two tests for [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html#linear_constraints specific_analyses.relax_disp.parameters.linear_constraints()]. The two unit tests are [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_linear_constraints_clustered_spins Test_parameters.test_linear_constraints_clustered_spins ] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters.Test_parameters-class.html#test_linear_constraints_single_spin Test_parameters.test_linear_constraints_single_spin ] in the [[http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._specific_analyses._relax_disp.test_parameters-module.html unit test module _specific_analyses._relax_disp.test_parameters]. These show that the linear constraints are correctly assembled for single and clustered spins for all models.
* [http://www.nmr-relax.com/api/4.1/specific_analyses.relax_disp.parameters-module.html Module specific_analyses.relax_disp.parameters]: Docstring, whitespace, and comment fixes.
* Unit tests: Addition of tests for [http://www.nmr-relax.com/api/4.1/lib.dispersion.ns_mmq_3site-module.html lib.dispersion.ns_mmq_3site] and [http://www.nmr-relax.com/api/4.1/lib.dispersion.ns_r1rho_3site-module.html lib.dispersion.ns_r1rho_3site]. These are to catch [https://sourceforge.net/p/nmr-relax/tickets/9/ bug #9], and specifically test for when {{:pA}} is 1.0 and the other probabilities are zero. Two new unit tests of the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site-module.html _lib._dispersion.test_ns_mmq_3site module] include [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site.Test_ns_mmq_3site-class.html#test_ns_mmq_3site_mq Test_ns_mmq_3site.test_ns_mmq_3site_mq] and [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_mmq_3site.Test_ns_mmq_3site-class.html#test_ns_mmq_3site_sq_dq_zq Test_ns_mmq_3site.test_ns_mmq_3site_sq_dq_zq], and a single new unit test of the [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_r1rho_3site-module.html _lib._dispersion.test_ns_r1rho_3site module] is [http://www.nmr-relax.com/api/4.1/test_suite.unit_tests._lib._dispersion.test_ns_r1rho_3site.Test_ns_r1rho_3site-class.html#test_ns_r1rho_3site Test_ns_r1rho_3site.test_ns_r1rho_3site].