SAML 2.0 SLO is not provided a session index

Describe the Bug
Trying using the SAML SLO functionality I get this error:
<samlp:StatusMessage>Missing SessionIndex: session participants MUST include at least one <SessionIndex> element in the logout request</samlp:StatusMessage>

Steps to Reproduce
Configure SAML Authentication with SLO functionality based on the documentation
Expected Behaviour
<SessionIndex> Object included in SLO Request
Screenshots or Additional Context
Currently the SLO Request looks like this:
<samlp:LogoutRequest
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    ID="redacted"
    Version="2.0"
    IssueInstant="2022-12-28T10:00:34Z"
    Destination="redacted">
    <saml:Issuer>https://redacted/saml2/metadata</saml:Issuer>
    <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">redacted</saml:NameID>
</samlp:LogoutRequest>

SAML Login Response (mostly truncated) - Includes SessionIndex
<samlp:Response Version="2.0" ID="redacted" IssueInstant="2022-12-28T10:08:33.861Z" InResponseTo="redacted" Destination="https://redacted/saml2/acs" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml:Assertion ID="redacted" IssueInstant="2022-12-28T10:08:33.894Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
        <saml:AuthnStatement SessionIndex="redacted" AuthnInstant="2022-12-28T10:08:33.885Z">
            <saml:AuthnContext>
                <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
            </saml:AuthnContext>
        </saml:AuthnStatement>
    </saml:Assertion>
</samlp:Response>

Browser Details
No response
Exact BookStack Version
v22.11
PHP Version
No response
Hosting Environment
Inside official Docker Container on our Kubernetes Instance.

Thanks for reporting. I'm going to update the title slightly since we don't target specific auth providers, but instead the standards used.
Findings

We are currently not passing a sessionindex to the logout process, although it can be added here.
Pretty sure the session index would originate from the login, so would need to carry it for later use. Could probably just use the session for this since the login should always be persistent to the session for current SAML auth.
Line 1208 of this doc requires a sessionindex. Line 1302 can counter this but likely not applies in our case as a SP.
Need to re-educate on SAML sessions to understand exact implications of adding. Probably good to at least add note to update notes to indicate usage of sessions on SLO, since IDPs could act differently.

I have tried the SAML using Auth0 and the SAML works. But the issue is of SAML session index.
@ssddanbrown, what would you specifically suggest that could be added.
Can we have a code to add the specific line to remove this session issue so that SLO can process.

This has now been added within commit 8c738aedee343826c3be7efc8b130d7e9966216f.
This has been very tricky to test, and understand the implications of.
I've added as a non-optional/configuration part of the flow, since it technically adding better alignment to the spec, but it's tricky to predict if this will affect existing flows for people, since it's heavily IdP dependant.
Will need to note as an update advisory (So folks using SLO can check the flow upon update).
The trouble is I didn't have an active platform with SLO enabled, that requires the session ID, so could not functionally validate, just observe that the SLO request contains the session index as required.
I tested on Auth0, and the changes work, but I found that the logout flow would work without these changes also, as long as things were configured up correctly to use HTTP redirect for SLO.
Tried to test on athentik, but not sure that's doing SLO to spec as we expect to even get SLO working.


Make Simplenote.vim try to use simplejson as per Simplenote.py

Is there any reason why Simplenote.py tries to use simplejson yet Simplenote.vim doesn't?
I had to pull this across from Simplenote.py to get Simplenote.vim to work on my old version of OSX. Meant to mention this ages ago, but forgot.

No there is no reason. I missed it when importing simplenote.py. Thanks


Segfault on numpy/GDKPixbuf

Let consider sample pipenv-based project to reproduce the bug.
https://github.com/belonesox/bug-nuitka-gdk-pixbuf-segfault
Let

checkout project,
install pipenv (https://github.com/pypa/pipenv)

Happy path, if we run from python:

run all_ok_if_not_compiled.sh
got message

reproduce_bug()
AAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBB

got numpy2pb.png generated from numpy2pb.npy
All OK, pixbuf.save_to_callbackv works as intended.

Lets compile with nuitka (pipenv installed released nuitka, but actually I tried even last factory versions, same problem)

run build_segfault_gtk.sh
It compiles segfault_gtk.py
Put input file numpy2pb.npy into segfault_gtk.dist

Let run:

cd segfault_gtk.dist
run segfault_gtk
got

reproduce_bug()
AAAAAAAAAAAAAAAAAAAA
Segmentation fault (core dumped)

GDB stack looks like
https://github.com/belonesox/bug-nuitka-gdk-pixbuf-segfault/blob/main/segfault-core-stack.txt
Actually, I encountered several bugs/segfault working with GTK/GDK compiled by nuitka, but this looks compact, and easy to reproduce.

Thanks, looks like a great report.

this still occurs nowadays.

I tried replacing the callback with an uncompiled function. As for the error being missing DLLs, on the callstack, I only found libffi and when I remove it, well it still doesn't work. The gi module has no data files and no DLLs. I can only imagine it is missing some sort of setup, this has been observed before, like Gtk.init() on MSYS2, things were crashing unless you do that.

I tried adding those kinds of things, but it doesn't change anything. I have no idea, what could be going on. I did the unspeakable, and made sure, that only a single import main that imports this file as bytecode and then gi as bytecode... well it crashes all the same. It seems to hate something about how it's embedded. Maybe it's something about AVX instructions. There are people saying that certain system libs need to do the proper thing, to load hardware dependent libs, and maybe we screw that up. If that holds true, this is a duplicate. But basically I can rule out, that anything about compilation causing this, and with no DLL being loaded from the dist folder, that too. Maybe some sort of config file is expected, or a symbol, or .... I don't know yet.

I unfortunately don't have the time to figure this one out, somebody needs to help with this one.


Instructions not working

I followed the instructions as described in this document: https://docs.microsoft.com/en-us/azure/devops/repos/git/go-get?view=azure-devops however, when issuing go get to get my Go library in a private Azure DevOps repository, the command line hangs indefinitely to then prompt:
fatal: unable to connect to dev.azure.com:
        dev.azure.com[0: <IP_ADDRESS>]: errno=Connection timed out
        dev.azure.com[1: 2620:1ec:21::20]: errno=Network is unreachable

The packege is not installed / available.
Any ideas on how to debug this?

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

ID: 069d650f-9948-2492-86d2-a5423ce043fb
Version Independent ID: 9c95f2fb-44be-5dbb-be51-0c498ed692d2
Content: Go get support - Azure Repos
Content Source: docs/repos/git/go-get.md
Product: devops
Technology: devops-code-git
GitHub Login: @apawast
Microsoft Alias: apawast

@JoseFMP Thank you for the question and for contacting the product team here.
Please see if you have access to basic REST calls to determine if this is a DevOps or Go issue, for DevOps connection issues see troubleshooting connections for additional help.
Otherwise, for further support options please refer to:

Azure DevOps support
Azure DevOps on StackOverflow


VERY POORLY BUILT AND CONFIGURE AND HAS A BACKDOOR.

You need to say what isn't working for you.
Just because you are unable to install NodeJS and run a batch file isn't my problem, there is a community of 300+ people using this bot at this exact moment.


build: enable ivy lib

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] The commit message follows our guidelines: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Application (the showcase website) / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
[ ] Yes
[ ] No

Other information

Heya, thanks for running this experiment! I took a brief look at the Azure job and I'm surprised by the Babel transform errors that occur; we'll definitely have to look into what's going on there.

Heya, thanks for running this experiment! I took a brief look at the Azure job and I'm surprised by the Babel transform errors that occur; we'll definitely have to look into what's going on there.

Quick update: we have figured out why it's failing and it requires a fix in the linker; this will hopefully make it into next week's patch release.

Quick update: we have figured out why it's failing and it requires a fix in the linker; this will hopefully make it into next week's patch release.

Or even better: it's now been fixed and will release later this week (usually Wednesday's)

Or even better: it's now been fixed and will release later this week (usually Wednesday's)

thanks @JoostK

thanks @JoostK

Angular FW 11.1.1 is out, could you please give that a spin? 🚀

Angular FW 11.1.1 is out, could you please give that a spin? 🚀

Angular FW 11.1.1 is out, could you please give that a spin? 🚀

it seems everything works fine now, thanks!

Angular FW 11.1.1 is out, could you please give that a spin? 🚀

it seems everything works fine now, thanks!


Mac port of xdag

Port xdag to mac for development.

Thank you for your efforts!

Ooops, sorry for misclick.


Setup first aiven terraform project

What changed, and why it matters
Separate content for common files and how-to-Terraform so that we don't keep repeating the same information for every cookbook.

https://github.com/aiven/devportal/pull/621 fixes the Vale build error.

I see that https://developer.aiven.io/docs/tools/terraform/index.html has a very similar example to the one this PR adds. I propose to structure the Terraform index page similar to https://developer.aiven.io/docs/products/postgresql/index.html and move the getting started (i.e. first project setup) to a separate page. Rather than code-samples, Terraform can have cookbooks.

Closing as a duplicate to https://github.com/aiven/devportal/pull/646


Introduce show password icon for pass flds

The grunt command should be executed to regenerate app.js & app.css.

This is great – would you consider closing this and resubmitting it against the release/9.0.0 branch? Our JS and CSS are changing so much between now and 9.0 that I know this won't merge cleanly when we merge develop into release/9.0.0 to keep 9.0 up to date.


Convert the overlay manager to a class

This work makes the code similar to the other components and reduces the number of dependencies for those components because the overlay manager is no longer a global.
I kept the FIXME comments equal to the already existing ones as the way we amend configuration options must be improved in a follow-up.
Much easier to review with https://github.com/mozilla/pdf.js/pull/8119/files?w=1.

/botio-linux preview

/botio lint

Closing. I agree that it's better to do this once ES6 is up and running as that will make the change quite a bit smaller. Hopefully the UMD headers will be gone/reduced at that point as well.

@timvandermeij If you've got time, now might be a good time to revisit this PR :-)
Given that https://bugzilla.mozilla.org/show_bug.cgi?id=1167472 (and its dependant bugs) is still open, we may not want to use ES6 classes in parsing/rendering code for the time being (e.g. not in the /src folder).
However, having a couple of (smaller) ES6 classes in /web code ought to be fine (and removes quite a bit of boilerplate compared to our current "classes"), note e.g. that ES6 classes are already used quite a bit in the Firefox code-base.

