Server doesn't automatically reboot after an update

Hi,
We have 1 server inside our cluster that doesn't update to the last version of CoreOS automatically. In fact it seems to have downloaded the version and to have set the reboot flag but then the reboot never happen. Even after a manual reboot the version of CoreOS is not updated. Can you provide more information on how the reboot works in details?  What are those boot flag and how the 2 partition swap and when ?
Here are our update_engine logs
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: Is Delta Payload = 0
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: Max Failure Count Per Url = 10
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: Disable Payload Backoff = 1
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: [1209/180702:INFO:payload_state.cc(377)] Payload Attempt Number = 1
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: [1209/180702:INFO:payload_state.cc(400)] Current URL Index = 0
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: [1209/180702:INFO:payload_state.cc(421)] Current URL (Url0)'s Failure Count = 0
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: [1209/180702:INFO:payload_state.cc(448)] Backoff Expiry Time = 1/1/1601 0:00:00 GMT
Dec 09 18:07:02 ip-10-0-0-10 update_engine[496]: [1209/180702:INFO:update_check_scheduler.cc(84)] Next update check in 10m1s
Dec 09 18:07:02 ip-10-0-0-10 systemd[1]: Started Update Engine.
Dec 09 18:07:47 ip-10-0-0-10 update_engine[496]: [1209/180747:INFO:update_attempter.cc(748)] Updating boot flags...
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:prefs.cc(53)] certificate-report-to-send-update not present in /var/lib/update_engine/prefs
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:prefs.cc(53)] certificate-report-to-send-download not present in /var/lib/update_engine/prefs
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:WARNING:libpolicy.cc(29)] Could not load the device policy file.
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(217)] No device policies/settings present.
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(295)] Scattering disabled since scatter factor is set to 0
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:omaha_request_params.cc(87)] Disabling deltas as a channel change is pending
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(262)] update_disabled = false, target_version_prefix = , scatter_factor_in_seconds = 0s
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(269)] Wall Clock Based Wait Enabled = 0, Update Check Count Wait Enabled = 0, Waiting Period = 0s
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(738)] Already updated boot flags. Skipping.
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:update_attempter.cc(922)] Scheduling an action processor start.
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:action_processor.cc(36)] ActionProcessor::StartProcessing: OmahaRequestAction
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:omaha_request_action.cc(292)] Posting an Omaha request to https://public.update.core-os.net/v1/update/
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:omaha_request_action.cc(293)] Request: <?xml version="1.0" encoding="UTF-8"?>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <request protocol="3.0" version="CoreOSUpdateEngine-<IP_ADDRESS>" updaterversion="CoreOSUpdateEngine-<IP_ADDRESS>" installsource="scheduler" ismachine="1">
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <os version="Chateau" platform="CoreOS" sp="444.5.0_x86_64"></os>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <app appid="{e96281a6-d1af-4bde-9a0a-97b76e56dc57}" version="444.5.0" track="stable" from_track="stable" bootid="{307fcd47-26ac-4aa1-a03b-ee7c5adfd0ad}" oem="ami" machineid="30763c7f10a149ed9e7747deba936b1b" lang="en-US" board="amd64-usr" hardware_class="" delta_okay="false" >
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <ping active="1"></ping>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <updatecheck targetversionprefix=""></updatecheck>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: <event eventtype="3" eventresult="2" previousversion=""></event>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: </app>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: </request>
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:libcurl_http_fetcher.cc(62)] Starting/Resuming transfer
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:libcurl_http_fetcher.cc(51)] We are connected via Ethernet, Updates allowed: Yes
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:libcurl_http_fetcher.cc(185)] Setting up curl options for HTTPS
Dec 09 18:17:03 ip-10-0-0-10 update_engine[496]: [1209/181703:INFO:libcurl_http_fetcher.cc(445)] Setting up timeout source: 1 seconds.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:libcurl_http_fetcher.cc(258)] HTTP response code: 200
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:libcurl_http_fetcher.cc(315)] Transfer completed (200), 267 bytes downloaded
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:omaha_request_action.cc(615)] Omaha request response: <?xml version="1.0" encoding="UTF-8"?>
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: <response protocol="3.0" server="update.core-os.net">
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: <daystart elapsed_seconds="0"></daystart>
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: <app appid="e96281a6-d1af-4bde-9a0a-97b76e56dc57" status="ok">
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: <updatecheck status="noupdate"></updatecheck>
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: </app>
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: </response>
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:omaha_request_action.cc(433)] No update.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:action_processor.cc(82)] ActionProcessor::ActionComplete: finished OmahaRequestAction, starting OmahaResponseHandlerAction
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:omaha_response_handler_action.cc(36)] There are no updates. Aborting.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:action_processor.cc(68)] ActionProcessor::ActionComplete: OmahaResponseHandlerAction action failed. Aborting processing.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:action_processor.cc(73)] ActionProcessor::ActionComplete: finished last action of type OmahaResponseHandlerAction
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:update_attempter.cc(531)] Processing Done.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:update_attempter.cc(582)] No update.
Dec 09 18:17:04 ip-10-0-0-10 update_engine[496]: [1209/181704:INFO:update_check_scheduler.cc(84)] Next update check in 43m42s

I am experiencing the same problem: my server have coreos 522.6.0 installed and it does not install 557.2.0. An update is performed after command:
update_engine_client -update

@mamciek does your host have etcd running on it? If so check locksmith status via: locksmithctl status as it may have a stale lock. If that is the case you can remove it with locksmithctl unlock <id>. If the host does not have etcd running check locksmithd's status and log: systemctl status locksmithd and journalctl -b -u locksmithd

I'm having the same problem as @mamciek. Running version 607.0.0, and it's not auto-updating to 633.1.0. It doesn't see the new version.
However when running "update_engine_client -update", it updates immediately.
core@mysql ~ $ cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=607.0.0
VERSION_ID=607.0.0
BUILD_ID=
PRETTY_NAME="CoreOS 607.0.0"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"

core@mysql ~ $ cat /etc/coreos/update.conf
GROUP=stable

core@mysql ~ $ sudo systemctl status update-engine -l
● update-engine.service - Update Engine
   Loaded: loaded (/usr/lib64/systemd/system/update-engine.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2015-04-16 12:52:43 EST; 25min ago
 Main PID: 6559 (update_engine)
   CGroup: /system.slice/update-engine.service
           └─6559 /usr/sbin/update_engine -foreground -logtostderr -no_connection_manager

Apr 16 12:56:52 mysql.novalocal update_engine[6559]: </app>
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: </response>
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:omaha_request_action.cc(406)] No update.
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:action_processor.cc(82)] ActionProcessor::ActionComplete: finished OmahaRequestAction, starting OmahaResponseHandlerAction
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:omaha_response_handler_action.cc(36)] There are no updates. Aborting.
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:action_processor.cc(68)] ActionProcessor::ActionComplete: OmahaResponseHandlerAction action failed. Aborting processing.
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:action_processor.cc(73)] ActionProcessor::ActionComplete: finished last action of type OmahaResponseHandlerAction
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:update_attempter.cc(460)] Processing Done.
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:update_attempter.cc(508)] No update.
Apr 16 12:56:52 mysql.novalocal update_engine[6559]: [0416/125652:INFO:update_check_scheduler.cc(82)] Next update check in 43m27s

core@mysql ~ $ locksmithctl status
Available: 1
Max: 1

core@mysql ~ $ journalctl -b -u locksmithd
-- Logs begin at Thu 2015-04-16 12:12:23 EST, end at Thu 2015-04-16 13:18:37 EST. --
Apr 16 12:14:24 mysql.novalocal systemd[1]: Starting Cluster reboot manager...
Apr 16 12:14:24 mysql.novalocal systemd[1]: Started Cluster reboot manager.
Apr 16 12:14:25 mysql.novalocal locksmithd[560]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"
Apr 16 12:14:26 mysql.novalocal systemd[1]: Stopping Cluster reboot manager...
Apr 16 12:14:26 mysql.novalocal locksmithd[560]: Received interrupt/termination signal - shutting down.
Apr 16 12:14:26 mysql.novalocal systemd[1]: Starting Cluster reboot manager...
Apr 16 12:14:26 mysql.novalocal systemd[1]: Started Cluster reboot manager.
Apr 16 12:14:26 mysql.novalocal locksmithd[674]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"
Apr 16 12:22:05 mysql.novalocal locksmithd[674]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_CHECKING_FOR_UPDATE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:22:07 mysql.novalocal locksmithd[674]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_IDLE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:35:44 mysql.novalocal systemd[1]: Stopping Cluster reboot manager...
Apr 16 12:35:44 mysql.novalocal locksmithd[674]: Received interrupt/termination signal - shutting down.
Apr 16 12:35:44 mysql.novalocal systemd[1]: Starting Cluster reboot manager...
Apr 16 12:35:44 mysql.novalocal systemd[1]: Started Cluster reboot manager.
Apr 16 12:35:44 mysql.novalocal locksmithd[4238]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"
Apr 16 12:46:35 mysql.novalocal locksmithd[4238]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_CHECKING_FOR_UPDATE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:46:37 mysql.novalocal locksmithd[4238]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_IDLE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:48:48 mysql.novalocal systemd[1]: Stopping Cluster reboot manager...
Apr 16 12:48:48 mysql.novalocal locksmithd[4238]: Received interrupt/termination signal - shutting down.
Apr 16 12:48:48 mysql.novalocal systemd[1]: Starting Cluster reboot manager...
Apr 16 12:48:48 mysql.novalocal systemd[1]: Started Cluster reboot manager.
Apr 16 12:48:48 mysql.novalocal locksmithd[6128]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"
Apr 16 12:51:45 mysql.novalocal locksmithd[6128]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_CHECKING_FOR_UPDATE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:51:46 mysql.novalocal locksmithd[6128]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_IDLE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:52:43 mysql.novalocal systemd[1]: Stopping Cluster reboot manager...
Apr 16 12:52:43 mysql.novalocal locksmithd[6128]: Received interrupt/termination signal - shutting down.
Apr 16 12:52:43 mysql.novalocal systemd[1]: Starting Cluster reboot manager...
Apr 16 12:52:43 mysql.novalocal systemd[1]: Started Cluster reboot manager.
Apr 16 12:52:43 mysql.novalocal locksmithd[6561]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"
Apr 16 12:56:50 mysql.novalocal locksmithd[6561]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_CHECKING_FOR_UPDATE" NewVersion=<IP_ADDRESS> NewSize=0
Apr 16 12:56:52 mysql.novalocal locksmithd[6561]: LastCheckedTime=0 Progress=0 CurrentOperation="UPDATE_STATUS_IDLE" NewVersion=<IP_ADDRESS> NewSize=0

