Solución reto #36 en Swift

Hola no entiendo este río de mensajes podrías explicarme quién eres y que
es esto?
Muchas gracias.
El mié., 14 sept. 2022 20:10, Jaimefere @.***> escribió:

You can view, comment on, or merge this pull request online at:
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260
Commit Summary

47e2a72
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/47e2a72122776809b89c041a0b5cd939d30e8b80
Jaimefere's solution (7 s)
56891fe
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/56891fec71d9677f5e694ccbceba53e6cfefa6eb
Jaimefere's solution in separated playground page
8bcf066
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/8bcf0661fc3205e40a8518a5366ba4998e19c48b
Merge remote-tracking branch 'refs/remotes/original/main'
f91005a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/f91005ada5fda06f0c8661fb26bf73ad1e97d179
Solución Reto #1
526e435
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/526e43578723e3e9c68cba288e73fa9cd88ef177
Merge remote-tracking branch 'refs/remotes/original/main'
ce9342b
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ce9342b7e2eb973b6dfdca718f67ba6e9ab8c2eb
Solución #1 y enunciado #2
2a1ba15
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/2a1ba151102be3b2007840173525baec20e7681b
Jaimefere's solution #2 challenge
9408827
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/940882769d78fd8857b36541dc7ec519fe32af87
Return false when words have equal lengths and they use different letters
0c8ac9b
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/0c8ac9b2721cd44a983040b2b8555a6a48f3d709
Without sorting
c9aa492
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/c9aa49205350a74a3266ec6bac2494b5ef9cc73a
Merge remote-tracking branch 'refs/remotes/original/main'
d31d5f3
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/d31d5f3f0aa07c1fdde8daf1c02195d45d464697
Rename #2 Jaimefere's solution
49f188e
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/49f188e1fc494c2eec1ecb0d94c7de80cfd994cd
#3 Jaimefere's solution
49781ac
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/49781acbe46eb9283174f75d35379d2d38bb6e63
Jaimefere's #3 solution in separated file
63894bc
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/63894bc713df4665c09bc3d93c0965b5a79c3b05
Merge remote-tracking branch 'refs/remotes/original/main'
7059ae4
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/7059ae4437f295fb153be698827353387792d64d
Jaimefere's #4 solution
e931a47
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e931a4705dbbda08085ce56c0ccf1059219a06d1
Jaimefere's #4 solution, only one constructor
010a7b3
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/010a7b343ab2e312884aa84bb631c7343838d944
Move #4 Jaimefere's solution to a distinct page
719d9b1
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/719d9b1d4d877b404f5a23f76a8c842e57b2af30
Merge remote-tracking branch 'refs/remotes/original/main'
1cd348c
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/1cd348cece4c0b78c4750dd50e7a8c76db116708
#5 Jaimefere's solution
cc2c78e
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/cc2c78e13005b005cc787ed52447f40c9509abc4
Move #5 Jaimefere's solution to a distinct page
a6cf6a1
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a6cf6a13e88e521dfdd90c994757c52eb6f033b1
Merge remote-tracking branch 'refs/remotes/original/main'
e8a1bd1
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e8a1bd1c764ca4280c1dd62fbf249b8cd9a1eb93
#6 Jaimefere's solution
fdb5948
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/fdb5948e015e64a5d23ac9d926a1120fb31dd1f6
Move #6 Jaimefere's solution to another page
99305da
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/99305dae838553af7cfb4f72687cb5db11021be1
Merge remote-tracking branch 'refs/remotes/original/main'
548b03b
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/548b03bb9c77da094bc68ac15ddb9efd0c3650f3
#7 Jaimefere's solution
531c929
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/531c9295b7c94558e7d94aa92bd4483996081d5b
Move #7 Jaimefere's solution to another page
974c183
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/974c183a08ce6a7ca3663eed690652d347633c7c
Merge remote-tracking branch 'refs/remotes/original/main'
a1a1e13
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a1a1e13f031102d6727d05548a0c73de79a971a8
#8 Jaimefere's solution
46282cc
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/46282ccc0890997b8ede23beb0fd7395843fdaaa
Move #8 Jaimefere's solution to another page
37e5101
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/37e5101bf1c3aed8ec63d58ec2d8dd77aa218575
Merge remote-tracking branch 'refs/remotes/original/main'
7e7d16a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/7e7d16af6a1f833a74d2be7d12e7fc2691976e9e
#9 Jaimefere's solution
d553391
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/d553391d582c358f6aeb523077fa1a1a315e67f2
Move #9 Jaimefere's solution to another page
2d891ea
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/2d891ea59b4d2b0436abdc3461612e8d33a170fc
Merge remote-tracking branch 'refs/remotes/original/main'
995c11a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/995c11aabec88d91764f3f05f301f8ff49cb5425
#10 Jaimefere's solution
47f7063
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/47f706331d357bbde4dd799ddcd32178e4b93532
Move #10 Jaimefere's solution to another page
6f8972d
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/6f8972df7f8049484bbb04a8e123d1b41cecbf51
Merge remote-tracking branch 'refs/remotes/original/main'
94369e7
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/94369e7c5a2a81fe06493d28b0455520980882fa
#11 Jaimefere's solution
e96cba0
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e96cba07b88c43503c441b16daf85a336e9e35b1
Move #11 Jaimefere's solution to another page
cda4473
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/cda4473acdb5a0a9c9919a6eb1976a802e54e2f4
Merge remote-tracking branch 'refs/remotes/original/main'
e4c6be9
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e4c6be9c0dcceece14e65b14c67640b194e1f5b0
#12 Jaimefere's solution
e2c4ece
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e2c4ecef8e4d1acfae7eb8cef005a3a81cadc108
Move #12 jaimefere's solution to another page
a8853ab
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a8853ab2e2df06fbdedef564b6be3dec84b9a72b
Merge remote-tracking branch 'refs/remotes/original/main'
493d8e4
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/493d8e479e8bc0c61da0eb8ea1ae61bd8261d3c3
#13 Jaimefere's refactored solution
c251c3a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/c251c3aeb391a5edb61f73fd521cb2f2b5fec689
Move #13 jaimefere's solution to another page
9909fb6
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/9909fb6896338b50fb2d08452c7470ab721007cf
Merge remote-tracking branch 'refs/remotes/original/main'
9c6a1f1
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/9c6a1f1560c949da5c296408d96138fb671a4d7b
#14 Jaimefere's solution
29083c7
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/29083c7ead625b5f44b70db25981f1b1a6832344
Move #14 jaimefere's solution to another page
fc67113
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/fc671133fa518cf16fdfdfbf0a00b792d8a7a2fd
Merge remote-tracking branch 'refs/remotes/original/main'
4000f58
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/4000f58250128ad3e68ce753192b254894bf70d6
#15 Jaimefere's solution
7fad1f3
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/7fad1f3822036242f2ba76a964aa6a641aaea2d0
Move #15 jaimefere's solution to another page
2295003
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/22950036f41f8352e979647edf043ab98a877c15
Merge remote-tracking branch 'refs/remotes/original/main'
a5bf2ae
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a5bf2aeb22d1dc7b59370d47fd5f7c2e041e5ba4
#16 Jaimefere's solution
428038f
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/428038f733af3b92cc3a8278b18d2b129c080068
Move Jaimefere's solution #16 to another page
3d0de6a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/3d0de6a75022c33416a9f1c792c6175d6adacf67
Merge remote-tracking branch 'refs/remotes/original/main'
08d4f19
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/08d4f198c9ade05f1d18ad3552edabb898a99716
Move Jaimefere's solution #17 to another page
f290b5f
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/f290b5f8e9612671b70acfb508ebb4567456c2ee
Jaimefere's solution #18
03c6b07
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/03c6b07e82ffa171cf958e3d91bfa6b1a2650c7d
Move Jaimefere's solution #18 to another page
3ba0e56
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/3ba0e560ee4126ab6cc0944ad4f29cce6599e839
Merge remote-tracking branch 'refs/remotes/original/main'
bfc77ba
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/bfc77ba9e3d3a9cb97385898dd315a2090fb7523
Jaimefere's solution #19
932c0e6
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/932c0e69adc97cd097e797d51b62d12356a833b3
Move Jaimefere's solution #19 to another page
4e5a0e0
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/4e5a0e0bf150e6c00f80787b65d5d8f08987d8f6
Merge remote-tracking branch 'refs/remotes/original/main'
78bd6c2
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/78bd6c2f19e725fe4ab61f5ec5841486e0c344b4
Jaimefere's solution #20
20e1d12
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/20e1d12ca1bcb138a4daf292cd652f650dcf0f80
Move Jaimefere's solution #20 to another page
b68403b
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/b68403b098480ef9d4ee147a8fb05322330c8a2c
Merge remote-tracking branch 'refs/remotes/original/main'
6493f73
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/6493f73174718ba9caa9535de547ed612886e51f
Jaimefere's solution #21
ece3a01
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ece3a019500b6c46e5b1159a37a5599f74a05a53
Move Jaimefere's solution #21 to another page
3f9d7f4
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/3f9d7f4a2e3f37e4d3f46affa86a5d7c16e0dcb6
Merge remote-tracking branch 'refs/remotes/original/main'
291fcfe
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/291fcfeecbc0fdef1f882b774d727cf06b3378f7
Jaimefere's solution #22
45e31a5
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/45e31a507f6bf38f66ff40519274bf098976d76d
Move Jaimefere's solution #22 to another page
604a273
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/604a273727703c6d8f1ef402ee42929a380e0b1d
Merge remote-tracking branch 'refs/remotes/original/main'
a1e15b7
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a1e15b7a38849aeba12651577b625a9c74743ae8
Jaimefere's solution #23
3bcfe3e
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/3bcfe3e54c57b5baa552bd0f1adf92758ec83764
Move Jaimefere's solution #23 to another page
fd76a17
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/fd76a17c6e6c5c04ab20dfc333f1dda13794ead9
Merge remote-tracking branch 'refs/remotes/original/main'
5e1efa1
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/5e1efa1755d549dec6760911599b2c1298bda5c2
Jaimefere's solution #24
df25020
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/df25020f4494d532beb5b24dc4a2d6a03c975cf8
Move Jaimefere's solution #24 to another page
cbd4bbe
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/cbd4bbece40c98f0affb6b8bd6833fc2941f324d
Merge remote-tracking branch 'refs/remotes/original/main'
70412ed
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/70412eda508724dc76f1931233bceaa56bba630e
Jaimefere's solution #25
444d2df
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/444d2df6f7f38de4e1249d47308c619fc9c713f8
Move Jaimefere's solution #25 to another page
570ff0f
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/570ff0fd927117f99a390607cfe607b05f7ffe3e
Merge remote-tracking branch 'refs/remotes/original/main'
5061e91
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/5061e91abda9b3a90c7359b1f230a1aac3fa5f68
Jaimefere's solution #26
bd86c61
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/bd86c615716cf1a8bcd14b8e9e0718214b39428e
Move Jaimefere's solution #26 to another page
180a631
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/180a631d4b6a5d742d87431ec08e71661f07d1e6
Merge remote-tracking branch 'refs/remotes/original/main'
ed4eae5
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ed4eae5c5952b15bf6512f924247745321df22ff
Jaimefere's solution #27
abaf7d4
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/abaf7d48c45a603b253d2fe009b4f0f66e38188c
Move Jaimefere's solution #27 to another page
1d43bcf
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/1d43bcfac82147f26a3b75dc96432bd523ddfcb7
Merge remote-tracking branch 'refs/remotes/original/main'
e7ac9b4
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/e7ac9b47705c6e3232122cf94e2863374df2df7c
Jaimefere's solution #28
0390be7
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/0390be78c9b287d265b2fda933c4312eb976406c
Move Jaimefere's solution #28 to another page
6ac32c9
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/6ac32c99eb4348413eb47d9c3fb2279e9f68741a
Merge remote-tracking branch 'refs/remotes/original/main'
7ce0b35
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/7ce0b35cc5165954bd8694cf37e5214696815f0b
Jaimefere's solution #29
a59c675
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a59c6753c0cd39034574853beaffe7af46e6a37f
Move Jaimefere's solution #29 to another page
87b69fa
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/87b69fa3e6b30202d10843b288f2a75dabe0283c
Merge remote-tracking branch 'refs/remotes/original/main'
a16d7ef
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a16d7efa94496bfa783fcf35c73a3f28a2279c89
Jaimefere's solution #30
c040ad0
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/c040ad07c91c672f78cb6ffe8f67a7842f43a564
Move Jaimefere's solution #30 to another page
ba3fe4d
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ba3fe4dfec775323a87ecce052000b4a7cd5eee9
Merge remote-tracking branch 'refs/remotes/original/main'
7dee983
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/7dee9833f89781bb42cd88655062eb32fe25deb7
Jaimefere's solution #31
ff868a7
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ff868a762463eb20fdac57465929bf59aa41c2f4
Move Jaimere's solution #31 to another page
32afa35
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/32afa358e2f5029f67be871411473a2e76355a6a
Merge remote-tracking branch 'refs/remotes/original/main'
9cf62ca
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/9cf62ca7c19dca9e2a518034e0a2d31f7bb93196
Jaimefere's solution #32
174912b
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/174912bc5386b91ea74d425277de203a99fe863f
Move Jaimere's solution #32 to another page
582d341
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/582d3411803a735cb54186e3acdfd0b8165640cb
Merge remote-tracking branch 'refs/remotes/original/main'
2635f56
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/2635f56c2815a4193c0e908af83eae20f06427ec
Jaimefere's solution #33
27a9c0d
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/27a9c0dd221c87264d9b278002966df35374b8a9
Move Jaimefere's solution #33 to another page
a6dfe62
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/a6dfe628501a2d04f36d0a54d984c1f113be7221
Merge remote-tracking branch 'refs/remotes/original/main'
4fa933a
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/4fa933a4751dac6aa9a0f771e6dd9a1eea7bd454
Jaimefere's solution #34
aeee9c5
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/aeee9c5d1161cef471521aec329c4488342bc46a
Move Jaimefere's solution #34 to another page
4d78b7f
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/4d78b7faf96614944c152a9c7f5c706cd296e153
Merge remote-tracking branch 'refs/remotes/original/main'
b080955
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/b080955997fec8f41268fbe736626897133c0cba
Jaimefere's solution #35
ccdef34
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/ccdef34e8ff87ec254c81177260b7a33060c1add
Move Jaimefere's solution #35 to another page
0e92e33
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/0e92e33b51011127f62b8d3006a1faa59dcd3abf
Merge remote-tracking branch 'refs/remotes/original/main'
d242c05
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/commits/d242c05c5dd78321a586b00070e8166ddc630d03
Jaimefere's solution #36

