weave spamming:  Cannot forward frame yet - awaiting contact

On at least two servers I've got weave 0.9.0 spamming Cannot forward frame yet - awaiting contact.  I can't figure out why or how to stop it.
weave 2015/02/18 21:46:15.166429 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:15.961735 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:15.962064 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.165546 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.165786 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.166102 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.166336 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.961517 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:16.961540 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.165717 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.165741 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.964439 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.964686 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.965087 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:17.965390 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.165601 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.165883 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.961494 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.961752 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.962190 ->[7a:27:ac:82:83:6a]: Cannot forward frame yet - awaiting contact
weave 2015/02/18 21:46:18.962274 ->[7a:05:6a:8c:b1:3f]: Cannot forward frame yet - awaiting contact

Here's weave status.  We only have about 7 servers running 20-30 containers in this cluster.
# weave status
weave router 0.9.0
Encryption on
Our name is 7a:76:1a:fe:d2:3c
Sniffing traffic on &{112203 65535 ethwe ca:cc:47:a1:fa:7b up|broadcast|multicast}
MACs:
02:42:c0:a8:04:34 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:07.249381189 +0000 UTC)
02:42:c0:a8:04:3a -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:08.036529412 +0000 UTC)
02:42:c0:a8:01:11 -> 7a:76:1a:fe:d2:3c (2015-02-18 21:47:55.836742824 +0000 UTC)
02:42:c0:a8:0e:01 -> 7a:27:ac:82:83:6a (2015-02-18 21:48:45.501869512 +0000 UTC)
02:42:c0:a8:04:3b -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:08.218323579 +0000 UTC)
02:42:c0:a8:04:3c -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:08.485655531 +0000 UTC)
02:42:c0:a8:04:39 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:08.279755288 +0000 UTC)
02:42:c0:a8:04:54 -> 7a:c3:ea:78:72:dc (2015-02-18 21:47:04.620907277 +0000 UTC)
02:42:c0:a8:04:56 -> 7a:c3:ea:78:72:dc (2015-02-18 21:48:04.012375429 +0000 UTC)
02:42:c0:a8:04:35 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:07.380217507 +0000 UTC)
02:42:c0:a8:04:3f -> 7a:c3:ea:78:72:dc (2015-02-18 21:41:04.542017611 +0000 UTC)
02:42:c0:a8:01:02 -> 7a:76:1a:fe:d2:3c (2015-02-18 21:48:08.855977674 +0000 UTC)
7a:c3:ea:78:72:dc -> 7a:c3:ea:78:72:dc (2015-02-18 21:48:12.748212899 +0000 UTC)
02:42:c0:a8:04:4a -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:05.510528032 +0000 UTC)
02:42:c0:a8:04:55 -> 7a:c3:ea:78:72:dc (2015-02-18 21:48:03.947155982 +0000 UTC)
02:42:c0:a8:10:01 -> 7a:23:07:a5:99:a2 (2015-02-18 21:48:51.441854171 +0000 UTC)
7a:76:1a:fe:d2:3c -> 7a:76:1a:fe:d2:3c (2015-02-18 21:48:27.981537461 +0000 UTC)
02:42:c0:a8:04:53 -> 7a:c3:ea:78:72:dc (2015-02-18 21:47:04.570520428 +0000 UTC)
02:42:c0:a8:04:57 -> 7a:c3:ea:78:72:dc (2015-02-18 21:48:04.364913507 +0000 UTC)
02:42:c0:a8:04:37 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:07.959461622 +0000 UTC)
02:42:c0:a8:04:3d -> 7a:c3:ea:78:72:dc (2015-02-18 21:41:04.457768182 +0000 UTC)
02:42:c0:a8:04:40 -> 7a:c3:ea:78:72:dc (2015-02-18 21:42:03.450098412 +0000 UTC)
02:42:c0:a8:04:4e -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:06.088000214 +0000 UTC)
02:42:c0:a8:04:4d -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:06.133386945 +0000 UTC)
02:42:c0:a8:04:36 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:07.569382088 +0000 UTC)
7a:49:7e:1a:50:df -> 7a:49:7e:1a:50:df (2015-02-18 21:48:09.884530307 +0000 UTC)
02:42:c0:a8:04:43 -> 7a:c3:ea:78:72:dc (2015-02-18 21:43:03.759819147 +0000 UTC)
02:42:c0:a8:04:52 -> 7a:c3:ea:78:72:dc (2015-02-18 21:47:04.046963945 +0000 UTC)
02:42:c0:a8:04:47 -> 7a:c3:ea:78:72:dc (2015-02-18 21:44:04.430967288 +0000 UTC)
02:42:c0:a8:04:49 -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:05.501378218 +0000 UTC)
7a:05:6a:8c:b1:3f -> 7a:05:6a:8c:b1:3f (2015-02-18 21:40:59.945450891 +0000 UTC)
02:42:c0:a8:04:0c -> 7a:c3:ea:78:72:dc (2015-02-18 21:48:48.592143918 +0000 UTC)
02:42:c0:a8:16:01 -> 7a:05:6a:8c:b1:3f (2015-02-18 21:48:10.505662462 +0000 UTC)
02:42:c0:a8:04:4c -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:05.942477802 +0000 UTC)
02:42:c0:a8:04:38 -> 7a:c3:ea:78:72:dc (2015-02-18 21:40:07.641461163 +0000 UTC)
02:42:c0:a8:04:45 -> 7a:c3:ea:78:72:dc (2015-02-18 21:43:04.318427742 +0000 UTC)
02:42:c0:a8:04:41 -> 7a:c3:ea:78:72:dc (2015-02-18 21:42:03.669773462 +0000 UTC)
02:42:c0:a8:04:48 -> 7a:c3:ea:78:72:dc (2015-02-18 21:44:04.498693517 +0000 UTC)
02:42:c0:a8:04:44 -> 7a:c3:ea:78:72:dc (2015-02-18 21:43:04.037384324 +0000 UTC)
02:42:c0:a8:04:46 -> 7a:c3:ea:78:72:dc (2015-02-18 21:44:04.289988057 +0000 UTC)
02:42:c0:a8:04:4b -> 7a:c3:ea:78:72:dc (2015-02-18 21:45:05.699232698 +0000 UTC)
02:42:c0:a8:0f:02 -> 7a:71:93:51:24:98 (2015-02-18 21:47:53.627641262 +0000 UTC)
02:42:c0:a8:04:42 -> 7a:c3:ea:78:72:dc (2015-02-18 21:42:03.8683145 +0000 UTC)
02:42:c0:a8:04:3e -> 7a:c3:ea:78:72:dc (2015-02-18 21:41:04.415810672 +0000 UTC)
Peers:
Peer 7a:49:7e:1a:50:df (v7924) (UID<PHONE_NUMBER>1077564308)
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:44603]
   -> 7a:27:ac:82:83:6a [<IP_ADDRESS>:60259]
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:52234]
   -> 7a:71:93:51:24:98 [<IP_ADDRESS>:44247]
   -> 7a:05:6a:8c:b1:3f [<IP_ADDRESS>:55484]
   -> 7a:23:07:a5:99:a2 [<IP_ADDRESS>:51103]
Peer 7a:27:ac:82:83:6a (v711) (UID<PHONE_NUMBER>3006941369)
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:6783]
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:6783]
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
Peer 7a:05:6a:8c:b1:3f (v187) (UID<PHONE_NUMBER>3940871202)
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:6783]
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:6783]
Peer 7a:23:07:a5:99:a2 (v178) (UID<PHONE_NUMBER>665204884)
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:6783]
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:6783 (unestablished)]
Peer 7a:c3:ea:78:72:dc (v98) (UID<PHONE_NUMBER>583085255)
   -> 7a:05:6a:8c:b1:3f [<IP_ADDRESS>:56224]
   -> 7a:71:93:51:24:98 [<IP_ADDRESS>:34305]
   -> 7a:23:07:a5:99:a2 [<IP_ADDRESS>:52102]
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:6783]
   -> 7a:27:ac:82:83:6a [<IP_ADDRESS>:59207]
Peer 7a:76:1a:fe:d2:3c (v563) (UID<PHONE_NUMBER>5695964400)
   -> 7a:27:ac:82:83:6a [<IP_ADDRESS>:51871]
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
   -> 7a:71:93:51:24:98 [<IP_ADDRESS>:50798]
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:56890]
   -> 7a:23:07:a5:99:a2 [<IP_ADDRESS>:56985 (unestablished)]
   -> 7a:05:6a:8c:b1:3f [<IP_ADDRESS>:51130]
Peer 7a:71:93:51:24:98 (v226) (UID<PHONE_NUMBER>446983629)
   -> 7a:76:1a:fe:d2:3c [<IP_ADDRESS>:6783]
   -> 7a:49:7e:1a:50:df [<IP_ADDRESS>:6783]
   -> 7a:c3:ea:78:72:dc [<IP_ADDRESS>:6783]
