vhf / remark-lint-alphabetize-lists

remark-lint-alphabetize-lists
7 stars 5 forks source link

Distinct results for each Node versions / platforms #18

Open davorpa opened 3 years ago

davorpa commented 3 years ago

Bug report

Problem

https://github.com/vhf/remark-lint-alphabetize-lists/blob/ee5f968040acf941c9c4d61fefb2bb1e3b1e8a7b/lib/alphabetical-list-items.js#L27

In Node, Intl webapi has implemented using C ICU library. Due to it size is not provided by default in common builds (only en-US), so it's difficult make a matrix test.

In Node 12.x Windows reports warnings failing CI and in Node 14.x Ubuntu 18+ don't. Current remark supports 12.x

Also happens using fpb-lint client

:arrow_down_small: see log on current `master` :arrow_down_small: ```log usuario@ASUSERV /w/free-programming-books (master=) $ npm run fpb-lint > lint-fpb > fpb-lint ./books/ && fpb-lint ./casts/ && fpb-lint ./courses/ && fpb-lint ./more/ W:\free-programming-books\books\free-programming-books-ar.md 59:1-62:91 warning Alphabetical ordering: swap l.60 and l.59 alphabetize-lists remark-lint ‼ 1 warning W:\free-programming-books\books\free-programming-books-bg.md 14:1-16:134 warning Alphabetical ordering: swap l.15 and l.14 alphabetize-lists remark-lint 33:1-36:103 warning Alphabetical ordering: swap l.36 and l.35 alphabetize-lists remark-lint 41:1-42:77 warning Alphabetical ordering: swap l.42 and l.41 alphabetize-lists remark-lint ‼ 3 warnings W:\free-programming-books\books\free-programming-books-fa_IR.md 3:1-12:10 warning Alphabetical ordering: swap l.5 and l.4 alphabetize-lists remark-lint ‼ 1 warning W:\free-programming-books\books\free-programming-books-ja.md 4:3-20:80 warning Alphabetical ordering: swap l.13 and l.12 alphabetize-lists remark-lint 4:3-20:80 warning Alphabetical ordering: swap l.19 and l.18 alphabetize-lists remark-lint 136:1-140:62 warning Alphabetical ordering: swap l.140 and l.139 alphabetize-lists remark-lint 156:1-163:109 warning Alphabetical ordering: swap l.157 and l.156 alphabetize-lists remark-lint 180:1-183:99 warning Alphabetical ordering: swap l.183 and l.182 alphabetize-lists remark-lint 194:1-200:103 warning Alphabetical ordering: swap l.196 and l.195 alphabetize-lists remark-lint 194:1-200:103 warning Alphabetical ordering: swap l.198 and l.197 alphabetize-lists remark-lint 248:1-256:53 warning Alphabetical ordering: swap l.256 and l.255 alphabetize-lists remark-lint 542:1-544:61 warning Alphabetical ordering: swap l.544 and l.543 alphabetize-lists remark-lint 556:1-575:204 warning Alphabetical ordering: swap l.564 and l.563 alphabetize-lists remark-lint 586:1-596:77 warning Alphabetical ordering: swap l.590 and l.589 alphabetize-lists remark-lint 586:1-596:77 warning Alphabetical ordering: swap l.593 and l.592 alphabetize-lists remark-lint 586:1-596:77 warning Alphabetical ordering: swap l.596 and l.595 alphabetize-lists remark-lint ‼ 13 warnings W:\free-programming-books\books\free-programming-books-ko.md 3:1-28:18 warning Alphabetical ordering: swap l.4 and l.3 alphabetize-lists remark-lint 48:1-49:108 warning Alphabetical ordering: swap l.49 and l.48 alphabetize-lists remark-lint 64:1-66:58 warning Alphabetical ordering: swap l.65 and l.64 alphabetize-lists remark-lint 71:1-74:201 warning Alphabetical ordering: swap l.72 and l.71 alphabetize-lists remark-lint 128:1-135:92 warning Alphabetical ordering: swap l.134 and l.133 alphabetize-lists remark-lint ‼ 5 warnings W:\free-programming-books\books\free-programming-books-ru.md 4:3-8:52 warning Alphabetical ordering: swap l.8 and l.7 alphabetize-lists remark-lint 74:1-86:131 warning Alphabetical ordering: swap l.85 and l.84 alphabetize-lists remark-lint 102:1-104:116 warning Alphabetical ordering: swap l.104 and l.103 alphabetize-lists remark-lint 144:1-147:140 warning Alphabetical ordering: swap l.147 and l.146 alphabetize-lists remark-lint 167:1-168:124 warning Alphabetical ordering: swap l.168 and l.167 alphabetize-lists remark-lint 188:1-191:43 warning Alphabetical ordering: swap l.191 and l.190 alphabetize-lists remark-lint 196:1-200:241 warning Alphabetical ordering: swap l.199 and l.198 alphabetize-lists remark-lint 205:1-210:115 warning Alphabetical ordering: swap l.209 and l.208 alphabetize-lists remark-lint 215:1-219:67 warning Alphabetical ordering: swap l.217 and l.216 alphabetize-lists remark-lint 215:1-219:67 warning Alphabetical ordering: swap l.218 and l.217 alphabetize-lists remark-lint 229:1-240:118 warning Alphabetical ordering: swap l.230 and l.229 alphabetize-lists remark-lint 229:1-240:118 warning Alphabetical ordering: swap l.237 and l.236 alphabetize-lists remark-lint 229:1-240:118 warning Alphabetical ordering: swap l.239 and l.238 alphabetize-lists remark-lint 256:1-257:51 warning Alphabetical ordering: swap l.257 and l.256 alphabetize-lists remark-lint 262:1-263:55 warning Alphabetical ordering: swap l.263 and l.262 alphabetize-lists remark-lint 268:1-269:55 warning Alphabetical ordering: swap l.269 and l.268 alphabetize-lists remark-lint 274:1-275:79 warning Alphabetical ordering: swap l.275 and l.274 alphabetize-lists remark-lint 280:1-281:50 warning Alphabetical ordering: swap l.281 and l.280 alphabetize-lists remark-lint 286:1-294:85 warning Alphabetical ordering: swap l.293 and l.292 alphabetize-lists remark-lint 286:1-294:85 warning Alphabetical ordering: swap l.294 and l.293 alphabetize-lists remark-lint 305:1-307:81 warning Alphabetical ordering: swap l.307 and l.306 alphabetize-lists remark-lint 312:1-313:70 warning Alphabetical ordering: swap l.313 and l.312 alphabetize-lists remark-lint 344:1-345:102 warning Alphabetical ordering: swap l.345 and l.344 alphabetize-lists remark-lint 379:1-381:54 warning Alphabetical ordering: swap l.381 and l.380 alphabetize-lists remark-lint 386:1-388:54 warning Alphabetical ordering: swap l.388 and l.387 alphabetize-lists remark-lint 393:1-396:72 warning Alphabetical ordering: swap l.396 and l.395 alphabetize-lists remark-lint 422:1-433:108 warning Alphabetical ordering: swap l.428 and l.427 alphabetize-lists remark-lint 422:1-433:108 warning Alphabetical ordering: swap l.432 and l.431 alphabetize-lists remark-lint 438:1-439:120 warning Alphabetical ordering: swap l.439 and l.438 alphabetize-lists remark-lint 450:1-454:70 warning Alphabetical ordering: swap l.452 and l.451 alphabetize-lists remark-lint 450:1-454:70 warning Alphabetical ordering: swap l.454 and l.453 alphabetize-lists remark-lint 464:1-465:115 warning Alphabetical ordering: swap l.465 and l.464 alphabetize-lists remark-lint 470:1-472:66 warning Alphabetical ordering: swap l.472 and l.471 alphabetize-lists remark-lint 477:1-480:69 warning Alphabetical ordering: swap l.479 and l.478 alphabetize-lists remark-lint 509:1-512:86 warning Alphabetical ordering: swap l.512 and l.511 alphabetize-lists remark-lint 517:1-518:51 warning Alphabetical ordering: swap l.518 and l.517 alphabetize-lists remark-lint 529:1-531:120 warning Alphabetical ordering: swap l.531 and l.530 alphabetize-lists remark-lint 536:1-547:137 warning Alphabetical ordering: swap l.538 and l.537 alphabetize-lists remark-lint 536:1-547:137 warning Alphabetical ordering: swap l.546 and l.544 alphabetize-lists remark-lint ‼ 39 warnings W:\free-programming-books\books\free-programming-books-th.md 15:1-16:96 warning Alphabetical ordering: swap l.16 and l.15 alphabetize-lists remark-lint ‼ 1 warning W:\free-programming-books\books\free-programming-books-zh.md 4:3-25:22 warning Alphabetical ordering: swap l.10 and l.9 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.11 and l.10 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.13 and l.12 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.15 and l.14 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.17 and l.16 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.18 and l.17 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.20 and l.19 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.22 and l.21 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.23 and l.22 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.7 and l.6 alphabetize-lists remark-lint 4:3-25:22 warning Alphabetical ordering: swap l.8 and l.7 alphabetize-lists remark-lint 91:1-110:62 warning Alphabetical ordering: swap l.102 and l.101 alphabetize-lists remark-lint 91:1-110:62 warning Alphabetical ordering: swap l.93 and l.92 alphabetize-lists remark-lint 91:1-110:62 warning Alphabetical ordering: swap l.94 and l.93 alphabetize-lists remark-lint 91:1-110:62 warning Alphabetical ordering: swap l.96 and l.95 alphabetize-lists remark-lint 115:1-117:114 warning Alphabetical ordering: swap l.116 and l.115 alphabetize-lists remark-lint 115:1-117:114 warning Alphabetical ordering: swap l.117 and l.116 alphabetize-lists remark-lint 122:1-125:46 warning Alphabetical ordering: swap l.123 and l.122 alphabetize-lists remark-lint 122:1-125:46 warning Alphabetical ordering: swap l.124 and l.123 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.137 and l.136 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.139 and l.138 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.140 and l.139 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.141 and l.140 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.143 and l.142 alphabetize-lists remark-lint 135:1-155:55 warning Alphabetical ordering: swap l.147 and l.146 alphabetize-lists remark-lint 165:1-167:88 warning Alphabetical ordering: swap l.166 and l.165 alphabetize-lists remark-lint 165:1-167:88 warning Alphabetical ordering: swap l.167 and l.166 alphabetize-lists remark-lint 198:1-200:79 warning Alphabetical ordering: swap l.199 and l.198 alphabetize-lists remark-lint 222:1-230:61 warning Alphabetical ordering: swap l.223 and l.222 alphabetize-lists remark-lint 222:1-230:61 warning Alphabetical ordering: swap l.226 and l.225 alphabetize-lists remark-lint 235:1-248:39 warning Alphabetical ordering: swap l.237 and l.236 alphabetize-lists remark-lint 235:1-248:39 warning Alphabetical ordering: swap l.238 and l.237 alphabetize-lists remark-lint 235:1-248:39 warning Alphabetical ordering: swap l.240 and l.239 alphabetize-lists remark-lint 235:1-248:39 warning Alphabetical ordering: swap l.241 and l.240 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.272 and l.271 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.275 and l.274 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.276 and l.275 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.278 and l.277 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.279 and l.278 alphabetize-lists remark-lint 269:1-291:81 warning Alphabetical ordering: swap l.280 and l.279 alphabetize-lists remark-lint 296:1-298:68 warning Alphabetical ordering: swap l.298 and l.297 alphabetize-lists remark-lint 317:1-318:61 warning Alphabetical ordering: swap l.318 and l.317 alphabetize-lists remark-lint 323:1-326:63 warning Alphabetical ordering: swap l.324 and l.323 alphabetize-lists remark-lint 336:1-350:48 warning Alphabetical ordering: swap l.339 and l.338 alphabetize-lists remark-lint 336:1-350:48 warning Alphabetical ordering: swap l.340 and l.339 alphabetize-lists remark-lint 336:1-350:48 warning Alphabetical ordering: swap l.343 and l.342 alphabetize-lists remark-lint 355:1-357:46 warning Alphabetical ordering: swap l.356 and l.355 alphabetize-lists remark-lint 355:1-357:46 warning Alphabetical ordering: swap l.357 and l.356 alphabetize-lists remark-lint 373:1-376:82 warning Alphabetical ordering: swap l.374 and l.373 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.392 and l.391 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.393 and l.392 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.394 and l.393 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.396 and l.395 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.400 and l.399 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.401 and l.400 alphabetize-lists remark-lint 391:1-409:169 warning Alphabetical ordering: swap l.402 and l.401 alphabetize-lists remark-lint 425:1-434:52 warning Alphabetical ordering: swap l.427 and l.426 alphabetize-lists remark-lint 425:1-434:52 warning Alphabetical ordering: swap l.428 and l.427 alphabetize-lists remark-lint 439:1-444:57 warning Alphabetical ordering: swap l.440 and l.439 alphabetize-lists remark-lint 449:1-468:85 warning Alphabetical ordering: swap l.450 and l.449 alphabetize-lists remark-lint 449:1-468:85 warning Alphabetical ordering: swap l.451 and l.450 alphabetize-lists remark-lint 449:1-468:85 warning Alphabetical ordering: swap l.457 and l.456 alphabetize-lists remark-lint 449:1-468:85 warning Alphabetical ordering: swap l.458 and l.457 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.474 and l.473 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.476 and l.475 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.477 and l.476 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.483 and l.482 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.484 and l.483 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.485 and l.484 alphabetize-lists remark-lint 473:1-487:55 warning Alphabetical ordering: swap l.487 and l.486 alphabetize-lists remark-lint 492:3-495:162 warning Alphabetical ordering: swap l.493 and l.492 alphabetize-lists remark-lint 492:3-495:162 warning Alphabetical ordering: swap l.494 and l.493 alphabetize-lists remark-lint 500:3-502:58 warning Alphabetical ordering: swap l.502 and l.501 alphabetize-lists remark-lint 507:3-510:58 warning Alphabetical ordering: swap l.508 and l.507 alphabetize-lists remark-lint 507:3-510:58 warning Alphabetical ordering: swap l.510 and l.509 alphabetize-lists remark-lint 531:3-532:110 warning Alphabetical ordering: swap l.532 and l.531 alphabetize-lists remark-lint 537:3-550:79 warning Alphabetical ordering: swap l.539 and l.538 alphabetize-lists remark-lint 537:3-550:79 warning Alphabetical ordering: swap l.546 and l.545 alphabetize-lists remark-lint 537:3-550:79 warning Alphabetical ordering: swap l.548 and l.547 alphabetize-lists remark-lint 555:3-560:57 warning Alphabetical ordering: swap l.560 and l.559 alphabetize-lists remark-lint 575:1-577:54 warning Alphabetical ordering: swap l.576 and l.575 alphabetize-lists remark-lint 575:1-577:54 warning Alphabetical ordering: swap l.577 and l.576 alphabetize-lists remark-lint 593:1-594:39 warning Alphabetical ordering: swap l.594 and l.593 alphabetize-lists remark-lint 605:1-611:104 warning Alphabetical ordering: swap l.607 and l.606 alphabetize-lists remark-lint 623:1-630:52 warning Alphabetical ordering: swap l.624 and l.623 alphabetize-lists remark-lint 623:1-630:52 warning Alphabetical ordering: swap l.629 and l.628 alphabetize-lists remark-lint 658:1-672:76 warning Alphabetical ordering: swap l.659 and l.658 alphabetize-lists remark-lint 658:1-672:76 warning Alphabetical ordering: swap l.661 and l.660 alphabetize-lists remark-lint 658:1-672:76 warning Alphabetical ordering: swap l.662 and l.661 alphabetize-lists remark-lint 658:1-672:76 warning Alphabetical ordering: swap l.668 and l.667 alphabetize-lists remark-lint 658:1-672:76 warning Alphabetical ordering: swap l.671 and l.670 alphabetize-lists remark-lint 677:1-681:72 warning Alphabetical ordering: swap l.680 and l.679 alphabetize-lists remark-lint 686:1-689:102 warning Alphabetical ordering: swap l.688 and l.687 alphabetize-lists remark-lint 686:1-689:102 warning Alphabetical ordering: swap l.689 and l.688 alphabetize-lists remark-lint 699:1-704:52 warning Alphabetical ordering: swap l.700 and l.699 alphabetize-lists remark-lint 699:1-704:52 warning Alphabetical ordering: swap l.702 and l.701 alphabetize-lists remark-lint 709:1-712:53 warning Alphabetical ordering: swap l.710 and l.709 alphabetize-lists remark-lint 734:1-738:69 warning Alphabetical ordering: swap l.735 and l.734 alphabetize-lists remark-lint 734:1-738:69 warning Alphabetical ordering: swap l.737 and l.736 alphabetize-lists remark-lint 748:1-752:109 warning Alphabetical ordering: swap l.749 and l.748 alphabetize-lists remark-lint 748:1-752:109 warning Alphabetical ordering: swap l.750 and l.749 alphabetize-lists remark-lint 748:1-752:109 warning Alphabetical ordering: swap l.751 and l.750 alphabetize-lists remark-lint 757:1-759:111 warning Alphabetical ordering: swap l.758 and l.757 alphabetize-lists remark-lint 780:1-781:117 warning Alphabetical ordering: swap l.781 and l.780 alphabetize-lists remark-lint ‼ 104 warnings ```

Proposed Solution

What is the recomendation?

  1. Improve documentation linking how to configure Node to support extra ICU packages
  2. Include full-icu library as javascript run dependency