File Changes
(49 files
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files)

A
WeeklyChallenge2022.playground/Pages/Challange4.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-e21d1078594fbf9547e01c5113822f64f767d300c7f36c285f206cba1aefa4c1
(50)
A
WeeklyChallenge2022.playground/Pages/Challenge0.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-45788fcd6d693f2a056eb1a5f3a956210f87418e0c8792b1b721f643b8b11923
(32)
A
WeeklyChallenge2022.playground/Pages/Challenge1.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-79bf6393701ee522aa30b5c04fdfcd16a992bbdfb7f12f824a53559bcd172676
(37)
A
WeeklyChallenge2022.playground/Pages/Challenge10.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-9294ceac5431735a26457d7b4a1bd0651ba1af26a34d60e5e977d1166b2040b9
(52)
M
WeeklyChallenge2022.playground/Pages/Challenge10.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-785b71ac76544376b77138cf5d1909ad4a10e8c49bacf447e0796ce109f355d3
(1)
A
WeeklyChallenge2022.playground/Pages/Challenge11.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-fa9a0acb5be1266d1f7ee68b070f1250c3a599aedcd86edb073602e551a5874f
(34)
A
WeeklyChallenge2022.playground/Pages/Challenge12.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-852319c6622f44ff5ba54789081c5906a31bfeab546a35191ddb0bdb009b883c
(32)
A
WeeklyChallenge2022.playground/Pages/Challenge13.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-85aacd825f2db7418982fbdaf6c9f274c8ccc148b46e127d3fb72ee10ebfc287
(29)
A
WeeklyChallenge2022.playground/Pages/Challenge14.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-6fc4697e1510d4211442dbb7bd0d926ac5581c6bf9017e944b1226c0e9d99c4c
(34)
A
WeeklyChallenge2022.playground/Pages/Challenge15.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-235ace31965f933730ec34d4f99aa33d356aa4e55f06e8b59e3ee398a3b64d6b
(41)
A
WeeklyChallenge2022.playground/Pages/Challenge16.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-ce8e3e4c5758ddc8774f06b1cce31837a0c66362bc23cf483320e5229b82a8f4
(44)
A
WeeklyChallenge2022.playground/Pages/Challenge17.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-57860ab45adbc7dbdfcb64cefcc09f53a0006217e1d41e750b3a53d78d5f1dc2
(70)
A
WeeklyChallenge2022.playground/Pages/Challenge18.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-0095688d6565f3efeaf2cdc248454d1051496b67aa0eaebc6bcb3af190f3f360
(72)
A
WeeklyChallenge2022.playground/Pages/Challenge19.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-e1a70c5352aedeaee77bbfa3e920581a749a59fb1d205f64dec6df9e059838d0
(25)
A
WeeklyChallenge2022.playground/Pages/Challenge2.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-815c48cff3f6b7267faca04d21f69931bb72172baf08db69e909464b0d246142
(28)
A
WeeklyChallenge2022.playground/Pages/Challenge20.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-926942e140e8d35d53c972cfe45e74154b46ea1b5895fea07ab10696b28ede05
(36)
M
WeeklyChallenge2022.playground/Pages/Challenge20.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-c0d095918f0d625a606bc26cccf5dd66b6f6e8cce673883049c01a5bbd8c4472
(1)
A
WeeklyChallenge2022.playground/Pages/Challenge21.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-6333d84dddfcb4752402032f48e845372b82a85abc9c11f5465f2fed47b47cd0
(82)
A
WeeklyChallenge2022.playground/Pages/Challenge21.jaimefere.xcplaygroundpage/Resources/OneValue.txt
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-e44eab7d2a07086bfaeb2c7d588983f3c511d6ae0468e7147f244f82a3a7bcc7
(1)
A
WeeklyChallenge2022.playground/Pages/Challenge21.jaimefere.xcplaygroundpage/Resources/TooNumbers.txt
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-3a576cce4aa3851b2543e718f834c1e360ae5dd80516b0015ed11d7a1f7f1f9e
(4)
A
WeeklyChallenge2022.playground/Pages/Challenge21.jaimefere.xcplaygroundpage/Resources/TooOperators.txt
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-f88e65a7dfdf6644763a513a3828f700bcf855450ce19e3ad33e61300e2139d8
(6)
A
WeeklyChallenge2022.playground/Pages/Challenge21.jaimefere.xcplaygroundpage/Resources/WithDecimals.txt
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-ba64e8709201a8e0b8e86f5a62b7e3c29a4069d76d4b9e9ec8eb083e8cdecdfc
(13)
M
WeeklyChallenge2022.playground/Pages/Challenge21.xcplaygroundpage/Resources/Challenge21.txt
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-d18c329d40b5773f2c32f281ca42d5ba3d4a259f4900fe75fca1efb36a769558
(2)
A
WeeklyChallenge2022.playground/Pages/Challenge22.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-2ca29883e2e83cd3b1bec96d5d52dea806e4eabb527b296abe04a996a8d2a13a
(34)
A
WeeklyChallenge2022.playground/Pages/Challenge23.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-7585fe5335abe2c463b885a85fca6f5f8cf2493c9e30aa87774e554cc460f0c7
(40)
A
WeeklyChallenge2022.playground/Pages/Challenge24.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-96c663043037f059d3c1d40eae6fce4db4409f95f71beaa1a05d24f73320a099
(51)
A
WeeklyChallenge2022.playground/Pages/Challenge25.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-fa69c2f53ad7fe04064d9d0f900675eb1f9bd040bc5223808fe1443c7430b56e
(45)
A
WeeklyChallenge2022.playground/Pages/Challenge26.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-50f7b219bced0da95b0178999e400e50edc406338a9d0aff64cd4ac7b5ba0221
(49)
M
WeeklyChallenge2022.playground/Pages/Challenge26.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-ee8a26c9004b8541ffd4696dd10837aff1d986e43bfc53509f7fe3739f44c229
(2)
A
WeeklyChallenge2022.playground/Pages/Challenge27.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-1a583beb5858a7bf6fdb7056c5b37dbdacbed257b119d7860fbecb73554e5beb
(27)
A
WeeklyChallenge2022.playground/Pages/Challenge28.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-b86b9574dadb1a7a639a101f725a0b0b45561e926ed38f78ba94218c40d3b584
(87)
A
WeeklyChallenge2022.playground/Pages/Challenge29.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-711e26c379ce4c1c2d0219e33e58b82af0db922ded69a3e79c2dda21ea7cc9bf
(98)
A
WeeklyChallenge2022.playground/Pages/Challenge3.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-2d0ffc13e34ac1593726875f333dde0d381c4bdaa43fa4924657a40d2ff48f76
(39)
A
WeeklyChallenge2022.playground/Pages/Challenge30.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-edaa59806ea9a3ebf83eb6b7c508a5957e12d8fecc7f9f1df63d472eefe489a1
(45)
A
WeeklyChallenge2022.playground/Pages/Challenge31.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-ccf95af3ce28aca2a9d476a2d09e97b9756c03df5f9e10f20e59fa0adbb9ea2f
(30)
A
WeeklyChallenge2022.playground/Pages/Challenge32.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-18a37f45abe1fb97fa31885b2be31cd3fb939b6eeca62d418c10cb02029c51d3
(40)
A
WeeklyChallenge2022.playground/Pages/Challenge33.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-8ba6cd866ee750b157d57ac068e66049b594d1b8ddbddbaad18f8502a37457fb
(67)
A
WeeklyChallenge2022.playground/Pages/Challenge34.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-3ad3ac4389929d293c171708a5581f691aecf971fb39543ecfcbcbdd6ca070ae
(65)
A
WeeklyChallenge2022.playground/Pages/Challenge35.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-288e9f7d7e015a47f156d14d573eb1645fa5ce2769a3ea2151932034be226430
(72)
M
WeeklyChallenge2022.playground/Pages/Challenge36.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-5474dc9185137afcf32b75cb45345bd0b1ea55430f58b04528ecc03805df8789
(38)
M
WeeklyChallenge2022.playground/Pages/Challenge4.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-b030cc5cf94a5fb8019f68a316f60ce3cc0b97473b1bf107b63ec6351b120831
(6)
A
WeeklyChallenge2022.playground/Pages/Challenge5.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-690130aecfb36b191a52f95284d15e97e40cbec673dbf2102a0b322007c504f0
(47)
A
WeeklyChallenge2022.playground/Pages/Challenge6.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-c0f7d1823fc9871855c8e318ef8e96b0bd6811019308d5723d116cc7e7f372cd
(30)
M
WeeklyChallenge2022.playground/Pages/Challenge6.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-64cbab7aa3d74151a9b9e0f059f859e72eb9338030e0d595d125bfe763d42938
(7)
A
WeeklyChallenge2022.playground/Pages/Challenge7.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-43e90b150b53fbcbe009dc543355c3dba4947ac2fbd333ff34f232b53beb94d1
(31)
A
WeeklyChallenge2022.playground/Pages/Challenge8.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-84c967f932d0be9a6ac401c2fc6c5dfdf65dfa1fa75cf32e863737912b1f4849
(30)
A
WeeklyChallenge2022.playground/Pages/Challenge9.jaimefere.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-e3786d2bbad68f0a232e8e9ce738e67dba7561cc06123341155e7fd91348d5e5
(97)
M
WeeklyChallenge2022.playground/Pages/Readme.xcplaygroundpage/Contents.swift
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-810a6bab71432f770e3895d7c26bc4492a19984b719b8aaf269d87e2a61c4a57
(1)
M WeeklyChallenge2022.playground/contents.xcplayground
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260/files#diff-f8e4b112dc839144319cdcc2a67229c39cf79539f9dc6d568df08f71c909577f
(37)