Routes:
unicast:
7a:76:1a:fe:d2:3c -> 00:00:00:00:00:00
7a:05:6a:8c:b1:3f -> 7a:05:6a:8c:b1:3f
7a:27:ac:82:83:6a -> 7a:27:ac:82:83:6a
7a:49:7e:1a:50:df -> 7a:49:7e:1a:50:df
7a:71:93:51:24:98 -> 7a:71:93:51:24:98
7a:c3:ea:78:72:dc -> 7a:c3:ea:78:72:dc
7a:23:07:a5:99:a2 -> 7a:49:7e:1a:50:df
broadcast:
7a:71:93:51:24:98 -> []
7a:49:7e:1a:50:df -> []
7a:27:ac:82:83:6a -> []
7a:05:6a:8c:b1:3f -> []
7a:23:07:a5:99:a2 -> []
7a:c3:ea:78:72:dc -> []
7a:76:1a:fe:d2:3c -> [7a:23:07:a5:99:a2 7a:05:6a:8c:b1:3f 7a:27:ac:82:83:6a 7a:49:7e:1a:50:df 7a:71:93:51:24:98 7a:c3:ea:78:72:dc]
Reconnects:
<IP_ADDRESS>:6783 (next try at 2015-02-18 21:54:41.228319992 +0000 UTC)
<IP_ADDRESS>:6783 (trying since 2015-02-18 21:47:37.813818765 +0000 UTC)
<IP_ADDRESS>:52102 (trying since 2015-02-18 21:47:50.165342722 +0000 UTC)
<IP_ADDRESS>:6783 (trying since 2015-02-18 21:48:50.591836494 +0000 UTC)
<IP_ADDRESS>:56723 (trying since 2015-02-18 21:47:37.813608497 +0000 UTC)
<IP_ADDRESS>:34305 (trying since 2015-02-18 21:47:51.501319334 +0000 UTC)
<IP_ADDRESS>:56224 (trying since 2015-02-18 21:48:09.841437606 +0000 UTC)
<IP_ADDRESS>:51103 (trying since 2015-02-18 21:48:50.591827958 +0000 UTC)

Not too sure about the root cause but "v7924" suggests that something is flapping - the version number should increment when the topology changes.
If you can get logs and weave status a bit closer in time, and particularly any logs from the node(s) with high version numbers (e.g. The one on <IP_ADDRESS>), that may help.

Where does the version # come from?  Is that the weave container?  I just noticed one server is running 2ccfe8038bb1 zettio/weave:0.9.0 and another server is running 5bd04c9d7f3f zettio/weave:0.9.0 so the container is clearly different.

Ah, ignore my previous comment.  I was looking at the container ids not the image ids.  The image ids are the same.  I'll try to get more diagnostics.

What qualifies as a topology change?  We have a lot of cron jobs that start short lived containers every minute and every 5 minutes.  Could that account for the high version numbers and some of the flapping?Our large volume of cron jobs cause other problems (i.e. resource leaks in docker itself) so we may be an outlier here.
Here are the last 10 minutes of logs.  First, this instance is currently exhibiting the proble:
https://gist.github.com/bmurphy1976/b512a17069fca81ec72f
This is the instance with the ip address asked for above:
https://gist.github.com/bmurphy1976/d96a35936c569f329b74
and finally this is a third instance and this is the instance that runs an excessive amount of cron jobs:
https://gist.github.com/bmurphy1976/8cde85d29f323c338ffe

FYI, the other servers in this cluster are very low utilization low churn servers.  These three a the busy servers.

Topology has nothing to do with application containers; it's all about weave peers and the connections between them.

I believe I found the problem.  The weave interface on two of our servers was misconfigured.  It was configured for the 192.x.x.x/8 network when it should have been configured for the 192.168.x.x/16 network (these servers had been configured by an earlier version of our configuration scripts that had this typo).  Once I fixed this and restarted services on the affected servers the log volume went back to normal.
This looks like the cause of the problem so I'm going to close this ticket.  Thanks for the help!


fix fix error when query iceberg table using date cast predicate

bp #32194
Proposed changes
Issue Number: close #xxx

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

run buildall


Error on package name at MainApplication class

Using the first command to generate the clean architecture structure, in the MainApplication class at the app-service project has the wrong package name referenced inside the class.

Fix in release 1.5.2


Properly serialize metadata and remove metadata_raw

Removes unused Serialize derives
Creates Platform enum to represent possible platforms properly
implements Metadata.to_map() allowing metadata to be serialized directly
Changes Handlers plumbing to use Metadata type directly instead of a Map

This approach is unfortunately inconsistent with Peppi's round-trip goal. (I should really write down Peppi's goals somewhere.)

Different Slippi platforms output different metadata, and AFAIK the spec makes no exhaustivity guarantees about the fields it lists for metadata.
We must maintain order, which isn't generically possible with the current approach. It's possible that metadata is always written in the same order by current Slippi platforms, but again that's not guaranteed by the spec.
There's also the possibility of inconsistencies with complex types like timestamps. I recall seeing slightly different timestamp formatting from different Slippi platforms.

The Spec can be really frustrating at times. Fizzi himself has said 'metadata was a mistake'. If the spec is bad and non-exhaustive, we should fix the spec. Figuring out which fields are undocumented wouldn't be too hard. Fields can be added/changed in later versions, but we already admit that future versions break our round-tripping guarantees. We could store ordering information and/or information about timestamp formats... Maybe it isn't worth the effort.
I'll think about it some more. There's still changes in this PR worth keeping otherwise.

I like the Platform enum and removing the defunct JMESPath code. Could you split them into their own PRs?
I don't like the metadata_raw renaming. When someone serializes a game to JSON (e.g. via peppi-slp), I want them to get the exact same metadata as what's in the file.

Closing in favor of two separate PRs as requested. Starting with #36. Platform will be added afterwards because it conflicts.


Feature Request: Create a clear function

Your module is almost perfect for my needs.  I'm using celery with many daemons and workers, and I needed a centralized cache to replace the memoise pattern.  This is working really great. However, I do need the ability to target cache deletes so I can refresh them the next time a worker calls it without having to restart workers or flush all cached entries.
I did something that of course feels a little dirty but I can't come up with a better way. Basically I add a function to the wrapper function on the __call__.  This way I can target specific keys to be deleted from cache.  Maybe you have a better way?
I would also really like to figure out a way to delete keys by some kind of grouping (like all for a specific function), but I'm a bit torn on the implementation as I can imagine some issues with a lot of cached entries.
Do you see any issues with this approach? Is this a feature you'd like to see added?
from memorised import decorators

class my_memorise(decorators.memorise):
     def __init__(self, *args, **kwargs):
          super(my_memorise, self).__init__(*args, **kwargs)
     def __call__(self, fn):
          self.func = fn
          wrapped_func = super(my_memorise, self).__call__(fn)
          wrapped_func.clear = self.clear
          return wrapped_func
     def clear(self, *args, **kwargs):
          key = self.key(self.func, args, kwargs)
          self.mc.delete(key)

@my_memorise()
def a_test(p):
    print 'Executed'
    return p + 1

>>> a_test(1)
Executed
2
>>> a_test(1)
2
>>> a_test.clear(1)
>>> a_test(1)
Executed
2
>>> a_test.clear(1)
>>> a_test.clear(1)

Hi, I'm glad you like the module.
I think that's definitely something that would be handy in memorised itself, but you'd probably want to avoid conflicting with clear methods in the wrapped object, just in case, so either using something less likely to conflict like _memorised_clear(), or going the utility route:
from memorised.utils import clear

clear(a_test)

import memorised.utils

memorised.utils.clear(a_test)

from memorised.utils import clear as mclear

mclear(a_test)

I don't have an awful lot of time to work on memorised these days, but if I get some spare time I could look at writing this in, I would also be perfectly happy to accept a pull request to add the feature. :smiley:

I like the utility route better.  I didn't go that route because I was having a hard time figuring out how to access the memorise class to execute a method from the outside since the wrapper was a function.  Seems like I'm always learning something when it comes to Python metadata.
I'll keep looking into how to do it and if I can figure it out I'll send a pull request.
Thanks for the response!

I think this feature is important when working with @property and @setter.. The problem is that if I memorise the getter's result, I have to clear or invalidate the cached value in the setter.  I worked out an example to illustrate how to do this and it is based on @mverrilli suggestion. But I am still wondering how the suggested utility can be done.
import memcache
from memorised.decorators import memorise

class my_memorise(memorise):
  def __init__(self, *args, **kwargs):
    super(my_memorise, self).__init__(*args, **kwargs)

  def __call__(self, fn):
    self.func = fn
    wrapped_func = super(my_memorise, self).__call__(fn)
    wrapped_func._unmemorize = self._unmemorize
    return wrapped_func

  def _unmemorize(self, *args, **kwargs):
    key = self.key(self.func, args, kwargs)
    self.mc.delete(key)

class TestClass(object):
  def __init__(self, x):
    self.__x__ = x

  @my_memorise(ttl=10)
  def funct1(self):
    print 'called'
    return self.__x__

  @property
  @my_memorise(ttl=5)
  def x(self):
    print 'called'
    return self.__x__

  @x.setter
  def x(self, value):
    tmp = TestClass.x.fget
    #import pprint
    #pprint.pprint(tmp)
    tmp._unmemorize(self)
    self.__x__ = value