ES6 classes in /web code ought to be fine

This blocked by #8287

Thank you for reminding me, @Snuffleupagus, and thank you both for the amazing ES6 work! I think I can get to this really soon.

Thank you for reminding me, @Snuffleupagus, and thank you both for the amazing ES6 work! I think I can get to this really soon.

@timvandermeij Gentle ping, since it would be nice to get fixed considering that the OverlayManager is now the only thing that's not a class/classlike object :-)

I looked at this some time ago, but got stuck because the overlay manager has to be initialized in a central place (like app.js), but files like https://github.com/mozilla/pdf.js/blob/master/web/chromecom.js could not access that yet because they're included/initialized before app.js. In short, I did not find a way to solve that yet. Do you have ideas for that?

The weird thing was that I could access PDFViewerApplication, but not PDFViewerApplication.overlayManager because the initialization sequence was not yet complete.

At what point. Looks like initPassiveLoading is called from webViewerInitialized, which is called after we initialized UI.

Do you have ideas for that?

The first thing that comes to mind is perhaps not conceptually ideal, considering how we initialize all the other viewer components, but it's quite simple:
Just add overlayManager: new OverlayManager(), at line https://github.com/mozilla/pdf.js/blob/master/web/app.js#L147. Since the OverlayManager doesn't take any parameters, and only needs to be initialized, this ought to work. However, I'll readily admit that this is a slightly hacky solution!

Right, I think that would work. Perhaps it's not the best solution, but it would allow us to rewrite that code and improve this part later. Hopefully I have time this weekend to refactor the overlay manager, which could lead to more insights on why things did not work previously. It has been a while, so I don't remember exactly at what point the initialization was not complete yet. I'll have to look into that again.