Patch Links:

https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260.patch

https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260.diff

—
Reply to this email directly, view it on GitHub
https://github.com/mouredev/Weekly-Challenge-2022-Swift/pull/260, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AOZ63XO5HDB3JGHEAHJOFS3V6IIHVANCNFSM6AAAAAAQMVE2VM
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Refactor class components to functional components with hooks

Converted class components to functional components.

Used useState hook in functional component to keep and update state.

Thank you @codepantha


Discrepancy in docs for the Risperidone example

Hi everyone,
I've been using dockstring actively in another project called poli, and I've been keeping tabs on getting -11.9 exactly on the Risperidone example.
Today, my CI complained about the value being -11.8. Funny. I wonder what changed. I have updated my tests to have an absolute tolerance of 0.1.
Depending on whether you can replicate these issues, it might be worthwhile to update the example in the tutorials.

Hi @miguelgondu, thanks for letting us know, and glad to hear that you are using dockstring!
Exact reproducibility is a bit of a pain point for us: it seems that as other packages get updated, the randomness changes a bit and fewer and fewer setups produce the exact numbers from the original paper. There does not seem to be a clear fix for this.
Do you have any idea what changes caused this on your end? Did you update one or more dependencies? I know for example that changing the rdkit version can change the results.

Unfortunately not directly (since I'm having soft requirements on most packages). I will try to dive deeper later today.

Sounds good. If we can isolate a specific cause then we can raise a warning about it potentially. Otherwise, if there is nothing really we can do, then I might just mark this as a "known issue" and close it.


v2: Error handling

Hi. Yea think there's some mistake in the error handling in v2. If you wanna handle errors from middlewares using error listener you can't, because lib/application.js#L136. It always attachs app.onerror which in one side is okey, but in another is not, because it not emits error event - never called actually?
Wanna PR?

I think we can change it to
      fn(ctx).then(() => respond(ctx)).catch((err) => {
        if (!this.listeners('error').length) {
          return this.onerror(err);
        }
        this.emit('error', err);
      });

can you provide a simple example to reproduce the problem?
we want this error pass to ctx.onerror, and ctx.onerror will emit error event in app.

Actually above snippet isn't so correct, so yea..
    return (req, res) => {
      res.statusCode = 404;
      const ctx = this.createContext(req, res);
      const onerror = err => {
        if (!this.listeners('error').length) {
          return ctx.onerror(err)
        }
        this.emit('error', err, ctx)
      };
      onFinished(res, onerror);
      fn(ctx).then(() => respond(ctx)).catch(onerror);
    };

can you provide a simple example to reproduce the problem?

hm. it's seems it works with latest "alpha7" currently.
var Koa = require('koa')
var app = new Koa()

app.on('error', function (err) {
  console.log(arguments)
})
app.use(function () {
  asd
})
app.listen(1234)

Okey. So we can close this one, but I can't get from where error is fired actually? Haha


Development is Paused due to Critical Godot Bug

A bug with the EditorPlugin constructor raises an error during project run time.
Since the rest of the undeveloped features of GGS rely on being able to run the project, it's currently impossible to go further.
Development of GGS 3.0 is currently on pause until that issue is resolved.
You can track the progress at godotengine/godot#73525

Seems like the issue won't be addressed until Godot 4.1. And there seems to be a workaround regardless.
I'll restart working on the plugin.


[FEEDBACK]  🔥 My new daily use tool

Share us any thoughts or experiences you have had using our library.
If you want to make it privately you can write us to<EMAIL_ADDRESS>What did you like
Just about everything 😍
Mind blown soo many times when I added it to my project and started checking it out
The flexibility developer gets is just amazing and its just made perfectly so well to greatly ease the debugging experience
Its very very very very underated and kudos to your efforts and hardwork @rafaco
I hope this library gets more attention
25 stars for this gem is a crime!
** What would you change**
UI improvements: Default font would be better, UI is a bit too compact and darkish..

Hi @omkar-tenkale!
Thanks, thanks and hundred of more thanks to you for this awesome feedback. Such a lovely motivation words means a lot to me and I'm very glad that you find this library useful. It's my first feedback after 4 years working on this and the waiting has been worth it😅
A sincere apologise for the long delay on my answer, the notification get lost in my mail inbox but I have created a rule to avoid the same situation in the future. I also has been very busy working in a React Native project which put this project on pause but I'm back working on the next release of Iadt. It will migrate out from jCenter, add tablet layout/support and drastically improve the build process (just one gradle line setup will be required).
Related to the UI improvements that you mention, I have a full UI revision in mind allowing to adjust the scale of the texts, but it's not on top of my priorities and it's not going to be soon. Do you want to become a collaborator and start with it? A pull request or a design proposal will be more than welcome and you can count on me for any help, assistance or guidance.
Thanks again for your marvellous feedback 😍. Can I help you in any way? Do you have any app to promote in my "Apps using this library"? Do you have any personal project for starring it?
Note: I've edited your message to remove the boilerplate from the template

Thanks for responding @rafaco
Glad you liked my words, just could'nt stop myself from going to github and putting into words how pumped up the lib got me on first use!
Although I'm not so good of a dev like you 😅, I'd love to help in whatever way I can
Maybe some design changes and some overall improvement suggestions and some mid level coding too ig :D
Currently only my private projects have this library but this is included like appcompat libs in like any new projectc i take up
Also, glad to see the changes coming!


Update monitoring/Istio chart for k8s v1.16 compatibility

Issue: https://github.com/rancher/rancher/issues/22488

Update for API group migration

Note:
See https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/
PSP is introduced in policy apigroup in 1.10, and removed from extensions apigroup in 1.16.
DaemonSet, Deployment, StatefulSet, and ReplicaSet migrate to apps in 1.9, and no longer be served from extensions in 1.16.

Update Prometheus operator to v0.32.0

Bump Prometheus operator image version
Add a new CRD PodMonitor
Update ClusterRole

This PR depent on the following image mirroring:
quay.io/coreos/prometheus-operator:v0.32.0 => rancher/coreos-prometheus-operator:v0.32.0
quay.io/coreos/prometheus-config-reloader:v0.32.0 => rancher/coreos-prometheus-config-reloader:v0.32.0

LGTM

Updated API group in RBAC resources

I think we also need to consider aligning the following change regards the upstream prometheus-operator chart:

https://github.com/helm/charts/commit/6a94c082c2daf8be72ac241397d652993ad82a0b#diff-3aa210e2fed854e7e981213b8dce54a0R51
https://github.com/helm/charts/commit/eba702c8303610d330b859040669351867d8a646#diff-b9f481ac97524bfb24d27f62676dc143
https://github.com/helm/charts/commit/9fa4db5f3f2981fc56d5e54b9f551a9c86fdfbe0#diff-b9f481ac97524bfb24d27f62676dc143
https://github.com/helm/charts/commit/90e50f1e08fe5a7603f07a457a4d7dd885e6dd5f#diff-23b6255dfa711af76ad99181e2fb0464L273
bump kube-state-metrics image to v1.7.2 & node-exporter to v0.18.1 respectively (optional)

https://github.com/helm/charts/commit/af2af1af669f0fe2f72bbf0c736831f00f38f315#diff-83a474e9876689d2e21429a0440263efL4

You may double-check the commits before 077132c at upstream chart to decide whether we need to sync them or not.

Those commits are basically operator chart improvements and seem to be beyond the scope of this PR. So I would rather not take them in.
By the way, what is the workflow we've used to sync upstream updates?

On that note, can we be sure that new prometheus operator works with our current CRD's like alert-manager or service-monitor ?

Discussed with @guangbochen and we think that we should pick upstream changes for RBAC and CRDs to align with Prometheus operator v0.32.0

@cbron For the CRD updates, There's no field changes in alertmanager/servicemonitor. There are new fields added in prometheus/prometheusrule. and several Thanos specific fields dropped in prometheus. They are not used/configurable in the chart, so it will be fine for upgrade.


Enums

How to make enums?
Is there a variant type for C#?
Would it be appropriate to just store arbitrary data as object, then cast upon request if the index matches up? Would lose support for struct types tho.

Oh niiiice!! Thank you for this!
Yeahhh, polymorphism seems to be a pretty nice/powerful solution in these types of languages. And since things are stored and casted using sub-classes, C# struct members shouldn't be a problem. This is definitely the way to do things.

Not sure if there has been any additional work/thoughts on this since the last comment, but just weighing in w/ my own thoughts...
Somewhat similar to @Simn's response, here is Microsoft's documentation on creating an Enumeration class:
https://learn.microsoft.com/en-us/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/enumeration-classes-over-enum-types
Which recommends it being defined like this:
public abstract class Enumeration : IComparable
{
    public string Name { get; private set; }

    public int Id { get; private set; }

    protected Enumeration(int id, string name) => (Id, Name) = (id, name);

    public override string ToString() => Name;

    public static IEnumerable<T> GetAll<T>() where T : Enumeration =>
        typeof(T).GetFields(BindingFlags.Public |
                            BindingFlags.Static |
                            BindingFlags.DeclaredOnly)
                 .Select(f => f.GetValue(null))
                 .Cast<T>();

    public override bool Equals(object obj)
    {
        if (obj is not Enumeration otherValue)
        {
            return false;
        }

        var typeMatches = GetType().Equals(obj.GetType());
        var valueMatches = Id.Equals(otherValue.Id);

        return typeMatches && valueMatches;
    }

    public int CompareTo(object other) => Id.CompareTo(((Enumeration)other).Id);

    // Other utility methods ...
}

And can be extended like this:
public class CardType
    : Enumeration
{
    public static CardType Amex = new(1, nameof(Amex));
    public static CardType Visa = new(2, nameof(Visa));
    public static CardType MasterCard = new(3, nameof(MasterCard));

    public CardType(int id, string name)
        : base(id, name)
    {
    }
}

In the past, I have updated this recommendation a bit to use generics so that it can handle enumerations of data types other than int values.
Which is instead defined like this:
public abstract record Enumeration<T> : IComparable<Enumeration<T>> where T : IComparable<T>, IEquatable<T>
{
	public static implicit operator T(Enumeration<T> value) => value.Id;

	public static IEnumerable<TEnumeration> GetAll<TEnumeration>() where TEnumeration : Enumeration<T> =>
		typeof(TEnumeration)
			.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly)
			.Select(fieldInfo => fieldInfo.GetValue(null))
			.Cast<TEnumeration>();

	public static TEnumeration Parse<TEnumeration>(string name) where TEnumeration : Enumeration<T>
	{
		_ = TryParse<TEnumeration>(name, out var returnValue);
		return returnValue ?? throw new("Enumeration could not be parsed.");
	}

	public static bool TryParse<TEnumeration>(string name, out TEnumeration? value)
		where TEnumeration : Enumeration<T>
	{
		value = null;
		var maybe =
			typeof(TEnumeration)
				.GetField(name, BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly)?
				.GetValue(null);
		if (maybe is null)
		{
			return false;
		}
		value = (TEnumeration)maybe;
		return true;
	}

	public T Id { get; private init; }

	public string Name { get; private init; }

	protected Enumeration(T id, string name) => (Id, Name) = (id, name);

	public int CompareTo(Enumeration<T>? other) => other is null ? 1 : Id.CompareTo(other.Id);

	public virtual bool Equals(Enumeration<T>? other) => other is not null && Id.Equals(other.Id);

	public override int GetHashCode() => Id.GetHashCode();

	public override string ToString() => Name;
}

