You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/processes/release/tasks/miscellaneous.md
+83-2Lines changed: 83 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,11 +139,92 @@ a model.
139
139
140
140
## Scrub closed issues in code
141
141
142
+
ICU and CLDR issues are tracked with the [Unicode JIRA tool](https://unicode-org.atlassian.net/jira/dashboards/last-visited). Each open issue should be indicated in code with either "TODO" or "knownIssue" as a comment that includes the JIRA identifier.
143
+
144
+
Sometimes an issue has been marked as "done" without updating the "TODO" or "knownIssue" item in the code or test routines. This step is used to synchronize the issue database and the code.
145
+
146
+
The idea is simple:
147
+
142
148
(1) Search for "TODO(12345)" to detect TODO items for closed issues.
143
149
144
150
(2) Do the same for logKnownIssue. (the data related logKnownIssues are often
145
151
addressed during CLDR data integration)
146
152
147
-
If the TODO or logKnownIssue references a closed issue, if the problem is fixed,
148
-
remove the TODO/logKnownIssue, or if the problem is not fixed, open a new issue
153
+
(3) For each TODO or logKnownIssue that is marked as "done", check the status:
154
+
* If the problem is fixed,remove the TODO/logKnownIssue.
155
+
* If the problem is not fixed, either reopen the issue or create a new issue
149
156
and update the reference in the code.
157
+
* Communicate problems with the Unicode tech team.
158
+
159
+
> [!NOTE]
160
+
> New in ICU78: Finding issues is automated with a python script in
161
+
icu/tools/scripts/scrub_issues. Here's how:
162
+
163
+
1. Install the python jira module, e.g., `pip install jira`. See [pypi.org.project/jira](https://pypi.org/project/jira/).
164
+
2. Get the latest version of ICU code in local directory, e.g., ~/newICU.
165
+
3. Execute the script from the scrub_issues directory with the ICU code path:
166
+
```
167
+
# In the new ICU directory
168
+
cd icu/tools/scripts/scrub_issues/scrub_issues.py
169
+
python scrub_issues.py --icu_base ~/newICU/icu |& tee new_scrub_results.txt
170
+
```
171
+
4. Examine each line of the "Closed ids" section of the output file:
172
+
* Try removing the code that prevents tests from failing in the lines for each of the "knownIssue" and "TODO" items.
173
+
* If a modified test passes, update the code in the Github repository.
174
+
* After merging changes, synch with the repository. Then rerun the python script to verify that the status is updated.
175
+
176
+
By default, the script reports all instances of each TODO or knownIssue by file and line number in that file.
This script also finds commented lines that are not named with either "ICU-" or "CLDR-" plus a number. Often these are very old issues that may have been resolved without updating the code.
194
+
195
+
Sometimes just an indentifier that is simple a number is found. In these cases, the script checks if there is a JIRA issue with either prefix and that number.
196
+
Consider updating the test code with the full identifier. In that case "REPLACEMENT" is shown.
0 commit comments