@cdwertmann we are currently rolling out 633.1.0 to stable, which means we are rate limiting the updates. When you run update_engine_client -update, it forces an update, ignoring the rate-limiting.

I had this issue on 633.1.0 (stable channel). 1 out of 5 nodes just would not see the 647.0.0 update, even after rebooting. Running update_engine_client -update forced the host to see, download and apply (via auto reboot) the 647.0.0 update. Didn't see anything in the logs that was useful to me.
Strange...

@cgswong This is working as intended. Read my previous comment.

@crawford I'm not understanding what you mean by 'rate limiting'. Can you clarify please? Why would this be intentional so 1 out of 5 hosts do not see the new update, and refuse to update even after multiple reboots and a few days, and nothing in the logs?

Rather than updating every single machine in the span of an hour, we slowly roll updates so that if there is a problem we can limit the damage.
In your example, the other 4 machines in your cluster will eventually get the update (it may take a couple of days). The rate-limiting is implemented server side and appears, to your machine, as a lack of an available update. As a result, you won't see anything in the logs.

@crawford Thanks for the quick reply and excellent explanation! I think there should be something in the logs to say it's being rate limited, and also have the rate limit be user modifiable.

If you need complete control over updates to CoreOS, you'll have to subscribe to CoreOS Managed Linux to get your own instance of our update service.


Code snippets with tab size 4 by default

Came out as the result of the conversation here: https://pivotal.slack.com/archives/C064D3HPZ/p1574414987039400

LGTM. We might even want to go down to 2 spaces?

What happens if you use tabsize? Does it override this CSS?

Yes, if you use tabsize in your MD it'd override the CSS.

In the asciidoc you mean? Yes, it overrides, or rather invalidates the CSS, since it just formats everything with spaces. In the light if the accessibility argument, that probably means we should translate all guides to tabs.

The asciidoc - correct.

Thanks Dave. That is my plan regarding the guides.


[Feature request]: Visualize resource metrics and predictions

Is your feature request related to a problem? Please describe
We have started on a frontend page to display dryRun resource consumption metrics and scaling predictions.
projects/analytics3
Describe the solution you'd like
A page in the frontend for displaying analytics:

[x] Display pipeline graph
[ ] Graphs showing resource consumption as function of dryRun for step duration, cpu consumption, memory usage
[ ] Aggregated metrics for resource consumption (per dryRun step, and for entire pipeline)
[ ] Enable the user to change the parameters for the predictions (file size, ++ (if multivariate regression is enabled))
[ ] Display resource predictions

Stuff is hardcoded at the moment.


Async cache upload

Right now the upload of the cache happens at the very end. I wonder if cache upload could be done async as things get built, kind of like what cachix can do. Now I think it adds some extra time to do the actual upload as it doesn't do anything else, just waits to complete the upload.
A non-blocking post-build hook perhaps or something watching the store, which I guess already is in place to know which paths to upload in the end.

My gut feeling tells me that this could cut out another 30% on cycle time.


Queries with "like" are failing with AssertionError

Getting the below error when using "like" in queries with some pattern '%abc/def%' When we do the same query with like '%' or like '%abc%' works fine. There is no error from clickhouse for any patterns, same query runs in clickhouse-cli .
Query 100503: <class 'AssertionError'>  Traceback (most recent call last):    File "/app/superset/sql_lab.py", line 273, in execute_sql_statement      db_engine_spec.execute(cursor, sql, async_=True)    File "/app/superset/db_engine_specs/base.py", line 1261, in execute      raise cls.get_dbapi_mapped_exception(ex)    File "/app/superset/db_engine_specs/base.py", line 1259, in execute      cursor.execute(query)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/dbapi/cursor.py", line 45, in execute      query_result = self.client.query(operation, parameters)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/driver/httpclient.py", line 172, in query      data_result = self.parse_response(response.content, use_none)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/driver/native.py", line 39, in parse_response      column, loc = col_type.read_native_column(source, loc, num_rows, use_none=use_none)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/datatypes/base.py", line 109, in read_native_column      loc = self.read_native_prefix(source, loc)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/datatypes/base.py", line 96, in read_native_prefix      assert v == low_card_version  AssertionError  2022-07-06 10:08:06,920:ERROR:superset.sql_lab:Query 100503: <class 'AssertionError'>  Traceback (most recent call last):    File "/app/superset/sql_lab.py", line 273, in execute_sql_statement      db_engine_spec.execute(cursor, sql, async_=True)    File "/app/superset/db_engine_specs/base.py", line 1261, in execute      raise cls.get_dbapi_mapped_exception(ex)    File "/app/superset/db_engine_specs/base.py", line 1259, in execute      cursor.execute(query)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/dbapi/cursor.py", line 45, in execute      query_result = self.client.query(operation, parameters)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/driver/httpclient.py", line 172, in query      data_result = self.parse_response(response.content, use_none)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/driver/native.py", line 39, in parse_response      column, loc = col_type.read_native_column(source, loc, num_rows, use_none=use_none)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/datatypes/base.py", line 109, in read_native_column      loc = self.read_native_prefix(source, loc)    File "/app/superset_home/.local/lib/python3.8/site-packages/clickhouse_connect/datatypes/base.py", line 96, in read_native_prefix      assert v == low_card_version  AssertionError  [SupersetError(message='clickhousedb error: ', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'ClickHouse Connect', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]  Traceback (most recent call last):    File "/app/superset/views/base.py", line 208, in wraps      return f(self, *args, **kwargs)    File "/app/superset/utils/log.py", line 244, in wrapper      value = f(*args, **kwargs)    File "/app/superset/views/core.py", line 2415, in sql_json      command_result: CommandResult = command.run()    File "/app/superset/sqllab/command.py", line 114, in run      raise ex    File "/app/superset/sqllab/command.py", line 98, in run      status = self._run_sql_json_exec_from_scratch()    File "/app/superset/sqllab/command.py", line 151, in _run_sql_json_exec_from_scratch      raise ex    File "/app/superset/sqllab/command.py", line 146, in _run_sql_json_exec_from_scratch      return self._sql_json_executor.execute(    File "/app/superset/sqllab/sql_json_executer.py", line 111, in execute      raise SupersetErrorsException(  superset.exceptions.SupersetErrorsException: [SupersetError(message='clickhousedb error: ', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'ClickHouse Connect', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]  2022-07-06 10:08:06,941:WARNING:superset.views.base:[SupersetError(message='clickhousedb error: ', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'ClickHouse Connect', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]

What is the actual query you are running?  Can you run the same using clickhouse-client using the JSON output format and show the column types returned?  This is a low level error in reading LowCardinality strings?  Can you create a small reproducible example?

These are the returned types
field1 String field2 LowCardinality(String) field3 LowCardinality(String) DEFAULT '' field4 LowCardinality(String) DEFAULT ''
and the issue is with field4 when we do like queries on it . Please note that when given field4 LIKE '%' or field4 LIKE '%abc%' , it works fine, the issue is only when a special character comes I think, because field4 LIKE '%abc/cd%' fails.

I cannot reproduce this locally with any variant of LIKE.  What ClickHouse version are you using?  Are you using any aggregations in your query?

Clickhouse version 21.3
Yes we are doing group by
But we are able to execute the same query through clickhouse-client

Okay, it may be related to the older ClickHouse version which is out of support and not tested with ClickHouse Connect.  We only test with supported LTS versions starting with 21.8.  I will do some limited tests against 21.3 to try to reproduce.

Unable to reproduce, no further information provided.


Add pre_commit framework checking and upgrade python syntax to latest

I observed these syntax warnings in https://slicer.cdash.org/test/22434929 where Slicer is using Python 3.9 now.
/Volumes/D/P/S-0-E-b/ShapeVariationAnalyzer-build/inner-build/lib/Slicer-5.1/qt-scripted-modules/shapepcalib.py:811: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if (len(y_design) is 0):
/Volumes/D/P/S-0-E-b/ShapeVariationAnalyzer-build/inner-build/lib/Slicer-5.1/qt-scripted-modules/shapepcalib.py:820: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if len(y_design) is not 0:
/Volumes/D/P/S-0-E-b/ShapeVariationAnalyzer-build/inner-build/lib/Slicer-5.1/qt-scripted-modules/cpns/cpns.py:57: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if len(self.fileList) is 0:

The syntax warning in question started as of Python 3.8.
https://docs.python.org/3.8/whatsnew/3.8.html#changes-in-python-behavior

The compiler now produces a SyntaxWarning when identity checks (is and is not) are used with certain types of literals (e.g. strings, numbers). These can often work by accident in CPython, but are not guaranteed by the language spec. The warning advises users to use equality tests (== and !=) instead. (Contributed by Serhiy Storchaka in bpo-34850.)

cc: @jcfr

@jcfr Are you able to help with the integration of this PR? Thanks!


Pydantic-like Validation module proposal

Moschitta Framework Module Proposal
Overview and Objectives
Module Name: moschitta-validation
Overview:
The moschitta-validation module aims to provide robust data validation and serialization functionalities, similar to Pydantic. This module will allow developers to define data models with built-in validation, ensuring data integrity and consistency across the application.
Objectives:

Data Validation: Automatically validate data against defined models.
Serialization: Serialize and deserialize data easily, supporting common formats like JSON.
Type Safety: Utilize Python type hints for clear, concise, and error-free code.
Integration: Seamlessly integrate with other Moschitta modules (e.g., moschitta-routing, moschitta-auth).

