"Failed to list" errors logged using default ClusterRole "prometheus-k8s"

Prometheus is spamming our logs with messages about it not having permissions to list the resources services, endpoints and pods in our cluster. The error messages look like this:
level=error ts=2020-04-06T11:17:49.793Z caller=klog.go:94 component=k8s_client_runtime func=ErrorDepth msg="/app/discovery/kubernetes/kubernetes.go:264: Failed to list *v1.Service: services is forbidden: User \"system:serviceaccount:monitoring:prometheus-k8s\" cannot list resource \"services\" in API group \"\" in the namespace \"fluentd\""
level=error ts=2020-04-06T11:17:49.756Z caller=klog.go:94 component=k8s_client_runtime func=ErrorDepth msg="/app/discovery/kubernetes/kubernetes.go:263: Failed to list *v1.Endpoints: endpoints is forbidden: User \"system:serviceaccount:monitoring:prometheus-k8s\" cannot list resource \"endpoints\" in API group \"\" in the namespace \"fluentd\""
level=error ts=2020-04-06T11:17:49.753Z caller=klog.go:94 component=k8s_client_runtime func=ErrorDepth msg="/app/discovery/kubernetes/kubernetes.go:265: Failed to list *v1.Pod: pods is forbidden: User \"system:serviceaccount:monitoring:prometheus-k8s\" cannot list resource \"pods\" in API group \"\" in the namespace \"nginx-ingress\""

Amending the included ClusterRole to include the resources and the list verb stops the errors. However, I notice that in all of the releases in this repo, none of them have these permissions included on the ClusterRole:

https://github.com/coreos/kube-prometheus/blob/master/manifests/prometheus-clusterRole.yaml

Looking at the Prometheus docs, their ClusterRole does include these permissions in their docs.
What am I missing? I notice that in this issue the same errors are reported, but the answer is that they should be using the release-0.1 branch.
We're running Kubernetes 1.16.5 with the release-0.3 branch of kube-prometheus.
Thanks in advance!

The reason for this, it seems, is that those resources and verbs are granted on a per-namespace basis, not as part of the ClusterRole.
You can therefore update the array of namespaces which these permissions should be extended to, or amend the ClusterRole to add in those permissions. I'm going to do the latter, and I'll add a comment to this to demonstrate how I did it

I updated the ClusterRole to include the extra roles by adding this to my base jsonnet file
local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
local clusterRole = k.rbac.v1.clusterRole;
local policyRule = clusterRole.rulesType;
local extra_cluster_role_resources = policyRule.new() +
                                     policyRule.withApiGroups(['']) +
                                     policyRule.withResources(['services','pods','endpoints']) +
                                     policyRule.withVerbs(['get','list','watch']);

local kp =
  (import 'kube-prometheus/kube-prometheus.libsonnet') +
  {
    prometheus+:: {
      clusterRole+: {
        rules+: [extra_cluster_role_resources],
      },
    },
  };

These changes resulted in my ClusterRole looking like this:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus-k8s
rules:
- apiGroups:
  - ""
  resources:
  - nodes/metrics
  verbs:
  - get
- nonResourceURLs:
  - /metrics
  verbs:
  - get
- apiGroups:
  - ""
  resources:
  - services
  - pods
  - endpoints
  verbs:
  - get
  - list
  - watch


i have a problem.if i run python3.6 recognizer.py