And can instead be extended like this (for the int example):
public record CardType : Enumeration<int>
{
	public static readonly CardType Amex = new(1, nameof(Amex));

	public static readonly CardType Visa = new(2, nameof(Visa));

	public static readonly CardType MasterCard = new(3, nameof(MasterCard));

	protected CardType(int id, string name) : base(id, name) { }
}

So, it might not be a bad idea to target C# output that is somewhat structured like this.
Although, there are still some downsides to not using the native C# enum type, such as not being able to use it in a switch statement.
E.g., this does not work:
var cardType = CardType.Amex;
string message;
switch (cardType)
{
	case CardType.Amex:
		message = "You have an AMEX.";
		break;
	case CardType.Visa:
		message = "You have a VISA.";
		break;
	default:
		message = "You have something else.";
		break;
}

But it can still sort of be used in switch expressions.
E.g., this does work:
var cardType = CardType.Amex;
var message = true switch
{
	cardType.Equals(CardType.Amex) => "You have an AMEX.",
	cardType.Equals(CardType.Visa) => "You have a VISA.",
	_ => "You have something else."
}

Note that Haxe enums are actually algebraic data types, so you need to be able to store the associated values somehow.
Also, I think this is the first time I'm seeing this true switch syntax. That looks like someone was allergic to if statements...

Yes, I'd stick to the idea suggested by @Simn here, as the primary goal is accuracy with Haxe, unless there are good reasons to use the version recommended by Microsoft docs (other than just they recommend it), like making code generation simpler when dealing with haxe enum values, comparisons expressions simpler etc...

I thought the example I provided was quite similar and would be fairly compatible, so I was just adding it as extra supporting documentation 😅
But the reason to stick w/ the Microsoft docs is for consistency in how other C# projects would use these Enumeration types (e.g., having things like GetAll, CompareTo, Equals. And the second, enhanced version w/ Parse and TryParse to make it more similar to the standard C# enum types.
Ideally, a Haxe output should aim to generate something that is as intuitive and familiar to users of the target language as possible, rather than to users of Haxe.
If I were developing a C# project and had to choose between two libraries, I would certainly choose the one that didn't look foreign compared to the other C# code around it.
But w/ all that in mind, it is also ideal to have an output library that when used in one language is similar/consistent to using it in another language, which is going to sometimes be contradictory to my previous point.
But... I think I would lean toward preferring a library that is consistent w/ the target language rather than consistent w/ the same library output to a different language. Especially since there are certain efficiencies that can be achieved by following a design more closely to how the target language was intended to be written.

As for the true switch expression syntax, perhaps in my specific example an if-else statement might be better.  I said it can "sort of" be used in switch expressions b/c it is a bit of a code smell.
However, there are certain cases where it might be more concise to use the switch expression, such as having an expression-bodied member. E.g.:
public static class Utilities
{
	public static string ErrorMessage(ISomeInterface value) =>
		true switch
		{
			true when value is Type1 => "Message 1",
			true when value is Type2 => "Message 2",
			true when value is Type3 => "Message 3",
			_ => "Generic Message"
		};
}

Although, still quite arguably a code smell.

I'm not sure what we're actually discussing here because it is my understanding that C# enums are a different kind of data. Unless I'm missing something, we cannot represent a type like our Option as C# enum:
enum Option<T> {
    None;
    Some(v:T);
}

The only part somewhat  relevant is that Enumeration base type.

I still think it is quite similar, I just didn't elaborate on the Option<T> use case. It can be done like this (using the same Enumeration<T> as previously mentioned):
public record Option<T> : Enumeration<int> where T : IComparable<T>, IEquatable<T>
{
	public static readonly Option<T> None = new(1, nameof(None));

	public static readonly Option<T> Some = new(0, nameof(Some));

	protected Option(int id, string name) : base(id, name) { }
}

public record Some<T> : Option<T>, IComparable<Some<T>>, IEquatable<Some<T>> where T : IComparable<T>, IEquatable<T>
{
	public readonly T Value;

	public Some(T value) : base(0, nameof(Some)) => Value = value;

	public int CompareTo(Some<T>? other) => other is null ? 1 : Value.CompareTo(other.Value);

	public virtual bool Equals(Some<T>? other) => other is not null && Value.Equals(other.Value);

	public override int GetHashCode() => Value.GetHashCode();
}

And then used like this:
public static Option<string> TestOption(string? message = null) =>
	message is null ? Option<string>.None : new Some<string>(message);