Directory Structure
moschitta-validation/
├── LICENSE
├── README.md
├── pyproject.toml
├── moschitta_validation/
│   ├── __init__.py
│   └── validation.py
└── tests/
    └── test_validation.py

Implementation Details
Base Classes and OOP Design
The moschitta-validation module will use a base class BaseModel for all data models. This class will handle validation and serialization logic.
# moschitta_validation/validation.py

from typing import Any, Dict, Type, TypeVar, Union
import json

T = TypeVar('T', bound='BaseModel')

class BaseModel:
    def __init__(self, **data: Any):
        self.__dict__.update(data)
        self.validate()

    @classmethod
    def parse_obj(cls: Type[T], obj: Dict[str, Any]) -> T:
        return cls(**obj)

    @classmethod
    def parse_raw(cls: Type[T], raw_data: str) -> T:
        return cls.parse_obj(json.loads(raw_data))

    def json(self) -> str:
        return json.dumps(self.__dict__)

    def dict(self) -> Dict[str, Any]:
        return self.__dict__

    def validate(self) -> None:
        # Implement validation logic here
        pass

Decorators
Decorators will be provided to define fields and their validation rules.
# moschitta_validation/fields.py

def field(**kwargs):
    def decorator(func):
        func._field_metadata = kwargs
        return func
    return decorator

Type Hints and Docstrings
All classes and methods will include type hints and docstrings to ensure clear documentation and code readability.
# moschitta_validation/validation.py

class BaseModel:
    def __init__(self, **data: Any):
        """
        Initialize a new model instance with the given data.

        :param data: Key-value pairs representing the model fields.
        """
        self.__dict__.update(data)
        self.validate()

    @classmethod
    def parse_obj(cls: Type[T], obj: Dict[str, Any]) -> T:
        """
        Parse a dictionary into a model instance.

        :param obj: Dictionary containing data to be parsed.
        :return: An instance of the model.
        """
        return cls(**obj)

    @classmethod
    def parse_raw(cls: Type[T], raw_data: str) -> T:
        """
        Parse a JSON string into a model instance.

        :param raw_data: JSON string containing data to be parsed.
        :return: An instance of the model.
        """
        return cls.parse_obj(json.loads(raw_data))

    def json(self) -> str:
        """
        Serialize the model instance to a JSON string.

        :return: JSON string representation of the model.
        """
        return json.dumps(self.__dict__)

    def dict(self) -> Dict[str, Any]:
        """
        Convert the model instance to a dictionary.

        :return: Dictionary representation of the model.
        """
        return self.__dict__

    def validate(self) -> None:
        """
        Validate the model fields. Override this method to implement custom validation.
        """
        pass

Asynchronous Operations
While the core validation logic is synchronous, the module will support asynchronous validation where necessary, especially for fields that require asynchronous checks (e.g., database lookups).
# moschitta_validation/validation.py

import asyncio

class AsyncBaseModel(BaseModel):
    async def validate(self) -> None:
        """
        Asynchronously validate the model fields. Override this method to implement custom validation.
        """
        await asyncio.sleep(0)  # Simulate async validation

Example Usage
# example_usage.py

from moschitta_validation import BaseModel

class Item(BaseModel):
    name: str
    description: str
    price: float

item = Item(name="Sample Item", description="A sample item", price=19.99)
print(item.json())

Documentation and Testing
Documentation:

README.md: Provide an overview, installation instructions, usage examples, and API reference.
Docstrings: Ensure all classes, methods, and functions have comprehensive docstrings.

Testing:

Test Cases: Write tests for all major functionalities using pytest.
Coverage: Ensure comprehensive test coverage for validation, serialization, and error handling.

# tests/test_validation.py

import pytest
from moschitta_validation import BaseModel

def test_model_initialization():
    class Item(BaseModel):
        name: str
        description: str
        price: float

    item = Item(name="Sample Item", description="A sample item", price=19.99)
    assert item.name == "Sample Item"
    assert item.description == "A sample item"
    assert item.price == 19.99

def test_model_serialization():
    class Item(BaseModel):
        name: str
        description: str
        price: float

    item = Item(name="Sample Item", description="A sample item", price=19.99)
    assert item.json() == '{"name": "Sample Item", "description": "A sample item", "price": 19.99}'

By following this proposal, the moschitta-validation module will provide a powerful, flexible, and easy-to-use data validation and serialization solution for the Moschitta Framework, ensuring consistency and reliability across applications.

Critique of moschitta-validation Module Proposal
Title: Improvements Needed for moschitta-validation Module Proposal
Description:
While the moschitta-validation module proposal outlines a solid foundation for data validation and serialization, several areas need enhancement to align with best practices and the overarching goals of the Moschitta Framework.
Issues:

Validation Logic Needs Detail:
The proposal mentions a validate method but does not provide concrete implementation details. We need to outline specific validation rules, error handling, and how custom validators can be integrated.
Suggested Solution: Define a set of built-in validators (e.g., StringField, NumberField) with clear rules. Provide examples of custom validators and how they can be added to models.

Lack of Comprehensive Error Handling:
Error handling in the BaseModel class is vague. It's crucial to have a robust error management system to catch and report validation issues effectively.
Suggested Solution: Introduce a ValidationError exception class. Ensure the validate method raises detailed exceptions that include the field name and error message.

Asynchronous Validation Example Incomplete:
The asynchronous validation example is minimal and does not demonstrate practical use cases. More detailed scenarios, especially involving I/O operations, should be provided.
Suggested Solution: Provide an example where asynchronous validation involves checking data against a database or an external API.

Decorator Functionality Not Fully Explained:
The field decorator is introduced without a thorough explanation of its usage and purpose. More context is needed on how this integrates with the validation process.
Suggested Solution: Enhance the documentation with examples of how the field decorator is used in defining model fields and specifying validation constraints.

Serialization to Multiple Formats:
The current implementation supports JSON, but modern applications often require serialization to other formats like XML or YAML.
Suggested Solution: Implement and document support for additional serialization formats, providing flexibility for different use cases.

Lack of Detailed Testing Strategy:
The testing section lacks depth, especially regarding edge cases and integration tests.
Suggested Solution: Expand the testing strategy to cover various scenarios, including boundary cases, invalid data, and integration with other Moschitta modules.

By addressing these issues, the moschitta-validation module can provide a more robust and comprehensive solution, enhancing its reliability and ease of use within the Moschitta Framework.


Invalid Session ID calculation

I took these from a real CouchDB:

session id
username
salt
CouchDB secret
timestamp