python3.6 recognizer.py
Using TensorFlow backend.
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/hueintsystem2/.local/lib/python3.6/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
2019-09-20 15:52:52.747509: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-09-20 15:52:52.767943: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency:<PHONE_NUMBER> Hz
2019-09-20 15:52:52.768131: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4631790 executing computations on platform Host. Devices:
2019-09-20 15:52:52.768169: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): ,
2019-09-20 15:52:52.774210: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
WARNING:tensorflow:From /home/hueintsystem2/.local/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py:4070: The name tf.nn.max_pool is deprecated. Please use tf.nn.max_pool2d instead.
/home/hueintsystem2/.local/lib/python3.6/site-packages/keras/engine/saving.py:341: UserWarning: No training configuration found in save file: the model was not compiled. Compile it manually.
warnings.warn('No training configuration found in save file: '
attendance till now is
Traceback (most recent call last):
File "recognizer.py", line 20, in
model=load_model('inception.MODEL')
File "/home/hueintsystem2/.local/lib/python3.6/site-packages/keras/engine/saving.py", line 492, in load_wrapper
return load_function(*args, **kwargs)
File "/home/hueintsystem2/.local/lib/python3.6/site-packages/keras/engine/saving.py", line 583, in load_model
with H5Dict(filepath, mode='r') as h5dict:
File "/home/hueintsystem2/.local/lib/python3.6/site-packages/keras/utils/io_utils.py", line 191, in init
self.data = h5py.File(path, mode=mode)
File "/home/hueintsystem2/.local/lib/python3.6/site-packages/h5py/_hl/files.py", line 408, in init
swmr=swmr)
File "/home/hueintsystem2/.local/lib/python3.6/site-packages/h5py/_hl/files.py", line 173, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 88, in h5py.h5f.open
OSError: Unable to open file (unable to open file: name = 'inception.MODEL', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

yep even i have got the same error. HELP!


⚠ Bofrost.de has degraded performance

In 7d9cae8, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1492 ms

Resolved: Bofrost.de performance has improved in 0761e2c after 6 minutes.


Internal Postal Error v2.1.4

Describe the bug
Incoming/Outgoing Messages marked as spam will raise an Internal Postal Error
Screenshots

Environment details

Version 2.1.4

Additional information/context
[2023-05-08T13:30:03.060] INFO -- : [MHLK431S2K] Started processing UnqueueMessageJob job
[2023-05-08T13:30:03.070] INFO -- : [MHLK431S2K] Lock acquired for queued message 49488
[2023-05-08T13:30:03.084] INFO -- : [MHLK431S2K] Found 0 associated messages to process at the same time (batch key: outgoing-xxx.at)
[2023-05-08T13:30:03.089] INFO -- : [MHLK431S2K] [2::49443 49488] Got queued message with exclusive lock
[2023-05-08T13:30:03.101] INFO -- : [MHLK431S2K] [2::49443 49488] Recipient is on the suppression list. Holding.
[2023-05-08T13:30:03.112] INFO -- : [MHLK431S2K] [2::49443 49488] Internal error: FrozenError: can't modify frozen String: ""
[2023-05-08T13:30:03.112] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/message_db/delivery.rb:51:in "force_encoding"
[2023-05-08T13:30:03.112] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/message_db/delivery.rb:51:in "webhook_hash"
[2023-05-08T13:30:03.112] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/message_db/delivery.rb:43:in "send_webhooks"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/message_db/delivery.rb:11:in "create"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/message_db/message.rb:124:in "create_delivery"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/app/jobs/unqueue_message_job.rb:310:in "block in perform"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/app/jobs/unqueue_message_job.rb:31:in "each"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/app/jobs/unqueue_message_job.rb:31:in "perform"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/worker.rb:64:in "receive_job"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /opt/postal/app/lib/postal/worker.rb:96:in "block in join_queue"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer.rb:56:in "call"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/channel.rb:1842:in "block in handle_frameset"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer_work_pool.rb:108:in "block (2 levels) in run_loop"
[2023-05-08T13:30:03.113] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer_work_pool.rb:103:in "loop"
[2023-05-08T13:30:03.114] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer_work_pool.rb:103:in "block in run_loop"
[2023-05-08T13:30:03.114] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer_work_pool.rb:102:in "catch"
[2023-05-08T13:30:03.114] INFO -- : [MHLK431S2K] [2::49443 49488] /usr/local/bundle/gems/bunny-2.20.3/lib/bunny/consumer_work_pool.rb:102:in "run_loop"
[2023-05-08T13:30:03.118] INFO -- : [MHLK431S2K] [2::49443 49488] Queued message was unlocked

Never seen this error on v2.1.2
Maybe a double of https://github.com/postalserver/postal/issues/2153

@odoo-sh  Hi,
as a "workaround" i  did the following in:
postal/lib/postal/message_db/delivery.rb:
def webhook_hash         {           message: @message.webhook_hash,           status: status,           details: details,           output: "", #<--- replace output with an empty string           sent_with_ssl: sent_with_ssl,           timestamp: @attributes["timestamp"],           time: time         }       end
this works (i don't use any webhooks)...
but in the end i switched back to version 2.1.2

This should be fixed by f0a8aca6e10064fb16daefff9e22dcc20a831868


Linux daemon failing to start

Describe the issue
Linux 5.0.72 wallet failing to start with error:
terminate called after throwing an instance of 'std::runtime_error'
  what():  tinyformat: Too many conversion specifiers in format string

Can you reliably reproduce the issue?
No, but I have one MN where I'm seeing this error on every start now.
Expected behavior
Wallet starts and syncs
Actual behavior
Wallet starts and after a few seconds the daemon stops
What version of Liberty Coin are you using?
Official 5.0.72, upgraded from official 5.0.58
Machine specs:

OS: Ubuntu 14.04
CPU: 1 core 64 bit
RAM: 1024
Disk size: 20GB
Disk Type (HD/SDD): SSD

Any extra information that might be useful in the debugging process.
debug.log contents:
root@v01:~# libertyd; tail -f .liberty/debug.log
Liberty server starting
2018-12-31 22:16:18 AppInit2 : parameter interaction: -listen=0 -> setting -upnp=0
2018-12-31 22:16:18 AppInit2 : parameter interaction: -listen=0 -> setting -discover=0
2018-12-31 22:16:18 AppInit2 : parameter interaction: -listen=0 -> setting -listenonion=0
2018-12-31 22:16:18

2018-12-31 22:16:18 Liberty version v<IP_ADDRESS>-20cda2b (2018-12-30 19:12:47 -0600)
2018-12-31 22:16:18 Using OpenSSL version OpenSSL 1.0.1k 8 Jan 2015
2018-12-31 22:16:18 Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
2018-12-31 22:16:18 Default data directory /root/.liberty
2018-12-31 22:16:18 Using data directory /root/.liberty
2018-12-31 22:16:18 Using config file /root/.liberty/liberty.conf
2018-12-31 22:16:18 Using at most 125 connections (64000 file descriptors available)
2018-12-31 22:16:18 Using 0 threads for script verification
2018-12-31 22:16:18 HTTP: creating work queue of depth 16
2018-12-31 22:16:18 HTTP: starting 4 worker threads
2018-12-31 22:16:18 Creating backup of "/root/.liberty/wallet.dat" -> "/root/.liberty/backups/wallet.dat.2018-12-31-22-16"
2018-12-31 22:16:18 scheduler thread start
2018-12-31 22:16:18 Old backup deleted: "/root/.liberty/backups/wallet.dat.2018-11-18-07-45"
2018-12-31 22:16:18 Using wallet wallet.dat
2018-12-31 22:16:18 init message: Verifying wallet...
2018-12-31 22:16:18 CDBEnv::Open: LogDir=/root/.liberty/database ErrorFile=/root/.liberty/db.log
2018-12-31 22:16:18 AddLocal(<IP_ADDRESS>:10417,4)
2018-12-31 22:16:18 init message: Loading block index...
2018-12-31 22:16:18 Opening LevelDB in /root/.liberty/zerocoin
2018-12-31 22:16:18 Opened LevelDB successfully
2018-12-31 22:16:18 Opening LevelDB in /root/.liberty/sporks
2018-12-31 22:16:18 Opened LevelDB successfully
2018-12-31 22:16:18 Opening LevelDB in /root/.liberty/blocks/index
2018-12-31 22:16:18 Opened LevelDB successfully
2018-12-31 22:16:18 Opening LevelDB in /root/.liberty/chainstate
2018-12-31 22:16:18 Opened LevelDB successfully
2018-12-31 22:16:18 init message: Loading sporks...
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_2_SWIFTTX found in database
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_3_SWIFTTX_BLOCK_FILTERING found in database
2018-12-31 22:16:18 LoadSporksFromDB : loaded spork SPORK_5_MAX_VALUE with value 100001
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_7_MASTERNODE_SCANNING found in database
2018-12-31 22:16:18 LoadSporksFromDB : loaded spork SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT with value 0
2018-12-31 22:16:18 LoadSporksFromDB : loaded spork SPORK_9_MASTERNODE_BUDGET_ENFORCEMENT with value 0
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_10_MASTERNODE_PAY_UPDATED_NODES found in database
2018-12-31 22:16:18 LoadSporksFromDB : loaded spork SPORK_13_ENABLE_SUPERBLOCKS with value 0
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_14_NEW_PROTOCOL_ENFORCEMENT found in database
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_15_NEW_PROTOCOL_ENFORCEMENT_2 found in database
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_16_ZEROCOIN_MAINTENANCE_MODE found in database
2018-12-31 22:16:18 LoadSporksFromDB : no previous value for SPORK_17_PROPOSAL_VETO found in database
2018-12-31 22:16:18 init message: Loading block index...
2018-12-31 22:16:27 LoadBlockIndexDB: last block file = 1
2018-12-31 22:16:27 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=20890, size=76336520, heights=49901...70570, time=2018-12-17...2018-12-31)
2018-12-31 22:16:27 Checking all blk files are present...
2018-12-31 22:16:27 LoadBlockIndexDB: Last shutdown was prepared: false
2018-12-31 22:16:27 LoadBlockIndexDB(): transaction index enabled
2018-12-31 22:16:27 LoadBlockIndexDB(): hashBestChain=007d8dd508f1d6c4e4cae6bf54f552bb39ba75224a78b0af884ad175f9138b2c height=70570 date=2018-12-31 22:07:19 progress=0.999744
2018-12-31 22:16:27 init message: Verifying blocks...
2018-12-31 22:16:27 Verifying last 100 blocks at level 4
2018-12-31 22:16:31 No coin database inconsistencies in last 101 blocks (215 transactions)
2018-12-31 22:16:31  block index           12741ms
2018-12-31 22:16:31 init message: Loading wallet...
2018-12-31 22:16:31 nFileVersion = 5007200
2018-12-31 22:16:31 Keys: 1016 plaintext, 0 encrypted, 1016 w/ metadata, 1016 total
2018-12-31 22:16:31  wallet                   86ms
2018-12-31 22:16:31 init message: Syncing XLIBz wallet...
2018-12-31 22:16:31 GenerateMintPool : n=8 nStop=27
2018-12-31 22:16:31 SyncWithChain: Mintpool size=27
2018-12-31 22:16:31 init message: Loading masternode cache...
2018-12-31 22:16:32 init message: Loading budget cache...
2018-12-31 22:16:32 init message: Loading masternode payment cache...
2018-12-31 22:16:32 IS MASTER NODE
2018-12-31 22:16:32  addr <IP_ADDRESS>:10417
2018-12-31 22:16:32 Locking Masternodes:
2018-12-31 22:16:32 fLiteMode 0
2018-12-31 22:16:32 nSwiftTXDepth 5
2018-12-31 22:16:32 Anonymize Liberty Amount 2
2018-12-31 22:16:32 Budget Mode auto
2018-12-31 22:16:32 mapBlockIndex.size() = 71305
2018-12-31 22:16:32 chainActive.Height() = 70570
2018-12-31 22:16:32 setKeyPool.size() = 1001
2018-12-31 22:16:32 mapWallet.size() = 14
2018-12-31 22:16:32 mapAddressBook.size() = 4
2018-12-31 22:16:32 init message: Loading addresses...
2018-12-31 22:16:32 Loaded 4700 addresses from peers.dat  31ms
2018-12-31 22:16:32 dnsseed thread start
2018-12-31 22:16:32 init message: Done loading
2018-12-31 22:16:32 stakemint thread start
2018-12-31 22:16:32 ThreadStakeMinter started
2018-12-31 22:16:32 LibertyMiner started
2018-12-31 22:16:32 msghand thread start
2018-12-31 22:16:32 keypool reserve 16
2018-12-31 22:16:32 opencon thread start
2018-12-31 22:16:32 addcon thread start
2018-12-31 22:16:32 net thread start
2018-12-31 22:16:33 Misbehaving: <IP_ADDRESS>:10417 (0 -> 1)
2018-12-31 22:16:33 ProcessMessage(getsporks, 0 bytes) FAILED peer=1
2018-12-31 22:16:33 asking peer for sporks
2018-12-31 22:16:33 receive version message: /Liberty Core:5.0.58/: version 71026, blocks=70572, us=<IP_ADDRESS>:58442, peer=1
2018-12-31 22:16:33 Added time data, samples 2, offset +0 (+0 minutes)
terminate called after throwing an instance of 'std::runtime_error'
  what():  tinyformat: Too many conversion specifiers in format string

I was unable to reproduce the described behavior and it is related to a rogue logging statement that passes more params than what the statement allows. That said, after some additional sidebar conversation with @mnzone-dev this is apparently encountered when there are some missing acc checkpoints. Recalculating the checkpoints is all that is required but, unfortunately, the code that was forked had an offset issue that needed to be fixed first.
Here's the updated daemon
Run with reindexmoneysupply and reindexaccumulators one time (this may take a few minutes) and see if the issue is fixed.

Spot on! With build 74 I'm no longer seeing the daemon crash.
I can share with you the debug.log if it's helpful.
Thank you

Build 5.1.1 will have fixes for the incorrectly formatted strings.


chore(package): update @kronos-integration/service to version 6.1.8

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to change agent log to special place?

Is there some way to change agent log to special place? I checked over the config file， there is no config item.
Or the user use the soft link way to solve?

Every jvm process has a agent config and file, I think this is needed in the product env.

Add logging.dir to agent.config


Flying mob step trigger fix

About the PR
Adds a new component called "NoStep" which is similar to NoSlip. Some mobs fly or are ghosts, and as such don't actually step anywhere. They shouldn't hit StepTriggers, but currently they run into mousetraps, glass shards, etc.
The problem with flying mobs hitting StepTriggers is actually caused by the Flammable fixture, but instead of redesigning that entire system or introducing workarounds I think it's better to add a component that could also be used for other purposes.
The only real solution for the collision itself, as I see it, is to somehow have FlammableSystem not reliant on fixtures at all.
Resolves #9864.
Screenshots

https://user-images.githubusercontent.com/8189043/198836992-9a187373-05e8-4fb1-a504-ebf1bd620402.mp4
Changelog

:cl:

fix: Flying mobs no longer run into mousetraps and glass shards

The only real solution for the collision itself, as I see it, is to somehow have FlammableSystem not reliant on fixtures at all.

Or maybe step trigger should collide with a specific fixture as it was seemingly intended to. StepTrigger seems to work assuming you can filter out specific fixtures but never actually checks them, instead just checking if any fixture on the entity collides.
This fix seems fine, though, and that component would have other uses...

You're right, and after some discussion on Discord I think it's best to not add a new component and instead filter out collisions with non-Hard fixtures; so Flammable fixtures will no longer hit StepTrigger and this solves the problem in a much simpler way.

My bad, reverted the change.


keyd: init at 2.2.5-beta and Keyd module

Expands on #158489, and allows for the per-application keyd experiment to work
Also closes #132474.

I've been using this for over a month and it works great. It would be awesome to see it merged.

Sorry about the long-wait on this, been busy!

Thanks for the work! This PR was mentioned in this discussion on NixOS official Discourse.

This isn't closed, just accidentally updated my local nixpkgs tree and forced pushed, oops

https://github.com/cidkidnix/nixpkgs/tree/cidkidnix/keyd,
New tree, sorry about that

You might need to open a new PR if my understanding of how github works is correct.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-get-the-service-running-for-keyd/24991/2


Add a SetFit example

What does this PR do?
Add a SetFit example
Before submitting

[ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
[x] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

@echarlaix , could you please have a review?

@echarlaix For some reasons, build PR documentation test seems not stable. Please take a look. Thanks.

@echarlaix For some reasons, build PR documentation test seems not stable. Please take a look. Thanks.

Yes we are currently working on it (cc @regisss), the issue will be fixed next week

@echarlaix it seems the issue is still there and random, which is kind of blocking this pr. Do we have some rerun option for this particular test?

@hshen14 The PR doc generation failed because the fix has not been merged to the branch XinyuYe-Intel:xinyuye/setfit. @XinyuYe-Intel has to update the remote main branch of his fork, then rebase the local main branch and merge it into  XinyuYe-Intel:xinyuye/setfit.


Move to rutt for route handling

Right now we attempt to do route handling ourselves. This is a bad idea. We should use something like rutt to simplify our implementation as well as fix possible security holes.

May be the occasion to move createUser, deleteUser and regenerateToken to another place ?
(not the right place but to say I updated my comment in #70 issue)
Actually I can't access CookiDB server from a hosted page ( having translated and installed the module cookie_esm) : cors issue on serve ?

Cookie

loaded
(index):14 CookieDB {url: 'http://localhost:8777', auth: 'Bearer +XzzQA6raChtD//1ZzGBiUvOqu0t9cDL'}auth: "Bearer +XzzQA6raChtD//1ZzGBiUvOqu0t9cDL"url: "http://localhost:8777"[[Prototype]]: Object
(index):18 select

localhost/:1 Access to fetch at 'http://localhost:8777/select/tableH' from origin 'http://localhost' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
mod.js:421          POST http://localhost:8777/select/tableH net::ERR_FAILED

Ah yes, we should probably enable CORS on the server. Splitting that off into issue #73.


example code in manual for RW_llfunction sampler does not work

Apparently the 'll' assignment creates a double(1).
Error: Number of dimensions 1 of the return() argument does not match number 0 given in the returnType() statement.
 This occurred for: return(ll)
 This was part of the call:  {
  y <- model_y
  p <- model_p
  n <- model_n
  ll <- lfactorial(n) - lfactorial(y) - lfactorial(n - y) + y * log(p) + (n - y) * log(1 - p)
  return(ll)
}

Changing to return(ll[1]) works. We would need to explain to users why this is needed.

Fixing now.


refactor(css/ast): remove UniversalSelector

Remove UniversalSelector, we don't use it in code (maybe we forgot to remove it when we do refactor), also UniversalSelector is subtype of TypeSelector.

Or we can bring it back because we have https://www.w3.org/TR/selectors-4/#the-universal-selector and fix the logic of code, I don't have strong option


Incorrect time zone offsets in arts organization's Event structured data

Problem
Several arts organizations have an incorrect time zone offset value in their Event startDate.
There are three common mistakes I regularly observe:
1. The time zone offset value is not adjusted to take into account daylight saving.

Example: An event is taking place on September 1st at 8:00 pm in New Brunswick.  The proper dateTime value for this event should be: "2024-09-01T20:00:00-03:00". However, if the daylight savings adjustment is not taken into consideration, the date time value might be populated as if it were in Atlantic Standard Time (which would be "2024-09-01T20:00:00-04:00"). The wrong dateTime value is the equivalent of 11:00 pm in UTC or 7:00 pm in Atlantic Daylight Time.
Possible causes:

Human error: The structured data is manually populated and the person responsible for this tasks forgets to adjust the time zone offset.
Incorrect settings in website's CMS: If the website's time zone is not defined as an absolute value (for example, "-04:00") rather than a relative value (for example, "Halifax - North America (Atlantic Time)"), the CMS will not automatically adjust for daylight savings time.
Coding error: A custom code is populating the dateTime value but the developer who wrote it didn't know how to factor in daylight savings adjustments.

2. The timezone offset value is defaulted to +00:00

Example: An event is taking place on September 1st at 8:00 pm in New Brunswick.  The proper dateTime value for this event should be "2024-09-01T20:00:00-03:00", but it reads "2024-09-01T20:00:00+00:00" instead. This wrong dateTime value is the equivalent of 4:00 pm in Atlantic Daylight Time.
Possible cause:

Incorrect settings in website's CMS: If the website's time zone is not defined in the CMS's general settings, then any event plugin that rely the website's time zone will be using the nul value +00:00 instead of the proper time zone offset. In a WordPress site, the default time zone for the entire site is set in Settings > General > Timezone.

Note: If this problem is found and solved, any dateTime value that you was previously populated may be automatically modified (i.e.  20:00:00+00:00 may become 16:00:00-04:00).

3. The timezone offset value is missing

Example: An event is taking place on September 1st at 8:00 pm in New Brunswick.  The proper dateTime value for this event should be "2024-09-01T20:00:00-03:00", but it reads "2024-09-01T20:00:00" instead.
Possible causes

Human error: The structured data is manually populated and the person responsible for this tasks chooses not to include the time zone offset.
Coding error (or decision): A developer might choose to voluntarily omit the time zone value.

Note: This is not as big a problem as the other two. When no time zone offset value is specified, Google presumes that the time zone is the local time zone for the place.

While solving these kinds of problems at the source is usually the preferred course of action, time zone offset errors are so frequent that the Artsdata cannot reasonably contact and support every organization that has a wrong time zone offset value.
Potential solutions
If we want Artsdata to provide quality event data, I believe we must develop a capacity:

to infer the local time zone for an event;
to validate dateTime values against the inferred time zone; and to

to fill in missing time zones; and
correct wrong time zone values.

Inference of the local time zone based on the Place entity
If a place entity can be clearly identified, the local time zone can be inferred base on the city or the province. This method was used in the Spreadsheet to Artsdata MVP developed by A10s. Their script calls an API to retrieve the time zone based on the province's alpha-two standard code.
The key for this kind of programmatic inference is to have a clearly identified Place entity. This is not a given. Very few structured data sources do not have an location.id with a proper URI identifying the place, and even fewer have a location.sameAs pointing to an external persistent identifier.
Inference of the local time zone based on the source
All graphs in Artsdata come from a clearly identified source: sometimes a single organization, some other times an aggregator serving a geographic area. Events from such sources usually all take place within the same time zone (with possible rare exceptions). Until programmatic inference is possible, I propose that we manually assign a local time zone to Artsdata graphs (where possible). That would be a cost efficient means of inferring a local time zone to events.
Inference of time zone was initially in scope for the Nebula project, but it was removed from the scope. This capacity is now needed for the Algorithm for an Event Structured Data Score (discussion https://github.com/culturecreates/artsdata-data-model/discussions/120). We should reconsider the priority for this work.

@fjjulien Thanks for you analysis. I can add that, of the 3 common mistakes you mention, there are additional considerations and that only the 3rd case  can be detected reliably. Here is my breakdown:

The time zone offset value is not adjusted to take into account daylight saving
This case cannot be easily detected. Today, there are 10 time-sensitive regions in Canada that need to be tracked for accurate time.  Recently some regions have stopped using daylight savings, and should therefore not be adjusted. The Footlight CMS has the 10 regions listed.  The only way I see this type of problem getting fixed is for a human to detect that a specific website has this problem across all events in the same time-sensitive region, and in this case it can be automatically fixed. I don't have an example of this case. @fjjulien Can you provide a website with this problem?

The timezone offset value is defaulted to +00:00
This case cannot be easily detected. Sometimes the time zone is specifically set to UTC and is correct. It is fairly common for computer systems do this and still maintain accurate time (8 PM  on 2024-08-31 becomes 2024-09-01T00:00:00+00:00 in the data) . For example, GTQ uses +00:00 for all their startDates. Also, organizations like OSAC which span different timezones has specially decided to use this approach until they can find a better solution. As in the previous case, the only way I see this type of problem getting fixed is for a human to detect that a specific website has this problem across all events, and in this case it can be automatically fixed by giving assigning the website to a time-sensitive region.  I don't have an example of this case. @fjjulien Can you provide a website with this problem?

The timezone offset value is missing
This case is possible to auto-detect. Once detected, it can be fixed by assigning the website to a time-sensitive region.  There is only one website loaded into Artsdata with this problem spectart.com and I propose we use this as an example that can be fixed by assigning "Eastern Time" as the time-sensitive region. The task in Nebula will be to add a "post import" transform (sparql) that will be assigned to this artifact, and it will run every time this artifact is imported into Artsdata.

@saumier
1. The time zone offset value is not adjusted to take into account daylight saving
I don't know of any website that has this problem across all events. @dlh28 may (or not) have stumbled upon this case among her Digital Discoverability Program clients.
2. The time zone offset value is defaulted to +00:00
The Imperial Theatre (St. John, NB) has this issue. However, it's not their only dateTime issue: their date follows a YYYY-DD-MM syntax, and there is no time value. Again, we'll try to look for a case among program clients.

@saumier Voici un autre cas de mauvais fuseau horaire.
Theatre New Brunswick a des données structurées sur leur billetterie (Thundertix). Ces données ont les propriétés obligatoires d'Artsdata. Par contre, la valeur du fuseau horaire est erronée: le fuseau horaire par défaut est celui du Centre plutôt que celui de la région Atlantique. Ce fuseau horaire est peut-être défini par le serveur de leur compagnie de billetterie.
Exemple d'événement
Résultat du validateur de données


Cargo check --all-targets failed for stripe::Stripe is private

:) cargo c
    Checking orc-rust v0.3.0 (/home/xuanwo/Code/datafusion-contrib/datafusion-orc)
error[E0603]: struct `Stripe` is private
  --> src/bin/orc-metadata.rs:4:57
   |
4  | use orc_rust::{reader::metadata::read_metadata, stripe::Stripe};
   |                                                         ^^^^^^ private struct
   |
note: the struct `Stripe` is defined here
  --> /home/xuanwo/Code/datafusion-contrib/datafusion-orc/src/stripe.rs:91:1
   |
91 | pub(crate) struct Stripe {
   | ^^^^^^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0603`.
error: could not compile `orc-rust` (bin "orc-metadata" test) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `orc-rust` (bin "orc-metadata") due to 1 previous error

Should we export it? The bin orc-metadata failed to build for this.


Problem with api under lollipop

Hi
Thanks for your great library.
Everything is good but I get android.view.InflateException on api under Lollipop
I don't know the source of error.
Could you please save me!
PS : your demo app also has this problem.
java.lang.RuntimeException: Unable to start activity ComponentInfo{ir.marmarsefid.clean/ir.marmarsefid.clean.activity.TestCardStack}: android.view.InflateException: Binary XML file line #5: Error inflating class com.mutualmobile.cardstack.CardStackLayout
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
                                                                        at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:136)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                        at java.lang.reflect.Method.invokeNative(Native Method)
                                                                        at java.lang.reflect.Method.invoke(Method.java:515)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                        at dalvik.system.NativeStart.main(Native Method)
                                                                     Caused by: android.view.InflateException: Binary XML file line #5: Error inflating class com.mutualmobile.cardstack.CardStackLayout

Thanks in advance

@mmahamed On it :+1:

@mmahamed Just pushed out a fix. Let me know if it's working for you so that I can close this issue.

dear @tushar-acharya
Thanks a lot because of your speed and attention.
I tested your changes and worked great in 'Genymotion Samsung galaxy s5 with android 4.4.4 emulator' and 'Samsung galaxy tab 7.0 plus with android 4.1.2 real device'
God bless you.

And Please update maven repositories so we can get new version via gradle.
Thanks again

@mmahamed Done :+1: Thanks for notifying about the issue


add note to readme directing users to the react beta

Just a quick note, we have a full explanation in the development readme

Also, we should bump the stable release version to get this into the main npm README file


Add reminder to check npm run start script

Codecov Report

Merging #1871 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #1871   +/-   ##
======================================
  Coverage    6.31%   6.31%
======================================
  Files          93      93
  Lines        4069    4069
======================================
  Hits          257     257
  Misses       3812    3812

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 50a7c26...8d939fa.


Fix == operator when comparing null values

Say we have
Hotkey x = null;
Hotkey y = null;

then currently x == null and x == y will both evaluate to false.

Tested issue. Working as expected now.


Bug importing images: Unnecessary extra line break

When I imported the data, images have extra line break that makes that markdown render fails:
[![](http://3.bp.blogspot.com/-1YWpZDBcjag/VecxCz5U_eI/AAAAAAAADEA/EVPPJL0zhbw/s640/CartelMurciaUrbanSUP%2B2015%2BINFO.jpg)

](http://3.bp.blogspot.com/-1YWpZDBcjag/VecxCz5U_eI/AAAAAAAADEA/EVPPJL0zhbw/s1600/CartelMurciaUrbanSUP%2B2015%2BINFO.jpg)
```

should be:

```
[![](http://3.bp.blogspot.com/-1YWpZDBcjag/VecxCz5U_eI/AAAAAAAADEA/EVPPJL0zhbw/s640/CartelMurciaUrbanSUP%2B2015%2BINFO.jpg)](http://3.bp.blogspot.com/-1YWpZDBcjag/VecxCz5U_eI/AAAAAAAADEA/EVPPJL0zhbw/s1600/CartelMurciaUrbanSUP%2B2015%2BINFO.jpg)
```

Good catch. Want to do a PR?

I don't understand the part of the code to fix this :P
On Saturday, September 19, 2015, Juho Vepsäläinen<EMAIL_ADDRESS>wrote:

Good catch. Want to do a PR?
—
Reply to this email directly or view it on GitHub
https://github.com/bebraw/blogger2ghost/issues/17#issuecomment-141639841
.

maybe here?
https://github.com/bebraw/blogger2ghost/blob/master/lib/convert.js#L249

Yeah, that could be it. It would be wise to extract that part to a module of its own and write a test to see if that's the culprit.


 I think it is time for me to stop working for the day :)

@wally-the-cartographer merge

Merge requested by authorized user cschuet. Merge queue now has a length of 1.

Haha, same here - classic "let me finish one more small thing before I leave".


add to melpa?

It'd be handy if this were on melpa.

Yes, please consider doing so!

I guess we can close this issue now...

Right :-)


Profile does not show that you follow after following

Steps to reproduce:

Go to profile you don't follow
Tap follow (follow sheet opens)
Confirm follow (Follow sheet retracts after delay. See related issue #945)

What happens: profile still says "Follow" as if you did not follow it. If you refresh, the correct follow status will be reflected.
What should happen: profile following status should be refreshed as soon as follow sheet retracts.

Could be related to https://github.com/subconsciousnetwork/subconscious/issues/938

FWIW I've seen this work in the last day, so this may be intermittent / latency / racing?


new project - llm hybrid search + RAG claude (unfinished)

hey @Shubhamsaboo, this is an unfinished pr for our project LLM App with Hybrid Search and RAG - Claude, built on RAGlite and Chainlit.
The System is working as of now, but I still need to fix a couple of bugs. So don't merge yet please

Info:
So I am using 3 API keys and 1 Url here:

openai for embeddings (can't switch because of the 3072 dimension size, I couldn't find any that big in cohere)
claude for text generation llm (luv claude, could you gemini too as users can get it for free )
cohere for reranking (this needs to be followed as per RAGlite framework, I initially wanted to use the newly release cohere rerank 3.5, but couldn't get its model name up on litellm yet.)
PostgreSQL DB URL: from Neon ; (recommended in the RAGlite docs)

Issues

I couldn't find a way to hide these keys (as passwords) in Chainlit. The chainlit has 2 ways of letting user give message: cl.AskUserMessage function and cl.sidebar.text_input (gives an error continuously). we cannot directly mask the input for sensitive information like API keys using this function as it doesn't have a "secret" parameter in them. https://docs.chainlit.io/api-reference/ask/ask-for-input
made a fallback mechanism whenever the query is not related to the doc and let claude answer, but it doesn't work properly (have to identify the bug)
whenever you upload a particular pdf and then start over in the same chat session, it has the previous pdf in memory and sometimes hallucinates while responding to a query, even tho you added a new pdf (have to find a logic and solution to this)
also the reason the code is a little long is because I added a couple of extra functions - I wanted the user to be able to retry functionality immediately for failed inputs

if we figure these bugs out, we can easily do the same with llama/qwen too as the logic would be the same

Here are some possible solutions:
1. Secure Password Input Implementation
import chainlit as cl
from typing import Tuple
import getpass

async def create_password_input(key_type: str) -> cl.Action:
    """Create a custom password input action."""
    return cl.Action(
        name=f"submit_{key_type.lower()}_key",
        value="",
        description=f"Enter {key_type} API Key",
        inputs=[
            TextInput(
                id=f"{key_type.lower()}_key",
                label=f"{key_type} API Key",
                type="password"
            )
        ]
    )

async def get_valid_api_key(key_type: str, validation_prefix: Tuple[str]) -> str:
    """Enhanced API key validation with secure input."""
    while True:
        try:
            # Create action with password input
            action = await create_password_input(key_type)
            await cl.Message(
                content=f"Please enter your {key_type} API key:",
                actions=[action]
            ).send()

            # Wait for user input
            res = await cl.get_action_input()
            if not res:
                continue

            key_value = res[f"{key_type.lower()}_key"].strip()

            # Validate key format
            if not any(key_value.startswith(prefix) for prefix in validation_prefix):
                await cl.Message(
                    content=f"❌ Invalid {key_type} API key format"
                ).send()
                continue

            return key_value

        except Exception as e:
            logger.error(f"Error processing {key_type} key: {e}")
            await cl.Message(content=f"Error: {str(e)}. Please try again.").send()

2. Fallback Mechanism Fix
The issue with the fallback is likely due to improper state management. Here's the fix:
async def handle_fallback(query: str, msg: cl.Message) -> None:
    try:
        user_env = cl.user_session.get("env")
        if not user_env or "ANTHROPIC_API_KEY" not in user_env:
            raise ValueError("Missing Anthropic API key in session")

        client = anthropic.Anthropic(api_key=user_env["ANTHROPIC_API_KEY"])

        # Add system message for better context
        messages = [
            {
                "role": "system",
                "content": "You are a helpful AI assistant. When the question is not related to any uploaded documents, provide a general response."
            },
            {"role": "user", "content": query}
        ]

        response = client.messages.create(
            model="claude-3-5-sonnet-20241022",
            max_tokens=1024,
            messages=messages,
            temperature=0.7  # Add some variability
        )

        full_response = response.content[0].text
        await msg.update(content=full_response)  # Use update instead of send

        chat_history = cl.user_session.get("chat_history", [])
        chat_history.append((query, full_response))
        cl.user_session.set("chat_history", chat_history)

    except Exception as e:
        logger.error(f"Fallback error: {str(e)}")
        await msg.update(content=f"Error in fallback response: {str(e)}")

3. PDF Memory Issue
To fix the PDF persistence issue, implement a clear database function and call it when starting over:
async def clear_database():
   """Clear all documents from the database."""
   try:
       from sqlalchemy import create_engine, text

       user_env = cl.user_session.get("env")
       engine = create_engine(user_env["DB_URL"])

       with engine.connect() as conn:
           # Clear documents and embeddings
           conn.execute(text("TRUNCATE TABLE documents CASCADE"))
           conn.execute(text("TRUNCATE TABLE chunks CASCADE"))
           conn.execute(text("TRUNCATE TABLE embeddings CASCADE"))
           conn.commit()

       logger.info("Database cleared successfully")

   except Exception as e:
       logger.error(f"Error clearing database: {str(e)}")
       raise

@cl.on_chat_start
async def start():
   # Add this at the beginning of the function
   await clear_database()
   # Rest of your existing code...


Documentation

Description

added model & router endpoint for changing team member role
added 3 tests
updated documentation for all routers to reflect new numbering system

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Change Status

[x] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?

[x] Test A - Insomnia
[x] Test B - local test env

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] There are no merge conflicts

 Create endpoint for assigning user role


Firefox V44.0: Error Youtube type

An error ocurred when Youtube video load in Firefox version 44.0:
El atributo "type" especificado de "video/youtube" no se admite. Ha fallado la carga del recurso de medios http://www.youtube.com/watch?v=XXXX

I'm getting the same issue. Even your example page doesn't work
http://mediaelementjs.com/examples/?name=youtube

Looks like we'll need to change this to use an iframe and then take that
over instead of a video tag
On Wednesday, February 3, 2016, Zero-K<EMAIL_ADDRESS>wrote:

I'm getting the same issue. Even your example page doesn't work
http://mediaelementjs.com/examples/?name=youtube
[image: mediaelementjserror]
https://cloud.githubusercontent.com/assets/351505/12781895/aac6166a-ca4d-11e5-923a-5bd19514c593.PNG
—
Reply to this email directly or view it on GitHub
https://github.com/johndyer/mediaelement/issues/1684#issuecomment-179190656
.

--
John Dyer - http://j.hn/

Is there a quick workaround to solve this issue? I get this error in older Firefox versions (e.g. 38), too. Think the problem only occurs with the newest flash version <IP_ADDRESS>6. Everything works fine on <IP_ADDRESS>. Thanks.

I'm getting that error too.

On Safari too

I've committed some changes that will shift the over to the iframe API for
YouTube which will restore functionality on Firefox.
However, I haven't tested all the changes yet for older browsers, so please
use with caution.
Download the latest source and build to use.

John, thank you so much for your help. I've tested the latest source and it still doesn't work for me with the newest flash version <IP_ADDRESS>6 on Firefox (e.g. 44.0). I can view the video only once. When I reload the page a try to start it again the screen remains black. I also still get the error Usua has in his screenshot above.

Mmm... Youtube should be sending Firefox the HTML5 version of its player.
You'll always get the type error since it's not a real type, but then it
should be replaced by an iframe element with YouTube's HTML5 player inside.
JD
On Sat, Feb 6, 2016 at 5:35 AM, ijtichy<EMAIL_ADDRESS>wrote:

John, thank you so much for your help. I've tested the latest source and
it still doesn't work for me with the newest flash version <IP_ADDRESS>6 on
Firefox (e.g. 44.0). I can view the video only once. When I reload the page
a try to start it again the screen remains black. I also still get the
error Usua has in his screenshot above.
—
Reply to this email directly or view it on GitHub
https://github.com/johndyer/mediaelement/issues/1684#issuecomment-180741212
.

--
John Dyer - http://j.hn/

I'm also having this issue with Firefox (using the latest build). It simply won't play youtube videos with flash. If i completely disable flash in plugins, then the videos play, using the html5 player.
Also noticed that if i clear all my browser cache i can watch the video once, then if i refresh again its unplayable. Works fine in both chrome and IE.
Any updates on this issue?

With the newest build I still get the flash player. The problem is exactly the same as qua1ity describes it.  When you delete the browser history you can play the video once. To be precise, it depends on the check box "Site Preferences". If you delete them you can play the video again - but only once.

Just to be clear, there is not no updated build. The updated files are in
/src/js/, so you can either use /test/test.html or run the grunt build. You
should see in the console "2.20.0.beta".
This version should do what @qua1ity describes by removing "video/youtube"
from the flash entry.
On Sun, Feb 7, 2016 at 1:55 PM, ijtichy<EMAIL_ADDRESS>wrote:

With the newest build I still get the flash player. The problem is exactly
the same as qua1ity describes it. When you delete the browser history you
can play the video once. To be precise, it depends on the check box "Site
Preferences". If you delete them you can play the video again - but only
once.
—
Reply to this email directly or view it on GitHub
https://github.com/johndyer/mediaelement/issues/1684#issuecomment-181094222
.

--
John Dyer - http://j.hn/

Thanks, John. Got it work using /test/test.html.

Thanks! That works :)

Thanks, @johndyer. The files in /src/js/ seems to do it, making Firefox use the html5 player instead of flash (which works). However, some functions that i'm currently using in my project stops working accordingly.
For example the following code works perfectly fine with the build but not with the src one. Seems to work better in Firefox, compared to Chrome, but its very inconsistent. Sometimes "player2" runs and sometimes it doesn't.
    <video id="player1" preload="preload">
        <source type="video/youtube" src="https://www.youtube.com/watch?v=q7o7R5BgWDY" />
    </video>

    <video id="player2" preload="preload">
        <source type="video/youtube" src="https://www.youtube.com/watch?v=q7o7R5BgWDY" />
    </video>

    $('video').mediaelementplayer({
		success: function (player) {
			player.addEventListener('ended', function () {
			    $('#player2')[0].player.play();
			});
		}
    });

Thanks for the update @johndyer!
Just in case anyone else runs into this issue, you have to add "youtube" to your plugins list if you specify them in your options. Otherwise it just shows "Download File". Took me a little bit to figure out what I was doing wrong :)

I'm fairly new to MediaElement.js, but appreciate the work that's gone into this. That said, this is a legitimate issue with Firefox - as pointed out not even your own Youtube demo page actually works.
@johndyer I'm trying to wrap my head around exactly what your instructions are that we're supposed to do in order to get Media Element to work in Firefox with Youtube; if you could please provide instructions on which files to use and a working code sample I'd be grateful. I looked in test.html and didn't see anything about a youtube-source video anywhere; clearly I'm missing something?
Also, does the current fix affect the support for regular and Vimeo sources in any way or will those still work?
And finally, is there any timeline as to when a bugfix update for this issue will be released? We were hoping to use this library for clients but need to of course ensure we have a working system before we can do that.

@johndyer When can we see the update build of this bug? The solution of "src/js/" is not enough to finish some bugs. Like in @qua1ity comment. Some functions stops working.

@qua1ity In my test page with 2 YouTube videos, it seems to work in both
Chrome and Firefox. What isn't working?
@jandrozd When you say "some functions stops working" can you explain what
isn't working?
On Thu, Feb 18, 2016 at 8:54 AM, jandrozd<EMAIL_ADDRESS>wrote:

@johndyer https://github.com/johndyer When can we see the update build
of this bug? The solution of "src/js/" is not enough to finish some bugs.
Like in @qua1ity https://github.com/qua1ity comment. Some functions
stops working.
—
Reply to this email directly or view it on GitHub
https://github.com/johndyer/mediaelement/issues/1684#issuecomment-185755070
.

--
John Dyer - http://j.hn/

@johndyer the code example in my previous post is not working consistently with the html5 player. Sometimes player2 starts playing after player1 ends, and sometimes it doesn't. And it seems like chrome is doing worse in this case, but with flash it's all good.
Did you try this with youtube and the html5 player?

In Firefox 45.0.1 the youtube-video is still not working.
I get the same Message like @Usua
The specified "type" attribute "video / youtube" is not supported.
All candidates for the resource could not be loaded. Media loading pauses.

@Usua Is this still an issue?

Closing this issue since no answer has been posted in more than 2 weeks. If you'd like to reopen this, let us know. Thanks!

yes, still can see this error
FF 49.0

Do you have a URL where I can see this issue?


Remove verify from jwt.decode() to follow PyJWT v2.2.0.

According to the setup.py, simplejwt supports PyJWT v2.0.0 or later.
https://github.com/jazzband/djangorestframework-simplejwt/blob/7759aa810942863fa1c3885b7bbc2d3125e5166d/setup.py#L59
In this case, you can simply remove meaningless verify argument from jwt.decode() to support PyJWT v2.2.0.
Closes #467

Thanks for this! No bother. I'm in class rn, but do you mind checking PyJWK has the same args?

PyJWS does not have the same arguments.  aud, leeway, and iss are used only in PyJWT and PyJWS does nothing for the aud, leeway and iss ( because aud, iss and exp/nbf/iat(leeway) are JWT claims). So you don't need to care about that.

do you mind checking PyJWK has the same args?

PyJWS does not have the same arguments. aud, leeway, and iss are used only in PyJWT and PyJWS does nothing for the aud, leeway and iss ( because aud, iss and exp/nbf/iat(leeway) are "JWT" claims). So you don't need to care about that.

I shouldn;t have convinced by your breaking change. that should have done in v3.0.

@dajiaji since we're passing all those args in token.decode, I worry that Python will throw an error saying too many arguments.

@dajiaji since we're passing all those args in token.decode, I worry that Python will throw an error saying too many arguments.

There is no need to worry. This simplejwt does not call PyJW"S" decode() directly except for the test that I modified and PyJW"S".decode() is called only in PyJW"T".decode() with correct arguments. No unexpected arguments will be passed to the PyJW"S".decode().
@auvipy I think it is better to revert the breaking change once (and release v2.2.1) too. But anyway, this PR is useful for the future v3.0.0 release.

as already reverted


Add a barrier op that tries to terminate as close to the same time on each chip as possible

From parent issue:
The purpose of this issue is to implement an op that acts as a barrier within a performance profiling trace run. The ops should be written to complete on every chip at as close a time as possible so that there is minimal start skew across chips for the sequence of ops that follow. With high skew in starting time across chips, it is very difficult to reason about core performance issues in a handful of CCL ops.

[ ] Port existing ring latency microbenchmark to be exposed as a standalone op

Don't enable with EDM yet
benchmark path: tests/tt_metal/tt_metal/perf_microbenchmark/ethernet/test_ethernet_hop_latencies_no_edm.cpp

[ ] Update implementation to connect to EDM
[ ] Optimize implementation to minimize barrier time

Chip Start Skew Issue
With multi-chip alignment on profiler, we see quite massive skew between devices (atleast 17us). Is this within the anticipated vairation?

When kicking off trace we see upwards of 55us delta between earliest and latest launch. This seems to loosely carry forth through future invocations of the eriscs (likely affecting reported numbers):

Once we get into the middle of the trace, we are looking at around a 12-14us start time skew between erisc kernels on different chips

Barrier Op has been created and was pushed to the main branch


Improving the 'Why to join us?' section

issue #148

please add some screenshots of after edits.

Yes sure!

Thanks, @DeveloperAshish8, happy to contribute. Looking forward to learning and contributing more to the community😀


Add role memberships endpoint

Desired Outcome
Support the Role Membership endpoint. Default behavior should use the recursive membership method (?all), but also support direct membership only queries (?memberships).
Implemented Changes
Added the following URL template and relevant API methods to return a JSON list of role memberships:
ROLES_MEMBERSHIPS = "{url}/roles/{account}/{kind}/{identifier}?{membership}"
Connected Issue/Story
CyberArk internal issue link: ONYX-24035
Definition of Done
At least 1 todo must be completed in the sections below for the PR to be
merged.
Changelog

[x] The CHANGELOG has been updated, or
[ ] This PR does not include user-facing changes and doesn't require a
CHANGELOG update

Test coverage

[x] This PR includes new unit and integration tests to go with the code
changes, or
[ ] The changes in this PR do not require tests

Documentation

[x] Docs (e.g. READMEs) were updated in this PR
[ ] A follow-up issue to update official docs has been filed here: insert issue ID
[ ] This PR does not require updating any documentation

Behavior

[ ] This PR changes product behavior and has been reviewed by a PO, or
[x] These changes are part of a larger initiative that will be reviewed later, or
[ ] No behavior was changed with this PR

Security

[ ] Security architect has reviewed the changes in this PR,
[x] These changes are part of a larger initiative with a separate security review, or
[ ] There are no security aspects to these changes

Looks good. I just want to wait until you have a draft PR in the CLI so I can see the integration tests and verify the output is the same as in the Ruby API.

CLI PR with integration tests


pointStyle in bar dataset does not work

Expected Behavior
With PR #8341, the bar dataset can be configured setting pointStyle options in order to get the pointStyle in the legend.
Current Behavior
Even if the pointStyle is defined in the bar datasets options, the legend is still using the "normal" box and not the pointStyle.
Furthermore the documentation sounds to be not correct because the pointStyle should have the default to 'circle' but this default is never defined. The default should be undefined.
Steps to Reproduce
https://codepen.io/stockinail/pen/qBqadGa
Environment

Chart.js version: dist/master
Browser name and version: FF 85.0.2

Forgot usePointStyle in legend.labels.

Furthermore the documentation sounds to be not correct because the pointStyle should have the default to 'circle' but this default is never defined. The default should be undefined.

When usePointStyle in legend.labels is set, default 'circle' is correct

error still exists


update motor controller functions

for a smoother ride

just tell me if it works and then i will clean up the code.

It does not work, motors go immediately full speed after receiving a non-zero setpoint.
Thanks for the UF2 file, the next time just post it in the pull request (instead of adding it to the GitHub history).

I did exchange the encoder connection. The ramp-up is much smoother, however the ramp down is also much smoother. At a setpoint of 0 RPM I would expect the robot to stop immediately (or at least faster than it does now).

I can confirm that both instant stopping at a 0 RPM set-point as well as re-setting the controller upon activated emergency switch works :+1: . I strongly suggest merging this PR and opening a new PR for the next feature (whatever that may be).


Feature request: expose className for layout components

I am having a problem with customizing layout components (Flex, Block, ColGrid, Col) - sometimes I need to apply some style that is not intended by the library, e.g. change flex direction for Flex. And the only way to achieve that right now is just to replace the component with div with the required styles.
This could be improved by adding className prop to the layout components and appending the value of this prop to the inner div.

Hi @sVerentsov,
thanks for using our library! We are currently working on customization and extending all components to expose native HTML/JSX attributes.

@sVerentsov you can checkout this comment for more info :)

Closing as this should be possible with the v2 release.


Publish ZIP to bintray

Please publish the build artifact to a repo (jcenter / bintray?)
a start: https://github.com/yahoo/kafka-manager/pull/78/files
Granted these should be yahoo credentials

Related https://github.com/yahoo/kafka-manager/issues/18

@aaronzirbes Close this issue please. Pay attention to #18 .

any movement on a binary release?  thanks!

It looks like the zips haven't been updated in 6 months. Issue #18 looks closed. Has anyone else got packages available?


feat: merge grpc-js into grpc instrumentation #1657

I splitted this PR into 3 commits following my process:

i migrated the grpc-js patches into the grpc instrumentation
then i refactored the grpc patches to match how grpc-js was architectured
finally i updated the main instrumentation class to load both grpc and grpc-js patches.

Fixes #1657

@obecny @dyladan I think i have another way of architecturing this that would avoid exposing protected in the public api, i'm converting back to draft while i'm working on this

@obecny @dyladan I think i have another way of architecturing this that would avoid exposing protected in the public api, i'm converting back to draft while i'm working on this

I've rewrote the GrpcInstrumentation class to be some sort of proxy for both GrpcJsInstrumentation and GrpcNativeInstrumentation, it exposes the same API than instrumentation so it should be the same from end users.
PTAL @obecny @dyladan also @markwolff since i believe you wrote initial plugins

I've rewrote the GrpcInstrumentation class to be some sort of proxy for both GrpcJsInstrumentation and GrpcNativeInstrumentation, it exposes the same API than instrumentation so it should be the same from end users.
PTAL @obecny @dyladan also @markwolff since i believe you wrote initial plugins

pls remove locks

cc @obecny i've rebased + removed package locks


⚠ Bofrost.at has degraded performance

In da91094, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1603 ms

Resolved: Bofrost.at performance has improved in 18562e0.


Ensure pip-tools is upgraded before other dependencies

 Ensure pip-tools is updated to the latest version before other dependencies

Looks good! We might as well backport this to Metecho and OddBooks as well, yes?

Ah, I guess maybe that's not needed because it's handled by the Dockerfile? I see it in Estimating Engine already, but not in Metecho or OddBooks.

That's correct. The ones that use the setup-docker action don't need it because the Dockerfile installs the latest pip + pip-tools for us. Metecho actually ends up downgrading pip-tools because it's listed in the dev requirements


Wrong message when network compatibility couldn't be verified

Chore
Update copy / CTAs in error message when network compatibility couldn't be verified.
Tasks

[ ] Copy update

We were unable to verify network compatibility.
Your connection may not work as expected, and transactions may not be seen by the network.

[ ] Add error message in fixed height panel
[ ] Add copy button (so that someone can go troubleshoot themselves)

Sketch

Current message

Quick mockup of this, with a max width defined for larger screen sizes. If the wallet is at it's smallest viewport I've stacked the CTAs. Figma link here ↳


Add a flow to deploy custom fields and rollups for testing account soft credits

This adds a set of unpackaged metadata with custom fields and rollups for testing account soft credits (retrieved from @dgamboni's scratch org) and a new flow which can be used to deploy them when desired.
To use it, first deploy NPSP using a standard flow like dev_org. Then run cci flow run config_acctsc_rollups --org orgname. This will enable customizable rollups and deploy the fields and rollups. But it won't take care of adding the fields to the Account page layout.
Critical Changes
Changes
Issues Closed
New Metadata
Deleted Metadata

Is it worth it to add the Account page layout to the config for this flow also?

I thought about including the Account page layout. Was worried that including it would override core NPSP page layouts leaving out any fields that get added after now.

We'd have to keep this (and any other emergent configs) up to date. Likely requires some thought/strategy but I think the benefit of not having to drag like 12 fields onto the layout is good enough here.

@force2b automating those adjustments to buttons sounds like a good idea, but probably belongs in the standard dev org config rather than in a feature-specific metadata package, right? I'd prefer to tackle that as a separate work item.

@davisagli @force2b I would suggest not putting the button fixes in the standard config but instead in the qa config. I'd want it to be separate to only use when needed, otherwise I'd worry about retrieving them when working on an item.

Thanks @jjbennett, that makes sense.


Remove dashmap

The bundler uses the “DashMap” crate to handle multi-threaded hashmaps.
The dependency include significant amounts of unsafe code, which is unaudited. We’ve a large amount of exceptions that point at different dashmap sections. Segmentation faults have been previously reported on the dashmap repository, since its code is inherently memory unsafe and prone to such memory bugs.
This commit removes this dependency replacing it with RwLock structures. I've already tested that this does not introduce a large regression.
Previous problems:

https://github.com/xacrimon/dashmap/pull/290
https://github.com/xacrimon/dashmap/issues/167
https://github.com/xacrimon/dashmap/issues/139
https://github.com/xacrimon/dashmap/issues/127
https://github.com/xacrimon/dashmap/issues/97
https://github.com/xacrimon/dashmap/issues/107

Resolving 500k imports in a real-world application as this stands
Unsafe parcel resolver

total_runs=10
average_duration=2.2535219919

Safe parcel resolver

total_runs=10
average_duration=1.9010456582000004

Atlaspack resolver without dashmap

total_runs=10
average_duration=3.2973253873000004

This is slower than it was, but still plenty fast. I want to accept a regression. We can make this faster if there is bulk loading of file-system metadata.


Can't export pointcloud from a geo-neus model

Describe the bug
When i finished training a geo-neus model ,I can't export a pointcloud by "ns-export pointcloud".
Screenshots
The command I entered is as follows:
ns-export pointcloud --load-config outputs/geo-volsdf-dtu24/geo-neus/2023-03-16_114255/config.yml --output-dir pointcloud/scan24 --num-rays-per-batch 4096
The console error is as follows：

Additional context
I found the fucntion and try to print the "pipeline.datamanager.next_train(0)".It has 3 items:"RayBundle","images"and"uv".

Hi, I will take a look later. You could also use ns-extract-mesh to extract a mesh from geo-neus which will likely give you better results because geo-neus is a sdf-based method.

Thank you for your advice. I will try it later.


Merge Kit Types

This PR addresses several kit-related requests and issues since 0.11.0.

There are no longer distinct kit types. Each kit can have any of the parameters. This addresses using clang-cl in a Visual Studio environment, which is a long-standing issue.
There is no a special implicit kit created in memory called __unspec__. It's never written to disk, and it's display name varies by context, but it has no options defined. This allows users to fall-through to CMake's own compiler deduction.

Still on the docket is to refactor out KitManager to not be so intrusive and more easily testable.

I slapped down the AppVeyor builds because it's wasting my time. I waited for at least one to finish green, so I feel good about this.


Added setting for sticky mentions

when enabled, sticks recent mentions, that have scrolled by, to top of chat

POGGERS, another one
i'll check it out when im free (even though im sure it's good!) <3

looks good to me :D
would be cool to come up with some way to fix the multiline -> single line thing, but this is good anyway!


TOMO scan blocks stopped at 12,177,002

https://scan.tomochain.com/blocks

thanks for your report. This is our fullnode issuer. Now is come back


Company Communicator APP issue

Company Communicator been getting an error while sending messages inside Corp Comm (Authors) application added inside Teams channel.
All the members/owners added in the Team are facing the same issue behavior.
The issue is persistent on Teams Desktop and web app.
While sending the communication to the users we are getting the attached error.

Hi @ManasaMShastri ,
Thanks for raising the query. We don't have this sending option -send in chat to list of users provided in a CSV file. . Our support scope is limited to the standard version of CC. Please let us know if you have any queries w.r.t official version of CC. We are more than happy to assist you.

Hi
Can we upgrade the company from current version to V5 version we need support for the same.

Hi again,
Since the deployed version is of custom type, we recommend you to go with fresh deployment of CC pointing to official version of Company Communicator.
Please let us know if there are any points holding on to stay with the same custom version only.


DNS resolution for host network containers does not work.

Rancher Version:v1.1.1
Create service - s1 with scale 1 in networkMode": "host"
Create service - s2 with scale 1 in networkMode": "host"
Create service alias - WEB1 to service s1 and s2.
dig on WEB1 does not return ip of containers from both s1 and s2.
Also we see warnings:

Tested with latest master build.
All automated test runs realting to host network which were failing works as expected.


Add support for config files

Add support for config files, so that the SMTP and proxy server details can be configured there as well as a default subject, cc. bcc, from-address and reply-to-address.
Make the config path configurable, so that you can have different configuration files per environment.

Alright, I've added robust support for loading property files, inpustreams or classpath files.
There are two levels of property files:

default simplejavamail.properties from the classpath. If available, automatically loads properties from there.
Loading manually from classpath file, system file or inpustream

When loading properties manually, you can choose to replace the entire list, or just add the new properties to the existing one.
An example where this might be useful is when you wish to provide defaults in the application and per environment provide more specific values.


Feature request: Experiment's able to hint at their data file format

hi,
i've been contemplating a jamovi integration with jatos (either through docker, or through https://cloud.jamovi.org), however it looks as though the results data format is up to the experiment (i.e. i use labjs a lot, and its results are jsonlines), meaning we'd need to rely on some sort of 'auto detection' if we wanted to allow people to open those data files.
a more robust solution would be for jatos to allow the experiment to record what sort of file format the experiment writes, and then jamovi could be provided that information ... it could even happen transparently, and could be based off the content-type of the POSTed data payload (although i appreciate there's a one-to-many relationship going on there ... the results are not a single file of a particular type, but rather many files concatenated together).
thoughts?
with thanks

Hi,
You are correct, the result format is up the experiment, JATOS doesn't care for the format as long as it is text.
JATOS allows result data to be stored in the database or as files. The data stored in the database can overwrite eventually existing ones or append to them.
I can imagine to optionally store the content type for each result (e.g. as MIME types). But as you said: there are potentially many for each experiment, so it should be more of a list of content-types. Or, alternatively, we only store it once and expect / assume that all following data are stored in the same format (e.g. assume that once JSON, always JSON).
But then to specify the content type would be still voluntary and jatos.js would submit result data even without specifying it. Tools like lab.js will have to support it and old experiments won't have it anyway. I'm a bit unsure if it will be used.
But I have to admit I'm not a user of jamovi. And I'm just curious: why not just let the user import the data into jamovi and let them deal with the data format themselves (it their data and they know them best).
Best,
Kristian

alternatively, we only store it once and expect / assume that all following data are stored in the same format (e.g. assume that once JSON, always JSON).

yeah, probably a reasonable assumption.

why not just let the user import the data into jamovi and let them deal with the data format themselves

i think both JATOS and jamovi exist to make things more straight forward for the user, and removing unnecessary steps is kinda what we both do, right?

(it their data and they know them best)

i think there's reasons why this isn't as true as it once was. as tools have become easier and easier to use, we've empowered a lot of less capable people to design their own experiments (labjs et al.) and deploy their own experiments (JATOS). ... at the same time, i think there's growth in the publishing and sharing of experiments, and people making use of other's work. a consequence is that people might "know their data", but they may not know "the format" of their data -- say the subtlety of the difference between json, and jsonlines, etc. etc.
surely, the dream for running an experiment is:

people browse for the experiment they want
customise it the way they want
deploy it (JATOS)
click a button, and bam, there's a summary of all the important measures from the experiment

i see opportunity here for streamlining the 3 -> 4 process
i'm thinking of it from jamovi's perspective, but there are countless other web based pipelines that this would enable too ... for close to zero work on your end.

Tools like lab.js will have to support it and old experiments won't have it anyway.

i don't think there'd be any reluctance on the side of @FelixHenninger to add it, it would only be a one-liner :)
thanks for engaging.
jonathon

We are working on a public API for JATOS that can help integrating JATOS with other tools, like lab.js, e.g. deploy to a remote JATOS server by pressing a button. Or get the result data automatically into Matlab, R, Python.

yup, well this is basically what i have in mind ... and having "hints" about the format of the incoming data will be great.
but there's a bigger and more interesting question here, and that is how to join the software together in this pipeline ... i'm just thinking out loud here, and don't want to suggest that you haven't thought about it.
a simple approach is for people to be able to provide, say labjs, a JATOS url, and labjs exports directly to that service. similarly, to read the data out of JATOS, JATOS could provide a link with a token that the user could copy/paste into R, or python, or jamovi or whatever. that software downloads it, opens it.
another way (and this is the more compelling option imho) is for JATOS to assume a 'master role', and people can enable labjs, jamovi, etc. as plugins inside of JATOS. then a person can click '+ New Study', or '+New Study with labjs', and labjs opens within JATOS. similarly, on the results page, there's the option 'Option data with jamovi' (or something like it), and the data opens in jamovi within JATOS.
by default, JATOS (presumably) wouldn't ship with these plugins enabled, and it would be up to the user to enable them ... which sounds like a pain to configure ... but we'd just ship a helm chart, and people would tick off the features they want, and helm would bring it all on line. helm is a great way to bring an ensemble of services online and integrate them together.
anyhow, maybe you're thinking along these lines, and maybe you're not, but i think allowing for the tight integration of tools, with JATOS acting as the hub in the middle, is a really compelling user experience.
thoughts?
with thanks

Sorry, for taken a couple days for answering, lot to do on my side.

a simple approach is for people to be able to provide, say labjs, a JATOS url, and labjs exports directly to that service. similarly, to read the data out of JATOS, JATOS could provide a link with a token that the user could copy/paste into R, or python, or jamovi or whatever. that software downloads it, opens it.

We thought along the same line, about tokens for authentication, similar to what GitHub is using, I think the term is API keys. Those tokens then can be used together with an API endpoint to e.g. get result data or upload a study.

another way (and this is the more compelling option imho) is for JATOS to assume a 'master role', and people can enable labjs, jamovi, etc. as plugins inside of JATOS. then a person can click '+ New Study', or '+New Study with labjs', and labjs opens within JATOS. similarly, on the results page, there's the option 'Option data with jamovi' (or something like it), and the data opens in jamovi within JATOS.

I try to wrap my head around this 'opens labjs or jamovi within JATOS'. What would a plugin say for jamovi actually do? I think I need more explanation.

by default, JATOS (presumably) wouldn't ship with these plugins enabled, and it would be up to the user to enable them ... which sounds like a pain to configure ... but we'd just ship a helm chart, and people would tick off the features they want, and helm would bring it all on line. helm is a great way to bring an ensemble of services online and integrate them together.

'helm chart', like this Kubernetes tool (I googled it, never used it myself). Wouldn't this mean that one has to install JATOS by using Kubernetes? I think this would limit JATOS to pretty professional setups and the small lab or single researcher just couldn't use it anymore. Or do I miss something?
Best,
Kristian

What would a plugin say for jamovi actually do? I think I need more explanation.

let me see if i can whip up a proof of concept.

Wouldn't this mean that one has to install JATOS by using Kubernetes? I think this would limit JATOS to pretty professional setups and the small lab or single researcher just couldn't use it anymore.

so a plugin approach would mean that people could continue to use JATOS as they currently do ... however they have the option to enable plugins that may require additional configuration.
having said that, the eco-system emerging on top of kubernetes is really promising in terms of making deploying web services really easy. two prominent examples are portainer and k8s lens. here's a demo of k8s lens. i pick a "chart" from the list, select install, and then it presents me with the values.yaml ... which is the configuration (analogous to the config file that JATOS uses). then i can click 'install' and lens installs it. at any point i can return to the helm "release", tweak the values.yaml and the service will reconfigure itself. (further, docker desktop allows you to launch a kubernetes cluster locally ... so people can try out these things at home without needing to use a terminal).
https://youtu.be/J_grjEV3Pmw
however, uni's tend to be a few years behind the 8-ball ... so i concede -- in the short-term -- a helm chart will probably not see broad use.
however, even having said that, labjs is entirely (?) client side, and in the case of jamovi, there's the cloud version ... so there's routes to providing these things that don't involve anything more complicated than what it already being done by JATOS users. ... but let come back with my proof of concept!
cheers
jonathon

if you've got a moment, could you give me some pointers on building jatos? :P
i installed sbt with brew install sbt, and then ran at the root of the project:
sbt build.sbt

but i get a:
[error] [launcher] error during sbt launcher: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release

i remembered there was a warning about the sbt from brew on this page. so i tried to install an older jdk (brew install java11), but sbt build.sbt threw a lot of errors then.
any tips? i'm happy to spin up a linux container if that's the easiest way forward.
with thanks

OK, here's my very scant proof of concept (and maybe i'll cc @FelixHenninger in too, because i feel like he should be excited ... i certainly am):
https://user-images.githubusercontent.com/3240247/167854642-02edd540-91d1-4d2f-a836-e196714e2f5e.mov