var option1 = TestOption("SUCCESS");
var option2 = TestOption();
var option3 = TestOption("FAILURE");
var option4 = TestOption("SUCCESS");

/* Enum value match Option<T>.Some result */
_ = Option<string>.Some.Equals(option1); //true
_ = Option<string>.None.Equals(option1); //false

/* Enum value match Option<T>.None result */
_ = Option<string>.Some.Equals(option2); //false
_ = Option<string>.None.Equals(option2); //true

/* Actual value match */
_ = option1.Equals(option2); //false
_ = option1.Equals(option3); //false
_ = option1.Equals(option4); //true

Is this close to what you had in mind?

That's close, except that I don't think public static readonly Option<T> Some makes much sense because there's not a singular value for Some. It should instead be a function that calls new Some, and then we pretty much have what I originally posted.

I'm not sure that I agree on that part since leaving it as a static readonly field will allow that field to be used to check if any given Option<T> value is equal to the Option<T>.Some enumeration value without having to create a new Option<T> enumeration value to compare against every time (issue of efficiency).
Although, that comparison could still be done by checking if the value is Some<T>. But then the syntax for checking if it is Option<T>.None vs Option<T>.Some won't be the same (I.e., won't be able to use it exactly as Option<T>.Some.Equals(...) and Option<T>.None.Equals(...)).
So, I think it would be best to use the syntax new Some(...) to create the values rather than using a function Option<T>.Some(...).
But I was mostly trying to expand on your original response to provide similar C# logic that we could aim for as the output, as a rough guide, nothing definitive.

Although, thinking about it some more, we could achieve what both of us are thinking by using implicit cast operators to go between Func<T, Some<T>> and Some<T>.
Still given the same base Enumeration<T> as previously mentioned.
With Option<T> and Some<T> now defined like this:
public record Option<T> : Enumeration<int>, IComparable<Option<T>>, IEquatable<Option<T>>
	where T : IComparable<T>, IEquatable<T>
{
	public static implicit operator Option<T>(Func<T, Some<T>> _) => Some<T>.Default;

	public static readonly Option<T> None = new(1, nameof(None));

	public static readonly Func<T, Some<T>> Some = Some<T>.Default;

	public T Value { get; init; } = default!;

	protected Option(int id, string name) : base(id, name) { }

	public int CompareTo(Option<T>? other) => base.CompareTo(other);

	public virtual bool Equals(Option<T>? other) => base.Equals(other);

	public override int GetHashCode() => base.GetHashCode();
}

public sealed record Some<T> : Option<T>, IComparable<Some<T>>, IEquatable<Some<T>>
	where T : IComparable<T>, IEquatable<T>
{
	public static implicit operator Some<T>(Func<T, Some<T>> _) => Default;

	public static implicit operator Func<T, Some<T>>(Some<T> _) => (T value) => new(value);

	public static readonly Some<T> Default = new(default(T)!);

	public Some(T value) : base(0, nameof(Some)) => Value = value;

	public int CompareTo(Some<T>? other) => base.CompareTo(other);

	public bool Equals(Some<T>? other) => base.Equals(other);

	public override int GetHashCode() => base.GetHashCode();
}

And then used like this:
public static Option<string> TestOption(string? message = null) =>
	message is null ? Option<string>.None : Option<string>.Some(message);

var option1 = TestOption("SUCCESS");
var option2 = TestOption();
var option3 = TestOption("FAILURE");
var option4 = TestOption("SUCCESS");

/* Enum value match Option<T>.Some result */
_ = option1 == Option<string>.Some; //true
_ = option1 == Option<string>.None; //false

/* Enum value match Option<T>.None result */
_ = option2 == Option<string>.Some; //false
_ = option2 == Option<string>.None; //true

/* Actual value match */
_ = option1.Value == option2.Value; //false
_ = option1.Value == option3.Value; //false
_ = option1.Value == option4.Value; //true

So now Option<T>.Some can be invoked as a function type and retuned from method as a value type w/out any explicit casting.
With that, I am retiring from this thread for now 😅


[Bug]: Failed to fetch models: HTTP 401

What happened?
I was try to run the patterns. But, the error "Failed to fetch models: HTTP 401" shown. How to solve this?
Version check

[X] Yes I was.

Relevant log output
No response
Relevant screenshots (optional)
No response

Make sure you do a git pull, ./setup, restart your shell, and try again.

(Fabric) developer@ai:~/fabric$ fabric --pattern summarize --model mistral-7b-instruct-v0.2.Q6_K:latest
Failed to fetch models: HTTP 401

I just fixed this. Git pull then list models again.

Thank you, working for me 🙏

Even though it works now to list models, and appears to be able to take a
file from stdin and process it, it still does
Failed to fetch models: HTTP 401
No OpenAI API key found. Please run fabric --setup and add the key if you
wish to interact with openai
It might be doing this because I am not using Anthrop\c model, and don't
have it locally.
On Mon, Mar 11, 2024 at 7:20 PM xssdoctor @.***> wrote:

I just fixed this. Git pull then list models again.
—
Reply to this email directly, view it on GitHub
https://github.com/danielmiessler/fabric/issues/177#issuecomment-1989625958,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDD3ZNLQV7R27A4XMV7ZQTYXZC4NAVCNFSM6AAAAABEQIB3ZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBZGYZDKOJVHA
.
You are receiving this because you commented.Message ID:
@.***>

Same issue here. After I did a git pull, ./setup, and restart my shell, it stated:
Failed to fetch models: HTTP 401
No OpenAI API key found. Please run fabric --setup and add the key if you wish to interact with openai
However, I can find my entered API key in the fabric configuration file ...

I looked at the code. This message comes from the section where one is
supposed to set the key for Anthrop\c's Claude. The message
incorrectly mentions OpenAI instead.
In any case, if one does not want to use Claude, there should be no error
message at all.
On Mon, Mar 11, 2024 at 9:08 PM agathaaaaa @.***> wrote:

Same issue here. After I did a git pull, ./setup, and restart my shell, it
stated:
Failed to fetch models: HTTP 401
No OpenAI API key found. Please run fabric --setup and add the key if you
wish to interact with openai
However, I can find my entered API key in the fabric configuration file ...
—
Reply to this email directly, view it on GitHub
https://github.com/danielmiessler/fabric/issues/177#issuecomment-1989723527,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDD3ZMG3TMO2OMILF7Y5L3YXZIRZAVCNFSM6AAAAABEQIB3ZGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBZG4ZDGNJSG4
.
You are receiving this because you commented.Message ID:
@.***>


llvmlite.dll standalone error

Nuitka version, full Python version, flavor, OS, etc. as output by this
command.

python -m nuitka --version
1.1
Commercial: None
Python: 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
Flavor: Unknown
Executable: C:\Python39\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10

How did you install Nuitka and Python

Installed using pip

The specific PyPI names and versions

pip 22.0.4 from c:\python39\lib\site-packages\pip (python 3.9)

python -m pip freeze
llvmlite==0.39.1
shap==0.41.0

Also supply a Short, Self Contained, Correct, Example

import shap
print('hello world')

Provide in your issue the Nuitka options used

python -m nuitka --enable-plugin=numpy --nofollow-import-to=IPython,dask,tensorflow,keras,matplotlib --standalone main.py

Note if this is a regression

Don't know if this is a regression
Explanation
When i run the compiled exe i obtain the following error:
Traceback (most recent call last):
  File "F:\DEV\BRANCH\C-Link_ManutenzionePredittiva\C-Link_PredictiveMaintenance\main.dist\llvmlite\binding\ffi.py", line 160, in <module llvmlite.binding.ffi>
  File "F:\DEV\BRANCH\C-Link_ManutenzionePredittiva\C-Link_PredictiveMaintenance\main.dist\ctypes\__init__.py", line 374, in __init__
FileNotFoundError: Could not find module 'F:\DEV\BRANCH\C-Link_ManutenzionePredittiva\C-Link_PredictiveMaintenance\main.dist\llvmlite\binding\llvmlite.dll' (or one of its dependencies). Try using the full path with constructor syntax.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\main.dist\main.py", line 8, in <module>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\pmlearn\learn\trainer.py", line 16, in <module pmlearn.learn.trainer>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\shap\__init__.py", line 12, in <module shap>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\shap\_explanation.py", line 12, in <module shap._explanation>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\shap\utils\__init__.py", line 1, in <module shap.utils>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\shap\utils\_clustering.py", l  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\numba\__init__.py", line 19,   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\numba\core\config.py", line 16, in <module numba.core.config>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\llvmlite\binding\__init__.py", line 4, in <module llvmlite.binding>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\llvmlite\binding\dylib.py", line 3, in <module llvmlite.binding.dylib>
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "F:\main.dist\llvmlite\binding\ffi.py", line 167, in <module llvmlite.binding.ffi>
OSError: Could not find/load shared object file: llvmlite.dll
 Error was: Could not find module 'F:\main.dist\llvmlite\binding\llvmlite.dll' (or one of its dependencies). Try using the full path with constructor syntax.

Thanks for your report, this is fixed on the factory branch, which is a development version under rapid development. You can try it out by going here: https://nuitka.net/doc/factory.html
Feedback if this is working is very welcome, just please do not share plans of doing it, but rather confirmations or denials of it working.

After this fix i can correctly see that there is the llvmlite\binding folder in the dist directory but when i try to run the .exe it simply doesnt do nothing and exits immediatly.
So i tried to re-compile with nuitka 1.1.2 and obviously i had to manually copy the llvmlite\binding folder but after doing that it worked fine.
At this point i dont know if theres a regression in the factory branch that prevent my exe to works. To inspect further why my exe didnt worked after compiling it with factory nuitka, i had execute it under visual studio debug and i obtained this:
Unhandled exception in 0x00007FF6F24EBD7D in main.exe: A program exit was requested which caused a fatal error.

@interseba5 that is strange and interesting too, right now the differences are not too many. If you are familir with git bisect, I would invite you to try it. I should document how to do it, let me know if you are willing to make a few compilations such that it gets to point at the commit that breaks your code.

