comparison doc/upgrading.txt @ 7341:7321c0e6c53e

Add priority markers to heading back to 1.5.0->1.6.0 upgrade Also fixed a few prior to that.
author John Rouillard <rouilj@ieee.org>
date Sun, 14 May 2023 11:28:03 -0400
parents e21c7fe0b57a
children 955a4efe9cbc
comparison
equal deleted inserted replaced
7340:7b9bddda9d2d 7341:7321c0e6c53e
601 .. index:: Upgrading; 2.0.0 to 2.1.0 601 .. index:: Upgrading; 2.0.0 to 2.1.0
602 602
603 Migrating from 2.0.0 to 2.1.0 603 Migrating from 2.0.0 to 2.1.0
604 ============================= 604 =============================
605 605
606 Rdbms version change from 5 to 6 (**) 606 Rdbms version change from 5 to 6 (required)
607 ------------------------------------- 607 -------------------------------------------
608 608
609 To fix an issue with importing databases, the database has to be 609 To fix an issue with importing databases, the database has to be
610 upgraded for rdbms backends. 610 upgraded for rdbms backends.
611 611
612 You should run the ``roundup-admin migrate`` command for your 612 You should run the ``roundup-admin migrate`` command for your
676 database level. If you had a database that was at version 4 and 676 database level. If you had a database that was at version 4 and
677 then upgraded to version 5 you have the uniqueness enforcing 677 then upgraded to version 5 you have the uniqueness enforcing
678 constraint. Running migrate updates to schema version 6 and installs 678 constraint. Running migrate updates to schema version 6 and installs
679 the unique index constraint if it is missing. 679 the unique index constraint if it is missing.
680 680
681 Setuptools is now required to install 681 Setuptools is now required to install (info)
682 ------------------------------------- 682 --------------------------------------------
683 683
684 Roundup install now uses setuptools rather than distutils. You must 684 Roundup install now uses setuptools rather than distutils. You must
685 install setuptools. Use the version packgaged by your OS vendor. If 685 install setuptools. Use the version packgaged by your OS vendor. If
686 your OS vendor doesn't supply setuptools use ``pip install 686 your OS vendor doesn't supply setuptools use ``pip install
687 setuptools``. (You may need pip3 rather than pip if using python3.) 687 setuptools``. (You may need pip3 rather than pip if using python3.)
688 688
689 Define Authentication Header 689 Define Authentication Header (optional)
690 ---------------------------- 690 ---------------------------------------
691 691
692 The web server in front of roundup (apache, nginx) can perform user 692 The web server in front of roundup (apache, nginx) can perform user
693 authentication. It can pass the authenticated username to the backend 693 authentication. It can pass the authenticated username to the backend
694 in a variable. By default roundup looks for the ``REMOTE_USER`` 694 in a variable. By default roundup looks for the ``REMOTE_USER``
695 variable. This can be changed by setting the parameter 695 variable. This can be changed by setting the parameter
727 727
728 At the time this is written, support is experimental. If you use it 728 At the time this is written, support is experimental. If you use it
729 you should notify the roundup maintainers using the roundup-users 729 you should notify the roundup maintainers using the roundup-users
730 at lists.sourceforge.net mailing list. 730 at lists.sourceforge.net mailing list.
731 731
732 Classname Format Enforced 732 Classname Format Enforced (info)
733 ------------------------- 733 --------------------------------
734 734
735 Check schema.py and look at all Class(), IssueClass(), FileClass() 735 Check schema.py and look at all Class(), IssueClass(), FileClass()
736 calls. The second argument is the classname. All classnames must: 736 calls. The second argument is the classname. All classnames must:
737 737
738 * start with an alphabetic character 738 * start with an alphabetic character
740 * not end with a digit 740 * not end with a digit
741 741
742 this was not enforced before. Using non-standard classnames could lead 742 this was not enforced before. Using non-standard classnames could lead
743 to other issues. 743 to other issues.
744 744
745 jQuery updated with updates to user.help.html 745 jQuery updated with updates to user.help.html (recommended)
746 --------------------------------------------- 746 -----------------------------------------------------------
747 747
748 The devel and responsive templates shipped with an old version of 748 The devel and responsive templates shipped with an old version of
749 jQuery with some security issues. It has been updated to the current 749 jQuery with some security issues. It has been updated to the current
750 version: 3.5.1. If your tracker is based on one of these templates 750 version: 3.5.1. If your tracker is based on one of these templates
751 (see the ``TEMPLATE-INFO.txt`` file in your tracker), remove the old 751 (see the ``TEMPLATE-INFO.txt`` file in your tracker), remove the old
754 ``html`` directory. Also copy in the new ``user.help.html`` file. It now 754 ``html`` directory. Also copy in the new ``user.help.html`` file. It now
755 references the new ``jquery-3.5.1.js`` file and also fixes a bug that 755 references the new ``jquery-3.5.1.js`` file and also fixes a bug that
756 prevented applying the change from the helper to the field on the main 756 prevented applying the change from the helper to the field on the main
757 form. 757 form.
758 758
759 Roundup-admin security stops on incorrect properties 759 Roundup-admin security stops on incorrect properties (info)
760 ---------------------------------------------------- 760 -----------------------------------------------------------
761 761
762 The ``roundup-admin ... security`` command used to continue 762 The ``roundup-admin ... security`` command used to continue
763 running through the rest of the security roles after reporting a 763 running through the rest of the security roles after reporting a
764 property error. Now it stops after reporting the incorrect property. 764 property error. Now it stops after reporting the incorrect property.
765 765
766 If run non-interactively, it exits with status 1. It can now be 766 If run non-interactively, it exits with status 1. It can now be
767 used in a startup script to detect permission errors. 767 used in a startup script to detect permission errors.
768 768
769 Futureproof devel and responsive timezone selection extension 769 Futureproof devel and responsive timezone selection extension (recommended)
770 ------------------------------------------------------------- 770 ---------------------------------------------------------------------------
771 771
772 The devel and responsive (derived from devel) templates use a select 772 The devel and responsive (derived from devel) templates use a select
773 control to list all available timezones when pytz is used. It 773 control to list all available timezones when pytz is used. It
774 sanitizes the data using cgi.escape. Cgi.escape is deprecated and 774 sanitizes the data using cgi.escape. Cgi.escape is deprecated and
775 removed in newer pythons. Change your ``extensions/timezone.py`` 775 removed in newer pythons. Change your ``extensions/timezone.py``
799 ============================= 799 =============================
800 800
801 .. index:: roundup-admin; updateconfig subcommand 801 .. index:: roundup-admin; updateconfig subcommand
802 802
803 803
804 Python 2 MYSQL users MUST READ 804 Python 2 MYSQL users MUST READ (required)
805 ------------------------------ 805 -----------------------------------------
806 806
807 To fix issues with encoding of data and text searching, roundup now 807 To fix issues with encoding of data and text searching, roundup now
808 explicitly sets the database connection character set. Roundup prior 808 explicitly sets the database connection character set. Roundup prior
809 to 2.0 used the default character set which was not always utf-8. All 809 to 2.0 used the default character set which was not always utf-8. All
810 roundup data is manipulated in utf-8. This mismatch causes issues with 810 roundup data is manipulated in utf-8. This mismatch causes issues with
886 roundup-users AT lists.sourceforge.net mailing list. 886 roundup-users AT lists.sourceforge.net mailing list.
887 887
888 As people report successful or unsuccessful conversions, we will update 888 As people report successful or unsuccessful conversions, we will update
889 the errata page at: https://wiki.roundup-tracker.org/ReleaseErrata. 889 the errata page at: https://wiki.roundup-tracker.org/ReleaseErrata.
890 890
891 Upgrade tracker's config.ini file 891 Upgrade tracker's config.ini file (recommended)
892 --------------------------------- 892 -----------------------------------------------
893 893
894 Once you have installed the new roundup, use:: 894 Once you have installed the new roundup, use::
895 895
896 roundup-admin -i /path/to/tracker updateconfig newconfig.ini 896 roundup-admin -i /path/to/tracker updateconfig newconfig.ini
897 897
899 merge any local comments from the tracker's ``config.ini`` into 899 merge any local comments from the tracker's ``config.ini`` into
900 ``newconfig.ini``. Compare the old and new files and configure any new 900 ``newconfig.ini``. Compare the old and new files and configure any new
901 settings as you want. Then replace ``config.ini`` with the 901 settings as you want. Then replace ``config.ini`` with the
902 ``newconfig.ini`` file. 902 ``newconfig.ini`` file.
903 903
904 Python 3 support 904 .. _Python 3 support:
905 ---------------- 905
906 Python 3 support (info)
907 -----------------------
906 908
907 Many of the ``.html`` and ``.py`` files from Roundup that are copied 909 Many of the ``.html`` and ``.py`` files from Roundup that are copied
908 into tracker directories have changed for Python 3 support. If you 910 into tracker directories have changed for Python 3 support. If you
909 wish to move an existing tracker to Python 3, you need to merge in 911 wish to move an existing tracker to Python 3, you need to merge in
910 those changes. Also you need to make sure that locally created python 912 those changes. Also you need to make sure that locally created python
932 roundup-admin -i ... updateconfig newconfig.ini`` if you want to go 934 roundup-admin -i ... updateconfig newconfig.ini`` if you want to go
933 back to using python 2. (Note going back to Python 2 will require 935 back to using python 2. (Note going back to Python 2 will require
934 the same steps as moving from 2 to 3 except using Python 3 to perform 936 the same steps as moving from 2 to 3 except using Python 3 to perform
935 the export.) 937 the export.)
936 938
937 Rate Limit New User Registration 939 Rate Limit New User Registration (info)
938 -------------------------------- 940 ---------------------------------------
939 941
940 The new user registration form can be abused by bots to allow 942 The new user registration form can be abused by bots to allow
941 automated registration for spamming. This can be limited by using the 943 automated registration for spamming. This can be limited by using the
942 new ``config.ini`` ``[web]`` option called 944 new ``config.ini`` ``[web]`` option called
943 ``registration_delay``. The default is 4 and is the number of seconds 945 ``registration_delay``. The default is 4 and is the number of seconds
966 (see: https://hg.python.org/tracker/python-dev/rev/83477f735132), you 968 (see: https://hg.python.org/tracker/python-dev/rev/83477f735132), you
967 can back the code out of the tracker. You must change the name of the 969 can back the code out of the tracker. You must change the name of the
968 field in the html template to ``opaqueregistration`` from ``opaque`` 970 field in the html template to ``opaqueregistration`` from ``opaque``
969 in order to use the core code. 971 in order to use the core code.
970 972
971 PGP mail processing 973 PGP mail processing (required)
972 ------------------- 974 ------------------------------
973 975
974 Roundup now uses the ``gpg`` module instead of ``pyme`` to process PGP 976 Roundup now uses the ``gpg`` module instead of ``pyme`` to process PGP
975 mail. If you have PGP processing enabled, make sure the ``gpg`` 977 mail. If you have PGP processing enabled, make sure the ``gpg``
976 module is installed. 978 module is installed.
977 979
978 MySQL client module 980 MySQL client module (recommended)
979 ------------------- 981 ---------------------------------
980 982
981 Although the ``MySQLdb`` module from 983 Although the ``MySQLdb`` module from
982 https://pypi.org/project/MySQL-python/ is still supported, it is 984 https://pypi.org/project/MySQL-python/ is still supported, it is
983 recommended to switch to the updated module from 985 recommended to switch to the updated module from
984 https://pypi.org/project/mysqlclient/. 986 https://pypi.org/project/mysqlclient/.
985 987
986 XMLRPC Access Role 988 XMLRPC Access Role (info/required)
987 ------------------ 989 ----------------------------------
988 990
989 A new permission has been added to control access to the XMLRPC 991 A new permission has been added to control access to the XMLRPC
990 endpoint. If the user doesn't have the new "Xmlrpc Access" permission, 992 endpoint. If the user doesn't have the new "Xmlrpc Access" permission,
991 they will not be able to log in using the /xmlrpc end point. To add 993 they will not be able to log in using the /xmlrpc end point. To add
992 this new permission to the "User" role you should change your 994 this new permission to the "User" role you should change your
995 db.security.addPermissionToRole('User', 'Xmlrpc Access') 997 db.security.addPermissionToRole('User', 'Xmlrpc Access')
996 998
997 This is usually included near where other permissions like "Web Access" 999 This is usually included near where other permissions like "Web Access"
998 or "Email Access" are assigned. 1000 or "Email Access" are assigned.
999 1001
1000 New values for db.tx_Source 1002 New values for db.tx_Source (info)
1001 --------------------------- 1003 ----------------------------------
1002 1004
1003 The database attribute tx_Source reports "xmlrpc" and "rest" when the 1005 The database attribute tx_Source reports "xmlrpc" and "rest" when the
1004 /xmlrpc and /rest web endpoints are used. Check all code (extensions, 1006 /xmlrpc and /rest web endpoints are used. Check all code (extensions,
1005 detectors, lib) in trackers looking for tx_Source. If you have code 1007 detectors, lib) in trackers looking for tx_Source. If you have code
1006 like:: 1008 like::
1019 or:: 1021 or::
1020 1022
1021 if db.tx_Source in ['web', 'rest', 'xmlrpc', 'email-sig-openpgp', 'cli' ]: 1023 if db.tx_Source in ['web', 'rest', 'xmlrpc', 'email-sig-openpgp', 'cli' ]:
1022 1024
1023 1025
1024 CSV export changes 1026 CSV export changes (info)
1025 ------------------ 1027 -------------------------
1026 1028
1027 The original Roundup CSV export function for indexes reported id 1029 The original Roundup CSV export function for indexes reported id
1028 numbers for links. The wiki had a version that resolved the id's to 1030 numbers for links. The wiki had a version that resolved the id's to
1029 names, so it would report ``open`` rather than ``2`` or 1031 names, so it would report ``open`` rather than ``2`` or
1030 ``user2;user3`` rather than ``[2,3]``. 1032 ``user2;user3`` rather than ``[2,3]``.
1049 be added for missing parameters. 1051 be added for missing parameters.
1050 1052
1051 This turns exported values that may look like formulas into strings so 1053 This turns exported values that may look like formulas into strings so
1052 some versions of Excel won't try to interpret them as a formula. 1054 some versions of Excel won't try to interpret them as a formula.
1053 1055
1054 Update userauditor.py to restrict usernames 1056 Update userauditor.py to restrict usernames (recommended)
1055 ------------------------------------------- 1057 ---------------------------------------------------------
1056 1058
1057 A username can be created with embedded commas and < and > 1059 A username can be created with embedded commas and < and >
1058 characters. Even though the < and > are usually escaped when 1060 characters. Even though the < and > are usually escaped when
1059 displayed, the embedded comma makes it difficult to edit lists of 1061 displayed, the embedded comma makes it difficult to edit lists of
1060 users as they are comma separated. 1062 users as they are comma separated.
1063 copy the userauditor.py from the classic template into your tracker's 1065 copy the userauditor.py from the classic template into your tracker's
1064 detectors directory. Otherwise merge the changes from the template 1066 detectors directory. Otherwise merge the changes from the template
1065 userauditor.py. https://issues.roundup-tracker.org/issue2550921 may be 1067 userauditor.py. https://issues.roundup-tracker.org/issue2550921 may be
1066 helpful. 1068 helpful.
1067 1069
1068 Consider reindexing if you use European languages 1070 Consider reindexing if you use European languages (recommended)
1069 ------------------------------------------------- 1071 ---------------------------------------------------------------
1070 1072
1071 A couple of bugs dealing with incorrect indexing of European languages 1073 A couple of bugs dealing with incorrect indexing of European languages
1072 (Russian and German were reported) have been fixed. Note reindexing 1074 (Russian and German were reported) have been fixed. Note reindexing
1073 all your data may take a long time. See: 1075 all your data may take a long time. See:
1074 https://issues.roundup-tracker.org/issue1195739 and 1076 https://issues.roundup-tracker.org/issue1195739 and
1083 SATA drive. Using native indexing with sqlite took about 45 1085 SATA drive. Using native indexing with sqlite took about 45
1084 minutes. Using whoosh took about 2 hours. Using xapian took about 6 1086 minutes. Using whoosh took about 2 hours. Using xapian took about 6
1085 hours. All examples were with Python 2. Anecdotal evidence shows 1087 hours. All examples were with Python 2. Anecdotal evidence shows
1086 Python 3 is faster, but YMMV. 1088 Python 3 is faster, but YMMV.
1087 1089
1088 Merge improvements in statusauditor.py 1090 Merge improvements in statusauditor.py (optional)
1089 -------------------------------------- 1091 -------------------------------------------------
1090 1092
1091 By default the detector statusauditor.py will change the status from 1093 By default the detector statusauditor.py will change the status from
1092 "unread" to "chatting" when a second message is added to an issue. 1094 "unread" to "chatting" when a second message is added to an issue.
1093 The distributed classic and jinja templates implement this feature in 1095 The distributed classic and jinja templates implement this feature in
1094 their copies of ``detectors/statusauditor.py``. 1096 their copies of ``detectors/statusauditor.py``.
1144 DETECTOR::STATUSAUDITOR_CHATTING_REQUIRES_TWO_USERS: 'T' 1146 DETECTOR::STATUSAUDITOR_CHATTING_REQUIRES_TWO_USERS: 'T'
1145 Allowed values: yes, no 1147 Allowed values: yes, no
1146 1148
1147 to fix this set the value to ``yes`` (True) or ``no`` (False). 1149 to fix this set the value to ``yes`` (True) or ``no`` (False).
1148 1150
1149 Responsive template changes 1151 Responsive template changes (optional)
1150 --------------------------- 1152 --------------------------------------
1151 1153
1152 There have been some changes to the responsive template. You can 1154 There have been some changes to the responsive template. You can
1153 diff/merge these changes into your responsive template based tracker. 1155 diff/merge these changes into your responsive template based tracker.
1154 1156
1155 Jinja template changes 1157 Jinja template changes (required)
1156 ---------------------- 1158 ---------------------------------
1157 1159
1158 Auto escaping has been enabled in the jinja template engine, this 1160 Auto escaping has been enabled in the jinja template engine, this
1159 means it is no longer necessary to manually escape dynamic strings 1161 means it is no longer necessary to manually escape dynamic strings
1160 with ``|e``, but strings that should not be escaped need to be marked 1162 with ``|e``, but strings that should not be escaped need to be marked
1161 with ``|safe`` (e.g. ``{{ context.history()|u|safe }}``). Also, the i18n 1163 with ``|safe`` (e.g. ``{{ context.history()|u|safe }}``). Also, the i18n
1219 1221
1220 Read the new config.ini and configure it to enable new 1222 Read the new config.ini and configure it to enable new
1221 features. Details on using these features can be found in 1223 features. Details on using these features can be found in
1222 this section. 1224 this section.
1223 1225
1224 Make sure that user can view labelprop on classes (REQUIRED) 1226 Make sure that user can view labelprop on classes (required)
1225 ------------------------------------------------------------ 1227 ------------------------------------------------------------
1226 1228
1227 If you have View permissions that use ```properties=...```, 1229 If you have View permissions that use ```properties=...```,
1228 make sure that the labelprop for the class is listed in the 1230 make sure that the labelprop for the class is listed in the
1229 properties list. 1231 properties list.
1252 content. 1254 content.
1253 1255
1254 See: https://sourceforge.net/p/roundup/mailman/message/35763294/ 1256 See: https://sourceforge.net/p/roundup/mailman/message/35763294/
1255 for the initial discussion of the issue. 1257 for the initial discussion of the issue.
1256 1258
1257 Cross Site Request Forgery Detection Added 1259 Cross Site Request Forgery Detection Added (recommended)
1258 ------------------------------------------ 1260 --------------------------------------------------------
1259 1261
1260 Roundup 1.6. supports a number of defenses against CSRF. 1262 Roundup 1.6. supports a number of defenses against CSRF.
1261 1263
1262 Http header verification against the tracker's ``web`` 1264 Http header verification against the tracker's ``web``
1263 setting in the ``[tracker]`` section of config.ini for the 1265 setting in the ``[tracker]`` section of config.ini for the
1394 security issue required a directory with a specific unusual name. This 1396 security issue required a directory with a specific unusual name. This
1395 made it difficult to exploit. However allowing the use of 1397 made it difficult to exploit. However allowing the use of
1396 subdirectories to organize the templates required that it be fixed. 1398 subdirectories to organize the templates required that it be fixed.
1397 1399
1398 1400
1399 Database back end specified in config.ini (REQUIRED) 1401 Database back end specified in config.ini (required)
1400 ---------------------------------------------------- 1402 ----------------------------------------------------
1401 1403
1402 The ``db/backend_name`` file is no longer used to configure the database 1404 The ``db/backend_name`` file is no longer used to configure the database
1403 backend being used for a tracker. The backend is now configured in the 1405 backend being used for a tracker. The backend is now configured in the
1404 ``config.ini`` file using the ``backend`` option located in the ``[rdbms]`` 1406 ``config.ini`` file using the ``backend`` option located in the ``[rdbms]``
1503 # address. It must be a valid RFC2822 address or people will not be 1505 # address. It must be a valid RFC2822 address or people will not be
1504 # able to reply. 1506 # able to reply.
1505 # Default: 1507 # Default:
1506 replyto_address = 1508 replyto_address =
1507 1509
1508 Login from a search or after logout works better (REQUIRED) 1510 Login from a search or after logout works better (required)
1509 ----------------------------------------------------------- 1511 -----------------------------------------------------------
1510 1512
1511 The login form has been improved to work with some back end code 1513 The login form has been improved to work with some back end code
1512 changes. Now when a user logs in they stay on the same page where they 1514 changes. Now when a user logs in they stay on the same page where they
1513 started the login. To make this work, you must change the tal that is 1515 started the login. To make this work, you must change the tal that is

Roundup Issue Tracker: http://roundup-tracker.org/