Refactor code generator

To make it easier to test and use externally, refactor modelgen into it's own package, and make it accept an arbitrary template text so multiple code generators can be potentially implemented.

Pull Request Test Coverage Report for Build 899975466

36 of 76 (47.37%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.1%) to 70.671%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

modelgen/dbmodel.go
0
18
0.0%

modelgen/table.go
35
57
61.4%

Totals

Change from base Build 882729464:
1.1%

Covered Lines:
1853

Relevant Lines:
2622

💛  - Coveralls

Thinking on this some more, I wonder whether it's wise to allow the user to replace the entire template...
Maybe we should flip the API around so the caller is in control of the template execution.
E.g
1. Moving the `const` templates from `cmd/modelgen/main.go` to the `modelgen` package. These should probably be registered (i.e via template.New) when the package is imported, or alternatively the user would call `New*Template` first - that might allow us to provide options to override bits of the base template e.g omit package name, binary name, or the comment about the code being auto-generated.

2. Change `New*Generator` in to `New*Data` which would return a `map[string]interface{}` with the necessary key/values for the base template to parse correctly

3. Encourage the use of [Nested Templates](https://golang.org/pkg/text/template/#hdr-Nested_template_definitions) for overriding template behaviour.

Then all the user needs to do is calling template.Execute in whichever way they like.
A user defined table template could be something like this, where table_base was the template we registered earlier...
{{ template "table_base" }}

func (o *{{index . "table_name"}}) Foo() string {
   return "foo"
}

I thought of something similar at the beginning but started to get complicated when I had to add extra fields and extra tags to the table struct: see my usecase here:
https://github.com/skydive-project/skydive/blob/52c9d935ffb8924c13ec15907ddb9d8d96322093/topology/probes/ovn/ovnmetagen/table.go#L10
Resulting in files like:
https://github.com/skydive-project/skydive/blob/52c9d935ffb8924c13ec15907ddb9d8d96322093/topology/probes/ovn/ovnmodel/load_balancer.go
Can Nested Templates work for lags and additional fields?

So maybe I should just expose the FieldName FieldType, et al functions and leave the template generation as it is...

Can Nested Templates work for lags and additional fields?

Yes!
For example, what if we register a couple of blank templates called "additional_struct_fields" and one called "after_struct_definition"
your table template is something like this:
// {{ .StructName }} defines an object in {{ .TableName }} table
type {{ .StructName }} struct {
   {{ range .Fields }} {{ .Name }}  {{ .Type }}   {{ .Tag }}
   {{ end }}
   {{ template "additional_struct_fields" }}
}

{{ template "after_struct_definition" }}

You could replace those empty templates with ones that acutally have content.
https://golang.org/pkg/text/template/#Template.AddParseTree


No endpoints created when adding new nodes

Problem: After seiso-import_master 3.0.0 to import new nodes, Seiso created the nodes but not the corresponding endpoints, despite the fact that the service instance has ports and the nodes have IP addresses.
Acceptance criteria: Seiso must create endpoints under the conditions described.

Update to this issue. It turns out that Seiso is creating the endpoints, but initially reports the aggregate rotation status as "No endpoints" instead of "Unknown". So that is what we need to fix.

OK, I think I know what's going on.
Diagnosis. In Seiso v2, interception happened in the domain layer, analogous to JPA entity listeners. So when the API auto-created endpoints, the EndpointPersistenceInterceptor would detect that and trigger a recalculation of the node IP address' aggregate rotation status.
With Seiso v3, we're using SDR RepositoryEventHandlers to do the interception. These appear to intercept events coming in through the REST API, but not internally-generated calls to the Spring Data JPA repos. So when the app creates endpoints internally (as opposed to the client creating them through the SDR API), the interceptor never kicks in, and hence we never recalculate the node IP address aggregate rotation status.

Solution approach. Using SDR RepositoryEventHandlers won't work. Neither can we use JPA entity listeners since they're too limited in the persistence operations they're allowed to invoke. (The JPA spec describes this in more detail.)
Instead we want to use AOP here, and specifically, Spring AOP (as opposed to AspectJ AOP) since that's nice and straightforward. We'll intercept repository calls so we can capture persistence events whether they originate from the client or from Seiso itself.

Diagnosis. NIP aggregate rotation status recalculation not seeing the newly added endpoint, as the recalc happens in the same transaction and Hibernate is reordering the operations. Fix is to manually add the endpoint to the nip.getEndpoints() set so the recalc will see the endpoints without requiring a flush.

Fixed


Update installation instructions to use go install instead of go get

Update installation instructions to use go install instead of go get
Motivation:
go get no longer works and gives the error:
% go get github.com/rsocket/rsocket-go
go: go.mod file not found in current directory or any parent directory.
	'go get' is no longer supported outside a module.
	To build and install a command, use 'go install' with a version,
	like 'go install example.com/cmd@latest'
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.

Modifications:
replace go get with go install ... latest in installation instructions
Result:
The installation instructions will now be up to date and work again

An alternative would be to do:

Create a server that uses rsocket and then do

$ go mod init
$ go mod tidy

This would be a more helpful instruction to replace
go get -u github.com/rsocket/rsocket-go


dotnet-sdk: 2.1.402 -> 2.1.403

Motivation for this change
Bugfix release of dotnet-sdk
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build dotnet-sdk

No attempt on aarch64-linux (full log)
The following builds were skipped because they don't evaluate on aarch64-linux: dotnet-sdk
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: dotnet-sdk
Partial log (click to expand)
no configure script, doing nothing
building
dotnet-sdk version: 2.1.403
installing
post-installation fixup
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/0hb71m1z9728472mfpq2fx65rfvzb42s-dotnet-sdk-2.1.403/bin
patching script interpreter paths in /nix/store/0hb71m1z9728472mfpq2fx65rfvzb42s-dotnet-sdk-2.1.403
/nix/store/0hb71m1z9728472mfpq2fx65rfvzb42s-dotnet-sdk-2.1.403/sdk/2.1.403/FSharp/RunFsc.sh: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/r47p5pzx52m3n34vdgqpk5rvqgm0m24m-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/0hb71m1z9728472mfpq2fx65rfvzb42s-dotnet-sdk-2.1.403...


chore(build): remove Godeps file

Remove gdm support, as it was replaced by dep a long time ago.

@jacobmarble , still need this file as it is being used by plutonium


Check config on resync and restart if changed

The simple brute-force fix for #725:

[x] Resync if tour watch detects a config change.
[x] Each time we resync with etcd, check if the config has changed.
[x] If config has changed, die (and allow init daemon to restart us).
[x] UTs
[x] CHANGELOG

@matthewdupre UTs (including covering pre-existing _load_config method) and markups made.


BLECharacteristic vs. BLERemoteCharacteristic

What is the difference between BLECharacteristic and BLERemotrCharacteristic?  I tried to write to them both from central but the writes always fail.  I am using a NRF8001 BLE board.

@cbolgiano you'll have to use BLECharacteristic for local GATT attributes on the nRF8001, and BLERemoteCharacteristic to access GATT attributes on the connected central. See the examples folder for more details.


Add option 'disallow_popup' to prevent opening popup

This PR allows disallowing popup if you don't need it.
Also, it changes click event on the bar. Without 'disallow_popup === true' it triggers 'onClick' event like now - after dblclick. But if you don't need a popup(with 'disallow_popup === true') ', it will trigger 'onClick'. Because users can misunderstand that they have to click twice.

Implemented in #393.


Unable to read GPIO13 state on ESP32-WROVER-E (IDFGH-6164)

Development Kit:      Custom ESP32-WROVER-E Board (rev3 chip)
IDF version: idf4.2.1
Build System:         CMake
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2020r3) 8.4.0
Operating System:     Windows 10
ESP Command Prompt
Using an IDE?: Eclipse IDE
Power Supply: external 30A+

I am unable to read GPIO13 high/low state
Tested with GPIO4 and GPIO35 same code - everything works fine.
My configuration uses Secure boot V2 with JTAG disabled. I do realize that GPIO is part of JTAG but I couldn't find any way to use it as an INPUT only pin and read its state. Below you will find the schematics along with the code.
Initialization code. Called pretty much by the end of the app_main():
#define GPIO_INPUT_IGNITION     GPIO_NUM_13  // Works as expected with GPIO_NUM_4 and GPIO_NUM_35
#define GPIO_INPUT_IGNMSK  ((1ULL<<GPIO_INPUT_IGNITION))
void initSensor() {
    gpio_config_t io_conf;
    io_conf.pin_bit_mask = GPIO_INPUT_IGNMSK;
    io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
    io_conf.mode = GPIO_MODE_INPUT;
    io_conf.pull_up_en = 0;
    io_conf.pull_down_en = 0;
    gpio_config(&io_conf);
    logToRam(true,"*SYS* MONITOR ON.\r\n");
    enableIgnitionMonitor = true;
    //PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[GPIO_INPUT_IGNITION], PIN_FUNC_GPIO);
}

Here goes the pooling in the main loop:
while (true) {
    	if (true) {
    		gpio_pad_select_gpio(GPIO_INPUT_IGNITION);
    		int v = gpio_get_level(GPIO_INPUT_IGNITION);
    		if (v==1) {
    			logToRam(true,"*SIGNAL* ON\r\n");
    		} else {
    			logToRam(true,"*SIGNAL* OFF\r\n");
    		}
    	}
       vTaskDelay(pdMS_TO_TICKS(1000));
}

I have tried to reinit GPIO matrix for 13th with following call inside the initSensor but it didn't help:
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[GPIO_INPUT_IGNITION], PIN_FUNC_GPIO);
State is always LOW when GPIO13 is used (unless I pull it UP with gpio_config) and everything is okay if I use GPIO4 or GPIO35 (pretty sure more will work too). Attached you may find the sdkconfig file, fuses summary and relevant schematics.
HIghly appreciate any help.

sdkconfig.txt

On IO13 you have 10K/57K*12V=2.1V which could be read as low. You need at least 2.475V @ 3V3 Supply to get a defined high level. Also double check diode polarity.

On IO13 you have 10K/57K*12V=2.1V which could be read as low. You need at least 2.475V @ 3V3 Supply to get a defined high level. Also double check diode polarity.

Thanks for your reply. Apparenly I misread the datasheet (only read the 0.75 and assumed that was the V threshold for HIGH).
Any suggestion why pins GPIO4 ans GPIO35 are okay still reading as high in identical setup?

Any suggestion why pins GPIO4 ans GPIO35 are okay still reading as high in identical setup?

Input voltage is in range of undefined behaviour, this should be fixed first.
Also GPIO4 and GPIO35 are function0 and GPIO13 is function2 in IO_MUX according to ESP32 datasheet.

Any suggestion why pins GPIO4 ans GPIO35 are okay still reading as high in identical setup?

Input voltage is in range of undefined behaviour, this should be fixed first.
Also GPIO4 and GPIO35 are function0 and GPIO13 is function2 in IO_MUX according to ESP32 datasheet.

