运行报错

Traceback (most recent call last):
File "D:\tool\lushi_script\0.3.0\lushi.py", line 381, in
main()
File "D:\tool\lushi_script\0.3.0\lushi.py", line 377, in main
agent.run()
File "D:\tool\lushi_script\0.3.0\lushi.py", line 330, in run
self.run_pve()
File "D:\tool\lushi_script\0.3.0\lushi.py", line 366, in run_pve
success, tic, state, rect = self.state_handler(state, tic, state_text)
File "D:\tool\lushi_script\0.3.0\lushi.py", line 258, in state_handler
self.select_members()
File "D:\tool\lushi_script\0.3.0\lushi.py", line 146, in select_members
game = self.log_util.parse_game()
File "D:\tool\lushi_script\0.3.0\log_util\log_util.py", line 29, in parse_game
self.read_log()
File "D:\tool\lushi_script\0.3.0\log_util\log_util.py", line 20, in read_log
self.parser.read(f)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\hslog\parser.py", line 1100, in read
self.read_line(line)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\hslog\parser.py", line 1135, in read_line
return callback(self._parsing_state, ts, msg)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\hslog\parser.py", line 278, in handle_data
ps.register_player(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\hslog\parser.py", line 140, in register_player
lazy_player = self.manager.create_or_update_player(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\hslog\player.py", line 219, in create_or_update_player
raise InconsistentEntityIdError(player, entity_id)
hslog.player.InconsistentEntityIdError: (PlayerReference(name='xxx', entity_id=4, player_id=3), 8)

删除powerlog日志并重启游戏

2022-03-27 20:59:49,620 [   INFO] 2212 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 20:59:52,569 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 0.51
2022-03-27 20:59:57,200 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 5.14
2022-03-27 21:00:02,097 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 10.04
2022-03-27 21:03:47,605 [   INFO] 10088 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:03:50,374 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:03:55,058 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 5.20
2022-03-27 21:03:59,768 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 9.91
2022-03-27 21:04:04,395 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 14.54
2022-03-27 21:04:09,063 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 19.21
2022-03-27 21:04:13,938 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 24.08
2022-03-27 21:04:18,543 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 28.69
2022-03-27 21:04:23,240 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 33.38
2022-03-27 21:04:28,179 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 38.32
2022-03-27 21:04:32,961 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 43.10
2022-03-27 21:04:37,539 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 47.68
2022-03-27 21:04:42,165 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 52.31
2022-03-27 21:04:47,042 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 57.18
2022-03-27 21:04:51,750 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 61.89
2022-03-27 21:04:56,557 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 66.70
2022-03-27 21:05:35,185 [   INFO] 2464 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:05:37,944 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 0.53
2022-03-27 21:05:42,684 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 5.27
2022-03-27 21:05:47,288 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 9.87
2022-03-27 21:05:51,988 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 14.57
2022-03-27 21:08:20,832 [   INFO] 5544 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:08:23,647 [   INFO] 5544 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:08:28,282 [   INFO] 5544 --- lushi.py:896  : Last state , time taken: 5.15
2022-03-27 21:08:51,641 [   INFO] 5616 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:08:54,429 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 0.54
2022-03-27 21:08:59,058 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 5.17
2022-03-27 21:09:03,609 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 9.72
2022-03-27 21:09:08,092 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 14.20
2022-03-27 21:09:12,701 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 18.81
2022-03-27 21:09:17,360 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 23.47
2022-03-27 21:09:22,059 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 28.17
2022-03-27 21:09:26,782 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 32.89
2022-03-27 21:11:01,362 [   INFO] 3304 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:11:04,103 [   INFO] 3304 --- lushi.py:896  : Last state , time taken: 0.51
2022-03-27 21:11:04,179 [   INFO] 3304 --- lushi.py:544  : find box, try to click
2022-03-27 21:11:05,330 [   INFO] 3304 --- lushi.py:544  : find mercenaries, try to click
2022-03-27 21:11:06,432 [   INFO] 3304 --- lushi.py:544  : find team_lock, try to click
2022-03-27 21:11:07,572 [   INFO] 3304 --- lushi.py:548  : find travel, try to click
2022-03-27 21:11:09,181 [   INFO] 3304 --- lushi.py:554  : find boss list, try to click
2022-03-27 21:11:12,833 [   INFO] 3304 --- lushi.py:602  : find team_list, try to click
2022-03-27 21:11:21,375 [   INFO] 3304 --- lushi.py:253  : Start submit task...
2022-03-27 21:11:25,614 [   INFO] 3304 --- lushi.py:166  : Scanning surprise, rect: (-1, -1, 0, 0)
2022-03-27 21:11:40,490 [   INFO] 4384 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:11:43,251 [   INFO] 4384 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:11:47,820 [   INFO] 4384 --- lushi.py:896  : Last state , time taken: 5.09
2022-03-27 21:14:30,175 [   INFO] 3204 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:14:32,941 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 0.53
2022-03-27 21:14:37,333 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 4.92
2022-03-27 21:14:41,693 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 9.28
2022-03-27 21:14:46,235 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 13.83
2022-03-27 21:14:50,662 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 18.25

2022-03-27 20:59:49,620 [   INFO] 2212 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 20:59:52,569 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 0.51
2022-03-27 20:59:57,200 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 5.14
2022-03-27 21:00:02,097 [   INFO] 2212 --- lushi.py:896  : Last state , time taken: 10.04
2022-03-27 21:03:47,605 [   INFO] 10088 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:03:50,374 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:03:55,058 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 5.20
2022-03-27 21:03:59,768 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 9.91
2022-03-27 21:04:04,395 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 14.54
2022-03-27 21:04:09,063 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 19.21
2022-03-27 21:04:13,938 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 24.08
2022-03-27 21:04:18,543 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 28.69
2022-03-27 21:04:23,240 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 33.38
2022-03-27 21:04:28,179 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 38.32
2022-03-27 21:04:32,961 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 43.10
2022-03-27 21:04:37,539 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 47.68
2022-03-27 21:04:42,165 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 52.31
2022-03-27 21:04:47,042 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 57.18
2022-03-27 21:04:51,750 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 61.89
2022-03-27 21:04:56,557 [   INFO] 10088 --- lushi.py:896  : Last state , time taken: 66.70
2022-03-27 21:05:35,185 [   INFO] 2464 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:05:37,944 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 0.53
2022-03-27 21:05:42,684 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 5.27
2022-03-27 21:05:47,288 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 9.87
2022-03-27 21:05:51,988 [   INFO] 2464 --- lushi.py:896  : Last state , time taken: 14.57
2022-03-27 21:08:20,832 [   INFO] 5544 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:08:23,647 [   INFO] 5544 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:08:28,282 [   INFO] 5544 --- lushi.py:896  : Last state , time taken: 5.15
2022-03-27 21:08:51,641 [   INFO] 5616 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:08:54,429 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 0.54
2022-03-27 21:08:59,058 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 5.17
2022-03-27 21:09:03,609 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 9.72
2022-03-27 21:09:08,092 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 14.20
2022-03-27 21:09:12,701 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 18.81
2022-03-27 21:09:17,360 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 23.47
2022-03-27 21:09:22,059 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 28.17
2022-03-27 21:09:26,782 [   INFO] 5616 --- lushi.py:896  : Last state , time taken: 32.89
2022-03-27 21:11:01,362 [   INFO] 3304 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:11:04,103 [   INFO] 3304 --- lushi.py:896  : Last state , time taken: 0.51
2022-03-27 21:11:04,179 [   INFO] 3304 --- lushi.py:544  : find box, try to click
2022-03-27 21:11:05,330 [   INFO] 3304 --- lushi.py:544  : find mercenaries, try to click
2022-03-27 21:11:06,432 [   INFO] 3304 --- lushi.py:544  : find team_lock, try to click
2022-03-27 21:11:07,572 [   INFO] 3304 --- lushi.py:548  : find travel, try to click
2022-03-27 21:11:09,181 [   INFO] 3304 --- lushi.py:554  : find boss list, try to click
2022-03-27 21:11:12,833 [   INFO] 3304 --- lushi.py:602  : find team_list, try to click
2022-03-27 21:11:21,375 [   INFO] 3304 --- lushi.py:253  : Start submit task...
2022-03-27 21:11:25,614 [   INFO] 3304 --- lushi.py:166  : Scanning surprise, rect: (-1, -1, 0, 0)
2022-03-27 21:11:40,490 [   INFO] 4384 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:11:43,251 [   INFO] 4384 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:11:47,820 [   INFO] 4384 --- lushi.py:896  : Last state , time taken: 5.09
2022-03-27 21:14:30,175 [   INFO] 3204 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:14:32,941 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 0.53
2022-03-27 21:14:37,333 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 4.92
2022-03-27 21:14:41,693 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 9.28
2022-03-27 21:14:46,235 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 13.83
2022-03-27 21:14:50,662 [   INFO] 3204 --- lushi.py:896  : Last state , time taken: 18.25
2022-03-27 21:23:15,369 [   INFO] 2964 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:23:18,118 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 0.52
2022-03-27 21:23:22,541 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 4.94
2022-03-27 21:23:26,802 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 9.20
2022-03-27 21:23:31,190 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 13.59
2022-03-27 21:23:35,581 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 17.98
2022-03-27 21:23:39,923 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 22.32
2022-03-27 21:23:44,302 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 26.70
2022-03-27 21:23:48,660 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 31.06
2022-03-27 21:23:53,056 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 35.45
2022-03-27 21:23:57,444 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 39.84
2022-03-27 21:24:01,784 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 44.18
2022-03-27 21:24:06,143 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 48.54
2022-03-27 21:24:10,546 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 52.95
2022-03-27 21:24:14,961 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 57.36
2022-03-27 21:24:19,331 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 61.73
2022-03-27 21:24:23,810 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 66.21
2022-03-27 21:24:28,191 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 70.59
2022-03-27 21:24:32,558 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 74.96
2022-03-27 21:24:36,900 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 79.30
2022-03-27 21:24:41,638 [   INFO] 2964 --- util.py:134  : screenshot restart_block_21-24.41,312.png saved
2022-03-27 21:24:41,639 [   INFO] 2964 --- util.py:242  : try to kill hearthstone
2022-03-27 21:24:41,674 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:24:41,790 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:24:41,879 [   INFO] 2964 --- util.py:229  : Hearthstone.exe killed
2022-03-27 21:24:41,897 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:24:41,923 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:24:47,075 [   INFO] 2964 --- util.py:218  : find Battle.net.exe exists
2022-03-27 21:24:47,075 [   INFO] 2964 --- util.py:254  : Battle.net start success
2022-03-27 21:24:47,225 [   INFO] 2964 --- util.py:257  : attempt to start Hearthstone
2022-03-27 21:24:57,455 [   INFO] 2964 --- util.py:257  : attempt to start Hearthstone
2022-03-27 21:25:07,681 [   INFO] 2964 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:25:07,681 [   INFO] 2964 --- util.py:262  : Hearthstone start success
2022-03-27 21:25:12,697 [   INFO] 2964 --- util.py:265  : done
2022-03-27 21:25:12,906 [   INFO] 2964 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:25:13,405 [   INFO] 2964 --- util.py:134  : screenshot restart_unkown_21-25.13,004.png saved
2022-03-27 21:25:13,405 [   INFO] 2964 --- util.py:242  : try to kill hearthstone
2022-03-27 21:25:13,454 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:25:13,646 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:25:13,654 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:25:13,672 [   INFO] 2964 --- util.py:229  : Battle.net.exe killed
2022-03-27 21:25:13,702 [   INFO] 2964 --- util.py:229  : Hearthstone.exe killed
2022-03-27 21:25:19,006 [   INFO] 2964 --- util.py:248  : attempt to start Battle.net
2022-03-27 21:25:29,095 [   INFO] 2964 --- util.py:218  : find Battle.net.exe exists
2022-03-27 21:25:29,095 [   INFO] 2964 --- util.py:254  : Battle.net start success
2022-03-27 21:25:29,260 [   INFO] 2964 --- util.py:257  : attempt to start Hearthstone
2022-03-27 21:25:39,513 [   INFO] 2964 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:25:39,513 [   INFO] 2964 --- util.py:262  : Hearthstone start success
2022-03-27 21:25:44,520 [   INFO] 2964 --- util.py:265  : done
2022-03-27 21:25:44,694 [   INFO] 2964 --- util.py:218  : find Hearthstone.exe exists
2022-03-27 21:25:49,433 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 4.74
2022-03-27 21:25:54,187 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 9.49
2022-03-27 21:25:59,127 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 14.43
2022-03-27 21:26:03,746 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 19.05
2022-03-27 21:26:08,972 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 24.28
2022-03-27 21:26:14,304 [   INFO] 2964 --- lushi.py:896  : Last state , time taken: 29.61


Can't find description on DB model

Bumped into your repo and was trying to understand how your DB operates internally.
But can't find any information in README and the site.
What I'd like to see:

row or column oriented?
lsm or btree data structure?
is data durable persisted?
are UPDATE operations support?
what kind of indices are supported?
are secondary indices supported?

May all these questions are addressed somewhere, but I'm out of luck finding the answers.

if we're doing qa.. I'd also add I'm trying to understand how to reason about memory usage for duckdb, just using the cli, it seems to hold the entire db in memory (2.6gb).
also wrt to contributing to the docs, they don't appear to be in the repo? would be worth adding to contributing section on how to add to them.

The amount of memory that is buffered can be configured using the PRAGMA memory_limit (e.g. PRAGMA memory_limit='1GB'). Currently the default for this is infinite, which means the whole database will be buffered in memory.
The docs are in a separate repo, which is currently set to private. We might make it public soon, we haven't discussed about that yet. We are also currently reworking the website, so perhaps we can make it public after that.

Bumped into your repo and was trying to understand how your DB operates internally.
But can't find any information in README and the site.
What I'd like to see:

row or column oriented?
lsm or btree data structure?
is data durable persisted?
are UPDATE operations support?
what kind of indices are supported?
are secondary indices supported?

May all these questions are addressed somewhere, but I'm out of luck finding the answers.

Excellent point, indeed we are trying to rework the documentation. Here are some simple answers:

Column oriented
Neither, custom block-based currently
Yes, data is durably persisted. DuckDB is fully ACID.
Update/deletes are supported. They are transactional, with snapshot isolation.
Secondary indices are supported, currently only the ART index is implemented (https://db.in.tum.de/~leis/papers/ART.pdf).

for others that come across this issue, doc source is here https://github.com/cwida/duckdb-web for contribs.


Method "REGISTER_ENTITY_TRANSACTION" does not exist / Description	Resource	Path	Location	Type Method "EXECUTE_SINGLE" does not exist, method with the similar name "DELETE_SINGLE"

Hello,
I am eager to experiment you cds2alv on SAP_ABA 75H (S/4HANA 2022) but I got the following two errors after changing code in
METHOD zif_cds_alv_ddic_access~get_source_id.
TRY.
" This gets the correct entity ID, when ObjectModel.transactionalProcessingDelegated is used!
" Parameter type is changed to RETURNING in newer releases!
" is the following correct ?
CAST cl_sadl_entity_cds( i_entity )->get_consumption_view_def( ).
" CAST cl_sadl_entity_cds( i_entity )->get_consumption_view_def( IMPORTING ev_source_id = r_source_id ).
Two errors
Then
In Method Instantiate
Description	Resource	Path	Location	Type
Method "REGISTER_ENTITY_TRANSACTION" does not exist. There is, however, a method with the similar name "REGISTER_TRANSACTION_FRAMEWORK".	zcl_cds_alv_bopf_handler.aclass	/Dxxx/.adt/classlib/classes/zcl_cds_alv_bopf_handler	line 116	ABAP Syntax Check Problem
      transaction_manager->register_entity_transaction(
          io_entity_transaction = entity_type_trans_manager
          iv_entity_type        = cl_sadl_entity_factory=>co_type-bopf
          io_mdp                = cl_sadl_metadata_provider=>get( mp ) ).

The current ABAP program "ZCL_CDS_ALV_IOC_CONTAINER=====CP" had to be
terminated because it found a
statement that could not be executed.
In include "ZCL_CDS_ALV_BOPF_HANDLER======CM004     ", in line 23 of program
"ZCL_CDS_ALV_BOPF_HANDLER======CP        ", the following syntax errors
have occurred:
Method "REGISTER_ENTITY_TRANSACTION" does not exist. There is, however
, a method with the similar name "REGISTER_TRANSACTION_FRAMEWORK".
In method execute_action
Description	Resource	Path	Location	Type
Method "EXECUTE_SINGLE" does not exist. There is, however, a method with the similar name "DELETE_SINGLE".	zcl_cds_alv_bopf_handler.aclass	/Dxxx_en/.adt/classlib/classes/zcl_cds_alv_bopf_handler	line 237	ABAP Syntax Check Problem

Hello,
we also encountered these issues on our system on release SAP_ABA 75G (S/4HANA 2021). We got it running by changing the following methods:

Class ZCL_CDS_ALV_SADL_MAPPING_PROV, Method BUILD_SADL_DEFINITION: Use a different Text-ID of exception class cx_bsa_compile_time for the error propagation in the CATCH-Block.

Class ZCL_CDS_ALV_DDIC_ACCESS, Method GET_SOURCE_ID:
r_source_id = CAST cl_sadl_entity_cds( i_entity )->get_consumption_view_def( )-base_view_name.

Class ZCL_CDS_ALV_BOPF_HANDLER, Method EXECUTE_ACTION: In the CASE block:

CASE action-static.
    WHEN abap_false.
     " delete this block
    WHEN abap_true.
     " keep this block
ENDCASE.

Class ZCL_CDS_ALV_BOPF_HANDLER, Method INSTANTIATE:

 transaction_manager->register_transaction_framework(
    io_entity_transaction = entity_type_trans_manager
    iv_entity_type        = cl_sadl_entity_factory=>co_type-bopf
    io_mdp                = cl_sadl_mdp_factory=>get_mdp_for_mp( mp ) ).

I hope these work for you as well. If you encounter more obstacles after implementing these or find a different solution, please let us know.
Yours,
Christopher


Reindexing only valid with uniquely valued Index objects

Hi
I'm using truvari bench on lumpy, delly, manta and cnvnator calls.
However, on lumpy output I get this:
2022-05-04 13:59:41,401 [CRITICAL] Unknown Number (2) for CIEND. Skipping.
2022-05-04 13:59:41,401 [CRITICAL] Unknown Number (2) for CIEND95. Skipping.
2022-05-04 13:59:41,401 [CRITICAL] Unknown Number (2) for CIPOS. Skipping.
2022-05-04 13:59:41,401 [CRITICAL] Unknown Number (2) for CIPOS95. Skipping.
2022-05-04 13:59:41,420 [CRITICAL] Unknown Number (2) for CIEND. Skipping.
2022-05-04 13:59:41,420 [CRITICAL] Unknown Number (2) for CIEND95. Skipping.
2022-05-04 13:59:41,420 [CRITICAL] Unknown Number (2) for CIPOS. Skipping.
2022-05-04 13:59:41,420 [CRITICAL] Unknown Number (2) for CIPOS95. Skipping.
Traceback (most recent call last):
  File "/usr/local/bin/truvari", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.8/dist-packages/truvari/__main__.py", line 85, in main
    TOOLS[args.cmd](args.options)
  File "/usr/local/lib/python3.8/dist-packages/truvari/bench.py", line 808, in bench_main
    make_giabreport(args, outputs["stats_box"])
  File "/usr/local/lib/python3.8/dist-packages/truvari/giab_report.py", line 36, in make_giabreport
    truvari.vcf2df.vcf2df_main(["-i", "-f", "-b", args.output, out_df])
  File "/usr/local/lib/python3.8/dist-packages/truvari/vcf2df.py", line 411, in vcf2df_main
    out = pd.concat(all_dfs)
  File "/usr/local/lib/python3.8/dist-packages/pandas/util/_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/pandas/core/reshape/concat.py", line 360, in concat
    return op.get_result()
  File "/usr/local/lib/python3.8/dist-packages/pandas/core/reshape/concat.py", line 591, in get_result
    indexers[ax] = obj_labels.get_indexer(new_labels)
  File "/usr/local/lib/python3.8/dist-packages/pandas/core/indexes/base.py", line 3721, in get_indexer
    raise InvalidIndexError(self._requires_unique_msg)
pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

What might cause this error? I ran the vcfs through the usable_vcf.py script and only see
2022-05-04 14:25:00,760 [DEBUG] b'Warning: Duplicate entries, for example chr1:121756074\n'
Removing these duplicate entries does not seem to fix it and they are not a problem for other vcf files that are not from lumpy. Any suggestion?
Thanks for your help.

Could you please provide a lumpy vcf so that I can recreate this error. This is an error with pandas that appears to have a solution, but I need example data to implement a fix.

Marking ticket as abandoned. Please reopen if you have a follow-up


Add test and documentation for secured cluster

This can be now activated for free with the default basic license.

Not stale. Sorry for being slow to come back to this PR.

With #2839 we're intending to deprecate the default constructor for all modules and start encouraging all users to specify a version explicitly. This is primarily to avoid the risk of us breaking users' builds by changing the docker image unexpectedly.
As such, I'll close this PR, as I'd expect that we will leave default image tags where they are until they eventually get removed altogether.

@rnorth I disagree because the change I proposed is bringing much more value than just updating the default version.
It brings new tests, new documentation, etc...
So please consider reopening it.
I 100% agree of removing the default constructor though but this is another story IMO.

@dadoonet, sorry, I missed your reply. I realise now what you mean - yes, we should bring the other elements of this PR in.
Can we refactor this once #2839 is merged, so that the docs refer to the right (new) way of doing things? We should still leave the default version unchanged and deprecated, but there's absolutely nothing to stop the tests and docs referring to newer versions.
Sorry for my misunderstanding.

Thanks! I subscribed to the PR and will update the PR when merged. Although I could have done it before your merge. But no worries.

@rnorth I revisited the PR and removed all calls to the default CTOR and mark it as Deprecated so I think it's aligned with what you want to merge in master with #2839.
I'd be happy to hear your feedback.

I rebased my work on master. Could you give another look?

I believe the branch is now ready for review as CI is happy :)


libappimageupdate build failed since elf added

Can you check this build log between line 2634 and line 2657?
https://travis-ci.org/opendesktop/ocs-manager/jobs/346324869#L2634
How can I do for this?

error: 'for' loop initial declarations are only allowed in C99 mode

Sorry for the inconvenience. Looks like libappimageupdate needs to compile the ELF stuff in C99 mode. I'll push a fix asap.

Please reopen the issue if the fix doesn't work for you.

Build passed! Thanks for the fix.


Cachetool recipe no more compatible with php <7.1

Q
A

Issue Type
Bug

Deployer Version
6.2.0

Recipes Version
6.1.1

Local Machine OS
Ubuntu 16.04.4 LTS with php7.0

Remote Machine OS
Ubuntu 16.04.4 LTS with php7.0

Description
Recipe cachetool is no more compatible with php 7.0. Needs php 7.1.
See https://github.com/gordalina/cachetool/issues/73 :

Current version, 4.0.0 supports only php 7.1 and symfony 4
Version 3.2.1 supports php>=5.5, you can download it here:

Steps to reproduce

Use

Content of deploy.php
...
require 'recipe/cachetool.php';
after('deploy:symlink', 'cachetool:clear:opcache');
...

Output log
In Client.php line 96:

  The command "cd /var/phpapp/releases/393 && (/usr/bin/php cachetool.phar opcache:reset --fcgi=/run/php/php7.0-fpm.sock)" failed.

  Exit Code: 255 (Unknown error)

  Host Name: hostname
  ================
  PHP Parse error:  syntax error, unexpected '?' in phar:///var/phpapp/releases/393/cachetool.phar/vendor/symfony/yaml/Parser.php on line 499

@pschirch update cachetool.phar

@antonmedv We need a specific cachetool.phar version (3.2.1). Latest only works on PHP >= 7.1. Unfortunately the download source is hard coded.

You can put a proper cachetool.phar version by hands. Recipe checks if there is a cachetool.phar before downloading newer.

Is this the same problem - I've started to see this within the last few hours:
` [Deployer\Exception\RuntimeException]
The command "cd /var/www/vhosts/aslotel.co.uk/releases/17 && (/usr/bin/php cachetool.phar opcache:reset --fcgi=<IP_ADDRESS>:9000)" failed.
Exit Code: 255 (Unknown error)
Host Name: <IP_ADDRESS>
PHP Fatal error:  Default value for parameters with a class type hint can only be NULL in phar:///var/www/vhosts/x.co.uk/releases/17/cachetool.phar/vendor/symfony/yaml/Parser.php on line 49`
Basically all our deployments are failing.

@hyde1 @antonmedv
Any updates?
@jamieburchell
You can temporarily define a task for installing a specific CacheTool version.
# *****************************************************************************
# * CacheTool Installer
# *****************************************************************************
desc('CacheTool Installer');
task('cachetool:install', function () {
    $releasePath = get('release_path');
    cd($releasePath);
    run("curl -s https://gordalina.github.io/cachetool/downloads/cachetool-3.2.1.phar --output cachetool.phar");
});

Hi @antonmedv what do you think of my PR?

@pschirch Thanks. I spotted that we can download the phar and it'll use that, so I've been doing that just to get things working again.

Hi, sorry for delay. Will merge it today.

Done and released.

Thank you :)

Not fixed for me on PHP 7.2:
  [Deployer\Exception\RuntimeException]
  The command "cd /var/www/xxx.yyy.fr/releases/43 && (/usr/local/bin/php -r "echo version_compare(phpversion(), '7.1') == -1 ? 'cachetool-3.2.1.phar' : 'cachetool.phar';")" failed.

  Exit Code: 2 (Misuse of shell builtins)

  Host Name: xxx.yyy.fr

  ================
  /bin/sh: syntax error: unexpected "("

Try run failed command on server via ssh.

Hum, problem is my php binary whitch map my docker container. Sorry.


[BUG] deepspeed tries to call "hostname -I" which is not a valid flag for hostname. it should be "hostname -i"

Describe the bug
A clear and concise description of what the bug is.
deepspeed tries to call "hostname -I" which is not a valid flag for hostname. it should be "hostname -i"
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
ds_report output
Please run ds_report to give us details about your setup.
Screenshots
If applicable, add screenshots to help explain your problem.
Processing dataset chunks: 100%|██████████| 106/106 [00:11<00:00,  9.45it/s]
[2024-09-05 04:11:37,288] [INFO] [logging.py:96:log_dist] [Rank -1] DeepSpeed info: version=0.15.2+c210e601, git-hash=c210e601, git-branch=master
[2024-09-05 04:11:37,288] [INFO] [comm.py:652:init_distributed] cdb=None
[2024-09-05 04:11:37,288] [INFO] [comm.py:667:init_distributed] Not using the DeepSpeed or dist launchers, attempting to detect MPI environment...
hostname: invalid option -- 'I'
Try 'hostname --help' or 'hostname --usage' for more information.
Traceback (most recent call last):
  File "/code/git/learnable-activations/mflow.py", line 429, in <module>
    run_experiment(args)
  File "/code/git/learnable-activations/mflow.py", line 384, in run_experiment
    model_engine, optimizer = prepare_deepspeed_model(model, args)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/code/git/learnable-activations/mflow.py", line 266, in prepare_deepspeed_model
    model_engine, _, _, _ = deepspeed.initialize(
                            ^^^^^^^^^^^^^^^^^^^^^
  File "/thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/deepspeed/__init__.py", line 144, in initialize
    dist.init_distributed(dist_backend=dist_backend,
  File "/thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/deepspeed/comm/comm.py", line 673, in init_distributed
    mpi_discovery(distributed_port=distributed_port, verbose=verbose)
  File "/thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/deepspeed/comm/comm.py", line 701, in mpi_discovery
    result = subprocess.check_output(hostname_cmd, shell=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['hostname -I']' returned non-zero exit status 64.

System info (please complete the following information):

OS: Arch
GPU count and types x1 7900xtx
Interconnects (if applicable) one machine
Python version 3.12
Any other relevant info about your setup

Launcher context
Are you launching your experiment with the deepspeed launcher, MPI, or something else?
#!/bin/bash
export OMPI_MCA_accelerator=rocm
mpirun -np 1 --mca accelerator rocm python mflow.py --deepspeed_config ds_config.json --log_interval 100 --batch_size 4 --local_rank -1

Docker context
Are you using a specific docker image that you can share?
Additional context
Add any other context about the problem here.
the offending code:
master_addr = None
    if rank == 0:
        hostname_cmd = ["hostname -I"]
        result = subprocess.check_output(hostname_cmd, shell=True)
        master_addr = result.decode('utf-8').split()[0]
    master_addr = comm.bcast(master_addr, root=0)

Hi @sirus20x6 - this issue looks to be similar to this one: https://github.com/microsoft/DeepSpeed/issues/5597
Could you share the output of hostname -h and hostname -V`?

here you go!
 ~  hostname --help                                                     ✔  11:11:59
Usage: hostname [OPTION...] [NAME]
Show or set the system's host name.

  -a, --aliases              alias names
  -d, --domain               DNS domain name
  -f, --fqdn, --long         DNS host name or FQDN
  -F, --file=FILE            set host name or NIS domain name from FILE
  -i, --ip-addresses         addresses for the host name
  -s, --short                short host name
  -y, --yp, --nis            NIS/YP domain name
  -?, --help                 give this help list
      --usage                give a short usage message
  -V, --version              print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to<EMAIL_ADDRESS> ~                                                                      ✔  11:12:02

 ~  hostname -V                                                      64 ✘  11:12:39
hostname (GNU inetutils) 2.5
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Debarshi Ray.
 ~                                                                      ✔  11:13:03

and I believe that the posix way of doing this is actually
getent hosts localhost
because net-utils which is where the hostname binary is from is sort of an old deprecated package even though a lot of people still have it installed because they have a lot of muscle memory around those tools

small correction, actually if you just want the first field that posix way of getting loopback is
getent hosts localhost | awk '{ print $1 }'

Thanks, @sirus20x6 - we are also looking at switching to just using socket.gethostname() and socket.gethostbyname_ex() to work around this entirely, do you think that would work for your needs?

I believe so. Hopefully that will be more cross-platform and resilient

If you want, you could test with pip install git+https://github.com/microsoft/deepspeed.git@loadams/update-hostname-I

I will test as soon as I get home to my machine!

doesn't install
> pip uninstall deepspeed
Found existing installation: deepspeed 0.15.2+c210e601
Uninstalling deepspeed-0.15.2+c210e601:
  Would remove:
    /thearray/git/ComfyUI/comfyvenv/bin/deepspeed
    /thearray/git/ComfyUI/comfyvenv/bin/deepspeed.pt
    /thearray/git/ComfyUI/comfyvenv/bin/ds
    /thearray/git/ComfyUI/comfyvenv/bin/ds_bench
    /thearray/git/ComfyUI/comfyvenv/bin/ds_elastic
    /thearray/git/ComfyUI/comfyvenv/bin/ds_report
    /thearray/git/ComfyUI/comfyvenv/bin/ds_ssh
    /thearray/git/ComfyUI/comfyvenv/bin/dsr
    /thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/deepspeed-0.15.2+c210e601.dist-info/*
    /thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/deepspeed/*
Proceed (Y/n)? y
  Successfully uninstalled deepspeed-0.15.2+c210e601
(comfyvenv) (base) neuromancer :) > pip install git+https://github.com/microsoft/deepspeed.git@loadams/update-hostname-I
Collecting git+https://github.com/microsoft/deepspeed.git@loadams/update-hostname-I
  Cloning https://github.com/microsoft/deepspeed.git (to revision loadams/update-hostname-I) to /tmp/pip-req-build-lvq7vagu
  Running command git clone --filter=blob:none --quiet https://github.com/microsoft/deepspeed.git /tmp/pip-req-build-lvq7vagu
  Running command git checkout -b loadams/update-hostname-I --track origin/loadams/update-hostname-I
  Switched to a new branch 'loadams/update-hostname-I'
  branch 'loadams/update-hostname-I' set up to track 'origin/loadams/update-hostname-I'.
   Please use `torch.utils._pytree.register_pytree_node` instead.
        _torch_pytree._register_pytree_node(
      /thearray/git/ComfyUI/comfyvenv/lib/python3.12/site-packages/transformers/utils/generic.py:309: FutureWarning: `torch.utils._pytree._register_pytree_node` is deprecated. Please use `torch.utils._pytree.register_pytree_node` instead.
        _torch_pytree._register_pytree_node(
      DS_BUILD_OPS=0
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_types.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_types.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_utils.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_utils.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_common.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_common.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_op_desc.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_op_desc.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_cpu_op.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_cpu_op.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_thread.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_thread.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_pin_tensor.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_pin_tensor.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_io_handle.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_io_handle.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_io_handle.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_io_handle.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio_handle.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio_handle.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_aio_handle.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_thread.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_thread.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_utils.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_utils.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_common.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_common.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_types.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/common/deepspeed_aio_types.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_cpu_op.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_cpu_op.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_op_desc.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_aio_op_desc.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_copy.h -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_copy.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_copy.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_py_copy.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_pin_tensor.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/deepspeed_pin_tensor.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/py_ds_aio.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/aio/py_lib/py_ds_aio.cpp [skipped, no changes]
      Successfully preprocessed all matching files.
      Total number of unsupported CUDA function calls: 0

      Total number of replaced kernel launches: 0
      /tmp/pip-req-build-lvq7vagu/csrc/adam/fused_adam_frontend.cpp -> /tmp/pip-req-build-lvq7vagu/csrc/adam/fused_adam_frontend.cpp [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/includes/compat.h -> /tmp/pip-req-build-lvq7vagu/csrc/includes/compat.h [skipped, no changes]
      /tmp/pip-req-build-lvq7vagu/csrc/adam/multi_tensor_apply.cuh -> /tmp/pip-req-build-lvq7vagu/csrc/adam/multi_tensor_apply_hip.cuh [ok]
      /tmp/pip-req-build-lvq7vagu/csrc/includes/type_shim.h -> /tmp/pip-req-build-lvq7vagu/csrc/includes/type_shim_hip.h [ok]
      /tmp/pip-req-build-lvq7vagu/csrc/adam/multi_tensor_adam.cu -> /tmp/pip-req-build-lvq7vagu/csrc/adam/multi_tensor_adam.hip [ok]
      Successfully preprocessed all matching files.
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-req-build-lvq7vagu/setup.py", line 198, in <module>
          ext_modules.append(builder.builder())
                             ^^^^^^^^^^^^^^^^^
        File "/tmp/pip-req-build-lvq7vagu/op_builder/builder.py", line 699, in builder
          {'cxx': self.strip_empty_entries(self.cxx_args()), \
                                           ^^^^^^^^^^^^^^^
        File "/tmp/pip-req-build-lvq7vagu/op_builder/builder.py", line 842, in cxx_args
          CUDA_ENABLE = self.is_cuda_enable()
                        ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-req-build-lvq7vagu/op_builder/builder.py", line 420, in is_cuda_enable
          assert_no_cuda_mismatch(self.name)
        File "/tmp/pip-req-build-lvq7vagu/op_builder/builder.py", line 86, in assert_no_cuda_mismatch
          torch_cuda_version = ".".join(torch.version.cuda.split('.')[:2])
                                        ^^^^^^^^^^^^^^^^^^^^^^^^
      AttributeError: 'NoneType' object has no attribute 'split'
      Total number of unsupported CUDA function calls: 0

      Total number of replaced kernel launches: 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

+1 for the socket approach
replacing the subprocess calls from here in deepspeed/comm/comm.py#L700-L702
with
import socket
master_addr = socket.gethostbyaddr(socket.gethostname())[0]

has been working for me on internal systems
+    import socket
-    master_addr = None
     if rank == 0:
-        hostname_cmd = ["hostname -I"]
-        result = subprocess.check_output(hostname_cmd, shell=True)
-        master_addr = result.decode('utf-8').split()[0]
+        master_addr = socket.gethostbyaddr(socket.gethostname())[0]

also see: #2837
I'd be happy to submit a PR + test further if it would be useful

@saforem2, thanks for offering to help with this. Please see our concerns here.  Would appreciate your insights and PR.


Make Leaky Resin blocks rotatable when placing them down again

Any way to make Leaky Resin blocks rotatable when placing them down again (like, always make the resin face you when placing) if you code it in to be carryable, or is that somehow hardcoded into world position

Initial investigation: block rotation is defined in the log-withresin.json file. The alternates are likely selected procedurally based on block location.


"max_size" keyword raise error

input

SELECT max_size
FROM a

input

USE AdventureWorks2012;
GO
SELECT file_id, name, type_desc, physical_name, size, max_size
FROM sys.database_files ;
GO

-- Database design/Databases/How-to guides/Manage/Display Data & Log Space Information for a Database
-- https://docs.microsoft.com/en-us/sql/relational-databases/databases/display-data-and-log-space-information-for-a-database?view=sql-server-ver15

input

 SELECT name AS FileName,
    size*1.0/128 AS FileSizeInMB,
    CASE max_size
        WHEN 0 THEN 'Autogrowth is off.'
        WHEN -1 THEN 'Autogrowth is on.'
        ELSE 'Log file grows to a maximum size of 2 TB.'
    END,
    growth AS 'GrowthValue',
    'GrowthIncrement' =
        CASE
            WHEN growth = 0 THEN 'Size is fixed.'
            WHEN growth > 0 AND is_percent_growth = 0
                THEN 'Growth value is in 8-KB pages.'
            ELSE 'Growth value is a percentage.'


Use external.sh and build_image.sh for more docker image tag coverage

This PR (replacing #1619) is an initial switch over for some external tests to use the new scripts which allow the use of any of the docker image tags that are produced and pushed to Docker hub.
This is ultimately to facilitate the testing of the unofficial images so that we can create a repeatable QA process for verifying them and getting them pushed into the official Docker hub repo.

Camel with ubi / jdk11:
Grinder #2367
Derby with alpine / jdk11:
Grinder #2368
Jenkins with centos / jdk11:
Grinder #2369
Kafka with nightly / jdk8:
Grinder #2370

Things that are still missing:

external.sh should take 2 report parameters (1 for src and 1 for dst info as not all apps use surefire-reports as src, and need to pass the REPORTDIR from TKG as dst)

the run should actually fail if there is a failure during the build or execute stage and right now it is not

Jenkins with centos / jdk11:
Grinder #2369 - this tries to do the right thing, which is to build a centos based image, but that fails due to missing manifest, see console output:
07:49:55 [exec] manifest for adoptopenjdk/openjdk11:centos-nightly not found 07:49:55 [exec] Result: 1

@smlambert Do you have an issue open against https://github.com/AdoptOpenJDK/openjdk-docker/? I think we had this issue opened, https://github.com/AdoptOpenJDK/openjdk-docker/issues/268, but I am unsure what came of it.

re: https://github.com/AdoptOpenJDK/openjdk-tests/pull/1660#issuecomment-593657452 I did not raise a new issue in openjdk-docker yet as the Jenkins server was unhealthy over the weekend, which may have caused a blip... was going to run Grinders again in the morning to see, then raise if still existed

I can update some of our test jobs tonight after a few more grinder runs before merging this, thanks for the review!

Still hitting the same errors in some Grinders
20:07:32       [exec] manifest for adoptopenjdk/openjdk11:centos-nightly not found
20:07:32       [exec] Result: 1
so have reopened https://github.com/AdoptOpenJDK/openjdk-docker/issues/281

Next grinders:
Camel with ubi / jdk11:
Grinder #2438
Derby with alpine / jdk11:
Grinder #2439
Jenkins with centos / jdk11:
Grinder #2440
Kafka with nightly / jdk8:
Grinder #2441

I will create a follow-up PR for proper handling of reports (in which we may also want to include cores, which in some cases go to a different dir than test results, so will need special handling if we want them).


InputIterator?

The documentation says that CppCmb works on an InputIterator for tokens, but I'm wondering, don't you actually require a ForwardIterator (that allows you to perform backtracking)?
For example consider something with a structure like alt< seq< one, one, one >, one > with an input of two tokens, where you are effectively backtracking to let the second branch of the alt start at the same position as the first...

Yes, you are right. I forgot that InputIterator does not guarantee multiple passes. Thank you for the contribution!


Tikit (No-Microsoft publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
Important: Our certification engineer, Srikanth, is currently on emergency leave. Please expect a delay with your PR. He will return January 31st, 2022. We apologize for any inconveniences.
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[ ] I attest that the connector works and I verified by deploying and testing all the operations.
[ ] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[ ] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[ ] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[ ] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[ ] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[ ] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[ ] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Dear partner,
We apologize for the delay you might be experiencing while we are working on a high volume of connector requests. Rest assured that we are doing everything we can to address this volume. We are taking measures like improving our processes and hiring additional team members to guarantee resolving your connector requests in a timely manner.
Please let us know if you have any questions in the meantime.

Thanks for the update on this connector. Looking forward to this connector being certified.

@1MrSharma I'm just checking in to see how things are going with updating your connector artifacts as per the given feedback. Please feel free to reach out with any questions you may have, Thanks.

@sriyen-msft Have changes all the required changes. Update if there are any other changes required. Thanks.

Hello,
Can you please delete this custom connector from the official repository due to some business security requirements? This is a high-priority task. Also, remove this directory URL block from the web.
This would be really helpful for me if this is done as quickly as possible.
Thanks

@Amjed-Ayoub @sriyen-msft @v-eisljami .


Websocket interrupt read

I'm implementing a WebSocket client using the beast library and faced a problem with sync read operation. When I want to destroy a connection I use WebSocket.close() function. I was expecting this call to immediately interrupt the read operation, however, read() call can hang for a minute before it actually returns. Is there a way to immediately interrupt any ongoing read operations?

There are two problems here. First, note that the only way you could possibly be calling close while a call to read is active is from another thread. boost::asio::ip::tcp::socket objects are not thread-safe, either using the synchronous or the asynchronous APIs.
Second, there is no way to interrupt a synchronous read. If you need this functionality, you must use asynchronous interfaces. This is the interface of Asio, and since Beast builds on top of Asio it has the same limitations.

Ok, I see. Do I understand correctly that even if I switch to the async interface, I cannot call, for example, async_read() and async_close() from different threads?
Is there a way to quickly close WebSocket connection if I switch to the async interface? Imagine I have an object which holds references to all the WebSocket-related objects, and at some point, I want to destroy that object as quickly as possible. So is that possible to do that?
Another question is how WebSocket behaves under unreliable network conditions. What is the common pattern to react to a network loss and appearance while maintaining an active connection?

Do I understand correctly that even if I switch to the async interface, I cannot call, for example,
async_read() and async_close() from different threads?

Yes, that is correct. Note that this limitation applies not only to beast::websocket::stream objects but also boost::asio::ip::tcp::socket objects (and anything that contains them). See "Thread Safety" here:
http://www.boost.org/doc/libs/1_64_0/doc/html/boost_asio/reference/ip__tcp/socket.html

Is there a way to quickly close WebSocket connection if I switch to the async interface?

Yes. Given this declaration:
beast::websocket::stream<boost::asio::ip::tcp::socket> ws{...};

You can:

Cancel all pending I/O using ws.next_layer().cancel()
Close the underlying socket using ws.next_layer().close()

In either case, any pending asynchronous operations will complete immediate with boost::asio::error::operation_aborted. If you destroy the stream object right after calling cancel or close, note that the completion handlers may be called after the stream object is destroyed. You can check if the error is operation_aborted at the very beginning of your handler and just return from the function instead of accessing members of the stream (since the stream could be destroyed).
The functions cancel and close are not thread safe. They must be called from the same implicit or explicit strand as the one used to perform the asynchronous operations. An easy way to do that is to call io_service::post if you're not already on the strand's context. For example:
void T::do_close()
{
    if(! strand_.running_in_this_thread())
        return strand_.post(std::bind(&T::do_close, shared_from_this()));
    socket_.close();

Imagine I have an object which holds references to all the WebSocket-related objects, and at
some point, I want to destroy that object as quickly as possible. So is that possible to do that?

Yes it is possible, but I have to warn you that this is actually a very difficult problem to solve correctly! You are describing a container that holds references to objects that are executing asynchronously. And those objects can be created and destroyed from other threads. How would you iterate such a container? Some kind of lock is needed. If you're using shared pointers, you have to be careful because if the container holds a strong reference to your object then it can never be destroyed! How will you know when to destroy the objects? It gets very complicated very quickly. This is not specific to Beast but is a general problem when building programs using Asio's asynchronous model.

Another question is how WebSocket behaves under unreliable network conditions. What is the
common pattern to react to a network loss and appearance while maintaining an active connection?

Beast.WebSocket doesn't do anything special. Its up to you to detect the loss of connection, by checking the error codes from your asynchronous operations and taking action. Beast doesn't manage the connection for you, it has no idea about IP addresses or listening sockets. It just wraps your already-existing socket or ssl_stream (or user-defined type).
Thanks for your interest in Beast!

Thank you for the great library and such quick and comprehensive answers!
May I leave this issue open in case I have any specific problems while re-implementing the client with the async approach or it is better to open a new one then?

May I leave this issue open in case I have any specific problems while re-implementing the client with
the async approach or it is better to open a new one then?

Whatever works better for you! Probably a separate issue is best, in case anyone tries to search later.

Ok, closing then.


listing deployment shouldn't take the mnemonics again

Verified on https://getmastodon.threefold.io/
Deployment listing now doesn't require the mnemonics to be entered again.
Get Mastodon (6).webm


correct a spelling

I just fixed 'classlib' spelling.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

also there is a rendering problem at the end of the document that I did not figure out the reason.

I've fixed that issue already with https://github.com/dotnet/docs/commit/15451ddbbbce939ddd9e84b8f40fb8daacd9413a#diff-5e8d0a13b2a5cefde17e365e4aa81953. It should be live shortly.

Thank you @hmdhasani!

your welcome!


rasa train emits a domain error without additional detail when using an incorrect field name in an utter

Rasa version:
Rasa Version      :         2.5.1
Minimum Compatible Version: 2.2.0a1
Rasa SDK Version  :         2.5.0
Rasa X Version    :         None
Python Version    :         3.7.10
Operating System  :         Linux-4.19.0-16-amd64-x86_64-with-debian-10.9
Python Path       :         /home/bastb/bot/venv/bin/python3

Rasa SDK version (if used & relevant):
(venv) bastb@i7-nuc:~/bot/bot_nld$ pip freeze | grep rasa-sdk
rasa-sdk==2.5.0

Rasa X version (if used & relevant):
Python version:
(venv) bastb@i7-nuc:~/bot/bot_nld$ python --version
Python 3.7.10

Operating system (windows, osx, ...):
Linux i7-nuc 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
Issue:
I was working on domain.yml and used an incorrect key below an utter_, like this:
utter_request_cancelled:
- text: yadieyadie ya
- utter: different words, same message

rasa train then reports an expected error, but with very little detail:
(venv) bastb@i7-nuc:~/bot/bot_nld$ rasa train
YamlValidationException: Failed to validate '/home/bastb/bot/bot_nld/domain.yml'. Please make sure the file is correct and all mandatory parameters are specified. Here are the errors found during validation

Error (including full traceback):
YamlValidationException: Failed to validate '/home/bastb/bot/bot_nld/domain.yml'. Please make sure the file is correct and all mandatory parameters are specified. Here are the errors found during validation

Command or request that led to error:
rasa train

Content of configuration file (config.yml) (if relevant):

Content of domain file (domain.yml) (if relevant):

The source is easily found when running rasa train -v, but I think it would be nice if the error message itself contained some additional detail

Thanks for raising this issue, @jupyterjazz will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Thank you @bastbnl for the detailed explanation of the issue. This issue is moved to the inbox of the @RasaHQ/enable-squad and it will be prioritised. In the meantime If you have any ideas on how to correct it, you can also open a PR and link it to this issue. The responses of the domain.yml are validated against this yaml schema file and the validation does not show any errors because this variable is empty.

I gave it a try in PR #8698 after some really, really lite testing on my end using a domain.yml which was succesfully used for training

Hi @bastbnl I think this should have been resolved for rasa train too with this PR that got released in version 2.6.1 - could you please try upgrading and testing if you see the same issue?

You're right, @ancalita. The issue has been resolved. Thanks!


Create Main Page

The main page will contain all the career postings. There should be an area for a future search bar, a large area for a list of postings, an area to assign search filters, and an area for the user to access their profile. The main page should be less flashy than the landing page, since the user is already interacting with our website, they should be able to do so clearly and easily.

Started main page with commit d6c5fa3f0ad411bc510860fc75c1e20b73fab2f8.

Finalized main page with cde54b408f0a558d99f28a6843c4c7e494416562.

Closed with cde54b408f0a558d99f28a6843c4c7e494416562.


Support for Kubernetes v1.31

How to categorize this PR?

/area open-source usability
/kind enhancement
/platform equinix-metal
/exp intermediate
/topology garden seed shoot
/merge squash
What this PR does / why we need it:
This PR adds support for Kubernetes 1.31 to the extension.
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/10286
Special notes for your reviewer:

I have not validated the functionality as follows:

:x: Create new clusters with versions < 1.31
:x: Create new clusters with version  = 1.31
:x: Upgrade old clusters from version 1.30 to version 1.31
:x: Delete clusters with versions < 1.31
:x: Delete clusters with version  = 1.31

/cc @schrodit could you please test cluster creation etc. enlisted before. I don't have any environment to do so.
Release note:

The provider-equinix-metal extension does now support shoot clusters with Kubernetes version 1.31. You should consider the [Kubernetes release notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md) before upgrading to 1.31.

/assign @RiRa12621

/ok-to-test

can you please rebase so we get rid of the merge conflict @ialidzhikov ?

can you please rebase so we get rid of the merge conflict @ialidzhikov ?

Done.


Add warning message when using transformers < 4.35

There is a large performance degradation when using transformers < 4.36 and optimum 1.16 to export stateful models. This PR adds a warning message when exporting stateful models with transformers < 4.36 or PyTorch<2.1.1. I made the warning bright red because without that it would definitely be lost between the other output, and this is really important to not miss. The ANSI color codes should work well on most systems (Windows and Linux terminal, Jupyter). In the case that it doesn't work, it's just a few numbers printed before and after the message.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


We need to speed up tests or otherwise reduce dependence on Travis

Problem
Our tests in travis are taking up more than 30% of all Travis credits for the Raku organization

And this has led to exhaustion of credits in less than two months.
Suggestions
Every build takes 7 minutes, and sometimes it's only testing a new or a bunch of new files, something that should take less than a few seconds. There are many things that could be done

Try and make only changed files undergo testing. This is kinda difficult, since I'm not so sure if Travis keeps the last commit that was tested. In the case it did, it wouldn't be too difficult to modify tests so that they did.
Split tests in different platforms. We already use different platforms, albeit for different things. We are not using GitHub actions, though.
Move everything or a part to GitLab, which also hosts CI workflows.

I'll try to setup GitHub actions equivalent to at least the default Travis build

I'll try to setup GitHub actions equivalent to at least the default Travis build

If we can track previous checkout information, util/update-and-test already has the code to test only those items that have changed since the last commit.

If we can track previous checkout information, util/update-and-test already has the code to test only those items that have changed since the last commit.

A first github workflow was run with sucess, see https://github.com/Raku/doc/actions/runs/476131939

A first github workflow was run with sucess, see https://github.com/Raku/doc/actions/runs/476131939

Thinking twice, I think I'm going to reopen this. We would still need to speed up tests. Github is not, or will not be, unlimited either.

Thinking twice, I think I'm going to reopen this. We would still need to speed up tests. Github is not, or will not be, unlimited either.

Is the issue speeding up the tests or speeding up the build?

raku/rakudoc travis tests have been disabled by travis due to negative credit balance.

Setting up new CI covered in #4195


update branch-deploy version and ensure it uses sha instead of ref

This pull request updates github/branch-deploy and ensures it uses sha instead of ref for added safety

.deploy

.deploy

.unlock


ldeep: 1.0.76 -> 1.0.77

Diff: https://github.com/franc-pentest/ldeep/compare/refs/tags/1.0.76...1.0.77
Changelog: https://github.com/franc-pentest/ldeep/releases/tag/1.0.77

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 363876

x86_64-linux

:white_check_mark: 2 packages built:

ldeep
ldeep.dist


Use new worker id on worker and client

What changes are proposed in this pull request?
Use new worker identity for worker registration and client-side cluster management.
Why are the changes needed?
To allow workers to use generated IDs that are not assigned by the master.
To allow clients to build its view of the cluster using more efficient and reliable worker identity implementation.
Does this PR introduce any user facing changes?
The worker identity is now persisted in etcd, if the worker uses etcd-based registration.

There are still some failed tests that need to be fixed.

This PR is now split into two part: add serialization for worker identity which is #18224 , and the rest of code that make use of the identity, which is this PR.
commit dcac2dc is the same as #18224. Please leave comments on this commit to that PR.

I don't have further questions. Please address all the comments and get approvals before merge.

alluxio-bot, merge this please


APPSRE-5552 allow the ocm-clusters integration to send slack messages

I will close this for a new implementation


implement phrase searches or something similar

Searching on drug dogs gives you results about dogs and results about drugs. There should be a way to create phrases to pass to elasticsearch. Maybe turning "drug dogs" into a boolean AND query could do it. Need to check ES docs on boolean queries and the analyzer settings, cause I think there was supposed to be an issue with it.
Related to #15

Some candidates for supporting a query syntax:

Query String Query
Simple Query String Query
URI search if I want to implement the query constructor

At the moment I write this, I'm having trouble getting a "Query String Query" to work…

See also #24 . We can use the haystack implementation of query_string so long as we map multi-word synonyms to a single phrase. For example, the following maps a number of multi-word synonyms to a single phrase for search:
"stop frisk,terry stop,pedestrian stop,stops,stop search,stop question frisk=>stopandfrisk",

This appears to work fine, and provides a potentially smaller mapping in the search index.

Code in 66f4e469e629d8e91ed5725589a26e441a138aae. Add an option to PliableSearchForm to run auto_query rather than a raw_search. Allow PliableSearchBackend to check query_string for a string that ran through AutoQuery.
This seems to give the ability to perform match searches on synonyms and query string syntax for advanced searches (but without synonyms). Form provides the switch for turning on the query string syntax.


Feature: Support for Portable Transactions

Implements support for portable transactions. For details, see #541.

hey @jimmarino, there are a few remarks/questions I had:

would it be possible to merge transaction-local-spi and transaction-spi (and later: transaction-distributed-spi)? seems more compact that way
transaction-local-core should then just be named transaction-local
personally, I'd prefer adding a stub for distributed transactions, even if it initially contains no code and every method throws an UnsupportedOperationException, as this indicates that we didn't just leave it out. Eventually, they will get filled, preferably by an Atomikos based impl.
Can you add an example how a complete vertical would look like? I'm thinking of a SQL-based AssetIndex that uses a Atomikos-backed data source. This would show which extensions are involved, and what an implementor of any particular storage system would have to do.
What do you think about an improvement to the configuration mechanism, where the configuration for each datasource could be namespaced and implicitly named, e.g. like this:edc.datasource.firstdatasource.user=...
edc.datasource.firstdatasource.password=...
//...
edc.datasource.seconddatasource.user=...
edc.datasource.seconddatasource.password=...

which would then automatically recognize that there are two datasources and configure them accordingly. Much like Spring does it.

hey @jimmarino, there are a few remarks/questions I had:

would it be possible to merge transaction-local-spi and transaction-spi (and later: transaction-distributed-spi)? seems more compact that way
transaction-local-core should then just be named transaction-local

+1 on both

personally, I'd prefer adding a stub for distributed transactions, even if it initially contains no code and every method throws an UnsupportedOperationException, as this indicates that we didn't just leave it out. Eventually, they will get filled, preferably by an Atomikos based impl.

Yes, I'm planning on doing that. I'll create a separate PR and do it after this one since this one is starting to cover a lot of ground.

Can you add an example how a complete vertical would look like? I'm thinking of a SQL-based AssetIndex that uses a Atomikos-backed data source. This would show which extensions are involved, and what an implementor of any particular storage system would have to do.

Good Idea.

What do you think about an improvement to the configuration mechanism, where the configuration for each datasource could be namespaced and implicitly named, e.g. like this:edc.datasource.firstdatasource.user=...
edc.datasource.firstdatasource.password=...
//...
edc.datasource.seconddatasource.user=...
edc.datasource.seconddatasource.password=...

I was thinking of the same exact scheme! I was planning on adding that with Atomikos.

Fine for me, an e2e example as Paul suggested would be great.

Let's put that e2e sample in a separate PR to keep the size of this one down. I'm also going to do the same for the global trx impl.

One little thing, it's not necessary to define test dependencies on the modules since they are already inherited from the root build file.

Yeah, thanks, copy-and-paste, I'll update now.

The failing tests are caused by another PR and are unrelated to this PR. Given that, I'm going to merge this as there are additional PRs waiting for this one.


Multi-select change "3 selection" placeholder

Hi Mr Edward, greetings from Colombia!
This is not a bug, I just want to know if is there a way to change  placeholder "3 selections" on multi-select dropdown when user has selected some items
http://prntscr.com/k8kj8w

+1 This would be very useful.

You can use the localization service to edit the text shown in this case. Let me know if that doesn't cover it however!

Hey @edcarroll:  Would be good to have this programmatic, no?  Similar to Selectize, where you could change the template vs. setting something that's semi-static like the localization service?  (unless I'm missing something, I don't know of a way to do this)


Connect simultaneously with Panasonic app

Connect simultaneously with Panasonic app
To use the native Panasonic application together with Aquarea Smart Cloud you only have to connect with two different emails.
From the native Panasonic application you create a guest account (you can even give it administrator privileges). Now you log in to Home Assistant with the second account.
There is no problem, what is done in one place is seen in a few seconds in the other. It doesn't disconnect. Perfect.
I have two Gmail emails, but I would like someone to check if it can be done with the same email but with two aliases.

Could you explain how to add a guest account?


Edits to TIL map description text

In drivermodule.R make minor text modification
from
"The table shows annotations of the TIL Map characteristics. The rightmost column gives access to the TILmaps superimposed on H&E images using the caMicroscope tool. Zoom in to initiate the view of TIL spatial clusters."
to
"The table shows annotations of the TIL Map characteristics. The rightmost column gives access to the TILmaps superimposed on H&E images using the caMicroscope tool. Zoom in to initiate the view of TIL spatial clusters.  Colors show regions determined by spatial clustering - a view without cluster colors is available through the question mark / magnifiying glass selector on upper left in caMicroscope."

Might be good to also include link to the TILmap manuscript
https://www.cell.com/cell-reports/fulltext/S2211-1247(18)30447-9
and to
http://quip1.bmi.stonybrook.edu:443/select.php

Done


2D particles are glitchy

Operating system or device - Godot version:
Mageia 6 x86_64 with proprietary NVIDIA drivers (375.66), Godot 3.0.alpha.build1 (f55211ae)
Issue description:
2D particles (at least in the Platformer demo) are rendered black:

Steps to reproduce:

Run the 2D platformer demo, shoot bullets, kill enemies

Link to minimal example project:
https://github.com/godotengine/godot-demo-projects/tree/master/2d/platformer

I've seen this also on KaOS Linux. With Mesa 17 drivers.

ah, this was working before and broke at some point...
On Wed, Jul 26, 2017 at 5:03 PM, Martin Novák<EMAIL_ADDRESS>wrote:

I've seen this also on KaOS Linux. With Mesa 17 drivers.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/9884#issuecomment-318166155,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z28aunrtJb-BU5u9yH1B8JFJ6Hstyks5sR5t4gaJpZM4OkPbR
.

I think the problem is in the particles settings but that demo is currently broken and can't open any scene.

The Particles2D has a material with color ramp with empty gradient.

I guess this is more about unpolished 2D Platformer demo in Godot 3.0, instead of Particles2D node bug. I've done small tweaks to the 2D Platformer demo, and it was as good as I would expect.

I guess this is more about less polished 2D Platformer demo in Godot 3.0, instead of Particles2D node bug. I've done small tweaks to the 2D Platformer demo, and it was as good as I would expect.

I guess this is more about less polished 2D Platformer demo in Godot 3.0, instead of Particles2D node bug. I've done small tweaks to the 2D Platformer demo, and it was as good as I would expect.

That's good news :) If you can make a PR to fix the demo, we can then close this issue.

If you can make a PR to fix the demo, we can then close this issue.

Indeed, that was my plan. :-)

Bump :)

Moved to https://github.com/godotengine/godot-demo-projects/issues/58.


refactor using a priority queue in query queue in order to implement priority management in the future

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall

run feut

run buildall

run buildall


watchtower: replace in-mem task queue with a disk over-flow queue

The Problem:
At the moment, updates are passed to the tower client using an unbounded
in-memory list. This is a problem for a few reasons:

If the client does not have any active towers available, then updates will
indefinitely be queued in memory.
If the queue is not empty at shutdown, then the client will hang for 10
seconds while it waits for the updates to be sent to a tower. This results in
the shutdown of the whole LND binary to be delayed. Not ideal.
Building on point 2 - if those updates dont get backed up to a tower within
those 10 seconds then they are lost forever!

This PR aims to fix all of these issues.
The Solution at a high level:
The main thing that this PR introduces is a disk overflow queue which replaces
the current in-memory queue. This queue ensures that there is a cap on the
number of updates that are held in memory and ensures reliable restarts so
that no updates are lost on restart. With this, the 10 second delay on shutdown
can also be removed.
The flow of the PR:

A test is added to demonstrate that updates in the queue are lost on restart.
By the end of the PR, this test will be changed to show that the updates are
no longer lost.
Add a new interface defining a generic DB Queue.
Add a Bbolt implementation of the generic DB queue.
Add an in-mem impl of the DB queue that can be used for tests.
Add a generic Disk Overflow Queue.
Replace the current in-mem task queue with the new Disk Overflow Queue.

Fixes #5983

@guggero: review reminder

@guggero  - im gonna re-request just to hear your thoughts on my latest comments (ie, no need for another full review yet)

@guggero: review reminder
@ellemouton, remember to re-request review from reviewers when ready

@guggero: review reminder
@bitromortac: review reminder

Note that I have now split this PR up a bit: all the commits aimed at letting only the backup ID be put on the task pipeline have now been split out into a separate PR. This PR now only adds the disk queue & swaps out the task pipeline for it

I also created this test case to make sure the start/stop works correctly under load, feel free to add:
	t.Run("start stop queue", func(t *testing.T) {
		t.Parallel()

		// Generate a lot of backup IDs that we want to add to the
		// queue one after the other.
		tasks := genBackupIDs(500_000)

		// Create a mock db that simulates the disk queue.
		db := wtmock.NewQueueDB[*wtdb.BackupID]()

		// New mock logger.
		log := newMockLogger(t.Logf)

		// Init the queue with the mock DB.
		q, err := NewDiskOverflowQueue[*wtdb.BackupID](
			db, DefaultMaxTasksInMemQueue, log,
		)
		require.NoError(t, err)

		// Start the queue.
		require.NoError(t, q.Start())

		// Initially there should be no items on disk.
		assertNumDisk(db, 0)

		// We need to guard the queue with a mutex since we will be
		// stopping, re-creating and starting the queue multiple times.
		var (
			queueMtx sync.RWMutex
			wg       sync.WaitGroup
			sendDone = make(chan struct{})
		)

		// This goroutine will constantly try to add new items to the
		// queue, even if the queue is stopped.
		wg.Add(1)
		go func() {
			defer wg.Done()
			defer close(sendDone)

			for idx := range tasks {
				queueMtx.RLock()
				err := q.QueueBackupID(tasks[idx])
				require.NoError(t, err)
				queueMtx.RUnlock()
			}
		}()

		// This goroutine will repeatedly stop, re-create and start the
		// queue until we're done sending items.
		wg.Add(1)
		go func() {
			defer wg.Done()

			numRestarts := 0
			for {
				select {
				case <-sendDone:
					t.Logf("Restarted queue %d times",
						numRestarts)

					return
				case <-time.After(50 * time.Millisecond):
				}

				queueMtx.Lock()
				require.NoError(t, q.Stop())
				q, err = NewDiskOverflowQueue[*wtdb.BackupID](
					db, DefaultMaxTasksInMemQueue, log,
				)
				require.NoError(t, err)
				require.NoError(t, q.Start())
				queueMtx.Unlock()

				numRestarts++
			}
		}()

		// We should be able to read all items from the queue, not being
		// affected by restarts, other than needing to wait for the
		// queue to be started again.
		results := make([]*wtdb.BackupID, 0, len(tasks))
		for i := 0; i < len(tasks); i++ {
			queueMtx.RLock()
			task := getNext(q, i)
			queueMtx.RUnlock()

			results = append(results, task)
		}
		require.Equal(t, tasks, results)

		require.NoError(t, q.Stop())
		wg.Wait()
	})

Thanks for the reviews @bitromortac & @guggero 🚀  and for the awesome test addition @guggero 🙏
took most of your suggestions, there are two regarding channel closing & buffering that I have not though - will discuss with you offline tomorrow regarding these 👍

Thanks for the very thorough initial review @guggero & @bitromortac  🎉
I think this is now ready for the next pass. Here are a few changes to be aware of:

The queue gets a namespace per session policy. In other words, if I have an anchors client and a non-anchors client, then there will be a queue per one of those clients.
The disk queue now has a PopUpTo(n int) []T method instead of a Pop() T method. This greatly increases the performance of reading items from the DB when there is lots of capacity in the memQueue channel.
The implementation of the bbolt queue is changes slightly: see the details in the PushHead impl.
I have also added an extra commit to make the MaxInMemTasks number configurable.

I have performed the following test locally to ensure things work as expected:

start a node with a small in-mem tasks size (4) And explicitly dont start a tower for the node to connect to.
open a non-anchor and anchor channel for the node & perform a couple of payments on each channel. Enough to ensure that an overflow to disk happens.
shut down the node & check the db to ensure that the 2 queues look as expected.
restart the node and this time, connect to a tower.
assert that all the updates have been made to the tower and the queues are now empty

@ellemouton I am finalizing #7612 atm. I am wondering if the new option wtclient.max-tasks-in-mem-queue=2000 is a default value or only an example? It is not mentioned in lnd --help as default. But there seems to be a default value in the code https://github.com/lightningnetwork/lnd/blob/cf1f44ab10c773ace4039f30c401daf8da47ed85/watchtower/wtclient/client.go#L57

good catch @feelancer21! opening a PR soon


.cabal: also use file-embed correctly for executable

Use the file-embed flag too for the executable target.
Before this it was not possible to disable -DFILE_EMBED completely.
Fixes #768
Thanks for the pull request!

If you care, my PR preferences are at https://github.com/ndmitchell/neil#contributions, but they're all guidelines, and I'm not too fussy - you don't have to read them.

Thanks!

Let me know if a release of this would be useful, or if its no big deal and can wait potentially a few weeks for the next one.

Let me know if a release of this would be useful, or if its no big deal and can wait potentially a few weeks for the next one.

I think it is fine to wait - I am just applying a small patch to Fedora to workaround it.


[CO #8][News] Add pagination on main page, and news sector of admin page

Add pagination of news on main page
Add pagination on news sector of admin page

Main page. Pagination doesn't display under the News block at wight 1024px


open terminal from SCM uses integrated terminal

Type: Bug
When right clicking on the SCM to open a terminal, vscode is opening the integrated teminal instead of the external one.
Doing the same from the file explorer tree, works as expected.
In the settings, this is set as   "terminal.external.osxExec": "iTerm.app",
This was working fine up to two weeks ago or so, in the nightly build.
VS Code version: Code - Insiders 1.80.0-insider (8c85702bca51b08005ada7fc4eaf52a61623b2b6, 2023-06-20T05:57:02.452Z)
OS version: Darwin arm64 22.6.0
Modes:

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
2, 2, 3

Memory (System)
32.00GB (0.13GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (18)

Extension
Author (truncated)
Version

vscode-base64
ada
0.1.0

inline-hasher
ale
1.1.0

spellright
ban
3.0.116

iam-policy
bin
0.0.1

better-toml
bun
0.3.2

auto-markdown-toc
hun
3.0.12

vscode-kubernetes-tools
ms-
1.3.13

indent-rainbow
ode
8.3.1

vscode-yaml-sort
Pas
6.5.3

vscode-yaml
red
1.13.0

vscode-gitweblinks
red
2.9.2

iam-legend
Seb
1.1.37

kubernator-vscode
smp
1.0.0

code-spell-checker
str
2.20.5

shellcheck
tim
0.32.6

sort-lines
Tyr
1.10.1

errorlens
use
3.11.1

vscode-icons
vsc
12.4.0

(1 theme extensions excluded)

The change in behaviour happened in this commit. There is a similar action in the Explorer and I see that there is a setting (terminal.explorerKind) that controls which action is being shown in the Explorer. I will adopt the same setting for the actions that are being shown in the "Source Control" viewlet.

@lszomoru let me know once this is in the nightly, and I can test if it is fixed .
thanks

VS Code Inciders version 1.81 (planned to be released later this week) will contain a new setting, terminal.sourceControlRepositoriesKind that users can control the menu items for opening the repository in integrated/external terminal.


Classification notebook

Before submitting (must do checklist)

[ ] Did you read the contribution guide?
[ ] Did you update the docs? We use Numpy format for all the methods and classes.
[ ] Did you write any new necessary tests?
[ ] Did you update the CHANGELOG?

Proposed Changes

Closing issues

Codecov Report

Merging #997 (d3e3b9f) into master (326b599) will decrease coverage by 18.25%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master     #997       +/-   ##
===========================================
- Coverage   85.24%   66.99%   -18.26%
===========================================
  Files         157      160        +3
  Lines        8264     8545      +281
===========================================
- Hits         7045     5725     -1320
- Misses       1219     2820     +1601

Impacted Files
Coverage Δ

etna/models/utils.py
11.11% <0.00%> (-88.89%)
:arrow_down:

etna/commands/__main__.py
0.00% <0.00%> (-87.50%)
:arrow_down:

etna/libs/pmdarima_utils/arima.py
17.30% <0.00%> (-82.70%)
:arrow_down:

etna/auto/pool/utils.py
25.00% <0.00%> (-75.00%)
:arrow_down:

etna/pipeline/assembling_pipelines.py
26.31% <0.00%> (-71.06%)
:arrow_down:

etna/analysis/outliers/hist_outliers.py
10.82% <0.00%> (-66.25%)
:arrow_down:

etna/auto/optuna/config_sampler.py
32.25% <0.00%> (-62.91%)
:arrow_down:

etna/clustering/distances/distance_matrix.py
32.83% <0.00%> (-58.21%)
:arrow_down:

etna/ensembles/direct_ensemble.py
38.18% <0.00%> (-57.48%)
:arrow_down:

etna/analysis/change_points_trend/search.py
42.85% <0.00%> (-57.15%)
:arrow_down:

... and 60 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

What do you mean? These are the segments with the good metrics which were predicted to be bad(so false positives). Table above(metrics.tail(10)) shows metrics for these segments

View entire conversation on ReviewNB


Network Monitor gives wrong rf/t values

The value it shows is about 0.4 of actual flow. All across the board.
Versions: Horizons Daybreaker 1.0.2 rftools 3.10

Yes, known issue.

Fixed in next version of RFTools


Profile page - GIthub icon background color not covering whole icon on hover

Describe the bug
When we hover over the github icon in profile page. The background color is not covering the  entire icon on hover.
To Reproduce
Steps to reproduce the behaviour:

Go to profile page.
Hover over the github icon below profile image
The background colour will not cover the icon on hover.

Expected behaviour
The background colour should cover the icon perfectly.

I added the following styles and it came out like what you see above.

Desktop (please complete the following information):

OS: MacOS
Browse: Chrome
Version 77

If it's something to be fixed. I would love to work on it.

Confirmed. Thanks for reporting. A PR is welcome.


ensure all jobs are a success

hmm, not sure I can get the behaviour I want, this will fail as is

https://github.com/twitch-rs/twitch_api/actions/runs/4908442076/jobs/8764206547 docs check should be ok, but on main they are not ok

interesting, it's running on 3a6c758b5501111dd474e153154b2e773e54474c, strange

Oh well, the CI check failed now instead of skipping

Before it skipped

made a request for this to be documented: https://github.com/orgs/community/discussions/46757#discussioncomment-5831752


[CI] Rewrite without lix/vshaxe-build, run on different OS and haxe versions

We're currently getting errors on all platforms (but different errors!) with nightlies since https://github.com/HaxeFoundation/haxe/pull/11477, and apparently windows has been broken for a while..
Still not sure what's happening exactly there..
Notes:

Also getting a random mac timeout on tests from time to time
Windows CI is quite bad at haxelib installs; cache helps there but might need to re-run CI when updating dependencies
Update haxelib dependencies with haxelib state save install.hxml
This might break workflow for people building vshaxe with vshaxe-build?

I don't mind getting rid of vshaxe-build.
dropping lix is a step backwards for me. not only does it break my workflow, we also lose the ability to lock local compilation to a specific Haxe version.

I don't mind keeping lix and non-lix in sync myself (and adding a CI check) but I do want a non-lix workflow to be available too

I'm fine with that.
I'll try to remember updating both when adding or upgrading dependencies. if that can be ensured via a CI check that would definitely help keeping them in sync.


Added Speed + Removed Junk + Easier Instructions

used Thread pool for downloading multiple chunks simultaneously
removed progress bar
new way to get URL

Should have reviewed changes. I'm reverting 65c3d9c, it's better for people who aren't as tech-savvy.


calc_error_radius is an overly complex and unnecessary calculation

https://github.com/askap-vast/vast-pipeline/blob/328e7a5419e12eb13cb302b2cb92b96e1895dca2/vast_pipeline/image/utils.py#L43
From a discussion with @mauch: The function seems to be doing calculations that make sense if your uncertainties are in image coordinates, not celestial. The numbers it produces are not correct for celestial coordinates in general. The correct calculation should be much simpler - just take the max of the ra and dec errors

Actually, upon further thought after our discussion - I realised the equivalent calculation would be to take sqrt(ra_err2 + dec_err2) since the calc_error_radius function is computing the vertices of a box surrounding the error ellipse rather than the edges.


Tools: RAS support for discrete FPGA devices.

Changes:
-Add RAS tool to  support discrete FPGA devices

Is this change the only thing necessary for compatibility with discrete platforms?


Imgui should not depend on platform specifc native libraries

Currently, the generated POM lists platform specific binaries as dependency (the LWJGL linux natives to be more specific). Since in reality imgui does not depend on a single platform this is bad behavior and unnecessary noise in the dependency graph.
I suggest making those binaries test dependencies and instruct users to add the following snippet (or something similiar) to their buildscripts:
import org.gradle.internal.os.OperatingSystem

apply plugin: 'java'
apply plugin: 'kotlin'

repositories {
    mavenCentral()
    maven { url "https://dl.bintray.com/kotlin/kotlin-dev" }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.github.kotlin-graphics:imgui:-SNAPSHOT'

    switch ( OperatingSystem.current() ) {
        case OperatingSystem.WINDOWS:
            ext.lwjglNatives = "natives-windows"
            break
        case OperatingSystem.LINUX:
            ext.lwjglNatives = "natives-linux"
            break
        case OperatingSystem.MAC_OS:
            ext.lwjglNatives = "natives-macos"
            break
    }

    // Look up which modules and versions of LWJGL are required and add setup the approriate natives.
    configurations.compile.resolvedConfiguration.getResolvedArtifacts().forEach {
        if (it.moduleVersion.id.group == "org.lwjgl") {
            runtime "org.lwjgl:${it.moduleVersion.id.name}:${it.moduleVersion.id.version}:${lwjglNatives}"
        }
    }
}

Hi,
yeah, I wanted to address this as well since some time, but never really did it.
It makes sense (although why the lwjgl linux native in particular?)
I just pushed and made jogl and lwjgl natives as test dependencies. I still need lwjgl on compile for the stb bindings, maybe this will change in the future when the original imgui will switch to trueType, but for the moment, unless I (or somebody else) finish that part (I attempt to port stb at begin and then I had to put that aside because of time) I see no other alternative.
About the instruct, would you mind writing them? I'll send you an invite

I assume that it was configured to use linux natives because that is what the Jitpack servers are running on. (Hence OperatingSystem.current() evaluated to linux and the generated POM only contained those dependencies.)
I made some minor changes in 8628903e887a2ab33acb995e45087824a734a6ad as well as in the wiki.

Yep, that makes sense.
Thanks for the changes, much better than I'd have done otherwise :)


Only print error during bootstrap if err

What this PR does / why we need it: Currently the error statement gets logged even if err == nil. Not super helpful.

@kubernetes/kube-deploy-reviewers

/assign @medinatiger

/lgtm


Code sample for guides

Most Chapters in guides have strict orders, for example, you should finish https://webpack.js.org/guides/getting-started/ first before https://webpack.js.org/guides/asset-management/, otherwise you don't have that code sample to work on.
Thus I think it would be great to provide users with code sample in the beginning of every guide, with which they can download and pick up any guides they want to learn, instead of learning guides one by one in a strict order. But that means we have more things to maintain in future, I'm not sure if it will worth it.

Can you please tell me Exactly what do we need to do here ?

Can you please tell me Exactly what do we need to do here ?

@sagar-barapatre I haven't yet figured out what to do here.

@sagar-barapatre I haven't yet figured out what to do here.

Yeah, not sure if worth it to maintain all that code.
Another solution is to explain that order at the very beginning of the guides, something like:

Code examples in the guides use previous guides examples, please make sure to follow the guides in order or if you follow one guide in particular have all the example code from previous guides.

We've introduced some examples running on stackblitz, see https://github.com/webpack/webpack.js.org/tree/master/examples. I think this can be closed now.


Is documentation out of date for cursor?

var Input = React.createClass({
  mixins: [mixins.branch],
  cursor: ['inputValue'],
  onChange: function(e) {
    var newValue = e.target.value;

    // If one edits the tree normally, i.e. asynchronously, the cursor will hop
    this.cursor.set(newValue);

    // One has to commit synchronously the update for the input to work correctly
    this.cursor.set(newValue);
    this.tree.commit();
  },
  render: function() {
    return <input onChange={this.onChange} value={this.state.inputValue} />;
  }
});

It looks to me like I can't use cursor either as a PropType or a value on the context object. Is the documentation out of date? cursors works fine but I was just curious.

Hello @briandipalma. The cursor property is indeed obsolete now and has been dropped.  The documentation is indeed out of date and I should fix it.


Issue with labelled math

Priority: High
There is an issue with labelled math where the label proceeds the equation

While this helps with the in text linking to the equation (disappearing issue) -- it doesn't align nicely with the equation.

@mmcky fixed in this PR: https://github.com/QuantEcon/quantecon-book-theme/pull/18