and pasted it into an extra test – it fails :(
This blocks us from releasing new Hoodie – please help!

@christophwitzko I don’t know what happened. I tested this once by copy & pasting the calculated session ID into my CouchDB cookie – and it worked. Now it doesn’t anymore and I don’t understand why. Could you have a look? This is blocking a Hoodie pre-release right now, it’s the last blocking bit

To be more precise, the original test from @janl’s case discussed at https://gist.github.com/janl/4583f5eb4c0d8216cc5f passes. But with my CouchDB (1.6.1) it does not

Looks like CouchDB 1.5 has the shorter salt like in Jan’s example. I’ve added another test for CouchDB 1.5, but it also fails.
Oh maaaaan, so close :(

@gr2m you confuse order secret with usersalt concatenation:
%% https://github.com/apache/couchdb-couch/blob/master/src/couch_httpd_auth.erl#L317
Cookie = cookie_auth_cookie(Req, ?b2l(UserName), <<Secret/binary, UserSalt/binary>>, CurrentTime),

You did:
var hmac = crypto.createHmac('sha1', usersalt + serversecret).update(sessionData);

:facepalm: Thanks so much @kxepal, that was it. THANKS SO MUCH!!!

Nice!

@gr2m you're welcome (: Have a good holidays!


Implement browser.close

[x] Mapper Implementation
[x] Mapper Tests
[x] WPT tests

I believe this is fully done

There are still no WPT test, but I am not sure how to verify that the browser was killed and also how it will affect other test that follow.

FYI therefore we have two Firefox specific tests because there is not a good and easy cross-browser solution yet. We use custom fixtures which actually check the browser's process id, which we send by default as part of the response's capabilities for the New Session command.


Simplify and unify type checks

This introduces the [[PerformTypeCheck]] internal method, and provides explanations for its implementation on all provided types.
At the same time, structural type checking is removed, as it doesn't need to be part of this proposal.

@lukewagner I pushed a new commit, let me know what you think.


TAB-8226 upgrade jackson databind

I'm about to commit this change for my system-test fixes, so close and delete this one.


forecast with Kalman

I have the following data:
           ds	        unique_id	 y
0	2003-01-01	Bigeye Tuna	1561.149362
1	2003-01-01	Bluefin Tuna	9619.000000
2	2003-01-01	Southern Bluefin Tuna	3656.876812
3	2003-02-01	Bigeye Tuna	1507.934269
4	2003-02-01	Bluefin Tuna	8970.000000

How can I predict, for example, the date?
2003-02-02
2003-02-03
2003-02-04
.
.
.
this my Code
groups = tuna.groupby('unique_id')
Crear un filtro de Kalman
kf = KalmanFilter(transition_matrices=[1],
observation_matrices=[1],
initial_state_mean=0,
initial_state_covariance=1,
observation_covariance=1,
transition_covariance=0.01)
Aplicar el filtro de Kalman a cada grupo de datos
filtered_data = []
for unique_id, group in groups:
    measurements = np.asarray(group['y'])  # Convertir las mediciones a un arreglo NumPy
    kf = kf.em(measurements, n_iter = 500)
    filtered_state_means, filtered_state_covariances = kf.filter(measurements)
    smoothed_state_means, smoothed_state_covariances = kf.smooth(measurements)
    group['filtered_y'] = filtered_state_means
    group['filtered_y_smmoth'] = smoothed_state_means
    filtered_data.append(group)

#### Combinar los resultados filtrados en un solo DataFrame
filtered_data = pd.concat(filtered_data)

#### print
filtered_data

I don't think pykalman has a forecast option, but if you are using sktime, you can pipeline a the kalman transformers with any forecaster, that results in first applying smoothing and then the forecast on the smoothed/denoised time series.
E.g., KalmanFilterTransformerPK(params) * ARIMA(more_params) is a valid forecaster.

Thanks Fran, I'm going to try it. I didn't know that Sktime had a function to create a Kalman filter, is there a guide for that?

yes, it has interfaces to two packages actually, pykalman (now forked in sktime due to lapse of maintenance in the primary project, see #109), and filterpy (not sure about maintenance statu sthere).
The estimators are KalmanFilterTransformerPK and KalmanFilterTransformerFP, you can combine both with arbitrary forecasters.
The references would be the tutorials for forecasting, transformations, and pipelines with the two, just substitute the kalman filter transformations when you read "transformer" or "transformation".
Let me know if you need further pointers.


Possible typo in ToH-5

I think the plus sign in the example where router parameters are fed into the service is a typo. Does this sort of thing require individual PRs? I don't really know the conventions here.
ngOnInit(): void {   this.route.params.forEach((params: Params) => {     let id = **+**params['id'];     this.heroService.getHero(id)       .then(hero => this.hero = hero);   }); }

Actually it is not a typo. It converts the id into a number as it comes from router parameters.


Use @ConfigMapping annotation instead legacy @ConfigRoot

We have a migration guide to 3.14 and actually we are using <compilerArgs><arg>-AlegacyConfigRoot=true</arg></compilerArgs>to build the extension, see #794.
The idea is to use the @ConfigMapping instead the legacy @ConfigRootannotation.

Hey @mcruzdev, I can try to work on this one!

Can you assign to me? I can handle it.


feat: allow to merge conf with defaults values

Codecov Report

Merging #33 (fa1e952) into main (8ca6f1f) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #33   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           28        28
  Lines          581       591   +10
=========================================
+ Hits           581       591   +10

Impacted Files
Coverage Δ

index.js
100.00% <100.00%> (ø)

src/utils.js
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8ca6f1f...fa1e952. Read the comment docs.


Update dotnetcore instructions

Base image for aspnetcore were migrated as of 2.1 per https://github.com/aspnet/Announcements/issues/298
Further reading reference to Docker Hub updated to /dotnet
Add link to docs.microsoft.com

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Thanks for contributing @spboyer - left one question; also looks like CI is hanging (GitHub had some outage yesterday, possibly related) if you update the PR that should trigger CI again, hopefully allowing me to press the merge button

Netlify is working for new prs, but I'm still trying to figure out how to get them to return to existing pull requests so I can merge them. I will merge this as soon as we get it working.


Withdraw collateral

//withdraw collateral
function withdrawEther(uint256 _amount) public {
uint256 userMargin = getUserMargin(msg.sender);
uint256 totalPositionNotional = totalPositionNotional(msg.sender);
require(
totalPositionNotional == 0 || userMargin > 60,
"You cannot withdraw because your margin rate is the lower than saveMargin level"
);
require(
collateral[ETHER][msg.sender] >= _amount,
"Desire amount is more than collateral balance"
);
collateral[ETHER][msg.sender] = collateral[ETHER][msg.sender].sub(_amount);
payable(msg.sender).transfer(_amount);
emit Withdraw(ETHER, msg.sender, _amount, collateral[ETHER][msg.sender]);
}
I would like that the maximum withdrawable amount is until userMargin minimal is 60 if there is a positionNotional. (if they have no position than ofcourse they can go to zero)

Ok, first I calculate the new margin if this amount withdraws, if new margin is smaller than save level margin(60) the function will not be executed.
uint256 ethPrice = ethPrice();
uint usdAmount = _amount*ethPrice/1e18;
uint256 userMargin = getUserMargin(msg.sender);
uint256 totalPositionNotional = totalPositionNotional(msg.sender);
uint256 totalAccountValue = totalAccountValue(_user);
uint newAccountValue = totalAccountValue - usdAmount;
uint newMargin = 100*newAccountValue/totalPositionNotional;
require(
  newMargin > 60,
  "You cannot withdraw because your margin rate is the lower than saveMargin level"
);

excellent


nom install error

npm WARN saveError ENOENT: no such file or directory, open '/Users/Hawkon/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/Hawkon/package.json'
npm WARN Hawkon No description
npm WARN Hawkon No repository field.
npm WARN Hawkon No README data
npm WARN Hawkon No license field.

+<EMAIL_ADDRESS>updated 1 package in 2.235s

what to do ??

Those are warnings, because of your local configuration. Not related to the package. The installation was successful.


Forward dlink_ready signals from SLAC to ISO module

This forwards dlink_ready signals from SLAC to the ISO module. The ISO module should do something with this information, this is not implemented yet. @mooraby @FaHaGit Can you check if this is useful for the state machine? E.g. close TCP and reset module when a dlink_ready(false) is received?

I will add dlink_terminate and friends as well in this branch

Yes, I think it is useful for the module. Now we can improve the behavior in case of an unexpected disconnect of the powerline connection. I have not tested it, but the changes looks ok for me.

The dlink_ready(false) will also always be sent at unplug so this may also help with all issues around TCP connections being still open waiting for timeout when the car unplugs etc

This PW will get bigger as initially planned, trying to add basic pause support for HLC as well. Will re-open once it is closer to being finished


IOS How do you limit reality

Respected developer.
I want to limit one area.
Only show the map in this area. Is there any specific method?

I used setViewExtents
It doesn't seem to work


chore: Move tooling related items into their own directory

Description
This separates crates that are solely for tooling and crates that are for the compiler

Problem*

Resolves
Summary*

Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[ ] I have tested the changes locally.
[ ] I have formatted the changes with Prettier and/or cargo fmt on default settings.

nix build -L .#noirc_abi_wasm does not produce a node_modules folder locally -- Investigating if this was just getting cached before this change

Added yarn install before testing and abi tests are now passing -- not sure how this was passing before then


Teams: App crashes when rendering a "big" amount of Geodata with MapLibre

Environment
Latest 0.14.0 livebook docker image:
ghcr.io/livebook-dev/livebook@sha256:31f61f52443535bf7909aa41520c3c9054aa49c1f9988de99caae0246e62ef28
Deployed a simple LiveBook through Teams.
LiveBook is running and accessible, e.g. the chat example works well when deployed through livebook teams.
Livebook
    <!-- livebook:{"app_settings":{"access_type":"public","output_type":"rich","slug":"postcodes"}} -->

    # Display german postcode areas

    ```elixir
    Mix.install([
      {:jason, "~> 1.4"},
      {:kino_maplibre, "~> 0.1.12"}
    ])

    alias MapLibre, as: Ml
    ```

    ## Provide Postcode Data

    ```elixir
    input_geojson_file = Kino.Input.file("Postcodes GeoJSON")
    ```

    ## Load Data & Draw Map

    ```elixir
    load_json = fn input ->
      Kino.Input.read(input).file_ref
      |> Kino.Input.file_path()
      |> Path.expand()
      |> File.read!()
      |> Jason.decode!()
    end

    postcode_geojson = load_json.(input_geojson_file)

    map =
      Ml.new(center: {10.1198326, 51.3522257}, zoom: 4.5, style: :street)
      |> Ml.add_source("states",
        type: :geojson,
        data: postcode_geojson
      )
      |> Ml.add_layer(
        id: "states",
        type: :fill,
        source: "states",
        paint: [
          fill_color: "rgba(200, 100, 240, 1)",
          fill_opacity: 0.7,
          fill_outline_color: "rgba(200, 100, 240, 1)"
        ]
      )
      |> Kino.MapLibre.add_fullscreen_control()
      |> Kino.MapLibre.info_on_click("states", "name")
    ```

Input data
The geojson for german postcodes is taken from here (20 MB JSON file): https://github.com/yetzt/postleitzahlen/blob/main/data/postleitzahlen.small.geojson
Current behavior
When trying to display the map, the app crashes.
Logs provide the following error:
13:48:15.759 [error] GenServer #PID<0.1110.0> terminating
** (stop) exited in: GenServer.stop(nil, :normal, :infinity)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.17.2) lib/gen_server.ex:1079: GenServer.stop/3
    (livebook 0.14.0) lib/livebook/runtime/standalone.ex:247: Livebook.Runtime.Livebook.Runtime.Standalone.disconnect/1
    (livebook 0.14.0) lib/livebook/session.ex:2427: Livebook.Session.handle_action/2
    (elixir 1.17.2) lib/enum.ex:2531: Enum."-reduce/3-lists^foldl/2-0-"/3
    (livebook 0.14.0) lib/livebook/session.ex:1488: Livebook.Session.handle_info/2
    (stdlib 6.0) gen_server.erl:2173: :gen_server.try_handle_info/3
    (stdlib 6.0) gen_server.erl:2261: :gen_server.handle_msg/6
    (stdlib 6.0) proc_lib.erl:329: :proc_lib.init_p_do_apply/3
Last message: {:DOWN, #Reference<0.3264723656.2701131777.37273>, :process, #PID<29703.136.0>, :noconnection}

Works, when the livebook is run locally.
Works when the amount of geojson is reduced. For example, adjusting above code to display only a reduced number of postcode areas worked as expected:
    postcode_geojson = load_json.(input_geojson_file) |> Map.update!("features", & Enum.take(&1, 100))

Expected behavior
Map should be drawn.

Where are you running this? I am pretty sure the machine is running out of memory, so the node shuts down and disconnects.

We should improve the error message here and potentially say it may have ran out of memory.

Oh, should have added that:
Running in Kubernetes
But it seemed like kubernetes did not interfere;
We were following the kubernetes pod logs and could create the same error message multiple times without the pod being restarted by navigating to the app and trying to draw the map again.
Is there something we could check out to help with debugging maybe?

You should see the Unix logs. How much memory does the pod have? Consider increasing it considerably and see if the issue persists.

You were right.
I increased the resource limits on kubernetes (before requested 256 MiB with a limit of 1024 MiB, now everything times 4) -> Works.
Thanks!
Somehow I expected kubernetes to interfere and not the beam to handle this itself.

The app runtime crashing under low memory makes sense, and that's only a specific OS process in the pod, not the pod itself.
But the stacktrace is actually a bug, we crash while trying to automatically restart the app. I will fix that soon.

Fixed in a976781b69e3dc346ae2a668c7d4506c47f20bf6.


How change data source from a ERD file?

I Would like to change the data source of my ERD file to another datasource. How can I do that?
I don't have the older connection anymore, and my ERD file was customized. I can't loose it.
Editing the xml file (ERD file), I can see the tag , but I don't know the data source id, and I think that it should be possible through DBeaver.
How can a share my ERD file if the data source id is different in each machine?
tks!

There is no such feature in UI.
You can edit ERD files directly and update id attribute in tables references:
<data-source id="mysql5-1370725517603--1301597195">
...

To get datasource ID open .dbeaver-data-sources.xml file in the root of workspace directory, find your connection there (e.g. by name) and copy id attribute.

Is there any plan to create UI for updating data source ID?

In newer versions the data source informations are not in a XML file anymore, they can be found in ~/Library/DBeaverData/workspace6/General/.dbeaver/data-sources.json


health-promotion page : fix image height issue

issue no longer exists. current version of column block works well with images.


Switching to bosh create-env for Concourse

It appears bosh-init is no longer being maintained and the concourse deployment should be updated to use bosh create-env.
https://github.com/cloudfoundry/bosh-init/issues/131

Closing as stale


No DefinedTerm Profile Defined

Our ISA-RO-Crate profile doesn't contain any specification/profile regarding the type DefinedTerm, although it is an essential part at the core of the ISA model and many properties require it in their type range. Is this an oversight or was it intentional? After all, we do not require any specific restrictions, but it seems weird to me nonetheless.
@HLWeil @stuzart

I guess it's an oversight based on the type already fitting the OntologyAnnotation from isa-json pretty well. Nonetheless it should be added to the profile for clarity.

Fixed by PR https://github.com/nfdi4plants/isa-ro-crate-profile/pull/35


Fix issues

Fix #1831, #1833, #1837, #1840, #1844, #1842, #1843, #1841, #1810

Coverage increased (+0.05%) to 54.591% when pulling 136697af23989863b9cdf0e84020a040e5eaa43e on steven-zou:dev into 79263a8ba76b8de4ebc42e5a5f1ce55e960f7668 on vmware:dev.


Email preview showing wrong expense receipt image

Here's how the email appears:

And here's that actual image:

It's the correct image in the expense itself, but showing differently in the email preview.

Supposed reason: because the image is wider than high (landscape), it may be that it's repeating itself to fit the container (square).

Looks like the repeating image theory is correct, it's happening vertically too.


[SR-15611] swiftSettings flags aren't being sent to dependencies

Previous ID
SR-15611

Radar
None

Original Reporter
fjtrujy (JIRA User)

Type
Bug

Attachment: Download

Environment

Local computer, MacOS 12.0.1 (M1 Max), Xcode 13.2, Swift 5.5.2

Github CI/CD using MacOS 11.6.1, Xcode 13.1, Swift 5.5.1

Github CI/CD using Ubuntu 20.04.3 LTS, Swift 5.5.2

Additional Detail from JIRA

Votes
0

Component/s
Package Manager

Labels
Bug

Assignee
None

Priority
Medium

md5: ca1f61b8a35887ba879066bf7ef5821c

Issue Description:
Hello,
I have been a lot of hours straggling trying to send a specific flag to one of the dependencies that I have in my project.
I have tried the following documentation from here:
https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html#swiftsetting
I see how the flag that is defined in the Package file, it is being sent properly to the source files that belong to my Package.swift, however, it is not being sent to the local and remote dependencies.
Basically, in the next package, DUMMY_FLAG is not being passed to Goodbye dependency
let package = Package(
    name: "dummy-swiftSettings",
    platforms: [
        .macOS(.v10_12)
    ],
    products: [
        .executable(name: "dummy-swiftSettings", targets: ["dummy-swiftSettings"]),
    ],
    dependencies: [
        .package(path: "Goodbye"),
    ],
    targets: [
        .executableTarget(
            name: "dummy-swiftSettings",
            dependencies: ["Goodbye"],
            swiftSettings: [.define("DUMMY_FLAG")])
    ]
)

I have attached a dummy project with this specific example, I have also created a repo in GitHub where I have implemented as well the CI/CD, I have double-checked that it wasn't an issue in my local computer.
Here you have the link:
https://github.com/fjtrujy/dummy-swiftSettings

I narrowed it down to incorrect description.json file inside .build file.
{
  "builtTestProducts" : [

  ],
  "copyCommands" : {

  },
  "pluginDescriptions" : [

  ],
  "swiftCommands" : {
    "C.dummy-swiftSettings-debug.module" : {
      "executable" : "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc",
      "importPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug",
      "inputs" : [
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/Sources/dummy-swiftSettings/main.swift"
        },
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.swiftmodule"
        }
      ],
      "isLibrary" : false,
      "moduleName" : "dummy_swiftSettings",
      "moduleOutputPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/dummy_swiftSettings.swiftmodule",
      "objects" : [
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/dummy_swiftSettings.build/main.swift.o"
      ],
      "otherArguments" : [
        "-target",
        "arm64-apple-macosx10.12",
        "-swift-version",
        "5",
        "-enable-batch-mode",
        "-index-store-path",
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/index/store",
        "-Onone",
        "-enable-testing",
        "-g",
        "-j8",
        "-DSWIFT_PACKAGE",
        "-DDEBUG",
        "-module-cache-path",
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/ModuleCache",
        "-parseable-output",
        "-Xfrontend",
        "-entry-point-function-name",
        "-Xfrontend",
        "dummy_swiftSettings_main",
        "-color-diagnostics",
        "-DDUMMY_FLAG",
        "-sdk",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk",
        "-F",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks",
        "-I",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib",
        "-L",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib"
      ],
      "outputs" : [
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/dummy_swiftSettings.build/main.swift.o"
        },
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/dummy_swiftSettings.swiftmodule"
        }
      ],
      "sources" : [
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/Sources/dummy-swiftSettings/main.swift"
      ],
      "tempsPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/dummy_swiftSettings.build",
      "wholeModuleOptimization" : false
    },
    "C.Goodbye-debug.module" : {
      "executable" : "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc",
      "importPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug",
      "inputs" : [
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/Goodbye/Sources/Goodbye/Goodbye.swift"
        }
      ],
      "isLibrary" : true,
      "moduleName" : "Goodbye",
      "moduleOutputPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.swiftmodule",
      "objects" : [
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.build/Goodbye.swift.o"
      ],
      "otherArguments" : [
        "-target",
        "arm64-apple-macosx10.10",
        "-swift-version",
        "5",
        "-enable-batch-mode",
        "-index-store-path",
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/index/store",
        "-Onone",
        "-enable-testing",
        "-g",
        "-j8",
        "-DSWIFT_PACKAGE",
        "-DDEBUG",
        "-module-cache-path",
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/ModuleCache",
        "-parseable-output",
        "-parse-as-library",
        "-emit-objc-header",
        "-emit-objc-header-path",
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.build/Goodbye-Swift.h",
        "-color-diagnostics",
        "-sdk",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk",
        "-F",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks",
        "-I",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib",
        "-L",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib"
      ],
      "outputs" : [
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.build/Goodbye.swift.o"
        },
        {
          "kind" : "file",
          "name" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.swiftmodule"
        }
      ],
      "sources" : [
        "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/Goodbye/Sources/Goodbye/Goodbye.swift"
      ],
      "tempsPath" : "/Users/overcot/Library/Developer/Xcode/DerivedData/swift-package-manager-aeuhvwvbzxtkuuawwbxtkcnohyxc/Build/Products/Debug/.build/arm64-apple-macosx/debug/Goodbye.build",
      "wholeModuleOptimization" : false
    }
  },
  "swiftFrontendCommands" : {

  },
  "testDiscoveryCommands" : {

  }
}

As you can see the flag for C.Goodbye-debug.module is missing. I don't really know if this behavior is expected or not, but i guess the point to start from is to find where this file is created

@abertelrud @neonichu could you confirm the expected behavior in this case?

There is no propagation from flags from the client to its dependencies, so I think this behaves correctly.

Is this something is not discussable and then issue should be closed or to be discussed and maybe go through proposal review?

I think the biggest issue with doing something like this is at all is what happens if a dependency has multiple clients?

Yeah, i now also see problems in something like conflicting flags on different clients. Maybe then mark it as not a bug?


proposal: split the 'mc' and 'mc-integration` build targets into separate repos

Consider splitting them since they're not necessary to build or run the minio server. Note that these other 2 components rely on this repo for:

logic to build mc from HEAD
the minio auth secret

closing as irrelevant due to #101.


Add force_draw method for viewports

Implements a force_draw method for viewports, which allows to update an individual viewport and it's children manually.
This method works similarly to RenderingServer.force_draw, but instead of drawing all active viewports it affects only a given subset.

Bugsquad edit: This closes godotengine/godot-proposals#1010.

I opened a proposal for this, which I believe should make it easier to handle these kind of use cases, Feedback welcome:
https://github.com/godotengine/godot-proposals/issues/7379

No, I'd like to have a method which mimics Unity's Camera.Render in functionality.
Currently, if my understanding of Godot's renderer is correct, my code is missing a part which synchronizes scene data with the GPU. But since it isn't a part of Rendering Server's draw method, I wonder if it shouldn't be implemented as a separate method.

@SlugFiller I use this to render selected viewports in desired moments. Namely, in my portal implementation, I use this method to render two subviewports, where I apply changes to shader globals between the renders. With scene-GPU synchronization added, this will also come handy in creating an effect where you can see the same portal through itself multiple times.

@Danielryb

No, I'd like to have a method which mimics Unity's Camera.Render in functionality.

That will probably never happen because Godot is just not designed to operate that way, at least not in the way this PR intends to do it. What will most likely happen is that you will be able to add usercode in the render thread to better customize the rendering process at some point, but not directly control it.

To clarify further, rendering in Godot is not intended to happen at any time outside the server, as it eventually we want to move it to run all the time in a thread by default for performance reasons. So you will not be able to control when something happens from outside RenderingServer.
The plan is to eventually give you access to modify the whole rendering process (more in a compositor way) where you can hook up callbacks and trigger renders, but this will be all code running in the render thread, not exposed to nodes.

That said we are likely a year away from implementing something like this. Maybe I can open a proposal so you and others can discuss on what implementation you would like better?

Seems good.

Still, I apologize you took all this work to do this PR and it can't be merged yet. We are only beginning right now to expose the RenderingServer internals so you can put custom code in there. The API will likely still change a bit and there is not much documentation. The ultimate goal is that you can have compositor style access and control the whole rendering process of the frame.

I don't mind it. I'm glad that a proper solution is in the works. It looks very promising.


sink: refactory sink connector

Summary
Split sink connector into smaller components so that the default and
factory mode are implemented in separate modules.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

main

PR #301

PR #302

PR #303

PR #304   👈

PR #290

This stack of pull requests is managed by Graphite.


CLDC-1813 when buyer is a company, do not route to household characteristics

Don't forget to add descriptions to your PRs, please!

Don't forget to add descriptions to your PRs, please!

I should have linked to the jira ticket. Not sure what description I could have added over teh branch name/pr title though @jamesrose


Merging Not Working

I have a rollup that calculates data from a child object of Contact
I followed the instructions in these release notes, making sure my trigger was set to support parent merging and that RollupJobs was scheduled.
Using both the NPSP Merge page and merging via Apex, the rollups didn't recalculate. When I ran them manually from the DLRS Manage Rollup page, they calculated fine. Is there something else I'm missing?

@swift-ben is the Active field on the rollup set?

@afawcett yep, it's active and the Rollup works when I create the duplicates for testing before the merge (and it works when I run calculate after the merge). It just doesn't work immediately after the merge without forcing the calculate.


[rcore] [desktop_GLFW] Window System Improvements

I have spent the past 4 weeks trying to fix problems (on macOS & Windows) related to the windowing system in the glfw backend. I can come up with 6 points right now that should/could be addressed:

[ ] A. Changing/Fixing Borderless Fullscreen Mode to how it is described in the glfw documentation. It is easy to do and does not change a lot. It fixes Borderless Fullscreen on macOS. (I have a branch for it and tested it)
[ ] B. Fixing Fullscreen mode. It works already but there is a few small things. (I have a branch for it and tested it)
[ ] C. Enhancing Fullscreen mode. Currently the window size has to be used to set the fullscreen resolution. This means that raylib can not restore the window to the correct size after exiting fullscreen because it will always restore to the window size that was used to set  the fullscreen resolution. I would propose a SetDesiredFullscreenResolution(int width, int height)  function. This function can be used to set the desired fullscreen size. The CORE.WINDOW.desiredFullscreenSize would default to 0,0 and in case it is 0,0 the CORE.Window.screen.size would be used in ToggleFullscreen() just like now. This way everything works the same as before but additionally the fullscreen resolution can be changed without touching the window size and raylib can restore the window size correctly.
[ ] D. GLFW documentation states that the WindowSizeCallback() should NOT be used to set glViewport(). Right now the WindowSizeCallback() calls SetupViewport() → rlViewport() → glViewport() . The framebuffer size instead of the window size should be used instead. This is easy to fix and the FramebufferSizeCallback()of glfw can be added for that.
[ ] E. Adding a function for getting all supported video modes of a monitor. This is important for fullscreen.  Right now you can only guess as a user of raylib what fullscreen resolutions glfw would accept. If a non supported resolution is used glfw will chose one making it hard to know what happens. This function for example would help a lot if an options menus would want to list all supported fullscreen resolutions for the user the choose from.
[ ] F. Remove/disable the high dpi flag for now (see below)

I would like to discuss each of those points to know which one I can implement and submit a PR for. I can also at any time create a branch and implement something as a basis for discussing it or to simply showcase it. I will then mark each point or make it strikethrough based on if it was accepted or not.
I would also like to keep this issue relative compact and to the point, so I would open a new issue for any of the points above that need to be discussed further.
I will make a comment below for each point to be able to give it a 👍 or a 👎.
The points above are ordered from most important to least important (based on my opinion and how easy they are to implement).
I can close my other window system related issues to not bloat the issue section.
GLFW Documentation
Docs
WindowSizeCallback vs FramebufferSizeCallback

Do not pass the window size to glViewport or other pixel-based OpenGL calls. The window size is in screen coordinates, not pixels. Use the framebuffer size, which is in pixels, for pixel-based calls.

Borderless Fullscreen

If the closest match for the desired video mode is the current one, the video mode will not be changed, making window creation faster and application switching much smoother. This is sometimes called windowed full screen or borderless full screen window and counts as a full screen window. To create such a window, request the current video mode.

const GLFWvidmode* mode = glfwGetVideoMode(monitor);
glfwSetWindowMonitor(window, monitor, 0, 0, mode->width, mode->height, mode->refreshRate);

Removing/Disabling HIGH Dpi Flag
NOTE 1: I am fine with keeping the High DPI functionality and I would be happy to help anyone who would be willing to tackle the High DPI mode and I would also be happy to help in testing on macOS & Windows.
NOTE 2: By disabling it I mean making sure the flag can not be set to true (with a Tracelog Info/Warning).
After looking at window system in raylib for the last 4 weeks and trying many different things to fix everything I have come to the conclusion that in my opinion the High DPI flag does more harm than good.
Currently the high dpi flag does not work on at least macOS & windows as soon as a high dpi monitor is used. There are multiple issues with resizing the window, borderless fullscreen, fullscreen and restoring the window after exiting borderless fullscreen and fullscreen.
In short it does not work correctly and introduces bugs and complicates things a lot.
To complicate it further all of this is only a problem when setting the system scale to something else than 100%. So if someone develops an app/game on a 1920x1080 monitor thinking it will work on a 4k monitor as well (with the high dpi flag enabled) will have a bad surprise. Basically anyone working on a non high dpi monitor does not need the high dpi flag and anyone working on a high dpi monitor cant use the high dpi flag.
On macOS it does not make sense to be able to disable high dpi anyway because it is always on and handled by the operation system.
On windows the high dpi flag could work but there is always something that does not work correctly.
Because of the vast amount of different setups with 3 major platforms, different system settings, different monitors and monitor behaviors it would be a lot of work and extra code (and extra complexity) to make the high dpi flag work consistently and correctly across this huge spectrum of possibilities. (not to think of the other backends as well)
Additionally using relative values for the UI instead of absolute (hardcoded) values makes the high dpi mode obsolete already.
Because of all of this I would propose to remove the high dpi flag altogether. (it already should be removed for macOS and Wayland)

It would remove complexity (of the already complex) window system
it would make maintaining the code much easier
it would get rid of a lot of bugs and problems
in the high dpi world a lot of things can change and raylib would need to keep up to date with it. (Windows could start handling it different, GLFW could change something, and so on)
In my opinion raylib does not have to take care of everything. By design it is kept simple and to the point and I think the high dpi system does not fit into it

A
Changing/Fixing Borderless Fullscreen Mode to how it is described in the glfw documentation. It is easy to do and does not change a lot. It fixes Borderless Fullscreen on macOS. (I have a branch for it and tested it)

B
Fixing Fullscreen mode. It works already but there is a few small things. (I have a branch for it and tested it)

D
GLFW documentation states that the WindowSizeCallback() should NOT be used to set glViewport(). Right now the WindowSizeCallback() calls SetupViewport() → rlViewport() → glViewport() . The framebuffer size instead of the window size should be used instead. This is easy to fix and the FramebufferSizeCallback()of glfw can be added for that.

E
Adding a function for getting all supported video modes of a monitor. This is important for fullscreen.  Right now you can only guess as a user of raylib what fullscreen resolutions glfw would accept. If a non supported resolution is used glfw will chose one making it hard to know what happens. This function for example would help a lot if an options menus would want to list all supported fullscreen resolutions for the user the choose from.

F
Remove/disable the high dpi flag for now

Hello,

we might as well have ToggleFullscreenEx(int width, int height, int refreshRate) ?

I would suggest extra caution with allowing the user to manually set the refresh rate on (actual/real) full screen mode. Monitors usually have very specific refresh rates for each resolution they support. Setting an unsupported refresh rate would be a really bad idea.
Note: currently that doesn't happen for rcore_desktop_glfw.c because glfwSetWindowMonitor() is using GLFW_DONT_CARE (ref). However that becomes a big issue if the user could set (a wrong) refresh rate manually (would definitely require raylib to check if the full screen resolution is valid and if the refresh rate is valid for that resolution).
Best regards.

Regarding point C: Is there a reason to store the desired width and height inside raylib rather then passing them directly to something like ToggleFullscreenEx(int width, int height) ? And if we are going to have a function to retrieve display resolutions (I assume it includes refresh rates too), we might as well have ToggleFullscreenEx(int width, int height, int refreshRate) ?

This would be my preferred method.
I suggested my version because it would keep raylib "intact" without breaking anything.

This sounds very similar to your other open issue https://github.com/raysan5/raylib/issues/4147
Do they both need to exist?

I can close my other window system related issues to not bloat the issue section.

Yes, please, I'm a bit overwhelmed with so many window-related issues and discussions. I have not enough time to review everything properly...

May I know how far this has come, its such an interesting topic!

@CodingMadness the was a closed PR because the amount of changes was too big to manage. Strategy should probably be reviewed and move to user side HighDPI management as much as possible.


Template "02015 Control Component Type" Submodel Semantic ID missing

As stated in the title, the semantic ID for the "Submodel Control Component Type" is missing in the currently provided template.
Per specification (chapter 2.2, table 1) it has to be...
[IRI] https://admin-shell.io/idta/ControlComponent/Type/1/0

Thanks for the finding! In the V2-AASX Package Explorer the Semantic Id is shown. However, the type is not properly specified. We will take care of that.

@Hilscher-TKratz Please check the latest version of the SMT the issue is resolved


[Specific-PSXPC_N] Lara cannot grab climbable wall on Trajan's Market.

Also happening here.

This is due to a very deeprooted bug.

Fixed in: https://github.com/TOMB5/TOMB5/commit/13ca45f40fa501ee514ddf790297bd6a78cb4e89


Documentation: Scope Statement

This document defines what is and isn't included in the project. It helps to manage and control project scope throughout its life cycle.

@iamshellyan Add documentation label

@wycliffepeart Done


Unity 2022.3.7f1 Error on import

On WebGL

Hey, @Andrea332 It seems that you are missing import EosSharp, you can find it here.
https://github.com/liquiidio/EosSharp.git#upm

Although all packages have been downloaded, it gives an error because nativewebsocket cannot be found. How can we include Nativewebsocket in the project? and another issue is how to download the new wax cloud wallet version for wax library?

You can install it from this link:
https://github.com/endel/NativeWebSocket

I have this error, and I did instlal the EosSharp package already.

I ended up deleting the examples folder and I think it is working ok now...


Iframe content gets reset on a redraw

I have an iframe that is dynamically populated with a config attribute and a button that adds a new div to the view. When the button is clicked the iframe content gets cleared out.
// populate the iframe dynamically with the config attribute
function setup(iframe, init) {
  if (init) return;

  const doc = iframe.contentDocument;
  doc.open();
  const content = document.createElement('div');
  content.textContent = 'hello there';
  doc.appendChild(content);
  doc.close();
};

// the view
m('div',
  m('button', {onclick: (() => { controller.list.push('abc')} )}, 'Click me'),
  controller.list((item) => return <div>{item}</div>),
  m('iframe', {config: setup}),
)

A placed a breakpoint and inspected it just before the iframe content gets cleared out (on the first button click) here: https://github.com/lhorie/mithril.js/blob/ec95de99083b0c220567e98d36defea7ae7bb7e8/mithril.js#L627
The following values are contained:
$ data
> [button, div, iframe]
$ cached
> [button, iframe]

// in this loop we are dealing with the div added by the button click
$ data[i]
> div

// but the cached item that is being used is the iframe (cacheCount = 1)
$ cached[cacheCount]
> // iframe is returned

So my understanding is that Mithril thinks the iframe has changed since it compares the iframe cache and the new div. Thinks the iframe has changed and clears it out.
Strange part is that I tried reproducing this with a fresh mithril setup and couldn't replicate this behavior. Any pointers on what to look into in order to understand what's causing this behavior would be appreciated!

Replicated the issue https://codepen.io/anon/pen/XjYaKZ
When you click on the button you should see the iframe content be set to a new value.
Is this expected behavior?

Try to set a key prop on iframe vnode. Something like this:
m('iframe', {key: 1, config: initFrame.bind(controller)})

@hugufc cheers, tried it on the codepen example and it does solve the issue. Though I haven't had a chance to test it on my real codebase.


Add Farming guild teleport option - Fairy Ring

None of listed Farming guild teleport options are available to me yet I reach Farming guild easily with Fairy rings (code "cir").
I recommend to add it.

This was on the todo list. but I haven't been active developing this plugin for a while. Hopefully I'll find the motivation to keep developing the plugin soon, but I can't promise anything for now.


A hopefully functional client

I've been a bit impatient and wrote the client myself to use for integration tests, so you can have it now as well :)

@jrichter1 🥇 👍
@sudhirverma please release it in master and publish npm module.


Convert the default Phone app to default dialer

I have converted my application to default dialer using this package using the code below:
import contacts.ui.util.requestToBeTheDefaultDialerApp

requestToBeTheDefaultDialerApp()

I want a function to convert back the default Phone app in mobile as default dialer. Is there any possibility to do so? It would be a great help.

I will close this issue for now. More context in https://github.com/vestrel00/contacts-android/discussions/294#discussioncomment-6694087


Bootstrap command

Close #17

Hi @greenhat I've completed the chain transactions with unit test, and just wanted to ask about the format of the oracle_config.yaml that is generated from the bootstrap. Is it sufficient for me to just output the minted TokenIds in base64 format in yaml for now? I intend to start issue #28 straight after this; I'm itching to fix those string fields in OraclePool and other places.
If you'd prefer to have bootstrap self-contained to this PR, I'll just jump onto #28 now, complete that then rebase from here.

Hi @greenhat I've completed the chain transactions with unit test, and just wanted to ask about the format of the oracle_config.yaml that is generated from the bootstrap. Is it sufficient for me to just output the minted TokenIds in base64 format in yaml for now? I intend to start issue #28 straight after this; I'm itching to fix those string fields in OraclePool and other places.
Great!
Sorry, I did not update you, but I started #28 on Friday - https://github.com/ergoplatform/oracle-core/pull/34
Yes, the output of the minted token ids in yaml format is fine. Later, I think we might be able to generate the whole oracle-config.yaml from a template.

Great! Sorry, I did not update you, but I started #28 on Friday - #34 Yes, the output of the minted token ids in yaml format is fine. Later, I think we might be able to generate the whole oracle-config.yaml from a template.

Awesome. Yeah, I think we can. Referring to your draft PR, I'll adapt the fields in NodeParameters into bootstrap_config.yaml

I think I've covered all the bases for bootstrap. For your reference this is what the generated oracle_config.yaml file looks like:
---
pool_nft: nSKkLoS48OLs++6/kfRQwW4UvRaA/CM9DdArKqfb3b8=
refresh_nft: iMo2U9xh+bcTAGZCUgM143ASfTuGNRNBLB+oEfD2zvU=
update_nft: 8fSY/LwHRPzeYnvdMvlGNh+TSmIs1Za0mWbYxd7z2OQ=
oracle_token: hjnNIsxl+NObFaPsB91xsISSn4WT6BUIwuJ7tE0LeA4=
ballot_token: t2rjATEMw1YV25FaGyVCkEiHmM+k4Q5sM9kwnqiLHiI=
reward_token: a68uGDtvARZ3JVuaSa1KM99PIYjKU9mp5Vbi8jdCn24=
node_ip: <IP_ADDRESS>
node_port: "9053"
node_api_key: hello


Add integration tests

Automate some integration tests and add to CI, at least for some easy cases like syscall tracing, where we can compare tracepoints against the syscalls example binary.

Closed in #34.
We should add more interesting tests with more robust assertions, but now we have a starting point.


Fix typo

Fix misspelled of "dependencies"

@rashidi Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Mutual SSL authentication not working in APIM wso2am-3.1.0-beta

Description:
Mutual SSL authentication not working in APIM
Steps to reproduce:

Host a Rest API
In Publisher , In Runtime Configuration got to transport layer security select Mutual SSL and Select Mode Mandatory ,Upload Public cert file in certificates.
Save the configuration and Publish on Dev Portal.
Wait for 10 minutes to load the setting.

Affected Product Version:

wso2am-3.1.0-beta
Environment details (with versions):

OS: Window 10

Error Encountered:
After Waiting for 10 minutes Error Encountered in Log

CURL Command to Acccess API Using Certificate and Key

Please help in this regard

@isuruh15 did we face this issue when trying out the mutual SSL flow ?

@tmkasun This is happens only in windows environment.

@tmkasun We haven't encountered such a scenario.

@isuruh15
Please confirm in Which OS  with which version u had tried in which error was not encountered. Please share the screenshot too if possible. Thanks in advance

@isuruh15 @Krishanx92 @tmkasun
Same test has been done in Ubuntu Platform . But still the error is same . Please help in this regards. IF any document for aforesaid process please share too.

Hi @ashishpilania18,
Since you invoke the HTTP URL SSL client termination does not happen at the Gateway end due to that gateway didn't know on the certificate which exchanged from Client.
Could you please try the https port in order to test

@tharindu1st
Thanks for the support. Its working now in Ubuntu Environment. In Window , Https Multilistener address already bind error still there


Map component

Context
Link to Notion ticket
Additional information
Note: This component does not display within the bookshop browser.
Testing (tester)
The reviewer should check on this branch:

The code
Add the component to a page for testing

Before merge (PR owner)

[ ] Delete the test site in CloudCannon
[ ] For "generic" components only: remove - content_blocks from structures in the YAML file (this was added for testing).

I made a couple of changes:

Fix zoom input step
Set a min-height
Added a marker on latlang
Allow user to add an api key
Added fallback previews for live editing and if there is no API key supplied


Decompose Settings .jsx into small components

I've checked Settings.js which supposed to be ( maybe) SettingsCard as a name of the file.
I find that component is complex and it does many things and I suggest decomposing it into small components that do one thing ( SRP) ( Header, Body, Footer) because it's a Card.  This will make scaling easy in the future and will help you maintain the Unit Test in decomposable files and in Isolation.

SRP originally demanded that every module should have one, and only one reason to change.
It's quite different from "doing only do one thing".
The current dashboard already uses a library that provides an abstraction for a card header.
Maybe you can provide an example of how your components would look like and where tey would be different from the used layout components.
I love this article, to me, there's no better guideline for understanding reasonable principles for boundaries between components:
https://jxnblk.com/blog/defining-component-apis-in-react/
What's your opinion about it? Does it seem reasonable in the context of this project? What structure would you suggest?

Solved by the linked PR. Thank you for your input.

You welcome.


Do not send duplicate DNS queries when the same query is in progress already

Related issue: #5179
Motivation:
When you attempt to make a lot of connection attempts to the same target
host at the same time and our DNS resolver does not have a record for it
in the cache, the DNS resolver will send as many DNS queries as the
number of connection attempts.
As a result, DNS server will reject or drop the requests, making the
name resolution attempt fail.
Modifications:

Add InflightNameResolver that keeps the list of name resolution
queries and subscribes to the future of the matching query instead of
sending a duplicate query.

Result:

The AddressResolvers created by DnsAddressResolverGroup do not send
duplicate DNS queries anymore

@slandelle @normanmaurer PTAL
One thing I didn't like about the resolver API was that InetNameResolver is not an interface. I could not write a pure wrapper that is an InetNameResolver.

@trustin thanks a lot...
Cherry-picked into 4.1 (5c6bc20a80329f4ffc40c5343947dc295fdda489)

@normanmaurer DnsNameResolverBuilder should also use InflightNameResolver by default. Otherwise, it's still not being used by DnsAddressResolverGroup. Is it the intended behavior?

@luengnat it is used... See:
https://github.com/netty/netty/blob/4.1/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java#L73

@normanmaurer I'm talking about this overload. This one calls DnsNameResolverBuilder. But DnsNameResolverBuilder does not create InflightNameResolver
https://github.com/netty/netty/blob/4.1/resolver-dns/src/main/java/io/netty/resolver/dns/DnsAddressResolverGroup.java#L100

@normanmaurer Looking back in the commit history, it looks like the method that used to call InflightNameResolver was marked as deprecated by https://github.com/netty/netty/commit/9bd94ea021b9e43ca2318eeda6640b19e93b12c8 Thus no one calls that particular method anymore.


Local images

Hi,
I would like to test this on localhost. However, it seems to not work with local images, only online ones. I guess this is a limitation of canvas. Is there any workaround or should I test only online?
Thanks and regards,
Oliver

This is a problem with the crossOrigin property.
I fixed by adding a crossOrigin property on the options object.
And adding this code on the js file:
Line 227.
original.crossOrigin = 'Anonymous';
if(!this.options.isAnonymous) {
original.crossOrigin = null;
}


Is there a way to get the cell name when using columnClassName to set the cell class?

Is there a way to get the "cell name" when using columnClassName?  It looks like we only get fieldValue,row,rowIdx,colIdx. Else Is there a way else to get the cellname for colIdx?

Any problem you encountered? Because I think pass the cell name is not necessary, if you can show me why you think it important, I'll try to pass it.
BTW, I give the colIdx, you can map the colIdx to cell name, it's fixed.
Close it first.


Updating bootstrap to get rid of Di and use ServiceManager

Wow, how is this still open?! Took me back reading the thread, hope everyone is doing well!


Update typescript linting rules

Went through and updated/added all of the available codelyzer/tslint rules. Should be helpful as a quick reference for teams if they want to customize the linting rules further. Discussion welcome as to suitability of rule configuration.

LGTM :shipit:


moved log file to .noteorganiser for #78

This should suffice for solving #78, right?

what if the user has moved the notebook-folder?

Does the log file really has to follow this? I wondered, too, and thought that we could still use .noteorganiser as a storage, even though the actual notebooks are not stored there. The reason why I did not make it follow the storage was that the configuration initialisation requires the logger.. so I do not have this information while creating it.
I am not sure that trying to decouple these things would bring so much, but if you think that yes, I could do it.

yes, I realized this, too. If it's not that easy to decouple, it's no problem I think. I think a new user that gets the popup to set the notebook-folder may think it's a bug if the log still gets put into this directory, but I think it's OK


Use core_uri! macro

Closes #433

Using new macros
Use the safe config url as provided in .env.example
The only network available for now is "4"

If you want to check out this branch, it already "runs" but the tests need to be adjusted


Update monk package version

This fixes #13 , which is a simple version issue with monk.

@anonrig See above.
I have my bot on an automatic build and this is creating a giant headache. If you could tag an npm release for this it would really make my life a whole lot easier!
Thanks in advane

Sorry @dsifford I don't really have the NPM permission to do that.
@benbrown Can you bump the NPM version? Thanks.

hey @benbrown is there anything I can help you with to get this bumped?

Sorry for the delay!  1.0.4 has been published to npm.


feat/google drive

I made this initial push for the google drive feature.

Thank you very much for this @midepeter
However, I noticed you might not have checked the contribution guide yet.
Please check it out for proper flow on how we hope to streamline the development of new features or fixes.

#9

@midepeter My sincerest apologies for the delay on the review here....
Some breaking changes have been made to Bifrost recently and might affect your current PR.
Will you be able to update the PR so I can review again or should I make the updates for you? 🙇

@opensaucerer hello, alright I will look into this.

@opensaucerer hello, alright I will look into this.

Thank you 🙇

Hi @midepeter
Here's an update on the recent changes to bifrost's codebase. The interfaces have been updated and functions to UploadFile have been modified to take structs as input instead of an enumeration of arguments.
If you pull the latest changes, you'll notice these refactors.
If you will need help refactoring this PR, do let me know. Thank you for contributing.

Alright noted

@opensaucerer i really do apologise that i have not been so consistent with this issue but i will surely complete it.
are you going to review what i have done so far? becfore i go ahead and complete it and then test.

Hi @midepeter
It's completely fine, I very much understand.
I also went away for 2 months on the project, so much work at hand.
Yeah, I reviewed the work but didn't comment because I hoped to wait on the refactor to fit the new bifrost structure.
But I can leave comments if you do want me to do that now.

@opensaucerer
Yes, you can leave the comments already and i will work on it. Or if you want me to refactor first then no problem


Sounds like a good idea

I do not see any special shifts. Is the artist busy?

Already a whole year has passed. But I did not see the volume totems:(

Yeah there was not much progress. Not sure if @Sunconure11 is busy, but I haven't laid the groundwork for new totem models in the code yet.

I'm busy with the development of another mod. That being said, I am probably incapable of modeling much due to too much damage to my sleep cycle. I am also in the final stages of a move.
I could texture the villager if I find myself not busy.

Do you think you will manage to texture it before BTM (mid-November)?

I should be able to.

Implemented. Texture might change later.


[ISSUE #723]⚡Optimize ConnectionHandlerContext⚡

Which Issue(s) This PR Fixes(Closes)

Fixes #723
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥


Add OpenSanctions data types

Source https://www.opensanctions.org/reference/
Several data types not yet included in metacrafter registry

All data types reviewed. No new data types found


DBZ-7007 Use DebeziumEngine instead of EmbeddedEngine in the testsuite

https://issues.redhat.com/browse/DBZ-7007

MySQL 5.7 error is unrelated:
2023-10-25T11:44:01.4623251Z [ERROR] Errors:
2023-10-25T11:44:01.4630678Z [ERROR] io.debezium.connector.mysql.MySqlParserIT.parseTableWithInVisibleColumns
2023-10-25T11:44:01.4632888Z [ERROR]   Run 1: MySqlParserIT.beforeEach:53 <C2><BB> Runtime Couldn't obtain stable version for image debezium/example-mysql
2023-10-25T11:44:01.4635184Z [ERROR]   Run 2: MySqlParserIT.afterEach:73 NullPointer Cannot invoke "org.testcontainers.containers.MySQLContainer.stop()" because "this.mySQLContainer" is null
2023-10-25T11:44:01.4636887Z [INFO]
2023-10-25T11:44:01.4637470Z [INFO]
2023-10-25T11:44:01.4641042Z [ERROR] Tests run: 317, Failures: 0, Errors: 1, Skipped: 10

DB2 failures are unrelated (Db2ConnectorIT.restartInTheMiddleOfTx and other known well-known failures)
Server error is unrelated and should be fixed by https://github.com/debezium/debezium-server/pull/44
However, Vitess error may be related.

It seems also Vitess failure is not related but a bug in the test - filed DBZ-7104 for it.

DB2 failures are unrelated:
 Error:  Failures:
Error:    Db2ConnectorIT.restartInTheMiddleOfTx:698->restartInTheMiddleOfTx:603
Expected size:<30> but was:<0> in:
<[]>
Error:    Db2ConnectorIT.restartInTheMiddleOfTxAfterCompletedTx:692->restartInTheMiddleOfTx:603
Expected size:<30> but was:<0> in:
<[]>
Error:    Db2ConnectorIT.restartInTheMiddleOfTxAfterSnapshot:686->restartInTheMiddleOfTx:603
Expected size:<30> but was:<0> in:
<[]>
Error:    IncrementalSnapshotIT>AbstractIncrementalSnapshotTest.snapshotWithAdditionalConditionWithRestart:802->AbstractSnapshotTest.consumeMixedWithIncrementalSnapshot:233->AbstractSnapshotTest.consumeMixedWithIncrementalSnapshot:182->AbstractSnapshotTest.consumeMixedWithIncrementalSnapshot:200 [Too many no data record results, 0 < 1000]
Expecting:
 <6>
to be less than or equal to:
 <5>
Error:    IncrementalSnapshotIT>AbstractIncrementalSnapshotTest.snapshotWithAdditionalConditionWithSurrogateKey:847->AbstractConnectorTest.assertNoRecordsToConsume:984 expected:<[tru]e> but was:<[fals]e>
[INFO]
Error:  Tests run: 61, Failures: 5, Errors: 0, Skipped: 2

@vjuranek Applied, thanks


Default enabling of MODBUSMASTER_DEBUG leads to unpredictable behavior in sketches, suggest setting to 0 by default

First off, great library and thanks for making it, overall I've been very happy with it and it has worked perfectly for my project.
However, these few lines were causing some odd behavior in my system that it took me a while to track down.
ModbusMaster.cpp lines 150-153:
#if __MODBUSMASTER_DEBUG__
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
#endif

The way I constructed my application is part of the reason it took a while, but generally I don't expect a library to change the state of pins in a hidden way. I recommend setting MODBUSMASTER_DEBUG to 0 by default, since if you intend to use the debugging features you will have no issue in enabling them, but most users will probably not be aware of this functionality and are more likely to be using digital pins 4 and 5.
If nothing else, it would be good to make the fact that this is enabled by default very obvious and mention it in the main README.
Thanks again for the library.

+1
Does it help if this is made a pull request so it can be accepted with one click?


Remove look-at without resetting rotation

Hi there,
I'm using look-at to on my camera to track an element moving through my scene and I'm trying to figure out how (or if it is possible at all) to programmatically remove the look-at component at a given point in time (once the element has left the scene, for instance)
el.removeAttribute("look-at") causes the camera to snap back to rotation="0 0 0".
I've tried el.setAttribute("look-at", "")  which does not appear to break the "connection" between the camera and the element.
Any help would be appreciated!

You could store the rotation right before you remove it, and then set it? We could also set it to not snap back on removal if that makes more sense...

Thanks so much for responding so fast!
I think the ability to set to not snap back would be a great feature, I can see the use case for both?