MSID: 91849 Version: 2 DOI: 10.1101/2<IP_ADDRESS>96453

MSID: 91849
Version: 2
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>96453
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=91849
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>96453

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/91849v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>96453
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/91849/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

error: [journal-ref-article-title] This journal reference (id c135) has no article-title element.
warn: [mixed-citation-other-publication-flag] mixed-citation in reference (id=c96) has a publication-type='other'. Is that correct?
warn: [table-wrap-label-fig] Label for table ('Figure 2 – table supplement 1.') starts with text that suggests its a figure. Should this content be captured as a figure instead of a table?
warn: [table-wrap-label-fig] Label for table ('Figure 2 – table supplement 2.') starts with text that suggests its a figure. Should this content be captured as a figure instead of a table?
warn: [table-wrap-label-fig] Label for table ('Figure 7 – table supplement 1.') starts with text that suggests its a figure. Should this content be captured as a figure instead of a table?


Improve Test Coverage

Improve Test Coverage

Coverage increased (+6.3%) to 24.257% when pulling 56d9c995bbf45318e6dc607c072c792b5b6ff982 on ahmedmgamal:master into 6d0b3b76f523a9379ca0e5dbf16a8526392c2256 on experiandataquality:master.

Thank you @ahmedmgamal!


Do not inherit socket handles

#2789 If the accept socket's handle gets inherited by child processes, then it's not fully closed until all of the child processes are closed.
Connected sockets don't seem to be affected.

@dotnet-bot test Windows Debug x64 Build
@dotnet-bot test Windows Release x64 Build

@dotnet-bot test OSX 10.12 Debug x64 Build
@dotnet-bot test OSX 10.12 Release x64 Build

@dotnet-bot test Windows Debug x64 Build

Hmm, the Listen test fails on Mac sockets, and the Connection test fails on Windows Libuv.
@dotnet-bot test OSX 10.12 Debug Build
@dotnet-bot test OSX 10.12 Release Build
@dotnet-bot test Windows Debug x64 Build
@dotnet-bot test Windows Release x64 Build

Ok, I tracked down the Mac issue.
The linux equivilent of what we did on windows is https://legacy.python.org/dev/peps/pep-0433/#socket-socket
But these APIs doen't exist on MacOS, or at least didn't exist a few years ago when other frameworks were dealing with this.
https://github.com/rust-lang/rust/issues/24237
https://github.com/libuv/libuv/blob/81c77427afb39b6fa6c0ecffdc1c1e2b3dde7aea/src/unix/core.c#L417-L424
Regardless, those workarounds primarily pass a flag to the socket constructor which we cannot do.
I'm going to go back to skipping this test on Mac since we don't have a way to fix it there. Still need to figure out what's flaky with Windows Libuv.

On mac and Linux corefx does this by default: https://github.com/dotnet/corefx/blob/master/src/Native/Unix/System.Native/pal_networking.c#L1292-L1307
Perhaps corefx should do this for Windows sockets too?
The best implementation is when you can pass the flag when you create the socket. Otherwise there is a race-condition when someone creates a child between socket construction and setting the flag.

@tmds what's the expected behavior of FD_CLOEXEC? From the name it sounds like close-on-process-exit. It isn't working in my Mac tests (currently disabled). Note my tests don't close the parent process, only the socket in the parent process.

Cloexec causes the handle not to be inherited by child processes. Exec refers to the system call to execute a program. When the child process execs, that handle is closed for the child.

When the child process execs, that handle is closed for the child.

Ah, but the duplicated handle remains open in the parent process even if I close the original Socket? That would explain why it's not working on Mac, but doesn't explain why Linux is working.

The listen socket is not duplicated to the children, so when the parent closes it, the server is no longer accepting connections. That explains why it works on Linux. I don't know why it doesn't work on Mac. Mac has limited cloexec apis compared to Linux. Maybe some things are not really supported.
For Windows, I think it makes sense that corefx sockets by default are not inherited by children.


Update about.hbs