I like it. And it shouldn't be too much work from JATOS' side. How'd you open the lab.js window, in an iframe?

And it shouldn't be too much work from JATOS' side

100%. way less work than stuffing around with authentication stuff ... and a way better ux.

How'd you open the lab.js window, in an iframe?

yup, iframe. although i couldn't get labjs to build, and ended up using chrome and the ignore-x-frame-headers addon and embedding https://labjs.felixhenninger.com/
so we'd have to either:

persuade felix to drop the x-frame headers ... shouldn't be a problem ... i can't think of a meaningful attack that could be performed with a sneaky embedded labjs instance.
ship labjs along with jatos ... in which case you'd probably want to do a plug-in thing.

but there's an API that needs to be spec'ed out here, that goes over the iframe boundary -- so labjs can push the changes back to jatos ...
... and of course we can do the same thing with the results files being able to be opened in an embedded jamovi ... in fact we can do one better ... the experiment can have a "jamovi template" embedded in it, and when opening the results from that experiment, jamovi automagically imports it into the template before presenting it to the user.
here's a vlog i did on labjs and jamovi templates a while back:
https://blog.jamovi.org/2019/03/27/import.html
this is my workflow at the moment, labjs => jatos => jamovi ... so this stuff is really scratching an itch for me at the moment :)