Thanks. I did change the input to always output VDD-0.2v, which I believe is sufficient, which solved the issue of GPIO13. Looking for a clarification on different behaviour of GPIO13 vs 4 and 35.
Where could I observe more information about the function0 vs function2? I want to understand the difference in the HIGH/LOW reading among the IO's mentioned above.

I want to understand the difference in the HIGH/LOW reading among the IO's mentioned above.

The reason for difference in HIGH/LOW reading is the undefined behaviour for this input voltage, resulting in highly implementation-specific and enviroment-dependent circuit behavior. In this state even small changes in temperature or load on other GPIOs may lead to reading different input levels.
If you understood the concept of undefined behaviour and still have doubt check the Technical Reference Manual Chapter 4 IO_MUX and GPIO Matrix
 for the difference between function0 vs function2.

@romatetemadze Thanks for reporting and thanks to @nx518  for the notes, feel free to reopen.


IronMan Ground Drops / NPC Pricing

Is your feature request related to a problem? Please describe.
It's very frustrating to be a Hardcore Iron Man and the ground indicators still show the Grand Exchange Prices.
Describe the solution you'd like
A separate ground indicator ( Named like.. Iron Ground Items or something.. )
It would include the Store Buy Price for when selling to NPC's ( preferably the highest one ) and the High Alchemy Price as usual.
Additional context
Maybe also set to where other ground items that are not yours, do not show up so you are not tempted to click them.  It would help when looting from piles
That is all for now, Thank you for your time and consideration!  You guys are the best <3

You can turn off GE pricing and have it only show HA
You can enable Only show loot to have it only show your own stuff
Showing the shop price is interesting, but isn't it basically the same as High Alch price anyway?

It is usually not, its significantly lower

The other reason for requesting a 2nd one instead of just making settings for it, is because i usually play with 2 runelite screens up, while playing on my HCIM and my regular account.  The settings seem to cross over

In the update today, support was added for custom config file and/or session file support (--config and --sessionfile respectively). Using those, you might be able to have an easier time with multiple accounts.
Run RL with --c --sessionfile="/path/to/new/session/file" if you're logged in or --c --config="/path/to/new/config/file" if you're not.

Displaying shop prices would be extremely niche, and is also based on the intrinsic value of an item which can already be determined by the item's high alch price. Hence, changing your Ground Item plugin settings accordingly should suffice.
Per Hydrox's comment, using custom config/sessions for different RuneLite instances can address this issue for multiple open clients if you wish to use different settings in each of them.


Added unit testing for en_CA provider

Added test/Faker/Provider/en_CA/AddressTest.php unit test class to test en_CA provider. Unit test class tests province, province abbreviation and post code letters in three assertions:

Variable is not empty
Variable type is a string
Variable matches required RegEx pattern

Thank you.

Thanks!


fix: replace OSP callback hardcode with variable

Description

Remove hardcoded OSP callback url string and replace with OSP callback variable

Why
The URL does not get updated with the current URL or does not update when being changed. Instead, a dummy URL is displayed.
Issue
#1196
Checklist

[x] I have followed the contributing guidelines
[x] I have performed a self-review of my own code
[x] I have successfully tested my changes locally

good finding :) thx !


Added vendor to phinx path to be aligned with other docs sections

thanks

This is not in agreement with bin-dir configuration.

The content of vendor/bin are shell scripts.
I think the confusion is coming from developing phinx - in which case the bin directory contains the PHP script - and the composer bin/shell/wrapper - in which case this is only shell scripts to the scripts in the projects bin directory.
So, the documentation should be just vendor/bin/phinx and not php vendor/bin/phinx.
The bin-dir configuration is about what files in the Phinx project need shell scripts generated by composer and thereby accessible via vendor/bin.
If someone is using Phinx outside of composer, then bin/phinx is what the documentation should say. Otherwise vendor/bin/phinx.
Of course, those who are running on Windows will be using \, rather than /.
In both cases, there is no need to put the php interpreter in as the file is shell executable.
On Unix, via composer, vendor/bin/phinx is an executable shell script.
On Unix, not via composer bin/phinx is an executable shell script that uses the PHP interpreter to run - assuming it is installed appropriately.
On Windows, via composer, vendor\bin\phinx.bat is a batch file.
On Windows, not via composer bin\phinx.bat is a batch file.

This commit was only synchronising the states, it was referenced in multiple different paths. That's solved now. I didn't really think about the correct way to reference it on windows or any other variants.

bin/phinx or vendor/bin/phinx (bin\phinx or vendor\bin\phinx for Windows users).
But never php bin/phinx or php vendor/bin/phinx. The php is wrong.


add instructions for Windows users

Feature Request
Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Teachability, Documentation, Adoption, Migration Strategy

What is the motivation / use case for changing the behavior?

Already added

Already added


Globally Unique Content Digest

Globally Unique Content Digest
This issue is for broader discussion with the developer community regarding *Globally Unique Content Digests for identification of data objects and data sets that are currently being defined by the various schema.
The overarching goal is to provide an API centric method to be able to identify a set of data across different data providers or repositories of genomic data sets, so that researchers are able to identify exactly a data set that may have different versions. For example, there are many sequence data sets derived from the NA12878, alignments to different reference genomes, and variant analyses from these alignments. Each of the reference genomes, source sequence sets from sequencing a library, the resulting alignment sets, and variant calls should have some data digest to unambiguously identify it across repositories.
Tenents
Any version of any set of genomic data in the world can have a digital digest.
digests are unique:
: no copy of a data set (data + metadata) will ever have a different digest, and no two different data sets will ever “collide” by accidentally getting the same digest
digests are privacy preserving
: given only the digest you can’t determine anything significant about the genomic data set it identifies, unless you are also authorized to use that digest to retrieve the data itself
digests are decentralized
: they're not assigned by any central authority; each organization that handles genomic data sets can generate the digests themselves
digests are unforgeable
: requesting the data with an ID should be deterministic. If you are not able to recompute the same digest from the the received data set then something went wrong
accessions and digests are not mutually exclusive
: accession numbers are widely used in biological data repositories and represent stable identifiers for data sets. Accessions can be assigned to a data set that also has a digest, the difference being that digests are computable from the data, whereas accessions are not computable from the data, but rather rely on the source repository that assigned the accession to the data set.
Issues effected
Other issues that may be effected by this one:

#159 : Best practices for joining NGS-derived & clinical variation databases
#150 : Synchronisation tools
#143 : Content (Data) management lifecycle
#142 : GA4GH APIs need to address scientific reproducibility (propose immutable datatypes)
#112 : Standardize GAReference.name for the benefit of other APIs

The original thread from the GA4GH Data Working Group mailing list is located at https://groups.google.com/forum/#!topic/ga4gh-dwg/Baz7hMjytQg.

@delagoya Any reason this is being closed?

I closed for two reasons:

No comments or work done on the issue since Nov 20, 2014.
No associated Pull Request.

We can reopen it, but I would rather that there be actual PR or repositories to point to other than a dated issue with no PR. For example, should we just point to massie/gastore as the working document for these issues, and when the group feels that it is ready, promote that work to actual PR on this repository?

AFAIK - the containers and workflows task team (aka the digests, containers & workflows task team) was going to try and work on this problem.   It would be great to see this content replicated on their mailing-list.   CCing  @fnothaft @tetron

What is the mailing list for the "Disgests, Containers, Workflows" team?  Is there a Github location for the team?
Thank you,
Paul

@pgrosu https://groups.google.com/forum/#!forum/ga4gh-dwg-containers-workflows

Thank you Peter, I just applied to join it.
Paul


Trailing comma

Currently it is not allowed to have a trailing comma inside the import call, but maybe it would be nice to be able to do that.
The reasons for trailing commas are usually about adding/removing elements from a multiline list of elements. This obviously does not apply here as import always has one argument, but it still would be nice to have this possibility for the sake of consistency with function calls.
Especially for code formatters I can see that it would be a little bit easier to treat import calls the same as function calls.
Was there already a decision on this and what's your opinion on this?
Should I try to create a PR?

I think that that would only accentuate the possible confusion with functions. I think we shouldn't make the import syntax look more like function calls than it already does, since it's not a function call, especially by allowing a trailing comma where it's impossible to add something after the comma. Code formatters are automatic, they shouldn't need too much help; developers need more help because they're humans and potential confusion should be reduced. A good editor with syntax highlighting should highlight the import syntax different from function syntax.

Agreed. import() is not a function. It's more like typeof which equally does not support a trailing comma.

I would say that import() is more unlike a function call. It's not clear what transition would be awkward (for who, from what to what?) and why. However, assuming the intent is to help with simplifying parsing the code, then I imagine that it should also be allowed for the import pseudofunction to receive any number of arguments (and of course semantically all of them should be evaluated) as it is with any normal function call. Otherwise, I imagine that allowing a trailing comma alone would not simplify much.

I think most programmers think import() is very like an async function even they know it's not a real function. At least it is much more like function than typeof. You can write typeof x without parens, and x could be an undeclared variable which never allowed in any other place, so obviously typeof is not a function. But it's hard to say why import() is not a function, though you can only "direct call" it and can't use it indirectly.
It's a bit like eval. eval is a function due to historical reason, we have two different semantic for eval of direct call and indirect call. Direct call of eval() is very same as import(). For example, both have implicit context related --- scope for eval, baseurl for import.
Technically, we could also make import a function, and make indirect call of import have the semantic like System.loader.import() in old whatwg loader spec.
Of coz it's not a good idea to repeat the mistake of introducing confusing direct/indirect call semantics. But I think it's ok to make the direct call syntax more consistent --- allow trailing comma in import().

If import() is really like typeof, then why not make it look that way?
As is, it appears that its authors wanted it to syntactically appear as a function.


MB Arabic bolded-titles#2

When I go to MB Arabic > Weather in Manitoba, I expect the heading " Summer, Fall, Winter, Spring " (Arabic: الصيف، الخريف،الشتاء، الربيع) to be bolded. Instead, it appears as ** with a text not bolded.

Not Fixed.

Fixed.


Need more control over taglist

Taglist can be very long. Need improvements:
i. readability
ii. fixed size and scrollbars
iii. tag category markers (?)

Done


incorrectly show highlight when SHA 7+ digits

Explain the problem here ...
after excute :PlugUpdate and press D to show the changes, when commit sha is more than 7 digits, it is not correctly shown the highlight. one picture is more than 1000 words, see the snapshot bellow.
i noticed the defination in plug.viim:
syn match plugSha /[0-9a-f]\{7}/ contained
maybe because of this?

Type:

[x] Bug
[ ] Enhancement
[ ] Feature Request
[ ] Question

OS:

[ ] All/Other
[ ] Linux
[ ] OS X
[x] Windows

Vim:

[ ] Terminal Vim
[x] GVim
[ ] Neovim

Yes, you're right. I'll change it to 7 to 9 chars, hoping that it will never exceed 9 chars :)

Fixed it, thanks for the report. Try :PlugUpgrade and :PlugDiff.


pipe to exiftool to see if exiftool returns as soon as enough data is gathered