As a tip, try not to use PDFViewerApplication too often, cache its properties somewhere once (e.g. at https://github.com/timvandermeij/pdf.js/blob/ac1b78628d16322a95c11f8662057a373905876b/web/chromecom.js#L353 let overlayManager = PDFViewerApplication.overlayManager;) and pass it via object properties or arguments.


Add support for Vyper!

Current integration TODO list:

[x] basic compiliation and interaction
[x] minification
[x] dependencies
[x] only recompile if changed
[x] decimal data type
[x] statement coverage
branch coverage

[x] if/else
[x] assert

custom error strings

[x] over/underflow checks
[x] out-of-bounds array index
[x] paying to a nonpayable function
[x] modulus 0

[x] dev revert strings
[x] updates to GUI
[x] test cases
[x] documentation

This is the list of items that were handled on the Vyper side, now that it's all completed I've removed it from the initial issue message.

[x] accept compiler input formatted via Solidity's standard JSON input
[x] return output formatted via Solidity's standard JSON output
[x] include source endpoints in AST nodes, and ideally give absolute offsets as (start, length)
[x] deployed source map that follows Solidity's format

Almost done! Need the following PRs to merge which should fix the failing build on iamdefinitelyahuman/brownie:vyper:

[ ] https://github.com/vyperlang/vyper/pull/1780
[ ] https://github.com/vyperlang/vyper/pull/1781

Will also need a new version of Vyper to release before this can be merged.

Good to go!  Tests passing locally, just waiting on a new Vyper release in a few days!!!

Merged in #294


Add some flexibility in the way we handle response code

It is now possible to use response codes which are not explicitly defined in the lwm2m specification.
We are still strict on success response expected, if we don't receive the good one an InvalidResponseException is still raised.
But now any error codes (accepted by californium) is accepted.
Generally for interoperability, we aim lenient on input, strict on output but it seems that nowadays this make no more consensus.
So I'm still asking myself if this tolerance at  leshan-server-demo is a good thing. Accepting silently not compliant response from the client is maybe not a good idea.

@bolddp if you have time you could have a look at this. This is a more generic way to handle your needs (see #396)

If I understand it correctly, this change means that any error code that CoAP accepts is turned into an ResponseCode with code=(int) coapResponseCode and name="UNKNOWN", instead of throwing an exception? This seems like a good compromise.
Regarding the tolerance of the Leshan server, I'd like to take a more pragmatic stance. At least one of the Lwm2m client stacks out there (con-tiki) uses a code (503) that is not explicitly stated in the Lwm2m spec.  And I think they are using it in a very reasonable way, signalling that the observe functionality, that was working just fine on the last request, now is unavailable due to resource limitations.
If I would like to raise this issue with the designers of the Lwm2m spec, where is the correct place to contact them?

Thx for your feedback :), I will fix that.

If I understand it correctly, this change means that any error code that CoAP accepts is turned into an ResponseCode with code=(int) coapResponseCode and name="UNKNOWN", instead of throwing an exception?

Correct.

it in a very reasonable way, signalling that the observe functionality, that was working just fine on the last request, now is unavailable due to resource limitations.

That makes sense. Another way which is explicitly explained in the CoAP observe RFC 7641, is to answer without observe option.
"A server that is unable or unwilling to add a new entry to the list of observers of a resource MAY silently ignore the registration request and process the GET request as usual.  The resulting response MUST NOT include an Observe Option, the absence of which signals to the client that it will not be notified of changes to the resource and, e.g., needs to poll the resource for its state instead."
This is compliant with the LWM2M specification too.

If I would like to raise this issue with the designers of the Lwm2m spec, where is the correct place to contact them?

You can try : https://github.com/OpenMobileAlliance/OMA_LwM2M_for_Developers/issues

Ok I fix it + add some way to show not LWM2M compliant code is used at client side in leshan-server-demo.
(I didn't want to be responsible to the next interoperability mess like html in the 2000s 😅)

Hi! Do you consider this finished, so it will be merged in the next release? I'm moving my changes to our fork, but instead of introducing SERVICE_UNAVAILABLE like I initially planned, I would like to merge this into our fork and use instead.

For me this is finished. I'm waiting for @msangoi feedbacks before to merge in master.
It should be available for the next release.

OK, great! I've merged it into my fork, will be able to test it tomorrow, hopefully.


ENH: Multithreaded sparse matrix multiplication

Is your feature request related to a problem? Please describe.
It would be great if scipy's sparse matrix multiplication was multithreaded. It is the bottleneck in many computations in scanpy and I'm sure other packages. See Additional context below for examples of achievable speed ups.
Previously discussed in person at the scientific python summit.
Describe the solution you'd like.
While I'm not too particular about a solution, I think it would be very reasonable to link an implementation like suitesparse. However many of the potential solutions have licensing issues (suitesparse is dual licensed, GPL and commercial).
Describe alternatives you've considered.
Scipy could have machinery for swappable backends
To overcome licensing issues, one could allow linking to different implementations. This would make suitesparse and MKL more palettable.
External libraries could monkey patch scipy
Libraries like intels intelex stuff could monkey patch the sparse array classes.
Bespoke implementation
A bespoke implementation could also be written. This seems more difficult due to the current support for custom threaded code in scipy.
Additional context (e.g. screenshots, GIFs)

 Environment creation
mamba create -yn multithreaded-spmm -c conda-forge -c intel python=3.10 scipy sparse_dot_mkl python-graphblas ipykernel

from scipy import sparse
import numpy as np

import sparse_dot_mkl
import graphblas as gb

X = sparse.random(
    10_000,
    10_000,
    density=0.01,
    format='csr',
    random_state=np.random.default_rng(),
    dtype=np.float32
)
Y = sparse.random(
    10_000,
    10_000,
    density=0.01,
    format='csr',
    random_state=np.random.default_rng(),
    dtype=np.float32
)

Scipy
%%time
X @ Y

CPU times: user 1.55 s, sys: 70 ms, total: 1.62 s
Wall time: 1.61 s

python-graphblas
%%time
gb.io.to_scipy_sparse(
    gb.io.from_scipy_sparse(X) @ gb.io.from_scipy_sparse(Y)
)

CPU times: user 6.81 s, sys: 3.82 s, total: 10.6 s
Wall time: 733 ms

MKL
%%time
sparse_dot_mkl.dot_product_mkl(X, Y)

CPU times: user 3.68 s, sys: 464 ms, total: 4.14 s
Wall time: 263 ms

I wanted  to second this feature request with some existing alternatives beyond what is listed. In particular I've had some success with the following:

https://github.com/michelemartone/pyrsb PyRSB is by far the most robust and performant alternative I've come across for multithreaded sparse operations. I don't think it would take much to roll this into SciPy. It's quite good and only the matrix need be converted to a special format; the right operand can just be a numpy array.

PyTorch also has an implementation but it forces one to convert all the operands to torch objects in order to carry out the operations. This carries a significant overhead and is really unnecessary in my opinion.

I would consider this feature to be low-hanging-fruit that many many computational scientists would benefit from immediately.

I would wonder if MKL would also be a pretty reasonable option (at least as a first step) since scipy already links against it if it's available.
I've also done a little bit more playing around with graphblas, and it seems like it can be as fast or faster than MKL without too much trouble. It's slower in the case above since it infers the result should actually be dense (which is reasonable), so there are added conversion steps.

Some progress is being made towards this (with a custom implementation) in:

#19717


NO-ISSUE: Don't build container images on windows CI (daily-dev)

Skips container builds on windows-latest CI (daily-dev)

Hi @thiagoelg, can you please rebase your branch with main?


update interim patch

Description
Checklist

[ ] test case
[ ] doc

How to test

Maybe this patch is no longer needed?

I will try if the torchvision patch is needed.
This pr is for setuptools.distutils has some issues in the latest version and will cause torch.utils.tensorboard break.
https://msrasrg.visualstudio.com/NNIOpenSource/_build/results?buildId=30308&view=logs&j=597b6a97-1552-58b1-ca74-8e543bcf8377&t=35dc6439-9fc2-5498-5aa9-345bd49c2643


Datasets: Refactor attribute checks into own methods

Tests for new dataset check methods will follow soon in this PR.

Added all the tests now

Codecov Report
Patch coverage: 100.00% and project coverage change: +5.69 :tada:

Comparison is base (54778de) 71.64% compared to head (03a5704) 77.34%.

:exclamation: Current head 03a5704 differs from pull request most recent head db7c64b. Consider uploading reports for the commit db7c64b to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #213      +/-   ##
==========================================
+ Coverage   71.64%   77.34%   +5.69%
==========================================
  Files          21       21
  Lines         843      843
  Branches      201      198       -3
==========================================
+ Hits          604      652      +48
+ Misses        220      169      -51
- Partials       19       22       +3

Impacted Files
Coverage Δ

src/pymovements/datasets/dataset.py
80.97% <100.00%> (+19.91%)
:arrow_up:

src/pymovements/transforms.py
85.04% <0.00%> (+2.80%)
:arrow_up:

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.


Preview: System should open Select Connection Points dialog anytime when user establishes bond with unknown monomer

Steps to Reproduce

Go to Macromolecules mode - Flex mode
Load using paste from clipboard IDT type: /i2AmPr/

Put any peptide
Connect them by bond (center-to-center)

Actual behavior
System establishes connection R2-R1
Expected behavior
System opens Select Connection Points dialog anytime when user establishes bond with unknown monomer

As per requirements:
5. Establishing of bonds
       - Modal window for AP selection should be displayed anytime when user establishes bond with unknown monomer.

Versions

Ketcher Version 2.22.0-rc.2 Build at 2024-06-28; 05:30:15
Indigo Toolkit Version 1.22.0-dev.2.1-gd5637f75-wasm32-wasm-clang-12.0.0
Windows 10 Pro
Chrome Version 126.0.6478.127 (Official Build) (64-bit)

Issue found while testing - https://github.com/epam/ketcher/issues/4431

Fixed.

Ketcher Version 2.23.0-rc.3 Build at 2024-07-31; 05:31:01
Indigo Toolkit Version 1.23.0-dev.2.1-gd93b8ec4-wasm32-wasm-clang-12.0.0
Windows 10 Pro
Chrome Version 127.0.6533.89 (Official Build) (64-bit)


Dynamic 'from' address for mail agent

Hi,
I am working with mailAgent , I need to set different from address and subject based on my recipient.And it worked with subject by using liquid option ,but it had not worked for 'from' attribute ,Always I am getting from address as the attribute set in .env file.

Hi @bhagyalakshmikk,
I think that is a limitation of your email provider. Huginn will set the value you configure in the from field but some providers do not allow to "fake" the sender and always set it to your email address. A service like http://www.mailgun.com/ will allow you to configure the from address.

I'm going to close this.  Please reopen if you have more questions!


Fixed #23878 -- Move Query and Prefetch documentation

Previously they were in queries.txt, as per discussion on the ticket, they have been moved to the bottom of querysets.txt, with relevant links added into the same page.

merged in 8f5d6c77b6bbe0390b683cea649de6ad24d80fef, thanks.


Added legend hide/show click listener.

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Feature: ability to listen on legend show/hide.

What is the current behavior? (You can also link to an open issue here)

The server was not notified about user click events

What is the new behavior (if this is a feature change)?

The server can listen on a hide/show data-set event.

Other information:

Could you please create a view in the demo demonstrating your PR. thx

Demo is added for the first chart, but it shall work with all the charts.

Michael, is there anything I shall add to get the pull approved?

No thanks for your work. I will approve it asap but it will take another few days because I have to finish a important project till next week ;)


Fixed link

Signed-off-by: chinmaym07<EMAIL_ADDRESS>Description
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Does this fix the issue? @leecalcote sir


AutoGPT FReezes

After running the command, it just says "waiting for user input" but on discord it doesn't pick my response. Do i use "y" or "!y"?

y

Just says "Waiting for user to reply via discord..." no matter what I type


Ability to set custom expiry time on payment requests

Detailed Description
Make it possible to override the invoice expiry time on a per invoice basis.
Context
By default, invoices are set to expire after 10 minutes. This doesn't fit all use cases.
Possible Implementation

Add Expiry Time section to bottom of the Request form
Add a dropdown that is populated with preset values (10 minutes, 1 hour, 6 hours, 12 hours etc)
If set, pass selected value through to lnd when creating the invoice

Closed via https://github.com/LN-Zap/zap-desktop/pull/2427


lightbox_overlay: Fix & not being rendered as desired.

The attempt to render & doesn't work. So, just replacing it
with and to make it always work.
before:

after:

discussion:https://chat.zulip.org/#narrow/stream/6-frontend/topic/UI.20issues.20on.20MacOS.20desktop.20app

Should this be Pan and zoom? what do we keep z capital here?

Yes, the z should be lowercase.
t operates on text strings, not HTML strings, so {{t "Pan & zoom"}} would work correctly (same as if you were just interpolating without translation: {{"Pan & zoom"}}).

I will add maybe the & symbol? Or written might be heavy to translate in other languages. Own experience!

& is better than "and" in this context.


feat(local): install minio object storage via helm chart

Ticket https://phabricator.wikimedia.org/T343112
This is prep work for moving backup transfer over to an S3 client. As of this PR, there are no consumers of the MinIO service.
How to test/use this locally

Apply the changes and wait for the minio service to become ready
Install the minio client
Open a tunnel for the service:kubectl port-forward svc/minio 9000:9000

Set an alias for your local clustermc alias set minikube "http://localhost:9000/" minio $(k get secrets/minio-credentials -o json | jq -r .data.rootPassword | base64 -d)

Poke around, e.g. create a new bucket and upload a filemc mb test-bucket
echo "oh wow" > foo.txt
mc cp foo.txt minikube/test-bucket
mc cat minikube/test-bucket/foo.txt

It would also be possible to create an ingress for the service which exposes an administration UI, but I'm not sure this is currently needed?

This can be tested in conjunction with https://github.com/wmde/wbaas-backup/pull/24 and https://github.com/wbstack/charts/pull/125 using
diff --git a/k8s/helmfile/env/local/wbaas-backup.values.yaml.gotmpl b/k8s/helmfile/env/local/wbaas-backup.values.yaml.gotmpl
index 8d9459c..47cd659 100644
--- a/k8s/helmfile/env/local/wbaas-backup.values.yaml.gotmpl
+++ b/k8s/helmfile/env/local/wbaas-backup.values.yaml.gotmpl
@@ -6,8 +6,15 @@ job:
   successfulJobsHistoryLimit: 1
   cronSchedule: "* * 1 1 *"

+scratchDiskSpace: 4Gi
+
+restorePodRunning: false
+
 storage:
-  scratchDiskSpace: 4Gi
-  gcs:
-    bucketName: nacho-cheese
-    uploadToBucket: false
+  bucketName: backups
+  uploadToBucket: true
+  accessKeySecretName: minio-credentials
+  accessKeySecretKey: rootUser
+  secretKeySecretName: minio-credentials
+  secretKeySecretKey: rootPassword
+  endpoint: http://minio.default.svc.cluster.local:9000
diff --git a/k8s/helmfile/helmfile.yaml b/k8s/helmfile/helmfile.yaml
index ed21617..61eb86e 100644
--- a/k8s/helmfile/helmfile.yaml
+++ b/k8s/helmfile/helmfile.yaml
@@ -210,7 +210,7 @@ releases:

   - name: wbaas-backup
     namespace: default
-    chart: wbstack/wbaas-backup
+    chart: ./../../../charts/charts/wbaas-backup
     version: 0.0.6
     <<: *default_release


Step 7 Provide context

In step 7 it goes into detail about how to provide a context
it tells us...
The way to pass it in is with a Component Factory and using the @BindsInstance annotation.
If I build straight after this i get the error...
android.content.Context cannot be provided without an @Provides-annotated method.
To fix this issue I annoted property in the class that context is used like so..
class SomeClass @Inject constructor(     @ApplicationContext private val context: Context )

android-dagger\app\build\tmp\kapt3\stubs\debug\com\example\android\dagger\di\AppComponent.java:7: error: [Dagger/MissingBinding] android.content.Context cannot be provided without an @Provides-annotated method.
Same error for me too while building at the end of step 7

@aidanmack  i think you are missing  @Component.Factory annotation above the interface Factory.


Make an easy-to-manipulate version of the tables for easier data visualization

I think it'd be great if we could see running totals based on the current candidate's percentage from the latest blocks- I tried to do this but ended up finding difficulty in the iterative nature of the actual output HTMLs.

Thanks @hitchbro
#83  added a .csv file we're including in our output that folks are using to do fun visualization things :D
Give it a look and let us know if there is something missing :D


[feat] Taskbar progress indicator (Windows)

Describe the problem
A user of my application requested this feature. Here's the equivalent feature in Electron: https://www.electronjs.org/docs/latest/tutorial/progress-bar
Describe the solution you'd like
Convenient API exposed on Tauri::window from Rust to set_taskbar_progress(), or something equivalent.
Alternatives considered
I attempted to use other rust crates such as winapi-easy and winsafe. They gave COM errors about conflicts with the window already managed by Tauri.
I couldn't find a way to do this using the underlying gtk ApplicationWindow instance either. Please advise if you know of a way.
Additional context
No response

Duplicate of #4208. Thanks for the request!

Thanks @FabianLars. I searched "taskbar progress" but didn't see that one. Cheers! 🍻


What is the config_path in "Predict mutational effect" part?

I was trying to run the code of the "Predict mutational effect" part in the readme file. However, I don't know how to set up the config:
config = {     "foldseek_path": None,     "config_path": "/you/path/to/SaProt_650M_AF2",     "load_pretrained": True, }
I initially thought that the config_path should be the path to the weight file, but however I tried, there is always error.
Could you please tell me how to set up the config_path, or if no config file is given, how to write one myself?

Hi,
The config_path points to the directory that contains all files to initialize a huggingface model, e.g. https://huggingface.co/westlake-repl/SaProt_650M_AF2.
To simply load SaProt, your config could be:
config = {
    "foldseek_path": None,
    "config_path": "westlake-repl/SaProt_650M_AF2",
    "load_pretrained": True,
}

Thx for your explanation!


Added Go workspace for submodules

See https://go.dev/doc/tutorial/workspaces
Description
Added Go workspace for submodules in the repo to be able to develop locally without go mod local replacement requirements.
For more information see:
https://go.dev/doc/tutorial/workspaces
https://dev.to/gophers/what-are-go-workspaces-and-how-do-i-use-them-1643
Type of Change

~Bug Fix~
~New Feature~
~Breaking Change~
~Refactor~
~Documentation~
[X] Other (please describe): developer environment enhancement.

Checklist

[X] I have read the contributing guidelines

[X] Existing issues have been referenced (where applicable)

[X] I have verified this change is not present in other open pull requests

[X] Functionality is documented

[X] All code style checks pass

[X] New code contribution is covered by automated tests

[X] All new and existing tests pass

[ ] Depends on #977 .

I will have to take a look at the licensei CI issue.

We should take consideration to not push go workspace files at all.
See below:
Best practises and Warnings
Early posts from the community are suggesting that not committing your go.work file is preferable. This makes sense, it is used for local development and after you have made and tested your changes to a module, you should push it, tag it and then reference it in your go.mod file as usual. Therefore, sharing go.work files doesn't make sense.
Consider adding go.work to your .gitignore.
 This could lead to production builds having development code in unintentionally. It therefore might be worth always running production builds with GOWORK=off go build ./... to be on the safe side.


How to Authenticate with the new OneDrive API for Windows Store App?

Is it possible to add a sample on how to authenticate with the new OneDrive API for Windows Store App? Thanks!

The code in this Gist provides details on how to authenticate with a Windows Store app using single sign-in. You can use this class with the OneDriveSDK from this project to sign-in and call the OneDrive API.

I want to be able to import & export files from my app to my OneDrive folder. However, I don't want to release the app, as it will just be used for internal use. Does this mean that I can't do this using the OneDrive API? Are there any other possibilities? Thanks.

@casaout You can implement the web-based OAuth flow in a web view just like the example in Windows forms does. You can also just register your app with the Windows Store to get a unique identifier but then not release the app.


Some questions and suggestions about headscale-ui

Question 1:
The ip of the docker network name cannot be obtained, and the format is incorrect.
The network inside the virtual machine is actually accessible by direct name
PING headscale (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=42 time=0.081 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=42 time=0.058 ms
PING headscale-ui (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=42 time=0.033 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=42 time=0.037 ms
Can you consider supporting formats like http://headscale:8080?
Question 2:
http://<IP_ADDRESS>:8080 and the apikey is filled in, the verification cannot be passed
Request supports local authentication and http authentication
Question 3:
Can headscale-ui support output on port 80?
My signature is hung on nginx and then proxied back, and I don't need headscale-ui to have its own signature.
Many thanks.

For Question 1, you might be misunderstanding how the UI works. The docker container doesn't do any direct communication to headscale. All requests leave and arrive via your browser, and your browser definitely isn't inside a docker container.
Question 2 not really sure what you're asking for here. If you need additional authentication methods you can put in a forward auth proxy. Anything more sophisticated is only feasible with a backend authentication platform, and headscale UI is frontend only.
Question 3, I default to https as a security measure. You can make a custom caddyfile and place it in /data/Caddyfile via a bind mount if you want a non-secure connection. I may redo the caddyfile to use caddy's JSON at some point so I can be more sophisticated about environment variables.

I'll close for now, Question 3 will be addressed with #37

Authentication failed, but browser access is no problem

Can you tell me what the console error says when this happens? You can find out by opening the dev console (control+shift+i) and reading out the error.
theoretically what you are trying to do should work, but it all works on the browser fetch method, which sometimes gets unhappy with insecure sites. I suspect you're having CORS problems because the browser doesn't think it's the same domain.

headscale must be served over TLS/HTTPS
Remote access does not support unencrypted traffic.

thanks bro
i found this comment on headscale project ， problem resolve


Flaky test: test_tutorials.test_onnx_inference_on_onnx_model

http://jenkins.mxnet-ci.amazon-ml.com/blue/organizations/jenkins/incubator-mxnet/detail/PR-10913/12/pipeline
FAIL: test_tutorials.test_onnx_inference_on_onnx_model

----------------------------------------------------------------------

Traceback (most recent call last):

  File "/usr/local/lib/python3.5/dist-packages/nose/case.py", line 198, in runTest

    self.test(*self.arg)

  File "/work/mxnet/tests/tutorials/test_tutorials.py", line 161, in test_onnx_inference_on_onnx_model

    assert _test_tutorial_nb('onnx/inference_on_onnx_model')

AssertionError:

-------------------- >> begin captured stdout << ---------------------

An error occurred while executing the following cell:

------------------

mx.test_utils.download(url, dirname = model_folder)

if not os.path.isdir(os.path.join(model_folder, current_model)):

    print('Extracting model...')

    tar = tarfile.open(archive_file, "r:gz")

    tar.extractall(model_folder)

    tar.close()

    print('Extracted')

------------------

ConnectionResetErrorTraceback (most recent call last)

/usr/local/lib/python3.5/dist-packages/urllib3/response.py in _error_catcher(self)

    301             try:

--> 302                 yield

    303

/usr/local/lib/python3.5/dist-packages/urllib3/response.py in read(self, amt, decode_content, cache_content)

    383                 cache_content = False

--> 384                 data = self._fp.read(amt)

    385                 if amt != 0 and not data:  # Platform-specific: Buggy versions of Python.

/usr/lib/python3.5/http/client.py in read(self, amt)

    447             b = bytearray(amt)

--> 448             n = self.readinto(b)

    449             return memoryview(b)[:n].tobytes()

/usr/lib/python3.5/http/client.py in readinto(self, b)

    487         # (for example, reading in 1k chunks)

--> 488         n = self.fp.readinto(b)

    489         if not n and b:

/usr/lib/python3.5/socket.py in readinto(self, b)

    574             try:

--> 575                 return self._sock.recv_into(b)

    576             except timeout:

/usr/lib/python3.5/ssl.py in recv_into(self, buffer, nbytes, flags)

    928                   self.__class__)

--> 929             return self.read(nbytes, buffer)

    930         else:

/usr/lib/python3.5/ssl.py in read(self, len, buffer)

    790         try:

--> 791             return self._sslobj.read(len, buffer)

    792         except SSLError as x:

/usr/lib/python3.5/ssl.py in read(self, len, buffer)

    574         if buffer is not None:

--> 575             v = self._sslobj.read(len, buffer)

    576         else:

ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

ProtocolErrorTraceback (most recent call last)

/usr/local/lib/python3.5/dist-packages/requests/models.py in generate()

    744                 try:

--> 745                     for chunk in self.raw.stream(chunk_size, decode_content=True):

    746                         yield chunk

/usr/local/lib/python3.5/dist-packages/urllib3/response.py in stream(self, amt, decode_content)

    435             while not is_fp_closed(self._fp):

--> 436                 data = self.read(amt=amt, decode_content=decode_content)

    437

/usr/local/lib/python3.5/dist-packages/urllib3/response.py in read(self, amt, decode_content, cache_content)

    400                         # Content-Length are caught.

--> 401                         raise IncompleteRead(self._fp_bytes_read, self.length_remaining)

    402

/usr/lib/python3.5/contextlib.py in __exit__(self, type, value, traceback)

     76             try:

---> 77                 self.gen.throw(type, value, traceback)

     78                 raise RuntimeError("generator didn't stop after throw()")

/usr/local/lib/python3.5/dist-packages/urllib3/response.py in _error_catcher(self)

    319                 # This includes IncompleteRead.

--> 320                 raise ProtocolError('Connection broken: %r' % e, e)

    321

ProtocolError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))

During handling of the above exception, another exception occurred:

ChunkedEncodingErrorTraceback (most recent call last)

<ipython-input-4-e599fff213cd> in <module>()

----> 1 mx.test_utils.download(url, dirname = model_folder)

      2 if not os.path.isdir(os.path.join(model_folder, current_model)):

      3     print('Extracting model...')

      4     tar = tarfile.open(archive_file, "r:gz")

      5     tar.extractall(model_folder)

/work/mxnet/python/mxnet/test_utils.py in download(url, fname, dirname, overwrite)

   1415     assert r.status_code == 200, "failed to open %s" % url

   1416     with open(fname, 'wb') as f:

-> 1417         for chunk in r.iter_content(chunk_size=1024):

   1418             if chunk: # filter out keep-alive new chunks

   1419                 f.write(chunk)

/usr/local/lib/python3.5/dist-packages/requests/models.py in generate()

    746                         yield chunk

    747                 except ProtocolError as e:

--> 748                     raise ChunkedEncodingError(e)

    749                 except DecodeError as e:

    750                     raise ContentDecodingError(e)

ChunkedEncodingError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))

ChunkedEncodingError: ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))

--------------------- >> end captured stdout << ----------------------

----------------------------------------------------------------------

@KellenSunderland just wanted to check what is the status of the retry logic on the mx.test_utils.download() ? That would help with that particular bug.
@eric-haibin-lin I have moved all models that were 500MB+ to <50MB models, so the likeliness of download errors will decrease.

@eric-haibin-lin this should be solved by https://github.com/apache/incubator-mxnet/pull/11181 please consider closing (tutorial tests are moving to nightly as well)


Enable compiling the workspace with --tests --all-features

A hotfix to enable compiling the workspace with --tests --all-features.
It is recommended that

[...] features should be additive. That is, enabling a feature should not disable functionality, and it should usually be safe to enable any combination of features. [...]

meaning the code should compile with all features enabled as well.
(Selfish reason is that I am using these cargo options in the rust-analyzer settings globally to enable code completion and error / warnings hints in any Rust project in all code, including code compiled conditionally using features and all tests. If the workspace stops compiling before it reaches the code I am working on, I get no error hints.)

Codecov Report

Merging #890 (c9a0c53) into main (c1180a7) will decrease coverage by 4.13%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #890      +/-   ##
==========================================
- Coverage   49.90%   45.78%   -4.13%
==========================================
  Files         432      410      -22
  Lines       35058    33546    -1512
  Branches     7617     7218     -399
==========================================
- Hits        17497    15358    -2139
- Misses      12284    13679    +1395
+ Partials     5277     4509     -768

Flag
Coverage Δ

unittests-aries-vcx
45.78% <ø> (-4.09%)
:arrow_down:

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

Impacted Files
Coverage Δ

libvdrtools/src/lib.rs
91.07% <ø> (ø)

... and 92 files with indirect coverage changes


Update README.md

Added Installation document and change usage.
The binary didn't work directly, but it worked through the Go vet tool, So I updated usage document like this PR.

Thanks!


create pepes of ordinals collection

tyy

see pr https://github.com/ordinals-wallet/ordinals-collections/pull/2185


DefaultDataFetcherObservationConvention-missing DataFetcherLowCardinalityKeyNames.ERROR_TYPE for GraphQL errors

Project details:
Spring Boot project, having:

org.springframework.boot' version '3.1.5'
spring-boot-starter-graphql:3.0.1
spring-boot-starter-actuator
spring-boot-starter-aop
no custom handlers, filters or error handling

According to this doc: https://docs.spring.io/spring-graphql/reference/observability.html#observability.server.request, by default, in case of data fetching errors, the graphql.error.type should be created and have an appropriate value.
But in case of Spring GraphQL, from what I know, read and debugged, errors (any GraphQl Error, for instance a ValidationError) are resolved and returned in "error" field in response, there is no Throwable exception thrown.
Having all this info, I noticed the following check in DefaultDataFetcherObservationConvention, when errorType is saved:
	protected KeyValue errorType(DataFetcherObservationContext context) {
		if (context.getError() != null) {
			return KeyValue.of(DataFetcherLowCardinalityKeyNames.ERROR_TYPE, context.getError().getClass().getSimpleName());
		} return ERROR_TYPE_NONE;
	}

context.getError() refers to a Throwable error, which is missing in the case described above. So the key is not created in case of a ValidationError, even if I expect it to be there. I am mentioning that for a successful request, I can see the key with default value NONE created, so the configurations should be ok.
Is this the intended behaviour?
If yes..then in what case I will have the DataFetcherLowCardinalityKeyNames.ERROR_TYPE populated with a different value than the default one?
If yes, does that mean that in order to collect informations about GraphQL errors I should do something custom, like a filter or a handler?
Thank you in advance!

Hello @stefaniasm, thanks for reaching out!
First I would like us to be on the same page, so let's use the following example to discuss.
type Mutation {
    createBook(bookInput: BookInput): Book
}

input BookInput {
    name: String
    authorId: ID
}

type Book {
    id: ID
    name: String
    author: Author
    missing: Boolean
}

type Author {
    id: ID
    firstName: String
    lastName: String
}

We'll use this mutation operation for different cases. The implementation looks like:
@Controller
public class BookController {

    @MutationMapping
    public Book createBook(@Argument @Validated BookInput bookInput) {
        // throw new IllegalStateException("this is a custom error");
        return new Book(42L, "Spring for GraphQL book", new Author(12L, "Spring", "team"));
    }
}

public class BookInput {

    @NotNull
    @Size(max=5)
    private String name;

    @NotNull
    private Long authorId;

    //...
}

Exception thrown by the data fetcher itself
If I uncomment the exception throwing in the controller itself and send the following operation:
mutation {
  createBook(bookInput: {name:"test", authorId: 12}) {
    id
  }
}

I am getting the graphql.error.type=IllegalStateException in the "graphql.datafetcher" observation.
Server validation exception
If I comment again the exception throwing in the controller and this time send a document that will fail the validation because the name is too long:
mutation {
  createBook(bookInput: {name:"booknameistoolong", authorId: 12}) {
    id
  }
}

I am getting the graphql.error.type=ConstraintViolationException in the "graphql.datafetcher" observation.
Invalid document
This time, let's send an invalid document that will not pass the GraphQL validation:
mutation {
  createBook(invalid: {name:"test", authorId: 12}) {
    id
  }
}

The response is the following:
{
  "errors": [
    {
      "message": "Validation error (UnknownArgument@[createBook]) : Unknown field argument 'invalid'",
      "locations": [
        {
          "line": 2,
          "column": 14
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    }
  ]
}

In this case, the data fetcher is never invoked and there is no "graphql.datafetcher" observation but there is a "graphql.request" observation that states that graphql.outcome -> REQUEST_ERROR.

does this match what you're seeing?
the collected KeyValues for the "graphql.request" might not be enough in your case. We could collect more (including from the "errors" map), but we need to take into account that there can be multiple errors and that the KeyValues we collect need to be "low cardinality" (a low, finite number of possible values otherwise this will overwhelm metric systems). We can contribute more to high cardinality KeyValues for traces

Thanks!

Hello @bclozel !
First, thank you for your time and for the great response! Very helpful!
Yes, the section "Invalid document" is exactly the case I was referring to, thanks for the clarifications.
So best approach to collect info for GraphQl error traces is to do a custom handler/filter in order to collect High cardinality Keys from the "errors" map, right? But in this case, we won't have metrics. Did I understood well?

Are you collecting this data in metrics and/or traces?
I am wondering if the KeyValues we are providing in metrics and traces for "graphql.request" in case of errors are actually enough.
Custom solution
You can implement your own ExecutionRequestObservationConvention (actually, extend DefaultExecutionRequestObservationConvention) and add the KeyValues you would like to see in metrics (low cardinality) and traces (low and high cardinality) by overriding the relevant methods. To configure it all, you can register your custom convention against the ObservationRegostry (which is a bean in a typical Spring Boot application) as a global convention, or override the GraphQlObservationInstrumentation bean and instantiate it with your custom conventions.
Enhancement request
Here, we could also simply consider this as an enhancement issue and add useful bits to the "graphql.request" observation.
I've had a look at the OTel semantic conventions and they don't show anything here for this case in GraphQL
. The implementation does something different and buffers exception types and messages in a event span. I'm not sure how this is rendered in a trace visualization.
Maybe other instrumentations are doing things differently.
If you can share what kind of information you would like to see in metrics and traces, I could suggest a custom implementation and directly implement the changes in Spring for GraphQL.

I have to collect them in metrics and traces.
"I am wondering if the KeyValues we are providing in metrics and traces for "graphql.request" in case of errors are actually enough." -> for what we are trying to do is not enough.
"If you can share what kind of information you would like to see in metrics and traces" -> on short, I would like to have the error type and message from "error" map
We want to be able to understand the big part of the issue directly from traces and also to have some sort of statistics about the number of issues occurred(so we also need metrics), to be aware of the message, of the fields included in the error, the type of the error
For that to happen, I was thinking about adding new KeyValues to the existing ones from "graphql.request" observation  (using one of your methods given above) using the "error" map..something similar to what OTel is doing, from the info you provided (buffers exception types and messages in a event span.
Thank you again!

Hey @stefaniasm
I believe @Observed support is provided by Micrometer directly. It tracks calls to the annotated method. In our case, ValidationError happen during the parse+validation phases of the request, so before the request is actually processed. This means that the data fetcher method is never called, so it is expected that your @Observed is not triggered.
In the meantime, I have discussed this matter with the Observability team and I will provide an update here once I have tested various options.

Thank you! All clear now.

Sorry for the radio silence. I've been discussing this with the Observability team, which knows much more than I do about the various backends, formats and their limitations. Our goal here is to keep using the Observation API and not tie ourselves to a particular platform. As explained in this comment, the main problem here is that there can be multiple errors for a single GraphQL request.
We can't call observation.error(Throwable) on the observation itself, since there is no exception available; we would need to call it multiple times as well and each call would override the previous value. We could collect those errors in an "errors" KeyValue for the observation, but:

we can't guarantee the low cardinality aspect since there can be multiple with many combinations
joining multiple errors with a separator, like "validation,syntax,aborted" as high cardinality would not really help either in dashboards

Instead, I've explored adding events on the GraphQL Request observation with observation.event(Event.of(String, String)). Such events will be added as annotations on spans in the tracing world, and will automatically create additional counters in the metrics world.
Here is an example of that with a local experiment.
When sending an invalid GraphQL request:

This creates annotations on the graphql request span using the "contextual name" of the event:

This also creates counters automatically under the graphql.request.* namespace, like:
$ http http://localhost:8080/actuator/metrics/graphql.request

{"name":"graphql.request","baseUnit":"seconds","measurements":[{"statistic":"COUNT","value":2.0},{"statistic":"TOTAL_TIME","value":0.041338706},{"statistic":"MAX","value":0.0}],"availableTags":[{"tag":"graphql.outcome","values":["REQUEST_ERROR"]},{"tag":"graphql.operation","values":["query"]},{"tag":"error","values":["none"]}]}

$ http http://localhost:8080/actuator/metrics/graphql.request.ValidationError

{"name":"graphql.request.ValidationError","measurements":[{"statistic":"COUNT","value":4.0}],"availableTags":[{"tag":"graphql.outcome","values":["INTERNAL_ERROR"]},{"tag":"graphql.operation","values":["query"]}]}

This adds more information to the observation and improves the situation, but we still need to decide:

should we release this in the 1.2.x line or should we wait for 1.3.x?
the contextual name (name of the span annotation) can be quite long, right now we're taking the graphQLError.getMessage(). Is there a way to improve this?
the metric name is derived from the graphQLError.getErrorType() which is in theory bounded by the ErrorType enum. Is this good enough or are we likely to create numerous counters that will clutter the metrics?
Observation events are recorded at once when the execution result is returned, this means that all events happen at the same time on the timeline and this can be hard to read

Thanks for keeping me up to date.
The improvements sound promising based on your description.
As a suggestion for point 2, maybe you could use parts of graphQLError.getMessage(), for example, using 'authorById' or 'heyThere' as contextual name might suffice, although this depends on the specific requirements of your project and the big picture.

I think we will improve a bit the proposal (especially around the contextual name of span annotations) but go with it. We've discussed it this morning and thought that this is too much of a change to introduce in the current 1.2.x line as a maintenance version, so we're targeting 1.3.0 next May.


Add molecule tests to collection

Fixes #41

Some of the checks won't run locally as easy as they do in GitHub actions. So this might get a long trail of trial&error commits before it's ready to merge.

@lbetz / @mkayontour please tell me what you think of the code.
Please don't just merge it now. We'll need to make very sure to have the commits squashed during merging and I want to review all the commit messages. There's a lot in them that was just used "under way" but doesn't bring any benefit when we have it in the history of main.

Thanks for your feedback, @mkayontour . I tried to apply the changes you requested. Could you have another look?

Talked to @lbetz . He's swamped with other tasks now but he's ok, with me merging. So: merging. Yay.


bootstrapScriptContent bug

Hi, this is more an info / documentation for the next person having the problem.
It seems like there are bugs when using this alongside bootstrapScriptContent with a script like raygun.
  !function(a,b,c,d,e,f,g,h){a.RaygunObject=e,a[e]=a[e]||function(){
  (a[e].o=a[e].o||[]).push(arguments)},f=b.createElement(c),g=b.getElementsByTagName(c)[0],
  f.async=1,f.src=d,g.parentNode.insertBefore(f,g),h=a.onerror,a.onerror=function(b,c,d,f,g){
  h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({
  e:g})}}(window,document,"script","//cdn.raygun.io/raygun4js/raygun.min.js","rg4js");

This seems to be resolved by adding bootstrapScriptContent in the head (note i'm having a nonce here so need to remove it if not using csp nonce)
<script nonce="${nonce}">${bootstrapScriptContent}</script>${head}</head>

Makes sense! Thanks for reporting. I added this to the "pitfalls" section of the readme. (ref https://github.com/Xiphe/remix-island/commit/3750578a634d1c59b14929b85f7230abf91c83a8)


How to create Custom Style Window

How to create Custom Style Window, without system's default chrome using Flutter?
Need to use it in desktop app with custom styling.

Duplicate of https://github.com/flutter/flutter/issues/31373


Refactor model.ts and db.ts

@FriedDust Have gone through the change and added comments.The added change looks OK as for new projects' standpoint; my only concern is on the removed code.
Any chance we can make it additive and less-breaking? Because our project won't be able to use this now :smile:.
@mesaugat thoughts?


redisAsyncConnect may get stuck connecting on Windows

I'm using the libuv example with MSVC 2017, but I think this applies to any that use the async model.
If you specify a connection that does not exist (and assuming you don't run into #785), then instead of calling the disconnect callback because the connection was refused, hiredis continues to try to connect when the event library (libuv in this case) signals the socket.
From what I can see, when signaling the socket, redisAsyncHandleWrite is called, which then calls __redisAsyncHandleConnect, and then redisCheckConnectDone, which then calls connect. But connect always returns EWOULDBLOCK, which redisCheckConnectDone happily accepts.
This causes the event library to signal the socket again, with the connect cycle repeated endlessly.
I think the key for this is described on WSAConnect

If the return error code indicates the connection attempt failed (that is, WSAECONNREFUSED, WSAENETUNREACH, WSAETIMEDOUT) the application can call WSAConnect again for the same socket.

I don't quite know where the error would be with IOCP (which I believe libuv uses), but I do know if you use WSAAsyncSelect, then the error code is returned as part of the callback when signaling the socket.
But in other words, by the time the socket is signaled, I think the connection has been refused, and so if you call connect again, it will retry the connection.
What I don't understand is why __redisAsyncHandleConnect needs to call  redisCheckConnectDone (which then calls connect) at all; by that point, connect has already been called, so why can't it call redisCheckSocketError (which calls getsockopt) directly?

Closing this in favor of #930


Bug fixes

These are changes I needed to make in order to successfully run main.py. Some I am more confident about than others, so I wanted to get more eyes on them.

Excellent stuff! Thanks for the great PR @AmandaKedaigle !


Resource ID changed to Asset Id in asset list

Description
This is pretty much a documentation change that I made in the code where we changed the name of Resource ID to Asset ID in asset list, this makes the tag better to read and understand.
Fixes # (issue)
#1063
Type of change
This is a documentation change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Chore (no code changes)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also
list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] My commit message/PR follows the contribution guidelines of this project
[x] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Other information:
List any documentation updates that are needed for the Wiki

I am looking into it.


ISPN-10519 Upgrade to protostream-4.3.0.Alpha11

https://issues.jboss.org/browse/ISPN-10519

@anistor The upgrade has broken karaf :worried:

@anistor don't forget to test with -Pdistribution because I had some compilation errors downstream (nightly job).
I added com.google.code.gson:gson as a dependency in javadoc-all and hotrod-client module.

Rebased.

Still failures related to NoClassDefFoundError and gson.

Updated @ryanemerson !  The fixup commits on the productisation branch should not be necessary anymore @pruivo

integrated! thanks @anistor


Generate API documentation

@rwblair can you help me with this one? Basically, this means projecting your work on sphinx-versioning for smriprep here.


Adding versioning macros to the C API?

Feature
Could we add versioning macros to the C API in wasmtime.h?
Benefit
As our embedder program can be linked against several Wasm runtimes, we wish to add compilation guards ensuring the version of these runtimes is either tested or compatible with the targets chosen by our users; without them having to face numerous compilation errors or more obscure behavior when it is not the case.
E.g.
#if WASMTIME_VERSION_MAJOR != 5
#error Unsupported Wasmtime version detected, please use Wasmtime 5.x.y
#endif

Implementation
E.g.
// wasmtime.h
#define WASMTIME_VERSION "5.0.0"
#define WASMTIME_VERSION_MAJOR 5
#define WASMTIME_VERSION_MINOR 0
#define WASMTIME_VERSION_PATCH 0

Alternatives
N/A

Seems reasonable to me to add!
One thing to watch out for though is that we'll want support in https://github.com/bytecodealliance/wasmtime/blob/main/scripts/publish.rs to have that script update these version numbers along with other version numbers.


[Feature] Clear all mocks

There is a nice function to clear the mocks.
https://facebook.github.io/jest/docs/api.html#mockfn-mockclear
However, it would be even better if there's a function call for jest to clear all mocks during afterEach, so we don't have to manually reset all data for every single module.

In Jest we reset the module registry in beforeEach. I suggest using require inside of beforeEach which will reset all modules instead of top-level requires.
Example:
let module;
describe('test', () => {
  beforeEach(() => {
    module = require('../module');
  });
  it('tests', () => {
    expect(module).toBe(…);
  });
});

This is how in Jest you'll get a fresh copy of all modules without any state for every test.

Would this be an anti-pattern with regards to ES6 import statements?

I'm hoping that https://github.com/benjamn/reify/blob/master/WHY_NEST_IMPORTS.md will eventually make it into a standard, which will be nice.
At Facebook, we actually use a transform called inline-requires and we don't yet use ES modules.
Personally, I don't see a big reason to use ES modules in test files but people want it, so they can use it but there are some drawbacks with the current spec, unfortunately.


refactor: simplify log_prob implementation in ScaledMixture

Now, rate is recovering fine. I don't see any more issue related to multi-rate.


PostgreSQL Support

Added PostgreSQL support be used in EventFlow testing of upcoming PostgreSQL Migrations support.

@pvivera Thanks for adding this, but if its for EventFlow I have been wanting to move the test code back into EventFlow as having it as this separate NuGet package (https://github.com/eventflow/EventFlow/pull/328) any thoughts?

@rasmus If this is the case, I'll move this code to EventFlow solution as you did for MSSQL. It's on your own if you want to merge this PR or close it.

Perfect. I hope it will make it a bit easier to create the PostgreSQL support in EventFlow. Let me know if there's any blockers.


Add -r option for mruby and mirb. (mrbgem is not supported)

First of all, why do we need -r for mirb and mruby? I can imagine mirb can load its initialize file before the session start, but have no idea for mruby.
Second, test suites failed. We need to pass tests before merging it.

In the current mruby interpreter, require is not supported.
If the library and application source files are split, I need to merge the source code.
When trying various libraries ,it is convenient to have functions that can be used without merging into source code.
-r is a kind of require of Ruby.
Sorry for errors, I fixed them.

OK, I understand.

:+1:


for issue #31

update bookmarklet code and positively find the vogue-client.js script

Thanks for this. It's in the latest npm release.


Code Error

Expected Behavior
bot opens and runs as normal
Actual Behavior
(PokemonGo-Bot) Jaydens-Air:PokemonGo-Bot JaydenHamence$ sh run.sh
2016-08-08 23:48:11,279 [       cli] [INFO] PokemonGO Bot v1.0
Traceback (most recent call last):
File "pokecli.py", line 502, in
main()
File "pokecli.py", line 133, in main
raise e
ValueError: Expecting , delimiter: line 99 column 1 (char 2556)
mac osx

check your config

@Dauth cant find an error?

Can you paste in your config file, somebody may be able to point out the issue

As there have been many updates since this issue was posted, I'm assuming this issue has been resolved. If I'm wrong, please reopen.


Use full page for MemoryPool blocks

CPUs doesn't prefetch across page boundaries so the cache line sized buffer isn't required.
Helps when reading from files which like page sized reads.
Also uses the page size on .NET Core and .NET Standard rather than the const 4096
Resolves https://github.com/dotnet/corefxlab/issues/2098
/cc @davidfowl @pakrym @halter73

Haunting me; not sure why this change should effect it
The active test run was aborted. Reason: FailFast:
17:35:41 *** Block being garbage collected instead of returned to pool ***
17:35:41    at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage)
17:35:41    at System.Buffers.MemoryPoolBlock.Finalize() in D:\j\workspace\windows_nt_de---4b678204\src\System.IO.Pipelines\System\Buffers\MemoryPoolBlock.cs:line 65
17:35:41    at System.Environment.FailFast(System.String, System.Exception)
17:35:41    at System.Buffers.MemoryPoolBlock.Finalize()

I don't think it's your change.
We are going to remove MemoryPool from corefxlab and move it back to Kestrel, I'll include this edit in kestrel PR.

I incorporated this change into https://github.com/aspnet/Common/pull/316

@pakrym that's brave...

If things stop working it's easy to undo.

@pakrym is wise


cmake: add check-pc-files hook to check broken pc files

see https://github.com/NixOS/nixpkgs/pull/172150
test by building seexpr
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@alexshpilkin please create a issue here with instructions on how to fix and then i'll link to it instead of the pr

Bisect claims b1149dc3031fc7d0994ae990f495a27a490725d8 cmake: add check-pc-files hook to check broken pc files broke glslang build on staging:
$ nix build -f. -L glslang
...
glslang> checking for references to /build/ in /nix/store/a7g64d1ghjr5qxvrvmp11dna9cf29nvs-glslang-<IP_ADDRESS>...
glslang> Broken paths found in a .pc file! /nix/store/a7g64d1ghjr5qxvrvmp11dna9cf29nvs-glslang-<IP_ADDRESS>/lib/pkgconfig/SPIRV-Tools.pc
glslang> The following lines have issues (specifically '//' in paths).
glslang> 3:libdir=${prefix}//nix/store/a7g64d1ghjr5qxvrvmp11dna9cf29nvs-glslang-<IP_ADDRESS>/lib
glslang> 4:includedir=${prefix}//nix/store/a7g64d1ghjr5qxvrvmp11dna9cf29nvs-glslang-<IP_ADDRESS>/include
glslang> It is very likely that paths are being joined improperly.
glslang> ex: "${prefix}/@CMAKE_INSTALL_LIBDIR@" should be "@CMAKE_INSTALL_FULL_LIBDIR@"
glslang> Please see https://github.com/NixOS/nixpkgs/issues/144170 for more details.

@Artturin @trofi
Right, I’m sorry for falling of the face of the Earth and thank you for picking up the work, but that is why the .pc file of a vendored library is relevant: glslang bundles (an older version of) spirv-headers and installs its .pc file, which consequently trips this check. Per my notes, the same applies to shaderc. Both need the same patch as in spirv-headers applied somewhere inside their source tree.
My notes also show gromacs and valhalla as unfixed, but I honestly don’t remember what was difficult to fix about them. That should be it (as of May, don’t know about now).

Then that is a bug in the build script – vendored dependencies should not install .pc files.

So I at least unblocked glslang by fixing those files in a1bad74390a.  The libraries are installed, so at a quick glance I can't see if they're used by another package.  Certainly feel free to improve this; overall the contents of output didn't seem very... "clean".

This was quite impactful.  I fixed this in more than a dozen packages myself and others fixed some, too.

Also check .cmake files https://github.com/NixOS/nixpkgs/pull/247474


2024.2 Not working

Solarman not working after 2024.2 core upgrade

Same here. No connection anymore to Deye inverter after upgrade to HA 2024.2

How to fix it?

Same here. Deye String model:
Logger: homeassistant.config_entries
Source: config_entries.py:605
First occurred: 10:29:47 (1 occurrences)
Last logged: 10:29:47

Error unloading entry <IP_ADDRESS> for solarman
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 605, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/__init__.py", line 28, in async_unload_entry
    hass.data[DOMAIN].pop(entry.entry_id)
    ~~~~~~~~~^^^^^^^^
KeyError: 'solarman'

Everything’s fine here with Version 1.4.3.

I also have version 1.4.3 and no problems. And as i can see, i will still be on it for longer.

Same here. Deye String model:
Logger: homeassistant.config_entries
Source: config_entries.py:605
First occurred: 10:29:47 (1 occurrences)
Last logged: 10:29:47

Error unloading entry <IP_ADDRESS> for solarman
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 605, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/__init__.py", line 28, in async_unload_entry
    hass.data[DOMAIN].pop(entry.entry_id)
    ~~~~~~~~~^^^^^^^^
KeyError: 'solarman'

I downgrade to version 1.4.3 and working like a charm


fix: prevent to load script again

https://github.com/callstack/repack/issues/749
Summary
In this PR, I prevented loadScript to load scripts is loaded before

Test plan
This is happening in remote federation with huge size of script and too many modules

Can you please add some tests for this scenarios? We need to document this behaviour as well as we can

Yes, I will do it

I've also noticed that we're using the same variable
sriptsPromises for both prefetching and loading - while in theoery these should not overlap, I would go with creating a separate variables to avoid potential collision in rare edge cases.

loadScript and prefetchScript are using same resolveScript. If we separate those, the same bug https://github.com/callstack/repack/issues/749 possible to be happening.

We also need to address housekeeping of the promises that have already been fulfilled - we should remove the entires from scriptsPromises that are not relevant anymore.

Ok, I will do it.

I've also noticed that we're using the same variable
sriptsPromises for both prefetching and loading - while in theoery these should not overlap, I would go with creating a separate variables to avoid potential collision in rare edge cases.

loadScript and prefetchScript are using same resolveScript. If we separate those, the same bug #749 possible to be happening.

i added a test for that. https://github.com/callstack/repack/pull/756/commits/969d6d8819498ffe95ba797c414ffabcb4810358

I've also noticed that we're using the same variable
sriptsPromises for both prefetching and loading - while in theoery these should not overlap, I would go with creating a separate variables to avoid potential collision in rare edge cases.

loadScript and prefetchScript are using same resolveScript. If we separate those, the same bug #749 possible to be happening.

In this https://github.com/callstack/repack/pull/756/commits/ee3a58c5f3f2d9d2a9ae44c47d3d0fe4b72fbdb6 commit loadScript will excute script if promise is for prefetch

@hosseinmd can you merge newest main and resolve the conflicts? Then I will proceed with another review, thanks!

Done

Done

Nice job! I'll try to review it later today

Done

Last commits rebased

Thank you for your work on this @hosseinmd, this was no easy issue to tackle! 👏 🚀


Add Simple Pure White Theme

More adaptable article reading Support adaptive page

Nice, I like it

I'm trying it out: https://petabyt.dev/blog/


Try to fix Code tests

It looks like --noEmit broke our unit tests:

r? @ChayimFriedman2
I suppose we might still:

compile stuff twice
not detect failing tests on CI (since we didn't notice this)

CC #10688

bors r+


aws-azure-login module is not recognized in domain user profile

This is sorted, @ankitosh please share your fix :)


Improve documentation about plugins

Hi there,
Not sure if this is the best place to ask questions, so if there's a better one please point me there.
I'm trying to use plugins, and am failing hard. I'm making a few observations that I don't understand, thus I'm not sure if they are bugs or features. The documentation about plugins is quite terse, so hopefully those questions will help improving it afterwards (I'll be happy to open a PR for that).

I cannot access ctx.events from inside my plugin, thus my plugin's api cannot advance the game state.
I cannot access my plugin's data in client-side React components, ctx.myplugin is undefined.
I don't understand how the data works. I've looked at the PlayerPlugin for reference, and it seems it copies the plugin's data in the api call, the exposes that data, then in flush it returns the data exposed by api. That seems overly complex to me (and is not explained in the docs). I've thus tried to simply use data and have flush return that, and it seems to work fine. Any reason not to do that?

Once again, I can provide code examples if needed.
Thanks!
PS: I'm naming this "Improve documentation about plugins" because that's the outcome that I'd like to see here, and I'll do my best to make it happen. :-)

The plugin API is very much in flux, and I didn't want to document it too much until it settles down a bit.
Let me add some background about plugins, which should hopeful answer some of your questions (and we can add some of this info to the docs as well):
Each plugin gets its own private state
If you have plugins A and B, the game state is initialized to:
{
  G: {},
  ctx: {},
  plugins: {
    A: { data: {} },
    B: { data: {} },
  }
}

The setup function initializes data
This is probably not that confusing, despite the terseness of the docs.
api creates an ephemeral object (that is not persisted)
The game state looks like this after applying the api functions from all the plugins:
{
  G: {},
  ctx: {},
  plugins: {
    A: { data: {}, api: {} },
    B: { data: {}, api: {} },
  }
}

These new ephemeral objects are made available in ctx as ctx.A and ctx.B.  The intention is that the user will interact with these objects, and it will update its own in-memory state in response to that.
flush then persists any necessary data back into data
This completes one cycle.  This whole circus is to ensure that api does not get persisted, and it allows providing the user with a nice object in ctx to interact with.
Specific Questions

I cannot access ctx.events from inside my plugin, thus my plugin's api cannot advance the game state.

The plugins are intended to be independent.  events and random are also plugins, so you shouldn't be using values from there in your plugins (i.e. this is not a supported use-case).
If you do want to advance the game state in your plugin, you'll have to copy over the code from the events plugin, which uses the undocumented and dangerous flushRaw (use this only if you understand the internals of boardgame.io really well).

I cannot access my plugin's data in client-side React components, ctx.myplugin is undefined.

If you look at the state object at the top of this comment, that should show you how to access plugin data:
client.getState().plugins.A.data   // for example

For React, you should see the plugins data in props:
function Board(props) {
  return (
    <pre>{JSON.stringify(props.plugins.A.data)}</pre>
  );
}

Thanks for the answers and help!
Regarding the state / data thing, can you confirm there is nothing wrong with using the data object passed to api as your state, and then have flush simply return the same data object? As far as I understand (and as far as my tests go) this works fine. If that's the case, I would even encourage you to make that the default use case, and make flush optional, as that was what was intuitive to me.

The plugins are intended to be independent. events and random are also plugins, so you shouldn't be using values from there in your plugins (i.e. this is not a supported use-case).

I understand why you would want that to be the case, but I will argue that events and random are too much core to the engine to be treated as regular plugins. I see plugins as a very elegant way to organize code and make bits sharable / reusable, but not being to access core functionalities of the engine make them a lot less useful to me. I also think that will be very confusing to developers as, once again, events and random are core to boardgame.io.

One way we can resolve this is to have data from plugins initialized earlier be available to plugins that are initialized later.  Then, we just need to guarantee that events and random are processed before any user supplied plugins (this is already true).

That's interesting, being able to build plugins on top of other plugins. Might be too much power though? I'm afraid it might lead to difficulties for programmers because you have to be aware of all the plugins loading order when building your plugin.
Anyway, if that's simpler to do than treating a few "system" plugins as exceptions, I personally don't mind. :)


Deploy MIAA via DC dashboard fails

Azure Data Studio Version:

Steps to Reproduce:

Connect to an existing data controller
Use the "+ New Instance" button on the controller dashboard to initiate a new MIAA deployment
After filling out the details, click Deploy.

The deployment fails and launches the Notebook.
Running this notebook as-is via "Run cells" succeeds.

@ranasaria Can you help @dnethi here with the workaround that you and Sean had to verify it's the same Python issue?

Dinkar, can you add the deployment output channel log? Some screenshots of the failure that you see would be helpful?
Also, answer the following questions as it helps us understand if what you are seeing is the same as another known issue.
Is the machine where you are testing this 'domain' joined?
Is it the user account local or domain account?
Is this on physical hardware or a VM?
Is this a newly commissioned machine?

Sure..
In- line..
Dinakar Nethi
Dinakar.Nethi<EMAIL_ADDRESS>| Senior Program Manager | Azure Arc - Data |
From: Arvind Ranasaria<EMAIL_ADDRESS>Sent: Wednesday, September 9, 2020 10:11 PM
To: microsoft/azuredatastudio<EMAIL_ADDRESS>Cc: Dinakar Nethi<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [microsoft/azuredatastudio] Deploy MIAA via DC dashboard fails (#12111)
Dinkar, can you add the deployment output channel log? Some screenshots of the failure that you see would be helpful?
Searching for existing azdata installation...
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" --version"
stdout : 20.1.1
SQL Server 2019 (15.0.4063)
Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)]
Python location 'C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\python.exe'
Found existing azdata installation of version (v20.1.1) at path:C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" login -e https://<IP_ADDRESS>:30080 -u arcadmin --output json"
stdout : {
"logs": [],
"result": null,
"stderr": [],
"stdout": [
"Logged in successfully to https://<IP_ADDRESS>:30080 in namespace augbash1. Setting active context to augbash1."
]
}
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc config show --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc endpoint list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc postgres server list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc sql mi list --output json"
stdout : {
"logs": [],
"result": [
{
"name": "chlafrenmi3",
"replicas": "0/1",
"serverEndpoint": "<IP_ADDRESS>:1433",
"state": "Updating"
}
],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": {
"apiVersion": "arcdata.microsoft.com/v1alpha1",
"kind": "datacontroller",
"metadata": {
"creationTimestamp": "2020-09-01T19:42:11Z",
"generation": 1,
"name": "augbash1",
"namespace": "augbash1",
"resourceVersion": "22500",
"selfLink": "/apis/arcdata.microsoft.com/v1alpha1/namespaces/augbash1/datacontrollers/augbash1",
"uid": "720ec6f6-c3d1-430f-9740-fbd6a83bbbd5"
},
"spec": {
"credentials": {
"controllerAdmin": "controller-login-secret",
"dockerRegistry": "mssql-private-registry",
"serviceAccount": "sa-mssql-controller"
},
"docker": {
"imagePullPolicy": "Always",
"imageTag": "private-preview-aug-2020-new",
"registry": "azurearcdata.azurecr.io",
"repository": "azure-arc-data"
},
"security": {
"allowDumps": true,
"allowNodeMetricsCollection": true,
"allowPodMetricsCollection": true,
"allowRunAsRoot": false
},
"services": [
{
"name": "controller",
"port": 30080,
"serviceType": "LoadBalancer"
},
{
"name": "serviceProxy",
"port": 30777,
"serviceType": "LoadBalancer"
}
],
"settings": {
"ElasticSearch": {
"vm.max_map_count": "-1"
},
"azure": {
"connectionMode": "indirect",
"location": "centralus",
"resourceGroup": "adshybrid-raj",
"subscription": "a5082b19-8a6e-4bc5-8fdd-8ef39dfebc39"
},
"controller": {
"displayName": "augbash1",
"enableBilling": "True",
"logs.rotation.days": "7",
"logs.rotation.size": "5000"
}
},
"storage": {
"data": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "15Gi"
},
"logs": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "10Gi"
}
}
},
"status": {
"state": "Ready"
}
},
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [
{
"description": "Management Proxy",
"endpoint": "https://<IP_ADDRESS>:30777",
"name": "mgmtproxy",
"protocol": "https"
},
{
"description": "Log Search Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/kibana",
"name": "logsui",
"protocol": "https"
},
{
"description": "Metrics Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/grafana",
"name": "metricsui",
"protocol": "https"
},
{
"description": "Cluster Management Service",
"endpoint": "https://<IP_ADDRESS>:30080",
"name": "controller",
"protocol": "https"
}
],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [],
"stderr": [],
"stdout": []
}
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" login -e https://<IP_ADDRESS>:30080 -u arcadmin --output json"
stdout : {
"logs": [],
"result": null,
"stderr": [],
"stdout": [
"Logged in successfully to https://<IP_ADDRESS>:30080 in namespace augbash1. Setting active context to augbash1."
]
}
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc config show --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc endpoint list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc postgres server list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc sql mi list --output json"
stdout : {
"logs": [],
"result": {
"apiVersion": "arcdata.microsoft.com/v1alpha1",
"kind": "datacontroller",
"metadata": {
"creationTimestamp": "2020-09-01T19:42:11Z",
"generation": 1,
"name": "augbash1",
"namespace": "augbash1",
"resourceVersion": "22500",
"selfLink": "/apis/arcdata.microsoft.com/v1alpha1/namespaces/augbash1/datacontrollers/augbash1",
"uid": "720ec6f6-c3d1-430f-9740-fbd6a83bbbd5"
},
"spec": {
"credentials": {
"controllerAdmin": "controller-login-secret",
"dockerRegistry": "mssql-private-registry",
"serviceAccount": "sa-mssql-controller"
},
"docker": {
"imagePullPolicy": "Always",
"imageTag": "private-preview-aug-2020-new",
"registry": "azurearcdata.azurecr.io",
"repository": "azure-arc-data"
},
"security": {
"allowDumps": true,
"allowNodeMetricsCollection": true,
"allowPodMetricsCollection": true,
"allowRunAsRoot": false
},
"services": [
{
"name": "controller",
"port": 30080,
"serviceType": "LoadBalancer"
},
{
"name": "serviceProxy",
"port": 30777,
"serviceType": "LoadBalancer"
}
],
"settings": {
"ElasticSearch": {
"vm.max_map_count": "-1"
},
"azure": {
"connectionMode": "indirect",
"location": "centralus",
"resourceGroup": "adshybrid-raj",
"subscription": "a5082b19-8a6e-4bc5-8fdd-8ef39dfebc39"
},
"controller": {
"displayName": "augbash1",
"enableBilling": "True",
"logs.rotation.days": "7",
"logs.rotation.size": "5000"
}
},
"storage": {
"data": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "15Gi"
},
"logs": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "10Gi"
}
}
},
"status": {
"state": "Ready"
}
},
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [
{
"name": "chlafrenmi3",
"replicas": "0/1",
"serverEndpoint": "<IP_ADDRESS>:1433",
"state": "Updating"
}
],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [
{
"description": "Management Proxy",
"endpoint": "https://<IP_ADDRESS>:30777",
"name": "mgmtproxy",
"protocol": "https"
},
{
"description": "Log Search Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/kibana",
"name": "logsui",
"protocol": "https"
},
{
"description": "Metrics Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/grafana",
"name": "metricsui",
"protocol": "https"
},
{
"description": "Cluster Management Service",
"endpoint": "https://<IP_ADDRESS>:30080",
"name": "controller",
"protocol": "https"
}
],
"stderr": [],
"stdout": []
}
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" login -e https://<IP_ADDRESS>:30080 -u arcadmin --output json"
stdout : {
"logs": [],
"result": null,
"stderr": [],
"stdout": [
"Logged in successfully to https://<IP_ADDRESS>:30080 in namespace augbash1. Setting active context to augbash1."
]
}
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc config show --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc dc endpoint list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc postgres server list --output json"
Executing command ""C:\Program Files (x86)\Microsoft SDKs\Azdata\CLI\wbin\azdata.cmd" arc sql mi list --output json"
stdout : {
"logs": [],
"result": [
{
"name": "chlafrenmi3",
"replicas": "0/1",
"serverEndpoint": "<IP_ADDRESS>:1433",
"state": "Updating"
}
],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": {
"apiVersion": "arcdata.microsoft.com/v1alpha1",
"kind": "datacontroller",
"metadata": {
"creationTimestamp": "2020-09-01T19:42:11Z",
"generation": 1,
"name": "augbash1",
"namespace": "augbash1",
"resourceVersion": "22500",
"selfLink": "/apis/arcdata.microsoft.com/v1alpha1/namespaces/augbash1/datacontrollers/augbash1",
"uid": "720ec6f6-c3d1-430f-9740-fbd6a83bbbd5"
},
"spec": {
"credentials": {
"controllerAdmin": "controller-login-secret",
"dockerRegistry": "mssql-private-registry",
"serviceAccount": "sa-mssql-controller"
},
"docker": {
"imagePullPolicy": "Always",
"imageTag": "private-preview-aug-2020-new",
"registry": "azurearcdata.azurecr.io",
"repository": "azure-arc-data"
},
"security": {
"allowDumps": true,
"allowNodeMetricsCollection": true,
"allowPodMetricsCollection": true,
"allowRunAsRoot": false
},
"services": [
{
"name": "controller",
"port": 30080,
"serviceType": "LoadBalancer"
},
{
"name": "serviceProxy",
"port": 30777,
"serviceType": "LoadBalancer"
}
],
"settings": {
"ElasticSearch": {
"vm.max_map_count": "-1"
},
"azure": {
"connectionMode": "indirect",
"location": "centralus",
"resourceGroup": "adshybrid-raj",
"subscription": "a5082b19-8a6e-4bc5-8fdd-8ef39dfebc39"
},
"controller": {
"displayName": "augbash1",
"enableBilling": "True",
"logs.rotation.days": "7",
"logs.rotation.size": "5000"
}
},
"storage": {
"data": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "15Gi"
},
"logs": {
"accessMode": "ReadWriteOnce",
"className": "managed-premium",
"size": "10Gi"
}
}
},
"status": {
"state": "Ready"
}
},
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [
{
"description": "Management Proxy",
"endpoint": "https://<IP_ADDRESS>:30777",
"name": "mgmtproxy",
"protocol": "https"
},
{
"description": "Log Search Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/kibana",
"name": "logsui",
"protocol": "https"
},
{
"description": "Metrics Dashboard",
"endpoint": "https://<IP_ADDRESS>:30777/grafana",
"name": "metricsui",
"protocol": "https"
},
{
"description": "Cluster Management Service",
"endpoint": "https://<IP_ADDRESS>:30080",
"name": "controller",
"protocol": "https"
}
],
"stderr": [],
"stdout": []
}
stdout : {
"logs": [],
"result": [],
"stderr": [],
"stdout": []
}
<EMAIL_ADDRESS><EMAIL_ADDRESS>Not sure how any of the following are relevant??
Also, answer the following questions as it helps us understand if what you are seeing is the same as another known issue.
Is the machine where you are testing this 'domain' joined?
        Yes,

Is it the user account local or domain account?
        Not sure what “account” you are referring to here?

Which account?
Is this on physical hardware or a VM?
        Its on my desktop on campus.

Is this a newly commissioned machine?
        No.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fazuredatastudio%2Fissues%2F12111%23issuecomment-689986523&data=02|01|Dinakar.Nethi%40microsoft.com|2052491a7d714ef825af08d85547e887|72f988bf86f141af91ab2d7cd011db47|1|0|637353114614884777&sdata=avzYrP%2FfNu%2BqZmC0cyQ2mzyg0pJmKRbSikEck3yfYaQ%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKJ76CMH5Q6X5PVTVHV33ILSFBNWJANCNFSM4QVSW2AA&data=02|01|Dinakar.Nethi%40microsoft.com|2052491a7d714ef825af08d85547e887|72f988bf86f141af91ab2d7cd011db47|1|0|637353114614884777&sdata=rUZ%2BOmCNPRD8nUZKTQAQ91k2MxChR7oT6YE4p0hFjpo%3D&reserved=0.

This is an issue with the execution of a notebook using azdata. Filed a bug against the platform team here:
https://sqlhelsinki.visualstudio.com/aris/_workitems/edit/17282/.
Closing this.