Escape printed strings in STM

While writing STM tests of Weak Hashsets in #214 I noticed that the string combinator's built-in printer did not escape the printed characters - or add enclosing "-quotes. Here's an output example:
  Results incompatible with linearized model

                                                                                |
                                             (Merge "q\148x\189xu\225\235\014n\178H0\234\195\237") : Ok (q�x�xu��n�H0���)
                                                                                |
                                           .------------------------------------------------------------------------------.
                                           |                                                                              |
             (Find "q\148x\189xu\225\235\014n\178H0\234\195\237") : Ok (�)                (Remove "q\148x\189xu\225\235\014n\178H0\234\195\237") : Ok (())
(Add "\208") : Ok (())

Notice that the Merge, Find, and Add arguments are nicely escaped and quoted, while the Ok result arguments are not. This is because the former were derived with [@@deriving show].
In my terminal the resulting strings mostly show as question mark signs in a diamond (not so informative).
Here's an example output with the fix - for contrast:
  Results incompatible with linearized model

                                                                   |
                                                   (Add "\140\251\192\136") : Ok (())
                                                                   |
                                   .---------------------------------------------------------------.
                                   |                                                               |
     (Find_opt "\140\251\192\136") : Ok (Some ("w\195Z\181\015a*"))              (Remove "\140\251\192\136") : Ok (())
                                                                                (Add "w\195Z\181\015a*") : Ok (())

In this case it becomes clearer that Find_opt doesn't necessarily return a string identical to its argument when used in parallel (as we would expect).

CI is happy so I'll merge this one-liner fix.


attic-client: 0-unstable-2024-10-04 -> 0-unstable-2024-10-06

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for attic-client is: Multi-tenant Nix Binary Cache
meta.homepage for attic-client is: https://github.com/zhaofengli/attic
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0-unstable-2024-10-06 in filename of file in /nix/store/z70a85zr3d2fxh6g24kxb7yyd8a8d9vy-attic-0-unstable-2024-10-06

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

attic-client
attic-server

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/z70a85zr3d2fxh6g24kxb7yyd8a8d9vy-attic-0-unstable-2024-10-06 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A attic-client https://github.com/r-ryantm/nixpkgs/archive/fc904bd03134e098bd2fec7cc61e6ac148aad392.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/fc904bd03134e098bd2fec7cc61e6ac148aad392#attic-client

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/z70a85zr3d2fxh6g24kxb7yyd8a8d9vy-attic-0-unstable-2024-10-06
ls -la /nix/store/z70a85zr3d2fxh6g24kxb7yyd8a8d9vy-attic-0-unstable-2024-10-06/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

attic-client
attic-server

Maintainer pings
cc @zhaofengli @aciceri for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

It would be  great if recent changes cloud be picked up, since the recent version broke my system config (using 24.05). See also https://github.com/zhaofengli/attic/pull/181.
With the current version breaking actual setups it would be great if it could then be backported rather quickly...


Python debiasing libraries to implement

This issue is to document the libraries to implement in python.  Using this table as reference for relevant methods.

python-cmethods, which also has a faster C++ version for larger datasets.

Quantile Mapping (additive and multiplicative)
Quantile Delta Mapping (additive and multiplicative)
Delta (Change) Method (additive and multiplicative)
Linear Scaling (additive and multiplicative)
Variance Scaling (additive)

pyCat

Quantile Mapping (among many others): Themeßl et al.
Scaled Distribution Mapping: Switanak et al.

@RuthBowyer please feel free to add any other libraries that we should look at.

@RuthBowyer are you aware of this one? https://ibicus.readthedocs.io/en/latest/index.html

This looks great - but looking at the method summary I believe in some cased they are using different names for the same method as we have in the methods table (ie CDFt and ECDFM I believe are different types of QM approaches we have under different names - I'll investigate!
If the other methods are speedier with this library, then great!

Using this table as reference for relevant methods.

Also just to share I have added to the read me, and avail [here] (https://docs.google.com/spreadsheets/d/18LIc8omSMTzOWM60aFNv1EZUl1qQN_DG8HFy1_0NdWk/edit?usp=sharing) is just that first tab from that spreadsheet - as other tabs will contribute towards publication (apols as should have flagged!)

Notes from meeting 17th Feb:

Quantile Delta Mapping (additive and multiplicative)
Scotland
Firt c-methods and then pycat.

If implementation in pycat is easy try to implement 'Scaled Distribution Mapping'.
Tasmax and run 01 for now.

Use time periods in here: https://github.com/alan-turing-institute/clim-recal/issues/3

Are we providing install instructions for these libraries or is it enough to say install library X found here?

Or would we consider some of these to be submodules and lock in commits/versions of them that we know to work?

Are we providing install instructions for these libraries or is it enough to say install library X found here?

I've added it to the environment file with fixed versions, but this might not be optimal, happy to change it.

Just a few notes on getting pycat "working" (will update as I make progress)
The installation instructions on their GitHub page do not work, some extra steps are needed:

pip install shapely==1.8.5

Only this specific version has worked for me, earlier and later both have differently named imports and so breaks pycat

brew install geos

if on mac (or equiv on other systems)

conda install --file conda-requirements.txt

This will kinda fail / give lots of warnings, but seems needed

This is really helpful Aoife thank you! Just going to tag @dingaaling as it would be great to have all your thoughts on presenting this info - obvs can note within scripts/markdowns/notebooks the additional steps, but could add either into the methods taxonomy or have a second table listing the libraries in each language, and the recommended one to use per method (if any avail?)

Sorry for the ping, @japopeBAS have you this pycat library running, if so could you pip freeze as I think there's a library out of date which isn't specified.

Oh @RuthBowyer mentioned you'd used pyCat?

Hey there - sorry if I've crossed wires, I thought the SDM method was ran via pyCat at the met office - we were wondering if you knew of any issues experienced in implementing the method via this library?

Ahhh, with you know. I will ask and find out!

Thank you!

Hi, so I have had a confirmation that it was run using the PyCat implementation and that there wasn't much issue with it here.


[FIX] #174 added timer operation, tests.

Coverage increased (+0.4%) to 95.246% when pulling cd0b4e463bd9f82999253fb74a87fc55dd94e9be on ping-timer into ecb3ad681837ca7f97987e0fa6abcb46054a0f7e on master.

Coverage increased (+0.4%) to 95.207% when pulling 69d9fefc07f161d144c3dd88498239fd49b24984 on ping-timer into ecb3ad681837ca7f97987e0fa6abcb46054a0f7e on master.


Usage of custom model

When using a custom model (extending the default one). This package automatically uses id as column name. Except not everyone uses the default laravel naming conventions.

A new release has been tagged: https://github.com/stefanzweifel/laravel-sends/releases/tag/v2.0.1
Thanks for your contribution.


Correct waitlist instruction in README

Changed the text "Fill out this form to get off the waitlist or speak with our sales team." to "Fill out this form to get on the waitlist or speak with our sales team."

Thanks!


Battery status not working on Ubuntu 16.10

Hi,
I've just upgraded my ubuntu installation from 16.04 to 16.10 and the battery status is now missing, running:
cut -c3- ~/.tmux.conf | sh -s _battery

Returns:
sh: 343: [: Illegal number: %d9.7
sh: 345: Illegal number: %d9.7

cat /sys/class/power_supply/BAT0/capacity

returns 97.

Works for me.

Double check upgrading didn't break awk.

Hi,
I got it working with these changes:
diff --git a/.tmux.conf b/.tmux.conf
index 2e96dcf..4ae9e5a 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -319,7 +319,7 @@ run 'cut -c3- ~/.tmux.conf | sh -s _apply_configuration'
 #     palette=$(echo "$palette" | awk -v n="$battery_bar_length" '{ for (i = 0; i < n; ++i) printf $(1 + (i * NF / n))" " }')
 #     eval set -- "$palette"
 #
-#     full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }")
+#     full=$(awk 'BEGIN { printf "%.0f", ($charge) * $battery_bar_length }')
 #     battery_bar="#[bg=$battery_bg]"
 #     # shellcheck disable=SC2046
 #     [ "$full" -gt 0 ] && \
@@ -337,7 +337,7 @@ run 'cut -c3- ~/.tmux.conf | sh -s _apply_configuration'
 #     battery_empty_fg=$2
 #     battery_bg=$3
 #
-#     full=$(awk "BEGIN { print \"%d\" ($charge) * $battery_bar_length }")
+#     full=$(awk 'BEGIN { printf "%d", ($charge) * $battery_bar_length }')
 #     [ x"$battery_bg" != x"none" ] && \
 #       battery_bar="#[bg=$battery_bg]"
 #     [ "$full" -gt 0 ] && \
@@ -348,6 +348,7 @@ run 'cut -c3- ~/.tmux.conf | sh -s _apply_configuration'
 #       battery_bar="$battery_bar#[fg=$battery_empty_fg]"
 #   fi
 #
+#     battery_vbar_bg='none'
 #   if echo "$battery_vbar_palette" | grep -q -E '^heat|gradient(,[#a-z0-9]{7,9})?$'; then
 #     # shellcheck disable=SC2086
 #     { set -f; IFS=,; set -- $battery_vbar_palette; unset IFS; set +f; }
diff --git a/.tmux.conf.local b/.tmux.conf.local
index 10c6d5e..ce0a079 100644
--- a/.tmux.conf.local
+++ b/.tmux.conf.local
@@ -206,8 +206,8 @@ tmux_conf_battery_bar_palette='gradient'
 #   - gradient (default)
 #   - heat
 #   - 'colour_low,colour_half,colour_full'
-tmux_conf_battery_vbar_palette='gradient'
-#tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00'  # red, orange, green
+# tmux_conf_battery_vbar_palette='gradient'
+tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00'  # red, orange, green

 # symbols used to indicate whether battery is charging or discharging
 tmux_conf_battery_status_charging='⚡'     # U+26A1

I disagree with the first two changes. I don't understand how it can even work since $charge won't even be expanded inside single quotes

it's expanded by awk not bash

but the problem is not the quotes, it's the print instead of printf and the battery_vbar_bg only being initialized inside of the if.

Just try it for yourself...
#!/bin/sh

charge="50 / 100"
battery_bar_length="10"
set -x
full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }")
set +x

echo "$full"

echo ---

set -x
full=$(awk 'BEGIN { printf "%.0f", ($charge) * $battery_bar_length }')
set +x
echo "$full"

gives
$ ./test.sh
++ awk 'BEGIN { printf "%.0f", (50 / 100) * 10 }'
+ full=5
+ set +x
5
---
++ awk 'BEGIN { printf "%.0f", ($charge) * $battery_bar_length }'
+ full=0
+ set +x
0

Which version of awk are you using?

$ awk -V
GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.1)

Again, it works for me with a stock 16.10 installed.
$ vagrant init ubuntu/yakkety64; vagrant up --provider virtualbox
$ vagrant ssh
$ cd
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ tmux

but I think you are right, I get the same result with the test script you pasted above.
And I think that with my first diff I would always get a full bar. Use my second diff.

but that line should have printf instead of a print:
awk "BEGIN { print \"%d\" (50) * 100 }"

returns %d5000

I think the difference is my tmux.conf.local you must be landing on the part the has:
full=$(awk "BEGIN { printf \"%.0f\", ($charge) * $battery_bar_length }")

and I'm landing on the elif where it has the:
full=$(awk "BEGIN { printf \"%d\", ($charge) * $battery_bar_length }")

After upgrading my ubuntu I've also made some changes to my .tmux.conf.local and that might have triggered the problem, not the upgrade.

Try without a ~/.tmux.conf.local also look around where tmux_conf_battery_bar_length is defined

My ~/.tmux.conf.local is valid and tmux_conf_battery_bar_length is set to 5.
The problem is that on line 340 you should have a printf instead of a print and that battery_vbar_bg is only set if you are using heat or gradient.
Line 340 is also never used if you use heat or gradient.
With the default ~/.tmux.conf.local everything works because you never hit that part of the code.

I'm using:
tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00'

you can see my full ~/.tmux.conf.local here: https://github.com/luisdavim/dotfiles/blob/master/files/tmux.conf.local

the battery status freezes to the last state after you apply my ~/.tmux.conf.local, it disappears if you reboot afterwards and starts working again if you apply the changes from my second diff.

Thanks for helping debugging this 👍

No problem :)

Meh, force pushed as I forgot to silence the linter :(

since you are updating stuff, can you add a .gitignore file containing:
plugins/

I use some plugins and I keep them in ~/.tmux the same as this...

I could but doesn't that mean you should clone my configuration elsewhere?

In fact, I think it's a better idea you use a global ignore file, see https://git-scm.com/docs/gitignore


refactor: Separate JS and css file from html

Please do not update the README or Change Log, we will do this when we merge your PR.
This PR (delete as applicable)

Code refactoring
Add Bootstrap 5 CDN and script

Describe the changes below:

Create CSS and JS folders and files inside the assets folder to separate them from the HTML file.

tested and working


chore(permission-log-controler): preview version

Explanation
Permission Log Controller first release, the purpose of this PR is to create a preview version to test the changes on metamask-extension, after migration of this controller from extension to core

@metamaskbot publish-preview


Cleanup SystemState usage in bevy_winit

Some cfg flag usages could be improved in bevy_winit by using type aliases instead of repeating the system parameters.
Solution

Move the system parameters to a type alias.
Extract the event::Event::WindowEvent into its own function. The inner match was very indented, making code harder to follow.

155 less lines of code to worry about.

Most of the changes from this PR do not make sense anymore, furthermore, I'm working on integrating the best parts as a different PR. Closing because out of date and will be superseded by a future PR.


Dependency Version Match

Description
We should have the ability to match a package and version data to trigger an criteria match.
Propose Solution
Currently to my knowledge we don't have this data present in the GraphQL API
Only Ranges and some other metadata is present

https://docs.github.com/en/graphql/reference/objects#securityvulnerability

[optional] Alternative Solutions

This data is present in the API called requirements but we need to be able to create a match string between the Policy and API

Added support in #28


textx.model.ObjCrossRef not resolved to proper object

I was trying textx and there seems to be a problem with link rule references. Resulting model is containing textx.model.ObjCrossRef instead of specified objects.
Here is an example code:
from textx.metamodel import metamodel_from_file, metamodel_from_str

grammar_str = """
Expression:
    atts+=Attribute[','] 'formula' form=Formula
 ;
Formula:
    (values=FormulaExp (values=AndOr values=FormulaExp)*)
;

FormulaExp:
    ( values=BOOL )
    | ( values=Cond )
    | ( values='(' values=Formula values=')' )
;

Cond:
    negative?='not' (attribute = [Attribute|attr_id])
    ((operator = BinOp values=STRING) | (operator = 'in' '(' values+=STRING[','] ')') | (operator = 'between' values=STRING 'and' values=STRING))
;

attr_id:
    /attr_[a-f0-9]+/
;

Attribute:
    name = attr_id
;

BinOp:
    '<' | '>'
;

AndOr:
    'and'|'or'
;
"""

mm = metamodel_from_str(grammar_str, ignore_case=True, auto_init_attributes=False)
m = mm.model_from_str("attr_123, attr_444 formula attr_123 < 'aa'")
print m.atts
print m.form.values[0].values[0].attribute
print m.form.values[0].values[0].attribute.cls, m.form.values[0].values[0].attribute.obj_name

Second print should be of class Attribute with name attr_123. It is ObjCrossRef instead.

Following part of the grammar has caused the problem:
    | ( values='(' values=Formula values=')' )

As strings are collected in values attribute textX will deduce this attribute to be a list of strings and will not descend into resolving. In this particular grammar parentheses are just a syntax noise and should not be collected at all.
So, the following works:
 | ( '(' values=Formula ')' )

Nevertheless, I would like this particular case of collecting arbitrary objects in a single rule to be either possible or to raise en error. At present time I think it wouldn't be that hard to enable. The only difficulty I see will be the visualization (export to dot). Probably the most pragmatic solution in visualization is to report such type as a list of objects and display it inline.

The issue is fixed on the master branch. Please test.


Adding POI icon for restaurants and fast food

Finally got around to adding an icon for restaurant, fast_food, and food_court. Folks on the Slack channel seemed to agree that combining these, rather than using different icons for restaurant and fast_food, was preferable. I went back and forth between parallel and diagonal utensils, but I determined that the parallel ones look wonky when there are several restaurants stacked, so to speak. Since they are on the diagonal, there's not much pixel alignment to be done.
Relatedly, I think it would make sense to pursue adding the cuisine tag to OMT (discussion started in openmaptiles/openmaptiles#1527) so that we can differentiate between the various POIs and get a little more visual variety.
This PR makes progress on #692. Open to any feedback or suggestions!

@claysmalley Those problems should be fixed now but let me know if not.

Let's eat!


data: unknown，payload unknown

cmd: grpcdump -i lo -p xxxx -f xxx.proto
log :
Jul 10 16:46:29.858333	xxx:36035->xxx:25462	packetno:1	streamid:1	data:(unknown)
Jul 10 16:46:29.858693	<IP_ADDRESS>:25462-><IP_ADDRESS>:36035	packetno:5	streamid:1	data:(unknown)
Jul 10 16:46:34.857590	<IP_ADDRESS>:36035-><IP_ADDRESS>:25462	packetno:12	streamid:1	data:(unknown)
Jul 10 16:46:34.857924	<IP_ADDRESS>:25462-><IP_ADDRESS>:36035	packetno:16	streamid:1	data:(unknown)
Jul 10 16:46:39.857601	<IP_ADDRESS>:36035-><IP_ADDRESS>:25462	packetno:26	streamid:1	data:(unknown)
Jul 10 16:46:39.857894	<IP_ADDRESS>:25462-><IP_ADDRESS>:36035	packetno:30	streamid:1	data:(unknown)
Jul 10 16:46:44.857749	<IP_ADDRESS>:36035-><IP_ADDRESS>:25462	packetno:37	streamid:1	data:(unknown)
my question : why payload is unknown , what should i do the payload can parse to object；

Care to upload your pcap file and proto file for my investigation?

pcap:
20230710.pcap.zip
proto 文件：
master.proto.zip

Would you like to try grpcdump  -p 24461 -r 20230710.pcap -f master.proto -m AUTO? The key is -m AUTO.
The reason why it didn't parse the date is the we missed the first packet which initiated the grpc stream and carried the hpack header compression info, therefore we can't parse the consequent traffic, unless we try our luck to do some guess, which is -m AUTO meant to do.

Be aware that -m AUTO works on guess, so there could be mistakes happened, especially when multiple grpc messages are defined as exactly same date structure layout.

Good. Thank you very much. Got it


Created .net port from the python3 code

Hi,
Your Python3 code was exactly what i was looking for, i needed to know how Navicat encrypted the passwords in the registry so i can add navicat database connections without using navicat.
I ported the python3 code to .net so i can use it in my other project im building.
I dont know if you can use it or even want to have the code in your repository but here it is anyway.
Grts,
Maurice

Thank you. Your code has been checked and it seems to work fine. Thanks for your pull request.


Add draft preview mode to tools

Like Articles have already

[ ] Admin only
[ ] Add "THIS IS A PREVIEW" warning banner
[x] Draft "secret" URL, like article
[ ] "Preview" button from the resource's admin show page to its public show page.

Anyone else doing this one?

@greggawatt Don't think so. Go for it.

On further consideration, I don't think these need a "secret URL" if they are protected by signed_in? users only.

Related to: https://github.com/crimethinc/website/issues/415

I'm going to try to do this in a way that makes it modular for podcasts as well.

Great! I was hoping there’d be a DRYish way of doing this.

@veganstraightedge I'd like to talk this one through before i start i'm not quite understanding the way it's done with articles. Let me know when we can do that. <3


AttributeError: 'str' object has no attribute 'family'

Hi,
I'm porting my code to Python 3 and writing test routines.  vobject currently chokes on the following code:
name = 'Max Mustermann'
email =<EMAIL_ADDRESS>vcard = vobject.vCard()

try: assert vcard.n
except: vcard.add('n')
vcard.n.value = name

try: assert vcard.fn
except: vcard.add('fn')
vcard.fn.value = name

try: assert vcard.email
except: vcard.add('email')
vcard.email.value = email

serialized = vcard.serialize()

with the following traceback:
Traceback (most recent call last):
File "/home/juicie/wsgi/py/vobject/base.py", line 215, in transformFromNative
return self.behavior.transformFromNative(self)
File "/home/juicie/wsgi/py/vobject/vcard.py", line 310, in transformFromNative
obj.value = serializeFields(obj.value, NAME_ORDER)
File "/home/juicie/wsgi/py/vobject/vcard.py", line 277, in serializeFields
toList(getattr(obj, field))]
AttributeError: 'str' object has no attribute 'family'

It used to work with my old code. What am I doing wrong?
Thank you.

When you say "it used to work with my old code", what do you mean? It worked in python 2? It worked with an older version of vobject?

Yes, it worked in Python 2 and probably an older version of vobject, though I can't find a version number in the vobject code right now. All is running on a normal web server without root access, so I just copy code over without pip or other code management.
That aside, shouldn't the simple code that I posted work? It's Python 3.4.3 and the latest vobject code.

Okay, I think you should be using the Name constructor when creating your N attribute. Something like this:
name = 'Max Mustermann'
email =<EMAIL_ADDRESS>vcard = vobject.vCard()

try: assert vcard.n
except: vcard.add('n')
vcard.n.value = vobject.vcard.Name(family=name.split()[-1], given=name.split()[0])

try: assert vcard.fn
except: vcard.add('fn')
vcard.fn.value = name

try: assert vcard.email
except: vcard.add('email')
vcard.email.value = email

serialized = vcard.serialize()
print(serialized)

returns
BEGIN:VCARD
VERSION:3.0
<EMAIL_ADDRESS>FN:Max Mustermann
N:Mustermann;Max;;;
END:VCARD


Improve testing for Auth module

A few things to be done to improve existing tests:

[x]  fix dummy / duplicate test in auth tests mod.rs
[ ] when MissingData abigen error is fixed, contracts can return Result from msg_sender and clean up testing strategy.
- MissingData("cannot parse custom type with no components")

https://fuellabs.slack.com/archives/C02CX4JVCSJ/p1645563000478969

[ ] test get_coins_owner() directly

blocked by: https://github.com/FuelLabs/fuels-rs/issues/53

This is no longer blocked.


Bug – Installation: Successful installations don't disappear from the list at the bottom

For updates, it works as expected.
As can be seen in the screenshot, both Winget and Scoop apps were tested to make sure it's isolated to the Discover packages section of the app and not a particular package manager.
…and yes, when uninstalling apps from the Installed packages section it works as intended and disappears as well.

I am unable to reproduce this on Windows 10. Installs disappear as intended

Weird… Tested restarting the app just to be sure, but installing .NET Framework which was readily available at the top (source: Winget), it still didn't disappear.
Personally, I'm running it on Windows 11 rather than 10.

@RavenMacDaddy, which button are you using to install .NET Framework?
For me installing it using the context menu button and the info menu worked, but I got an error when I tried to use the search menu install button. Do you also get this error?
https://user-images.githubusercontent.com/73800734/195332060-43d117a8-1853-46c0-a53a-93e8ccb90a05.mp4

I get the same error as you when using the installation button at the top left – that needs to be posted as a separate issue, though, would you mind?
Back OT, the successful installation progress is the same for me, with the difference that the list at the bottom doesn't get emptied;
https://user-images.githubusercontent.com/67732686/195334159-73c9e296-bb6e-4638-a02f-5570393f11db.mp4

I was able to reproduce this error. It happens when you have this option checked:

Good, then we at least know the cause.

@martinet101, it's fixed for me. I'm using 46816adc20a885d71ff431fdaddd10ab56ee7488

I'm currently not using the app and so forth as things are a bit rough, I don't mind closing this for now.

In case you are one day interested in testing the beta version, I have added instructions here. The easiest way to do it IMO is:

Download the source code here and extract it
Install Python 3.10 through Winget
Install dependencies
Run build.bat (inside WingetUI-main)


Model authorization

Create the model for authorization subdomain

:tada: This issue has been resolved in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fix invariant in scrollResponderZoomTo

This fixes a cryptic bug to appear when you try to use scrollResponderZoomTo in Android.
before this PR it would break with a Error: TaskQueue: Error with task : invariant requires an error message argument because the invariant() was not properly used..
Also, instead of detecting the platform, I think it's better practice to duck type.

👍 Nice fix!
@facebook-github-bot shipit


Style Guide - Use {file}.guard.ts for route guards

Why

Guards are essentially services used by the router
Provides standard naming convention for generation

auth.guard.ts
import { Injectable }             from '@angular/core';
import { CanActivate,
         ActivatedRouteSnapshot,
         RouterStateSnapshot }    from '@angular/router';

@Injectable()
export class AuthGuard implements CanActivate {
  canActivate(
    next:  ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<boolean> | boolean {
    return Observable.of(true);
  }
}

Guards should be in a shared folder if they are common to the entire application, such as a CanActivate  Auth guard.
Guards should also be in their own feature area if they are specific to a component, such as a CanDeactivate guard on a specific route.

Should Guards go under my-feature/shared or directly under my-feature?

What else is in shared? I think the same rules applies. If its commonly used across routes, it should be shared.

https://angular.io/docs/ts/latest/guide/style-guide.html#!#04-07
So the component shared contains things specific to that component (models, services, etc) that aren't shared across other components.
That said, I think the answer is it should go in my-feature/shared, but I just wanted a confirmation.

TBH I find the shared folder inside a feature rather confusing as most of the time, there feature === component. Feels a bit over-engineered to me. However, as it is right now, I'd also put it in the shared folder then.

Closing as the convention has been resolved.


Allows newer versions of composer/installers.

Adds operator so newer versions of composer/installers are allowed.

Hey man! Nice to hear that you find this useful :)!,  thanks a lot.

@onnimonni Could you also release this? =)

@onnimonni Ping. =)

Sorry I don't work for devgeniem anymore and I can't.
@villesiltala can you do this?
$ cd /tmp/
$ git clone git@github.com:devgeniem/wp-sanitize-accented-uploads.git
$ git tag 1.2.1
$ git push origin master --tags

@onnimonni done! :)

thanks! @jeremyzahner Ping. =)

@villesiltala Thank you!


Document optional dependencies

Addresses #5261
Still working on it.
Took inspiration from pandas docs. Any suggestion about the columns to include?
@quasiben Need some help here.

Thanks for working on this. Just the package name and the min version seems fine. Off the top of my head, I would add

gcsfs
s3fs
fastparquet
pyarrow
sqlalchemy

and maybe look for imports in the tests files to find more. There are probably others.

Finding some difficulty in finding out the min version for the packages. Any easy way to do it?
And also could the following packages be added -

scipy
scikit-image
cytoolz

I'd say whatever our lower version in our test suite is what we should
"recommend" here. There may be ones we don't pin a minimum version for.
On Wed, Oct 9, 2019 at 12:46 PM Prithvi MK<EMAIL_ADDRESS>wrote:

Finding some difficulty in finding out the min version for the packages.
Any easy way to do it?
And also could the following packages be added -

scipy
scikit-image
cytoolz

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/5456?email_source=notifications&email_token=AAKAOIQSCVWYDGHKYDGHK3DQNYKHVA5CNFSM4I5GLGJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAYXJHA#issuecomment-540112028,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIWZES6ZOY4LTYZQA63QNYKHVANCNFSM4I5GLGJQ
.

Feel free to also leave the minimum version blank for any of those.
I haven't seen that appveyor failure before. Can you try merging master before pushing again?

I'd definitely mention the optional hashing algorithms:

It is worth pointing out that for arrays, the default hash uses python's standard sha1, but if you happen to have cityhash, xxhash or murmurhash installed (all available with pip), then you can get a large-factor speedup in the tokenisation step.

https://github.com/dask/dask/issues/3946#issuecomment-418577510

Sorry for the late update. I have added a brief introduction @TomAugspurger.

I'd definitely mention the optional hashing algorithms:

It is worth pointing out that for arrays, the default hash uses python's standard sha1, but if you happen to have cityhash, xxhash or murmurhash installed (all available with pip), then you can get a large-factor speedup in the tokenisation step.

#3946 (comment)

@dhirschfeld Could you suggest how to include this? Maybe after the table of dependencies?

Those are all optional dependencies. They can go in the same table.
On Thu, Oct 17, 2019 at 8:02 AM Prithvi MK<EMAIL_ADDRESS>wrote:

Sorry for the late update. I have added a brief introduction
@TomAugspurger https://github.com/TomAugspurger.
I'd definitely mention the optional hashing algorithms:
It is worth pointing out that for arrays, the default hash uses python's
standard sha1, but if you happen to have cityhash, xxhash or murmurhash
installed (all available with pip), then you can get a large-factor speedup
in the tokenisation step.
#3946 (comment)
https://github.com/dask/dask/issues/3946#issuecomment-418577510
@dhirschfeld https://github.com/dhirschfeld Could you suggest how to
include this? Maybe after the table of dependencies?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/5456?email_source=notifications&email_token=AAKAOIQ6NVNLJSVOB7SXWK3QPBO6HA5CNFSM4I5GLGJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQANQQ#issuecomment-543164098,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOITT2SG5ANWXTFML4IDQPBO6HANCNFSM4I5GLGJQ
.

Should I mention this after the table?

It is worth pointing out that for arrays, the default hash uses python's standard sha1, but if you happen to have cityhash, xxhash or murmurhash installed (all available with pip), then you can get a large-factor speedup in the tokenisation step.

A column next to the minimum version with a brief description of what each
optional dependency is used for may be useful. These could say "Faster
hashing of arrays."
On Thu, Oct 17, 2019 at 8:09 AM Prithvi MK<EMAIL_ADDRESS>wrote:

Should I mention this after the table?
It is worth pointing out that for arrays, the default hash uses python's
standard sha1, but if you happen to have cityhash, xxhash or murmurhash
installed (all available with pip), then you can get a large-factor speedup
in the tokenisation step.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/5456?email_source=notifications&email_token=AAKAOIRCERNLKQVKUXYLMZ3QPBPWZA5CNFSM4I5GLGJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQBCCY#issuecomment-543166731,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIWKXHU3K7WO52VIOZTQPBPWZANCNFSM4I5GLGJQ
.

Don't know what exactly to add for numpy and pandas descriptions. Slight help @TomAugspurger

Something like "required for dask.array" would be fine for those I think.
On Thu, Oct 17, 2019 at 9:16 AM Prithvi MK<EMAIL_ADDRESS>wrote:

Don't know what exactly to add for numpy and pandas descriptions. Slight
help @TomAugspurger https://github.com/TomAugspurger
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/pull/5456?email_source=notifications&email_token=AAKAOIWFEEJXET5ZMMFTXSTQPBXUVA5CNFSM4I5GLGJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBQIEMA#issuecomment-543195696,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKAOIUPTZGM46F3NR5LGQTQPBXUVANCNFSM4I5GLGJQ
.

Also psutil - e.g.
https://github.com/dask/dask/blob/7f5f7fe49298c2353977b99a081be47dc28bc358/dask/dataframe/io/csv.py#L309
https://github.com/dask/dask/pull/5499#issuecomment-543242445
In particular, the Python os.cpu_count is broken for me so it's important for me to use psutil to get the correct cpu count.
Possible description:

Enables a more accurate CPU count, in particular in the context of a container or when cgroup limits are in place

(depending on the resolution of that PR)

Sorry for the delay @pmk21, we don't get notifications when you force push.
This looks good. We can add additional libraries as we go.


Implement Barbican as KMS provider for kubernetes

What this PR does / why we need it:
This PR adds Feature to use Barbican as Key manager service for kubernetes
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #44
Special notes for your reviewer:
Release note:

/test cloud-provider-openstack-acceptance-test-csi-cinder

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/assign @dims

/test cloud-provider-openstack-acceptance-test-csi-cinder

hi @adisky, as we talked last time, i'd appreciate if you could also provide some doc for this feature so that i can follow for testing? It's also very useful for other potential users for this addon, thanks!

/hold

/hold cancel

@lingxiankong I have created the doc PR
https://github.com/kubernetes/cloud-provider-openstack/pull/393.
It should work with kubernetes v1.12 for 1.13 some flags are changed.

/test cloud-provider-openstack-acceptance-test-e2e-conformance

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.12

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.10

/test cloud-provider-openstack-acceptance-test-e2e-conformance-stable-branch-v1.11

/hold
@adisky is this ready?

@dims yes it is ready, but i have not added trust support yet as pointed out by @strigazi

@lingxiankong This is just the basic implementation for key rotation and production env, we need to keep improving this

/lgtm

/hold cancel

/approve


Add semantic-release

Closes #86

makes repo commitizen friendly in order to make creating conventional commits easier
describes in CONTRIBUTING.md how to use commitizen
adds commitlint for checking commit message format

runs as git hook (husky)
runs on each pull request (Github Action)

adds semantic-release for automatic deployment 🚀
added badges to README.md

@semantic-release/commit-analyzer decides which version should be published according to its config. The default config is described here:

Commit message
Release type

fix(pencil): stop graphite breaking when too much pressure applied
Patch Fix Release

feat(pencil): add 'graphiteWidth' option
Minor Feature Release

BREAKING CHANGE: The graphiteWidth option has been removed
Major Breaking Release

When you have your repo setup with semantic-release dependabot creates commits like this:
chore(deps-dev): bump eslint-plugin-jest from 24.4.2 to 24.5.2

According to the table chore doesn't trigger new version, so nothing is published to NPM.


Reusable GitHub Actions.

I'm closing this as this repo doesn't need the standard suite of actions, I'll write some that push to PyPi, generate changelogs and all that noise.


dup key: { executionId: null, author: "author", changeId: null }

Describe the bug
A clear and concise description of what the bug is.
Hi,
No matter what I do, I always get this error.
Caused by: org.springframework.dao.DuplicateKeyException: E11000 duplicate key error collection: db-dev.mongockChangeLog index: executionId_1_author_1_changeId_1 dup key: { executionId: null, author: "author", changeId: null }; nested exception is com.mongodb.MongoWriteException: E11000 duplicate key error collection: db-dev.mongockChangeLog index: executionId_1_author_1_changeId_1 dup key: { executionId: null, author: "author", changeId: null }
I spent hours finding out that the index created in mongockChangeLog collection is executionId + author + changeId, (the naming is camel case). However, the fields in Document are execution_id and change_id (in snake case, which is set by spring.data.mongodb.field-naming-strategy=org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy). So the index will not work and always throw that error because it can't find executionId and changeId. I tried to set index-creation to false but a new exception pops up:
Caused by: io.changock.migration.api.exception.ChangockException: Index creation not allowed, but not created or wrongly created for collection mongockLock.
Btw, I always delete both mongockChangeLog and mongockLock collections before testing my changes.
I'm officially f**ked by this lib. However, thanks for your dedication to the mongodb migration tool.
To Reproduce
Steps and conditions to reproduce the behavior:

Conditions:

Framework and libraries versions. Especially those that affect directly to Mongock(Spring, Spring data, MongoDB driver, etc.):

implementation(platform("com.github.cloudyrock.mongock:mongock-bom:4.1.18"))
implementation("com.github.cloudyrock.mongock:mongock-spring-v5")
implementation("com.github.cloudyrock.mongock:mongodb-springdata-v3-driver")

other relevant should be:
plugins {
    id("org.springframework.boot") version "2.4.0"
}

and
 implementation("org.springframework.boot:spring-boot-starter-data-mongodb")

Infrastructure: Kubernetes, Docker, SO, etc.
Mongock version: 4.1.18 & 4.3.8
How Mongock is implemented(builder or annotation approach, etc.): tried both, but ended up with builder.
How Mongock is imported: Part of the pom, or gradle, file regarding Mongock - pls see above
In general anything in your context that could be affecting
application.yml

spring:
  data:
    mongodb:
      field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

Steps

All the steps and actions you perform to reproduce the bug : no special steps, just run.

I think one possible way to fix would be honor the spring.data.mongodb.field-naming-strategy.
Thanks in advance!
(remastered regretfully with a polite and thankful tone)

Sorry to hear you are experiencing that. It's not only the first user that reports this error, but also the first one that feels that way. We'll help you and assist you in anything we can, but you are not force to use Mongock. If you feel it doesn't work for you, you are free to use any other tool you think fits better our needs.
Also because we are very responsive and we usually support developers very shortly, even for a paid tool, but for free. I understand your frustration but I would appreciate a bit more clam in your tone...we'll help you anyway 😉
Please, can you provide your code? At least the way you are declaring your changeLogs and the Mongock bean?

No problem, it's wise to rectify 😃 .
That's weird, as Mongock doesn't use spring data to access to their collections, it only supports it for the user. I am wondering if that it's related to some configuration in the database itself.
Anyway, we'll try to reproduce it. Although what you've provide is very useful and definitely needed, we also need:

the way you are building your Mongock. If it's by properties, please provide the properties if it's via builder, please provide the code.
Also your changeLogs. We don't need the actual business logic with the method's body empty. Just to see how you are creating them.

With that and all the information you have already provided, I think we will be able to reproduce it, if it's a Mongock's issue. But I still believe that it could be related to some configuration in your MongoDB. I would appreciate if you can load a docker container and run your applications agains it, just to discard it.
Regards

Hi,
I tried to simplify my changelog as simple as it could get (empty body), but the error persists.
@ChangeLog(order = "001")
class InitialSetupMigration {

    @ChangeSet(order = "001", author = "initiator", id = "001-initCollectionNames")
    fun initCollectionNames(mongoTemplate: MongockTemplate) {

    }
}

in my application.yml, it's also as simple as it can get:
mongock:
   change-logs-scan-package: com.xxxx.config.dbinit

So I don't think it's related to the configs.
If I remove the naming strategy config,
spring:
   data:
     mongodb:
       field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

then everything starts working.
If I don't remove it, the field names in mongockChangeLog are like execution_id; if I remove it, the field names are like executionId, which matches the field names in the index to be created. So imho, honoring the naming strategy will fix the problem.
Thanks.

Good morning,
We have tried to reproduce your error with the example project you can checkout here, but everything works as expected.
Please can you perform the following steps:

Checkout this repository, branch version4. It's the default anyway
Download and run the docker container mongo-4.4.1
Run the project spring5-springdata3 inside the repo
Check the created indexes
Now run it agains your MongoDB database
And check the indexes

However, if by using the spring.data.mongodb.field-naming-mapping-strategy your issue is fixed, well, then it's fixed for you 😄

Hi,
In my last comment, i said removing the spring.data.mongodb.field-naming-mapping-strategy makes things work. Adding it will break mongock index creation.
I just tried with your example repo. Same error happened. To recur it, please add the following to application.yml and see what will happen.
spring:
  data:
    mongodb:
      field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

Thanks.

The point I've been trying to make is, when mongock creates the mongockChangeLog collection, the field/column naming honors the field-naming-strategy defined in config file. But when creating the index {executionId, changeId, author}, it doesn't honor the  field-naming-strategy. This results in that when field-naming-strategy is snake case, the executionId is named in snake case as execution_id in mongo collection, but the index creation still uses camel case executionId which doesn't exist (it has already been named as execution_id according to the strategy).
Possible solution:
When creating index for mongockChangeLog, instead of hardcoding executionId and changeId in camel case, check first the defined field-naming-strategy and accordingly update the executionId to the correct naming strategy.
Hope I made myself clear this time.
Thanks.

aah ok, I was taking this totally the other way around.
So, I see what you mean, we'll fix this, but I cannot commit to a date as we have a lot in our plates right now.
I see two solutions:

While you wait for this(no less than a month), you can set indexCreation to false and create manually the index before hands
Raise a PR with this in branch version4 and I will review. We'll take care of cherry pick this to the current develop branch where we are working on version 5.

Regards


pretty-quick does not work when "type": "module" is declared in package.json in a TypeScript project

Description
When I use "type": "module" in package.json and use `pretty-quick, I get this error:
node:internal/errors:811
        (frm) => !StringPrototypeStartsWith(frm.getFileName(),
                  ^

TypeError: String.prototype.startsWith called on null or undefined
    at startsWith (<anonymous>)
    at node:internal/errors:811:19
    at Array.filter (<anonymous>)
    at node:internal/errors:809:16
    at prepareStackTrace (node:internal/errors:96:12)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:38)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at importFresh (/<path>/node_modules/prettier/third-party.js:91:60)

Dependencies
"husky": "^6.0.0"
"prettier": "^2.4.1"
"pretty-quick": "^3.1.1"
Husky Command
npx pretty-quick --staged

Not sure to understand what's the issue.
A minimal but runnable online reproduction is required.


implements efficient det

While we wait for ross answers and advice on how to integrate efficient-det, I already started implementing some very basic tests. This is called test-driven development, you first write what you expect and only then you implement the code to achieve that.
I'm using this kaggle notebook as a guideline. I used that notebook to understand what we need to output at the dataset stage and on the dataloader stage, and then I wrote code to replicate that.
@oke-aditya Do you agree with the expected outputs? There is still that confusion about the BBox format (xyxy or yxyx), the notebook uses xyxy so I went with that. I asked that question to Ross so we will know the answer very shortly.

closes #149

Codecov Report

Merging #155 into master will decrease coverage by 0.64%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #155      +/-   ##
==========================================
- Coverage   52.26%   51.62%   -0.65%
==========================================
  Files          66       66
  Lines        1963     1937      -26
==========================================
- Hits         1026     1000      -26
  Misses        937      937

Flag
Coverage Δ

#unittests
51.62% <ø> (-0.65%)
:arrow_down:

Impacted Files
Coverage Δ

mantisshrimp/core/bbox.py
62.50% <0.00%> (-4.78%)
:arrow_down:

...antisshrimp/metrics/coco_metric/reference_utils.py
19.28% <0.00%> (-2.00%)
:arrow_down:

mantisshrimp/metrics/metric.py
81.81% <0.00%> (-1.52%)
:arrow_down:

mantisshrimp/core/category.py
85.00% <0.00%> (-0.72%)
:arrow_down:

mantisshrimp/models/mantis_rcnn/mantis_rcnn.py
87.17% <0.00%> (-0.63%)
:arrow_down:

mantisshrimp/core/mask.py
84.29% <0.00%> (-0.63%)
:arrow_down:

mantisshrimp/parsers/splits.py
95.65% <0.00%> (-0.19%)
:arrow_down:

mantisshrimp/parsers/parser.py
95.00% <0.00%> (-0.13%)
:arrow_down:

...tisshrimp/models/mantis_rcnn/mantis_faster_rcnn.py
95.91% <0.00%> (-0.09%)
:arrow_down:

mantisshrimp/models/device_module_mixin.py
100.00% <0.00%> (ø)

... and 1 more

Continue to review full report at Codecov.

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

I originally said I would first integrate efficient and only then work on #137, but I'll start on that already while we wait for Ross to respond.

First working version but very very very dirty

@ai-fast-track @oke-aditya
I have some notebooks (modified from the quickstart) working to show the new api:

faster_rcnn
efficientdet

I still don't know if the efficientdet implementation is working correctly, I'm training a model for that
Keep in mind we cannot directly compare faster_rcnn and efficiendet because they're using slighty different transforms

This PR is still not ready for merging, I still need to work on efficient_det.predict

@oke-aditya @ai-fast-track
The model is training successfully, the loss is going down, but I'm unable to get reasonable predictions
Can you take a look at the notebook here?
Code is still very dirty, but at the prediction section there is the code I'm trying to hack around to make prediction work...
Results seem to always stay the same no matter how much I train the network, I think there must be a very obvious bug that I'm failing to see at this point

K. I'm Having a Look. Let me try to train it once.

I'm unable to run the above notebook, can you have a look at errors.

Is the Lightning adapter correct (RCNN Lightning adapter for efficientdet ?)
Reshaping the images to 512, 512 is needed for the model but it destroys the aspect ratio of images, it can cause trouble in predictions as anchor boxes learnt might differ.
Learning rate should be done with Adam, SGD is not converging, it is unstable training.
While predicting are we resizing the Bounding boxes too properly? This might be a source error since we predict on images of size 512, 512, then resize them. Are we resizing the bounding boxes too properly?
I'm trying with D7. If it works well then maybe we need this model. While debugging we need to start from bigger models as once any one of them works all will have same pipeline.

I did not tested lightning still (the code is unchanged from the older tutorial), can you try with fastai?
Agree! But we still should be able to see resoanable results right? I mean, this can't be the source of the problem
Addressed by 1
Can you elaborate? I'm using the images from valid_ds to predict, which are already scaled to 512, so we don't have to worry about this right now
Cool! let me know if you get better results

This PR contains a lot of other changes that are not related to efficient det (an entire model refactor for example). So I'll merge this and open an issue for fixing efficientdet

Fastai too didn't work work for me. I don't know why.
We are resizing and predicting images, that is fine. My doubt is on show_pred we are predicting on true images which are not scaled, so maybe there is resizing issue. We need to predict on the valid_ds image, draw bbox on the image (so that it too gets resized) then resize if needed. I am not sure how matplotlib is handling that. If it is on canvas which does not get resized then that is an issue,

Rest all LGTM, we can surely go ahead for now and fix issues later.

Can you share the error?
In the show_preds we're also using the scaled images, from here:

samples = random.choices(valid_ds, k=2)
images = [sample["img"] for sample in samples]

Those come from valid_ds, and those are used in show_preds as well

Seems to be working. I guess I messed up Fastai becoz I tried lightning first. It is slow to train. Currently I am working in colab here


Local install using skaffold, on Linux

Following this guide, I tried to install Substra locally on a Linux machine (Ubuntu LTS 18.04)
The issues I encounted were:

Docker desktop is not available on Linux (only Mac and Windows). I did install docker engine but I guess I should then install kubernetes which was not part of the docker engine install ?
In part 3, to get the host IP adress from the container, the following command docker run -it --rm busybox ping host.docker.internal does not work on linux, cf. this thread.

Nice catch ! You should use an install of kubernetes. We currently tested it with minikube and microK8s.
Thank you for this. I think @ClementGautier or @AurelienGasser could update the documentation to enhance the linux setup. Have you some time to do this ?

I personally don't but we should tackle that for sure. There is some partial documentation on the private infrastructure repository if I remember well and maybe some also on the hlf-k8s one but it needs to be compiled and reviewed.
I'm creating an item on the backlog and we will see during the upcoming roadmap review with the team leads who will do it.

You need to use minikube ip!

* In part 3, to get the host IP adress from the container, the following command `docker run -it --rm busybox ping host.docker.internal` does not work on linux, cf. [this thread](https://github.com/docker/for-linux/issues/264).

On Linux, you can use minikube ip instead of this docker command in order to get the cluster ip

@RomainGoussault did you manage to get the platform up and running in the end?

Yes ! Thanks to the documentation !


ImportError: No module named setuptools

Ubuntu 18
error
ImportError: No module named setuptools
Traceback (most recent call last):
File "setup.py", line 24, in
from setuptools import setup
ImportError: No module named setuptools

@DimitriMiranda it should work once setuptools is installed on your system. E.g.:
sudo apt-get install -y python-setuptools
or
sudo apt-get install -y python3-setuptools

@DimitriMiranda it should work once setuptools is installed on your system. E.g.:
sudo apt-get install -y python-setuptools
or
sudo apt-get install -y python3-setuptools


[RFE] Add gslb/dns abstraction

like ltm virtual servers, it would be nice to abstract all dns details also.
Starting with a wideIP, and map it back through all the pools and servers it is associated with.

Initial release of this feature is complete and will be released with v1.0.0.
This feature is a draft of the next stage of corkscrew, where key parent objects fully parsed (~90%) into the json tree.  A function hooked in between when the individual nested parent object is first created, but right before it gets merged into the bigger tree.
this function, looks for key objects (maily gtm for now), and works through the process of deeper parsing.  I tried a second attempt at making some logic to loop through the object and parse out the structure, but ultimately concluded it's complexity vs value was not good enough compared to the regex tree method.  It's just so much more clear to break down the config piece by piece with regexes.  It's certainly more code, but I believe it will be easier for others to follow should they need to update this project.
Doing all the parsing up front, makes the abstraction process much more simple.  The initial code to parse and abstract the gslb details, was about 350 lines.  After the deep abstraction refactor, the abstraction is less than 50 lines.
The deeper parsing is critical to enable output for application conversions to other f5 technologies (xc/next/nginx).
So, the key gtm parent objects are fully parsed (gtm server/pool/wideip) and the abstraction process just loops through all the details and collects all the referenced pieces.   Starting with the wideip (fqdn) and ending with the server/virtual-server IP:PORT destinations.
Some possible future enhancements to consider;

inspect the gtm iRules to pull out key details like dns destinations/responses
see if topology records may also provide key details to how the wideip may respond (probably not)
provide a list of all possible responses as a single array on the parent wideip object

this would provide a single place to understand all the possible responses without knowing how to analyze the config


Implement concat eager macro

This PR implements the following things:

Add basic eager macro infrastructure by introducing EagerCallId such that the new MacroCallId is defined as :

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum MacroCallId {
    LazyMacro(LazyMacroId),
    EagerMacro(EagerMacroId),
}

Add concat! builtin macro.

@matklad It is ready to review now.

Haven't looked closely yet, but overall it looks good to me!

Yeah, I moved the expand_eager_macro to top. I agreed we could merge this first and let refactor it later. :)

bors r+

bors retry

I think this broke analysis-stats:
thread 'main' panicked at 'Can't find MACRO_CALL@[147; 161) in AstIdMap:
[SyntaxNodePtr { range: [6; 217), kind: MACRO_CALL }, SyntaxNodePtr { range: [218; 335), kind: CONST_DEF }]', crates/ra_hir_expand/src/ast_id_map.rs:88:21
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.44/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1053
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1428
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:204
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:224
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:470
  11: rust_begin_unwind
             at src/libstd/panicking.rs:378
  12: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:332
  13: ra_hir_expand::ast_id_map::AstIdMap::erased_ast_id
  14: ra_hir_expand::eager::eager_macro_recur
  15: ra_hir_expand::eager::expand_eager_macro
  16: <ra_hir_def::AstIdWithPath<ra_syntax::ast::generated::MacroCall> as ra_hir_def::AsMacroCall>::as_call_id
  17: <ra_hir_expand::InFile<&ra_syntax::ast::generated::MacroCall> as ra_hir_def::AsMacroCall>::as_call_id
  18: ra_hir_def::body::Expander::enter_expand
  19: ra_hir_def::data::collect_impl_items_in_macro
  20: ra_hir_def::data::collect_impl_items_in_macro
  21: ra_hir_def::data::collect_impl_items_in_macro

@lnicola yes, I know what happened here. We submit another PR to fix that.


[SPARK-10716] [BUILD] spark-1.5.0-bin-hadoop2.6.tgz file doesn't uncompress on OS X due to hidden file

Remove ._SUCCESS.crc hidden file that may cause problems in distribution tar archive, and is not used

Merged build triggered.

Merged build started.

Test build #42749 has started for   PR 8846 at commit 0c974b7.

Test build #42749 has finished for   PR 8846 at commit 0c974b7.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/42749/
Test PASSed.

I've merged this in master & branch-1.5.


boxstation AI update

About the PR
adds the AI job to box
adds a roundstart ripley to cargo
updates the vox box to use the new N2 atmosphere stuff
improves spotty cam coverage on sci breakroom hall & singulo
Why / Balance
all changes OK'd by emisse except the cam ones. but i dont think she would care
Technical details

Media

Requirements

[X] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog
no cl no skub

needs prototype edited to include
look at other ai prs


:boom: Changes the namespaces

Description
Changes the namespace to avoid naming conflict between it and the class. Furthermore, I organize the .csproj files structures and the solution. Also, I create a project README.
I didn't change the package name to keep the same nuget for the consumer projects.
Type of change
Please delete options that are not relevant.

[x] :boom: Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?

[x] :white_check_mark: All tests were run and new tests were added (if needed)

If you try to use the Requirement class in a project, you will need to use that with the namespace.

Attachments (if appropriate)

Definition of Done

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Does this add new dependencies?

Ok


App state

To me, the holy grail is having the state in a separate, testable crate. That is directly testable, without rendering HTML. In other words, the business logic separated from the UI.
This is an attempt to achieve this. Have a look at examples/app-state/src/state.rs to see what I mean.
For some reason, the spawn_local doesn't work for the tests, see ce5b8d8. I did a workaround for it in 430edfd. Would you have an idea of why?
If you like this, then the drive.rs could move to the silkenweb/package/signals-ext crate and should probably have more variants added to drive_.... Maybe even be written as a trait so that it can be used directly on a signal:
let counter: Mutable<isize> = Mutable::new(0);
let text: Mutable<String> = counter.signal().map(|v| format!("Value: {v}").drive_value();

The test_utilities.rs should move somewhere else as well so that they can be reused.
I'd love some of your feedback on this.

Some initial thoughts on drive_value and drive_vector:

drive_value seems like a good primitive. I'd really like to get rid of start_value though. I'm sure the contract for signals say they must have an initial value. Maybe we could poll it once and require it to be ready. What do the futures-signals docs say?
I'm not sure about drive_vector. I think a better primitive might be something like fn spawn_for_each<T>(sig: impl Signal<Item = T>, f: impl FnMut(T)).

I like the idea of a trait, with methods that integrate with the Silkenweb task queue.
I'll take a look at test_utils next.

I think your problems with spawn_local might be because you're not calling render_now. It's kind of like tokio::task::yield_now, except provides more guarantees. render_now isn't a great name, I must admit!
I don't think tokio::task::yield_now provides enough guarantees for what you're using it for. What if a signal doesn't complete in a single poll for example. I might be wrong though, haven't thought about it enough.
Also, I wonder if you could use SignalExt::to_stream to get rid of the start_value in drive_value?

Thanks for the feedback. I'm leaving on holiday for a week now and will have a look at the end of the following week.

I had a bit more of a think about this, and played around with your example. I like your idea of a trait, and I guess the theme would be "methods for signals that require a runtime". So drive, and a spawn_for_each (like SigValue::new but without the yield). Something like:
trait TaskSignal<T>: Signal<Item = T> + Sized {
    fn drive(self) -> Option<ReadOnlyMutable<T>>;

    fn spawn_for_each(self, f: impl FnMut(T));
}

That would let you write your example in state.rs similarly, but with a few render_now().await; calls. drive should return an Option because it could fail if the signal is finished. Also, I think drive should probably be called to_mutable or into_mutable to avoid introducing another term.

Great feedback!
I updated the code to use traits, have a look. I also use some naming that you should see as a proposal. Insist on your own naming and I'll give in to it ;)

"methods for signals that require a runtime"

Yay. That sums it up very well. One of my wishes is to avoid a full silkenweb dependency for the state handling because that makes it possible to mix in UI & HTML stuff into the business logic. What would you think about refactoring silkenweb so that all runtime-related code ends up in a silkenweb-runtime crate? Like that, the stuff I'm doing here could end up in that crate as well and it could use the silkenweb_runtime::render_now and silkenweb_runtime::spawn_local.

I don't think tokio::task::yield_now provides enough guarantees for what you're using it for.

I think you are right and that there are two options:

Write a custom Executor that provides a yield_until_all_idle function. Quite a bit of work.
Add a comment to SigValue.get and VecValue.get saying that you might need to call render_now a few times for state that have nested driven mutables.

I propose to go for 2. until we have a real-world example of the problem.

I'd really like to get rid of start_value though.

Me too. But I'm not sure how. Both Signal's poll_change and Stream's poll_next takes a cx: &mut Context<'_> argument.

I think your problems with spawn_local might be because you're not calling render_now. It's kind of like tokio::task::yield_now, except provides more guarantees.

Yes, you were right

I moved the app state traits to the silkenweb crate, but I hope that's just temporary. C.f #65

Sorry for the delay in replying, but I've been away on holiday.

I updated the code to use traits, have a look. I also use some naming that you should see as a proposal. Insist on your own naming and I'll give in to it ;)

Looks good, but I'm not keen on the to_mutable_vec method. Signals are lossy and allowed to discard intermediate values. I think a spawn_for_each method is much more general and less confusing. This makes the SignalToMutable name less relevant, but I'm also not wedded to TaskSignal so open to suggestions!

"methods for signals that require a runtime"

Yay. That sums it up very well. One of my wishes is to avoid a full silkenweb dependency for the state handling because that makes it possible to mix in UI & HTML stuff into the business logic. What would you think about refactoring silkenweb so that all runtime-related code ends up in a silkenweb-runtime crate? Like that, the stuff I'm doing here could end up in that crate as well and it could use the silkenweb_runtime::render_now and silkenweb_runtime::spawn_local.

That sounds like a great idea. It does need some thought, particularly around TaskLocal and server::scope.

I don't think tokio::task::yield_now provides enough guarantees for what you're using it for.

I think you are right and that there are two options:
1. Write a [custom Executor](https://rust-lang.github.io/async-book/02_execution/04_executor.html) that provides a `yield_until_all_idle` function. Quite a bit of work.

render_now already does exactly this.

I'd really like to get rid of start_value though.

Me too. But I'm not sure how. Both Signal's poll_change and Stream's poll_next takes a cx: &mut Context<'_> argument.

I had a quick play around and you can do this:
pub async fn try_to_mutable<T>(s: impl Signal<Item = T> + 'static) -> Option<ReadOnlyMutable<T>>
where
    T: Clone + 'static,
{
    let mut s = Box::pin(s.to_stream());
    let first_value = s.next().await?;
    let result = Mutable::new(first_value);

    spawn_local({
        clone!(result);
        async move {
            while let Some(value) = s.next().await {
                result.set(value);
            }
        }
    });

    Some(result.read_only())

It does make the function async, so you'd need to use the async-trait crate to make this a trait method. You could add a to_mutable that unwraps the option if you want.

I moved the app state traits to the silkenweb crate, but I hope that's just temporary. C.f #65

I think SignalToMutable belongs in a runtime module. I'm not keen on the SigValue/VecValue structs. SigValue can be replaced with a ReadOnlyMutable (via .to_mutable) and a call to render_now. Another trait for SignalVecs with .to_mutable would allow you to do the same for VecValue

Sorry for the delay in replying, but I've been away on holiday.

No problem. I hope you had a great holiday!

Looks good, but I'm not keen on the to_mutable_vec method. Signals are lossy and allowed to discard intermediate values. I think a spawn_for_each method is much more general and less confusing. This makes the SignalToMutable name less relevant, but I'm also not wedded to TaskSignal so open to suggestions!

Ok, changed it to spawn_for_each and TaskSignal (I don't really have any good ideas).

render_now already does exactly this.

I changed so that you have to use render_now in the tests instead.

I think SignalToMutable belongs in a runtime module. I'm not keen on the SigValue/VecValue structs. SigValue can be replaced with a ReadOnlyMutable (via .to_mutable) and a call to render_now. Another trait for SignalVecs with .to_mutable would allow you to do the same for VecValue

Let's add this to the silkenweb crate for now and as soon as it is merged, I'll (we'll?) start looking at how to extract a runtime crate.
I did most of the changes you proposed, but the to_value.rs (didn't yet rename it in order to keep it easier to review) .to_value for SignalVec is a bit tricky as the MutableVecLockMut requires Clone  or Copy for many of the necessary operations. I also didn't find a good way to get the first value. See 2e681b8.

It is starting to look good. Once we get these last things sorted I'll add documentation and some unit testing.

Also, we can remove TSig from the TaskSignal trait, and just use Self::Item instead.

From what I can see, a Mutable cannot be created without a value and the doc for to_stream says "It immediately outputs the current value of self". Wouldn't that mean that the try_to_mutable is not necessary as we could do s.next().await.unwrap()?

spawn_for_each should be a really simple wrapper around for_each, something like:

fn spawn_for_each(self, mut f: impl FnMut(T) + 'static) {
   spawn_local(self.for_each(move |value| {
       f(value);
       async {}
   }));
}

Hm, I'm not sure I follow you. How would that be used? I mean, from where I stand, the idea is to make it possible to create a MutableVec based on the values of a Mutable. From the CounterState:
        let count = Mutable::new(0);
        let list = count
            .signal()
            .spawn_for_each(|vec, value| vec.lock_mut().push(value));

Thanks for the explanation. I think the issue here is that I have a contrived example in State.rs which creates an unrealistic necessity of driving a MutableVec from a Mutable.
What would you think about keeping this PR to only the Signal.to_mutable and SignalVec.to_mutable?

What would you think about keeping this PR to only the Signal.to_mutable and SignalVec.to_mutable?

Yes, that's a good idea.

I've merged this into the signals-runtime branch, and will make a few changes before merging into main. Thanks for all the work so far!

Well, thank you for your patience and feedback!


Make screenshots links to demos

"Invoice editor demo" screenshot ->
https://demo.vaadin.com/invoice-editor-app/
"Customer CRUD demo" screenshot ->
https://demo.vaadin.com/customer-crud-app/

This should be in vaadincom repository. But a valid point yes. I made the ticket and will close this.


Feature: provide a set of results for all invocations caused by a message

Description
Several users have requested the ability to "retry" invocations, but I think that retrying is made more difficult by the 1:* relationship functions have to topics.

Conceptual diagram of invocations
Use-case
As a developer using the connector-sdk, I want to be able to retry invocations that failed
1:1 mapping
If a message comes in on a topic payment, and only one function stripe-fn has a matching annotation of: topic: payment.
In the case of a failure, the connector could just retry. This would probably be OK, depending on the function, perhaps some caution should be applied here.
The Linkerd2 documentation talks about the dangers of retrying automatically and about retry budgets. See: "How Retries can Go wrong" https://linkerd.io/2/features/retries-and-timeouts/
1:* mapping
This is the assumed default operating mode.
If a message comes in on a topic payment, and two functions exist:stripe-fn and datalake-fn both with: topic: payment.
In the case that datalake-fn fails and stripe-fn passes, following the logic above, retrying the whole batch may issue a second payment via stripe-fn.
The proposed solution in #26 would act this way.
Potential solutions

#26 proposes that any response should indicate whether to acknowledge, delete, or do something else with a message. This works for a 1:1 mapping, but fails for a 1:* mapping.

Have the status of all the invocations returned as a batch

The Invoke method which is called by all connectors, when they receive messages could be extended to return a set of results. By returning a set of results the caller has to wait for N*max_timeout to decide whether a set of invocations were successful or not. This may be offset by using a Go channel, but the connector may still have to wait for all of the results to come in before making a decision.
This is what 2) would look like with the example in the connector-sdk GitHub repo:
Before:

After:

I would welcome input from anyone who is considering conditional acking, retrying or doing anything else with the results from the invocations.

Thanks Alex for putting this out as retry and error handling has been is a growing concern for many implementations of the connector-sdk (which might not make it easy to reach consensus).
Before going into the details, perhaps it would help to clarify what we want the user experience to be like. I.e. do we want to put as much as control/logic but also complexity to the caller (connector-sdk user) or put it on OpenFaaS gateway to deal with errors and retries?
I'm sure many will be in favor of the first, but the latter for me would be in-line with the great user experience and ease of use OpenFaaS. This is one of the main reasons why the community likes OpenFaaS.
Instead of letting the invoker deal with figuring out which individual functions failed and need retry (failure is not binary, also note the risk of retry storms, etc. as pointed out in that article linked) from a UX perspective knowing that OpenFaaS has received (ack-ed) the invocation request would be a user-friendly implementation - while the complexity obviously is shifted to OpenFaaS gateway. There's still a need for a (simple) retry/backoff implementation (with jitter) in the connector-sdk (configurable, e.g. at-most/least-once up to X retries).
Happy to brainstorm on this and figure out where the logic and heavy lifting should reside.

Retries for invocations can be achieved through a "retry budget" with Linkerd, or through your choice of ingress controller such as Heptio Contour.

Yes, looked into it not ideal,it could be used as workaround for now.
As an example, not exactly the same as we are talking about ... but, durable functions with azure are pretty cool, more of imperative way they do it.
https://www.serverlessnotes.com/docs/retries-with-azure-durable-functions
To take it one step further, I feel it would be way cooler, if it was declarative either on invocation or deploy of any OpenFaaS function, leaning to invocation would be the ultimate solution, there is an issue,  how do you tell the function to use retries from events ...? but this could be done with annotations, we already do that in the stack.yml file for topics, adding retries and back-off annotations, if they exist, execute the functions with those parameters.
as suggested from @Miserlou

Would this be a new header? X-Retry-Strategy: Exponential, X-Num-Retries: 5 (with a default maximum to prevent ddos), etc?

Then the connector would pick up the meta data and invoke the functions with retries and backoff. This also gives the ability when using regular rest invokes to provide retry functionality as well, not relying on the connector to only have retries. So basically, it is saying please retry with the payload given, from event or rest invoke it doesn't matter.
now how it works under the hood ...?, if it is matter including of Linkerd etc I am not sure yet. Just throwing out ideas of how I would want it ;)

Hi @ontehfritz thanks for moving the comments / conversation over to this repository.
See also "How Retries Can Go Wrong" and "Retry budgets" -> https://linkerd.io/2/features/retries-and-timeouts/
Linkerd is not included by default, but can be added through this tutorial https://github.com/openfaas-incubator/openfaas-linkerd2

@alexellis thanks! Yes, it is a balancing act with retries, but in cases with event triggered functions, even if you retried automatically once, and failed, it is a huge help instead of figuring out what event it failed on and resubmitting the event, especially if you use event sourcing pattern, you don't want to pollute your stream/topic, and restarting the consumer group to start at a missed offset is also messy, It is easier to say, go retry all failed jobs.
The retry budgets is a pretty cool way to look at retries without circuit breaking with a defined amount of retries, pretty interesting.
Some background on what we want to accomplish with openFaaS:
We have had great success, with integrating a job queue and triggering functions with events in our micro-services, we have abstracted it into library. However, we found to create a micro-service is over kill because most of these are just simple functions, and the ceremony to create the docker containers and deploy is not ideal . Hence, we have ported them over to openFaaS and is working well. But always need to plan for failure. This is why we need the job queue/retry functionality.
If the connector went down, that is not that big of deal as the consumer group events would get queued. When the connector comes back up it will resume consuming events. If the function fails, then we need to know and retry the function (manually or automatic) with the same payload it received.
When writing this, maybe that is more important than the automatic retry/backoff, is just the ability to know which functions have been failing, and be able to trigger the function again with the same payload. From there retry/backoffs automatically would be fairly easy to build on top.
Thanks for letting me think out loud! We will try the Linkerd approach and see how it goes! I am sure this will stimulate more insight to optimally handle this with OpenFaaS :)

Looking at your diagram above with the 1:* many problem, you would need to record the invocation, payload received and the status of execution.  In this scenario in our micro-services for the node.js ones anyway, we off load that functionality to bee-queue, which uses redis to store the job with the payload.  This give us the functionality needed,  that I have been explaining. Might be able to do the same thing in the connector, we were going to look into potentially integrating this into our kafka connector:
https://github.com/benmanns/goworker
Haven't had time to dig into, but might work.

I have a connector POC written in node.js, using a job queue ... needs a little more work, but I will share it on github when done. ;)

https://github.com/ratehub/openfaas-kafka-connector,  here is our connector needs a lot of polish still as I only have had a day and half to work on it, but testing is going really well so far, you can keep an eye on our progress! Thanks :)


Problem with action "Rotation of 25°" with several selected items.

When we use action "Rotation of 25°" with several selected items, the angle of rotation seems not the same between items.

Problem are ok.


Typo in _PDCLIB_stdinit.c

typo in _PDCLIB_lc_time_t definitions of _PDCLIB_month_name_abbr. Corrected "Now" to "Nov" for November.
It's a small issue, but I am concerned that it could break projects or cause headaches e.g when writing tests.

Fixed, thanks for catching that.


Could you provide the config in the README Intro section?

As title. This would help me a lot because I have spent so much time on how to set it up...

it have many config on readme just click the link on include statusline section
https://github.com/windwp/windline.nvim/blob/master/lua/wlsample/
just click the link on


Community project files and CI starting with formatting

By default, check black and isort on Python 3.8 (minimum supported version). Provide additional tasks for auto-fix and other python versions. Provide tasks for future lint (not passing yet) and tests.

addressed review comments


[SPARK-38184][DOC] Fix malformatted ExpressionDescription of decode

What changes were proposed in this pull request?
Fix malformatted ExpressionDescription of decode.
Why are the changes needed?
Currently, https://spark.apache.org/docs/latest/api/sql/#decode is malformed because its ExpressionDescription uses the pipe symbol.
Does this PR introduce any user-facing change?
Doc change only.
How was this patch tested?
Manual test.

Thanks for fixing this.

Merged to master and branch-3.2.


practical tests on ESP32

the code was developed / tested on the UNIX port of micropython on Linux/x64.
practically run the code on ESP32 hardware, assembling some ULP code.
run the tests on ESP32 hardware.

If you want to use MicroPython to load/run the ULP code, see #7.

Update: I now ran it on the ESP32, it is able to assemble about 2kB of source code. More gives a MemoryError (out of memory).
I'll push some changes soon which improve this to somewhere between 4 and 8 kB by calling the garbage collector now and then.


Image previewer with FileSystemProvider fails security-policy

VSCode Version: 1.23
OS Version: Win 8.1

Steps to Reproduce:

Open image from a folder served by a filesystemprovider
Check the dev log

It seems that the image previewer is set to disallow anything but data: and https:
Error:
internal/process/next_tick.js:109 Refused to load the image<EMAIL_ADDRESS>because it violates the following Content Security Policy directive: "img-src 'self' https: data:".

For easy reproduction I can confirm that the issue is present in the "official" MemFS extension as well.

Does this issue occur when all extensions are disabled?: Yes

@mjbvz I think it is this change, but all my resources using the new webview are all getting access denied now. How can I fix this?

Unlikely a5f35c0 caused it. Please open another issue if you are seeing problems

To verify:

In a non local folder
Open a image file

The image should now be displayed properly

Verified with MemFS.


[Feature Request] upload - need to set the post parameters dynamically before uploading

Existing Component
是
Component Name
upload
Description
  <el-upload class="uploader" drag :show-file-list="false"
    action="http://xxx/import/"
    accept=".xlsx"
    :data="uploadData"
    :before-upload="beforeUpload"
    :on-success="uploadSuccess"
    :on-error="uploadError">

data(){
   return {
       uploadData:{}
   }
},
methods:{
   beforeUpload(){
         // do something...
         this.uploadData = {"name":"xiaoqiu"};    // not posted
   }
}

When I upload file,uploadData was changed, but was not posted because data Attribute is not responsive.I want to set the upload params dynamically before uploading,Can it be set by arguments?
for example:
beforeUpload(config){
    config.requestData = {"name":"xiaoqiu"} ...
}

Thank you !

Use http-request.

Overwrite default action,that makes it more complicated ~~~


Make user icon in navbar link to my profile

Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
When authenticated, my avatar image in the navbar should link to my user page.
Describe alternatives you've considered
To get to my user page, I would have to find a UserPill component within a group page or bet in order to get to my profile.
Additional context

Fixed with #13


Add binary index support for Lucene engine

Description
Add binary vector support for Lucene engine. For testing I parameterized BinaryIndexIT.java to run with both FAISS and LUCENE engines.
Related Issues
Resolves #1857

Check List

[x] New functionality includes testing.
[x] New functionality has been documented.
[x] API changes companion pull request created.
[x] Commits are signed per the DCO using --signoff.
[x] Public documentation issue/PR created.

[x] https://github.com/opensearch-project/documentation-website/issues/8955

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@heemin32 @navneet1v could you please help review? Also it looks like the linux build is broken.

@peterzhuamazon are there changes in the CI image? we are seeing failures due to GlibC

@peterzhuamazon are there changes in the CI image? we are seeing failures due to GlibC

Hi @navneet1v you can follow the guide here to mitigate the issue:

https://github.com/opensearch-project/opensearch-build/issues/5178

Please let me know if you have more questions, thanks!

@jed326 I raised a PR for the fix: https://github.com/opensearch-project/k-NN/pull/2303

@jed326 please pull in latest changes from main branch. CI setup fix is done.

@navneet1v thanks for the feedback, mind taking another look after the latest revisions?

@navneet1v added KNN9120PerFieldKnnVectorsFormat, etc in the latest revision. Thanks!

@heemin32 @jmazanec15 could one of you help with a second review here? Thanks!

LGTM. Could you also add integ test with lucene engine in FilteredSearchBinaryIT and NestedSearchBinaryIT?

LGTM. Could you also add integ test with lucene engine in FilteredSearchBinaryIT and NestedSearchBinaryIT?

Thanks @heemin32 -- added the same engine parameterization to these two classes as well in the latest revision.

Lets wait for all CIs to complete before we can merge this change.
@jed326 lets complete the benchmarks for Lucene binary vectors, @heemin32 can you please share details on how benchmarks was done for this blog: https://opensearch.org/blog/lower-your-cost-on-opensearch-using-binary-vectors/
and lets kick off the documentation update too for this feature.

Created the docs issue here: https://github.com/opensearch-project/documentation-website/issues/8955


Update README.md

figure out that the exercises are only verified under koa 1, but not koa 2.

Any specific issues you noticed?

@hemanth yes, please see this issue. I'm not sure whether it concerns the version, but as @dead-horse says, maybe it's the version problem.

Hmm, rather than updating the readme, it's better we migrate to 2.0 it be nice if you could modify the text to something like:

Note that the exercises of kick-off are only verified under koa 1, but NOT koa 2. Meanwhile we are migrating to kao 2 and you can also take part in it.

:+1: for what @hemanth said since we do want to have Koa 2 stuff eventually too :)

@hemanth I have modified the READ ME as you proposed. I will test the exercises under koa 2. If I find something wrong, I will create the issue.

@xie-qianyue Cool, thanks.
Please have a single issue with checklists.


Update: Xen 4.5 + NixOS Xen modules

Xen 4.5 compiles and runs on my local machine (linux_x86_64).
Maybe I can provide an automated test of Xen once #5995 is merged.
PR depends on #5994.

I have only glanced at the PR and have no clue about Xen, but it is good practice to have separate commits for pkgs and nixos part.

@pSub, thanks for the hint about splitting commits for the pkgs and nixos parts. But as they are so closely related, I hope they can be merged nevertheless. ;)

:+1:

Minor nitpick: we don't do camelCase in filenames (xenConfig).

@edolstra, thanks! I've pushed an updated version. Apparently Xen builds fine with the default GCC.

@edolstra, is there anything I can help with to get this PR merged? Is there a way to tell Hydra to only build one version of Xen to reduce the load?


Existing Rdb files wrongly replaced/removed when resuming killed merge

When gb crashed after merging files, but before renaming the file from even -> odd number files, data loss will happen.
Scenario 1
Initial file list:
posdb0001.dat
posdb0003.dat
posdb0005.dat
posdb0007.dat
posdb0009.dat
posdb0011.dat

File list after merge, but gb died before renaming file:
posdb0001.dat
posdb0003.dat
posdb0005.dat
posdb0007.dat
posdb0008.002.dat

When gb is restarted, posdb0008.002.dat will be moved to posdb0001.dat replacing the existing file causing data loss from posdb0001.dat.
This has been fixed on privacore@f86e945d4941d7ef39af5182b9f4faaa8886ca1d and privacore@c5cc33ab4265a09de12805fd6788e522a0a8e5ba
Scenario 2
Initial file list:
posdb0001.dat
posdb0003.dat
posdb0005.dat
posdb0007.dat
posdb0009.dat
posdb0011.dat

File list after merge, but gb died before renaming file:
posdb0001.dat
posdb0002.002.dat
posdb0009.dat
posdb0011.dat

When gb is restarted, posdb0009.dat and posdb0011.dat will be deleted, and posdb0002.002.dat will be named posdb0009.dat causing data loss from posdb0009.dat and posdb0011.dat.

i can't replicate these conditions. when gb is restarted it completes the merge into posdb0002.002.dat and then deletes the two files above it and renames posdb0002.002.dat

The second scenario happens if gb finish merging (eg: posdb0003.dat & posdb0005.dat merged into posdb0002.002.dat), after gb remove posdb0003.dat & posdb0005.dat, but before posdb0002.002.dat is renamed to posdb0003.dat.
A simple way to test wouild be to rename existing posdb0003.dat to posdb0002.002.dat and see if the next two files are deleted immediately when attempting to resume a killed merge.
20160706-133324-609 0000 001982 INF merge: Attempting to merge 5 posdb files on disk. 6 files needed to trigger a merge.
20160706-133324-609 0000 001982 INF merge: Resuming killed merge for posdb coll=main.
20160706-133324-609 0000 001982 INF merge: Merging 2 posdb files to file id 14 now. collnum=0 coll=main
20160706-133324-609 0000 001982 INF merge: posdb0021.dat (#2) has 133343051 positive and 347864 negative records.
20160706-133324-609 0000 001982 INF merge: posdb0023.dat (#3) has 240811240 positive and 376326 negative records.
20160706-133324-609 0000 001982 INF merge: Total positive = 374154291 Total negative = 724190.
20160706-133324-609 0000 001982 INI db: Resuming a killed merge.
20160706-133324-609 0000 001982 DBG rdb: read absolutely nothing more for dbname=posdb on cn=0
20160706-133324-609 0000 001982 INF db: Merge status: Success.
20160706-133324-609 0000 001982 INF db: Writing map posdb0014.map.
20160706-133324-609 0000 001982 INF merge: Merge succeeded. posdb0014.002.dat (#1) has 253045886 positive and 204455 negative recs.
20160706-133324-609 0000 001982 INF merge: posdb: lost 121108405 positives
20160706-133324-609 0000 001982 INF merge: Unlinking merged file /data/gigablast/query01/coll.main.0/posdb0021.dat (#2).
20160706-133324-610 0000 001982 INF merge: Unlinking map file posdb0021.map (#2).
20160706-133324-610 0000 001982 INF merge: Unlinking merged file /data/gigablast/query01/coll.main.0/posdb0023.dat (#3).
20160706-133324-610 0000 001982 INF merge: Unlinking map file posdb0023.map (#3).

Second scenario fixed in privacore@a809b0607bda076fd4ef2784c12e52cb4a063f98 and privacore@bf7463c9ab923218d181fd899fcf1fdacc9f07b2

Thank you


Tell people to want deployment logs after oc new-app --name=order-msa module 2

they should watch the deployment logs as per the CLI output and check the OS console to seee the build state

Done.


Documentation for DumpIndex

This should include the reference numbers for the collections we have, e.g. Gov2, CW09B.

merged


Centralize system for ipcRenderer message recieving and data handling.

This is part of AS and will be handled with #9


Update to angular 7.1.0 and angular/material 7.1.1

Also fixes https://github.com/alexeagle/angular-bazel-example/issues/257

Also fixers https://github.com/alexeagle/angular-bazel-example/issues/223 with the update to the latest ibazel

I couldn't reproduce the benchmark failure locally on OSX or in the same same docker image being run in CircleCI


Ignore exceptions when closing HTTP::Client

Without this change @io is never set to nil, if the @io.close raises, so the same (broken) @io is reused again and again even if the exception is rescued further up, the http client will never try to reconnect.
http = HTTP::Client.new("localhost")
loop do
  sleep 1
  # If localhost closes the socket while writing we first get `Error writing to socket: Broken pipe (IO::Error)`
  # and then in the next iteration `Closed stream (IO::Error)`
  http.get("/")
rescue
  http.close rescue nil # `Closed stream (IO::Error)` is raised when trying to close and reconnect
end

But maybe a wider change is desirable?
If the socket is closed while reading (but not when sending the request), the HTTP::Client automatically retry one time: https://github.com/crystal-lang/crystal/blob/master/src/http/client.cr#L589-L593
And that's because: https://github.com/crystal-lang/crystal/blob/master/src/http/client/response.cr#L127
Should the http client automaitcally retry one time also when trying to write to a socket? I think so, it's very common that a TCP connection is closed by the server when there's longer delay between requests to a server that supports keepalive.

Code to replicate the error without the patch:
require "http/server"
require "http/client"

server = HTTP::Server.new do |context|
  context.response.print context.request.body.try &.gets_to_end
  io = context.response.@io
  spawn do
    io.as(Socket).linger = 0
    io.close
  end
end
server.bind_tcp 8080
spawn server.listen

client = HTTP::Client.new("<IP_ADDRESS>", 8080)
loop do
  sleep 0.1
  puts client.post(path: "/", body: "foo").body
rescue ex : IO::Error
  puts ex.inspect
  client.close rescue nil
end

I didn't read any of the comments, but doing a spawn inside an http request to capture the io and close it later looks like a big smell and something that you should never do.

@asterite Yes that intentionally. It's just used to mimick behaviour that can be observed in the wild and the client should be able to handle.

Replaced with https://github.com/crystal-lang/crystal/pull/11088


Naming of Streaming Extension keys are inconsistent with other env var

The DL SE key is named as DirectLineExtensionKey. The name is not good for a few reasons:

For cross-platform and OSS perspective, environment variable should be in UPPER_CASE format (upper case with underscore as hyphenation)
Environment variables for other Azure Web App settings are in UPPER_CASE format as well, ABS should follow the trend

This is already fixed in a new version; it will be aliased as DIRECTLINE_EXTENSION_KEY


System.Net.Sockets.SocketException: No such host is known

Thanks for sharing code. I am seeing this issue while running code,
when I provide my username, password and ip address.
the ip address used is local ip for  harmony hub.
Please suggest what can fix that.
Unhandled Exception: System.Net.Sockets.SocketException: No such host is known
at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6)
at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
at HarmonyConsole.Program.Main(String[] args) in C:\Data\harmony-master\HarmonyConsole\Program.cs:line 80

This is a DNS issue, my code makes a call to GetHostEntry (as does the underlying library that talks to the hub). You'll need working DNS resolution or an entry in your hosts file.
See https://github.com/hdurdle/harmony/wiki/Exception:-No-such-host-is-known