Instead of getting n bytes then spawning to exiftool,
pipe data to exiftool and wait for events on the stdout stream.

Some formats (jpeg and ...?) can exit early, and since now exiftool stays open, we retry until it finds some tags. Done !


TINKERPOP-1160 Add timeout configuration for time to wait for connection close

https://issues.apache.org/jira/browse/TINKERPOP-1160
Added the new maxWaitForSessionClose configuration option to the driver.  For all the code changes here, the only one that matters is this:
https://github.com/apache/incubator-tinkerpop/compare/tp31...TINKERPOP-1160?expand=1#diff-9aa3bff55e6c3f840ceded2dd2ad2d88R234
where I replaced an indefinitely blocking {{get()}} call on a future to one with a timeout that uses the new setting.
all good with: mvn clean install && mvn verify -pl gremlin-server -DskipIntegrationTests=false
VOTE +1

Bro, JavaDoc is for the weak.
VOTE +1.

VOTE: +1


Media details Preview

It is very good to have a preview in the media details:

But if you look at the preview from another video, there is the preview from the last video:

This is probably related to #334


perf: Switch the STROBE implementation

This PR implements a minimal subset of STROBE to replace the external dependency.  While the existing implementation appears to be correct, it is extremely allocation heavy, especially when used to implement merlin due to the lack of more support for operations, and the gratuitous copies.
TODO:

[x] Implement STROBE
[x] Switch merlin to use the new implementation
[x] Do some light optimization (add a fast path to duplex)
[ ] Add some tests beyond "well merlin still works"

Fixes #61

nb: Can't be bothered disabling turbo or running multiple iterations, and messages used for the benchmarks are all "short".
name                    old time/op    new time/op    delta
VerifyBatchOnly/1-8       45.0µs ± 0%    42.6µs ± 0%   -5.41%
VerifyBatchOnly/2-8       63.2µs ± 0%    59.0µs ± 0%   -6.66%
VerifyBatchOnly/4-8        100µs ± 0%      92µs ± 0%   -8.23%
VerifyBatchOnly/8-8        174µs ± 0%     158µs ± 0%   -9.49%
VerifyBatchOnly/16-8       315µs ± 0%     289µs ± 0%   -8.36%
VerifyBatchOnly/32-8       602µs ± 0%     554µs ± 0%   -7.96%
VerifyBatchOnly/64-8      1.20ms ± 0%    1.10ms ± 0%   -8.20%
VerifyBatchOnly/128-8     2.12ms ± 0%    1.97ms ± 0%   -7.27%
VerifyBatchOnly/256-8     3.95ms ± 0%    3.61ms ± 0%   -8.69%
VerifyBatchOnly/384-8     5.68ms ± 0%    5.15ms ± 0%   -9.36%
VerifyBatchOnly/512-8     7.45ms ± 0%    6.77ms ± 0%   -9.12%
VerifyBatchOnly/768-8     11.3ms ± 0%     9.7ms ± 0%  -13.89%
VerifyBatchOnly/1024-8    14.0ms ± 0%    12.6ms ± 0%   -9.87%
GenerateKeyPair-8         12.6µs ± 0%    12.6µs ± 0%   -0.21%
Signing-8                 21.1µs ± 0%    16.3µs ± 0%  -23.00%
Verification-8            31.4µs ± 0%    28.9µs ± 0%   -8.10%

name                    old alloc/op   new alloc/op   delta
VerifyBatchOnly/1-8       9.08kB ± 0%    6.92kB ± 0%  -23.79%
VerifyBatchOnly/2-8       15.2kB ± 0%    11.8kB ± 0%  -22.30%
VerifyBatchOnly/4-8       28.4kB ± 0%    22.6kB ± 0%  -20.59%
VerifyBatchOnly/8-8       53.2kB ± 0%    42.5kB ± 0%  -20.22%
VerifyBatchOnly/16-8       111kB ± 0%      90kB ± 0%  -18.57%
VerifyBatchOnly/32-8       212kB ± 0%     172kB ± 0%  -18.98%
VerifyBatchOnly/64-8       419kB ± 0%     340kB ± 0%  -18.97%
VerifyBatchOnly/128-8      478kB ± 0%     320kB ± 0%  -33.09%
VerifyBatchOnly/256-8      946kB ± 0%     631kB ± 0%  -33.32%
VerifyBatchOnly/384-8     1.54MB ± 0%    1.07MB ± 0%  -30.63%
VerifyBatchOnly/512-8     1.89MB ± 0%    1.26MB ± 0%  -33.37%
VerifyBatchOnly/768-8     3.07MB ± 0%    2.13MB ± 0%  -30.73%
VerifyBatchOnly/1024-8    3.73MB ± 0%    2.47MB ± 0%  -33.77%
GenerateKeyPair-8           368B ± 0%      368B ± 0%    0.00%
Signing-8                 2.45kB ± 0%    0.80kB ± 0%  -67.32%
Verification-8              664B ± 0%       32B ± 0%  -95.18%

name                    old allocs/op  new allocs/op  delta
VerifyBatchOnly/1-8         59.0 ± 0%      19.0 ± 0%  -67.80%
VerifyBatchOnly/2-8         96.0 ± 0%      26.0 ± 0%  -72.92%
VerifyBatchOnly/4-8          169 ± 0%        39 ± 0%  -76.92%
VerifyBatchOnly/8-8          314 ± 0%        64 ± 0%  -79.62%
VerifyBatchOnly/16-8         603 ± 0%       113 ± 0%  -81.26%
VerifyBatchOnly/32-8       1.18k ± 0%     0.21k ± 0%  -82.20%
VerifyBatchOnly/64-8       2.33k ± 0%     0.40k ± 0%  -82.73%
VerifyBatchOnly/128-8      4.64k ± 0%     0.79k ± 0%  -82.99%
VerifyBatchOnly/256-8      9.25k ± 0%     1.56k ± 0%  -83.15%
VerifyBatchOnly/384-8      13.9k ± 0%      2.3k ± 0%  -83.21%
VerifyBatchOnly/512-8      18.5k ± 0%      3.1k ± 0%  -83.24%
VerifyBatchOnly/768-8      27.7k ± 0%      4.6k ± 0%  -83.27%
VerifyBatchOnly/1024-8     36.9k ± 0%      6.2k ± 0%  -83.28%
GenerateKeyPair-8           6.00 ± 0%      6.00 ± 0%    0.00%
Signing-8                   38.0 ± 0%      12.0 ± 0%  -68.42%
Verification-8              15.0 ± 0%       1.0 ± 0%  -93.33%

Note that for large message sizes ("unreasonably large" on amd64) this will be slower, but the answer is "use sr25519.NewTranscriptHash instead of trying to sign gigantic messages".  If people happen to care about arm64 performance, they are more than welcome to submit a followup PR, the required improvements are obvious.


Fix trailing slashes with an edge function

By default Next.js will redirect urls with trailing slashes to their counterpart without a trailing slash. For example /about/ will redirect to /about. This has caused issues (see below).
@ascorbic created a proof of concept to add or remove trailing slashes in an edge function. This can be used to enable or disabled trailing slashes based upon the Next.js configuration.
Documentation
https://github.com/ascorbic/slash-edge
https://nextjs.org/docs/api-reference/next.config.js/trailing-slash
Related Issues
#1329
#998
#1144
#1788

From @ascorbic

This can probably wait until the Edge router is done.

We won't @mike-essen. It'll roll out with our work on edge routing. 👍

Is there any ETA on the work on edge routing? 👍

Not yet @PFJoey. We'll keep you updated as we know more.

What is the status on this one?

@hk86 we are currently working on a new edge router that will allow us to handle more complex routing cases and will include better trailing slash handling. in the meantime you can use the following edge function to add or strip trailing slashes on static pages https://github.com/ascorbic/slash-edge

Any idea about when this is going to be resolved?

I have fixed some issues with ascorbic's functions that handles querystrings and _redirects
Netlify Edge Functions

The team at Netlify have now released the new v5 Next.js runtime which has support for both pages and app router, on-demand and time-based revalidation, automatic fine-grained cache control, and automatic image optimization using Netlify's image CDN. This issue should be fixed in the new runtime.
You can find the documentation and additional information here: Next.js on Netlify
The v4 runtime is now in the maintenance support phase with no new features being added. Occasional bug fixes and security patches will be applied when needed.
Thanks!


add append slash option for contructing urls

@ahsan-ul-haq @tasawernawaz @awais786

@jimabramson please review

@jimabramson after discussion I think it ok if we don't include the tests, since apend_slash is the Slumber feature and it will just make it unnecessary to add same tests again.

@jimabramson please review again

Please check again

i would update the commit message to say that we are passing through kwargs to slumber's constructor, and update the docstring of EdxRestApiClient to say so as well.   otherwise :+1:

@jimabramson I have updated docstring, commit message and bumped the version from 1.3.0 to 1.3.1.

@jimabramson I have updated the version to 1.4.0

:+1:


bundle install fails with ffi even after having gem ffi installed

This is for shoes4 checkout
c:\Dominic\programming\repos\git\shoes4>gem install ffi -v '1.9.18'
Successfully installed ffi-1.9.18-java
1 gem installed

c:\Dominic\programming\repos\git\shoes4>bundle install
Fetching https://github.com/shoes/furoshiki
Fetching gem metadata from https://rubygems.org/.............
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies....
Using rake 12.0.0
Using shoes-core 4.0.0.pre9 from source at `shoes-core`
Using mini_portile 0.6.2
Using shoes-highlighter 1.0.1
Using after_do 0.4.0
Using bundler 1.15.1
Using plist 3.3.0
Using rubyzip 1.2.1
Using jruby-jars <IP_ADDRESS>
Using jruby-rack 1.1.20
Using swt <IP_ADDRESS>
Using formatador 0.2.5
Using rb-fsevent 0.9.8
Fetching ffi 1.9.18
Installing ffi 1.9.18 with native extensions
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:58: warning: Tempfile#unlink or delete called on open file; ignoring
Using ruby_dep 1.5.0
Using lumberjack 1.0.12
Using nenv 0.3.0
Using shellany 0.0.1
Using coderay 1.1.1
Using method_source 0.8.2
Using slop 3.6.0
Using thor 0.19.4
Using guard-compat 1.2.1
Using rspec-support 3.5.0
Using diff-lcs 1.3
Using ast 2.3.0
Using powerpack 0.1.1
Using ruby-progressbar 1.8.1
Using unicode-display_width 1.2.1
Using yard 0.9.9
Using kramdown 1.13.2
Using docile 1.1.5
Fetching json 2.1.0
Installing json 2.1.0 with native extensions
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:58: warning: Tempfile#unlink or delete called on open file; ignoring
Using simplecov-html 0.10.1
Using public_suffix 2.0.5
Using safe_yaml 1.0.4
Using hashdiff 0.3.4
Using hometown 0.2.5
Using benchmark-ips 2.7.2
Using rainbow 2.2.2
Fetching nokogiri <IP_ADDRESS>
Installing nokogiri <IP_ADDRESS> with native extensions
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:58: warning: Tempfile#unlink or delete called on open file; ignoring
Using warbler 2.0.4
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/gems/ffi-1.9.18/ext/ffi_c
C:/Dominic/rubies/jruby-<IP_ADDRESS>/bin/jruby.exe -r
./siteconf20170612-17192-1c23zvl.rb extconf.rb

current directory:
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/gems/ffi-1.9.18/ext/ffi_c
make "DESTDIR=" clean
'make' is not recognized as an internal or external command,
operable program or batch file.

current directory:
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/gems/ffi-1.9.18/ext/ffi_c
make "DESTDIR="
'make' is not recognized as an internal or external command,
operable program or batch file.

make failed, exit code 1

Gem files will remain installed in
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/gems/ffi-1.9.18 for
inspection.
Results logged to
C:/Dominic/rubies/jruby-<IP_ADDRESS>/lib/ruby/gems/shared/extensions/universal-java-1.8/2.3.0/ffi-1.9.18/gem_make.out

An error occurred while installing ffi (1.9.18), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.9.18'` succeeds before bundling.

In Gemfile:
  guard-rspec was resolved to 4.7.3, which depends on
    guard was resolved to 2.14.1, which depends on
      listen was resolved to 3.1.5, which depends on
        rb-inotify was resolved to 0.9.8, which depends on
          ffi

##########################

you can see ffi is installed

c:\Dominic\programming\repos\git\shoes4>gem list ffi

*** LOCAL GEMS ***

ffi (1.9.18 java)
public_suffix (2.0.5)

Can you please attach the output of bundle env.

c:\Dominic\programming\repos\git\shoes4>bundle env
Environment
Bundler   1.15.1
Rubygems  2.6.11
Ruby      2.3.3p0 (2017-05-25 revision 56859) [java]
Git       2.11.0.windows.3
Platform  universal-java-1.8

Bundler settings
build.nokogiri
  Set for the current user (C:/Dominic/.bundle/config): "--use-system-libraries"
force_ruby_platform
  Set for the current user (C:/Dominic/.bundle/config): "true"
gem.test
  Set for the current user (C:/Dominic/.bundle/config): "minitest"
gem.mit
  Set for the current user (C:/Dominic/.bundle/config): "true"
gem.coc
  Set for the current user (C:/Dominic/.bundle/config): "true"

Gemfile
Gemfile
# frozen_string_literal: true
source 'https://rubygems.org'

gem 'shoes',        path: '.'
gem 'shoes-core',   path: 'shoes-core'
gem 'shoes-swt',    path: 'shoes-swt'
gem 'shoes-package', path: 'shoes-package'

gem 'furoshiki', git: 'https://github.com/shoes/furoshiki'

# For local testing, clone to ../furoshiki and use this line instead
# gem 'furoshiki', path: '../furoshiki'

gem 'shoes-manual'
gem 'shoes-highlighter'

group :development do
  gem "guard"
  gem "guard-rspec"
  gem "listen"

  gem "pry"
  gem "pry-nav"

  gem "rspec", "~>3.5.0"
  gem "rspec-its", "~>1.2.0"
  gem "rake"

  gem "rubocop", "0.47.1"

  gem "yard"
  gem "kramdown"
  gem 'simplecov'
  gem "codeclimate-test-reporter", "~> 1.0"
  gem 'webmock'
  gem 'hometown'
  gem 'benchmark-ips'
end

Gemfile.lock
<No C:/Dominic/programming/repos/git/shoes4/Gemfile.lock found>

This is because you have force_ruby_platform set to true, so bundler needs the "plain ruby" version of ffi, rather than the java version which is the only one you have installed. If you ran gem install ffi:1.19.18 --platform=ruby , you'd probably see the same output.

I'm closing this for now. If you have any more questions or problems feel free to open a new issue.


Changed InternalEntityEntry to IUpdateEntry where logical.

Made OriginalValues and StoredGeneratedValues structs public.
Added indexer to IUpdateEntry
This is so that custom Entity tracking can be created.

Hi @meikeric, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, DNFBOT;

Closing per discussion on the related issue (#4590).

DbUpdateException.Entries  is used by application code when it needs to resolve a database exception. For example, if there is a concurrency exception, then it can use the data and operations from  EntityEntry  to show the user the different values and allow them to resolve the issues.

IUpdateEntry  is the API designed for database providers to persist changes to the database.

Given these two APIs are designed for completely different audiences it does not make sense to change them.

We are willing to consider a different approach to enabling the scenario in question. We can use the issue to discuss this.


Fix resolve of Promise in forceSyncEarly().

Added resolve() of Promise if countdown is null.

@wifisher of course.... I was a bit tired this morning sorry ><
I will merge and publish this first thing tomorrow !!

@wifisher sorry this had slipped my mind and got into end-year rush busyness ><
released in versions:

<EMAIL_ADDRESS><EMAIL_ADDRESS>


Multiple bots?

First, great project! Really nice to see my bot walking around. I have one issue, I have 6 bots atm, currently it only shows 1 bot. How can i visualize all 6?

That's really not in my plan. But you're welcome to fork and do it.
If you assign correct port in config for each of your bot, you can switch from one to the other changing the config.

Ok, i will have a look at it. But a bit stuck as "npm i && npm start" complains that there is no start. I also dont see that defined in package.json. (im pretty new at this)

Just wanted to ask @Muzurio if you had any luck with how to get it to work with multiple bots and if how to do it. I am a noob regarding coding and compiling so if you ELI5 maybe I could get it to work as well. Thanks in advance.

@themanticors nope sorry havent gotten around to it to look into it. Im also not that skilled at developing. I am sure someone else will pick this up as so many people are using multiple bots.

First, take some time to explain how you would like it to look like. Then someone else may try to implement it.
Personally, I don't even know how it should work.

U can just let it open the map and then count how many bots are running. Then make a bookmark for each bot like every browser has for a certain website, so we can switch between them and check them out.

The bookmark thing would be nice!
But maybe a little easier suggestion:
A little dropdown menu to easily switch ports,that you entered in the settings diveded by "," or something

Maybe with using personal Websocket on each tab?

I have three bots running, each on a different websocket port. But I can only start one visualizer, so i have to go to settings and change the port everytime i want to check on a different bot. Is there a way to start more than one instance of the visualizer? That would be great.

Where do I change the websocket port?

If you are using Necrobot edit config\config.json and change the value of "WebSocketPort". Then start the visualizer, go to settings and edit "Bot Websocket" to your new port (for example: default/first bot = wss://localhost:14251, second bot = wss://localhost:14252, third bot = wss://localhost:14253, ...)

Didn't work last time, but seems to work now, thx.

Seems like it's not working for me..

Is it because I havent logged into the account before?

A tab interface would work nicely for this?

https://gyazo.com/d6895b52bd43f4321906ebfe295ce11b
like this, ope copy 1 set the port press save
open copy 2 press the port and save
in your config of necro set a different port for each bot 14251 14252 14253
like this. problem now saving is general save somewhere globally, if changed in 1 bot its change everywhere, bot will stay on chosen port, but at each clear or restart the same stuff over and over. what we need is to save the port in array() then use a dropdown on the array. or tab the array

I think the best way to monitor multiple bots is to have a control panel that shows level progress of each bot.  When we click a bot progress,  it will show a bot visualizer.
But when I tried to implement it, I stuck on the message passed by the bot Websocket service. The message is lack of player progress information. It only has username, currency (stardust and poke coin) and other stuff like avatar information. Let's ask necrobot  to provide more information on message they sent through websocket.

I'm actually working on a completly different approach : having a public website you can use where you can pass the bot as parameter. so it can live in the browser and have multiple page open with multiple bot. will be available for testing soon

https://github.com/nicoschmitt/pogo.webui/wiki

You can add command-line support for a port at startup? Example: "NecrobotVisualizer.exe -port 14251" or "NecrobotVisualizer.exe -server wss://localhost:14251"


testing: Support concurrent backend testing for generate_emails.

Fixes #21925.
After hours of fiddling/googling/hair-tearing, I found that mocking-away Django Connection.send_messages() was best:

we're testing Zulip and not Django.
mocking at this lower level exercises more of our code.
EmailLogBackEnd._do_send_messages() helper method added to simplify mocking.

Previously, this command would reliably fail: tools/test-backend --skip-provision-check --parallel=3     zerver.tests.test_email_log.EmailLogTest.test_forward_address_details zerver.tests.test_email_log.EmailLogTest.test_generate_and_clear_email_log zerver.tests.test_example.TestDevelopmentEmailsLog
and now it reliably succeeds. :-)

This looks reasonable; we should add a comment.

@timabbott comment added.

Cool, I did a bit of rearranging and the merged this:

The nice PR description including the reproducer for what this fixes belongs in the commit message (which GitHub will copy into the PR description for single-commit PRs).
I tweaked the comment to be more of an explanation of the current state of the world -- while it makes sense for a commit message to use words like "I", for comments in the code, it's better to just declaratively state what might not be obvious to someone reading this code. (In this case, why we shouldn't just inline this helper that's called in one place).


update pyyaml and docker deps

Overview
These two dependencies are shared by aws-sam-cli, which is commonly installed in the same virtualenv as taskcat (testing sam templates), so should not have conflicting version requirements.

/do-e2e-tests


Update test_pr

This is an update for the test_pr and testing pull request

Great!, all has been updated!


Trigger browser push notifications

@bonustrack Can you please expand the context of the issue so contributors can get started it smoothly 🙇🏻

This has been done already


Patch Tuesday for September 2024

Update Visual Studio to 17.11.3
Update Azure-CLI to 2.64.0
Workaround https://github.com/Azure/azure-cli/issues/28700

From full build https://dev.azure.com/vcpkg/public/_build/results?buildId=106900
REGRESSION: sentry-native:x64-osx failed with FILE_CONFLICTS. If expected, add sentry-native:x64-osx=fail to /Users/vcpkg/Data/work/2/s/scripts/azure-pipelines/../ci.baseline.txt.
REGRESSION: sentry-native:x64-osx failed with FILE_CONFLICTS. If expected, add sentry-native:x64-osx=fail to /Users/vcpkg/Data/work/2/s/scripts/azure-pipelines/../ci.baseline.txt.
REGRESSION: sentry-native:x64-windows-static failed with FILE_CONFLICTS. If expected, add sentry-native:x64-windows-static=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: sentry-native:x64-windows-static-md failed with FILE_CONFLICTS. If expected, add sentry-native:x64-windows-static-md=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
Baseline issue: https://github.com/microsoft/vcpkg/issues/40919
PASSING, REMOVE FROM FAIL LIST: libconfuse:arm-neon-android (/vcpkg/scripts/azure-pipelines/../ci.baseline.txt).
PASSING, REMOVE FROM FAIL LIST: libconfuse:arm64-android (/vcpkg/scripts/azure-pipelines/../ci.baseline.txt).
PASSING, REMOVE FROM FAIL LIST: libconfuse:x64-android (/vcpkg/scripts/azure-pipelines/../ci.baseline.txt).
PASSING, REMOVE FROM FAIL LIST: onednn:x64-android (/vcpkg/scripts/azure-pipelines/../ci.baseline.txt).
Fixed by https://github.com/microsoft/vcpkg/pull/40900
REGRESSION: cpprestsdk:arm64-uwp failed with BUILD_FAILED. If expected, add cpprestsdk:arm64-uwp=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: cpprestsdk:x64-uwp failed with BUILD_FAILED. If expected, add cpprestsdk:x64-uwp=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
 D:\b\cpprestsdk\src\a4a98cdecf-431b2119ed.clean\Release\include\cpprest\containerstream.h(404,47): error C4996: 'stdext::checked_array_iterator<char *>': warning STL4043: stdext::checked_array_iterator, stdext::unchecked_array_iterator, and related factory functions are non-Standard extensions and will be removed in the future. std::span (since C++20) and gsl::span can be used instead. You can define _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING or _SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS to suppress this warning. [D:\b\cpprestsdk\x64-uwp-dbg\src\cpprest.vcxproj]

Fixed by suppressing here.
REGRESSION: nghttp3:arm64-uwp failed with BUILD_FAILED. If expected, add nghttp3:arm64-uwp=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: nghttp3:arm64-windows failed with BUILD_FAILED. If expected, add nghttp3:arm64-windows=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: ngtcp2:arm64-uwp failed with BUILD_FAILED. If expected, add ngtcp2:arm64-uwp=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
REGRESSION: ngtcp2:arm64-windows failed with BUILD_FAILED. If expected, add ngtcp2:arm64-windows=fail to D:\a_work\1\s\scripts\azure-pipelines/../ci.baseline.txt.
D:\b\ngtcp2\src\v1.7.0-1837be226f.clean\lib\ngtcp2_ringbuf.c(36): error C2169: '__popcnt': intrinsic function, cannot be defined

This is https://github.com/ngtcp2/nghttp3/pull/252.
Also fixed ngtcp2 and submitted upstream: https://github.com/ngtcp2/ngtcp2/pull/1351


cargo --list description for mutants is blank

Is there a way to get some descriptive text into the list? It might not be possible for plugin commands.

It does not seem like any other plugins have descriptions either, and I don't see any way in https://doc.rust-lang.org/cargo/reference/external-tools.html to change this.


x/build/cmd/gerritbot: fails to import some PRs, Gerrit server refuses push due to an account being not found

PR golang/website#186 is currently failing to be imported into Gerrit (despite having a passing CLA check), and recent changes made in PR golang/go#55119 are also failing to be imported (see discussion on it). The Gerrit server is refusing the push with errors like "Account 'nnn' not found":
2022/10/03 15:27:22 processPullRequest: importGerritChangeFromPR(golang/website#186, nil): could not create change: running [git -C /root/.cache/gerritbot/tmp/worktree_golang_website_186 push -o nokeycheck origin HEAD:refs/for/master%m=This+Gerrit+CL+corresponds+to+GitHub+PR+golang%2Fwebsite%23186.%0A%0AAuthor%3A+Zamicol+%3Czamicol%40gmail.com%3E]: output: remote:
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1, done
To https://go.googlesource.com/website
 ! [remote rejected]   HEAD -> refs/for/master%m=This+Gerrit+CL+corresponds+to+GitHub+PR+golang%2Fwebsite%23186.%0A%0AAuthor%3A+Zamicol+%3Czamicol%40gmail.com%3E (Account '56813' not found
56813 does not identify a registered user or group)
error: failed to push some refs to 'https://go.googlesource.com/website'
; err: exit status 1

2022/10/03 15:30:01 processPullRequest: importGerritChangeFromPR(golang/go#55119, [...]): could not create change: running [git -C /root/.cache/gerritbot/tmp/worktree_golang_go_55119 push -o nokeycheck origin HEAD:refs/for/master]: output: remote:
remote: Processing changes: refs: 1
remote: Processing changes: refs: 1, done
To https://go.googlesource.com/go
 ! [remote rejected]       HEAD -> refs/for/master (Account '59165' not found
59165 does not identify a registered user or group)
error: failed to push some refs to 'https://go.googlesource.com/go'
; err: exit status 1

The last successfully imported commit in PR golang/go#55119 was on Sept 19, and PR golang/website#186 that's failing to import is from Sept 22. This might be related to a recent configuration change on our Gerrit server 2 weeks ago (b/247734171), although it seems to only be affecting those 2 PRs right now while many other recent PRs are imported fine.
CC @golang/release.

This error isn't happening as of yesterday 9:22 am (EDT), both PRs have been updated at around that time.

I just checked and it doesn't seem this is happening on any newer PRs either. For reference, neither I nor @cagedmantis changed gerritbot, so the fix must've happened on the side of the Gerrit server. Closing, we can reopen or file a new issue if this happens again.


OnDidCloseTextDocument taking upwards of 60 seconds to trigger

I have a VSCode extension and I need to know when a file is saved and closed so I Can take a follow on action.

VSCode Version: 1.52
OS Version: Windows 10

Steps to Reproduce:
As a simple test, I have this defined in my extension.ts
vscode.workspace.onDidCloseTextDocument((doc) => {
    console.log("Closed", doc);
  });

I then run my extension and open a file in the editor window. I then close that file's tab.
I then sit and wait and do nothing.
It is taking upwards of between 60 and 90 seconds before the console log message appears with the result. What is being displayed is correct but the delay of over a minute makes it unusable.

Is there a solution to this or is this a defect?
I am aware of the reference in the doc to this comment:
Note 1: There is no guarantee that this event fires when an editor tab is closed, use the onDidChangeVisibleTextEditors-event to know when editors change.
However - that then begs the question as to what then is the purpose of OnDidCloseTextDocument if it doesn't do what it says on the tin!   ???  It works but takes 60+ seconds to respond.
Whereas the suggestion of using onDidChangeVisbibleTextEditors doesn't provide any useful info telling you exactly what file/tab was closed. I don't see that it comes even close to what OnDidCloseTextDocument is accomplishing albeit taking an age to actually notify the event..
I am also aware of this similar reported problem.
https://github.com/microsoft/vscode/issues/102737
How it can be possibly considered to be working as designed seems very strange as in its current form it is unusable.
I close an editor tab of a file that has been editted. I would expect to be notified immediately  that it is closed. I do not see that as being unreasonable when the event is titled OnDidCloseTextDocument.
If this has no plan to be addressed, what is the correct method of determining that a tab of a file that has been changed is now closed as OnDidChangeVisibileTextEditors does not provide that capability.

If this has no plan to be addressed, what is the correct method of determining that a tab of a file that has been changed is now closed as OnDidChangeVisibileTextEditors does not provide that capability.

Currently there is no representation for editor tabs (aka the open editor model) in the API. You will find a tracking issue for what searching of "open editors api"

If this has no plan to be addressed, what is the correct method of determining that a tab of a file that has been changed is now closed as OnDidChangeVisibileTextEditors does not provide that capability.

Currently there is no representation for editor tabs (aka the open editor model) in the API. You will find a tracking issue for what searching of "open editors api"

A number of people appear to have reported this shortcoming.  Is it planned to provide this functionality to Extensions? The event is titled - OnDidCloseTextDocument    - and it isn;'t.
It might be working as 'expected' but isn't  working as required.

A number of people appear to have reported this shortcoming.  Is it planned to provide this functionality to Extensions? The event is titled - OnDidCloseTextDocument    - and it isn;'t.
It might be working as 'expected' but isn't  working as required.


[FEATURE] Support other (SQL / PostgreSQL) databases

Environment
Connector
Is your feature request related to a problem? Please describe.
We use PostgreSQL as our main database and I would like to avoid to run a separate mongo db cluster only for the connector.
Describe the solution you'd like
It would be great if you could support different databases. Most SQL databases support efficient document storage by now as well so it is usually quite straightforward to support them without putting too much effort in the database schema.
Describe alternatives you've considered
I guess the only alternative is to just use MongoDB?

Hi @CSNWEB,
thank you for your request. We would love to see PostgreSQL support (or in that sense any other database). However, we lack the resources do implement this in the near future.
So yes, you have to unfortunately stick with MongoDB, unless you could implement some PostgreSQL mapper on your own. Our database mappers are implemented in https://github.com/js-soft/ts-documentdb-access
Best Regards

Hello @stnmtz,
thanks for you quick answer. I had very rough look over ts-documentdb-access and I think I could implement a postgresql version of it. But it also seems like mongodb is "hardcoded" in the connector, so you / we would either have to ship my connector with the app and provide a configuration option for it or at least make it a parameter in some place so I can use it as a library (if that is even a somewhat supported use case?). I wouldn't want to fork the connector and keep up with the changes from your side.

@CNSWEB the big problem will be MongoDB query compatibility. If you can archieve that we are good to go.
We will build a switch in the connector that you can use your DB wrapper when it is finished.

Ah I see now that you actually allow arbitrary mongodb queries. That will indeed be a problem. There is this package: https://www.npmjs.com/package/mongo-query-to-postgres-jsonb which claims to convert them to postgres where conditions, but I am not sure how well that would really work. The wrapper pgmongo seems to support around 20% of all mongodb tests. Is this actually required or are most calls simpler lookups and it would be possible to use a simpler more restricted query API plus some extra methods for the really difficult cases? Otherwise supporting other databases seems to be very difficult.

Yes, the http query is translated to a mongodb query and then directly given to the find method of the mongodb.
So we will need an query compatibility with mongodb as documented in the querystring  package.

Hi  @CSNWEB!
I provided an example repo for running the Enmeshed Connector on Postgres using FerretDB which proxies MongoDB calls a postgres database.
It is in an early stage and we do not recommend using it in production but maybe it serves your needs.


feat: add release scripts for GitHub releases

Summary:
This PR adds release scripts to automate the release of react-native-visonos and publish changelog on GitHub releases. I've tried with a pre-made package called release-it but it had a conflicting dependency that made some tests fail.

I’m curious what is used for react-native-tv and Babylon? Are those too bespoke? Is there an opportunity to take what works in this repo and migrate other community repos to use it?


Overlay of different volumes in split view

Hello,
I am a bit puzzled about the behavior of overlaying of two datasets in the split view. It currently looks like this but I would really appreciate if there was a way to use transparency or obtain that behavior through code changes.
To better understand the issue see picture: https://ibb.co/fNqY1K

See

https://github.com/Kitware/vtk-js/issues/726
https://github.com/Kitware/vtk-js/issues/304

I have seen that some changes have been done to vtk-js 21 days ago. Does that code merge solve this issue? or could you give me some guidance about how to solve. we wanted to (possibly) do a demo based on glance at MICCAI...

Hi,
Are you asking for the ability to specify an opacity transfer function on
images so that some values become transparent while others are not?
Generally speaking, that is not currently implemented in vtk.js. Color
transfer functions are implemented, just not an opacity transfer function.
It seems like perhaps you want to show the binary image as a segmentation
overlay on the ultrasound image.  Right now you can volume render both
images (ultrasound and binary) simultaneously in PVG.  Otherwise, you can
use the desktop ParaView application to run marching cubes / flying edges
to create a geometric representation (vtp file) of your segmentation, and
then that geometry can be loaded with the ultrasound image.
Also, we are about to release a new version of PVG that includes
annotations, including segmentations drawn by painting.   Once the new
program is released, you'll be able to load your binary image as a mask,
and use it as a "painted" segmentation.  That includes transparency
control.   However, this update is still several weeks away from being
released.
Hope this helps,
Stephen
On Fri, Aug 3, 2018 at 4:31 PM Fausto Milletari<EMAIL_ADDRESS>wrote:

Hello,
I am a bit puzzled about the behavior of overlaying of two datasets in the
split view. It currently looks like this but I would really appreciate if
there was a way to use transparency or obtain that behavior through code
changes.
To better understand the issue see picture: https://ibb.co/fNqY1K
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Kitware/paraview-glance/issues/188, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AARErwcXLLJXf8wVt7wJJSXhqGGFLXeKks5uNLMggaJpZM4Vuk31
.

--
Stephen R. Aylward, Ph.D.
Senior Director of Strategic Initiatives, Kitware, Inc., North Carolina
http://www.kitware.com and http://www.aylward.org
(919) 969-6990 x300

Also, we are now adding an "opacity" slider for the slices.   This updates
the opacity for all of the slices for a particular dataset.  It may also
get close to what you are requesting.  We should have this ready for
nightly testing in a day or two.
Thanks,
s
On Tue, Sep 11, 2018 at 11:53 AM Stephen Aylward <
<EMAIL_ADDRESS>wrote:

Hi,
Are you asking for the ability to specify an opacity transfer function on
images so that some values become transparent while others are not?
Generally speaking, that is not currently implemented in vtk.js. Color
transfer functions are implemented, just not an opacity transfer function.
It seems like perhaps you want to show the binary image as a segmentation
overlay on the ultrasound image.  Right now you can volume render both
images (ultrasound and binary) simultaneously in PVG.  Otherwise, you can
use the desktop ParaView application to run marching cubes / flying edges
to create a geometric representation (vtp file) of your segmentation, and
then that geometry can be loaded with the ultrasound image.
Also, we are about to release a new version of PVG that includes
annotations, including segmentations drawn by painting.   Once the new
program is released, you'll be able to load your binary image as a mask,
and use it as a "painted" segmentation.  That includes transparency
control.   However, this update is still several weeks away from being
released.
Hope this helps,
Stephen
On Fri, Aug 3, 2018 at 4:31 PM Fausto Milletari<EMAIL_ADDRESS>wrote:

Hello,
I am a bit puzzled about the behavior of overlaying of two datasets in
the split view. It currently looks like this but I would really appreciate
if there was a way to use transparency or obtain that behavior through code
changes.
To better understand the issue see picture: https://ibb.co/fNqY1K
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Kitware/paraview-glance/issues/188, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AARErwcXLLJXf8wVt7wJJSXhqGGFLXeKks5uNLMggaJpZM4Vuk31
.

--
Stephen R. Aylward, Ph.D.
Senior Director of Strategic Initiatives, Kitware, Inc., North Carolina
http://www.kitware.com and http://www.aylward.org
(919) 969-6990 x300

--
Stephen R. Aylward, Ph.D.
Senior Director of Strategic Initiatives, Kitware, Inc., North Carolina
http://www.kitware.com and http://www.aylward.org
(919) 969-6990 x300

thank you for your reply. you are all really making great progress with glance. thanks for your good work and dedication!

FYI, opacity control for all slices is now in nightly for you to use.


QR Codes Tracking Distance is Limited to About 50cm

When tracking a QR code, the user has to get very close to it.
Tracking seems to be successful, when the user is about 50cm or less from the QR code.
This also applies to large QR codes (tested with 20 cm and 30cm side length).
A frequent use case of our customers is to put the QR code on the floor and in order to localize (or re-track) them, they have to crouch, which is a degradation of UX.
Is this behaviour intended?
Or is there a way to extend the tracking distance?
According to the documentation of MR QR Tracking "The detection distance for size increases linearly.", which is not what we have observed.
As additional information, the floor, which the QR code is placed on, has no pattern and a uniform color, so background noise does not seem to be the reason for this behaviour.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6572ea07-1ad5-ef4e-72de-e3f5f7e2b086
Version Independent ID: f8a7b6db-5cd3-b895-0e5f-b079b60b8394
Content: QR code tracking - Mixed Reality
Content Source: mixed-reality-docs/mr-dev-docs/develop/platform-capabilities-and-apis/qr-code-tracking.md
Product: mixed-reality
Technology: mr-dev
GitHub Login: @dorreneb
Microsoft Alias: dobrown

The distance depends on QR version ( module size),  the higher the version then the modules are smaller and can only be detected from closer. you can also try micro QR codes if you want the distance of detection to be longer. Also make sure you have enough contrast and proper border.


bcbio crashes on lsf

Upon running:
/n/data1/hms/dbmi/park/alon/software/bcbio/bin/bcbio_nextgen.py /n/data1/hms/dbmi/park/DATA/BSMCommonExperiment/ReferenceTissueProject/.Pipeline/PreProcessing/PreProcessing/config/PreProcessing.yaml -t ipython -n 256 -s lsf -q park_long -r t=4-00:00 --timeout 6000

I get the following error in ipcluster-2c58584b-4eb2-449e-96ce-eb1d78967e6b-33791.log:
2018-02-26 21:35:51.280 [IPClusterStart] WARNING | Config option `mem` not recognized by `BcbioLSFControllerLauncher`.
2018-02-26 21:35:51.290 [IPClusterStart] Starting ipcluster with [daemon=True]
2018-02-26 21:35:51.365 [IPClusterStart] Creating pid file: /n/data1/hms/dbmi/park/DATA/BSMCommonExperiment/ReferenceTissueProject/.Pipeline/PreProcessing/PreProcessing_GATK3/work/log/ipython/pid/ipcluster-2c58584b-4eb2-449e-96ce-eb1d78967e6b.pid
2018-02-26 21:35:51.370 [IPClusterStart] Starting Controller with cluster_helper.cluster.BcbioLSFControllerLauncher
2018-02-26 21:35:51.371 [IPClusterStart] adding queue settings to batch script
2018-02-26 21:35:51.371 [IPClusterStart] adding job array settings to batch script
2018-02-26 21:35:51.372 [IPClusterStart] Writing batch script: ./lsf_controller0e6a4682-fb1d-4950-8b30-fd772a521d7c
2018-02-26 21:35:51.385 [IPClusterStart] Starting BcbioLSFControllerLauncher: bsub<"./lsf_controller0e6a4682-fb1d-4950-8b30-fd772a521d7c"
2018-02-26 21:35:51.457 [IPClusterStart] ERROR | Controller start failed
Traceback (most recent call last):
  File "/n/data1/hms/dbmi/park/alon/software/bcbio/share/bcbio-nextgen/anaconda/lib/python2.7/site-packages/ipyparallel/apps/ipclusterapp.py", line 537, in start_controller
    self.controller_launcher.start()
  File "/n/data1/hms/dbmi/park/alon/software/bcbio/share/bcbio-nextgen/anaconda/lib/python2.7/site-packages/cluster_helper/cluster.py", line 226, in start
    return super(BcbioLSFControllerLauncher, self).start()
  File "/n/data1/hms/dbmi/park/alon/software/bcbio/share/bcbio-nextgen/anaconda/lib/python2.7/site-packages/ipyparallel/apps/launcher.py", line 1421, in start
    return super(LSFControllerLauncher, self).start(1)
  File "/n/data1/hms/dbmi/park/alon/software/bcbio/share/bcbio-nextgen/anaconda/lib/python2.7/site-packages/ipyparallel/apps/launcher.py", line 1402, in start
    job_id = self.parse_job_id(output)
  File "/n/data1/hms/dbmi/park/alon/software/bcbio/share/bcbio-nextgen/anaconda/lib/python2.7/site-packages/ipyparallel/apps/launcher.py", line 1111, in parse_job_id
    raise LauncherError("Job id couldn't be determined: %s" % output)
LauncherError: Job id couldn't be determined:

Also attaching log files below:
bcbio-nextgen-debug.log.txt
bcbio-nextgen.log.txt
command log is empty.
Any help here would be much appreciated.
Thanks a lot!
Alon

Alon;
Sorry about the issues and thanks for the report. IPython swallows the useful error messages here so it's hard to tell what the LSF setup does not like about the submission script if you manually run:
bsub < ./lsf_controller0e6a4682-fb1d-4950-8b30-fd772a521d7c

Does that provide a useful error message about the problem it's finding? Hope this helps identify the underlying issue.

Thanks for your help Brad! Unfortunately upon running bsub < ./lsf_controller552809f9-553e-46fc-83b8-ced31c2635e3 I get the following error: 4-00:00: Bad time specification. Job not submitted. In the file it specifies time as follows: #BSUB -t 4-00:00. I usually specify time when submitting jobs to LSF as follows: #BSUB -W 96:00 I made this edit in this file and the job was submitted. Currently waiting for this job to run and can let you know what it returns when it does!

Alon;
Thanks for helping debug, this helps me spot the issue. The submission script has:
-r t=4-00:00

which I believe got copied over from earlier SLURM runs. This SLURM specific resource specification now gets put into the LSF batch script and gives you the wrong submission parameters here. If you swap to:
-r W=96:00

bcbio will put this into your batch scripts instead. Alternatively you can just leave out the time specification if it's not requires for your LSF setup. Hope this helps.

Thanks a lot for your help Brad! Silly mistake on my end! Really appreciate it!


fix: fix rlp encoding/decoding fixed items count requirement

Purpose

How does the solution address the problem
We are now checking rlp size in both directions actual:

rlp.itemsCount() < expected_size
and also rlp.itemsCount() > expected_size

Changes made

prnet cleaned-up successfully


Update README.md

fix typo

Checklist

[ ] run npm run test and npm run benchmark
[ ] tests and/or benchmarks are included
[x] documentation is changed or added
[ ] commit message and code follows the Developer's Certification of Origin
and the Code of conduct

Thank you :)


nginx-ingress not using privileged ports

To solve https://github.com/sighupio/fury-kubernetes-ingress/issues/14
also fixed a few inconsistencies in the manifests.

What was the reason to replace single nginx test with the dual one? Just curious.

Tests finally passing, it was a transient error due to resource limitations of the testing environment.
@angelbarrera92 I switched to the double ingress to be tested because it's the one we usually deploy the most and the two pieces can not be deployed in parallel out of the box. And then I've started the modifications from the double one and the pipeline was not testing it... so... 😅

@angelbarrera92 I've seen you've added a few more staff in the ldap integration PR, feel free to integrate.


Amazon.SQS.AmazonSQSException: The security token included in the request is invalid.

I'm trying to get a .NET Core app to work with EKS new support for IAM for Service Accounts (IMDSv2 enable with the required OpenID Connect). I've followed these instructions .
This app is reading from an SQS queue and was working previously with IMDSv1 without the container annotation for OpenID Connect. AWSSDK has been updated to the latest stable which is newer than the minimum supported version specified here.
My understanding is that a token which is a Kubernetes secret is mounted and the path is stored as the environment variable AWS_WEB_IDENTITY_TOKEN_FILE. I can confirm that both the environment variable and mount exist when I describe the Kubernetes pod. According to the docs, the credential chain is meant to check if this token exists first. However, I don't think that is happening. From the logs, the initial request to retrieve the queue URL fails with "The security token included in the request is invalid".
We did log a ticket with AWS Enterprise Support, while implementing IRSA into our .NET SDK pod, but still our application was unable to manage SQS service.
During the session, Enterprise Support reviewed our IAM role and confirmed that the required permissions and Trust policy is correctly applied.
Then we confirmed that we have installed AWS CLI tool inside the same pod that contains .NET SDK code, and were able to successfully execute SQS related commands, this confirmed that the credentials token and required environment variables were successfully injected into the pod, which rules out that this is an issue from the cluster side.
Expected Behavior
AWSSDK should be able to use the provided token to access the required resources.
Current Behavior
My application logs have the following error:
RX.Services.QueueService[0]
Failed to get queue url: afs1-b-036928772765-npr-bb-bbdbnk-sqs-send-to-whatsapp
RX.Services.QueueService[0]
Amazon.SQS.AmazonSQSException: The security token included in the request is invalid
---> Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
at Amazon.Runtime.Internal.HttpHandler1.InvokeAsync[T](IExecutionContext executionContext)          at Amazon.Runtime.Internal.Unmarshaller.InvokeAsync[T](IExecutionContext executionContext)          at Amazon.SQS.Internal.ValidationResponseHandler.InvokeAsync[T](IExecutionContext executionContext)          at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)          --- End of inner exception stack trace ---          at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionStream(IRequestContext requestContext, IWebResponseData httpErrorResponse, HttpErrorResponseException exception, Stream responseStream)          at Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleExceptionAsync(IExecutionContext executionContext, HttpErrorResponseException exception)          at Amazon.Runtime.Internal.ExceptionHandler1.HandleAsync(IExecutionContext executionContext, Exception exception)
at Amazon.Runtime.Internal.ErrorHandler.ProcessExceptionAsync(IExecutionContext executionContext, Exception exception)
at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.EndpointDiscoveryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CredentialsRetriever.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
at Onboarding.Utility.IAmazonSQSExtension.CreateQueueIfQueueDoesNotExist(IAmazonSQS sqs, ILogger logger, String queueName, CancellationToken cancellationToken, Int32 delaySeconds) in C:\Projects\AWS RX\RX\Utility\IAmazonSQSExtension.cs:line 34
Environment
AWSSDK.Extensions.NETCore.Setup: 3.7.1
AWSSDK.SecurityToken: <IP_ADDRESS>
AWSSDK.SQS: <IP_ADDRESS>
.NET Core SDK: 3.1.402
Running in amazonlinux2 on EKS 1.20
Please find example solution (AWS RX.zip) used to reproduce the issue.

Hi @WesleyBuck,
Good morning.
Could you please confirm the value of environment variable AWS_WEB_IDENTITY_TOKEN_FILE in your EKS pod? I had tested the EKS setup as part of other unrelated issue https://github.com/aws/aws-sdk-net/issues/1856 and the mentioned scenario works fine.
Thanks,
Ashish

Hi @ashishdhingra,
Confirmed token is contained within the file. As per the description:
"
Then we confirmed that we have installed AWS CLI tool inside the same pod that contains .NET SDK code, and were able to successfully execute SQS related commands, this confirmed that the credentials token and required environment variables were successfully injected into the pod, which rules out that this is an issue from the cluster side.
"

Was not able to get the same error as user reported, but a different error:

Use the sample code from customer AWS RX.zip (Dockerfile might need to be tweaked to correct the path). Thereafter create the following files:
eks-cluster-create.yaml

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: eks-issue1920
  region: us-east-2
  version: "1.20"

iam:
  withOIDC: true
  serviceAccounts:
  - metadata:
      name: eks-issue1920-sqs
      # if no namespace is set, "default" will be used;
      # the namespace will be created if it doesn't exist already
      namespace: eks-issue1920-ns
      labels: {aws-usage: "application"}
    attachPolicyARNs:
    - "arn:aws:iam::aws:policy/AmazonSQSFullAccess"
  - metadata:
      name: eks-issue1920-ecr-access
      namespace: eks-issue1920-ns
      labels: {aws-usage: "application"}
    attachPolicyARNs:
    - "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
  - metadata:
      name: cluster-autoscaler
      namespace: kube-system
      labels: {aws-usage: "cluster-ops"}
    wellKnownPolicies:
      autoScaler: true
    roleName: eksctl-cluster-autoscaler-role
    roleOnly: true

nodeGroups:
  - name: "ng-1"
    tags:
      # EC2 tags required for cluster-autoscaler auto-discovery
      k8s.io/cluster-autoscaler/enabled: "true"
      k8s.io/cluster-autoscaler/cluster-13: "owned"
    desiredCapacity: 1

eks-manifest.yaml
apiVersion: apps/v1
items:
- apiVersion: v1
  kind: Service
  metadata:
    annotations:
      Process: eks-issue1920
    creationTimestamp: null
    labels:
      app: eks-issue1920
    name: eks-issue1920
  spec:
    type: LoadBalancer
    ports:
    - name: "5999"
      port: 5999
      targetPort: 5999
    selector:
      app: eks-issue1920
  status:
    loadBalancer: {}
- apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: eks-issue1920
    namespace: eks-issue1920-ns
  spec:
    selector:
      matchLabels:
        app: eks-issue1920
    replicas: 1
    template:
      metadata:
        labels:
          app: eks-issue1920
      spec:
        serviceAccountName: eks-issue1920-sqs
        containers:
        - name: eks-issue1920
          image: <<accountid>>.dkr.ecr.us-east-2.amazonaws.com/eksissue1920:latest
          ports:
          imagePullPolicy: Always #IfNotPresent
        restartPolicy: Always
kind: List
metadata: {}

NOTE: Replace <<accountid>> in above eks-manifest.yaml with your own account ID. Kindly note that image should be set to ECR image created in step 3 below.

Create the ECR repository from AWS Console. Take note of the Push commands.
From the project root directory, execute the push commands one by one:

aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin <<accountid>>.dkr.ecr.us-east-2.amazonaws.com

docker build -t eksissue1920 .

docker tag eksissue1920:latest <<accountid>>.dkr.ecr.us-east-2.amazonaws.com/eksissue1920:latest

docker push <<accountid>>.dkr.ecr.us-east-2.amazonaws.com/eksissue1920:latest

Execute the command eksctl create cluster --config-file=./eks-cluster-create.yaml to create EKS cluster. This will use configuration in YAML file to create EKS cluster, IAM OIDC provider, required service account(s) and node group(s).
Execute kubectl apply -f ./eks-manifest.yaml (to delete deployment, you may use kubectl delete -f ./eks-manifest.yaml command).
After the eks-issue1920 workload is created in cluster, click on it and take note of the Pod name. You may examine the pod status by clicking on it (it should be in Running state). (You may also list the pods from command line using command kubectl get pods --namespace eks-issue1920-ns -o wide)
(You may connect to interactive session using kubectl exec --stdin --tty --namespace eks-issue1920-ns <<podname>>  -- /bin/bash). Replace eks-issue1920-ns with your own namespace if differently set in the YAML file. Replace <<podname>> with name of pod.)
Execute the command kubectl logs <<podname>> --namespace eks-issue1920-ns to get the logs (replace <<podname>> with name of pod). (Since our console application is the entry point and is writing logs to console, this would give the trace output)
Log Output:

info: RX.Workers.WhatsAppConsumer[0]
      WhatsAppConsumer Loaded!!
info: AWSSDK[0]
      Found AWS options in IConfiguration
info: AWSSDK[0]
      Found credentials using the AWS SDK's default credential search
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://[::]:80
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /app
fail: RX.Services.QueueService[0]
      Creating queue: afs1-b-036928772765-npr-bb-bbdbnk-sqs-send-to-whatsapp
fail: RX.Services.QueueService[0]
      Failed to create queue: afs1-b-036928772765-npr-bb-bbdbnk-sqs-send-to-whatsapp
fail: RX.Services.QueueService[0]
      Amazon.Runtime.Internal.HttpErrorResponseException: Exception of type 'Amazon.Runtime.Internal.HttpErrorResponseException' was thrown.
         at Amazon.Runtime.HttpWebRequestMessage.GetResponseAsync(CancellationToken cancellationToken)
         at Amazon.Runtime.Internal.HttpHandler`1.InvokeAsync[T](IExecutionContext executionContext)
         at Amazon.Runtime.Internal.Unmarshaller.InvokeAsync[T](IExecutionContext executionContext)
         at Amazon.SQS.Internal.ValidationResponseHandler.InvokeAsync[T](IExecutionContext executionContext)
         at Amazon.Runtime.Internal.ErrorHandler.InvokeAsync[T](IExecutionContext executionContext)

Connect to pod using command kubectl exec --stdin --tty --namespace eks-issue1920-ns eks-issue1920-76b58df489-r64gb -- /bin/bash (replace eks-issue1920-76b58df489-r64gb with pod name) and execute env command to examine the environment variables:

KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=eks-issue1920-76b58df489-r64gb
AWS_DEFAULT_REGION=us-east-2
ASPNETCORE_URLS=http://+:80
AWS_REGION=us-east-2
PWD=/app
AWS_ROLE_ARN=arn:aws:iam::<<accountid>>:role/eksctl-eks-issue1920-addon-iamserviceaccount-Role1-596F68EAW9BF
HOME=/root
KUBERNETES_PORT_443_TCP=tcp://<IP_ADDRESS>:443
TERM=xterm
SHLVL=1
AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/token
KUBERNETES_PORT_443_TCP_PROTO=tcp
DOTNET_RUNNING_IN_CONTAINER=true
KUBERNETES_PORT_443_TCP_ADDR=<IP_ADDRESS>
KUBERNETES_SERVICE_HOST=<IP_ADDRESS>
KUBERNETES_PORT=tcp://<IP_ADDRESS>:443
KUBERNETES_PORT_443_TCP_PORT=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env

Confirmed that the role pointed to by AWS_ROLE_ARN environment variable had arn:aws:iam::aws:policy/AmazonSQSFullAccess attached.
TODO: May be modify client code to log verbose error going through the InnerException(s) in IAmazonSQSExtension.CreateQueue.


[7.3] Heredoc lexing will change in PHP 7.3. PHP 7.2 will fail to parse remaining statements.

PHP 7.3 will be released in November. https://wiki.php.net/todo/php73
Impact: Bad user experience when PHP 7.2 runtime is used in an IDE to parse code using PHP 7.3 heredoc (with tolerant-php-parser)
Observed: tolerant-php-parser will fail to parse remaining tokens/statements after the start of the heredoc for the below example
Desired:

If there is an unterminated heredoc (e.g. StringLiteral->endQuote is null and startQuote is HeredocStart, tolerant-php-parser will do something (when PHP 7.2 and earlier are used) to search for possible ends of heredoc preceded by whitespace.

Possible solutions:  call token_get_all("<?php\n" . $remainingText) again (adjusting offsets later), or resume parsing tokens with a slower fallback targeting PHP 7.3.
Note that this may have quadratic runtime if PHP 7.3 heredoc is used frequently.

<?php
$x = <<<EOT
   test message
    rest of message
   EOT;
echo $x;  // no EchoExpression gets parsed in PHP 7.2

https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes is the RFC.
2 other RFCs (list references in assignment and trailing commas in function calls) may also affect the parser. See https://wiki.php.net/rfc#php_73

PHP 7.2 is now in security support, which will be dropped in December 2020. This hasn't been much of an issue since flexible heredoc has been rare in practice


Add wpmudev WAF support

Which category is this pull request?

[x] A new feature/enhancement.
[ ] Fix an issue/feature-request.
[ ] An improvement to existing modules.
[ ] Other (Please mention below).

Where has this been tested?

Python Version

[x] v3.x
[x] v2.x

Operating System:

[x] Linux (Kali, ubuntu)
[ ] Windows
[ ] MacOS

Does this close any currently open issues?
[Mention any issue which this PR closes]
No
Does this add any new dependency?
[Mention if this PR includes any new library]
No
Does this add any new command line switch/argument?
[Mention if the changes add any new arguments like --arg]
No
Any other comments you would like to make?
[Anything more you'd want the reviewer to know]

Trying out the latest developments:
$ wafw00f https://premium.wpmudev.com -a

                   ______
                  /      \
                 (  Woof! )
                  \  ____/                      )
                  ,,                           ) (_
             .-. -    _______                 ( |__|
            ()``; |==|_______)                .)|__|
            / ('        /|\                  (  |__|
        (  /  )        / | \                  . |__|
         \(_)_))      /  |  \                   |__|

                    ~ WAFW00F : v2.1.0 ~
    The Web Application Firewall Fingerprinting Toolkit

[*] Checking https://premium.wpmudev.com
[+] The site https://premium.wpmudev.com is behind Cloudflare (Cloudflare Inc.) and/or wpmudev WAF (Incsub) WAF.
[+] Generic Detection results:
[*] The site https://premium.wpmudev.com seems to be behind a WAF or some sort of security solution
[~] Reason: The server returns a different response code when an attack string is used.
Normal response code is "200", while the response code to cross-site scripting attack is "403"
[~] Number of requests: 5

Trying out latest developments:
$ wafw00f https://premium.███████.com

                   ______
                  /      \
                 (  Woof! )
                  \  ____/                      )
                  ,,                           ) (_
             .-. -    _______                 ( |__|
            ()``; |==|_______)                .)|__|
            / ('        /|\                  (  |__|
        (  /  )        / | \                  . |__|
         \(_)_))      /  |  \                   |__|

                    ~ WAFW00F : v2.1.0 ~
    The Web Application Firewall Fingerprinting Toolkit

[*] Checking https://premium.███████.com
[+] The site https://premium.███████.com is behind Cloudflare (Cloudflare Inc.) and/or wpmudev WAF (Incsub) WAF.
[+] Generic Detection results:
[*] The site https://premium.███████.com seems to be behind a WAF or some sort of security solution
[~] Reason: The server returns a different response code when an attack string is used.
Normal response code is "200", while the response code to cross-site scripting attack is "403"
[~] Number of requests: 5

Thanks @TxSadhu for the work. Appreciated!


Remove unused security tests and integration_old

AFAICT these tests are no longer called from CI. They are the
only remaining tests that rely on integration_old.

@nmittler: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
c5a5c0df65ca9f0c5f36033f1e952cec8e4c505e
link
/test lint_istio

integ-mixer-k8s-tests_istio
c5a5c0df65ca9f0c5f36033f1e952cec8e4c505e
link
/test integ-mixer-k8s-tests_istio

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

/test lint_istio

@nmittler: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
c5a5c0df65ca9f0c5f36033f1e952cec8e4c505e
link
/test integ-mixer-k8s-tests_istio

lint_istio
c5a5c0df65ca9f0c5f36033f1e952cec8e4c505e
link
/test lint_istio

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

/retest

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

unit-tests_istio
c5a5c0df65ca9f0c5f36033f1e952cec8e4c505e
link
/test unit-tests_istio

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

/test unit-tests_istio

/cherrypick release-1.4

@howardjohn: new pull request created: #18522

In response to this:

/cherrypick release-1.4

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


Custom Block Interactions blocks double click

Normally, double click placing a block allows opening the action menu.
However this just doesn't happen with this enabled.

ong time to change fixcc tag to be sensible


Incompatible with firebase-ml-vision 18.0.1

Just leaving a note in case it helps others out.
The dependencies for this project are:
    // ML Kit
    implementation 'com.google.firebase:firebase-core:16.0.0'
    implementation 'com.google.firebase:firebase-ml-vision:16.0.0'

I tried with 18.0.01 instead of 16.0.0, which resulted in an error about a method not existing.
For FirebaseVisionFaceDetectorOptions.Builder,
setTypeMode(int performanceMode) was renamed to setPerformanceMode(int performanceMode)
Going back to 16.0.0 worked fine.
Thanks Husayn for the library and blog post! Cheers.

Hi @edwinckc. Thanks for pointing that out, a new release (v1.2) was just made with the updated dependencies.


Broken link to assets

The link on download page to the AI sticker sheet is broken:
http://grommet.io/assets/latest/grommet_sticker_sheet.ai
Cannot GET /assets/latest/grommet_sticker_sheet.ai
Other download assets also appear to be broken.

Sorry about that. This has been fixed by d82ffb.


Cannot read property 'client' of undefined in config.client

Having trouble debugging this. config is undefined (see below error log). Unclear where to go from here. I am on a AWS vm. Works fine with same versions of all tools on Mac locally.
I've gotten roped into what I assume are red herrings, incl. removing node_modules, reinstalling, using different versions of npm, etc.
$ npm start

> ch-courtsms@ start /home/ubuntu/ch-courtsms
> nodemon server/app.js --ignore node_modules/

[nodemon] 1.9.1
[nodemon] starting `node server/app.js`

/home/ubuntu/ch-courtsms/node_modules/knex/lib/index.js:17
  if (arguments.length === 0 || !config.client && !config.dialect) {
                                       ^

TypeError: Cannot read property 'client' of undefined
    at Knex (/home/ubuntu/ch-courtsms/node_modules/knex/lib/index.js:17:40)
    at Object.<anonymous> (/home/ubuntu/ch-courtsms/server/db.js:4:27)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (/home/ubuntu/ch-courtsms/server/app.js:8:11)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:142:18)
    at node.js:939:3
[nodemon] app crashed - waiting for file changes before starting...

Issue was not related to knex

hi @kuanb - I'm facing the same issue with an amazon vm - could you let me know how you debugged this issue?
Thanks in advance!

For posterity:
Actually found the issue - this issue rises up when knex doesn't find an environment in which it needs to run. Usually, you require knex this way:
const knex = require('knex')('production')

The error @kuanb and I ran into is due to requiring knex without an environment.
My case: I was using a node environment variable instead of a string to define 'production'. To run my instance on EC2, I was using forever.js, which doesn't run node with environment variables. As such, made knex generate this error! Hope this solves your issues!

Hey Guys,
I'm having some trouble fixing a similar issue with mocha :
C:\Jenkins\workspace\management-console-backend>mocha tests\unit --reporter mocha-junit-reporter
c:\users\sys_aimsengr\AppData\Roaming\npm\node_modules\knex\lib\index.js:17
if (arguments.length === 0 || !config.client && !config.dialect) {
^
TypeError: Cannot read property 'client' of undefined
at Knex (c:\users\sys_aimsengr\AppData\Roaming\npm\node_modules\knex\lib\ind
ex.js:17:40)
at Object. (C:\Jenkins\workspace\management-console-backend\tests
\unit\database-migration.js:51:27)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at C:\Users\sys_aimsengr\AppData\Roaming\npm\node_modules\mocha\lib\mocha.js
:220:27
at Array.forEach (native)
at Mocha.loadFiles (C:\Users\sys_aimsengr\AppData\Roaming\npm\node_modules\m
ocha\lib\mocha.js:217:14)
at Mocha.run (C:\Users\sys_aimsengr\AppData\Roaming\npm\node_modules\mocha\l
ib\mocha.js:469:10)
at Object. (C:\Users\sys_aimsengr\AppData\Roaming\npm\node_module
s\mocha\bin_mocha:404:18)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
Mv knex has been required in this fashion :
var knex = require('knex')({
client: 'mysql',
debug: false,
connection: process.env.MYSQL_URI || appEnv.getServiceCreds(process.env.MYSQL_SERVICE_NAME || config.mySqlServiceName).uri || config.db || ''
});
Please let me know your if you guys have a solution for this.
Thanks

Sorry, but I really don't understand the question here.

the stack trace tells you that the config variable used in line 17 of c:\users\sys_aimsengr\AppData\Roaming\npm\node_modules\knex\lib\index.js is undefined
taking a look at that file shows you that the config variable is a parameter to the Knex function (constructor for the main knex object I assume), so this function is getting called with no or an undefined parameter
taking another look at the stack trace again, this function is being called from C:\Jenkins\workspace\management-console-backend\tests\unit\database-migration.js, line 51

Now that code is yours and you should take a look in there to see what it is you are passing in when constructing the knex object in question.
If I had to guess, my gut feeling is that you are messing up code that runs at application startup with code that runs just before each test and ending up calling the knex function at startup and passing it in a variable that only gets set before each test.


include white bunny logo as favicon in Docker image

Is your feature request related to a problem? Please describe.
When opening multiple tabs in my Safari browser, I navigate around by the favicons of each tab.
As of now, the Docker image uses a green laser / chart- thingy for speedtest-tracker.
Describe the solution you'd like
Same as https://speedtest-tracker.dev/ does: make the Docker container use the white bunny as logo i.e. favicon

I think that might be some browser caching as the favicon is set in the application.
Ref: https://github.com/alexjustesen/speedtest-tracker/blob/main/public/favicon.ico

yes, youre right. I tried to rule this out before posting here: hit refresh a dozen times. Cleared the browser cache. But Safari on iOS keeps on misbehaving (!).
Tried with Google Chrome now, works as it should.

Safari is the new IE


Feedback: Removed unused/unreachable code

Removed two unused defines  and a unused value.
Further there is some unreachable code that needs to be looked at.
Do not merge, to be discussed.

We should fix the missing unref of the udev objects, instead of just adding a FIXME - preferably as one patch removing the unused code and a separate that fixes the udev handling.
If you update your patch accordingly I would be very happy to merge it!
Thanks,
Bjorn