hi,
some updates.
i've hit a snag with labjs: i'm not able to build it. i think the build process needs fixing by felix, but i haven't heard back (he's generally pretty responsive, so i assume he's stuck down a semester rabbit hole at the moment). (issue here: https://github.com/FelixHenninger/lab.js/issues/172). i've tried rolling back to an earlier version of labjs, but again, it errors. i did some work on labjs a couple of years ago, so i was clearly building it then ... so i guess i can roll back then if we get really desperate.
so i've had a bit of a nibble on what a jamovi integration would look like:
https://user-images.githubusercontent.com/3240247/168504794-9baffe81-7583-4252-9ad3-9c4eeb906531.mov
anyhow, let me know your thoughts -- don't let me spend too much time on this if you're thinking of going another direction! :P
to do these properly, jatos will invoke an iframe, and communicate via window.postMessage() ... and i'd suggest the next steps involve speccing out that API ... although i suppose there's some UI work to be done too (but that can be done in parallel).
cheers
jonathon

moved to #features-discussion in slack


Add ability to better control which browsers are used to run the test per run.

The rollups we use to launch testem with various configuration files do not currently support passing command-line options to testem.
A single project that uses only one testem.js file already supports this, i.e. npm test -- --launch Chrome would already work in a downstream project (the bits after the leading -- are appended to the file and other options in the npm script definition).
This ticket covers modifying the test rollups to support the same functionality, but only for key options:

launch:  list of launchers to launch(comma separated)
skip: list of launchers to skip(comma separated)
debug: output debug to debug log - defaults to testem.log

This would allow things like sensible browser includes and excludes for desktop developers with overrides for CI runs.
Anything else can still be handled by taking a single test scenario and launching it manually using testem.  Ideally I would revise the "testing this package" section of the README to describe this process.

One thing I've discussed with @colinbdclark is adding something like node's env, where you define one or more scenarios and control which browsers are launched/skipped based on that.  We had discussed having levels like:

ci: Continuous Integration, run all supported browsers.
dev: Local development, run a subset of browsers, ideally headless, to minimise the time to run all tests.
watch: Run just the tests for things that have changed locally (this is something we probably can't support with this stack).

My thinking is that we'd use context awareness to check an environment variable, and merge environment-specific options on top of the top-level options if an environment variable is found.  So, if the DEV environment variable is set, options.launch would be pulled from {that}.options.env.dev.launch, perhaps with a transform to ensure that there is a fallback to options.launch if options.even.dev.launch is unset.
This would ensure that existing users would not have to change their options to continue using this package in the way they have so far.

This would have to be coordinated with #34, which also uses context-awareness and environment variables.

We might also use this to provide "new headless" support, and take care of #35 at the same time.


Slow compile

I have a few question about ExSwift library and swift projects in general:

Compile of this project is very slow (mac mini, i5, ssd, Xcode 6.1 GM, os x 10.9.5.), it seems that it compiles all the sources of project even if only one file is modified. Do you experience same behaviour with swift projects?

How can I reuse you library as a binary in my iPhone project? I guess this will speed up compiling of my project.

The Swift 1.2 compiler includes support for incremental builds which might help mitigate the issue, see the Swift 1.2 and Xcode 6.3 beta blog post for more details.


Cache files created as root

I would like to cache various files created by the root user during my build. This would allow me to cache Docker steps as well as files downloaded by a different user, see https://github.com/jyn514/docs.rs/runs/349254873#step:18:1 for an example.
Currently this fails with an error from tar:
/bin/tar: ./overlay2: Cannot open: Permission denied
/bin/tar: ./builder: Cannot open: Permission denied
...
/bin/tar: Exiting with failure status due to previous errors

As a workaround, I could probably make the files world-readable, but I have a feeling that they will not be owned by the right user if the cache is hit.

I think this should be as simple as running sudo tar [flags], since tar preserves users and permissions by default when run as root. Not sure how this should work on Windows, permissions work differently there.

@jyn514,
Thanks for reporting this issue. It looks like files not created by the current user will fail during restore. I've opened #133 to track this and combine the various reports of this issue. I've also added your proposed solution to that issue, I don't know if there are downsides to that solution but it's definitely worth looking into.