Kombu version 4.4.0 does not support redis-py v2.10.6, breaks celerystalk scan

Hello Sethsec!
Ran ./update-tools.sh to update Celerystalk tools.
Created new workspace, imported Nmap scan, ran ./celerystalk scan .
Produced the following result:
root@kali:/opt/celerystalk# ./celerystalk scan
celerystalk  -  An asynchronous network enumeration/vulnerability scanner
v1.1        Run all your tools against all your hosts (IPs/virtual hosts/subdomains)
by @sethsec
Build: 163
Submitted [12] tasks for
Submitted [12] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Submitted [12] tasks for
Submitted [12] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Submitted [12] tasks for
Submitted [1] tasks for
Submitted [1] tasks for
Traceback (most recent call last):
File "./celerystalk", line 963, in
main(arguments)
File "./celerystalk", line 915, in main
lib.scan.process_db_vhosts(workspace, arguments["--simulation"],dont_scan_ips=arguments["--noIP"],config_file=config_file)
File "/opt/celerystalk/lib/scan.py", line 65, in process_db_vhosts
send_commands_to_celery(populated_command_tuple,output_base_dir,simulation)
File "/opt/celerystalk/lib/scan.py", line 246, in send_commands_to_celery
celery_path),
File "/usr/local/lib/python2.7/dist-packages/celery/canvas.py", line 530, in call
return self.apply_async(args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/celery/canvas.py", line 557, in apply_async
dict(self.options, **options) if options else self.options))
File "/usr/local/lib/python2.7/dist-packages/celery/canvas.py", line 584, in run
first_task.apply_async(**options)
File "/usr/local/lib/python2.7/dist-packages/celery/canvas.py", line 218, in apply_async
return _apply(args, kwargs, **options)
File "/usr/local/lib/python2.7/dist-packages/celery/app/task.py", line 535, in apply_async
**options
File "/usr/local/lib/python2.7/dist-packages/celery/app/base.py", line 745, in send_task
amqp.send_task_message(P, name, message, **options)
File "/usr/local/lib/python2.7/dist-packages/celery/app/amqp.py", line 552, in send_task_message
**properties
File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 181, in publish
exchange_name, declare,
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 510, in _ensured
return fun(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 187, in _publish
channel = self.channel
File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 209, in _get_channel
channel = self._channel = channel()
File "/usr/local/lib/python2.7/dist-packages/kombu/utils/functional.py", line 44, in call
value = self.value = self.contract()
File "/usr/local/lib/python2.7/dist-packages/kombu/messaging.py", line 224, in
channel = ChannelPromise(lambda: connection.default_channel)
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 852, in default_channel
self.ensure_connection(**conn_opts)
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 422, in ensure_connection
callback, timeout=timeout)
File "/usr/local/lib/python2.7/dist-packages/kombu/utils/functional.py", line 341, in retry_over_time
return fun(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 275, in connect
return self.connection
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 823, in connection
self._connection = self._establish_connection()
File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 778, in _establish_connection
conn = self.transport.establish_connection()
File "/usr/local/lib/python2.7/dist-packages/kombu/transport/virtual/base.py", line 941, in establish_connection
self._avail_channels.append(self.create_channel(self))
File "/usr/local/lib/python2.7/dist-packages/kombu/transport/virtual/base.py", line 923, in create_channel
channel = self.Channel(connection)
File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 496, in init
self.Client = self._get_client()
File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 957, in _get_client
'You have {0.version}'.format(redis))
kombu.exceptions.VersionMismatch: Redis transport requires redis-py versions 3.2.0 or later. You have 2.10.6
Did some digging, found this:
https://github.com/celery/celery/issues/5369
https://github.com/celery/kombu/issues/1016
From the looks of it when I ran ./update-tools.sh it updated celery to version 4.3.0.
Version 4.3.0 of celery requires kombu 4.4.0, which does not support redis-py version 2.10.6, which is specified in requirements.txt.
Making the following changes to requirements.txt fixes the issue.
celery==4.2.x
kombu==4.2.x

Thanks for the research @Thurnun!  As it turns out, I was able to just remove the version pinning on redis and it works with the latest redis.  Let me know if that works for you as well.


Paul improve

Improvement of the code according to #48
In it I added
*

Hello @DaluS! Thanks for opening this PR.

In the file Cockpit.py:

Line 4:1: E266 too many leading '#' for block comment
Line 4:44: W291 trailing whitespace
Line 14:1: E303 too many blank lines (5)
Line 15:29: W291 trailing whitespace
Line 17:1: E265 block comment should start with '# '
Line 25:17: E231 missing whitespace after ';'
Line 25:17: E702 multiple statements on one line (semicolon)
Line 25:50: E231 missing whitespace after ','
Line 25:76: E231 missing whitespace after ';'
Line 25:76: E702 multiple statements on one line (semicolon)
Line 26:17: E231 missing whitespace after ';'
Line 26:17: E702 multiple statements on one line (semicolon)
Line 26:50: E231 missing whitespace after ','
Line 26:77: E231 missing whitespace after ';'
Line 26:77: E702 multiple statements on one line (semicolon)
Line 31:22: W291 trailing whitespace
Line 36:1: E265 block comment should start with '# '
Line 39:17: E231 missing whitespace after ';'
Line 39:17: E702 multiple statements on one line (semicolon)
Line 39:50: E231 missing whitespace after ','
Line 39:72: E231 missing whitespace after ';'
Line 39:72: E702 multiple statements on one line (semicolon)
Line 40:17: E231 missing whitespace after ';'
Line 40:17: E702 multiple statements on one line (semicolon)
Line 40:50: E231 missing whitespace after ','
Line 40:72: E231 missing whitespace after ';'
Line 40:72: E702 multiple statements on one line (semicolon)
Line 41:33: E231 missing whitespace after ','
Line 42:17: E231 missing whitespace after ';'
Line 42:17: E702 multiple statements on one line (semicolon)
Line 42:50: E231 missing whitespace after ','
Line 42:76: E231 missing whitespace after ';'
Line 42:76: E702 multiple statements on one line (semicolon)
Line 43:17: E231 missing whitespace after ';'
Line 43:17: E702 multiple statements on one line (semicolon)
Line 43:50: E231 missing whitespace after ','
Line 43:77: E231 missing whitespace after ';'
Line 43:77: E702 multiple statements on one line (semicolon)

In the file _class.py:

Line 21:9: E265 block comment should start with '# '
Line 51:1: W293 blank line contains whitespace
Line 231:25: E231 missing whitespace after ','
Line 273:50: E231 missing whitespace after ','
Line 275:52: E231 missing whitespace after ','
Line 275:81: E231 missing whitespace after ','
Line 294:45: W291 trailing whitespace
Line 307:11: E225 missing whitespace around operator
Line 308:1: W293 blank line contains whitespace
Line 324:5: E303 too many blank lines (2)
Line 336:21: W291 trailing whitespace
Line 337:1: W293 blank line contains whitespace
Line 341:23: E225 missing whitespace around operator
Line 341:28: W291 trailing whitespace
Line 345:23: E225 missing whitespace around operator
Line 345:28: W291 trailing whitespace
Line 346:33: E203 whitespace before ':'
Line 346:35: E261 at least two spaces before inline comment
Line 346:36: E262 inline comment should start with '# '
Line 348:26: W291 trailing whitespace
Line 349:23: E225 missing whitespace around operator
Line 349:80: W291 trailing whitespace
Line 350:13: E203 whitespace before ':'
Line 350:15: W291 trailing whitespace
Line 352:1: W293 blank line contains whitespace
Line 374:20: E203 whitespace before ':'
Line 374:22: W291 trailing whitespace
Line 375:29: E261 at least two spaces before inline comment
Line 376:37: E116 unexpected indentation (comment)
Line 377:37: E116 unexpected indentation (comment)
Line 378:1: W293 blank line contains whitespace
Line 382:32: E203 whitespace before ':'
Line 382:34: W291 trailing whitespace
Line 389:28: E203 whitespace before ':'
Line 390:35: E226 missing whitespace around arithmetic operator
Line 390:45: E203 whitespace before ':'
Line 395:27: E225 missing whitespace around operator
Line 396:45: E225 missing whitespace around operator
Line 430:46: E226 missing whitespace around arithmetic operator
Line 441:5: E303 too many blank lines (2)
Line 450:53: E226 missing whitespace around arithmetic operator
Line 450:57: E226 missing whitespace around arithmetic operator
Line 451:53: E226 missing whitespace around arithmetic operator
Line 451:57: E226 missing whitespace around arithmetic operator
Line 452:53: E226 missing whitespace around arithmetic operator
Line 458:24: E226 missing whitespace around arithmetic operator
Line 458:32: E226 missing whitespace around arithmetic operator
Line 458:74: E226 missing whitespace around arithmetic operator
Line 461:5: E303 too many blank lines (2)
Line 465:5: E301 expected 1 blank line, found 0

In the file models/_def_fields.py:

Line 14:5: W291 trailing whitespace
Line 16:21: W291 trailing whitespace
Line 17:59: W291 trailing whitespace
Line 18:20: W291 trailing whitespace
Line 21:1: W293 blank line contains whitespace
Line 22:76: W291 trailing whitespace
Line 24:1: W293 blank line contains whitespace
Line 25:62: W291 trailing whitespace
Line 26:1: W293 blank line contains whitespace
Line 44:34: W291 trailing whitespace
Line 46:15: E203 whitespace before ':'
Line 47:15: E203 whitespace before ':'
Line 49:15: E203 whitespace before ':'
Line 50:15: E203 whitespace before ':'
Line 51:15: E203 whitespace before ':'
Line 51:23: W291 trailing whitespace
Line 52:5: E265 block comment should start with '# '
Line 53:5: E123 closing bracket does not match indentation of opening bracket's line
Line 60:20: W291 trailing whitespace
Line 64:18: E261 at least two spaces before inline comment
Line 68:19: E261 at least two spaces before inline comment
Line 68:20: E262 inline comment should start with '# '
Line 69:9: E131 continuation line unaligned for hanging indent
Line 69:9: E265 block comment should start with '# '
Line 70:9: E265 block comment should start with '# '
Line 71:9: E265 block comment should start with '# '
Line 72:9: E265 block comment should start with '# '
Line 73:9: E265 block comment should start with '# '
Line 74:9: E265 block comment should start with '# '
Line 75:9: E265 block comment should start with '# '
Line 76:5: E265 block comment should start with '# '
Line 86:1: W293 blank line contains whitespace
Line 181:42: W291 trailing whitespace
Line 266:5: E266 too many leading '#' for block comment
Line 296:5: E266 too many leading '#' for block comment
Line 315:1: W293 blank line contains whitespace
Line 316:1: W293 blank line contains whitespace
Line 348:1: W293 blank line contains whitespace
Line 358:7: W291 trailing whitespace
Line 370:1: W293 blank line contains whitespace
Line 389:13: W291 trailing whitespace
Line 434:1: W293 blank line contains whitespace
Line 453:30: E231 missing whitespace after ','
Line 453:47: W291 trailing whitespace
Line 464:29: E203 whitespace before ':'
Line 464:30: E701 multiple statements on one line (colon)
Line 464:46: E225 missing whitespace around operator
Line 465:20: E272 multiple spaces before keyword
Line 465:35: E203 whitespace before ':'
Line 465:36: E701 multiple statements on one line (colon)
Line 465:59: E221 multiple spaces before operator
Line 465:66: W291 trailing whitespace
Line 466:20: W291 trailing whitespace
Line 467:1: W293 blank line contains whitespace
Line 469:27: E231 missing whitespace after ','
Line 493:1: W293 blank line contains whitespace
Line 494:1: W293 blank line contains whitespace
Line 495:5: E303 too many blank lines (2)
Line 505:1: E305 expected 2 blank lines after class or function definition, found 1
Line 505:23: E203 whitespace before ':'
Line 505:24: E701 multiple statements on one line (colon)
Line 505:62: E231 missing whitespace after ','
Line 505:78: E202 whitespace before ')'
Line 506:23: E203 whitespace before ':'
Line 506:24: E701 multiple statements on one line (colon)
Line 506:25: E241 multiple spaces after ':'
Line 506:50: E211 whitespace before '('
Line 506:62: E231 missing whitespace after ','
Line 506:80: W292 no newline at end of file

In the file models/_model_GK.py:

Line 105:72: E226 missing whitespace around arithmetic operator
Line 105:75: E226 missing whitespace around arithmetic operator

In the file models/_model_G_Reduced.py:

Line 20:19: W291 trailing whitespace
Line 22:68: W291 trailing whitespace
Line 23:101: E501 line too long (112 > 100 characters)
Line 52:1: W293 blank line contains whitespace
Line 79:13: W291 trailing whitespace
Line 80:17: E203 whitespace before ':'
Line 80:21: W291 trailing whitespace
Line 81:17: E203 whitespace before ':'
Line 83:20: E203 whitespace before ':'
Line 83:26: E203 whitespace before ','
Line 83:28: W291 trailing whitespace
Line 84:21: E126 continuation line over-indented for hanging indent
Line 86:9: E123 closing bracket does not match indentation of opening bracket's line
Line 87:15: E203 whitespace before ':'
Line 87:19: W291 trailing whitespace
Line 88:17: E203 whitespace before ':'
Line 90:20: E203 whitespace before ':'
Line 90:26: E203 whitespace before ','
Line 90:28: W291 trailing whitespace
Line 91:21: E126 continuation line over-indented for hanging indent
Line 93:9: E123 closing bracket does not match indentation of opening bracket's line
Line 93:11: W291 trailing whitespace
Line 94:1: W293 blank line contains whitespace
Line 95:21: E203 whitespace before ':'
Line 96:17: E203 whitespace before ':'
Line 96:21: W291 trailing whitespace
Line 98:21: E126 continuation line over-indented for hanging indent
Line 99:94: W291 trailing whitespace
Line 100:21: E126 continuation line over-indented for hanging indent
Line 100:23: W291 trailing whitespace
Line 101:5: E123 closing bracket does not match indentation of opening bracket's line
Line 101:6: W292 no newline at end of file

In the file utilities/_class_checks.py:

Line 47:5: E303 too many blank lines (2)

In the file utilities/_utils.py:

Line 4:1: E265 block comment should start with '# '

Do see the Hitchhiker's guide to code style

If we want to be pep8 compliant (which on many of the criteria is for me a reduction of readability, but can be discussed) we can do a run using typically https://pypi.org/project/autopep8/ if we really think that it is an issue ( I personally think that would only be necessary before V1.0 release

@Didou09 I let you confirm the merge and check the changes, I'll be available after 5pm french time if you want to discuss ! please check #48 that will be (if you agree) the roadmap for the following weeks

Comments for next time:

Try to choose a more explicit name for the PR ('Paul improve' is very non-explicit: the fact it is your work is already known on Github, and the fact it is an improvement probably applies to all PR...) If possible try to refer to an existing associated issue, by number

Try to put more details in the description, in particular, try to include:

a section description of the reasons / motivation behind this PR
a brief summary of the main changes
a list of the issues adressed
if there a new functionality: a minimum working example

Regarding PEP8 compliance: I merged because I understand you don't want to spend time on it and prefer to leave it to v 1.0. I don't really think this is a good idea (we'll have a lot of work at the end, and it keeps you from taking good habits), but you're the lead and I can live with that choice if that's what you want.

We usually delete the branch after the merge, but this is your branch so I don't delete it and let you choose if you want to delete / keep it


fix missing supported res type in webapp

This pr was to fix issue #1583 .
We removed the hard-coded "supported resource type" options. The revised webapp res type is able to dynamically harvest all existing resource types from system and use them to build "supported resource type" options.

@pkdash
comments have been addressed. thanks

+1


functional-tests: Provide more advanced network failure injections

Someone in the kubernetes cluster-sig-ops group wrote the following set of scripts to do black box fauult injection against etcd: https://github.com/jdumars/etcdeath
I see we have https://github.com/coreos/etcd/blob/master/pkg/netutil/isolate_linux.go today which does total packet loss, and latency, but etcdeath provides some interesting additional failures that would be good to add to our functional tests.
In particular the following:
packet corruption:
        sudo tc qdisc add dev eth0 root handle 1:1 netem corrupt 15%
        sudo tc qdisc add dev eth0 parent 1:1 handle 10:1 netem corrupt 15%

partial packet loss (instead of complete packet loss):
        sudo tc qdisc add dev eth0 root netem loss 15%

packet reordering:
        sudo tc qdisc add dev eth0 root handle 1:1 netem delay 10ms reorder 25% 50%
        sudo tc qdisc add dev eth0 parent 1:1 handle 10:1 delay 10ms reorder 25% 50%

partitioning:
        sudo tc qdisc add dev eth0 root netem delay 30000ms 20ms distribution normal

Those are just the ones I see we currently don't have, but they seem to be genuinely good tests to run, so I'm just suggesting we add these as alternative ways to stress etcd.

@chancez For the ordering, is it actually testing the TCP stack?

@xiang90 I think ordering makes sense among multiple connections. For example, the bridge could buffer data on each connection for a bit, then control the order that it drains the buffers into the receiver.

@heyitsanthony Oh. Sure. You are right.

/cc @fanminshi You might be interested in this one.

@xiang90 cool!


Not working on Hopper 3.1.3

First of all great plugin.
I haven't looked at the implementation yet but I just tried to demangle a file and I got this
2016-06-09 18:27:11.726 Hopper Disassembler v3[32218:8833191] -[DisassembledFile analysisInProgress]: unrecognized selector sent to instance 0x7fe9d4c41450

2016-06-09 18:27:11.734 Hopper Disassembler v3[32218:8833191] An uncaught exception was raised
2016-06-09 18:27:11.734 Hopper Disassembler v3[32218:8833191] -[DisassembledFile analysisInProgress]: unrecognized selector sent to instance 0x7fe9d4c41450
2016-06-09 18:27:11.736 Hopper Disassembler v3[32218:8833191] (
	0   CoreFoundation                      0x00007fff9de4d4f2 __exceptionPreprocess + 178
	1   libobjc.A.dylib                     0x00007fffa000c73c objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff9deb71ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x00007fff9ddbd571 ___forwarding___ + 1009
	4   CoreFoundation                      0x00007fff9ddbd0f8 _CF_forwarding_prep_0 + 120
	5   Swift Demangle                      0x00000001153da376 _TWaO14Swift_DemangleP33_C529D99E97BE40395B140E581DEAD5096Actions8HashableS_ + 6806
	6   Swift Demangle                      0x00000001153da30c _TWaO14Swift_DemangleP33_C529D99E97BE40395B140E581DEAD5096Actions8HashableS_ + 6700
	7   Swift Demangle                      0x00000001153d8c1e _TWaO14Swift_DemangleP33_C529D99E97BE40395B140E581DEAD5096Actions8HashableS_ + 830
	8   Swift Demangle                      0x00000001153d8cab _TWaO14Swift_DemangleP33_C529D99E97BE40395B140E581DEAD5096Actions8HashableS_ + 971
	9   libsystem_trace.dylib               0x00007fff9cd9607a _os_activity_initiate + 75
	10  AppKit                              0x00007fff8b946dbd -[NSApplication sendAction:to:from:] + 460
	11  AppKit                              0x00007fff8b946b57 -[NSMenuItem _corePerformAction] + 336
	12  AppKit                              0x00007fff8b9468b7 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
	13  libsystem_trace.dylib               0x00007fff9cd9607a _os_activity_initiate + 75
	14  AppKit                              0x00007fff8b9d8e54 -[NSMenu performActionForItemAtIndex:] + 131
	15  AppKit                              0x00007fff8b9d8dc7 -[NSMenu _internalPerformActionForItemAtIndex:] + 35
	16  AppKit                              0x00007fff8b9d8c1f -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 107
	17  AppKit                              0x00007fff8b87dfd9 NSSLMMenuEventHandler + 708
	18  HIToolbox                           0x00007fff8e9277be _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1231
	19  HIToolbox                           0x00007fff8e926c48 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 404
	20  HIToolbox                           0x00007fff8e93c9e6 SendEventToEventTarget + 40
	21  HIToolbox                           0x00007fff8e98699a _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 411
	22  HIToolbox                           0x00007fff8e9b1d5b SendMenuCommandWithContextAndModifiers + 59
	23  HIToolbox                           0x00007fff8e9b1d0c SendMenuItemSelectedEvent + 188
	24  HIToolbox                           0x00007fff8e9b1be8 _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 96
	25  HIToolbox                           0x00007fff8e9b2596 _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 711
	26  HIToolbox                           0x00007fff8e9b2230 _HandleMenuSelection2 + 460
	27  AppKit                              0x00007fff8b8690fa _NSHandleCarbonMenuEvent + 277
	28  AppKit                              0x00007fff8b6de13d _DPSNextEvent + 1906
	29  AppKit                              0x00007fff8b6dd226 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
	30  AppKit                              0x00007fff8b6d1d80 -[NSApplication run] + 682
	31  AppKit                              0x00007fff8b69b368 NSApplicationMain + 1176
	32  Hopper Disassembler v3              0x000000010ff755de Hopper Disassembler v3 + 5598
	33  Hopper Disassembler v3              0x000000010ff75374 Hopper Disassembler v3 + 4980
)

Don't know if its related to my version of Hopper.
I will try to set some time aside and try to figure this out but wanted to create this issue for reference.

Arg! Thanks for reporting this. I'm 90% sure that you're right and it is because of the version of Hopper. The plugin SDK is entirely undocumented (and unsupported AFAICT) so everything I'm hooking into are just random selectors found using cycript or other methods.
I only tested this on the latest version which is currently 3.11.14. Do you mind upgrading? In theory I could try to verify all these calls at runtime, but I'd prefer to avoid that for now if possible!

I do personally recommend add version-comparing codes

Did you run in to the crash because of the exact same selector? If that's the only one affected at least that would be a small addition.


feat(build): Limit cross-compilation to darwin/amd64 and linux/amd64

Closes #94

we'll just have to make sure to purge the -latest releases that are not linux or darwin amd64 from GCS after merging this.

we'll just have to make sure to purge the -latest releases that are not linux or darwin amd64 from GCS after merging this.

@bacongobbler you know how to do that? I can't seem to find the bucket in question. I'm guessing it's not in our sandbox account-- which is the only GCP account of ours I have access to atm.

@krancour It's located in the deis-downloads project. I just gave you access as an admin

@arschles thanks. @bacongobbler this bit of post-merge maintenance you suggested is all taken care of now.

@krancour not sure if you care, but some of the older SHA releases have the entire cross-compiled suite. For example: https://storage.googleapis.com/deisrel/git-3fb96a0/deisrel-git-3fb96a0-netbsd-386 or https://storage.googleapis.com/deisrel/git-32c8c3a/deisrel-git-32c8c3a-openbsd-386. I'm not worried if these don't get removed, but just wanted to make you aware they're out there.

Yep. I'm fine with those sticking around too.  I think the concern was just about removing "latest" for OS / arch combos we're not supporting. Someone looking for those could download them without realizing just how stale they were.


Also provide comma integration?

Thanks for the new modules, they are very convenient! I am wondering whether they could also provide a comma which uses the pre-built database (without having to recompile comma).
My current solution for this is to set
home.file."${hm.config.xdg.cacheHome}/nix-index/files".source =
  inputs.nix-index-database.legacyPackages.${pkgs.stdenv.system}.database;

which is then used by stock comma, but maybe there is a cleaner approach.

I looked at using our wrapped nix-locate with comma, but the issue is that they have hard-coded the database location in order to be able to detect its presence and warn if it's outdated. And I think it will be complicated to detect the difference between a nix-locate that comes with a database included (like the one from this repo), and one where the database is maintained manually.
So I think for now that what you are doing is the best solution.
It will not duplicate the database, as you're just symlinking to the same file in the nix store.

Thanks for taking a look, opened #34 for the symlinking approach :+1:


Sync SSO: read and update data from jwt

also clean up old sso code

alternatively or additionally use a webhook https://www.ory.sh/kratos/docs/self-service/hooks

https://github.com/HangarMC/Hangar/pull/583
https://github.com/HangarMC/HangarAuth/pull/49


Tray crashes as soon as click on it

A strange behavior in my Mac where the tray disappear as soon as I click on it to perform any kind of action. When checking the logs from the daemon it says stdin is closed, shutdown... which is because tray is crashed. I am not sure why it is crashed so added crash report. For me it is constantly happening even after system reboot.
➜  sw_vers
ProductName:	macOS
ProductVersion:	11.4
BuildVersion:	20F71

crash.zip

Discussed more with @anjannath and looks like it is happening when kubeconfig file exist but doesn't have any content.
$ cat ~/.kube/config
apiVersion: v1
clusters: null
contexts: null
current-context: ""
kind: Config
preferences: {}
users: null

It happens when the user has only crc contexts and he hits the Delete button or use crc delete.
A workaround is to delete the ~/.kube/config file and restart the application.


Update to master

Let's not let changes pileup like last time + I would like to test the conda-bot.

Somehow still skips tests?

hell yea! Can't leave our 8 fans waiting :)


Add custom renderer for user mentions

As part of the mentions project, we will be adding a custom renderer called MentionUserRenderer for the  tag. The custom renderer will be similar to the AnchorRenderer.
The details of the implementation are described in the doc here.

Hi 👋🏼  I'm from Software Mansion and I'll handle this task

📣 @RobertKozik! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Ok great @robertKozik. I have assigned you to the issue and shared the design doc with you. Please feel free to hit me up here or in slack if you have any questions!

@robertKozik if you want to test this, the easiest way will be to:

Add the changes from this PR in App/node_modules/expensify-common/lib/ExpensiMark.js. That will make it so that when you type @here or<EMAIL_ADDRESS>it gets the  or  html tags added.
Force the app offline. This way when you send a message it'll just show the optimistic message, not the one returned by the server. This is because the server will strip any html tags it doesn't recognize (we just merged a PR to allow these two, so it won't be live for another few days)

Thats way more convenient than what I used to do (patching the ReportActionItemFragment to replace all occurances). Thanks!

Hey Hey, two questions:

In the mockups in design doc the tooltip which turn on after hovering the user mention includes user profile image. The snippet of userMentionRenderer does not include it. Is it still in the scope for the Before EC3 version?
User mentions which comes from the ExpensiMark does not include fields like login, it's only: <mention-user>@user@mail</mention-user> Is it intended and the login handle is only provided inside the body of the HTML tag?

Great questions.

Given that we're using primary logins, I think we can skip the tooltip altogether for the before EC3 portion of mentions. I don't think any tooltip is needed. We just need to make sure that the profile page is opened when you click on a mention.

Yes, for now there won't be a login attribute. There won't be any html attributes. Just the text between the tags.

Thanks for answers, today I should create the PR with it.

Awesome!

Hi! Sadly I didn't finish it :/ I've encountered two problems:

When I've patched the ExpensiMark file, on Safari browser app is not loading for me and gets following error. Looks like safari can't handle new regex, but I'm not sure about it.

Android native app can't render mention when it's wrapped in Pressable component. Only after refreshing the code, mentions are appearing

I'll investigate it further

Hmm, interesting. It looks like our custom renderer for Anchor tags also returns a component wrapped in a Pressable.

@robertKozik I just wanted to check in and see how this is going.

Sorry, I was OOO most of the time. I've checked the android issue on the physical device and now it work as it should be, maybe that was a problem with my simulator. I'll check today one more just to be sure, and tomorrow PR will be ready to review, hopefully alongside the @here mention renderer as it is very similar

Awesome!

Nice! Reviewing asap.
Yes, it is intended that only certain characters are allowed directly before the @ sign in a mention and . is not one of them.

@puneetlath it looks like for native apps both additional padding and radius cannot be applied. The problem occurs because we are trying to style nested Text component.
I've created a snack to show it: https://snack.expo.dev/@rooobi/nested-text
More source about this behaviour from the react-native-render-html side:

warning from: https://meliorence.github.io/react-native-render-html/api/renderhtmlconfig#bypassanonymoustphrasingnodes
blog post

padding and border are ignored in nested text elements.
https://meliorence.github.io/react-native-render-html/blog/2021/06/29/create-blog-app-rnrh-III#frustrating-react-native-text-limitations

As it looks like we cannot properly style on native side of the things, should we remove the borderRadius and additional padding from the web also?

Just merged.

Great! I'll follow up with the here mention renderer soon

As the PR needs to be reverted due to android problems, what is the correct way to go with this? Do we pivot to the non-rounded mentions for now?

Ok I reverted the PR. This issue is the problem.
I'm going to chat internally and see what the best path forward is here.

That catch me off guard 😢 I could have sworn that It was working for me while testing...
Let me know if you will know what next, with the work we do already here reverting to the more simple colouring will be an ease and would take no time

Ok @robertKozik @parasharrajat I chatted internally and let's go back to using styled text so it will look good on most devices and just accept that it will be ugly on Android in some scenarios.
So back to what you had originally that had this problem:

And then when https://github.com/Expensify/react-native/pull/43 is merged, the issue should resolve itself.

Sorry for all the flip-flopping!

Alright, It will hopefully need only reverting commits, so I'll do it right away, create new PR and test it

And then when https://github.com/Expensify/react-native/pull/43 is merged, the issue should resolve itself.

Not quite itself, as it will introduce new prop for such styling. But follow-up pr would need only to move style to another prop.

Sounds great and that makes sense. Thanks @robertKozik

Created draft PR for that, just want to check it on all platforms and I'll change it to ready cc. @parasharrajat

Sorry, forgot to change it 😄

Merged again!

All paid. Thanks everyone!


Add className support for AppNav

not sure if you want someone else to review but I think I understand it :grin: :+1:


Swipe from the left to show navigation menu missing in v2

Summary
Swipe from the left to show navigation menu missing in v2.
Environment Information

OS Version: Android 11
Mattermost App Version: 2.0.0
Mattermost Server Version: 7.7.2-rc1

Steps to reproduce

open app
enter a channel
attempt to swipe in from the left

Expected behavior
see channel/server list again
Observed behavior (that appears unintentional)
nothing happens
Possible fixes
restore v1 behavior which was required in uservoice

@boombatower I believe this should still work. Have you tried swiping close to the edge of the sidebar?

I just tested again without success, and have complaints from a number of other users of my server. This greatly impedes one handed navigation since the thumb must travel to the top left (back button) or android back button in the bottom left.

On Android those are your options unless you enable the gesture navigation, which basically removes the hardware buttons at the bottom

But why!? This worked in v1 and works in Slack and other apps. The server and team selector flow is great, but the lack of swipe left ruins the experience.

@amyblais The swipe gesture appears to only activate on the left ~15% or so of the screen. This is significantly less usable than the old behavior, especially if you have shaky hands. I will add that after you've opened the message pane, the previously opened channel is gone. You have to tap the channel you were at to get back. No swiping left to get back to where you were like it used to be. This means it's more difficult to just check if there are unread messages in other channels without changing channels. Slack, Telegram, and Discord all have the superior old behavior (with Discord subjectively having the best implementation) and I don't understand the reason for the change.

Hello, opening the sidebar with a swipe has been getting way more complicated indeed. I have tested few apps in comparaison and you can swipe from anywhere to open it or the zone to start the swipe is wider.
Sometimes I have the feeling the click on a message to open a collapsed thread is getting in my way and make the swiper buggy.
This a really important feature or "must have" that impacts badly the user experience honestly
Mattermost iOS v2.0.0 (452)
Mattermost server 7.5.3

This is seriously missing and there's no good reason this was removed after the switch to v2. v1 was a lot more usable in so many regards. Disappointing to see an app getting released with that many (feature) regressions.
It's not normal or expected to see swiping from left, like most apps use it, getting removed from and Android app IMHO


Provide support to enforce permission checking with synced policies by an adapter

Adapter can sync policies from outside databases, but these synced policies are not used for checking permissions at all.
I think we can provide the method to create an enforcer with a defined adapter, it can use the synced policies.
func getEnforcerByAdapter(adapter *Adapter) *casbin.Enforcer {
    // ...
}

When we need to check permissions, we can provide a new param like adapterId to the enforce api. Then the api creates enforcer with the specified adapter and handle the enforcing request.

@leo220yuyaodog

@towerhe I'm working on migrating the adapter sync policy feature to a new module, enforcer. The enforcer is inited with an adapter and a model. You can then specify enforcerId to check the request. Can the new feature meets you expections?

@leo220yuyaodog thanks! It is exactly what i need. I saw enforcer module (#2130) is merged, but the casbin_api is not support this feature by now.

Check #2160


When there is an invalid pipelinetask name in taskRunSpecs, the cause of the error does not match.

Recently, we planned to upgrade to 0.45.x, tested some new features, etc.,
and found some problems.
When an invalid pipelinetaskname appears in the pipelineName in taskRunSpecs, an error is reported in the status that does not match.
Expected Behavior
The configuration is as follows：
...
  taskRunSpecs:
  - metadata:
      annotations:
        env: prod
    pipelineTaskName: prod-kc
  tasks:
  - name: prod-kc-ea704bf6-54e6-40b0-a957-a73bf2b8f3e5
...

We want to show the appropriate error reason.
Actual Behavior
The actual error is as follows：
  conditions:
  - lastTransitionTime: "2023-07-21T02:06:08Z"
    message: 'PipelineRun cicd/test-kc-inject-annotation doesn''t define taskRunSpecs
      correctly: PipelineRun''s taskrunSpecs defined wrong taskName: "prod-kc", does
      not exist in Pipeline'
    reason: InvalidServiceAccountMappings
    status: "False"
    type: Succeeded

/kind bug

/assign


Feature: Feeding cat with mice and energy visuals

It’s getting better each time. This time the next release is near... 😊 @kennethlarsen, have a look!
Resolves #19.

Thanks for looking over it. I'll make a new release on itch.io based on this state (I'll also bump the version here to 1.1.0 and add a Git tag, just to keep track).


Unable to download and create images through Kitematic

I am able to login to kitematic but, get a 401  response when creating a new container.
Actual behavior
(HTTP code 401) unexpected - {"message":"Get https://registry-1.docker.io/v2/library/rabbitmq/manifests/latest: unauthorized: incorrect username or password"}
Steps to reproduce the behavior

Login to Kitematic - Mac OSX
Search for RabbitMQ
Create the RabbitMQ container

There's a good chance that you logged in using your email address. Try to login using your username instead and that should fix the issue.


FS-2548-2572-bug-fix-subcriteria-scoring-status

This super tiny PR resolves a small bug related to the banner status of the subcriteria scoring page.

FS-2548: The incorrect display of status when the application was flagged as QA COMPLETED, where "Assessment complete" was shown instead of "QA complete".
FS-2572: The QA complete status was not displayed in the correct format.

@ramsharma-prog Regarding 2548, can you confirm if the status will display Flagged in the Mark as QA complete page?


size mismatch for weights and bias

Hi there. After trained the model, I run "python serve.py" to test whether  the model is capable to use, before this I have changed run_uuid to be that of my model and checkpoint. Any idea about why it raises error "RuntimeError: Error(s) in loading state_dict for TransformerXLModel:"? Thanks.

(autocomplete) daijianbo@ubuntu18:~/python_autocomplete-master-old/python_autocomplete$ python serve.py
LABML WARNING
Not a valid git repository: /home/daijianbo/python_autocomplete-master-old
Prepare model...
Prepare n_tokens...
Prepare tokenizer...[DONE]  1.27ms
Prepare n_tokens...[DONE]     2.10ms
Prepare transformer...[DONE]  1.33ms
Prepare ffn...[DONE]  0.30ms
Prepare device...
Prepare device_info...[DONE]        23.29ms
Prepare device...[DONE]       23.51ms
Prepare model...[DONE]  107.18ms
Selected experiment = source_code run = b32da5eea23711eb982bccbbfe110075 checkpoint = 1744896
Loading checkpoint...[FAIL]     840.09ms
Traceback (most recent call last):
File "serve.py", line 18, in
predictor = get_predictor()
File "/home/daijianbo/python_autocomplete-master-old/python_autocomplete/evaluate/factory.py", line 39, in get_predictor conf = load_experiment()
File "/home/daijianbo/python_autocomplete-master-old/python_autocomplete/evaluate/factory.py", line 33, in load_experiment
experiment.start()
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/experiment.py", line 256, in start
return _experiment_singleton().start(run_uuid=_load_run_uuid, checkpoint=_load_checkpoint)
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/internal/experiment/init.py", line 407, in start
global_step = self.__start_from_checkpoint(run_uuid, checkpoint)
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/internal/experiment/init.py", line 312, in __start_from_check                             point
self._load_checkpoint(checkpoint_path)
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/internal/experiment/init.py", line 280, in _load_checkpoint
self.checkpoint_saver.load(checkpoint_path)
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/internal/experiment/init.py", line 118, in load
saver.load(checkpoint_path, info[name])
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/labml/internal/experiment/pytorch.py", line 66, in load self.model.load_state_dict(state)
File "/home/daijianbo/miniconda3/envs/autocomplete/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1223, in load_state_dict
raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(RuntimeError: Error(s) in loading state_dict for TransformerXLModel:
size mismatch for src_embed.weight: copying a param with shape torch.Size([1096, 512]) from checkpoint, the shape in current model is torch.Size([1097, 512]).
size mismatch for generator.weight: copying a param with shape torch.Size([1096, 512]) from checkpoint, the shape in current model is torch.Size([1097, 512]).
size mismatch for generator.bias: copying a param with shape torch.Size([1096]) from checkpoint, the shape in current model is torch.Size([1097]).

Looks like the number of tokens is different from the number of token when it was training. Did you change the dataset or run BPE again?

Looks like the number of tokens is different from the number of token when it was training. Did you change the dataset or run BPE again?

No, I dont think I did, the weird thing is my friend also met this problem and the difference between two dimensions is bigger than mine, he got [1084, 512] and [1092, 512] respectively. One way we solve this problem is to train more times and select another checkpoint, sometimes it works. I'm not sure what goes wrong here, whether it could be in the part of "segment-level recurrence"? I have no idea since I haven't review the code carefully.

This looks sounds like a bug. The dimensions of the embedding weights are number of tokens and number of embedding features (d_model)

I will give it a try and see if I can reproduce. Are you running the latest master? Did you make changes? Also is the dataset the same?

I will give it a try and see if I can reproduce. Are you running the latest master? Did you make changes? Also is the dataset the same?

Ok, try and see what will happen, lol. Yep, I downloaded this model several days ago so I suppose I have run the latest master. I haven't make any change other than commented the part of downloading data part, I used my own data and copied it from other folder directly. I also suspected at first whether is because I edited any key code but I don't think so after comparing with the original version. I tried other times from the very beginning, say from downloading the model to making it work. Similar question still exist, btw, my friend also met this, so maybe there is something wrong in the model?
And yeah, I always keep the dataset the same.


First release for X-NUCLEO-IKS01A2 library

I created a dedicated library for X-NUCLEO-IKS01A2 in order to group all the examples for this board just in one package. If you want, we can remove the X-NUCLEO-IKS01A2 examples that are in LSM6DSL, HTS221, LPS22HB and LSM303AGR libraries because they are already included in this package.

About example in other libraries, maybe it should be fine to mention those examples and removed the dedicated examples to avoid duplicated code


Automatically create a job matrix

I'd love to be able to automate a job matrix for our nf-core jobs. Kinda similar to https://github.com/askimed/nf-test/issues/38
Right now we're either running all the tests on one runner:
      # Run nf-test
      - name: Run nf-test
        run: nf-test test tests/pipeline/ --profile=test,${{ matrix.profile }} --junitxml=test.xml

For each container profile
Or we're creating a strategy like:
    strategy:
      fail-fast: false
      matrix:
        NXF_VER:
          - "22.10.1"
          - "latest-everything"
        aligner:
          - "bismark"
          - "bismark_hisat"
          - "bwameth"
        profile:
          - "docker"

And testing with
      - name: Run nf-test
        if: steps.condition.outputs.skip != 'true'
        run: |
          nf-test test tests/pipeline/${{ matrix.aligner }}/ --profile "test,${{ matrix.profile }}" --tap=test.tap

So it requires quite a bit of manual work to keep up with the CI testing right now and keep it flowing smoothly.
I'm thinking if we could list all the tags with a nf-test list tags then we could pull in all the tags and run those separately by default and then use the GH actions include: to get cross-overs of tags or whatever. Then we'd be able to do something like this to automate the job creation, of one GH job per nf-test tag.
But I guess I could hack something together with nf-test list right now to just run every test separately 🤔

Hi Edmund,
Thanks for working on a clean and reusable github action. We appreciate it a lot!
I started a new branch https://github.com/askimed/nf-test/commit/dd531f8a46c69ed6e601361ee55ff396c24badbf and added the --tags option to the existing list function to print only the available tags to stdout:
nf-test list --tags

🚀 nf-test 0.7.3
https://code.askimed.com/nf-test
(c) 2021 - 2023 Lukas Forer and Sebastian Schoenherr

fastqc
snakemake

With the --silent option you could also hide the header to get a clean list (maybe easier for further processing):
nf-test list --tags --silent
fastqc
snakemake

Would this help? Do you prefer an other output format?

I think that kinda fixes it, I was going to parse it all. If we could get to one test, one job that might be cool too, I know sarek and rnaseq each of the tests take a long time.
While I'm asking what about --silent or machine readable:
[tests/functions/demultiplex.nf.test] Test Functions

  [tests/functions/demultiplex.nf.test@31a4c2e5] Test Function extract_csv

[tests/pipeline/fqtk.nf.test] Test Workflow main.nf

  [tests/pipeline/fqtk.nf.test@30dfbce1] FQTK

[tests/pipeline/bclconvert.nf.test] Test Workflow main.nf

  [tests/pipeline/bclconvert.nf.test@48c61014] BCL-CONVERT

to instead:
tests/functions/demultiplex.nf.test@31a4c2e5
tests/pipeline/fqtk.nf.test@30dfbce1
tests/pipeline/bclconvert.nf.test@48c61014

I'll write a small script for it if not, but it'd probably be cleaner in nf-test proper 😁

Should we also add an additional --json flag to write the list of tests/tags as json to stdout? I think gh action supports building a matrix based on json. Maybe this is simpler and easier? 🤔 I am not a gh action expert.
This would also be great, whichever is easier, and if you only want to tackle the json that'd be perfect as well!

* According the one job per tag approach: nf-test supports multiple tags per test. Such tests will then run multiple times.

Exactly, that's why I switched to using the test names! 😆 rnaseq in the rewrite was running multiple tests.
But you got me thinking again... if you do the json, then we can parse for tags, and then split the jobs up. Because I have a setup that looks for changes in the code, and then only runs the pipeline pathways that have changed in the PR, which we could do based off the tags.

* An other much simpler approach would be to distributed the tests accross a fixed number of machines (jest and playwright calls it sharding).  See here for an example: https://playwright.dev/docs/test-sharding

This would also work really well! I have a feeling this is the only way forward with testing pipelines like this, because each test execution by itself takes way too long. I wonder if it could be combo'd with tags... nf-test test --tag aligner --shard=1/2
I'd vote in-terms of bang for buck:

List tests --json option
Sharding (which I guess isn't too bad, you just take the tests, and divide them 🤔)

Json output is implemented in this PR https://github.com/askimed/nf-test/pull/105
Any feedback @Emiller88? Otherwise we will merge it and include it in the next release 👍

I have a feeling this is the only way forward with testing pipelines like this, because each test execution by itself takes way too long

That's also my feeling and it is imho a simple yet scalable solution. We will implement sharding in an other PR. I like the idea :)

We merged PR #105 👍  I close this issue for now, please create a new one for Sharding.


How to choose video codec when taking video on iOS

I use CrossMedia on my Xamarin.Forms project. Our customers has various models of devices. Apple started took videos on HEVC format with iPhone 8 and iOS 11 as default. We encountered a quite interesting problem recently.
The video taken on iPhone X has HEVC (h.265) video codec.
The video taken on older than iPhone 8 such as 6s, has h.264 video codec.
The new codec, HEVC, has issues about running properly on HTML. Only voice, no picture.
So I wonder about that Is there any chance to set video codec in StoreVideoOptions or anywhere else ?
P.S: I am aware about that this is not a bug of the plugin but may be it considered as an enhancement or I can get some help.

@jamesmontemagno  please provide update on this issue?

This is not possible as we pop up the standard camera control. I don't believe you can specify any of that.


AdditionalSourceRootPaths is not supported in default generator

Hello,
I tried to use AdditionalSourceRootPaths to provide additional root folders: my projects usually have this kind of layout:
/
src/
src/main.cpp
src/lib.cpp
include/
include/lib.h
bin/
bin/shaders/triangle.hlsl
third-party/
Currently AdditionalSourceRootPaths is not used (only when using fastbuild and xcode it seems ?) to generate a non-blob project.
Is this something that's planned to be supported or you're looking for a PR to address this ?
Thanks for your time !

Heya!
It should work for other generators, especially vcxproj.
Could you send the code of the constructor of your project where you call the AdditionalSourceRootPaths?

Hello,
Here is the code I'm using in the constructor. I'll attach a minimal repro code archive later today.
I forgot to add previously, the .cs scripts are located inside a sharpmake folder at root, and everything is generated inside a solutions folder. The complete layout is the following:
src/main.cpp
src/lib.cpp
include/lib.h
sharpmake/main.sharpmake.cs
generated/
bin/shaders/
    public SnowEngine()
        : base(typeof(HAL.Target))
    {
        Name = "SnowEngine";
        SourceRootPath = @"../src";
        AdditionalSourceRootPaths.Add(@"../include");
        AdditionalSourceRootPaths.Add(@"../bin/shaders");

        AddTargets(
            new HAL.Target
            {
                DevEnv = DevEnv.vs2017,
                Platform = Platform.win64,
                Optimization = Optimization.Debug | Optimization.Release | Optimization.Retail,
                GraphicAPI = HAL.GraphicAPI.Vulkan
            }
        );
    }

Hum the setup looks correct, to me it looks like a resolving bug with the paths, we pretty much always give full paths to those properties so the relative paths as you use are not tested much :(
Could you try this:
SourceRootPath = @"[project.SharpmakeCsPath]/../src";
AdditionalSourceRootPaths.Add(@"[project.SharpmakeCsPath]/../include");
AdditionalSourceRootPaths.Add(@"[project.SharpmakeCsPath]/../bin/shaders");

Hello @belkiss , I've tried this and I still have the same issue.
I've searched the repo for references to AdditionalSourceRootPaths ( https://github.com/ubisoft/Sharpmake/search?q=AdditionalSourceRootPaths&unscoped_q=AdditionalSourceRootPaths )
And it seems that it's references in the fastbuilt generator and the xcode one, but not in the visual studio ones, that may explain why it seems to be ignored ?
Again thanks a lot for your help !


Document should point to componentRef.current.ownerDocument

Currently getter of document on ReactCrop simply returns document. And it is probably correct for 99,9% of use cases.
In my use case, however - I render crop tool into another window, from source window, via React portal. This means - source window runs the javascript, while crop lives in another window.
As a result - it simply doesnt work.
I did apply some workaround locally:
Reflect.defineProperty(ReactCrop.prototype, "document", {
  get() {
    // get document that 'owns' HTML instance of crop DOM element
    return (this as ReactCrop).componentRef.current?.ownerDocument ?? document;
  },
});

that solved the issue

Hey, the document getter is there for these kind of situations. The recommended way is to extend the ReactCrop class:
import {  ReactCrop } from 'react-image-crop'

export class MyReactCrop extends  ReactCrop {
  get document() {
    return return this.componentRef.current?.ownerDocument ?? document;
  }
}

Oh got it! Why not do it by default tho?

It was originally added for this: https://github.com/DominicTobias/react-image-crop/issues/482
I wasn't aware of ownerDocument and seems like a good idea to be default, feel free to raise a PR! Otherwise I may add it at some point


Add semicolon on example code in layout/grid docs page.

Hello, in this doc page https://v4-alpha.getbootstrap.com/layout/grid/  in the Variable example , please add a semicolon at the end of the map .
$grid-gutter-widths: (
  xs: $grid-gutter-width-base, // 30px
  sm: $grid-gutter-width-base, // 30px
  md: $grid-gutter-width-base, // 30px
  lg: $grid-gutter-width-base, // 30px
  xl: $grid-gutter-width-base  // 30px
)  // **here add a semicolon;**

Because its can cause errors in preprocessors like Koala.
Thanks you and apologies because i dont know how add tags to this issue.

This is no longer an issue in v4-dev—grid gutters are gone temporarily.


Submitting order crashes sometimes

According to our tracker (honeybadger) we get NoMethodError: undefined method uid' for nil:NilClass` sometimes.
It seems to come from orders/show action. On further investigation it comes after we redirect to show from the create action.
The create action creates 2 commands, which then result in events, which then are handled by read models.
It's very likely that after the recent switch to async event handlers, now this not often executes on time.
We'd need to fix this somehow.

Doesn't occur anymore

The acceptance criteria for closing this issue will be to honeybadger not reporting this for some days on production.

I investigated the error message and it seems like it is not possible to reproduce. The reason is the fact that those errors are caused by web-crawlers.

Those web-crawlers try to access non-existing orders. Therefore, the NoMethod error is thrown.
I changed the behaviour and the 404 page will be returned instead [4878e7104]

The 404 page is ugly though.
https://ecommerce.arkademy.dev/orders/hej-andrzej-no-no-method-error


Advanced search: add material- and search-type filters

Advanced search: add material- and search-type filters (default: all boxes checked)

Have it display as two new rows with each item on the row.  So like:
Material Type:  X Documents X Transcripts X Photographs
Search Type: X Full-text X Description Information
Put them first at the top. And have them checked by default.

Natalia estimates this is 2-3 days of work for the Full Text vs Metadata search

Paul is checking to see if this is ok to go forward with.

Paul approved this work so you can get started @nessita

@pdeschner Hi! Before working on this feature, I wanted to confirm a few things with you since in order to make this new search type works, I need to make some changes to the Solr index. So, following this full-text spec sentence:

If a document has both full-text and metadata versions, we would like to treat them as separate search-result hits in the same listing.

and using this example for better understanding:
There is a document full-text "x" with 3 matching images, let's call them "a", "b", "c". When doing a search for a term "t" that has matches both in metadata and full text, should a normal search include the 4 items in the results? This would be 4 rows with x, a, b and c. The row for "x" would have the "full text" label while the 3 rows for a, b, and c, would not.
Now, for the advanced search: when searching for the term "t", is the default behavior to include results for all x, a, b, and c?
And then if the user selects "full-text", do we only return "x"? and if the user selects "descriptive information", we'd only return a, b and c?
Is the above correct? If yes, could you please confirm that we won't have search results rows that combine full-text with metadata in the same row?
Thanks!

Hi Natalia,
Greetings!  Thanks for the request for clarification -- I've answered your questions inline below.
Please get back with any questions if any of this is unclear -- I may well have missed something in thinking this through.
Many thanks!
Paul

From: nessita @.>
Sent: Thursday, August 24, 2023 3:30 PM
To: revsys/revsys-nuremberg @.>
Cc: Deschner, Paul @.>; Mention @.>
Subject: Re: [revsys/revsys-nuremberg] Advanced search: add material- and search-type filters (Issue #289)
@pdeschnerhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pdeschner&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=qFUKLx9hselAl5f1uYKnUvQBFhV6GI5zOWzVGERhz4g8nmJkiK41zkn74-lR9jgV&s=QC5s_XCLY-QA7EYQfN-AxfxAx0xbxDHQmgHblPUOMCE&e= Hi! Before working on this feature, I wanted to confirm a few things with you since in order to make this new search type works, I need to make some changes to the Solr index. So, following this full-text spec sentence:
If a document has both full-text and metadata versions, we would like to treat them as separate search-result hits in the same listing.
and using this example for better understanding:
There is a document full-text "x" with 3 matching images, let's call them "a", "b", "c". When doing a search for a term "t" that has matches both in metadata and full text, should a normal search include the 4 items in the results? This would be 4 rows with x, a, b and c. The row for "x" would have the "full text" label while the 3 rows for a, b, and c, would not.
[PD] Yes, 4 rows would be returned in the search results in the example you give -- this is for the default search behavior when using the Google-style global search box (as on the landing page): both "Full Text" and "Descriptive Information" search options are enabled by default (these options should be displayed as check boxes, as is the case with material types below the search box -- see attached mock-up).
One change in the display of the search-results hits (see attached mock-up): we would like to have links to "[Text]" and/or "[Image]" placed to the right of the trial-number tag for each search-result, to immediately inform the user as to the display options available for this search result (if no trial-number tag is available, then place the link(s) where the trial-number tag would normally appear).  Currently, most search results will only display the "[Image]" link while those search results with full text as well as image will display the links "[Text] [Image]" -- where the "[Image]" link will link to the document version as indicated in the same hierarchy rule-set used to determine the "Image View" link when the full-text display view is presented -- and those search results with only full text will display the "[Text]" link.
This will allow the user to click into the full-text or image view directly from the search-results listing and will also immediately make them aware of the display options available for the search result in question.  If the user clicks on the text of the search result (as is now required), this should take them to the full-text display if this search result is a full-text hit or to an image display if this search result is a descriptive-information hit.
Now, for the advanced search: when searching for the term "t", is the default behavior to include results for all x, a, b, and c?
And then if the user selects "full-text", do we only return "x"? and if the user selects "descriptive information", we'd only return a, b and c?
[PD] Yes, the default behavior in advanced search is -- as is the case with the global search box on the landing page -- both full-text and descriptive-information search.  Otherwise -- as with global search -- only return either full-text or descriptive-information search results, depending on which one the user has selected.
Is the above correct? If yes, could you please confirm that we won't have search results rows that combine full-text with metadata in the same row?
[PD] Not sure I understand the question.  My understanding is that any given search result will be either a full-text hit or a metadata (descriptive-information) hit, never both.  A given search result will often be linked to the other search-type result, as indicated above, but the search result itself will find inclusion in the search-results listing only because it has matched on either full-text content or metadata.  Or did you mean something else here?
Thanks!
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_revsys_revsys-2Dnuremberg_issues_289-23issuecomment-2D1692289886&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=qFUKLx9hselAl5f1uYKnUvQBFhV6GI5zOWzVGERhz4g8nmJkiK41zkn74-lR9jgV&s=xwlcrZ881DQHPY_CSXuZJ07e2yefuJgt4U69hLADzeU&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AALY7AZKAEOC2RTR4L6UAOTXW6TT7ANCNFSM6AAAAAA2Y5IMHM&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=qFUKLx9hselAl5f1uYKnUvQBFhV6GI5zOWzVGERhz4g8nmJkiK41zkn74-lR9jgV&s=lQD5VvKDWHtwVIz2GhR4Q3tHIBbXK_5ryrwgDq2clnA&e=.
You are receiving this because you were mentioned.Message ID: @.***>

Also, if it should prove too difficult to add links for both "[Text] [Image]" to the entries in the search results, then it would be okay to simply list the primary link alone -- either "[Text]" or "[Image]" depending on whether the search result is for a full-text match (when "[Text]" would be displayed) or for a metadata (aka "descriptive information") match (when "[Image]" would be displayed).
When returning search results for the non-document material types -- i.e., transcripts and/or photographs -- then please display a "[Text]" link for transcripts and an "[Image]" link for photographs.
Happy to answer any questions, if this is unclear.

@pdeschner @frankwiles Question regarding extending the search with the "search type". Would it make a bit more sense to just grow material type to differentiate between document text and document metadata? This way, we wouldn't have two listings (material type and search type) and the user would be presented with, IMHO, a better UI/UX:
[ ] Document transcripts
[ ] Document metadata
[ ] Trial Transcripts
[ ] Photographs
What do you think?

Hey Natalia,
So, it's certainly an interesting suggestion, but I think we'll want to stick with the 2 typologies:

Material Type: Document, Transcript, Photograph
Search Type: Full Text, Descriptive Information

This also follows a number of mainline archival sites, which keep search type distinct.  It also maintains a clean conceptual separation, which I think is very useful in a collection as complex as ours.
Cheers,
Paul

From: nessita @.>
Sent: Wednesday, August 30, 2023 9:44 PM
To: revsys/revsys-nuremberg @.>
Cc: Deschner, Paul @.>; Mention @.>
Subject: Re: [revsys/revsys-nuremberg] Advanced search: add material- and search-type filters (Issue #289)
@pdeschnerhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pdeschner&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=5QZk7ajrSg_HvvsYQjS8mBg5E3rlk7jbr9XMtLtMm4s&e= @frankwileshttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_frankwiles&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=uz5gePYUaZkLR7N6yVg5c2jf8VuqDR9LYpzHSRendM4&e= Question regarding extending the search with the "search type". Would it make a bit more sense to just grow material type to differentiate between document text and document metadata? This way, we wouldn't have two listings (material type and search type) and the user would be presented with, IMHO, a better UI/UX:
[ ] Document transcripts
[ ] Document metadata
[ ] Trial Transcripts
[ ] Photographs
What do you think?
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_revsys_revsys-2Dnuremberg_issues_289-23issuecomment-2D1700219640&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=GLZMShQ7UE0ZvOMlhnWk0yKruo3BdkLwhRPWcccnftQ&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AALY7AYRY46LEYFOHQWCVOTXX7UA5ANCNFSM6AAAAAA2Y5IMHM&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=bGP1Hn_Wagn7ArEk857OOXFjIiS9aWgca636DfPvVX8&e=.
You are receiving this because you were mentioned.Message ID: @.***>

This also follows a number of mainline archival sites, which keep search type distinct. It also maintains a clean conceptual separation, which I think is very useful in a collection as complex as ours.

Thank you Paul for the answer. Now, follow up question:

Would Full Text match both document full texts and trial transcripts? (just like the new tag-like we added [Text] for both of them)
And then, would Descriptive Information match photographs as well? Or just document images?

A bit more context for my question, we should define the behavior of someone choosing a combination of:

material type photograph and any of the search types
material type transcript and any of the search types

Hi Natalia,
So, I think I've completely overlooked one aspect of our new search type + material type regime: the user would be able to select a combination of material type and search type in which search and material would be incompatible -- such as search type of full text and material type of photographs, or search type of descriptive information and material type of transcript.
So, I think your suggestion below might actually be the best way to resolve this, short of having the app issue an error message to the user they select an invalid search + material type combo.
The four search combos would be:

Document full text
Document descriptive information
Trial transcript full text
Photograph descriptive information

The default would be for them all to be selected, and it would eliminate the need to maintain 2 separate category types (material as well as search type).  I would label the combos "Search Type" rather than "Material Type" since we're asking the user to tell us what kind of search they would like to execute, which includes within it material type.
This also nicely documents for the user at a single glance our site's content types and means of accessing each.
Does that make sense, and does this answer your other questions?
Thanks,
Paul

From: nessita @.>
Sent: Wednesday, August 30, 2023 9:44 PM
To: revsys/revsys-nuremberg @.>
Cc: Deschner, Paul @.>; Mention @.>
Subject: Re: [revsys/revsys-nuremberg] Advanced search: add material- and search-type filters (Issue #289)
@pdeschnerhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_pdeschner&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=5QZk7ajrSg_HvvsYQjS8mBg5E3rlk7jbr9XMtLtMm4s&e= @frankwileshttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_frankwiles&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=uz5gePYUaZkLR7N6yVg5c2jf8VuqDR9LYpzHSRendM4&e= Question regarding extending the search with the "search type". Would it make a bit more sense to just grow material type to differentiate between document text and document metadata? This way, we wouldn't have two listings (material type and search type) and the user would be presented with, IMHO, a better UI/UX:
[ ] Document transcripts
[ ] Document metadata
[ ] Trial Transcripts
[ ] Photographs
What do you think?
—
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_revsys_revsys-2Dnuremberg_issues_289-23issuecomment-2D1700219640&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=GLZMShQ7UE0ZvOMlhnWk0yKruo3BdkLwhRPWcccnftQ&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AALY7AYRY46LEYFOHQWCVOTXX7UA5ANCNFSM6AAAAAA2Y5IMHM&d=DwMCaQ&c=WO-RGvefibhHBZq3fL85hQ&r=qr3mVkZg6Y9YGHlFbuilpJ9gY_tiZwvf4mGkbbehvLw&m=ZCRBqq6eNpZ_L7ARRJfsOcVG-KZwmiQ3s0GosaoIUurHcQWrB2erI_yt-WQkr0mY&s=bGP1Hn_Wagn7ArEk857OOXFjIiS9aWgca636DfPvVX8&e=.
You are receiving this because you were mentioned.Message ID: @.***>

Does that make sense, and does this answer your other questions?

It does, and yes, this answers my questions. For the record, I think this is the nicest solution UI/UX wise. Thanks!

I believe this is now implemented and available in the dev site, though we still need to fully reindex Solr for the code changes to work as expected. @frankwiles any chance you could trigger a reindex?


hathora build does not generate dist folder in custom react client

According to the build documentation hathora build should create a dist folder in all client subdirectories, but in my project with a custom react client it does not.
hathora build output:
hathora build
Installing dependencies in /Users/martijnwelker/web/wizard/api

up to date, audited 7 packages in 456ms

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Installing dependencies in /Users/martijnwelker/web/wizard/client/.DS_Store
npm or yarn not found.
Installing dependencies in /Users/martijnwelker/web/wizard/client/.hathora

up to date, audited 27 packages in 545ms

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Installing dependencies in /Users/martijnwelker/web/wizard/client/prototype-ui

up to date, audited 131 packages in 536ms

22 packages are looking for funding
  run `npm fund` for details

1 moderate severity vulnerability

To address all issues, run:
  npm audit fix --force

Run `npm audit` for details.

Installing dependencies in /Users/martijnwelker/web/wizard/server

up to date, audited 2 packages in 1s

found 0 vulnerabilities

Installing dependencies in /Users/martijnwelker/web/wizard/server/.hathora

up to date, audited 14 packages in 456ms

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

> build
> vite build

vite v2.9.9 building for production...
✓ 697 modules transformed.
dist/index.html                  6.48 KiB
dist/assets/index.97f32ad3.css   30.53 KiB / gzip: 6.42 KiB
dist/assets/index.39cabb85.js    293.49 KiB / gzip: 86.09 KiB

I've attempted to manually run npm run build in client/web/ but that errors with:
$ npm run build --verbose
npm verb cli /Users/martijnwelker/.nvm/versions/node/v16.16.0/bin/node /Users/martijnwelker/.nvm/versions/node/v16.16.0/bin/npm
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm timing npm:load:whichnode Completed in 1ms
npm timing config:load:defaults Completed in 0ms
npm timing config:load:file:/Users/martijnwelker/.nvm/versions/node/v16.16.0/lib/node_modules/npm/npmrc Completed in 1ms
npm timing config:load:builtin Completed in 1ms
npm timing config:load:cli Completed in 1ms
npm timing config:load:env Completed in 0ms
npm timing config:load:file:/Users/martijnwelker/web/wizard/client/web/.npmrc Completed in 0ms
npm timing config:load:project Completed in 4ms
npm timing config:load:file:/Users/martijnwelker/.npmrc Completed in 1ms
npm timing config:load:user Completed in 1ms
npm timing config:load:file:/Users/martijnwelker/.nvm/versions/node/v16.16.0/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 0ms
npm timing config:load:validate Completed in 0ms
npm timing config:load:credentials Completed in 0ms
npm timing config:load:setEnvs Completed in 1ms
npm timing config:load Completed in 8ms
npm timing npm:load:configload Completed in 8ms
npm timing npm:load:mkdirpcache Completed in 0ms
npm timing npm:load:mkdirplogs Completed in 0ms
npm verb title npm run build
npm verb argv "run" "build" "--loglevel" "verbose"
npm timing npm:load:setTitle Completed in 6ms
npm timing config:load:flatten Completed in 1ms
npm timing npm:load:display Completed in 3ms
npm verb logfile logs-max:10 dir:/Users/martijnwelker/.npm/_logs
npm verb logfile /Users/martijnwelker/.npm/_logs/2022-09-01T13_07_44_327Z-debug-0.log
npm timing npm:load:logFile Completed in 2ms
npm timing npm:load:timers Completed in 0ms
npm timing npm:load:configScope Completed in 0ms
npm timing npm:load Completed in 20ms

><EMAIL_ADDRESS>build
> node scripts/build.js

Creating an optimized production build...Completed in 20ms
Failed to compile.⠂) ⠴ : timing npm:load Completed in 20ms

Attempted import error: 'Writer' is not exported from 'bin-serde' (imported as '_Writer').

npm timing command:run Completed in 4792ms
npm verb exit 1
npm timing npm Completed in 4815ms
npm verb code 1

which comes from
import { Writer as _Writer, Reader as _Reader } from "bin-serde";

Extra info:

hathora --version: 0.9.16
node -v: v16.16.0
npm -v: 8.14.0

If required I can make my repo public 😄 Any help would be appreciated

@MartijnWelker I've fixed the build command in 0.9.17 but I'm not sure about the import error you're getting.
It's not required but if you make your repo public I'd be happy to investigate myself!

Hi @hpx7,
Thanks for your quick reply. With the new Hathora version it attempts to build my client as expected. It's still erroring on the Writer import (which it also did when I manually ran npm build) so I think that that's probably a user error on my side.
I've made my repo public and I would be very grateful if you could have a look. The setup is a create-react-app with typescript, but I had to eject the config because React no longer allows to import files from outside the app directory (removed a webpack plugin from their configuration for that).
I double checked the ts loader (in the webpack config) and that only excludes paths.appNodeModules so AFAIK it should properly import and parse the API ts files.

@MartijnWelker I've been able to identify that the problem is being caused by the way we're compiling our bin-serde project: https://github.com/hathora/bin-serde-ts/blob/f383092cd3b468fd6bdf7b00bcabf583f0916fce/tsconfig.json#L4. Your webpack config isn't able to import commonjs modules for some reason.
Let me know if you're able to find a way to get webpack to work with commonjs style imports (exports.Writer = Writer instead of export class Writer), otherwise I will look into publishing the package with "module": "esnext" instead.

I looked into this a bit more and found several stack overflow posts that suggest using only ES6 style exports/imports because mixing the different export styles is not recommended.
If publishing an updated version of bin-serde is an option that would be great. I think in the end Hathora should be set up in such a way that there should be the least amount of friction with any framework used for custom web clients (and in this case a basic create-react-app with typescript preset cannot compile)

@MartijnWelker try out 0.9.18 and let me know if that fixes the issues for you

@hpx7 Works now. Thank you very much!


[AdaptiveForm] Field labels should indicate if the field is required

Description
The AdaptiveForm package should label required fields appropriately. We should also support marking fields as required through uiOptions.
Screenshots

Schema
{
    "$id": "https://schemas.botframework.com/schemas/skills/skill-manifest-2.1.preview-0.json",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Skill Manifest Schema (Preview)",
    "description": "A schema for Bot Framework skill manifests (Preview)",
    "type": "object",
    "required": [
        "$id",
        "name",
        "version",
        "publisherName",
        "endpoints"
    ],
    "properties": {
       ....
    }
}

https://github.com/microsoft/BotFramework-Composer/pull/2704


Dismount contents when dismissed

Currently the contents of a sheet are mounted even if the sheet is dismissed, would be nice if we could choose if we want the contents the be mounted or not when sheet is dismissed state

Native handles this automatically so it shouldn't affect performance.

Does this only apply for builds and not when in development mode ? Because on my simulator it seems to be huge burden.

However, React will render content first during first load and may affect performance. I would suggest you render TrueSheet when the screen is "shown". If you're using RN navigation, you could use the transition lifecycle to detect when to render.

Will try that, thanks

Id like to raise this again. Even if we disregard the performance issues, putting any kind of logic that follows the following:

Mounts
Execute

Is kind of broken since stuff mounts before the modal is presented.
Say you have a query from ie. react-query inside the truesheet, now it will execute before the sheet is presented.

Have made a temporary solution meanwhile:
import {
  forwardRef,
  useCallback,
  useImperativeHandle,
  useRef,
  useState,
} from 'react';

import { TrueSheet, TrueSheetProps } from '@lodev09/react-native-true-sheet';

export type TrueSheetModalMethods = {
  present: (index?: number) => Promise<void>;
  dismiss: () => Promise<void>;
  resize: (index: number) => Promise<void>;
};

export const TrueSheetModal = forwardRef<TrueSheetModalMethods, TrueSheetProps>(
  (props, ref) => {
    const internalRef = useRef<TrueSheet>(null);

    const { children, onDismiss, ...rest } = props;

    const [mounted, setMounted] = useState(false);

    useImperativeHandle(ref, () => ({
      present: async (index?: number) => {
        if (mounted) return;

        setMounted(true);
        await internalRef.current?.present(index);
      },
      dismiss: async () => {
        if (!mounted) return;

        await internalRef.current?.dismiss();
      },
      resize: async (index: number) => {
        if (!mounted) return;

        await internalRef.current?.resize(index);
      },
    }));

    const handleDismiss = useCallback(() => {
      onDismiss?.();

      setMounted(false);
    }, [onDismiss]);

    return (
      <TrueSheet ref={internalRef} onDismiss={handleDismiss} {...rest}>
        {mounted && children}
      </TrueSheet>
    );
  },
);

On simple content, pre-rendering data/content is an advantage too. Also the height calculation is more accurate if you're not using dynamic content. The way native works is kinda complicated and requires the content to be rendered first so it's not straightforward to logic in the native side.
I'm going for the "generic" use case and special conditions require special code.
Thanks for the feedback though!


Remove the entry from previous stack after history-prev-history

Scenario:

M-x history-add-history.

Move away somewhere. M-x history-prev-history.

Move to a yet another position. M-x history-add-history.

Result: two history entries, the newer after the older.
Expected result: just one history entry, the new one.

Oh it's actually a convenient trick. If your current point is far away from the latest one, it'll move to the latest one. Just like a hint for prompting people where did they just navigate to.

Hi @dgutov , sorry I was wrong. Trying to fix it.

Thanks!


Is it possible to pipe in the output of sort | uniq -c?

Hello!
Is it possible to pipe in the output of sort | uniq -c?
This a basic bash one liner to get distributions.
Issues:

reverse order of data an label;
space separation

Pseudo Code
grep "^." MyFile.tsv | cut -f2 | sort | uniq -c | sort -nr yields
25401 1
23593 7
21999 0
21760 3
20276 4
19462 10
19301 8
18835 5
18413 6

Where the first column are the values, labels are after the white space.
grep "^." MyFile.tsv | cut -f2 | sort | uniq -c | sort -nr | termplot.py plots the  labels (that happen to be numeric as well)
25401: ▇▇    1
23593: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇    7
21999: |    0
21760: ▇▇▇▇▇▇    3
20276: ▇▇▇▇▇▇▇▇    4
19462: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   10
19301: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇    8
18835: ▇▇▇▇▇▇▇▇▇▇    5
18413: ▇▇▇▇▇▇▇▇▇▇▇▇    6
18406: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇    9
17906: ▇▇▇▇    2
17153: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   14
16755: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   13
14757: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   12
14531: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇   11

Thank you!
Abel

@vertesy it's probably easier to put in a awk '{print $2,$1}' into your pipe before termplot

@lebinh Terrific, works, thank you!


Ivy Scala component version check misfires with alternative scalaOrganization

The version check in IvyScala here is only correct where scalaOrganization is actually org.scala-lang, and then only so long as the collection of artefacts under that organization remains fixed.
With an alternative organization (eg. "org.typelevel") all other artefacts (aside from the two whitelisted explicitly in that test, if they exist) will have their binary version tested against the Scala binary version. In particular, with a build of the form,
scalaOrganization := "org.typelevel"

scalaVersion := "2.11.8"

libraryDependencies += "org.typelevel" %% "cats" % "0.6.1"

We'll see the spurious (and very confusing) warning,
[warn] Binary version (0.6.1) for dependency org.typelevel#cats_2.11;0.6.1
[warn]   in org.dummy#scala-organization_2.11;0.1-SNAPSHOT differs from Scala binary version in project (2.11).

because of a mismatch between the cats binary version (0.6.1) and the Scala binary version (2.11.8).
I think the right fix here is to explicitly list the artefact names which we intend to validate, possibly making it a configurable setting.

Perhaps it's just me, but it took me a while to understand what exactly the error is.
So for clarity: @milessabin has configured scalaOrganization to be org.typelevel which is also the organisation of cats. That's why it's triggering.

Yes, that's exactly right ... apologies for not making that clear enough.

I'm happy with an opt-in approach, personally.
If you can wire it through (without breaking binary compatibility) then even better.

What do you mean by an "opt-in" approach?

Explicitly list the artefact names which we intend to validate.

Oh I see ... right. I'm part way through making it configurable with the obvious defaults :-)

See also #1818 and #1899.

FTR I would be happy to retain the current semantics where scalaVersion is in fact org.scala-lang ... see @jsuereth's comment on #1899 here.

I agree to Josh's general sentiment, but not at the cost of special-casing org.scala-lang over alternative scala organisations.


Implement media download

This one needs the camera proto to be updated (see here)

Now that we have MAVLink FTP we could do a proof of concept.

We have MAVLink FTP examples, closing.


Upgrade mocha to v1.16.0 without deployment actions

This has now served its purpose which was to test Mocha v1.16.0. Closing.


feat(csi): update csi sidecars to the latest ones and update lib-csi

The medyagh/setup-minikube docs do not seem to expose an api which consumes a github token. This seems to not cause issues with the repos in the openebs org because we do not seem to be using that many github api requests.


Pipeline should notify in case of static code analyses warnings

Currently the static code analyses is run, but there is no clear indication when a warning was raised due to this. For example this one:

Not sure how to indicate failure. Somehow need to return a number other than 0 to make the pipeline fail.

Maybe related to https://stackoverflow.com/questions/54771043/treatwarningsaserrors-vs-warnaserror and https://github.com/dotnet/msbuild/issues/1791


Updated dockerfile and added entrypoint to collectstatic on build

@tonypearson @krook  changes in this PR

Changed dockerfile base image to registry.access.redhat.com/ubi8/python-38. More secure and 0 vulnerabilities on ICR
added entrypoint.sh to collectstatic. Fixes https://github.com/Call-for-Code-for-Racial-Justice/Legit-Info/issues/77

@tonypearson for some reason this also has the changes from add_states. Hold off on this. I will submit a new PR.


Add support for service.externalIPs

This PR adds the ability to define externalIPs for the service, which is useful for situations where load balancers are not available.
Our use case is a single node cluster, which with an externalIP enables us to pull and push images without having to resort to using a nodePort, which does not work well with rolling updates.

@drewhemm, I see that this MR is already approved, but needs signed git commits. Can you please sign your commits?

Closing this PR, as it seems to have been abandoned without having addressed the feedback given.


fix: poll firewall golden metrics every 60 seconds

This aligns all of the firewall profiles to poll golden metrics every 60 seconds.
Also fixes specific issues fortinet-fortigate had with Memory Utilization golden metrics by tagging fgSysMemUsage and fgSysMemCapacity. A corresponding PR to entity-definitions will follow.

PR for entity def https://github.com/newrelic/entity-definitions/pull/795


feat: Face mesh detection

Is your feature request related to a problem? Please describe:

The ML Kit Face Mesh Detection API is not yet supported.
Describe the solution you'd like:

Add a Face Mesh Detection plugin.
Describe alternatives you've considered:

Additional context:

This issue can be sponsored if interested. Please contact us in advance by email and mention the issue. PRs are also welcome.

@trancee I've prepared everything: #76

I just realized that there is no iOS implementation for this detection module. I assume since it's still in beta, the iOS version might come later?

Okay, so let's just start with Android. 👍🏻


Assignment 4

Thank you ! Now some things about constructors are clearer. Also I had no idea about that forum.

But it's written here!

I  have tried to solve the fifth assignment and I would like to ask you a question. After I load the animals from the file in a list, if I do not know what it is inside the file, how can I know next in the program the type of each animal.?

Are you sure you've read all the instructions? There should be a 'disctiminant' field in each node of an animal / employee. That field should dictate what animal you are dealing with.
Tell me if this does not answer your question. I may not fully understand it.

In main after I call the load method, I receive an ArrayList that will contain animals, how can I know in main what type has each animal from the returned list?

Why would you need this?

Honestly, I was just curious, I am sorry to have bothered you. Is is correct my fifth assignment?,

Ooooh! But don't be sorry! You have not bothered me at all - I was just wondering why you would need such a thing.
Unfortunately, it won't be so easy to find out, however, you can simply use the instanceof operator

But yes, the assignment is good!
Ps: sorry the delayed response

I used to write if (ok == true)  in Pascal and it is a little hard for me to change it now, but I will try.

When I tried to display the results of the repoA.load method I was wondering it there is a simple way of knowing what type of animals is, without seeing the file,  Thank you for saying about the instanceof operator, I think that it may be very useful in the future. I ask this kind of questions to find out things like this one, again thank you for your answers.

It's great that you asked, feel free to do it any time.


test: use-sorting()

test for use-sorting hook

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Missing tag for version 2.1.0

Released in maven central 19-Jun-2014 but it seems this release was not tagged in Git?

@jesseeichar still missing tags for versions 2.1.0 and 2.1.1 released in Maven Central.

Done.

Thanks!


Consider bytes implementation rather than char

Apparently escape codes of bytes are valid password entries so being able to sequence them should be just as feasible.

I doubt that byte sequences require the kind of readability optimizations this library provides in the way of adjacency.


Overview of Voice Conversion in Merlin

Hi,
Can anyone give an overview of voice conversion in Merlin?

What kind of technique is used?  ( something like GMM or HMM or CodeBook Mapping or Unit Selection or ?? )
What kind of features are extracted, if there is any paper where you can point to?
What is the conversion and resynthesis function?

Thanks,
Vivek

Do we learn the phonetic model also or is it possible to do so in voice conversion?

@vivek-sethia You can follow the ordinal numbered recipes in $merlindir/egs/voice_conversion/s1/. For quick reply:

Deep Neural network
lf0, mgc, bap
Generate wav: $merlindir/src/utils/generate.py


Issue 15 build solution class

Fixed error message

Codecov Report

Merging #76 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #76   +/-   ##
=======================================
  Coverage   85.28%   85.28%
=======================================
  Files           8        8
  Lines         435      435
=======================================
  Hits          371      371
  Misses         64       64

Impacted Files
Coverage Δ

pkmodel/solution.py
57.72% <100.00%> (ø)

Continue to review full report at Codecov.

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


在page页面的生命周期 initstate ,展示对话框报错，放在didChangeDependencies同样也报错

initstate的错误
void _init(Action action, Context ctx) {
//展示对话框
DialogUtil.showNetLoadingDialog(ctx.context);
//网络请求
_getHouseData(ctx.context, ctx.extra['page'], filterData).then((houseData) {
ctx.dispatch(HouseActionCreator.onLoadHouseData(houseData));
});
I/flutter (12789): The following assertion was thrown building _PageWidget<HouseState, Map<String, dynamic>>(state:
I/flutter (12789): _PageState<HouseState, Map<String, dynamic>>#d306a):
I/flutter (12789): inheritFromWidgetOfExactType(_LocalizationsScope) or inheritFromElement() was called before
I/flutter (12789): ComponentState.initState() completed.
I/flutter (12789): When an inherited widget changes, for example if the value of Theme.of() changes, its dependent
I/flutter (12789): widgets are rebuilt. If the dependent widget's reference to the inherited widget is in a constructor
I/flutter (12789): or an initState() method, then the rebuilt dependent widget will not reflect the changes in the
I/flutter (12789): inherited widget.
I/flutter (12789): Typically references to inherited widgets should occur in widget build() methods. Alternatively,
I/flutter (12789): initialization based on inherited widgets can be placed in the didChangeDependencies method, which
I/flutter (12789): is called after initState and whenever the dependencies change thereafter.
I/flutter (12789):
I/flutter (12789): User-created ancestor of the error-causing widget was:
I/flutter (12789):   MaterialApp file:///C:/ccb-flutter/CCBAgency/lib/main.dart:59:12
I/flutter (12789):
I/flutter (12789): When the exception was thrown, this was the stack:
I/flutter (12789): #0      StatefulElement.inheritFromElement. (package:flutter/src/widgets/framework.dart:4164:9)
I/flutter (12789): #1      StatefulElement.inheritFromElement (package:flutter/src/widgets/framework.dart:4207:6)
I/flutter (12789): #2      Element.inheritFromWidgetOfExactType (package:flutter/src/widgets/framework.dart:3439:14)
I/flutter (12789): #3      Localizations.of (package:flutter/src/widgets/localizations.dart:448:47)
2,  didChangeDependencies 里的错误
void _depend(Action action, Context ctx){
//展示对话框
DialogUtil.showNetLoadingDialog(ctx.context);
ErpHouseFilterData filterData = ctx.state.filterData.filterData;
//请求房源
_getHouseData(ctx.context, ctx.extra['page'], filterData).then((houseData) {
ctx.dispatch(HouseActionCreator.onLoadHouseData(houseData));
});
}
The following assertion was thrown building _PageWidget<HouseState, Map<String, dynamic>>(state:
I/flutter (12789): _PageState<HouseState, Map<String, dynamic>>#3d574):
I/flutter (12789): setState() or markNeedsBuild() called during build.
I/flutter (12789): This Overlay widget cannot be marked as needing to build because the framework is already in the
I/flutter (12789): process of building widgets.  A widget can be marked as needing to be built during the build phase
I/flutter (12789): only if one of its ancestors is currently building. This exception is allowed because the framework
I/flutter (12789): builds parent widgets before children, which means a dirty descendant will always be built.
I/flutter (12789): Otherwise, the framework might not visit this widget during this build phase.
I/flutter (12789): The widget on which setState() or markNeedsBuild() was called was:
I/flutter (12789):   Overlay-[LabeledGlobalKey#7829d]
I/flutter (12789): The widget which was currently being built when the offending call was made was:
I/flutter (12789):   _PageWidget<HouseState, Map<String, dynamic>>
I/flutter (12789):
I/flutter (12789): User-created ancestor of the error-causing widget was:
I/flutter (12789):   MaterialApp file:///C:/ccb-flutter/CCBAgency/lib/main.dart:59:12
I/flutter (12789):
I/flutter (12789): When the exception was thrown, this was the stack:
I/flutter (12789): #0      Element.markNeedsBuild. (package:flutter/src/widgets/framework.dart:3687:11)
I/flutter (12789): #1      Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:3702:6)
I/flutter (12789): #2      State.setState (package:flutter/src/widgets/framework.dart:1161:14)
I/flutter (12789): #3      OverlayState.insertAll (package:flutter/src/widgets/overlay.dart:346:5)
I/flutter (12789): #4      OverlayRoute.install (package:flutter/src/widgets/routes.dart:43:24)
I/flutter (12789): #5      TransitionRoute.install (package:flutter/src/widgets/routes.dart:180:11)
I/flutter (12789): #6      ModalRoute.install (package:flutter/src/widgets/routes.dart:907:11)
I/flutter (12789): #7      NavigatorState.push (package:flutter/src/widgets/navigator.dart:1768:11)
I/flutter (12789): #8      showGeneralDialog (package:flutter/src/widgets/routes.dart:1566:53)
I/flutter (12789): #9      showDialog (package:flutter/src/material/dialog.dart:705:10)
I/flutter (12789): #10     DialogUtil.showNetLoadingDialog (package:ccbagency/util/DialogUtil.dart:23:7)
I/flutter (12789): #11     _depend (package:ccbagency/page/house_page/effect.dart:67:14)
I/flutter (12789): #12     combineEffects. (package:fish_redux/src/redux_component/helper.dart:74:32)
I/flutter (12789): #13     createEffectDispatch. (package:fish_redux/src/redux_component/helper.dart:89:39)
I/flutter (12789): #14     createDispatch. (package:fish_redux/src/redux_component/helper.dart:109:39)
I/flutter (12789): #15     LogicContext.onLifecycle (package:fish_redux/src/redux_component/context.dart:9

您说的问题其实和Fish Redux没有太多关系， 这个和Widget的生命周期有有关，在创建一个Widget的过程中initState以及第一次调用的didChangeDependencies时，Widget的context并没有初始化完成，因此在您展示弹窗时才会出现相应的问题。
解决方法:
您可以通过引入:
import 'package:flutter/scheduler.dart';
在iniState中获取页面第一帧创建时的回调, 在其中做弹窗操作即可:
void _initState(Action action, Context<PageState> ctx) {
  SchedulerBinding.instance.addPostFrameCallback((_) {
   // Do Something
  });
}

@VoterLin  感谢你的回答，已经解决了这个问题