Yeah, i will try to do some tests

This is part of the hotfix release 1.1.3 that I just made.


Splicing a macro inside an inline method does not work

Version(s)
Scala CLI - 1.1.2
Scala Compiler - 3.3.1
Describe the bug
Splicing a simple macro inside an inline method results in the following error suggesting the macro implementation is not a static method:
[error] ./macro-error.sc:7:6
[error] Malformed macro.
[error]
[error] Expected the splice ${...} to contain a single call to a static method.
[error]   ${ testMacro }
[error]      ^^^^^^^^^
Compilation failed

However the testMacro method should be static since it is defined like that. The same problem manifests if both methods are explicitly wrapped in an object.
To Reproduce
Run this script:
#!/usr/bin/env -S scala-cli -q
//> using scala 3.3.1

import scala.quoted.{Expr, Quotes, Type}

inline def test: Unit =
  ${ testMacro }

def testMacro(using quotes: Quotes): Expr[Unit] =
  '{ () }

test

Expected behaviour
The macro should compile without errors, just as the equivalent SBT project does.
Note
Thanks for making a fantastic tool 😁.

The thing is that .sc files are always wrapped in a class (unless with //> using objectWrapper directive), which means ultimately your macro methods will not be "java static". Unless you propose that top level classes/objects should be lifted out of the script and only expressions be in the wrapper

@bishabosha I suspected that (wrapping the code in a class) might be the case, thanks for clarifying. The actual macro call is superfluous in this example (removed now), the compilation error happens without it too, for the reason you mentioned.
I suppose it boils down to a question of whether the class instance wrapping is necessary/desirable and whether it might perhaps lead to some other issues. In other words, is it a feature or a bug ?

I suppose it boils down to a question of whether the class instance wrapping is necessary/desirable and whether it might perhaps lead to some other issues. In other words, is it a feature or a bug?

It is neither.
Both the class wrapper and the object wrapper have their pros and cons, with neither being a flawless choice.
In Scala 3 we default to the class wrapper, as its problems aren't much of an issue for most use cases.
You can always use //> using objectWrapper when you deem it necessary.
There's more to read on this topic in the relevant doc on script wrappers.

TL;DR the behaviour is expected, I'm closing the issue.


bugfix: fix invalid dependence

https://launchpad.net/gocheck was  moved to https://github.com/go-check/check

The correct import path is actually: gopkg.in/check.v1


NoClassDefFoundError while trying to start the server

I built SpongeVanilla successfully on Ubuntu 15.04 with openjdk 6 and gradlew, but when I tried to start it with the command "java -jar spongevanilla-1.8-2.1DEV-0.jar" I got this output:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Downloading minecraft_server.1.8.jar... This can take a while.
https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar
Successfully downloaded minecraft_server.1.8.jar and verified checksum!
Downloading launchwrapper-1.11.jar... This can take a while.
https://libraries.minecraft.net/net/minecraft/launchwrapper/1.11/launchwrapper-1.11.jar
Successfully downloaded launchwrapper-1.11.jar and verified checksum!
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
at org.spongepowered.vanilla.launch.console.VanillaConsole.start(VanillaConsole.java:85)
at org.spongepowered.vanilla.launch.server.VanillaServerMain.main(VanillaServerMain.java:59)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
... 2 more

Does it still happen if you run the server the second time?

The second time I got another error:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
[18:33:12 INFO] [Sponge]: Initializing Sponge...
[18:33:12 INFO] [Sponge]: De-obfuscation mappings are provided by MCP (http://www.modcoderpack.com)
[18:33:13 INFO] [Sponge]: Initialization finished. Starting Minecraft server...
[18:33:21 ERROR] [mixin]: Critical injection failure: LVT in net/minecraft/server/management/ServerConfigurationManager::func_72355_a has incompatible changes at opcode 454. Expected [Lcom/mojang/authlib/GameProfile;, Lnet/minecraft/server/management/PlayerProfileCache;, Lcom/mojang/authlib/GameProfile;, Ljava/lang/String;, Lnet/minecraft/nbt/NBTTagCompound;, Ljava/lang/String;, Lnet/minecraft/world/WorldServer;, Lnet/minecraft/world/storage/WorldInfo;, Lnet/minecraft/util/BlockPos;, Lnet/minecraft/network/NetHandlerPlayServer;, Lnet/minecraft/util/ChatComponentTranslation;, Ljava/util/Iterator;] but found []. Callback initializeConnectionToPlayerInject(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;Lcom/mojang/authlib/GameProfile;Lnet/minecraft/server/management/PlayerProfileCache;Lcom/mojang/authlib/GameProfile;Ljava/lang/String;Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;Lnet/minecraft/world/WorldServer;Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/util/BlockPos;Lnet/minecraft/network/NetHandlerPlayServer;Lnet/minecraft/util/ChatComponentTranslation;Ljava/util/Iterator;)V
[18:33:21 ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.6.0_35]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.6.0_35]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.6.0_35]
at java.lang.reflect.Method.invoke(Method.java:622) ~[?:1.6.0_35]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at org.spongepowered.vanilla.launch.server.VanillaServerMain.main(VanillaServerMain.java:60) [spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
Caused by: java.lang.NoClassDefFoundError: net/minecraft/server/management/ServerConfigurationManager
at net.minecraft.server.MinecraftServer.main(SourceFile:689) ~[MinecraftServer.class:?]
at org.spongepowered.vanilla.SpongeVanilla.main(SpongeVanilla.java:86) ~[SpongeVanilla.class:1.8-2.1DEV-0+unknown-b0.git-unknown]
... 7 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.server.management.ServerConfigurationManager
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.11.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:323) ~[?:1.6.0_35]
at java.lang.ClassLoader.loadClass(ClassLoader.java:268) ~[?:1.6.0_35]
at net.minecraft.server.MinecraftServer.main(SourceFile:689) ~[MinecraftServer.class:?]
at org.spongepowered.vanilla.SpongeVanilla.main(SpongeVanilla.java:86) ~[SpongeVanilla.class:1.8-2.1DEV-0+unknown-b0.git-unknown]
... 7 more
Caused by: org.spongepowered.asm.mixin.injection.InjectionError: LVT in net/minecraft/server/management/ServerConfigurationManager::func_72355_a has incompatible changes at opcode 454. Expected [Lcom/mojang/authlib/GameProfile;, Lnet/minecraft/server/management/PlayerProfileCache;, Lcom/mojang/authlib/GameProfile;, Ljava/lang/String;, Lnet/minecraft/nbt/NBTTagCompound;, Ljava/lang/String;, Lnet/minecraft/world/WorldServer;, Lnet/minecraft/world/storage/WorldInfo;, Lnet/minecraft/util/BlockPos;, Lnet/minecraft/network/NetHandlerPlayServer;, Lnet/minecraft/util/ChatComponentTranslation;, Ljava/util/Iterator;] but found []. Callback initializeConnectionToPlayerInject(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;Lcom/mojang/authlib/GameProfile;Lnet/minecraft/server/management/PlayerProfileCache;Lcom/mojang/authlib/GameProfile;Ljava/lang/String;Lnet/minecraft/nbt/NBTTagCompound;Ljava/lang/String;Lnet/minecraft/world/WorldServer;Lnet/minecraft/world/storage/WorldInfo;Lnet/minecraft/util/BlockPos;Lnet/minecraft/network/NetHandlerPlayServer;Lnet/minecraft/util/ChatComponentTranslation;Ljava/util/Iterator;)V
at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:322) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:274) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.injection.code.Injector.injectInto(Injector.java:108) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.inject(InjectionInfo.java:184) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinApplicator.applyInjections(MixinApplicator.java:681) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinApplicator.applyMixin(MixinApplicator.java:200) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinApplicator.apply(MixinApplicator.java:181) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.apply(MixinTransformer.java:548) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.applyMixins(MixinTransformer.java:520) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transform(MixinTransformer.java:360) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at org.spongepowered.asm.mixin.transformer.MixinTransformer$Proxy.transform(MixinTransformer.java:101) ~[spongevanilla-1.8-2.1DEV-0.jar:1.8-2.1DEV-0+unknown-b0.git-unknown]
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.11.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:323) ~[?:1.6.0_35]
at java.lang.ClassLoader.loadClass(ClassLoader.java:268) ~[?:1.6.0_35]
at net.minecraft.server.MinecraftServer.main(SourceFile:689) ~[MinecraftServer.class:?]
at org.spongepowered.vanilla.SpongeVanilla.main(SpongeVanilla.java:86) ~[SpongeVanilla.class:1.8-2.1DEV-0+unknown-b0.git-unknown]
... 7 more

Yes, the second error is a known problem, however the first problem shouldn't happen. The first problem will occur if classes get loaded to early. I think that could be possibly caused by the additional -javaagent that was added. Can you try to start it again in an empty folder (with nothing in) but temporarily unset the JAVA_TOOL_OPTIONS (type unset JAVA_TOOL_OPTIONS) before starting?

This time I got the same error as the second time, but without the first line: http://pastebin.com/qp9LQi8W

Alright, so the first problem is caused by the javaagent you have installed. It seems to be JAyatana from what I can tell. The first start when the Minecraft server isn't downloaded yet is kinda tricky, so it may fail with custom modifications to the JVM (when classes are loaded too early) - this seems to happen with this.
To solve this problem, either deinstall or disable it when starting SpongeVanilla - or just ignore the error the first time you start it and start it again, the Minecraft server is correctly downloaded so it should work the second time.
As for the second error you're getting, update your SpongeVanilla clone (git pull && git submodule update --recursive) and build again - then it should be fixed.


Stop NeptuneLogger experiment on deallocation

Bug description
The NeptuneLogger class does not appear to stop the experiment tracking (leaving a zombie connection to the logger server) when deallocated.
When a training session in a script running multiple training sessions ends, the corresponding logging session to neptune.ai remain open. I've encountered this while playing around with Optuna and Raytune doing hyperparameters sweeps in a multiprocessing environment.
I'm not sure the proper way to kill the connection from within the NeptuneLogger class, however, adding this destructor seems to work to stop the experiment. I think it might also fix some other situations where the neptune logger backend does not disconnect despite the PT logger going out of scope.
def __del__(self):
    self._run_instance.stop()