a = TestClass(10)
print a.x
print 'set x to 20'
a.x = 20
print 'get (@property)'
print a.x
print a.__x__

However, the proposed clear feature is problematic. Since part of the key is generated from the arguments, to find the right cache to be cleared, we have to remember the arguments as well...


Add support for Typescript

Hi there,
This is a really awesome and easy to use dependency. But unfortunately, the Typescript declarations are missing.
Any ideas how to fix this or can you add this, please?
Thanks!

the Typescript declarations are missing

This kind of implies that they're a required part of a JavaScript project or something needed to run the code.
I don't use TypeScript, so won't be adding support for it. It's just another thing to maintain. Sorry!


not cracking even correct password

I write down my correct password in the wordlist that i created for just testing purpose but it did not cracked the password and ignored that pass. saying [my password name] not him.. and passed on next word in the wordlist.
So, this is the issue .... plzz solve this.

I try also this way, then check e-mail and i have message:
Login attempt has been blocked
We've stopped a person using a non-Google application from logging into your account.  Change them as soon as possible.
It is some google security even you have a correct password. Question is how to bypass this.

Am guessing a proxy or fingerprint scan should be able to bypass this am just saying


SingleDatePicker with Button instead of text input

Is there any way to to use a button instead of a text input for a single date picker, like they have on the airbnb website?

Sorry, I figured it out using the DayPickerSingleDateController


Fault injection  in my pytorch training  job

I  want to do low cost error recovery from deep learning training failures.  So I need to simulate some errors in my pytorch training file to test my system.
I find  that DCGM  has the ability of fault injection, such as:

PCIe Replay Errors
ECC Errors (single double-bit error or multiple co-located single-bit errors)
Power Excursions
Thermal Excursions
XID Errors
NVLink Errors
reference link : dcgm-error-injection.html

How can I use them in my pytorch file?   Thanks

Injecting errors into DCGM does not inject errors into the driver, NVML, or any other layer lower than DCGM itself. If your pytorch code integrates with DCGM to determine GPU health (using the DCGM health API for example), then injecting an error will trigger a callback. But if your pytorch code relies on anything lower than DCGM in the software stack then error injection will have no effect.


feature/VDX-318

Codecov Report
Attention: 907 lines in your changes are missing coverage. Please review.

Comparison is base (ba38097) 45.89% compared to head (5733eed) 33.78%.
 Consider uploading reports for the commit a3fdcd2 to get more accurate results

Files
Patch %
Lines

...kages/data-store/src/statusList/StatusListStore.ts
5.40%
105 Missing :warning:

...ages/contact-manager-rest-api/src/api-functions.ts
0.00%
93 Missing :warning:

packages/agent-config/src/objectCreator.ts
0.00%
70 Missing :warning:

...ckages/contact-manager/src/agent/ContactManager.ts
0.00%
53 Missing :warning:

packages/data-store/src/contact/ContactStore.ts
77.57%
50 Missing :warning:

...s/postgres/1685628974232-CreateIssuanceBranding.ts
4.34%
44 Missing :warning:

packages/agent-config/src/dataSources.ts
0.00%
42 Missing :warning:

...igrations/postgres/1690925872592-CreateContacts.ts
4.54%
42 Missing :warning:

...manager-rest-api/src/contact-manager-api-server.ts
0.00%
38 Missing :warning:

...igrations/postgres/1659463079428-CreateContacts.ts
5.88%
32 Missing :warning:

... and 26 more

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff              @@
##           develop     #157       +/-   ##
============================================
- Coverage    45.89%   33.78%   -12.12%
============================================
  Files           65      151       +86
  Lines         2412     7199     +4787
  Branches       539     1619     +1080
============================================
+ Hits          1107     2432     +1325
- Misses        1305     4766     +3461
- Partials         0        1        +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


config: r-d-worldpopulation demo image update

Updates reana-demo-worldpopulation demo image to
reanahub/reana-env-jupyter:2.0.0, following the recent upgrade of the
example.

Depends on https://github.com/reanahub/reana-demo-worldpopulation/pull/45


mednafen PSX and/or Saturn support

Describe the Issue
I see mednafen 1.29.0 is included in the current release of ArkOS. Is there any reason why it can't be used for PSX or Saturn games? I have no idea how good/bad it will run on the RK3326 (or other supported ARM processors), but I am various curious to see it work!
What device are you using?
RG351MP clone (R6S)
What version of ArkOS are you on?
v2.0 (12/15/2023) Update

The mednafen psx and saturn emulators will not perform well on this platform because of no gpu acceleration with that emulator on this platform at this time.

darn, appreciate the quick answer though. Thanks!


Create an example solution using form validation

Chose a smaller page like login or register and show what you would like to add for form validation.

This is very low priority at the moment.

This is low priority right now.


Trade status: {}

when i  click on Trade the website create a pop-up with the message
Trade status:
{}

Bot does not have access to the Steam API. Deposit 5 EUR to your steam account.

i have a lots of game on the steam account of the bot

Doesnt matter. Did you deposit money to the account?

now?

No, in general. Did you ever deposit money to it?

yes

Did you obtain the Steam API key using your bot account?

no

Go do that.

i need to buy the new apikey?

The API key is free to get.
Its the Steam API key, not the steamapis.com key.

ah

Something went wrong.. please try again! (401)

i have this problem

man,are u here?

ok,now i can see the inventory but i have the same problem
Trade status: {}

or : Could not get a price for item(s). Trade has been cancelled.

@FreddyFish ok,i fix the bug (Could not get a price for item(s). Trade has been cancelled.).
Now i have this: Trade status: {}

Man,help me

User didn't have the polls folder and bot_1.json file.


droplet_create can't generate a random name without library(analogsea)

I'm a bit rusty on my R package import lifetime, so pardon me for not being of more help with a suggested fix here, but...
If I attempt to use analogsea without first library()ing it, most things seem to work, however generating a random name for an image does not because of failures in the random name generation.
> analogsea::droplet_create()
Using default ssh keys: trestle-secure-rsa
Error in sample(x, size = 1) : object 'adjectives' not found
> adjectives <- c("red", "blue")
> analogsea::droplet_create()
Using default ssh keys: trestle-secure-rsa
Error in sample(x, size = 1) : object 'nouns' not found
> nouns <- c("horse", "canary")
> analogsea::droplet_create()
Using default ssh keys: mySSHKey
NB: This costs $0.00744 / hour until you droplet_delete() it
Waiting for create ..

It looks like the adjectives and nouns variables need to be made available earlier in the package lifetime in order to be used by these functions.
The more obvious workaround to the one above is just to call library(analogsea) which makes those datasets available and then everything just works out the box like you'd expect.
I'm not sure what impact this would have on packages that want to import analogsea, but I suspect I'll find out momentarily! ;)

Thanks for the issue @trestletech
Not sure what the right answer is here, but what about loading the datasets in onLoad?
Made the change in https://github.com/sckott/analogsea/tree/datasets branch - thoughts?

Hm... I may have not restarted my session properly, but I'm not getting
> analogsea::droplet_create()
Using default ssh keys: trestle-secure-rsa
Error in sample(x, size = 1) : object 'adjectives' not found
In addition: Warning messages:
1: In utils::data("words") : data set ‘words’ not found
2: In utils::data("adjectives") : data set ‘adjectives’ not found
3: In utils::data("nouns") : data set ‘nouns’ not found
>

unfortunately, I'd have to brush up on my R package loading details before I'd be qualified to give a meaningful code review here. Just trying to test empirically.
It's entirely possible that the above message is user error, so feel free to disregard if you think your branch fixes things.

you did install from datasets branch?

I did, indeed. And then I restarted the R session and that was the result I got. This is, of course, without having analogsea library()'d or otherwise loaded.

okay, i'll take another look at that branch

can you try again after reinstalling from datasets - moved the data sets into the package in an R file as vectors. still works for me, but question is does work for you

Perfect! Had to downgrade openssl to get around #126 but once I did that I was able to run the following just fine:
> devtools::install_github("sckott/analogsea", ref="datasets")
> analogsea::droplet_create()

great!

sorted in b948b19


fix(web): include lang in url

You forgor probably lol

Oh, I forgot that. Haha. Thanks for correcting it for me.


mmdetection3d pdf file cover error

mmdetection doc page : https://mmdetection3d.readthedocs.io/zh_CN/latest/ , In this page i found pdf link, it return to the pdf download link: https://mmdetection3d.readthedocs.io/_/downloads/zh_CN/latest/pdf/
This pdf is mmdetection3d doc pdf file, but the pdf cover is mmcv
mmdetection en version also have this problem

Thanks for your reminder! Could you please try to fix this problem with a PR?


Duolingo Sections 1&2 with IMTranslator Audio

I promised I would upload my test APKG just for you to look at.  Feel free to take a look if you like.
Notes:

Most importantly, this is only intended to be a sample updated file with updated definitions and pronunciation files added.  It is just meant so we can start evaluating the first batch of updates that we made
This only includes the first 212 Duolingo vocabulary words that we have completed manual reviews for
All audio pronunciation files were successfully downloaded except for "〇", which in the next update I will just take from “零”
These pronunciations are, at least temporarily, coming from IMTranslator
I looked into Forvo yesterday and it looks promising, but will require more time to figure out how to use the package
I couldn't immediately find an Anki Add-On as simple to use as AwesomeTTS, but Forvo doesn't look incredibly complicated to use either.  It will still require more time though, and I wanted to put an updated test file up ASAP
I am more than happy to cover the $2 to use the API
I made very little tweaks to your initial card template, which I took directly from your initial APKG file.   I know you have already created an issue about creating more card templates, so I didn't make many adjustments

Thanks for the pronunciations!!!
I am using your deck now, sounds make it twice as useful :-)
I changed the cards a bit (I don't git push because it is a very simple change and I don't want to conflict with the deck you have probably already modified, could you please create these? Thanks!):

I compared IMTranslator and Forvo pronunciations:

IMTranslate sounds are cut very aggressively, sometimes almost cutting the end of the word or generating disturbing high-frequency artifacts (for instance listen to their 呢). Forvo sounds don't cut anything.
IMTranslate sounds are said much faster (because they are for IM, I guess). Forvo words are said slowly and clearly. Slow is probably better for beginners.
Quality (bitrate?) sounds better on Forvo
All IMTranslate sounds are said with the same voice, whereas Forvo sounds are said by a wide range of persons of all ages and genders. Same voice is probably the best for beginners.

Completely agree with you on the IMTranslator audio.  It is not bad, but it is not great.  I am definitely on board with shifting to Forvo audio.
As for the cards, I forgot to mention that I had temporarily removed the alternate card-types while I was testing it, and I forgot to put it back.  I will put them back before my next upload.


Added lastpage

Added lastpage, a simple .net/c# static site generator https://github.com/tomzorz/lastpage

Shipping, thanks!


PSBT support

Is there any plans to add support for PSBTs?

I currently do not have plans for it. PSBT is a convoluted and misguided specification. I am not opposed to adding PSBT parsing to the library if there is an existing library that I can use. However there isn't much to work with. Just reviewing the code for the top two libraries proves the point that PSBTs are convoluted:
https://www.npmjs.com/search?q=psbt
You do not need to serialize transactions before they hit the blockchain. I think people use PSBT because other people use it, without questioning why you really need it, versus simply using regular JSON.
If you can get away with it, I would stick to JSON and just add a few extra fields that you need for coordinating a multi-signature transaction. You can parse the SIGHASH flag from a signature and that will tell you most of what you need to know (in regards to whether inputs/outputs can be combined), and it's helpful to let people store a derivation path as well (so they can cross-check an address). That's pretty much it. You can borrow any other proposed field from the PSBT spec and just use it if you need it (or add your own), and you don't have to mess with a custom parser to do it.
JSON all the way.

@cmdruid Most browser wallets only support PSBTs tho. Is there a way to just give them hex ?

@cmdruid Most browser wallets only support PSBTs tho. Is there a way to just give them hex ?

Can you provide me with a few examples? I'll look them over and see if I can port over their PSBT encoding/decoding functionality.

I'd say to start with sats connect from Xverse and maybe offer more support from other wallets from there, like phantom and unisat

What's going on? Any information or what should we do
Seek Assist

If you want to add a PSBT serializer / parser in a pull request, I would be happy to merge it.
You can use the @cmdcode/buff library to handle a lot of the heavy lifting.
A PSBT tool would have to implement BIP-174 for serialization and BIP-370 for the additional fields.
Other libraries that I have seen do not have an seperate PSBT tool that I can merge, but have it heavily ingrained in their transaction serialization.
I'm willing to add PSBT support, but at the end of the day it's a custom serialization format for JSON data. There's nothing wrong with passing the same exact data as JSON. The serialization is completely unnecessary and is only used out of habit.

Would it be possible to build something like https://github.com/orenyomtov/openordex with only JSON? 🤔

Hey, what else would you suggest to use instead? People use PSBTs for swapping assets.

I currently do not have plans for it. PSBT is a convoluted and misguided specification. I am not opposed to adding PSBT parsing to the library if there is an existing library that I can use. However there isn't much to work with. Just reviewing the code for the top two libraries proves the point that PSBTs are convoluted:
https://www.npmjs.com/search?q=psbt
You do not need to serialize transactions before they hit the blockchain. I think people use PSBT because other people use it, without questioning why you really need it, versus simply using regular JSON.
If you can get away with it, I would stick to JSON and just add a few extra fields that you need for coordinating a multi-signature transaction. You can parse the SIGHASH flag from a signature and that will tell you most of what you need to know (in regards to whether inputs/outputs can be combined), and it's helpful to let people store a derivation path as well (so they can cross-check an address). That's pretty much it. You can borrow any other proposed field from the PSBT spec and just use it if you need it (or add your own), and you don't have to mess with a custom parser to do it.
JSON all the way.

Hey, what else would you suggest to use instead? People use PSBTs for swapping assets.

In regards to the tx, version is 2 implied as standard, also locktime can be implied to be zero. Partners need to exchange inputs and outputs (use JSON), then exchange signatures.
You could collect inputs and outputs (JSON) in one round, create the tx (JSON), then pass around the tx to collect signatures (JSON) in a second round. Include meta fields (like txfee) if you need consensus on certain terms.
In contrast, the BIP174 PSBT spec is a state machine that handles the parsing and validation of a growing list of fixed custom types. You have to handle pass-thru of unknown types, plus special handling of addresses, derivation paths, and other things that may not be relevant to swapping ordinal assets.
There's also a three-way table that outlines for each custom field if it's cross-compatible, v1 only, or v2 only. And test vectors for handing a variety of combinations of key types, input types (both legacy and witness), output types, and sighash types.
JSON doesn't require you to perform any special handling of key/value pairs. You can safely ignore unknown keys. JSON parsing is included virtually everywhere. There's great validation libraries (like zod) that accept JSON as it is a universal format.
Maybe there are use cases where PSBT format makes more sense. If there is a standalone PSBT library that works I would be very happy to merge it. I haven't seen any PSBT code that looks portable though, otherwise I would offer to just tear it from another library and make a standalone tool.

Would it be possible to build something like https://github.com/orenyomtov/openordex with only JSON? 🤔

The whole ecosystem could be using JSON to swap assets, no reason to use a tired old format.
It's not like old wallets understand ordinal theory anyway so it would be a great opportunity to build something better.


Most Bizzare Bug