Should I add myself to authors list or not (don't know how authors work in here haha)?

Awesome and thank you guys!
I already added you to contributors @GuillaumeGomez and @Mark-Simulacrum, thanks again.
I hope this page is enough, idk what else to mention.


#8 ES6 updates

#8

This is great! Thanks for your time on this. I've addressed most of your issues but the travis one. One moment...

Nice! Why do you need es6-shim? That would only extend prototype chains to fit ES6 interfaces. I don't think it is necessasy

Another minor last change would be using const instead of var statements.


sarasa-gothic: 0.37.0 -> 0.37.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/sarasa-gothic/versions.
meta.description for sarasa-gothic is: "A CJK programming font based on Iosevka and Source Han Sans"
meta.homepage for sarasa-gothic is: "https://github.com/be5invis/Sarasa-Gothic"
meta.changelog for sarasa-gothic is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.37.1 with grep in /nix/store/6v3qy71ac7a719cv63rp43sydxlsrb31-sarasa-gothic-0.37.1
found 0.37.1 in filename of file in /nix/store/6v3qy71ac7a719cv63rp43sydxlsrb31-sarasa-gothic-0.37.1

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
sarasa-gothic

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6v3qy71ac7a719cv63rp43sydxlsrb31-sarasa-gothic-0.37.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/6v3qy71ac7a719cv63rp43sydxlsrb31-sarasa-gothic-0.37.1
ls -la /nix/store/6v3qy71ac7a719cv63rp43sydxlsrb31-sarasa-gothic-0.37.1/bin

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

1 package built:

sarasa-gothic

Maintainer pings
cc @ChengCat for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/sarasa-gothic/versions.
meta.description for sarasa-gothic is: "A CJK programming font based on Iosevka and Source Han Sans"
meta.homepage for sarasa-gothic is: "https://github.com/be5invis/Sarasa-Gothic"
meta.changelog for sarasa-gothic is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.37.4 with grep in /nix/store/izh7dhwm1kzrng26hqqjg9qz12virk75-sarasa-gothic-0.37.4
found 0.37.4 in filename of file in /nix/store/izh7dhwm1kzrng26hqqjg9qz12virk75-sarasa-gothic-0.37.4

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
sarasa-gothic

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/izh7dhwm1kzrng26hqqjg9qz12virk75-sarasa-gothic-0.37.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/izh7dhwm1kzrng26hqqjg9qz12virk75-sarasa-gothic-0.37.4
ls -la /nix/store/izh7dhwm1kzrng26hqqjg9qz12virk75-sarasa-gothic-0.37.4/bin

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

1 package built:

sarasa-gothic

Maintainer pings
cc @ChengCat for testing.


test(examples): Add CI automation that tests the examples directory

It will make the examples directory easier to maintain.

Closing as folder does not exist


Add serialization support for TableScan and TableWrite plan nodes

Description
#4301 and #4398 added serialization support to most plan nodes. We need to add that to TableScan and TableWrite plan nodes.
CC: @duanmeng @kgpai

I have read your previous PRs and related codes. I understand that the SerDe (serialize & create) of PlanNode encodes the class member variables into an object during serialization, and reconstructs the object by extracting the member variables from the JSON during deserialization.
Upon examining the code of TableScanNode and TableWriteNode, I found that to implement their SerDe, in addition to a few enum classes, it is necessary to implement the SerDe of ConnectorTableHandle, HiveTableHandle, ColumnHandle, common::Subfield, common::Filter, HiveColumnHandle, LocationHandle, etc., among which they mainly depend on the SerDe of common::Subfield and common::Filter. Subfield depends on implementing 4 subclasses' SerDe, while Filter depends on 20 subclasses' implementation.
Therefore, I suggest splitting this requirement into 3 PRs

[ ] Add serialization support for common::Subfield and common::Filter,
[ ] Add serialization support for TableScan plan node,
[ ] Add serialization support for TableWrite plan node.

@mbasmanova Do you think these are correct and the plan is reasonable?
The following is a rough summary of the dependency graph，
TableScanNode dependency graph
graph TD

root(TableScanNode) --> L1-1(PlanNodeId: std::string)
root --> L1-2(RowTypePtr)
root --> L1-3(ConnectorTableHandle)
root --> L1-4(string -> ColumnHandle
)
L1-3 --> L2-3(HiveTableHandle)
L1-4 --> L2-4(ColumnHandle)
L2-3 --> L3-1(connectorId: string)
L2-3 --> L3-2(tableName: string)
L2-3 --> L3-3(filterPushdownEnabled: bool)
L2-3 --> L3-4(SubfieldFilters

Subfield -> Filter)
L2-3 --> L3-5(TypedExprPtr)
L3-4 --> L4-1(common::Subfield)
L3-4 --> L4-2(common::Filter)
L3-5 --> L4-3(TypedExprPtr::serialize)
L2-4 --> L3-6(name: string)
L2-4 --> L3-7(ColumnType: enum)
L2-4 --> L3-8(Type)
L2-4 --> L3-9(Subfield list)
L3-9 --> L4-4(SubfieldKind: enum)

TableWriteNode dependency graph
graph TD

root(TableWriteNode) --> L1-0(PlanNodeId)
root --> L1-1(RowTypePtr)
root --> L1-2(string vector)
root --> L1-3(InsertTableHandle)
root --> L1-4(CommitStrategy)
root --> L1-5(PlanNode)
L1-3 --> L2-1(connector::ConnectorInsertTableHandle
HiveInsertTableHandle)
L2-1 --> L3-1(HiveColumnHandle)
L2-1 --> L3-2(LocationHandle)
L3-2 --> L4-5(enum TableType)
L3-2 --> L4-6(string)
L3-2 --> l4-7(string)
L3-1 --> L4-1(string)
L3-1 --> L4-2(enum ColumnType)
L3-1 --> L4-3(TypePtr)
L3-1 --> L4-4(Subfield vector)
L4-4 --> L5-1(common::Subfield)
L4-4 --> L5-2(common::Filter)

common::Subfield & common::Filter dependency graph
graph TD

root(common::Subfield) --> L1-1(PathElement)
L1-1 --> L2-1(AllSubscripts)
L1-1 --> L2-2(NestedField)
L1-1 --> L2-3(LongSubscript)
L1-1 --> L2-4(StringSubscript)

graph LR

root(common::Filter)
root --> L1-0(AlwaysFalse)
root --> L1-1(AlwaysTrue)
root --> L1-2(IsNull)
root --> L1-3(IsNotNull)
root --> L1-4(BoolValue)
root --> L1-5(BigintRange)
root --> L1-6(NegatedBigintRange)
root --> L1-7(HugeintRange)
root --> L1-8(BigintValuesUsingHashTable)
root --> L1-9(BigintValuesUsingBitmask)
root --> L1-10(NegatedBigintValuesUsingHashTable)
root --> L1-11(NegatedBigintValuesUsingBitmask)
root --> L1-12(AbstractRange)
root --> L1-13(FloatingPointRange)
root --> L1-14(BytesRange)
root --> L1-15(NegatedBytesRange)
root --> L1-16(BytesValues)
root --> L1-17(BigintMultiRange)
root --> L1-18(NegatedBytesValues)
root --> L1-19(MultiRange)

@duanmeng Sounds good to me. Note that Subfield can use Subfield->toString() and Subfield::create() methods for serde.

@duanmeng Sounds good to me. Note that Subfield can use Subfield->toString() and Subfield::create() methods for serde.

@mbasmanova Got it, thanks. It turns out that Subfield already naturally supports SerDe, we can directly use the serialized result produced by Subfield->toString(), and use its constructor Subfield(const std::string& path) to deserialize/reconstruct the same Subfield object.
I will close #4635 and move on to #4648.


Collection-Header

@erinkelley27
Hello Erin,
I created a PR for the desktop version of the collection header, using that branch. However I am not sure if you were able to see the mobile version as that branch is not available for me to do a PR on.

@mamady310 Can you assign me as the reviewer on the PR?


Is bounded actions example ok?

Hi, I've just jumped into Redux and like it very much so far.
Not sure if I understand completely how it works, but in Actions there is section about bounded action creator

Alternatively, you can create a bound action creator that automatically dispatches:
const boundAddTodo = (text) => dispatch(addTodo(text))
const boundCompleteTodo = (index) => dispatch(completeTodo(index))
If I understand correctly that is possible because of redux-thunk which has to be registered as middleware. And if so, shouldn't it be then be:
const boundAddTodo = (text) => (dispatch) => dispatch((addTodo(text)))

Babel try it

This has nothing to do with Redux Thunk. The term 'bound action creator' refers to the result of composing dispatch and an action creator. When this function is called it automatically dispatches the action creator. Passing this function to components allows them to be decoupled from dispatcher and actions.
It would look like this:
const boundAddTodo = (text) => dispatch(addTodo(text)) <Todo onClick={boundAddTodo}  />

This is an example from early version of docs and isn’t very relevant today.
Maybe we should just remove it as it confuses people.
Yes, the original point was to show that addTodo() by itself doesn’t do anything and you need to call dispatch(addTodo()) to actually cause the action to happen. At which point you can “bind” it to a certain dispatch function so you can just addTodo(). You can do this by hand, with bindActionCreators(), or you can use React Redux which does this for you.


Feature Comparison outdated

In the Feature Comparison is stated, that junipter has no async.
But that was added in its 0.15 release.
I would link to its Changelog.md, but it has no change log.

Thank you for your reminder, I will update it. 🙂

Thank you for your reminder, I will update it. 🙂


Support generic OIDC

Description
Please describe the change you have made.
Checklist:

[ ] Tests added/updated.
[ ] Documentation updated.
[ ] Changelog updated in CHANGELOG.md.
[ ] Version bumped. If triggering a new release is desired, bump the version number in
version.py and
pyproject.toml per semantic versioning.
[ ] Regenerate example SDK export PYTHONPATH=. && python dev.py generate. Need to be run both
for pydantic v1 and v2 environments.

The CLI becomes somewhat confessing when there are a lot of arguments and you only need some combination of them.
What about just having them read from a toml and use a login_flow variable to make it explicit which one you are using?

Seems a bit cumbersome to require a toml, but as long as I can use AUTH0 it's fine by me.

Alternatively also support loading from environment variables? (I plan to add that to the SDK)

The SDK used to have env variable support, but it was removed a few versions back. You can talk to Erlend on the why I guess.


For redisAsyncContext, user or hiredis itself is reponsible for freeing the context with error?

in example-libevent.c, below code already has a note mentioning there will be a leak here.
If real product, we may try different destinations, then free the contexts with error(e.g. unreachable IP) and use the available ones.
But who should be responsible for freeing this context with err?
If let hiredis user take the job, there will be many issues since some cases the context was freed by hiredis but user didn't know that and continue to use it.
Code:
redisAsyncContext c = redisAsyncConnect("<IP_ADDRESS>", 6379);
if (c->err) {
/ Let *c leak for now... */
printf("Error: %s\n", c->errstr);
return 1;
}

my experiences：
redisAsyncContext c = redisAsyncConnect(...)
if(NULL==c) return;
if(c->err)
{
    ////user should free it
    return;
}

void connect_callback(c, status)
{
    if(status!=REDIS_OK)
    {
        //let it go, hiredis will free *c
        return
    }
    else
    {
        //user should free it
        return
    }
}

Thanks! @echoma


Fix transitive reverse dependencies

Map and Set key equality is on object identity (===) and equivalent PackageIds aren't unique.

Key reverseDependencies on packageIdToKey()
Within reverseDependencies use identical PackageIds
In getReverseDependencies() replace Set<PackageId> with PackageId[]

Keying on packageIdToKey() is for equivalence between PackageIds in the allTypings() loop and those from dependencies and testDependencies. https://github.com/microsoft/DefinitelyTyped-tools/blob/9bf721d46e2ad69d49328207fb8ecd47a78f6568/packages/definitions-parser/src/get-affected-packages.ts#L89-L93
Within reverseDependencies, ensuring identical PackageIds among just values is trivial, but between values and keys is awkward.
Given packageIdToKey() keys, the purpose of identical PackageIds among values is to deduplicate the transitiveClosure() result, and avoid duplicate work. https://github.com/microsoft/DefinitelyTyped-tools/blob/9bf721d46e2ad69d49328207fb8ecd47a78f6568/packages/definitions-parser/src/get-affected-packages.ts#L50-L73
typing.id is a getter, so repeated accesses are distinct. https://github.com/microsoft/DefinitelyTyped-tools/blob/9bf721d46e2ad69d49328207fb8ecd47a78f6568/packages/definitions-parser/src/packages.ts#L222-L224
But just among reverseDependencies values, ensuring identical objects is trivial because we add each distinct PackageId in exactly one allTypings() iteration, so just access typings.id once per iteration.
So using Set for getReverseDependencies() map values is ineffective but also superfluous, because distinct PackageIds correspond to individual allTypings() iterations, and within each iteration dependencies and testDependencies are already deduped. Therefore replace Set<PackageId> with PackageId[].
Fixes #69

With the new monorepo stuff in place, I think that this one can be closed; all dependency stuff is now explicit and parsed via pnpm.


Core: Add test method to hooks object.

Provides an alias for QUnit.test to allow a more natural, nested nested api; this allows the author to write their tests as follows:
QUnit.module('action/example', t => {
    t.beforeEach(/* ... */);
    t.test('it should be awesome', assert => {
    	assert.ok(true, 'rock and roll!');
    }
})

The downside I can see to this change is that it moves the existing convention away from the t / hooks argument being solely based around adding module hooks, however I feel there is a real benefit from not having to constantly write QUnit everywhere :grin:
Thanks!

Ah sorry, you are already discussing this feature in #978.  Thanks again for your hard work on this awesome library.

thank you, @jonnyreeves!
Hooking the test on the callback arguments is the easiest part, the complexity comes registering the children tests as part of their parents. That's the biggest challenge at #978, I assume.


[BUG] Register-PnPEntraIDApp Hanging

Reporting an Issue or Missing Feature
I'm attempting to create a certificate per the instructions here (https://pnp.github.io/powershell/articles/registerapplication.html) and nothing appears to happen. The command I'm running is:
$result = Register-PnPEntraIDApp -ApplicationName "PnP" -Tenant tenant.onmicrosoft.com -OutPath $path -DeviceLogin
I'm on version 2.12 and using PS 7.4.5.
Expected behavior
I expect to be prompted a link and code to approve the app in Azure as described in the link above,
Actual behavior
I receive a warning that the command is using default scopes/permissions (which is fine to start with) and then nothing happens. I've tried multiple times over the course of two days and have let it sit upwards of 30 minutes. Have also tried running as admin.

Steps to reproduce behavior
Please include complete script or code samples in-line or linked from gists
$result = Register-PnPEntraIDApp -ApplicationName "PnP" -Tenant tenant.onmicrosoft.com -OutPath $path -DeviceLogin
What is the version of the Cmdlet module you are running?
(you can retrieve this by executing Get-Module -Name "PnP.PowerShell" -ListAvailable)
Register-PnPEntraIDApp. I also tried running Register-PnPAzureADApp with the same results.
Which operating system/environment are you running PnP PowerShell on?

[X] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

Can you try with the latest nightly build and let us know ? We fixed this issue in there.

Thanks for the quick reply. The nightly version resolved this issue.


Kern import fix

This PR addresses issues #158 and #159 and other minor bug fixes.

Codecov Report
Base: 80.59% // Head: 80.55% // Decreases project coverage by -0.04% :warning:

Coverage data is based on head (d5fa5f9) compared to base (d1bee81).
Patch coverage: 46.15% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #160      +/-   ##
===========================================
- Coverage    80.59%   80.55%   -0.05%
===========================================
  Files           63       63
  Lines        10278    10289      +11
===========================================
+ Hits          8284     8288       +4
- Misses        1994     2001       +7

Impacted Files
Coverage Δ

partitura/score.py
79.55% <ø> (ø)

partitura/utils/music.py
68.22% <40.00%> (-0.22%)
:arrow_down:

partitura/io/importmusicxml.py
74.04% <42.85%> (-0.36%)
:arrow_down:

partitura/io/importkern.py
85.80% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


No annotation after close inkscape/quit

Hi,
First of all thanks for the app. I seems to be a great idea to offload the editing by inkscape and have all its power while the app manage the rest though I couldn't achieve this yet.
I did this workflow:

Open a PDF with PDFrankenstein and subsequently the inkscape opens and I did my annotations
I save and close the document inside inkscape and came back to PDFrankenstein, nothing there. The whole app is inactive.
I did quit inkscape, automatically PDFrankenstein also quits
As I open the pdf there is no annotation there.

Have I missed something here?

That's not good! Can you run the app in the terminal and see if you get any errors in there that can help. Also, can you paste the output of uname -r and inkscape --version.

Sorry for late response, I just install the newer version and did the same this time and everything worked seamlessly. Thanks for the great app.

Sorry for late response I loose interest for a while in the solution, however I just install the newer version and did the same this time and everything worked seamlessly. Thanks for the great app.

uname -r: 5.18.14
inkscape --version: Inkscape 1.2.1

No problems. Thanks for the update.


Add a way to ignore adding an empty table to schema

A few people have been asking for this, our default answer has been that it doesn't have any performance impact. I'm thinking its a aesthetic thing while looking at your data.

We could just hide objects with no columns in the browser.

Might not work for situations where people are testing the browser but haven't added any data yet. I could see that situation being odd

I think you misunderstood - objects with no objects but with columns would show up. Only object without any properties would be hidden.

:+1:


Commercial use

Am i allowed to use this bootloader on a small run of microcontroller boards if credit is given and a link to this github provided?

Hey, yes you can use this for commercial use. Please read the GPL 3.0 license.


Evaluate JIT'd expression over arrays

Which issue does this PR close?

Related to https://github.com/apache/arrow-datafusion/issues/2122
Rationale for this change

This PR tries a way to perform JIT'd computation over Arrow array.
As I understand, we have (at least) two ways to JIT the query execution. One is to glue all the low-level compute functions together (those in arrow compute kernel), and another is this PR, which tries to perform all the computation in the JIT engine.
The first way is easier to implement (compared to the second one). And can get performance improvement from eliminated dispatch and branch. However, the second fully compiled way will take lots of effort as it requires a JIT version of compute kernel. Gandiva in Arrow C++ is an LLVM-based compute kernel that might help, but I'm not very familiar with it. Whatever, being able to combine both ways should be a better situation :laughing:.
Back to this PR, it will generate a loop like @Dandandan presented here. I haven't inspected whether the compiler will vectorize it. Currently, it only wraps over one expr, but we can explore the possibility to compile multiple plans into one loop like here. The row format for pipeline breaker is also significant to fully JIT.
This PR only implements a very early stage "example" with many hard-code like types and fn sig. Please let me know what do you think of it!
What changes are included in this PR?

Are there any user-facing changes?

This looks very cool @waynexia  -- I will give it a good look tomorrow.

The first way is easier to implement (compared to the second one). And can get performance improvement from eliminated dispatch and branch. However, the second fully compiled way will take lots of effort as it requires a JIT version of compute kernel

The other reason that JIT execution for DataFusion is interesting is due to a few operations which are fundamentally row-oriented (and thus not amenable to vectorized execution), the key being a multi-tuple comparison (not just equality) which appears in sorting, grouping, and joining)

I got this from compiled function:
function u0:0(i64, i64, i64, i64) system_v {
block0(v0: i64, v1: i64, v2: i64, v3: i64):
    v11 -> v0
    v14 -> v1
    v17 -> v2
    v6 -> v3
    v4 = iconst.i64 0
    jump block1(v4)

block1(v5: i64):
    v7 = icmp slt v5, v6
    v8 = bint.i64 v7
    brz v8, block3
    jump block2

block2:
    v9 = iconst.i64 8
    v10 = imul.i64 v5, v9
    v12 = iadd.i64 v11, v10
    v13 = load.i64 v12
    v15 = iadd.i64 v14, v10
    v16 = load.i64 v15
    v18 = iadd.i64 v17, v10
    v19 = iadd v13, v16
    store v19, v18
    v20 = iconst.i64 1
    v21 = iadd.i64 v5, v20
    jump block1(v21)

block3:
    return
}

It just looks like a bare translation of what we build. So I suspect the vectorization is not done here (after translation). Further, I find this I64X8 type from the document (we are currently using I64). Perhaps this means that we need to manually vectorize our computation.

I think it is important to understand what cranelift is, and what it isn't. Cranelift is a code generator originally intended to take optimised WASM and convert it to native code. It is not an optimising compiler like LLVM.
I could see it being very well suited for doing runtime monomorphisation, i.e. removing conditional branches. I think it will struggle to out-perform the kernels in arrow-rs, some of which are hand-rolled and all of which benefit from LLVM compilation.

Thanks for all the reviews and information!

I think it is important to understand what cranelift is, and what it isn't. Cranelift is a code generator originally intended to take optimised WASM and convert it to native code. It is not an optimising compiler like LLVM.

That makes sense. I could see a long way to implement this JIT framework and (another long way) to make it outperform the existing interpreter executor 🤣

I wonder why you chose the name deref rather than store? The underlying cranelift library seems to use load and store which I think are the more common terms in compilers for what Rust terms deref

I also have hesitated at the naming, but have now changed it to load().

I also agree with @tustvold  that in general it will be very hard to beat the performance of using the optimized, vectorized kernels in arrow-rs and in general I think we should continue to use them whenever possible.
As I mentioned in https://github.com/apache/arrow-datafusion/pull/2587#issuecomment-1133954002 I think the super valuable usecase for JIT'ed Exprs is for operations that can't easily (or at all) be vectorized, namely those doing multi column comparisons during Merge / Group


Update ruby version to 2.4.3

test this please

test this please

test this please

test this please

test this please


Possibility to have all positive 'd' values

Hello.
I really like this repository. It is very useful when there is a requirement to run some kinematic analyses with the DH parameters of the robot. For the DH parameters, the z-axes of joints could be inverted without affecting the model of the robot. However, it would be perfect to have the z-axis perfectly aligned with the joint axes. Would it be possible to obtain DH parameters such that all z-axes are perfectly aligned (all 'd' values to be positive)?

Thanks for checking out my repository and suggesting an interesting use case. I have not done any development in this repo in a long time now and am not sure when I would pick it up again.
I would very much welcome any PRs though and would be willing to help get them merged.


use new reload service result event instead of reload.ended

Checklist

[ ] tests added
[x] commits conform to the Commit message format
[ ] documentation updated

Squash commit message
Use new result event for reload instead of reload.ended.
Info
This is still not in an eventing release, (and thusly not yet tested). Will wait for new eventing version before testing/merging.

Guess this is still wip with all commented lines of code. Otherwise things look good!

well kind of, it's currently broken due to changes in eventing service, but we want to re-add it.


Make all assets svgs

Turn all the lil arrow and other graphic assets into SVGs

@johnlewissims
I can export all of these as SVGs but not sure about the best way of swapping them out. Should I just do that on my side or should we do the swap once its been pushed to the server?
I'm concerned about file names and structures .

Symbiosis Svg.zip
@johnlewissims
Let me know what you think the best practice is for getting these svgs in the site :)


sandbox outsourcing

Hey,
I saw that you've ported parts of the sandbox to c++ to fix issue https://github.com/gf3/sandbox/issues/29 . Yeah, that's great!
I'm currently researching for a sandbox solution, and apart from engine.js https://github.com/rehanift/engine.js (which is not so active at the moment and doesn't run on windows) i didn't find any other good alternatives to gfs3s sandbox.
Do you have any plans to separate the sandbox from your main repo, sending a pull request or creating a custom fork of gf3s sandbox? I would love to use your implementation as it seems like you're repo has more activity and updates can be done more frequently.
I would also love to contribute some extra functionality like an api layer such as https://github.com/gf3/sandbox/pull/22 to the sandbox but right now i'm missing a good and active starting point.

:+1:

+1

+1


IPsec: fix overview page for AES-CGM

AES-CGM as this is a cipher with authenticity. Therefore the IPsec overview page is currently rendered wrong:

This PR fixes this.

To discuss:

Shall we display aes-gcm also in the Auth. alg. column?

@AdSchellevis I fixed this with minimal effort. Or do you see any advantage in putting some love into the legacy code within etc/inc/plugins.inc.d/ipsec.inc?

@AdSchellevis I fixed this with minimal effort. Or do you see any advantage in putting some love into the legacy code within etc/inc/plugins.inc.d/ipsec.inc?

That probably depends, it's also a simple candidate to wrap into a python script and push it to a configd call

First version of MVC implementation of SPD and SAD pages. Legacy pages still exist, but are not linked in the menu.

@AdSchellevis There is now one page showing both database in two different tabs:

But currently there are two separate ACLs for SAD and SPD access:
https://github.com/opnsense/core/blob/fb041467bf17155b1736b42c8e65a769f984d0b1/src/opnsense/mvc/app/models/OPNsense/IPsec/ACL/ACL.xml#L64-L75
How to solve this?

Merge both ACLs - how to migrate? Does the model migration concept also work for ACLs?
Separate the two pages

IMO status, leases and these two are all the same. As for supporting legacy ACL design maybe keep all of them but support all pages for it in each? If people need more fine-grained ACLs they can create them. The GUI should in these cases not render the contents without an error except for displaying no permission or disabling the tab? I don’t think we had this luxury problem before but seems worth solving for future GUI flexibility and MVC conversions.
Cheers,
Franco

PS: in a major iteration we can get away with spitting ACLs in non-compatible way but that would already be 22.7 release since we’re almost done with 22.1.

IMO status, leases and these two are all the same.

Agree. I've extended this PR and reworked all these pages, except the leases.

I'd have a general design question: where to put pagination and filter logic? In the API controller or the backend script providing the actual data?
I've seen e.g. in scripts/filter/list_states.py that pagination and filtering is in the backend script, but from my opinion that's something which would better fit in the API controller. Was there a specific reason (e.g. performance when many states are active) to put this functionality into the backend script in that case?
I think having pagination in the script clutters the core functionality of the script. It also duplicates code, as this logic could even be shifted to the ApiControllerBase.

I'm still considering moving the pagination logic to the ApiController to clean up src/opnsense/scripts/ipsec/list_status.py.

@8191 I was away last week, so a bit late in responding on this ticket.
About the ACL for these edge cases, I wouldn’t worry too much, if we merge two pages into one which makes sense for a functional perspective, we can ditch the old ones and add a new one. If for some reason someone really only wants to grant access to a single topic, we can always discuss options then. Most people probably allow all IPsec or are looking at these pages as admin users anyway.

I'd have a general design question: where to put pagination and filter logic? In the API controller or the backend script providing the actual data?
I've seen e.g. in scripts/filter/list_states.py that pagination and filtering is in the backend script, but from my opinion that's something which would better fit in the API controller. Was there a specific reason (e.g. performance when many states are active) to put this functionality into the backend script in that case?

Yes, if the number of entries are limited, it really makes sense to handle filering in the API, we might even consider adding a standard class or wrapper method to handle this for use, as the filter code in IPsec is already quite generic:
https://github.com/opnsense/core/blob/2a970b568a2839f2a73f04fbab2f36a532bcc2d2/src/opnsense/mvc/app/controllers/OPNsense/IPsec/Api/TunnelController.php#L45-L82
Downside however is, you will need to process the same information multiple times, when for example handling a log stream, this will be highly inefficient as the number of source records can easily exceed Gigabytes of memory. In quite some cases the number of results is limited, in which this approach will work like a charm and keeps the configd action code simpler.
A couple Megabytes of expected maximum output usually isn't a huge issue to [de]serialise a couple of times through the stack.

I think having pagination in the script clutters the core functionality of the script. It also duplicates code, as this logic could even be shifted to the ApiControllerBase.

Yes it does, at the moment I think we only push back when the previous mentioned rule applies (too much data, which could lead to an out of memory).
In this case (SPD/SA's), I would expect the number of results will always be quite limited.

Yeah, I also doubt that the ipsec status output would be several megabytes, even when having many tunnels configured.
Will provide a reworked backend script without pagination soon.

@AdSchellevis Any chance to have a look at this within the next weeks? 😃

@8191 I wasn't sure you where ready with this, I'll try to give it a shot on my end.

closing this in favour of https://github.com/opnsense/core/commit/023d8e4a35939d0cb11cb5ebdfebb7a48fa2f4b8, https://github.com/opnsense/core/commit/245a4b8ca07b45e2e233be05db58703c48696254, https://github.com/opnsense/core/commit/3726f67882c03baa88badb649a617bafcbbafd86 (refactors SAD/SPD). Connection status diagnostics will likely follow using the same approach.


Images change places in TableView

When I scroll the images are set not on proper cells, then when i stop scrolling it reloads and puts back the correct image.

Yeah I suppose I never considered these to be used in a tableview.
Some sort of caching on the position of the image would be a welcome feature.
I'll look into it.
Thank you.

@dosymbaev are you able to put together a quick demo app showing this?

Closing due to inactivity.

I’m able to reproduce this problem. The key point is that the face recognition is done in a background thread and when it’s done the image is set. When images are set very fast (during table view scroll) those background tasks build up and one can see successive image changes. Theoretically even the wrong image can be set in the end (can’t reproduce that).
To solve that we would need to cancel previous tasks when setting a new image. Or check at the end of background processing  that the image wasn’t changed. Anyway all this requires a new property added, which is not possible in a Swift extension. In fact it’s possible through an objective c hack, but a direct approach would be to switch to inheritance instead of extension. Not sure what approach would be better.

It’s unfortunate that we’re limited in this way with extensions. I’d like to avoid going down the inheritance route.
I’m aware of the objective-c hack you’re talking about, and while not ideal, it might be the best way forward.
I suppose another option is to bundle in a singleton with this extension that could act as a datasource, but that kind of gets far beyond the scope of this project.
If anyone would like to have a go at the objective-c solution, (I don’t have a lot of time at the moment) I can review it, and we could use that in the meantime.

On 11 Feb 2018, at 2:54 am, algrid<EMAIL_ADDRESS>wrote:
I’m able to reproduce this problem. The key point is that the face recognition is done in a background thread and when it’s done the image is set. When images are set very fast (during table view scroll) those background tasks build up and one can see successive image changes. Theoretically even the wrong image can be set in the end (can’t reproduce that).
To solve that we would need to cancel previous tasks when setting a new image. Or check at the end of background processing that the image wasn’t changed. Anyway all this requires a new property added, which is not possible in a Swift extension. In fact it’s possible through an objective c hack, but a direct approach would be to switch to inheritance instead of extension. Not sure what approach would be better.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/BeauNouvelle/FaceAware/issues/20#issuecomment-364664860, or mute the thread https://github.com/notifications/unsubscribe-auth/AM0dG53XFwARieBoNRt66vs8eJ97GQ1vks5tTbvFgaJpZM4Omhm2.

No problem :)

When I FaceAwared the ImageView , I want to cache the info to scroll TableView smoothly,  such as the Image and Frame. and I write a func.
func setLocalFaceImageAndFrame(aImage: UIImage?, aFrame: CGRect?) {
    let layer = self.imageLayer()
    layer.contents = aImage!.cgImage
    layer.frame = aFrame!
}

But I can not use this func with OC code. like this :
[aImageView setLocalFaceImageAndFrame: aFrame  image: aImage]
How can I deal with it ? Thanks !

No problem :)

When I FaceAwared the ImageView , I want to cache the info to scroll TableView smoothly, such as the Image and Frame. and I write a func.
func setLocalFaceImageAndFrame(aImage: UIImage?, aFrame: CGRect?) {
    let layer = self.imageLayer()
    layer.contents = aImage!.cgImage
    layer.frame = aFrame!
}

But I can not use this func with OC code. like this :
[aImageView setLocalFaceImageAndFrame: aFrame image: aImage]
How can I deal with it ? Thanks !

@BeauNouvelle @dosymbaev @seenoevo @diejmon I need Help. 🔢

No problem :)

When I FaceAwared the ImageView , I want to cache the info to scroll TableView smoothly, such as the Image and Frame. and I write a func.
func setLocalFaceImageAndFrame(aImage: UIImage?, aFrame: CGRect?) {
    let layer = self.imageLayer()
    layer.contents = aImage!.cgImage
    layer.frame = aFrame!
}

But I can not use this func with OC code. like this :
[aImageView setLocalFaceImageAndFrame: aFrame image: aImage]
How can I deal with it ? Thanks !

Ok, I solve it with The code.
@objc
public func setLocalFaceImage(infoDic: NSDictionary) {
let aImage = infoDic["image"] as! UIImage
let aFrame = infoDic["frame"]
    let layer = self.imageLayer()
    layer.contents = aImage.cgImage
    layer.frame = aFrame as! CGRect
}

Thanks.

No problem :)

When I FaceAwared the ImageView , I want to cache the info to scroll TableView smoothly, such as the Image and Frame. and I write a func.
func setLocalFaceImageAndFrame(aImage: UIImage?, aFrame: CGRect?) {
    let layer = self.imageLayer()
    layer.contents = aImage!.cgImage
    layer.frame = aFrame!
}

But I can not use this func with OC code. like this :
[aImageView setLocalFaceImageAndFrame: aFrame image: aImage]
How can I deal with it ? Thanks !

Ok, I solve it with The code.
@objc
public func setLocalFaceImage(infoDic: NSDictionary) {
let aImage = infoDic["image"] as! UIImage
let aFrame = infoDic["frame"]
    let layer = self.imageLayer()
    layer.contents = aImage.cgImage
    layer.frame = aFrame as! CGRect
}

Thanks.

Where and how do you use this?


Task - Collection objects filter - Area/Map search

When searching by area, collecting events having coordinates-only won't appear in search results. Also, when searching using map (circle for example), collecting events having area rather than coordinates won't show up either.
As example, in Sandcastle, searching for Buenos Aires (TDWG) will show a single record, and when using map will show multiple record EXCLUDING the one that appeared in the other search.

By "having cooridinates" do you mean "is georeferenced"?  Verbatim_coords are not used in spatial searches.

But if I've selected a geographic area (TDWG, has shape), is it expected to not be found if I do a "circle search" on map?

The intersection should be found, yes.
On Fri, Nov 8, 2019 at 8:59 AM Hernán Lucas Pereira <
<EMAIL_ADDRESS>wrote:

But if I've selected a geographic area (TDWG, has shape), is it expected
to not be found if I do a "circle search" on map?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/SpeciesFileGroup/taxonworks/issues/1176?email_source=notifications&email_token=AAAFQSCP7R42H772FQQXPXTQSV5FXA5CNFSM4JKWRK4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDSLSZI#issuecomment-551860581,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAFQSEFEO7R7SODB62GDNLQSV5FXANCNFSM4JKWRK4A
.

@LocoDelAssembly Can we close this?

@mjy depends on whether this is expected behaviour.
Map search:

Area search (using Buenos Aires (Argentina Northeast) [TDWG Level 4] [has shape]):

When I see that query, then I expect the result to contain the intersection of all collection objects that have events with specific geographic_area_id and within the provided radius.

We decided at #1177 that you cannot use both features simultaneously? (However without that fix applied and setting up both simultaneously results in zero records despite the circle and Buenos Aires overlaps)
The current behavior seems like the event has to be specifically registered as the area I'm searching, despite its lat/lng is inside the shape. And the other way around is also true, you cannot locate something registered without coordinates using a circle even if the shape of the geographic area of the event overlaps.

Did you click the spatial option?  If not it is searching by id, not spatially.

Also with the checkbox checked:

Found broken params, will push in a bit, thanks for this catch.

Spatial geo area working now, can actually test intersection for real.

Not completely sure by checking the checkbox looks like to returns all records of selected name.

Using map search returns nothing as expected:

But when searching Buenos Aires it doesn't detect overlapping with TDWG shapes:

You're right, working on restoring.

Pushed a tweak.

Can we close? :)


Zip file have blank icon

Zip file have blank icon like we have on .jpg, .mp3, etc, should be nice to have it like on other extension.

Verison 252
Emulator Pixel 6

@vedranqa interesting idea. Yes, we should depict something specific to archive in this case.
Maybe we even should introduce category of archives (in the same row as image, video, document, etc.).


Import custom magic function from nuget

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
I would like dotnet interactive to support importing custom magic functions through nuget
#r "nuget:CustomMagicFunctions"
#!magicfunction

Describe alternatives you've considered
No

This is currently supported.
You can see a quickstart doc here: https://github.com/dotnet/interactive/blob/main/docs/extending-dotnet-interactive.md
Here are some samples:
https://github.com/dotnet/interactive/tree/main/samples/extensions
https://github.com/dotnet/interactive/tree/main/src/Microsoft.DotNet.Interactive.ExtensionLab

Thanks @jonsequitur for the quick response!


Is this repo dead?

Hello everyone,
I am still using this library as of today and I was wondering ?
Is this repo dead ?
Because I see many good ideas in pull requests and would really appreciate if you could merge some.
Have a good day !

I added it to express docs https://github.com/expressjs/expressjs.com/pull/1359  so hopefully it will now get some more popularity and love


Added LSM6DSV to imu-comparison.md

I'd like to also mention that not many people have Lsm6dsv's in hand and/or in use for the imu to be documented, as well as the only supported firmware being sfusion, which is in beta and requires further testing/constant updates/ full firmware feature implementation for LSM such as tcal (temp calibration) which is still missing and required for 45-60 min reset times...

As the developer for the lsm6dsv driver in sfusion, I personally wouldn't add it to the docs yet, especially without mentioning some of the negatives the IMU could have right now. It's just a good way to waste a lot of people's money, and have them ask for sources that simply don't exist.
I would wait until someone can actually sell them for less than BNO085 are sold for (the chip itself is not even than 5 dollars at mid-scale) reliably, and until a good number of people start using it.

I agree with Gorbit, I'd wait for more people to get the lsm and do more tests, I've lost count of how many times I've recalibrated my lsm trackers and never managed to reach the 40 60 minute mark, the behavior I've observed has been worse or similar to a bmi160.

I forgot to add needs warmup for 60 min resets.
And we can make a thread/pool to gather test results. There are quite few sets now.

I forgot to add needs warmup for 60 min resets.

I've never gotten a single 60 minute reset time with a full set, even after warming up.

And we can make a thread/pool to gather test results. There are quite few sets now.

I think the BMI270 had at least 50-100 sets of it, before it got into the docs, but Meia can probably tell you more accurate numbers.

I have uploaded LSM6DSV video showing 47 min gameplay with no drift https://www.youtube.com/watch?v=761hb4N6MT8
For me achieving +40 min is very easy with LSM6DSV and I have few Panda Trackers users confirming same +40 min times.
So whatever, it can be put as 40 min. Again, these are just details agree on what number to put.
As I get an impression now, that some people just don't want for others to know about the LSM6DSV at all.

All new IMUs are added in another PR. The ranking and numbers will be regularly upadated as new firmware and testing methods come out.


add missing dependencies and avoid CORS blocking

Thank you for contributing!

@jakobhoeg Thanks for your fantastic code and valuable contribution! I have learnt a lot from it.


[Bug] [Module Name] The default node name and child node should not appear in the new sub component of the workflow instance

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
The default node name and child node should not appear in the new sub component of the workflow instance
What you expected to happen
The node name and child nodes should be empty by default
How to reproduce

Anything else
No response
Version
3.0.0-alpha
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I will fix it.


GraphQL: Fix a changed field from server

/release-note-none

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: 3975e3c2f61f45c6cef45c54c66c54fae1b444d8


Issue #43 : new checkbox for syncing 'Ownership'

Joel Johnson » ez-templates #8 SUCCESS
This pull request looks good
(what's this?)

Kill this.

Joel Johnson » ez-templates #9 FAILURE
Looks like there's a problem with this pull request
(what's this?)


Incorrect exercise: [courseId=grammar-intro_eng][lessonNumber=3][exerciseId=2294]

Description
should be "do dunda zo'e mi" but is "do dunda fi mi"
Diagnostics information (do not remove)

Exercise identifier: [courseId=grammar-intro_eng][lessonNumber=3][exerciseId=2294]
Exercise payload: {"shouldDisplayHint":false,"exercise":{"canonicalAnswer":"do dunda fi mi","sentences":[{"text":"You gave me something.","lojbanic":false}],"title":"Translate without using "zo'e"","type":"typing"}}
Attempted solution: {"text":"do dunda zo'e mi"}
Attempted solution was classified as correct: no
Validation payload: {"canonicalAnswer":"do dunda fi mi","correct":false}

I'm afraid the exercise specifically said Translate without using "zo'e". That's why you must use fi, to skip the dunda's x2 sumti place.

Can someone close this as not planned?


FR: provide the ability to set per-request RetrySettings

In googleapis/java-spanner, we want to allow users set per-request timeout and retry settings.
Currently, the timeouts and retry settings are set at the time of client creation when the UnaryCallable is created (example). This means the retry settings are fixed per client instance. Our customers have requested for the ability to set RetrySettings per request, so that they may even be able to set them programmatically depending on the type of query that is being executed.
There is a discussion on this in #561 but I would like to create an explicit feature request for this.
Note that we have already brought this up with grpc-java and they asked us to follow-up here.
CC @ramiyer

Hi @skuruppu thanks for the FR, this is something I've been thinking about already, so it's great to have your input.
My current idea was limited to just exposing some additional timeout setting on the ApiCallContext (the abstraction for HTTP & gRPC call contexts we use in GAX) that would filter through the stack to the retry machinery. It sounds like y'all want to have access to more than that though, which makes sense, especially relative to other GAPIC languages that support augmenting "retry settings" on a per-invocation basis.
Can you help me understand the use cases you have in mind?

Is it just attempt delay settings we want to change?
Is it just timeout(s) we want to be able to change?
Is it the entire RetrySettings object we want to support mutating?
Is it changes to the list of retryable codes too? (this list is not part of the RetrySettings today, it is separate)

Fortunately, these changes only need to be scoped to gax-java because the ApiCallContext is accessible from the existing GAPIC surface i.e. there shouldn't be a generator change necessary.

Thanks for following up @noahdietz. I will reply inline but @ramiyer, if you could also reply with your specific requirements, that would help a lot since you have a better understanding of how you plan to use this feature.

Hi @skuruppu thanks for the FR, this is something I've been thinking about already, so it's great to have your input.
My current idea was limited to just exposing some additional timeout setting on the ApiCallContext (the abstraction for HTTP & gRPC call contexts we use in GAX) that would filter through the stack to the retry machinery. It sounds like y'all want to have access to more than that though, which makes sense, especially relative to other GAPIC languages that support augmenting "retry settings" on a per-invocation basis.
Can you help me understand the use cases you have in mind?

Is it just attempt delay settings we want to change?

The initial request was to change the delay settings from my understanding.

Is it just timeout(s) we want to be able to change?

They also mentioned that they would like to change the timeouts as well.

Is it the entire RetrySettings object we want to support mutating?

I'm not sure so @ramiyer to confirm.

Is it changes to the list of retryable codes too? (this list is not part of the RetrySettings today, it is separate)

Also not sure so @ramiyer to confirm.

Fortunately, these changes only need to be scoped to gax-java because the ApiCallContext is accessible from the existing GAPIC surface i.e. there shouldn't be a generator change necessary.

That's great :)

If any of the backoff settings were in question, I'd say we want the entire RetrySettings object to be overridable from the ApiCallContext. We'd want to avoid flattening out the RetrySettings surface on the ApiCallContext.
Just to set expectation, the way the RetrySettings are supplied to a callable does not lend itself to per-invocation configurability. It's all just code and its certainly doable, but it will be a deep change to the codebase.

Small update: I took a crack at threading the RetrySettings through the ApiCallContext and it was actually much easier/less invasive than I anticipated - at least for Unary RPCs. I haven't tried Server Streaming yet, which has some different retry behavior based on resumption strategy.

Update: Things got a little more complicated. RPCs that are configured to not be retried at client creation results in a simpler/smaller callable chain being created - one that does not have the same codepath as RPCs that are configured to be retried. In order to make the ApiCallContext-provided, per-invocation RetrySettings to work for non-retryable RPCs, we will need to either:
A. unify the callable chain making retryable and non-retryable RPCs have the same codepath
B. wrap the callable typically returned for non-retryable RPCs in a new Callable type that consults the ApiCallContext for those values of the RetrySettings that apply to non-retryable RPCs
On the other hand, one cannot make a non-retryable RPC retryable on a per-invocation basis unless we also expose overriding the retryable status codes, which I'm not sure we want to do. As such, the concerns might not be a problem at all, and just having per-invocation RetrySettings work for retryable RPCs would be straight forward. FWIW there is already a way to change the timeout of a non-retryable RPC via the ApiCallContext today so this FR isn't necessarily relevant to non-retryable RPCs.

Yeah, I agree with prioritizing retryable RPCs and not adding this support yet for non-retryable RPCs.
We may not want to encourage retrying non-retryable RPCs in any case since if a user needs this, then there are errors that they should handle explicitly. I don't believe the automatic retry logic of gax could handle these cases in a meaningful way.

Hi folks, so I haven't had time to work on this more, and I am going on leave. I parked the initial changes in #1211, but it does not include the changes necessary for passing these settings through the ServerStreamingRetryAlgorithm.

@noahdietz thanks for making this much progress and for keeping us in the loop. Let us know if there's anything we can help with to get this work scheduled. I would be more than happy to have @olavloite help out with the implementation as long as there's someone from the gax-java team that can guide the design and implementation.

Note: @skuruppu and I synced offline and we will have an update on this work in a few days.

Is it changes to the list of retryable codes too? (this list is not part of the RetrySettings today, it is separate)

I would say that there are a couple of additional reasons for wanting to be able to set this:

If an RPC is configured to be retryable, but DEADLINE_EXCEEDED is not part of the retryable codes for that RPC, then the call will fail with a timeout error already after exceeding the RetrySettings#getInitialRpcTimeout(). An RPC that does have DEADLINE_EXCEEDED as a retryable code will however not fail after RetrySettings#getInitialRpcTimeout(), but after RetrySettings#getTotalTimeout().
It is already possible to set a timeout per call through the ApiContext, so adding this feature only for 'simple' timeouts is not necessary.


Automated cherry pick of #4676: fix: guest network default share scope should be system if non-default-domain-projects is off

Cherry pick of #4676 on release/2.10.0.
#4676: fix: guest network default share scope should be system if non-default-domain-projects is off

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.10.0@c8dd7d0). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.10.0   #4677   +/-   ##
================================================
  Coverage                  ?   7.46%
================================================
  Files                     ?     418
  Lines                     ?   66724
  Branches                  ?       0
================================================
  Hits                      ?    4984
  Misses                    ?   61314
  Partials                  ?     426

Flag
Coverage Δ

#aFlag
7.46% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/networks.go
0.66% <0%> (ø)

Continue to review full report at Codecov.

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


Update references to Expo / Expo CLI

We recently made some changes, such as moving away from the global Expo CLI package to a local CLI and create-expo-app and moving away from expo build.
This pull requests accounts for these changes and backports them to the 0.69 docs, because Expo SDK 46 currently uses React Native 0.69.

Also are there any implications for having stale global expo-cli packages?

In order to ensure developers are using the correct CLI version we have added a warning (screenshotted in the other comment) to make it clear which CLI is being invoked. If a developer leaves the old expo-cli installed on their machine, it won't cause any problems for them and they may want to keep it around to use on older projects.


function of invert_sigmoid is not in the paper

Summary
Current implementation use invert_sigmoid flag in multi-oscillator experiments.
It change initial αk from 1/|K| to log(1/(|K|-1)).
The paper state that they are initialized with 1/|K|, but it is not matched with actual implementation.
What is the porpose and function of this processing?
Current State
The implementation has invert_sigmoid flag in initializer.
https://github.com/ben-hayes/sinusoidal-gradient-descent/blob/191c98d4068b83181a24eb970f98ca75834f9c66/sinusoidal_gradient_descent/eval/estimator.py#L234-L236
And it is activated in 'multi' experiments.
https://github.com/ben-hayes/sinusoidal-gradient-descent/blob/191c98d4068b83181a24eb970f98ca75834f9c66/estimator_config/param_sampler/multi.yaml#L11
However, the paper stated that

linear amplitude was initialized for each component at ^α_k = 1/|K|.

so there seems to be an unmatch between implementation and paper.
Question
I have two questions.

What is the function and purpose of invert_sigmoid?
Which way is used for the paper's results?

Others
The paper was so impressive for me.
With this method, I successfully analyze/synthesize a human voice and it has very high naturality.
Thanks for your great work!

Hi @tarepan
Thanks for raising the issue and for your keen eye! We have invert_sigmoid because we apply a sigmoid function to the amplitude before multiplying it with the frequency component to ensure that it is bounded in [0, 1].
Setting invert_sigmoid=True simply ensures that the actual amplitude (i.e. the linear factor of the frequency component) is uniformly initialised in the interval [0, 1/|K|] rather than [sigmoid(0), sigmoid(1/|K|)].
Thanks for pointing this out though — you made me realise this is not clear at all in the paper, so I will upload a revision to arXiv shortly.
Glad to hear that you've been having success with this method anyway :)

Thanks for your quick response!
I understand, so write down memo for somebody who have same question in future.
Purpose
The purpose is ensuring amplitude αk bounded in [0, 1], and keep it differentiable.
Approach
We apply sigmoid toward global_amp.
https://github.com/ben-hayes/sinusoidal-gradient-descent/blob/191c98d4068b83181a24eb970f98ca75834f9c66/sinusoidal_gradient_descent/eval/estimator.py#L317-L320
With sigmoid, we can compress global_amp range from [-inf, +inf] to [0, 1], and keep meaningful gradient.
This processing means that global_amp is not equal to αk, it is rather a 'inverse_sigmoid(αk)'.
global_amp is inversed, so sigmoid(global_amp) == 'sigmoid(inverse_sigmoid(αk))' == 'αk'.
Initialization trick
We hope to initialize αk with 1/|K|.
global_amp is 'inverse_sigmoid(αk)', so we initialize global_amp with 'inverse_sigmoid(1/|K|)'.
https://github.com/ben-hayes/sinusoidal-gradient-descent/blob/191c98d4068b83181a24eb970f98ca75834f9c66/sinusoidal_gradient_descent/eval/estimator.py#L232-L236
log(x/(1-x)) is called logit function, and it is the inverse function of sigmoid.
invert_sigmoid is flag for this processing.
Others
Glad to contribute to good paper's revision. I am looking forward to new version!


sealer-v0.9.0树莓派运行报错，不是太搞得懂一步一个错

What happen?
sealer-v0.9.0: copying system image from manifest list: initializing image from source docker://registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.22.5: unsupported docker v2s2 media type: "application/octet-stream"
Relevant log output?
No response
What you expected to happen?
No response
How to reproduce it (as minimally and precisely as possible)?
No response
Anything else we need to know?
No response
What is the version of Sealer you using?
No response
What is your OS environment?
No response
What is the Kernel version?
No response
Other environment you want to tell us?

Cloud provider or hardware configuration:
Install tools:
Others:

@Stevent-fei Cloud you please take a look at this issue?

+1


feat(content): east ardy sewer gate

https://github.com/user-attachments/assets/68f30eb7-7d20-4c14-9726-0a901203c7e0

OSRS for reference
https://github.com/user-attachments/assets/e0a85440-200c-4337-bf38-6815d8bc0a9b


Configurable display widgets

Provide a plug-in mechanism for customised rendering of sets of properties - (not just one) - such as d3 graph widgets showing neighbourhood on a set of object property relationships.
e.g. a profile - show isProfileOf and ^isProfileOf relationships

We could have some config on whether these widgets would appear (and potentially give different visualisation options), and develop some of these widgets internally.
In the case of external components as plug-ins, there are some mechanisms in Vue that may accomplish this (like globally registering plug-in components and using dynamic components), but I'm not sure yet.

per discussion - widgets as vue.js components, driven by data-configurable APIs delivering JSON-LD frames (i.e. stable schemas).

initial list of basic widgets we might want to develop:

tree (will handle skos broader/narrower)
membership (scalable lists)
(DAG) - skos:Collection, profile hierarchy
neighbourhood - class/instance might be different - including inverse properties
linked services (e.g. attach search of additional resources - not just SPARQL from the base db)
profile resource descriptor (also DCAT resource, dataservice etc)
webvowl - assuming optimised logic for exposing ontology constructs - we dont want to reinent this wheel - and there is a degree of familiarity with this.

See Issue #43 for discussion about a specific Widget - Neighbours.


Invalid argument: Received a label value of -1 which is outside the valid range of [0, 1).

Hi everyone,
Thanks for the repo. It's been incredibly useful and easy to use!
I've been having some issues trying to fine-tune the net using custom classes from a custom dataset. The simplified problem is as such: I am trying to predict just 1 class with name 'table'.
When I try to fine-tune using the next command:
python3 train.py --batch_size 8 --dataset ../data/train.tfrecord --val_dataset ../data/test.tfrecord --epochs 100 --mode eager_tf --transfer darknet --num_classes 1 --weights_num_classes 80 --classes ../data/label_map.pbtxt
It throws the next error:
Traceback (most recent call last):
  File "train.py", line 193, in <module>
    app.run(main)
  File "/usr/local/lib/python3.5/dist-packages/absl/app.py", line 299, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.5/dist-packages/absl/app.py", line 250, in _run_main
    sys.exit(main(argv))
  File "train.py", line 139, in main
    pred_loss.append(loss_fn(label, output))
  File "/home/skybuntu/yolov3-tf2/yolov3_tf2/models.py", line 305, in yolo_loss
    true_class_idx, pred_class)
  File "/home/skybuntu/.local/lib/python3.5/site-packages/tensorflow_core/python/keras/losses.py", line 978, in sparse_categorical_crossentropy
    y_true, y_pred, from_logits=from_logits, axis=axis)
  File "/home/skybuntu/.local/lib/python3.5/site-packages/tensorflow_core/python/keras/backend.py", line 4549, in sparse_categorical_crossentropy
    labels=target, logits=output)
  File "/home/skybuntu/.local/lib/python3.5/site-packages/tensorflow_core/python/ops/nn_ops.py", line 3477, in sparse_softmax_cross_entropy_with_logits_v2
    labels=labels, logits=logits, name=name)
  File "/home/skybuntu/.local/lib/python3.5/site-packages/tensorflow_core/python/ops/nn_ops.py", line 3397, in sparse_softmax_cross_entropy_with_logits
    precise_logits, labels, name=name)
  File "/home/skybuntu/.local/lib/python3.5/site-packages/tensorflow_core/python/ops/gen_nn_ops.py", line 11838, in sparse_softmax_cross_entropy_with_logits
    _six.raise_from(_core._status_to_exception(e.code, message), None)
  File "<string>", line 3, in raise_from
tensorflow.python.framework.errors_impl.InvalidArgumentError: Received a label value of -1 which is outside the valid range of [0, 1).  Label values: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [Op:SparseSoftmaxCrossEntropyWithLogits]

It seems like it is likely a problem with how I placed the labels in the original tfrecord but I can't seem to figure out where the -1 come from. I followed this tfexample structure to make my implementation: https://github.com/swirlingsand/deeper-traffic-lights/blob/master/data_conversion_bosch.py
The relevant code goes as follows:
def write_tf_example(pandas_group):

  height = pandas_group['height'].values[0]
  width = pandas_group['width'].values[0] # Image width
  filename = pandas_group['path'].values[0].encode()

  with tf.io.gfile.GFile(pandas_group['path'].values[0], 'rb') as fid:
    encoded_image_data = fid.read()

  image_format = pandas_group['img_format'].values[0].encode() # b'jpeg' or b'png'
  xmins = list(pandas_group['x_min']) # List of normalized left x coordinates in bounding box (1 per box)
  xmaxs = list(pandas_group['x_max']) # List of normalized right x coordinates in bounding box
             # (1 per box)
  ymins = list(pandas_group['y_min']) # List of normalized top y coordinates in bounding box (1 per box)
  ymaxs = list(pandas_group['y_max']) # List of normalized bottom y coordinates in bounding box
             # (1 per box)

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

  classes_text = ['table'.encode()]*pandas_group.shape[0] # List of string class name of bounding box (1 per box)
  classes = [1]*pandas_group.shape[0] # List of integer class id of bounding box (1 per box)

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

  img_example = create_tf_example(height, width, filename, encoded_image_data, image_format, xmins, xmaxs, ymins, ymaxs, classes_text, classes)

  #TFRecordWriter must be initialised before calling write_tf_example
  writer.write(img_example.SerializeToString())

  return 0

def create_tf_example(height, width, filename, encoded_image_data, image_format, xmins, xmaxs, ymins, ymaxs, classes_text, classes):
  tf_label_and_data = tf.train.Example(features=tf.train.Features(feature={
      'image/height': dataset_util.int64_feature(height), #
      'image/width': dataset_util.int64_feature(width), #
      'image/filename': dataset_util.bytes_feature(filename), #
      'image/source_id': dataset_util.bytes_feature(filename), #
      'image/encoded': dataset_util.bytes_feature(encoded_image_data), #
      'image/format': dataset_util.bytes_feature(image_format), #
      'image/object/bbox/xmin': dataset_util.float_list_feature(xmins), #
      'image/object/bbox/xmax': dataset_util.float_list_feature(xmaxs), #
      'image/object/bbox/ymin': dataset_util.float_list_feature(ymins), #
      'image/object/bbox/ymax': dataset_util.float_list_feature(ymaxs), #
      'image/object/class/text': dataset_util.bytes_list_feature(classes_text), #
      'image/object/class/label': dataset_util.int64_list_feature(classes) #
  }))

  return tf_label_and_data

I'm using pandas to group the bboxes in images due to how the original data was given so please don't pay too much attention to the pandas part.
Any pointers to what I'm doing wrong are appreciated! Thanks!

Just found the issue. My class name file was wrongly formatted!
For anyone with the same issue this is the point where it goes wrong:
https://github.com/zzh8829/yolov3-tf2/blob/498fb647545ee27babf44fd2b97e70c66c353ce2/yolov3_tf2/dataset.py#L121-L128
If it can't find the class name in the file it will assign a -1 to it.  So double check your .name file and compare it with the one in the data folder.


CORS

i'm trying to take a shot of a google recaptcha challenge loaded by iframe from another iframe, already used allowTaint and useCORS, and all i get is a error.
0ms html2canvas: html2canvas 1.0.0-alpha.12
10ms html2canvas: DOMException: Failed to execute 'open' on 'Document': Can only call open() on same-origin documents.
DOMException: Failed to execute 'open' on 'Document': Can only call open() on same-origin documents.

I fixed some cors issues I was having with the combination of Google Chrome, AWS S3, and multiple origins.
I found this stackoverflow thread:
https://stackoverflow.com/questions/26352083/chrome-cors-cache-requesting-same-file-from-two-different-origins
Which links to this bug report:
https://bugs.chromium.org/p/chromium/issues/detail?id=260239
Anyhow as workaround solution you can try this modified version of html2canvas:
https://gist.github.com/CrandellWS/6bc2078aced496004d7a045e6360f19b
use the options:
allowTaint : false,
useCORS: true

Hope that helps.

Thank you @CrandellWS
I have solved it using your solution this way.
const image = "https://s3-us-west-2.amazonaws.com/github.png?1551296103"
const timestamp = new Date().getTime();
const imageWithTimestamp = image.includes('?') ? `${image}&v=${timestamp}` : `${image}?v=${timestamp}`;

render() {
  return (

Hello world

    </div
  );
}

Please make sure that you image is returning CORS enable headers. Otherwise you have to add CORS policy to you s3 bucket.

Thank you @pritam1994

Hi,
I have added the following options -
allowTaint : false,
useCORS: true

Bit it is not showing captcha. Instead a blank box.

Without modifying html2canvas, here is an idea:
First use canvas to convert cross-domain pictures into Base64 encoding, and then give it to html2canvas for processing
// 1.First get the Base64 encoding of cross-domain pictures through canvas
const img = new Image();
img.onload = () => {
  const c = this.$refs.crossImg;
  const ctx = c.getContext('2d');
  ctx.drawImage(img, 0, 0, c.width, c.height);
  this.crossImgBase64 = c.toDataURL('image/png');

  // 2.Draw
  Html2canvas(this.$refs.html, {
    // useCORS: true,
  }).then((canvas) => {
    this.pngBase64 = canvas.toDataURL('image/png');
    this.isShowPng = true;
  });
};
img.crossOrigin = 'anonymous';
img.src = 'https://secure.gravatar.com/avatar/03af4ed2fa8526e9f37c847cc4083141';

Here a example
https://vue-html2canvas-safari-bug.stackblitz.io/

I am using version 1.0.0-rc.0 and just adding @CrandellWS's solution didn't work
The part of html2canvas.js file where the correction has to be made is like this
if (!supportsDataImages || useCORS){
    img.crossOrigin = 'anonymous';
}
    img.onerror = reject;
    img.src = src;

Adding src alone won't work, the code has to be like this
if (!supportsDataImages || useCORS){
    img.crossOrigin = 'anonymous';
    img.src = src +'?v='+new Date().getTime();
}
else{
    img.src = src;
}
    img.onerror = reject;

It seems it is not fixed yet.

been stuck for days and finally found the solution from here:
https://developpaper.com/question/img-add-crossorigin-anonymous-and-the-picture-will-not-be-displayed/
in addition, I added:
useCORS: true
and on the img tag:
hope this helps

@yulisartika Well, when i put crossorigin='anonymou' the brower simply can't fetch the image, hence, it can't show them.

@SalahAdDin as @yulisartika said
and on the img tag:
setting the image url to have an unique parameter is key

been stuck for days and finally found the solution from here: https://developpaper.com/question/img-add-crossorigin-anonymous-and-the-picture-will-not-be-displayed/
in addition, I added:
useCORS: true
and on the img tag:
hope this helps

@yulisartika Well, when i put crossorigin='anonymou' the brower simply can't fetch the image, hence, it can't show them.

Adding crossOrigin="" did it for me.

@arohablue for me did not =´(

@arohablue for me did not =´(

We had to make a proxy server.

@arohablue for me did not =´(

I also added a cors filter on the server-side. The image was on an AWS bucket.

As i need to get screenshot for iframe from other page but its in same domain but then also getting this error:- Failed to execute 'open' on 'Document': Can only call open() on same-origin documents Getting this error on html2canvas any help appreciated

Proxy server I would say.

Has anyone had the same situation as me?
some images can be downloaded, but some give cors error even though they are in the same bucket
s3 bucket setup cors AllowOriginls: ["*"]
I use the option useCORS: true

for people still having the issue, for me what worked was a mix of some replies here.. I have:

plus { allowTaint: true, useCORS: true } in html2canvas and then it worked! Image is hosted on S3.

@RSchneider94 i wish it wa that easy for some reason when I have crossorigin="" or anonymous my images don't even render at all.
@memsenpai I have the exact same issue as you my S3 bucket has AllowOrigin wildcard

been stuck for days and finally found the solution from here: https://developpaper.com/question/img-add-crossorigin-anonymous-and-the-picture-will-not-be-displayed/
in addition, I added:
useCORS: true
and on the img tag:
hope this helps

@yulisartika Well, when i put crossorigin='anonymou' the brower simply can't fetch the image, hence, it can't show them.

Adding crossOrigin="" did it for me.

For me was the response!!

@xrzhuang I must use a server as a proxy to solve that issue :(


Fetch site locations

Needs #30 to be merged first.
Start to #27 - gets the site location data as an sp object. Further projecting and processing needs to be done.

This was the merge conflict...there was a tab on one line and not the other 🤦♀


[BUG]: Unexpected error when the proxy process is terminated

Description
There is an error when I terminated the proxy process.
The error message is

Unhandled exception. System.Collections.Generic.KeyNotFoundException: The given key 'OPTIONS ?https://graph.microsoft.com/v1.0/me' was not present in the dictionary.

Expected behaviour
It could exit successfully
Actual behaviour
Here is the log in output.

PS C:\Users\zhaofengxu\TeamsApps\hello-world-tab-with-backend_3> npm run m365proxy:error
><EMAIL_ADDRESS>m365proxy:error
> cd m365proxy && m365proxy -f 100 --watch-process-names node msedge --record
Mock responses for 0 url patterns loaded from C:\Users\zhaofengxu\TeamsApps\hello-world-tab-with-backend_3\m365proxy\responses.json
Listening on <IP_ADDRESS>:8000...
Set endpoint at Ip <IP_ADDRESS> and port: 8000 as System HTTP Proxy
Set endpoint at Ip <IP_ADDRESS> and port: 8000 as System HTTPS Proxy
Press CTRL+C to stop the Microsoft 365 Developer Proxy
◉ Recording...
request     GET https://graph.microsoft.com/v1.0/me
chaos   ╭ 502 BadGateway
╰ GET https://graph.microsoft.com/v1.0/me
warning   ╭ To improve performance of your application, use the $select parameter.
│ More info at https://aka.ms/m365/proxy/guidance/select
╰ GET https://graph.microsoft.com/v1.0/me
request     GET https://graph.microsoft.com/v1.0/me
warning   ╭ Another request to /v1.0/me intercepted within 5 seconds.
│ Last intercepted at 10/30/2023 5:44:55 PM.
│ Consider using cache to avoid calling the API too often.
╰ GET https://graph.microsoft.com/v1.0/me
chaos   ╭ 502 BadGateway
╰ GET https://graph.microsoft.com/v1.0/me
warning   ╭ To improve performance of your application, use the $select parameter.
│ More info at https://aka.ms/m365/proxy/guidance/select
╰ GET https://graph.microsoft.com/v1.0/me
request     GET https://graph.microsoft.com/v1.0/me/calendarview
chaos   ╭ 500 InternalServerError
╰ GET https://graph.microsoft.com/v1.0/me/calendarview
request     GET https://graph.microsoft.com/v1.0/users/me/photo/$value
chaos   ╭ 500 InternalServerError
╰ GET https://graph.microsoft.com/v1.0/users/me/photo/$value
○ Stopped recording
Unhandled exception. System.Collections.Generic.KeyNotFoundException: The given key 'OPTIONS https://graph.microsoft.com/v1.0/me' was not present in the dictionary.
at System.Collections.Generic.Dictionary2.get_Item(TKey key)    at Microsoft365.DeveloperProxy.Plugins.RequestLogs.ExecutionSummaryPlugin.GetGroupedByUrlData(IEnumerable1 requestLogs)
at Microsoft365.DeveloperProxy.Plugins.RequestLogs.ExecutionSummaryPlugin.GetGroupedByUrlReport(IEnumerable`1 requestLogs)
at Microsoft365.DeveloperProxy.Plugins.RequestLogs.ExecutionSummaryPlugin.AfterRecordingStop(Object sender, RecordingArgs e)
at Microsoft365.DeveloperProxy.Abstractions.PluginEvents.RaiseRecordingStopped(RecordingArgs args)
at Microsoft365.DeveloperProxy.ProxyEngine.StopRecording()
at Microsoft365.DeveloperProxy.ProxyEngine.Console_CancelKeyPress(Object sender, ConsoleCancelEventArgs e)
at System.Console.HandlePosixSignal(PosixSignalContext ctx)
at System.Runtime.InteropServices.PosixSignalRegistration.HandlerRoutine(Int32 dwCtrlType)
Terminate batch job (Y/N)?
Steps to reproduce

launch the proxy.
send request as the logs show.
terminate the process.

The error is not stable reproducted. And it can occur when response mock is configured or error mock is configured.
Microsoft 365 Developer Proxy Version
0.12.1
Operating system (environment)
Windows
Shell
PowerShell
Additional Info
No response

Thanks for the bug report @xzf0587, apologies for the trouble.
This is a known issue and we have a PR to resolve this https://github.com/microsoft/m365-developer-proxy/pull/369
For now, you should stop recording before you close the proxy process by using S, see Keyboard shortcuts.

Close it for duplicate issue.

Are you sure this is the same issue @garrytrinder? #369 fixes the problem of proxy not waiting for plugins before closing. This issue is about an exception being thrown. I think they're different and suggest we research them

It's interesting, that following the log proxy has not intercepted an OPTIONS request, yet somehow it ended up in the internals. I'll try to repro it

@xzf0587 could you please share with us your m365proxyrc.json file so that we can use proxy using the same configuration as you are?

Are you sure this is the same issue @garrytrinder? #369 fixes the problem of proxy not waiting for plugins before closing. This issue is about an exception being thrown. I think they're different and suggest we research them

Ah yes, good spot @waldekmastykark, apologies @xzf0587.

OK, I can confirm that I can repro the issue. I'll get on with fixing it


Fix Thread diagnostic nullable attributes so they read as null when …

…the device is not associated with a thread network. Add an encoding method to directly encode null when the provided condition evaluates to false
Update: we encoded null when no thread dataset has been provided to the device rather than the attachment state as valuable data can be fetched with the dataset for all those listed nullable attributes even if thread is detached or disabled
fixes #26908

@bzbarsky-apple

Just to check: various of these attributes (Channel, NetworkName) did not use to check otDatasetIsCommissioned.  But they should have?

They didn't do any check before, but when uncommissionnedz the thread stack returns some default values that does not mean much toward what the commissioned thread network will be.
For instance
Network name will return OpenThread,
Channel will return 11,
PanId return 0,
Etc.
My opinion is that in and uncommissioned state, null is a better representation for the user


[branch-2.10][build]Fix check License

Motivation
Fix check License which is caused by cherry-picked https://github.com/apache/pulsar/pull/19417
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

[ ] Dependencies (add or upgrade a dependency)
[ ] The public API
[ ] The schema
[ ] The default values of configurations
[ ] The threading model
[ ] The binary protocol
[ ] The REST endpoints
[ ] The admin CLI options
[ ] The metrics
[ ] Anything that affects deployment

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

Please paste out the check license failed logs.

Please paste out the check license failed logs.

https://github.com/apache/pulsar/actions/runs/4278317810/jobs/7447919253