I hope everyone doesn't mind, but I'll loop in the two people I know over at neptune.ai (Hi @Raalsky and @Blaizzy).
How to reproduce the bug
My situation is a bit different, but if you have a script that runs multiple training sessions in parallel, then the instances that finish first will remain open and "logging" despite the training having exited and that training instance code being inaccessible.
EDIT: See reproduction code here https://github.com/Lightning-AI/lightning/issues/15866#issuecomment-1332559008
Error messages and logs
No errors except for my logging hours being eaten up 😢
Environment
Full env here https://pastebin.com/msgWm587
More info
No response

Hey @fmorlock-tt
Thanks for keeping us in the loop
I just tried to reproduce the bug by creating multiple runs using a script but Neptune is behaving normally. All the runs get the kill signal after and stop on time. You can verify this by checking the monitoring time and Run time.
On the other hand, I noticed that the spinning icon takes a few seconds to refresh and reflect the actual state of the backend. In such a case, you can just manually refresh the website.
Finally, it worked on my side but you might be experiencing an actual bug, so let's run a simple test.
Please run this script and send me the sys/monitoring_time values for each.
import neptune.new as neptune

for _ in range(3):
    run = neptune.init_run()

Hey @Blaizzy
I ran a modification to your code (with a sleep timer) to show the issue better. You can see that the other instances are kept alive for the entire lifespan of the script.

import neptune.new as neptune
import time

with open('.neptune_config', 'r') as f:
    api_key = f.read().strip()

for _ in range(3):
    run = neptune.init_run(api_token=api_key,
            project='workspace/project',
            name=f"BAD MODEL",)
    time.sleep(10)

Here is some code I wrote up this morning to demonstrate the behavior in PyTorch Lightning
import torch
from pytorch_lightning import LightningModule, Trainer
from torch import nn
from torch.nn import functional as F
from torch.utils.data import DataLoader
from torchvision import transforms
from torchvision.datasets import MNIST
from pytorch_lightning.loggers import NeptuneLogger

import multiprocess as mp

with open('.neptune_config', 'r') as f:
    api_key = f.read().strip()

# this dataset doesn't play well with multiprocessing -- thus it's initialized globally
train_ds = MNIST(f'./mnist', train=True, download=False, transform=transforms.ToTensor())

class MNISTModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.l1 = torch.nn.Linear(28 * 28, 10)

    def forward(self, x):
        return torch.relu(self.l1(x.view(x.size(0), -1)))

    def training_step(self, batch, batch_nb):
        x, y = batch
        loss = F.cross_entropy(self(x), y)
        self.log('metrics/train/loss', loss)
        return loss

    def configure_optimizers(self):
        return torch.optim.Adam(self.parameters(), lr=0.02)

def train(epochs: int):
    print(f'training for {epochs} epochs')
    # Init our model
    mnist_model = MNISTModel()
    # Init DataLoader from MNIST Dataset (for some reason it doesn't like from read from the same dir -- hands)
    train_loader = DataLoader(train_ds, batch_size=64)

    logger = NeptuneLogger(
            api_key=api_key,
            project='workspace/project',
            name=f"BAD MODEL",
            tags=["debugging"],
            source_files=["trainer.py"],
            log_model_checkpoints=False,
            # mode='debug'
        )

    # Initialize a trainer
    trainer = Trainer(
        accelerator="gpu",
        max_epochs=epochs,
        logger=logger
    )

    # Train the model ⚡
    trainer.fit(mnist_model, train_loader)
    print(f'finished training for {epochs}')

if __name__ == '__main__':
    epoch_grid = [5, 10, 20]

    print('Starting')
    # both multiprocessing and single-threaded code keeps the connections open
    # with mp.Pool(4) as p:
    #     p.map(train, epoch_grid)
    for epoch in epoch_grid:
        train(epoch)
    print('Done')

With multiprocessing (last column is number of epochs completed)

Without multiprocessing

Thanks for the detailed explanation.
You can manually stop a run object by using the stop() method.
First, use the PTL NeptuneLogger instance attribute experiment to retrieve the run object then call the stop() method to stop it.
Example:
import torch
from pytorch_lightning import LightningModule, Trainer
from torch import nn
from torch.nn import functional as F
from torch.utils.data import DataLoader
from torchvision import transforms
from torchvision.datasets import MNIST
from pytorch_lightning.loggers import NeptuneLogger

import multiprocess as mp

with open('.neptune_config', 'r') as f:
    api_key = f.read().strip()

# this dataset doesn't play well with multiprocessing -- thus it's initialized globally
train_ds = MNIST(f'./mnist', train=True, download=False, transform=transforms.ToTensor())

class MNISTModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.l1 = torch.nn.Linear(28 * 28, 10)

    def forward(self, x):
        return torch.relu(self.l1(x.view(x.size(0), -1)))

    def training_step(self, batch, batch_nb):
        x, y = batch
        loss = F.cross_entropy(self(x), y)
        self.log('metrics/train/loss', loss)
        return loss

    def configure_optimizers(self):
        return torch.optim.Adam(self.parameters(), lr=0.02)

def train(epochs: int):
    print(f'training for {epochs} epochs')
    # Init our model
    mnist_model = MNISTModel()
    # Init DataLoader from MNIST Dataset (for some reason it doesn't like from read from the same dir -- hands)
    train_loader = DataLoader(train_ds, batch_size=64)

    logger = NeptuneLogger(
            api_key=api_key,
            project='workspace/project',
            name=f"BAD MODEL",
            tags=["debugging"],
            source_files=["trainer.py"],
            log_model_checkpoints=False,
            # mode='debug'
        )

    # Initialize a trainer
    trainer = Trainer(
        accelerator="gpu",
        max_epochs=epochs,
        logger=logger
    )

    # Train the model ⚡
    trainer.fit(mnist_model, train_loader)
    print(f'finished training for {epochs}')

   # Stop neptune run
   logger.experiment.stop()

if __name__ == '__main__':
    epoch_grid = [5, 10, 20]

    print('Starting')
    # both multiprocessing and single-threaded code keeps the connections open
    # with mp.Pool(4) as p:
    #     p.map(train, epoch_grid)
    for epoch in epoch_grid:
        train(epoch)
    print('Done')

Docs:

https://docs.neptune.ai/usage/best_practices/#stopping-runs-and-other-objects
https://github.com/neptune-ai/examples/blob/main/integrations-and-supported-tools/pytorch-lightning/notebooks/Neptune_PyTorch_Lightning.ipynb

Let me know if this works for you

I am proposing utilizing the garbage collector (via a destructor __del__) to stop/clean up the would-be zombie logging processes when the NeptuneLogger is no longer referenced by anything and is garbage collected. The code I posted above is not my project code, but rather an example of how the logger can persist beyond it's reasonable lifetime. I know that you can manually stop the logging server, in much the same way that you can manually free allocated memory, however I believe that it's important to make use of the garbage collector to ensure those resources are freed when the container object is.
Again, my particular use case is slightly different than the code I posted. I am using a hyperparameter search scheduler that will train models in parallel and will kill instances that aren't performing well. Because the logging backend is not cleaned up when the NeptuneLogger is deallocated (when a run is killed), I have connection to Neptune (for each run) that can only be closed by killing the main process, ending all my runs. While my knowledge of Ray Tune process management systems is not complete, the job manager attempts to clean up the resources of a process when shutting down. The neptune.ai logging backend does not get closed and but can be automatically closed when the NeptuneLogger instance is destroyed if a destructor/finalizer is used.
Is there a reason why you would be against using the garbage collector? The lifetime of the containing object has ended, however, the logging server owned by that object does not get killed. I would consider this something akin to a memory leak. If there is no reason to persist a logging server is the background, then I would propose that the lifecycle of an acquired resource should be bound to the lifetime of the acquiring object (ala RAII principle).

I understand @fmorlock-tt, and I see your point.
I will submit it as a feature request,
Additionally, I'm not against it. Instead, I want to understand your use case better.
Here is why:

The impact of adding this feature to other use cases beyond the one you presented needs to be clarified, given that the PTL integration functions correctly and there is a way to stop runs.

I believe this feature request is for HPO framework integration, such as Optuna, which we currently have available, and RayTune integration which we already have in our backlog. Instead of the PTL integration.

I'll need to investigate it further and talk to the team to hear what they say. I'll keep you updated.
Meanwhile, you can use the following solution so you can continue your work:

Optuna guide that demonstrates how to log trials as separate Neptune runs. Docs: https://docs.neptune.ai/integrations/optuna/#logging-each-trial-as-separate-neptune-run

If you prefer RayTune, you can use the stop method. Docs: https://docs.neptune.ai/usage/best_practices/#stopping-runs-and-other-objects

Hi @fmorlock-tt
I just heard from the team and they too suggest using the stop() method or optionally you can customize our logger to add the destructor.
I also passed your feedback on to the product team for future reference and consideration.
Let me know if this works for you.

Hey @fmorlock-tt
Just checking in to see if you still need help with this or if you need help with anything else. I'm happy to help:)


What are the possible statuses?

Is it documented somewhere what the possible statuses are as returned by /ob/status? I can personally only think of "online" and "offline", in which case using a boolean flag seems more semantic. So instead of
GET /ob/status/Qmc7M36cnHr7LiqNXdxqgsEdCArhU2dTetYKK64NrNmRfo?
null { status: 'online' }

I would suggest something like
GET /ob/status/Qmc7M36cnHr7LiqNXdxqgsEdCArhU2dTetYKK64NrNmRfo?
null { online: true }

Looks like online or offline per:
https://github.com/OpenBazaar/openbazaar-go/blob/a35763bfc58cea6874ad4d0c03525b952fa5f707/core/net.go#L96
This should be in the API docs though @drwasho @cpacia

Then using a boolean is better design.


selective_scan_cuda error