I am not sure if this is a TC bug or an EnderIO bug. I am using a farming station with no upgrades, and harvesting with an iron hoe. The farming station is harvesting Concentrated Essence Berry from Essence Berry Bushes (48 of them). Whenever it harvests one, you can see near spawn they pop on the screen and act like they go in your inventory. It makes the sound like you picked it up but nothing is in your inventory (as it shouldn't be). Also any player near spawn witnesses the same thing. Except the item goes to them individually and no one else.
This can't be good.
Screenshots of the spawn here.
http://imgur.com/3DbK9sT
http://imgur.com/PuPT39R

Seems to be fixed in latest version of TC.


feat: add support for exporting metrics

Description
Introduces OpenTelemetry metrics reporting into the SDK for specific actions. We're intentionally starting with only a few metric events that we can then grow over time.
We don't have any formal documentation for this currently. We'll write this as we roll it out across all SDKs, so here is a summary of the events and the associated attributes:
Supported Metrics

Metric Name
Type
Description

fga-client.request.duration
Histogram
The total request time for FGA requests

fga-client.query.duration
Histogram
The amount of time the FGA server took to internally process nd evaluate the request

 fga-client.credentials.request
Counter
The total number of times a new token was requested when using ClientCredentials

Supported attributes

Attribute Name
Type
Description

fga-client.response.model_id
string
The authorization model ID that the FGA server used

fga-client.request.method
string
The FGA method/action that was performed (e.g. check, listObjects, ...) in camelCase

fga-client.request.store_id
string
The store ID that was sent as part of the request

fga-client.request.model_id
string
The authorization model ID that was sent as part of the request, if any

fga-client.request.client_id
string
The client ID associated with the request, if any

fga-client.user
string
The user that is associated with the action of the request for check and list users

fga-client.request.retries
int
The number of retries attempted (starting from 1 for the original request)

http.status_code
int
The status code of the response

http.method
string
The HTTP method for the request

http.host
string
Host identifier of the origin the request was sent to

url.scheme
string
HTTP Scheme of the request (http/https)

url.full
string
Full URL of the request

user_agent.original
string
User Agent used in the query

http.client.request.duration
int
The total request time for FGA requests

http.server.request.duration
int
The amount of time the FGA server took to internally process nd evaluate the request

NOTE: In this draft, parsing the request body to get the user (if available) or the model id (if available)
References

Closes #68
Follows the implementations in JS (https://github.com/openfga/js-sdk/pull/117), Python (https://github.com/openfga/python-sdk/pull/107) and Java (https://github.com/openfga/java-sdk/pull/94)
Review Checklist

[x] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[x] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

Codecov Report
Attention: Patch coverage is 65.50000% with 69 lines in your changes missing coverage. Please review.

Project coverage is 31.72%. Comparing base (d6e3d12) to head (9d6c6cb).

Files
Patch %
Lines

src/OpenFga.Sdk/Telemetry/Attributes.cs
49.00%
45 Missing and 6 partials :warning:

src/OpenFga.Sdk/Telemetry/Histograms.cs
52.63%
8 Missing and 1 partial :warning:

src/OpenFga.Sdk/ApiClient/OAuth2Client.cs
83.33%
0 Missing and 4 partials :warning:

src/OpenFga.Sdk/ApiClient/BaseClient.cs
80.00%
1 Missing and 2 partials :warning:

src/OpenFga.Sdk/ApiClient/ApiClient.cs
91.66%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
+ Coverage   30.96%   31.72%   +0.76%
==========================================
  Files         119      123       +4
  Lines        6030     6150     +120
  Branches      784      806      +22
==========================================
+ Hits         1867     1951      +84
- Misses       4007     4036      +29
- Partials      156      163       +7

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix focus in tab in newchat

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/29001
PROPOSAL: https://github.com/Expensify/App/issues/29001#issuecomment-1752864497
Tests

Launch app
Tap FAB > send message
Tap Room
Tap Chat
Tap between Room and Chat, and note the cursor focus is present

[x] Verify that no errors appear in the JS console

Offline tests

Same as Tests
QA Steps

Same as Tests
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/58412969/32ef1c62-9ac5-42a0-9f16-7cd08f02eeaf

Android: mWeb Chrome
https://github.com/Expensify/App/assets/58412969/8db99858-2c2b-4913-9c7c-0116a5cbb7ce

iOS: Native
https://github.com/Expensify/App/assets/58412969/75ce6e63-63fb-422d-be76-39d8e9b3eeb4

iOS: mWeb Safari
https://github.com/Expensify/App/assets/58412969/1214ffa5-fe62-443a-ab62-a1ff7ee779bd

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/58412969/e0086a6d-d86e-46fc-95f3-94ace3617083

MacOS: Desktop
https://github.com/Expensify/App/assets/58412969/22580a78-c49c-4ab0-97c7-419dc1227b09

@allroundexperts You can review this now

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/grgia in version: 1.3.91-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/marcaaron in version: 1.3.91-8 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Emotion Provider

[x] remove styled-components imports from Drawer and Caps

Codecov Report

Merging #418 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #418   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          62     62
  Lines         323    325    +2
=====================================
+ Hits          323    325    +2

Impacted Files
Coverage Δ

src/Drawer.js
100% <100%> (ø)
:arrow_up:

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 ee48558...4866c3c. Read the comment docs.

Fixes #408


Organizational structure of documentation

Come up with a structure for how the documentation is organized on ReadTheDocs

Sections:

programming languages: software environment management, python, ..., general coding best practices (Gavin has a page on this)
workflow/work management: licensing, git/version control, security, CI/CD, issue tracking, release workflows, versioning, code of conduct, accessibility standards, licensing
documentation
data management: data formats, data publishing, database management


Error notifications should not create a queue to be displayed

Steps to reproduce

Miss a mandatory field
Press several times "Add to Ankidroid" button

Actual Result: Several error notifications will be displayed after each other.
Each notification is displayed for 3 seconds. In such a case each notification will be displayed for 3 seconds (3+3+3+3...)
Expected Result: We should cancel displaying the previous notification and display new one.

In this specific case, yes, it is better to cancel the previous notification. But what if the previous notification contained some important information which the user had not time to see. Is it possible to move the previous notifications up on the screen and show them all at the same time instead of delaying them?

In this specific case, yes, it is better to cancel the previous notification. But what if the previous notification contained some important information which the user had not time to see. Is it possible to move the previous notifications up on the screen and show them all at the same time instead of delaying them?

The current implementation doesn't allow for displaying more than one message at once (using built-in Toast widget).
Besides, I don't think in the current version of the app there are ways to initiate consecutive displaying of different messages without performing some kind of action in between, which would allow noticing the first message.
Implementing the proposed feature would require either moving to a different message displaying solution or developing our own. Please let me know if you think this needs to be done.

Tested:

if notification is unique - it will be displayed in a queue (one replace another in a several seconds)
if notification is duplicated - it is not displayed


Release<EMAIL_ADDRESS>

0.3.0 - 2022-06-28
Added

Added AndNodeDependencies.
Added Graph.
Added Node.
Added NodeDependencies.
Added NodeDependency.
Added BitwiseOrNodeDependencies.
Added RootedGraph.
Added RootedTaskGraphRunner.
Added TaskGraphEngine.

Changed

Updated BaseTask with protected _setErrorStatus method.

Codecov Report

Merging #203 (676a1d3) into master (08f7f6f) will increase coverage by 3.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #203      +/-   ##
==========================================
+ Coverage   95.75%   98.80%   +3.04%
==========================================
  Files         112       33      -79
  Lines        1745      586    -1159
  Branches      241       76     -165
==========================================
- Hits         1671      579    -1092
+ Misses         72        7      -65
+ Partials        2        0       -2

Flag
Coverage Δ

cuaktask
99.17% <ø> (ø)

iocuak
?

porygon
98.30% <ø> (ø)

porygon-typeorm
98.67% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...teSingletonScopedInstanceTaskNodeCommandHandler.ts

...assMetadata/utils/api/convertToClassMetadataApi.ts

...task/CreateCreateInstanceTaskNodeCommandHandler.ts

...lectMetadata/utils/domain/updateReflectMetadata.ts

...k/src/reflectMetadata/models/domain/MetadataKey.ts

packages/iocuak/src/common/utils/chain.ts

...task/CreateInstanceTaskNodeExpandCommandHandler.ts

...tainerModule/utils/api/convertToContainerModule.ts

...ages/iocuak/src/classMetadata/decorators/inject.ts

...reflectMetadata/utils/domain/getReflectMetadata.ts

... and 69 more

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 e683cce...676a1d3. Read the comment docs.


pancake button added

Fixes Issue
Closes #1370

Changes proposed

Screenshots

Checklist

[ ] You've linked this PR to the correct issue.
[ ] You have checked that the code is working correctly.
[ ] You ⭐ the repository!

Note to reviewers

Please check #1346

add your name in data.js. See readme.md for reference

add your name in data.js. See readme.md for reference

i added my name plz check it


Warning against SSR frameworks should be added.

maybe there is a warning and I havent seen it, but server side rendering breaks everything completely.  I have only tried with NextJS, Remix.
import '@codingame/monaco-vscode-python-default-extension';

required for syntax highlighting, accesses window when imported. To disable SSR when loading, next/dynamic is used in NextJS, and it does not even load the extension, Remix can use lazy from React, but it straight doesnt work as it isnt a top level import.
import { MonacoEditorReactComp } from '@typefox/monaco-editor-react';

accesses window when imported, so I cant tuck the component in <ClientOnly /> at Remix, and I cant add the import before <ClientOnly />  because outside of <ClientOnly /> there is no way to know if we are in SSR right now. Same applies for NextJS.
I can pile up tons of examples like this, almost every codingame library accesses window when imported. I have spent at least 8+ hours on trying to make everything work with Remix, but in the end it always ends up in messy hacks that doesnt even guarantee working.
sooo, I think, a small warning to the readme should be added like
"server side rendering might not work"
until a sane way to run with SSR is found and submitted in packages/examples.
ty

A notice can't hurt.
I'm not really familliar with SSR but I wouldn't expect a library with so many possible user interactions to be SSR-compatible though

@CGNonofr and @caner-cetin any idea how this should be done/implemented? Of course, we can state it in the README.md: Should there be some warning at build or runtime (if that is even possible)

I have added a sub-section in the Troubleshooting in the README regarding SSR,


Add SQLServerAdapter with view_cache override method

I created a SQLServerAdapter to so I could override the implementation of the database_cleaner_view_cache method since sql server.
The other option was to change the underlying implementation of https://github.com/DatabaseCleaner/database_cleaner/blame/master/lib/database_cleaner/active_record/truncation.rb#L25
I'm not sure why this is part of the base implementation?
 where table_schema = '#{current_database}'

@ablignaut Thank you for the PR! However, the ActiveRecord adapter has been extracted into its own repo at https://github.com/DatabaseCleaner/database_cleaner-active_record. If you close this PR and reopen it over there, I'd be happy to take a look!


[HOLD for payment 2024-03-26] [Simplified Collect][Categories] - App crashes when selecting categories and editing category name at the same time

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.53-1
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:
Precondition:

User is an admin of Collect workspace
The Collect workspace has several categories

Go to staging.new.expensify.com
Go to Profile > Workspaces > any workspace
Go to Categories
Check Select all checkbox
Click on any category
Click Category name
Edit the name and save it

Expected Result:
App does not crash
Actual Result:
App crashes
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/c4baba3a-7bff-466b-b952-424f6ffdd43e
log.txt
View all open jobs on GitHub

@amyevans  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #wave-control
CC @jason

Proposal
Please re-state the problem that we are trying to solve in this issue.
Categories - App crashes when selecting categories and editing category name at the same time
What is the root cause of that problem?
Caused by https://github.com/Expensify/App/pull/36324
When a selected category is updated we are not updating the selectedCategoriesArray so in here it will try to access it with the old category which is undefined
https://github.com/Expensify/App/blob/e9c112a2b89217401dfef3e248fa8e93d4c4e418/src/pages/workspace/categories/WorkspaceCategoriesPage.tsx#L171-L172
What changes do you think we should make in order to solve the problem?

In WorkspaceCategoriesPage we need to update selectedCategories whenever the policy categories change
What alternative solutions did you explore? (Optional)

@FitseTLT are you able to reproduce on production? Looks like you pointed out PR which was deployed to production 2 weeks ago as offending one.

EditCategoryPage was not deployed to production yet. So this cannot be reproduced on prod.
I think disabling editing of a category when it is selected is more appropriate.
cc: @ArekChr @luacmartins

Looks like the ability to edit was introduced in https://github.com/Expensify/App/pull/37969. @ArekChr @luacmartins is this featured behind a beta? Wondering if we can demote. And can I assign y'all to work on the fix?

We can demote this since it's available only on isPolicyExpenseChatEnabled = true policies. I can take this on with @ArekChr

Upon checking the crash log, this looks to be the same root cause as https://github.com/Expensify/App/pull/38379#issuecomment-2000144295

Discussed this one internally and we actually wanna deselect all categories when we're editing one. PR up - https://github.com/Expensify/App/pull/38416

Gonna close this one since it was a regression from https://github.com/Expensify/App/pull/38379#issuecomment-2004454781 and no payment is due.

Oh sorry, missed that one. Reopening to process payment

@ishpaul777 please accept the upwork offer!

paid!


Add user id to orders

To calculate the users' response time is necessary to add the id of the user who generates the order and the user who takes it.
Many users can take orders with interval amounts; we need to consider this to identify on taken_at field.

that needs to be done in the bot repository, not here


Does Falco support running via K3S on CM4? Pods error out.

Falco installed from Helm fails to come to the ready state on K3S running on Raspberry Pi 4 (CM4)
It seems the ebfp module can't be built, I'm hoping someone can advise me on a way forward - from the logs it seems perhaps it may not be able to find the raspbian specific kernel headers?

Following the guide here I ran:
helm upgrade falco -n falco --set tty=true falcosecurity/falco --set falcosidekick.enabled=true --set falcosidekick.config.slack.minimumpriority=notice --set falcosidekick.config.slack.webhookurl=$(base64 --decode <<< "webhook-goes-here") --set falcosidekick.config.customfields="user:redacted" --set driver.kind=ebpf
After some time this is the output:
 $ kubectl get pods -n falco
 NAME                                   READY   STATUS                  RESTARTS          AGE
 falco-falcosidekick-6894b7c676-kh8gb   1/1     Running                 0                 16h
 falco-falcosidekick-6894b7c676-2fnns   1/1     Running                 0                 16h
 falco-ppnnq                            0/2     Init:CrashLoopBackOff   200 (4m30s ago)   16h
 falco-r6nqm                            0/2     Init:CrashLoopBackOff  200 (3m47s ago)   16h
 falco-rpxlr                                0/2     Init:Error          199 (5m20s ago)   16h
 falco-z54np                            0/2     Init:Error              201 (5m18s ago)   16h_

log files are thus:
$ kubectl -n falco logs daemonsets/falco -c falco-driver-loader
Found 4 pods, using pod/falco-ppnnq
* Setting up /usr/src links from host
* Running falco-driver-loader for: falco version=0.36.2, driver version=6.0.1+driver, arch=aarch64, kernel release=6.1.32-v8+, kernel version=1656
* Running falco-driver-loader with: driver=bpf, compile=yes, download=yes
* Mounting debugfs
mount: /sys/kernel/debug: permission denied.
* Filename 'falco_raspbian_6.1.32-v8+_1656.o' is composed of:
 - driver name: falco
 - target identifier: raspbian
 - kernel release: 6.1.32-v8+
 - kernel version: 1656
* Trying to download a prebuilt eBPF probe from https://download.falco.org/driver/6.0.1%2Bdriver/aarch64/falco_raspbian_6.1.32-v8%2B_1656.o
curl: (22) The requested URL returned error: 404
Unable to find a prebuilt falco eBPF probe
* Trying to compile the eBPF probe (falco_raspbian_6.1.32-v8+_1656.o)
expr: syntax error: unexpected argument '1'
make[1]: *** /lib/modules/6.1.32-v8+/build: No such file or directory.  Stop.
make: *** [Makefile:38: all] Error 2
mv: cannot stat '/usr/src/falco-6.0.1+driver/bpf/probe.o': No such file or directory
Unable to load the falco eBPF probe

Expected behaviour
Pods to come to the running state
Screenshots

Environment

Falco version:
0.36.2
System info:

Cloud provider or hardware configuration:
OS:
Raspbian GNU/Linux 11 (bullseye)"
Kernel:
Linux 6.1.32-v8+ #1656 SMP PREEMPT Wed Jun  7 11:37:17 BST 2023 aarch64 GNU/Linux
Installation method:
Helm, chart version: falco-3.8.7

Additional context
I've tried adding the kernel headers and build environment.
The folder the error complains about does exist:
ls /lib/modules/6.1.32-v8+/
modules.alias      modules.builtin            modules.builtin.bin      modules.dep      modules.devname  modules.softdep  modules.symbols.bin
kernel  modules.alias.bin  modules.builtin.alias.bin  modules.builtin.modinfo  modules.dep.bin  modules.order    modules.symbols

Very cool project I'd like to start learning so I'd appreciate any pointers.
Cheers.

ei @MikeCockrem have you tried the modern-bpf driver? It seems you have a compatible kernel driver version=6.0.1+driver
The command is the same you posted but you need to replace driver.kind=ebpf with driver.kind=modern-bpf
helm upgrade falco -n falco --set tty=true falcosecurity/falco --set falcosidekick.enabled=true --set falcosidekick.config.slack.minimumpriority=notice --set falcosidekick.config.slack.webhookurl=$(base64 --decode <<< "webhook-goes-here") --set falcosidekick.config.customfields="user:redacted" --set driver.kind=modern-bpf

Thanks, I've tried that out, however I get the following error:
$ kgp -n falco
NAME                                   READY   STATUS             RESTARTS        AGE
falco-falcosidekick-6894b7c676-kh8gb   1/1     Running            0               20h
falco-falcosidekick-6894b7c676-2fnns   1/1     Running            0               20h
falco-thpmh                            1/2     CrashLoopBackOff   17 (115s ago)   63m
falco-rmwbt                            0/2     CrashLoopBackOff   29 (110s ago)   63m
falco-rqtcv                            0/2     CrashLoopBackOff   29 (95s ago)    64m
falco-fp4w4                            0/2     CrashLoopBackOff   29 (90s ago)    63m

kubectl -n falco logs daemonsets/falco -c falco-driver-loader
Found 4 pods, using pod/falco-rqtcv
error: container falco-driver-loader is not valid for pod falco-rqtcv

kubectl logs -n falco falco-thpmh
Defaulted container "falco" out of: falco, falcoctl-artifact-follow, falcoctl-artifact-install (init)
Mon Jan 22 11:55:56 2024: Falco version: 0.36.2 (aarch64)
Mon Jan 22 11:55:56 2024: Falco initialized with configuration file: /etc/falco/falco.yaml
Mon Jan 22 11:55:56 2024: Loading rules from file /etc/falco/falco_rules.yaml
Mon Jan 22 11:55:56 2024: The chosen syscall buffer dimension is: 8388608 bytes (8 MBs)
Mon Jan 22 11:55:56 2024: Starting health webserver with threadiness 4, listening on port 8765
Mon Jan 22 11:55:56 2024: Loaded event sources: syscall
Mon Jan 22 11:55:56 2024: Enabled event sources: syscall
Mon Jan 22 11:55:56 2024: Opening 'syscall' source with modern BPF probe.
Mon Jan 22 11:55:56 2024: One ring buffer every '2' CPUs.
libpman: prog 'BPF_TRACE_RAW_TP' is not supported <-------------------------------------------<
Mon Jan 22 11:55:56 2024: An error occurred in an event source, forcing termination...
Events detected: 0
Rule counts by severity:
Triggered rules by rule name:
Error: Initialization issues during scap_init

I would guess that means support for modern-bpf  is not compiled into the kernel for pi?

uhm got it, yes the modern bpf is not supported since your kernel misses some key features needed to run it. Not sure what is causing your issue, @FedeDP any idea?

I've tried adding the kernel headers and build environment.
The folder the error complains about does exist:

Note that it complains about the build folder: /lib/modules/6.1.32-v8+/build and i don't see it being listed in your ls output.

I've tried adding the kernel headers and build environment.
The folder the error complains about does exist:

Note that it complains about the build folder: /lib/modules/6.1.32-v8+/build and i don't see it being listed in your ls output.

Thanks for the pointer, I messed around trying to install the kernel sources and have now come up against this error:
Trying to compile the eBPF probe (falco_raspbian_6.1.32-v8+_1656.o)
expr: syntax error: unexpected argument '1'
make[1]: *** No targets specified and no makefile found.  Stop.
make: *** [Makefile:38: all] Error 2
mv: cannot stat '/usr/src/falco-6.0.1+driver/bpf/probe.o': No such file or directory
Unable to load the falco eBPF probe
Stream closed EOF for falco/falco-gcc4m (falco-driver-loader)

I'll try and have another look at it tomorrow.

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

@poiana: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://github.com/falcosecurity/community.
/close

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


Turbo mode compatibility

Bumping kubernetes.core version is being planned. It would be nice to make this collection compatible with turbo mode, available in the new version.

ping @gravesm

Here's the related PR for how we enable this in kubernetes.core collection: https://github.com/ansible-collections/kubernetes.core/pull/169. All you really have to do is use the AnsibleTurboModule instead of the base AnsibleModule. We decided to use an env var to let the user control this import.


Bugfix in Intl

See 8267396.
For certain APIs, Windows.globalization can return nullptr result for HSTRING . We wrap it in AutoHSTRING and when we retrieve the underlying value, we hit assert because the underlying value was nullptr. Modified to return error code if we get nullptr from windows.globalization.

@digitalinfinity , can you help with the review?

:shipit:

@dotnet-bot test osx_osx_debug_static please.

@dotnet-bot test osx_osx_debug_static

@dotnet-bot please test OSX osx_osx_debug_static


[agent_metrics] Make conf a default conf

The check has to be enabled by default.
Also, changed support level to core

@truthbk Good point, went through the default conf files that were in dd-agent (agent_metrics, disk, network and ntp) and only found this discrepancy: https://github.com/DataDog/integrations-core/pull/246
Other than that we're good on that front 👍  Merging this


ICRC-1 How it works

This may be a slight overstatement:  "Because an actor runs on the IC blockchain (and is therefore is tamperproof), we can trust that a correctly programmed actor would never 'cheat' and that it would correctly keep track of all balances and transfers."
An actor running on the IC blockchain will run its code correctly as programmed (unless a node is operating maliciously).  Ensuring the module hash matches code that is compiled from source code that has been reviewed is an important step to ensuring the integrity of the contract.  Notwithstanding, smart contracts on the IC are mutable by default meaning the code can be changed by upgrading it unless the code has been made immutable by “blackholing” the canister.
Your book is an excellent resource.

I agree, I could say more about security. Thnx for the issue

One minor tweak post-tagger discussion.
Notwithstanding, smart contracts on the IC are mutable by default meaning the code can be changed by upgrading it unless the code has been “blackholed".  Note that even if blackholded, canisters can still be modified by the NNS if a proposal to do so which receives adequate votes.


DefaultCertificateManager ignores iteration index

This can't possibly be correct. Lines below should get element i of list, not element 0:
    for (int i = 0; i < privateKeys.size(); i++) {
        KeyPair privateKey = privateKeys.get(0);
        X509Certificate certificate = certificates.get(0);

Thank you. This has already been fixed in another long running branch but apparently I haven't cherry-picked it over yet 😭

Oh, nevermind. Didn't realize we were in the digitalpetri project.
This project is no longer maintained. The effort is now here: https://github.com/eclipse/milo

Thanks for the reply.  I'll look at the milo project and possibly migrate to that.

It's pretty much a direct continuation of this project. The biggest difference when it comes to migrating is that the package names had to be changed when the project became part of the Eclipse foundation. It happened a while ago, so there may have been some other API changes, but that would be the biggest.


chore(examples): remove spare dependencies from basic example

Description
I left some unneeded dependencies behind when I was upgrading this example in #9501. This gets rid of them.
Testing Instructions
I've verified that ESLint violations get reported as expected in my editor and when running turbo lint. You can also clone with npx create-turbo@canary -e https://github.com/vercel/turborepo/tree/shew-0f804/examples/basic basic-eslint-9 to have a play with it.

I noticed the examples do not use .nvmrc or .node-version or mise.toml or .tool-versions (lol), however on Node v20, eslintv9 requires 20.9.0 or above

The engines field covers this but looks like we're still keeping a minimum of 18. We can update this!


Time is printed in date

Whenever i select a date, it shows time along with it,
2017-06-12 12:00 to 2017-06-20 12:00
i even added enableTime: false to options object.

Sorry, I had used data-enable-time attribute.


Some VRAM Compressed PNG and JPG images give an error when used in Sprite2D or Visual Shader editor

Tested versions
Godot 4.4 dev 2
System information
Godot v4.4.dev2 - Windows 10.0.19045 - OpenGL 3 (Compatibility) - Radeon RX 560 Series (Advanced Micro Devices, Inc.; 31.0.14001.45012) - Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz (4 Threads)
Issue description
It seems that 4.4 dev2 has some issues with images (eg png/jpg), I found two issues when using certain files in Godot:

Error spam when we use a texture in Sprite2D, or select this node in the list, or when the mouse is hovering over the Sprite2D
Errors in output:
Expected Image data size of 1000x1063x1 (DXT1 RGB8 with 10 mipmaps) = 710152 bytes, got 710408 bytes instead. drivers/gles3/storage/texture_storage.cpp:1043 - Condition "image->is_empty()" is true. Returning: Ref<Image>()

When we add a texture to a Texture2D node in the visual shader editor, an error occurs in the output:
Expected Image data size of 1601x1362x1 (DXT5 RGBA8 with 10 mipmaps) = 2917456 bytes, got 2923168 bytes instead. drivers/gles3/storage/texture_storage.cpp:1043 - Condition "image->is_empty()" is true. Returning: Ref<Image>()

Steps to reproduce

Drag one of the textures in the MRP project to the scene (+1 error)
Hover the mouse over this texture (Sprite2D) in the scene (+ many errors)

Minimal reproduction project (MRP)
err.zip

Thank you for reporting, consolidating in:

https://github.com/godotengine/godot/issues/96635

See there for more details, if you think something was missed about this and it's not the same issue, please comment here and it can be reopened

Благодарим вас за сообщение, объединенное в:

Невозможно импортировать определенные текстуры DDS  #96635

Более подробную информацию смотрите там. Если вы считаете, что что-то было упущено и это не та же проблема, пожалуйста, оставьте комментарий здесь, и ее можно будет открыть снова.

I think this issue should be opened, as #96635 is an improvement. But here the problem is with PNG and JPG formats, which have full support
But since the error is similar, perhaps these two problems have the same cause.

Confirmed in 4.3.stable and 4.4.dev2.


LSP support

I've been working on this for my personal use with Rust. It was bugging me that LSP wasn't working so I've included my edits that allowed me to get it working. I've set it up so that users can override language specific behaviours from their config. I've only sorted out LSP support in Rust, but I think the interface should be good enough to let you enable any LSP for any language

So, there is a way to enable the rust LSP in a standalone file using :RustStartStandaloneServerForBuffer if you're using rust-tools.nvim. Maybe I can make some changes so it invokes automatically when the rust file is opened to solve a problem.

Well I wish I knew about that before I'd done all this. Oh well


nixos/jenkins: add tmpfile rule

Necessary for jenkins socket
https://www.github.com/jenkinsci/packaging/issues/455
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Although upstream also uses systemd-tmpfilse to manage the directory shouldn't RuntimeDirectory=jenkins in the service unit essentially do the same thing?  https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html#RuntimeDirectory=

Although upstream also uses systemd-tmpfilse to manage the directory shouldn't RuntimeDirectory=jenkins in the service unit essentially do the same thing? freedesktop.org/software/systemd/man/latest/systemd.exec.html#RuntimeDirectory=

True, Changed and suggested it here https://www.github.com/jenkinsci/packaging/pull/442/files#r1649505949

Please reword commit message.

Changed the commit name via squash merge


Message not showing correctly in My Orders

@gbalabasquer i fix this, that's how it would look:


Invisible Entities and Textures Failing 1.16.5

https://paste.ofcode.org/36hqUVnJmWkCmTTUT6heXPb

Fixed in newest release for Forge!


Merge Pro_LoadTestV26 into catalyst

Bring in latest load test features/updates into catalyst.

The only merge conflicts were a few minor ones in CMakeLists.txt


Bug: Unable to see Text written on How to apply button.

In EuroPython Website, Financial Aid Column The Text written on the Button which re-directs to Google Form, is hidden but It is visible on hover, Here is Snapshot to the Issue:

Thanks, Gaurav!

Hi @giyednap! Thanks for the report! this was fixed by @artcz earlier 😊


Python BigQuery performance much worse than Java

The performance of reading from BigQuery in Python seems to be much worse than the performance of it in Java.
To reproduce this, I've run the following two programs on the Google Cloud, which basically read the weights from the public data set "natality" and outputs the top 100 largest weights.
Python:

# <cut imports>

options = PipelineOptions()
options.view_as(StandardOptions).runner = 'DataflowRunner'
#
<cut more options>

pipeline = Pipeline(options=options)
(pipeline
    | 'Read' >> beam.io.Read(beam.io.BigQuerySource(query='SELECT
weight_pounds FROM [bigquery-public-data:samples.natality]'))
    | 'MapToFloat' >> beam.Map(lambda
elem: elem['weight_pounds'])
    | 'Top' >> beam.combiners.Top.Largest(100)
    | 'MapToString' >>
beam.Map(lambda elem: str(elem))
    | 'Write' >> beam.io.WriteToText("<output-file>"))

pipeline.run()

Java:

// <cut imports>

public class Natality {
    public static void main(String[] args) {

DataflowPipelineOptions options = PipelineOptionsFactory.create().as(DataflowPipelineOptions.class);

       options.setRunner(DataflowRunner.class);
        // <cut more options>

        Pipeline
pipeline = Pipeline.create(options);

        pipeline.apply("Read", BigQueryIO.readTableRows()

           .fromQuery("SELECT weight_pounds FROM [bigquery-public-data:samples.natality]"))

     .apply("MapToDouble", MapElements
                .into(TypeDescriptors.doubles())

      .via(row -> {
                     Object obj = row.get("weight_pounds");

   return (obj == null ? 0.0 : (Double) obj);
                }))
            .apply("Top", Top.largest(100))

           .apply("MapToString", MapElements
                .into(TypeDescriptors.strings())

            .via(weight -> weight.toString()))
            .apply("Write", TextIO.write().to("<output-file>"));

       pipeline.run().waitUntilFinish();
    }
}

The "<cut more options>" are basic options like project, job name, temp location, etc. Both programs produce identical outputs.
Running these programs launches a DataFlow job on the Google Cloud with the following results (data from the Google Cloud Platform web interface; screenshots attached).
Python:

Read Succeeded 1 hr 40 min 40 sec
MapToFloat Succeeded 2 min 43 sec
Top Succeeded 5 min 25 sec
MapToString
Succeeded 0 sec
Write Succeeded 3 sec

Java:

Read Succeeded 4 min 45 sec
MapToDouble Succeeded 45 sec
Top Succeeded 52 sec
MapToString Succeeded
0 sec
Write Succeeded 1 sec

As you can see, there is an enormous performance hit in Python w.r.t. the reading from BigQuery: 1h40m vs less than 5 minutes.
Furthermore the other standard operations (like Top) are also much slower in Python than in Java.

Imported from Jira BEAM-6064. Original Jira may contain additional context.
Reported by: jankuipers.

if it helps, we ran the python code today and in our case it completed in 13 mins. the original code gives errors and we had to make modifications to it. using Apache Beam Python 3.7 SDK 2.39.0:
parser = argparse.ArgumentParser()
known_args, pipeline_args = parser.parse_known_args()
print(pipeline_args)
# We use the save_main_session option because one or more DoFn's in this
# workflow rely on global context (e.g., a module imported at module level).
pipeline_options = PipelineOptions(pipeline_args)
pipeline_options.view_as(SetupOptions).save_main_session = True

pipeline = beam.Pipeline(options=pipeline_options)
(pipeline
    | 'Read' >> beam.io.Read(beam.io.BigQuerySource(query='SELECT weight_pounds FROM [bigquery-public-data:samples.natality]'))
    | 'MapToFloat' >> beam.Map(lambda elem: 0 if elem['weight_pounds'] == None else elem['weight_pounds'])
    | 'Top' >> beam.combiners.Top.Largest(100)
    | 'MapToString' >> beam.Map(lambda elem: str(elem))
    | 'Write' >> beam.io.WriteToText("<output-file>"))

# When an Apache Beam Python program runs a pipeline on a service such as Dataflow, it is typically executed asynchronously.
# To block until pipeline completion, use the wait_until_finish() method of the PipelineResult object, returned from the run() method of the runner.
pipeline.run().wait_until_finish()

real	13m9.053s
user	0m8.418s
sys	0m2.222s

I take it back. The wall clock time of python was 13mins but the total vCPU and memory time is much higher (10x difference).
Python (Apache Beam Python 3.7 SDK 2.39.0):

Java (Apache Beam SDK for Java 2.39.0):

The PTransforms in a graph contain "user code" in the form of Java and Python DoFns (things like BoundedSource and UnboundedSource also are DoFns when you get to execution). A connector like BigQueryIO is "just" a PTransform, in other words a small subgraph that performance the data reading.
For most connectors, we expect to have just one implementation. Usually this will probably be Java. Other SDKs will use the connector via Beam's portability APIs. But some connectors are implemented more than once, in different SDKs. For example FileIO is implemented in all SDKs largely to get the SDK started. Another example is BigQueryIO which is implemented in both Java and Python. So the DoFns that are executed in each case are different. The Python implementation of BigQueryIO is also missing features that are available in Java.
Hope that helps!

thanks @kennknowles

btw, I also tried converting the code into scala using spotify scio. The performance is identical to Java if anyone interested.
Apache Beam SDK for Java 2.38.0

scala code:
@BigQueryType.fromQuery("SELECT weight_pounds FROM [bigquery-public-data:samples.natality]")
  class Row

  @BigQueryType.toTable
  case class Result(weight_pounds: Double)

  def pipeline(cmdlineArgs: Array[String]): ScioContext = {
    val (sc, args) = ContextAndArgs(cmdlineArgs)

    sc.typedBigQuery[Row]()
      .map(r => r.weight_pounds.getOrElse(0.0)) // return 0 if weight_pounds is None
      .top(100)     // select top 100. this returns a SCollection[Iterable[Double]]
      .flatMap(x => x)
      .map(x => Result(x))
      .saveAsTypedBigQueryTable(
        Table.Spec(args("output")),
        writeDisposition = WRITE_TRUNCATE,
        createDisposition = CREATE_IF_NEEDED
      )

    sc
  }


Consul does not support dots in service names for DNS queries

Services names must not contain a dot (.) otherwise you could not use the Consul DNS API. For example
a Marathon App with id "/demo/hello/world" is registered by default as Consul Service "demo.hello.world"
From Consul DNS API documentation (https://www.consul.io/docs/agent/services.html):
"DNS-compliant service and tag names may contain any alpha-numeric characters, as well as dashes. Dots are not supported because Consul internally uses them to delimit service tags."
It would be nice if you could implement a different naming strategy, e.g. use dashes instead of dots.
Current workaround for us is to specify a custom consul service name.

Hi @avthart
Good point and it's quite easy to fix, require changing dot to dash here. Unfortunately we will lost backward compatibility with services registered with dots in name. On the other hand we could just drop that functionality and force user to provide service name for the app.
@dankraw What do you think?

@avthart good point
@janisz I think we can solve the problem by providing configurable separator, we won't loose backward compatibility this way

@janisz I would not drop this functionality. It is a nice feature to have a (standardized) naming strategy for consul services.
@dankraw Sound good to have a configurable separator, so that existing infrastructures which are using marathon-consul, won 't have to change anything.

I like the idea of configurable separator. So the changes are required in

AppId.ConsulServiceName
Config

tests and readme will also need to be updated
I think the separator could be provided as a parameter or as a global variable that will be setup at the beginning in main.

Thx!

You are welcome. We will do formal release when after go 1.7 release.


question: how to test resilience to network conditions?

In order to automate tests for when network conditions change, I think we need some way to:

Spawn n browsers
Open the same pad on each of them
Cut network for some of them
Re-enable network for some of them
Observe app behaviour

By network here I mean disable Websockets connections to a websocket-star relaying service (now that peerpad-core is going to use websocket-star for transport instead of WebRTC..).
Also, it would be nice if we could introduce some arbitrary latency between nodes.
(Also, I don't need to operate at the UI level: I could use the peerpad-core API instead).
@diasdavid has pointed me to piri-piri and karma-peer.
Any ideas, pointers or considerations?

@dignifiedquire any thoughts on this? :)


[GH-672] add additional pipe for v2legacy print lines

Summary
This PR fixes a printing issue when an instance is a legacy instance
Ticket Link
#672

Codecov Report

Merging #677 into master will decrease coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #677      +/-   ##
==========================================
- Coverage   32.09%   32.07%   -0.02%
==========================================
  Files          51       51
  Lines        5263     5263
==========================================
- Hits         1689     1688       -1
- Misses       3380     3381       +1
  Partials      194      194

Impacted Files
Coverage Δ

server/command.go
15.57% <0.00%> (ø)

server/subscribe.go
66.31% <0.00%> (-0.22%)
:arrow_down:

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 03225a3...f80a8f4. Read the comment docs.


Add a timer rule

Add a custom timer rule to come into conditions, eg. I want a rule to change an Area Path after a task as been put into a specific state and a timer of 1h has passed.
(Azure DevOps)

Closing issue- Lets make this in logic apps instead


Add FreeBSD support

Depends on tessel/node-usb#154.
I've been able to discover my Pebble Time from my Raspberry Pi running FreeBSD using the example in noble! :) A noble PR is coming as well.
The LE discovery example here doesn't seem to actually discover anything though.
When testing to make sure the example fails on a Linux VM as well (and indeed it does), I also had to change:
var binding_path = binary.find(path.resolve(path.join(__dirname,'./package.json')));

to
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')));

in lib/native.js.

@myfreeweb awesome!