Mercurial > p > roundup > code
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 |