I'm using the m1 chip version of MacOS and python3.10 pytorch2.2.1 natively tried to use mamba_ssm.ops.selective_scan_interface native, so I tried to skip here, the truth is that it works, and it can also call model.to ("mps") so I made this modification attempt

This is an interesting discovery. Just curious: is there a significant speedup from mps over cpu?

You can put the import in the try except, but I wouldn't call the selective_scan_ref function in selective_scan_fn if selective_scan_cuda is not found. Instead it should error.
We don't want people to silently get much slower performance if they forgot to install the CUDA extension, or the installation was not correct.

这是一个有趣的发现。只是好奇：mps 相对于 cpu 是否有显着的加速？
Hello, my English is not very good, so I took the translation tool and replied: You can check out this official document, in fact he has some improvements.
https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/

This is an interesting discovery. Just curious: is there a significant speedup from mps over cpu?

Hello, my English is not very good, so I took the translation tool and replied: You can check out this official document, in fact he has some improvements.
https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/

I'm using the m1 chip version of MacOS and python3.10 pytorch2.2.1 natively tried to use mamba_ssm.ops.selective_scan_interface native, so I tried to skip here, the truth is that it works, and it can also call model.to ("mps") so I made this modification attempt

Can you give me a brief intro about how it works on mps device ? I would appreciate it if you can contact me


Is this package from Amazon's Payfort?

Hi, I'm considering using package for Amazon's Payment Services, but I can't find any documentation for it or references to it from PayFort's website. Why is that?

Hello @Ozak93
No It is not from PAYFORT,
It is created by magints to simplify the integration of PAYFORT in flutter.
thanks


New CDN URL for detection

Hello!
Steam have a new CDN URL for web assets:
https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/868150/header.jpg?t=1670989019

Also
https://shared.cloudflare.steamstatic.com/store_item_assets/steam/apps/1124260/header.jpg?t=1727781021

and these


Log all pods in istioctl pc log for deployment

Please provide a description of this PR:
part of https://github.com/istio/istio/issues/42919
To help us figure out who should review this PR, please put an X in all the areas that this PR affects.

[ ] Ambient
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ X ] User Experience
[ ] Developer Infrastructure

/cherry-pick release-1.17

@GregHanson: once the present PR merges, I will cherry-pick it on top of release-1.17 in a new PR and assign it to you.

In response to this:

/cherry-pick release-1.17

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

sample output:
$ istioctl pc log deploy/httpbin --level warning
httpbin-847f64cc8d-g96w7.default:
active loggers:
  admin: warning
  alternate_protocols_cache: warning
  aws: warning
...
...
  websocket: warning

httpbin-847f64cc8d-mr45k.default:
active loggers:
  admin: warning
  alternate_protocols_cache: warning
  aws: warning

@GregHanson: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
4095bb946d8f9ba2428811857f3e721c7895e822
link
true
/test lint

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Nice output!!

@GregHanson: new pull request created: #43114

In response to this:

/cherry-pick release-1.17

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Bug: Seeder Broke somewhere between 2.4.1 and current version

Versions

Node: 18
OS: MAC OS
Version: Latest (was working fine with v2.4.1)

Steps to reproduce
import { DataSource } from 'typeorm';
import {createDatabase, runSeeders, SeederOptions} from 'typeorm-extension';
...
<-- fetch datasource from seeder file and pass in function like below -->
try {
  await runSeeders(datasource);
}

What is Expected?
Should seed the tables with data
What is actually happening?
TypeError: clazz.run is not a function\n    at runSeeder
typeorm-extension/dist/seeder/module.js:97:18
Please note that the seeding was working fine with 2.4.1 and suddenly after the update to latest version, it has started throwing the error. I have not changed anything in the seed file.

Can you provide a repo/code snippet for reproduction ?

@tal1992 is your seeder class a named oder default export?

import {Seeder} from 'typeorm-extension';
import {DataSource} from 'typeorm';
import {myEntity} from '../entity/MyEntity;
import {mySeedData} from '../data/MySeedData.seed';

export default class MySeeder implements Seeder {
  public async run(dataSource: DataSource): Promise<void> {
	// some business logic
	repository.insert(my data);

  }
}

@tada5hi it looks like this -
import {Seeder} from 'typeorm-extension';
import {DataSource} from 'typeorm';
import {myEntity} from '../entity/MyEntity;
import {mySeedData} from '../data/MySeedData.seed';

export default class MySeeder implements Seeder {
  public async run(dataSource: DataSource): Promise<void> {
	// some business logic
	repository.insert(mydata);

  }
}

A repo for repoduction would be realy great, since i unfortunately can not replicate the error :pensive:


can't see the result of the codes

I can't see the results of my codes  in the console on Freecodecamp.
The output of the function won't be showed on the console below the challenges.

Please, can you provide information according to the issue template? Things like steps to reproduce, screenshots, challenge name you getting you seeing the issue on etc. Thank you!

Thank you for your reply, and the problem is that the console section won't
show the output of the function.
I want to see the sorted array [ 2,6,23,40,64 ] in the console, so it can
help me to see the problem clearer.
best regards,
Vivian
On Thu, May 31, 2018 at 8:22 PM, JustFly12<EMAIL_ADDRESS>wrote:

Please, can you provide information according to the issue template?
Things like steps to reproduce, screenshots, challenge name you getting you
seeing the issue on etc. Thank you!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/freeCodeCamp/freeCodeCamp/issues/17319#issuecomment-393511773,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AaIJSv7Dx4wyu8Jirk_50ngMkY6pTXzkks5t3-B-gaJpZM4UUdUP
.

I am also having problems running my code on Microsoft edge. Whenever I press run the tests, it just stays on the same page and nothing happens.

@jquint98 MS Edge to my knowledge is not a supported browser. Please try in either Chrome or in FireFox and let us know if you are still having the issue.

Duplicate of https://github.com/freeCodeCamp/freeCodeCamp/issues/17356


Add back-compat tests across URL resolver <-> driver layer boundary

Follow up from - https://github.com/microsoft/FluidFramework/issues/8250. The issue was that a new property was added to IOdspResolvedUrl and the code was updated to use the new property. This broke the url resolver (loader) <-> driver boundary.
We need tests to ensure we maintain back-compat here and don't break these. Same goes for other URL resolvers <-> driver.

@jatgarg Assigned this to you.

I believe this is based on PR https://github.com/microsoft/FluidFramework/pull/8293
And the core of the problem is that changes to api-report/odsp-driver-definitions.api.md can be only additive/optional, i.e. support back compat.
In other words, in addition to having some tests, we need to have a process similar to other .api.md files where developer has to describe type of changes from compatibility POV and raise the bar to making these changes.

I can work on this. Feel free to assign it to me.


Update Gradle to 6.6-RC1

Does this Gradle work for us with Java 11 ?

The new dokka seems to be released pretty soon with Kotlin 1.4-M3 ....


Global Filter and column filter search both are not working  Debounce Error

material-react-table version
1.3.2
Describe the bug and the steps to reproduce it
When I am trying to search any input from the table in the search i am getting this warning and error.
And input are not filtered.
Console:
Warning:
react-dom.development.js:88 Warning: This synthetic event is reused for performance reasons. If you're seeing this, you're accessing the property target on a released/nullified synthetic event. This is set to null. If you must keep the original synthetic event around, use event.persist(). See https://fb.me/react-event-pooling for more information.
Error:
MRT_GlobalFilterTextField.tsx:51 Uncaught TypeError: Cannot read properties of null (reading 'value')
at MRT_GlobalFilterTextField.tsx:51:1
at later (debounce.js:8:1)
Minimal, Reproducible Example - (Optional, but Recommended)
I simply copied one of the example from Material react table in my react application but all the features are working except
filter search.
https://codesandbox.io/s/github/KevinVandy/material-react-table/tree/main/material-react-table-docs/examples/enable-editing-cell/sandbox?file=/src/TS.tsx
Screenshots or Videos (Optional)

Do you intend to try to help solve this bug with your own PR?
No response
Terms

[X] I understand that if my bug cannot be reliably reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
[X] I have verified I am using the correct peer dependency versions for my version of material-react-table listed in the installation instructions.

This error only pops up for those who are using a pre react and react dom 17 versions. You indicated that you followed the full install instructions, but double check that.

Thanks @KevinVandy I had version 16. Working smoothly once upgraded to 17 version.


Table's KeyMap does not implement help.KeyMap

Describe the bug
A clear and concise description of what the bug is.
In table/table.go is the definition of table.KeyMap:
// KeyMap defines keybindings. It satisfies the help.KeyMap interface, which
// is used to render the menu.
type KeyMap struct {
	LineUp       key.Binding
	LineDown     key.Binding
	PageUp       key.Binding
	PageDown     key.Binding
	HalfPageUp   key.Binding
	HalfPageDown key.Binding
	GotoTop      key.Binding
	GotoBottom   key.Binding
}

The comment above the struct statement that struct satisfying interface but it lacks of method ShortHelp() []key.Binding and FullHelp() [][]key.Binding
Setup
Please complete the following information along with version numbers, if applicable.

OS [e.g. Ubuntu, macOS]
Shell [e.g. zsh, fish]
Terminal Emulator [e.g. kitty, iterm]
Terminal Multiplexer [e.g. tmux]
Irrelevant, since it is the code bug.

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error
table.table.go:40

Source Code
Please include source code if needed to reproduce the behavior.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Closing it since I mistook the repo 😵💫
https://github.com/charmbracelet/bubbles/issues/439


Fix bugs in pointcloud point tool

1.copy backward result doesn't work
2.support switching active point in point tool
3.sync drag move when there is remark layer
4.support undo and redo in point tool

:tada: This PR is included in version 1.14.0-alpha.15 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.10.0-alpha.15 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.7.0-alpha.9 :tada:
The release is available on npm package (@alpha dist-tag)
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on npm package (@latest dist-tag)
Your semantic-release bot :package::rocket:


Deb installer issues

For some reason deb installer doesn't upgrade version correctly.
Looks like some artifacts (plugins) from previous version remains.

Paths fixed, .eclipseproduct file added.


build(module): update test files

:tada: This PR is included in version 2.0.0-beta.5 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket: