Windows - eventsource type "long connections" are not working through NAT

Docker version 1.12.2-cs2-ws-beta, build 050b611
I am investigating an issue - I'm running ServiceStack inside a docker container with port mapping 80.  My app uses server sent events to keep clients up to date with changes and it seems the "long" eventsource type connections are being closed by the docker NAT prematurely.
The reason why I think its a docker issue is because if I connect to the docker container directly (no nat) everything works.  Its only when I connect through the virtual docker port this issue comes up.
For instance if my container is running at <IP_ADDRESS> which I started with -p 8080:80 - connecting to http://<IP_ADDRESS>/ from the host works.  But when connected to http://[host]:8080 all eventsource type connections are closed immediately after the initial response.
I  can provide any additional info requested or run tests - this is my current dockerfile
FROM microsoft/iis
ARG CONT_IMG_VER
ENV CONT_IMG_VER ${CONT_IMG_VER:-v1.0.0}

RUN powershell -Command \
	Add-WindowsFeature Web-Server; \
	Add-WindowsFeature Web-Net-Ext45; \
	Add-WindowsFeature Web-AppInit; \
	Add-WindowsFeature Web-Asp-Net45;

RUN powershell -Command Stop-WebAppPool -name DefaultAppPool
RUN powershell -Command Stop-WebSite -name 'Default Web Site'

COPY ./* C:/inetpub/wwwroot/bin/
COPY *.config C:/inetpub/wwwroot/
COPY *.asax C:/inetpub/wwwroot/
COPY *.cshtml C:/inetpub/wwwroot/
COPY *.css C:/inetpub/wwwroot/
COPY *.js C:/inetpub/wwwroot/

RUN powershell -Command \
	Import-Module WebAdministration; \
	Set-ItemProperty 'IIS:/Sites/Default Web Site' -name applicationDefaults.preloadEnabled -value True; \
	Set-ItemProperty 'IIS:/Sites/Default Web Site' -name serverAutoStart -value True; \
	Set-ItemProperty 'IIS:/AppPools/DefaultAppPool' -name autoStart -value True; \
	Set-ItemProperty 'IIS:/AppPools/DefaultAppPool' -name startMode -value 'alwaysrunning'; \
	Set-ItemProperty 'IIS:/AppPools/DefaultAppPool' -name managedRuntimeVersion -value 'v4.0';

RUN powershell -Command Start-WebAppPool -name DefaultAppPool
RUN powershell -Command Start-WebSite -name 'Default Web Site'

EXPOSE 80

CMD sc stop wuauserv
CMD netsh advfirewall set allprofiles state off

/cc @msabansal

Here is an example repo to demonstrate the problem https://github.com/volak/Chat
Dockerfile is inside project folder, image should be built from that location to get the bin, cshtml, js etc.

Can I provide any more info for this?  Is it just a known issue?  This is preventing me from moving forward into production now without doing some kind of workaround like a dedicated IIS instance not inside docker

@volak Will investigate. Sorry for the delay. Had fallen off the tracking

I tried this on our latest builds and it seems i can't repro this anymore

Can you please see if this looks as expected? The code is running inside a container

@msabansal Connecting to the docker host directly works fine - its only a problem when connecting to the virtualized docker port that long connections are terminated prematurely.
If you run this docker file with -p 8080:80 and try to connect to http://[host]:8080 you'll see the disconnects.  Specifically to http://[host]:8085/event-stream - this connection should live forever as its the transport back to the client from the server but it gets disconnected shortly after creation.
If this app is run without the docker virtual port as you've seen it works just fine http://[host]:8085/event-stream stays connected throughout.
I just tried with docker 1.31.1 - same issue.

@volak Soeven though the app is working properly the underlying even-stream closing is an issue?

@msabansal Exactly - here's 2 screenshots to illustrate the problem
Good connection directly to host container -

Bad connection through virtual port -

@volak looking at the traces i see a lot of streams disconnecting at 10,20 or 30 seconds (10 being very common). I would debug some more when i get cycles on this. Please expect an update in a day or two

@volak This is not a windows/container networking issue. The problem is in how the url are getting mapped by IIS. running the chat container by using -p 80:80 fixes the problem.
When exposing a random port using -P it is not working because the heartbeat URL being return by service stack is incorrect. Service stack returns a url with port 80 mapped. Something like "heartbeatUrl":"http://<IP_ADDRESS>/event-heartbeat?id=PEffbScxqngzjTvGvbDI" while the container is exposed on a different port and service stack should have returned "heartbeatUrl":"http://<IP_ADDRESS>:1234/event-heartbeat?id=PEffbScxqngzjTvGvbDI" if the container was exposed on port 1234
Not sure how to fix this problem :|. Please let me know if the explanation is not clear

@msabansal Wow thanks for looking into it so deeply
Servicestack has a .Net Core version of this app which works in linux docker which made me think there's an underlying windows issue here but what you say makes sense.  I'll dive deeper into this and see what can be done to fix - seems like it might be hard due to the docker mapping.. I dont know how SS would even know to return the right heartbeat url

ping @mythz

ServiceStack constructs the heartbeatUrl from the incoming Request Url. You can see this if you run the same ServiceStack .NET Core Chat App locally where the heartbeatUrl returned is http://localhost:1337/event-heartbeat?id=xxx.
This .NET Core Chat App is also hosted on chat.netcore.io which is running in a Docker VM on port 5000 behind an nginx reverse proxy that proxies the external chat.netcore.io request and maps it to the Kestrel server running on port 5000. The guide to how this is setup is documented here.
So I'd assume the issue is the incoming Request URL that reaches ServiceStack which you can override by hard-coding the Base URL in:
SetConfig(new HostConfig {
    WebHostUrl = "http://<IP_ADDRESS>:1234/"
});

Or if you just want to replace the heartbeat url, you can override it with:
Plugins.Add(new ServerEventsFeature {
    OnConnect = (sub, args) => {
        args["heartbeatUrl"] = args["heartbeatUrl"].Replace("//<IP_ADDRESS>/", "//<IP_ADDRESS>:1234/");
    }
});

Thanks @mythz great info!  So basically if you are using random ports through docker as part of some load balancing setup - I'll need to set something up to feed servicestack the port back?

@volak The reverse proxy is what usually does the translation from external to internal url.

yeahh I was just thinking about that - the whole problem is the content of the heartbeatUrl being sent back no way for SS or docker to do anything about this.
Closing issue thanks a lot for your time @msabansal and @mythz

@mythz Out of curiosity is there a reason for onConnect to return the full server address for heartbeatUrl and not just return "heartbeatUrl":"~/event-heartbeat?id=oJghGRY0EuaycPB9SH90" or similar?  Seems that too would solve local docker issues like this

@volak A ~ prefix doesn't make sense in a URL, but you could change it to /event-heartbeat?id=xxx but this only works when your ServiceStack Instance is hosted from root, e.g. chat.netcore.io not chat.netcore.io/api or any other virtual directory.


Update in Design File

[ ] For Bitcoin and Lightening Send- The transaction has been broadcasted successfully

[ ] For Asset Send: The Asset has been broadcasted successfully

@Deveshshankar   I was changed all in all the screen and by change any if you see in figma anytime, you can comment there i will change it

https://github.com/user-attachments/assets/1f0ef668-fda2-4c7e-bfab-a519d9f66257

https://github.com/user-attachments/assets/6359242e-e0d2-4cad-bb1e-4ba2af671cd0

Completed


Theme color icon.foreground is inconsistent and does not work with .svg icons everywhere

To reproduce:

install GitLens
set

	"workbench.colorCustomizations": {
		"icon.foreground": "#ff0000"
	},

open an editor

Originally posted by @aeschli in https://github.com/microsoft/vscode/issues/189201#issuecomment-1682438191

Sorry for sending back, but there are many things to report here and I feel that doing a one-off fix in editor toolbar is wrong and just a band aid.
Inconsistencies
It looks like icon.foreground is not applied consistently everywhere. Notice how the view toolbars do not change, while the editor toolbar does change (these 2 are essentially the same part toolbars):

I think the underlying reason is this CSS rule:
https://github.com/microsoft/vscode/blob/8caa1c80f5ff68a6a6b78d36057d2a6ec21362b1/src/vs/workbench/browser/media/part.css#L85-L87
Missing Adoptions
The editor header really just uses a standard WorkbenchToolbar and imho should not be responsible for making this color work for entries, rather the component should do that:
https://github.com/microsoft/vscode/blob/8caa1c80f5ff68a6a6b78d36057d2a6ec21362b1/src/vs/workbench/browser/parts/editor/titleControl.ts#L192
You can see that the same issue applies to other toolbars, such as the view toolbars, which is not surprising.
Code Duplication
There seems to be code involved to make the color work for SVG icons, but that code is heavily duplicated and should be reused:
https://github.com/microsoft/vscode/blob/8caa1c80f5ff68a6a6b78d36057d2a6ec21362b1/src/vs/workbench/browser/parts/views/viewPane.ts#L362-L374
https://github.com/microsoft/vscode/blob/8caa1c80f5ff68a6a6b78d36057d2a6ec21362b1/src/vs/workbench/browser/parts/panel/panelPart.ts#L347-L365
https://github.com/microsoft/vscode/blob/8caa1c80f5ff68a6a6b78d36057d2a6ec21362b1/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts#L645-L663

@bpasero I don't think assigning this issue to me and David is useful. I'm not familiar with toolbars.

I hear about this issue quite often from extension authors. They want to either add the CSS vars to the SVG code itself and have it respond to themes, or just have us do it automatically.

@aeschli its unlikely a thing to fix in toolbars but more a thing to fix where we allow .svg icons from extensions to enter our world, because in the end we only use Codicons and nothing else.
I believe this is happening from where menus are being created based on MenuId:
https://github.com/microsoft/vscode/blob/41cb0fc5647a171b40a89c1e1ceb5e65913132ec/src/vs/platform/actions/browser/menuEntryActionViewItem.ts#L260-L266
Which I think is the place to add the mask, but @jrieken might know better.

I can help to get this working with the MenuEntryActionItem things. Those are created for contributed commands/menus and we do support SVG via this path.

@aeschli thanks for the mask trick

@jrieken
I just updated to 1.83.0 and found this update has broken the ability for versionlens to show if its enabled or disabled via its icon.
With previous versions of vscode it showed as enabled

in 1.83.0 when the icon is enabled it is now masked

I understand that theming icons is preferable but how can we specify enabled\disable state with theme styles?
For instance the icon for showing diff whitespaces has the ability to be enabled or disabled

How do we implement the same behaviour for extensions?


Refactor Series.describe to a new-style

Hello @kozlov-alexey! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file sdc/datatypes/hpat_pandas_series_functions.py:

Line 3721:36: E712 comparison to False should be 'if cond is False:' or 'if not cond:'
Line 3721:47: E262 inline comment should start with '# '

@AlexanderKalistratov, @Hardcode84
Can you please review this too?

@kozlov-alexey are we still waiting for something?

@AlexanderKalistratov

@kozlov-alexey are we still waiting for something?
I've rebased it and applied all remarks just now. I think it can be merged if CI passes.


clear http response inputstream and errorstream to reuse connection.

According to this official article:  https://docs.oracle.com/javase/7/docs/technotes/guides/net/http-keepalive.html, we should clear http response inputstream and errorstream to reuse this connection.

sorry, I missed some cases. It is when server status code is more than 400, you will get an excepion if you try to open input stream. I will fix it and open another pull request.

you should test scenarios  when server response code is more than 400.
In normal cases, you will get null if you try to get error inputstream, and it is ok.
It is when server status code is more than 400, you will get an excepion if you try to open input stream


Abstract operator options

In evolve/operators package:
Refine the genetic operator options API and generalize mutation:

[x] user-friendlier names for options API
[x] reusable options (between various implementations of crossover)
[ ] as there's an AbstractCrossover struct, sharing the common fields of any crossover,  make an AbstractCrossover one, in order to be able to use generic options for mutation the fields that are common among mutations implementations.
[ ] allow configuration of mutation implementations with operators.Option, following what had been done for the crossovers

Coverage increased (+0.1%) to 80.0% when pulling 102209518a1ee08917ed824c292ea94b0c07a074 on abstract-operator-options into 79cbbb468a8eda1df0c7ff7ae0ad31bd9bf4a0fa on master.

Coverage increased (+0.5%) to 80.39% when pulling 9f0d47df72b903d99d2e2f0239a4f164d9c9d224 on abstract-operator-options into 79cbbb468a8eda1df0c7ff7ae0ad31bd9bf4a0fa on master.


Is it possible to create Data Dictionary in runtime instead of compile time

Instead of compiling the OD.c and OD.h file, is there a way to create the OD on runtime with the input xdd/xml format files.

No, see https://github.com/CANopenNode/CANopenNode/issues/284

In v4 it is possible to generate object dictionary in run time before CANopen initialization. But no implementation (yet).


Show commit counts

The all time list should show commit count and sort by it, rather than by name.

🎆


Send deployment notifications as events to Datadog

Adds the ability to send deployment notifications as events to Datadog. You'll find your API key on this page.
To enable, simply add the following to your globals.yaml
datadog:
    api_key: <your_key_here>

I'd love some info about it in the README as well

Looks awesome @alexandernilsson! Consider changing the small things, and add a README mention of Datadog with config example and link to them and let's get this merged


GRPC support

Is there any plan on adding GRPC support as the TCP is deprecated?
If not, would you accept a PR?

Hi, I wasn't aware that TCP is deprecated tbh, and I didn't have any plans for GRPC. Extreme is all about tcp client, so I'm not sure if it would be good to implement in it grpc support or create new dedicated library.
I'll take a look at grpc spec for ES and will let you know if it will become part of this or new lib. If you have something to share so far for grpc I'll be happy to take a look

Nice.
Here is very small PoC for grpc towards eventstore.  The code quality is terrible, but maybe it helps for getting started ;)
It includes elixir code generated from es proto files, connecting to ES, and simple read/write.

I guess you forgot to put a link for PoC :)

:facepalm:  https://gitlab.com/akselsk/elixir_es_grpc

You probably know it, but I followed the readmes on these repos to generate the code

https://github.com/elixir-protobuf/protobuf#usage
https://github.com/elixir-grpc/grpc

:wave: @askasp
I've been slowly building up a new gRPC client for eventstore 20+ in https://github.com/NFIBrokerage/spear (hex)
It isn't complete yet but it has the basic streams API implemented and TLS support!

@the-mikedavis  That's great! I'll check it out!

This is great news @the-mikedavis! I totally agree with having separate library for gRPC and I also agree with reasons not to go with elixir-grpc/grpc. One thing that might be taken in consideration for Spear is usage of https://github.com/keathley/finch.

For gRPC take a look at https://github.com/NFIBrokerage/spear


Updating the twitter logo

@MinavKaria  I would like to update the old twitter logo to the new X logo.
Please assign this issue to me.
Also, I request you to mark the corresponding labels to this issue.

You are good to go

@MinavKaria I have updated the twitter logo.
This is the first time I am doing an open source and I am not sure if I did the pull request correctly.
Please let me know if there is any issue.

@MinavKaria My contribution towards this issue does not get counted towards the leaderboard.
Can you please help me with this ?

Hello @nksmanya! Your issue #22 has been closed. Thank you for your contribution!🚀

It should mostly, check in one day


Wrong numerical results

1. Incorrect numerics
for matrices generated by numpy
a = np.array([
    [1., 0, 0],
    [0., 1, 1]
])
b = np.array([
    [1., 0, 3, 0],
    [1,  1,  2, 2],
    [-1, 1, -2, 2],
])
exatn.createTensor('C1', [2, 4], 0.)
exatn.createTensor('A1', np.array(a, copy=True)) # copy to prevent exatn from changing the array data
exatn.createTensor('B1', np.array(b, copy=True))
exatn.evaluateTensorNetwork('test', 'C1(a, c) = A1(a, b) * B1(b, c)')

c1_exatn = exatn.getLocalTensor('C1')

assert np.allclose(c1_exatn, np.dot(a, b)) # raises assertion error

"""
The result should be
[[1 0 3 0],
 [0 2 0 4]]

Easily checkable by hand for above example matrices
"""

The data received back from exatn by exatn.getLocalTensor(name) match the original array.
For matrices generated by exatn.initTensorRnd
exatn.createTensor('Xr', [2, 3], 0)
exatn.createTensor('Yr', [3, 4], 0)
exatn.initTensorRnd('Xr')
exatn.initTensorRnd('Yr')

xr = exatn.getTensorData('Xr')
yr = exatn.getTensorData('Yr')
zr = np.dot(xr, yr)

exatn.createTensor('Zr', [2, 4], 0)
exatn.evaluateTensorNetwork('rnd', 'Zr(a, b) = Xr(a, c) * Yr(c, b)')
zr_exatn = exatn.getTensorData('Zr')

assert np.allclose(zr_exatn, zr), "Results do not match!" #Raises as well

What is going on
Having found this issue, I tried to understand what are the numbers that exatn returns - they were correct for scalar product of vectors and somewhat correct for matrix-vector multiplication.
I noticed that for square matrices, when doing A*B exatn returns B*A.
However, it turns out that it's more complicated - rectangular matrices do not result in index mismatch, but produce completely different numbers.
Turns out exatn re-arranges data in an interesting way - it applies a function S to each input, and S^-1 to output as defined below.
Continuing from the previous code snippet:
def S(x):
    """ Reshape to reverse-ordered shape,
     then transpose to match the original shape
    """
    x = x.reshape(*reversed(x.shape))
    x = x.transpose() # reverses order of axis by default
    return x

def inv_S(x):
    """ Inverse of S. """
    x = x.transpose() # reverses order of axis by default
    x = x.reshape(*reversed(x.shape))
    return x

adj_zr = inv_S(np.dot(S(xr), S(yr)))

assert np.allclose(zr_exatn, adj_zr) # Will NOT raise!

>>> S(np.array([
    [1, 2, 3, 4],
    [5, 6, 7, 8]
]))
array([[1, 3, 5, 7],
       [2, 4, 6, 8]])

The same issue is observed when contracting larger tensor networks.
x, y, z = [np.random.randn(*sh) for sh in [
    (2, 3),
    (3, 2, 2),
    (2, 2, 2)
]] # generate some random data
# %%
exatn.createTensor('X', np.array(x, copy=True))
exatn.createTensor('Y', np.array(y, copy=True))
exatn.createTensor('Z', np.array(z, copy=True))

tn = exatn.TensorNetwork('test2')
tn.appendTensor(1, 'X')
tn.appendTensor(2, 'Y', [(1, 0)])
tn.appendTensor(3, 'Z', [(1, 0), (2,1)])
tn.printIt()

# This is equivalent to exatn.evaluateTensorNetwork('test2', 'F0(a,b) = X(a,c) * Y(c,d,e) * Z(d,e,b)')
exatn.evaluate(tn)
result = tn.getTensor(0)
result_name = result.getName()
result_data = exatn.getTensorData(result_name)

### Compare results to einsum
einsum_data = np.einsum('ij,jkl,klm->im', x, y, z)
assert np.allclose(einsum_data, result_data) # Raises

### Fix numerics with reshape-transform

einsum_data_adj = inv_S(np.einsum('ij,jkl,klm->im', S(x), S(y), S(z)))

assert np.allclose(einsum_data_adj, result_data) # Does not raise!

Note that S(A)*S(B) produces completely different numbers from A*B - it is not just an issue of indexing/shaping convention. To obtain A*B from exatn one has to perform S(S^-1(A)*S^-1(B)).
2. Tests are not robust
All the tests and examples in python folder use tensors that are fixed poins for S. They are either constant-valued (simple.py, hamiltonian.py...) or diagonal and square (quantum_circuit_network.py, large_circuit.py...) and hence do not change when reshaped+transposed.
I looked through C++ tests in src/exatn/tests/NumServerTester.cpp and it looks like the same problem is there as well, for example on line 1332 again all tensors are square and diagonal.
What implications does this have on cache efficiency?
Exatn was built from latest devel branch (commit 7c722c5eefd3)
More detailed examples at https://github.com/danlkv/QTensor/blob/dev/scratchpad/exatn/exatn_demo.py

I think the problem is that you are using row-major storage in your numpy arrays whereas ExaTN assumes the column-major storage layout for all its tensors. You can either try using column-major storage in your numpy arrays or change the initialization layout (rows <--> columns). Ideally the Python interface should figure this out automatically, but we have not implemented that yet. Unfortunately we do not have enough man power to support the Python interface well. In any case, there should be no issues once you adhere to the column-major storage.

Yes, looks like passing order='F' to array constructor produces correct results. Why does then the exatn.initTensorRnd-generated tensors not match, they have nothing to do with numpy?

I think it might be because the returned NumPy arrays are not marked column-major, which would be a bug. Need to check. Are you planning on using ExaTN Python interface in production?

Yes, most of our code is written in python, but we probably won't need exatn-generated arrays. Passing with order=F produces correct numbers, but in a mixed order. The output array is again row-major, but with column-major data, which could be a problem if we pass arrays back to exatn.

Ok, that's what I suspected, the returned tensor copies are not marked as column-major. This should be fixed in the ExaTN Python interface. But this is a minor issue. My main concern is that the current ExaTN Python bindings are synchronous and, as a consequence, low-performing, so not very useful for a production HPC version. ExaTN is a C++ library, all the performance is only guaranteed in the C++ API, not Python. As I said, currently we do not have anyone supporting the Python interface, which otherwise would make it possible to provide a better performing Python bindings. Is there a possibility for you to leverage the C++ API instead?

We will need to write our own bindings to use C++ API, so it effectively would mean modifying existing bindings. Shouldn't we be able just call async versions of c++ methods in the bindings file?

Technically, yes, plus proper synchronization. ExaTN is fully asynchronous, so every time you request a copy of a tensor or initialize it with external data, you will need to impose synchronization. Also, Python global lock needs to be taken into account.


[5.2] Blade push with layouts weird ordering

Original issue #12753
In this PR, fix the weird results in #12753.
After the fix, the results below is much more like what the "push" do
b0  c1  c2

Template:
>> a.blade.php
@stack('me')
>> b.blade.php
@extends('a')
@push('me') b0 @endpush('me')
>> c.blade.php
@extends('b')
@push('me') c1 @endpush('me')
@push('me') c2 @endpush('me')

This PR try to modify the $sections array, let the @push to save its state according to the renderNumber
There some drawbacks:

People may manually modify their template, but this PR brokes their view
They must clean their compiled view
I have no idea how the test codes should be, at least I test on a runnig server

They must clean their compiled view

Shouldn't thing like this target 5.3/master branch.

Shouldn't thing like this target 5.3/master branch.

Hmmm. Is there a way to do this in a non-breaking way, so clearing will only be needed to fix the bug? We don't really want to break stuff on 5.3 unnecessarly either.

Actually, the internal structure of $sections is changed, all other behavior should be the same.
If the $sections structure keeps, I have to think another way, need trying.

Closing since breaking.

@taylorotwell what's your suggestion? goto 5.3 or try non-breaking way or do nothing?


Update README.md

macOS 14 GA changes
Description
New tool, Bug fixing, or Improvement?
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
For new tools, please provide total size and installation time.

Related issue:
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/


feat(Resume): Override ShoukakuPlayer#playTrack options when resuming

Sometimes while resuming, the LavaLink node might still be playing and ignore the resume request.
With this PR you can modify the options passed to playTrack without losing the functionality that resume provides.
Example
// by default noReplace is set to true
ShoukakuPlayer.resume({ noReplace: false });

Might as well give all the other options in play to resume

Might as well give all the other options in play to resume

This uses the options from playTrack as a parameter so you could

Thanks for the PR merging it


Create alienvault_otx.yaml

If you are interested, this is an application to request information from AlienVault OTX (only indicators)

Thanks @ctechmat! We got parts of it released here as well: https://shuffler.io/apps/ba22ea472754e30f09e29a81b514fec2?queryID=67047845957f74bbac5c0df0b9ab3358
Looks like they're both missing quite a bit, hence should be merged together.


Python 3.7 support

Do you have support for python 3.7?
Highest version in setup.py is 3.6

Use the module xerox , it is very similar
I use it for python 3.7.2

Python 3.7 has been added to setup.py in https://github.com/asweigart/pyperclip/commit/1df4ee5122bcc1e8cfcf4d4293aade06d14503dd
This issue can be closed.

Python 3.7 has been added to setup.py in https://github.com/asweigart/pyperclip/commit/1df4ee5122bcc1e8cfcf4d4293aade06d14503dd
This issue can be closed.


Openengsb 2402

OPENENGSB-2402
Here is the pullrequest from the little refactoring. prePush failed though.
kind regards chris

looks fine; merged


python310Packages.gcal-sync: 0.8.1 -> 0.9.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.gcal-sync is: "Python library for syncing Google Calendar to local storage"
meta.homepage for python310Packages.gcal-sync is: "https://github.com/allenporter/gcal_sync"
meta.changelog for python310Packages.gcal-sync is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 0.9.0 with grep in /nix/store/lxhfgdnr060nyigjpah99ahwaf8yq54b-python3.10-gcal-sync-0.9.0
found 0.9.0 in filename of file in /nix/store/lxhfgdnr060nyigjpah99ahwaf8yq54b-python3.10-gcal-sync-0.9.0

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

5 total rebuild path(s)

3 package rebuild(s)

3 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.google
python310Packages.gcal-sync
python39Packages.gcal-sync

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/lxhfgdnr060nyigjpah99ahwaf8yq54b-python3.10-gcal-sync-0.9.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/lxhfgdnr060nyigjpah99ahwaf8yq54b-python3.10-gcal-sync-0.9.0
ls -la /nix/store/lxhfgdnr060nyigjpah99ahwaf8yq54b-python3.10-gcal-sync-0.9.0/bin

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

3 packages built:

home-assistant-component-tests.google
python310Packages.gcal-sync
python39Packages.gcal-sync

Maintainer pings
cc @dotlambda for testing.

@ofborg eval

Result of nixpkgs-review pr 173746 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.google
python310Packages.gcal-sync
python39Packages.gcal-sync


Options object doesn't work after migration

Options object doesn't work after migration from embla-carousel-react to embla-carousel/react
my config:
const [EmblaCarouselReact, embla] = useEmblaCarousel({
    align: 'start',
    slidesToScroll: 1,
    loop: true,
});

Loop doesn't work.
If emblaCarousel loads for the first time, after dragging I get "maximum call stack size exceeded" error.

It doesn't work on embla-carousel-react v2.0.3 either.
I tried to migrate from version:  ^1.3.3

Hi Damian (@damian-balas),
I'm not sure why you get this error because I can't reproduce it. I just created a CodeSandbox with the same options and it's working just fine.
You haven't provided any of your code so please take a moment to reproduce the error by forking the CodeSandbox above. Alternatively, you can provide your code and the contents of your package.json file so I can debug this further.
Kindly,
David

Ok, I'll try my best :)

Here is some additional info:
package.json dependencies:
 "dependencies": {
    "@reduxjs/toolkit": "^1.3.6",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "axios": "0.19.2",
    "date-fns": "^2.14.0",
    "embla-carousel": "^3.0.21",
    "framer-motion": "^1.11.1",
    "i18next": "^19.4.5",
    "i18next-browser-languagedetector": "^4.2.0",
    "i18next-http-backend": "^1.0.13",
    "i18next-localstorage-cache": "^1.1.1",
    "lodash": "^4.17.15",
    "prop-types": "^15.7.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-i18next": "^11.5.0",
    "react-redux": "^7.2.0",
    "react-router-dom": "^5.2.0",
    "react-scripts": "3.4.1",
    "redux": "^4.0.5",
    "styled-components": "^5.1.0"
  },

EmblaCarouselWrapperComponent:
const TestimonialsSection = styled.section`
  position: relative;
  background-image: linear-gradient(45deg, #53b5be, #3882a8);
`;

EmblaCarouselComponent:
import React, { useEffect } from 'react';
import { useEmblaCarousel } from "embla-carousel/react";
import styled from 'styled-components';
import TestimonialsSlide from 'components/atoms/TestimonialsSlide';
import { maxWidthStyle } from 'constant';

const Testimonials = [
  {
    name: 'John Doe',
    role: 'Student',
    text:
      'Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem ea at nulla, fugiat nostrum esse. Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat nostrum esse sit amet.',
  },
  {
    name: 'John Travis',
    role: 'Student',
    text:
      'Dolorum nesciunt praesentium nihil doloribus dolorem ea at nulla, fugiat nostrum esse.',
  },
  {
    name: 'Jonas Schmidt',
    role: 'Student',
    text:
      'Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum nesciunt praesentium nihil doloribus dolorem ea at nulla, fugiat nostrum esse.',
  },
  {
    name: 'Alice Adams',
    role: 'Student',
    text:
      'Lorem ipsum dolor sit amet consectetur. Dolorum nesciunt praesentium nihil dolorem ea at nulla, fugiat nostrum esse.',
  },
];

const TestimonialsCarousel = () => {
  const [EmblaCarouselReact, embla] = useEmblaCarousel({
    align: 'start',
    slidesToScroll: 1,
    loop: true,
  });

  const scrollNext = () => {
    embla.scrollNext();
  };

  const scrollPrev = () => {
    embla.scrollPrev();
  };

  return (
    <Container>
      <CarouselButton type="button" onClick={scrollPrev}>
        <svg
          xmlns="http://www.w3.org/2000/svg"
          width="25"
          height="16"
          viewBox="0 0 25 16"
        >
          <g
            fill="none"
            fillRule="evenodd"
            stroke="#1d386b"
            strokeLinecap="round"
            strokeLinejoin="round"
            strokeWidth="2"
          >
            <path d="M24 8H1M8 15L1 8l7-7" />
          </g>
        </svg>
      </CarouselButton>
      <CarouselButton type="button" onClick={scrollNext}>
        <svg
          xmlns="http://www.w3.org/2000/svg"
          width="25"
          height="16"
          viewBox="0 0 25 16"
          transform="scale(-1,1)"
        >
          <g
            fill="none"
            fillRule="evenodd"
            stroke="#FFF"
            strokeLinecap="round"
            strokeLinejoin="round"
            strokeWidth="2"
          >
            <path d="M24 8H1M8 15L1 8l7-7" />
          </g>
        </svg>
      </CarouselButton>
      <EmblaCarouselReact>

          {Testimonials.map(({ name, text, role }, index) => (
            <TestimonialsSlide
              key={name}
              name={name}
              text={text}
              role={role}
              index={index}
            />
          ))}

      </EmblaCarouselReact>
    </Container>
  );
};

const Container = styled.div`
  transform: translateY(-3rem);
  ${maxWidthStyle};
`;

const CarouselButton = styled.button`
  margin: 0;
  margin-left: 0.8rem;
  height: 3rem;
  width: 3rem;
  border: none;
  background: none;
  font-size: 1.8rem;
  line-height: 2.5rem;
  display: block;
  color: #ffffff;
  text-align: center;
`;

export default TestimonialsCarousel;

And the slide for Carousel:
import React from 'react';
import styled from 'styled-components';
import { breakPoints } from 'constant';

const QUOTE_COLORS = ['#53B5BE', '#47aabc', '#3d9db7', '#398fb0', '#3882a8'];

const TestimonialsSlide = ({ name, text, role, index }) => {
  const t = 'test';

  return (
    <Wrapper>
      <SlideContainer>
        <QuoteIconWrapper>
          <svg
            xmlns="http://www.w3.org/2000/svg"
            xmlnsXlink="http://www.w3.org/1999/xlink"
            version="1.1"
            width="35px"
            height="35px"
            viewBox="0 0 124 124"
            xmlSpace="preserve"
          >
            <g>
              <path
                fill={QUOTE_COLORS[index % QUOTE_COLORS.length]}
                d="M49.8,29.032c3.1-1.3,4.4-5,3-8l-4.9-10.3c-1.4-2.899-4.8-4.2-7.8-2.899c-8.5,3.6-15.8,8.3-21.6,14   C11.4,28.532,6.6,36.232,4,44.732c-2.6,8.601-4,20.3-4,35.2v30.7c0,3.3,2.7,6,6,6h39.3c3.3,0,6-2.7,6-6v-39.3c0-3.301-2.7-6-6-6   H26.5c0.2-10.101,2.6-18.2,7-24.301C37.1,36.133,42.5,32.133,49.8,29.032z"
              />
              <path
                fill={QUOTE_COLORS[index % QUOTE_COLORS.length]}
                d="M120.4,29.032c3.1-1.3,4.399-5,3-8l-4.9-10.199c-1.4-2.9-4.8-4.2-7.8-2.9c-8.4,3.6-15.601,8.3-21.5,13.9   c-7.101,6.8-12,14.5-14.601,23c-2.6,8.399-3.899,20.1-3.899,35.1v30.7c0,3.3,2.7,6,6,6H116c3.3,0,6-2.7,6-6v-39.3   c0-3.301-2.7-6-6-6H97.1c0.2-10.101,2.601-18.2,7-24.301C107.7,36.133,113.1,32.133,120.4,29.032z"
              />
            </g>
          </svg>
        </QuoteIconWrapper>
        <TestimonialText>{text}</TestimonialText>
        <TestimonialAuthor>{name}</TestimonialAuthor>
        {role && <TestimonialRole>{role}</TestimonialRole>}
      </SlideContainer>
    </Wrapper>
  );
};

const QuoteIconWrapper = styled.div`
  opacity: 0.7;
`;

const Wrapper = styled.div`
  position: relative;
  width: 100%;
  flex: 0 0 100%;
  @media (min-width: ${breakPoints.beforeTablet}) {
    flex: 0 0 50%;
  }

  @media (min-width: 68em) {
    flex: 0 0 33.33%;
  }
`;

const SlideContainer = styled.div`
  position: relative;
  background-color: #ffffff;
  margin: 1.5rem;
  padding: 1rem;
  border-radius: 15px;
  box-shadow: 0 16px 24px -16px rgba(59, 142, 184, 0.25);
`;

const TestimonialText = styled.p`
  color: ${({ theme }) => theme.txtColor};
  font-size: 1rem;
  line-height: 1.8;
  font-style: italic;

  ::after {
    content: '';
    height: 3px;
    width: 70%;
    border-radius: 3px;
    display: block;
    margin: 1rem auto;
    background-color: #f0f0f0;
  }
`;

const TestimonialAuthor = styled.h4`
  font-size: 1.2rem;
  line-height: 1.2rem;
  color: ${({ theme }) => theme.secondary};
  text-align: center;
`;

const TestimonialRole = styled.p`
  font-size: 1rem;
  color: ${({ theme }) => theme.txtColor};
  text-align: center;
  margin: 0;
`;

export default TestimonialsSlide;

I'm using framer-motion and react-router for routing with animation.
I hope this helps.
Thanks :)

I have on route "/" my first emblaCarousel and on /some-route my second emblaCarousel
If I am on /some-route and refresh the page, then I get this maximum stack size exceeded error
If I am on "/" the emblaCarousel doesn't loop. If I go from "/" to "/some-route" I don't get maximum stack size exceeded error and the emblaCarousel works fine. (on "/" it's still broken)

Just found out something.
If I change
const Wrapper = styled.div`
  position: relative;
  width: 100%;
  flex: 0 0 100%;
  @media (min-width: ${breakPoints.beforeTablet}) {
    flex: 0 0 50%;
  }

  @media (min-width: 68em) {
    flex: 0 0 33.33%;
  }
`;

to:
const Wrapper = styled.div`
  position: relative;
  flex: 0 0 100%;
`;

It works fine. I can also do flex: 0 0 50%. But I CAN'T go below 50%.
" maximum stack size exceeded error " still not fixed :/ I don't know what could be the problem there.

Hi again Damian (@damian-balas),
Thanks for the additional information. I will take a look at the provided details and get back to you when I’ve done so.
In the meantime, please take a look at this issue that one of my users submitted some time ago. Seems like framer-motion page transitions can cause some weird and unexpected behavior. You can try the solution provided in that issue. Give it a go and let me know if it helps.
Best,
David

I've already implemented exitBeforeEnter prop. :disappointed:

MORE INFO
I found out that when you have only 4 slides and try to display 3 at the same time (width: 33.33% / flex: 0 0 33.33%) EmblaCarousel breaks.

Thanks for digging further and narrowing it down @damian-balas!
I think I know why this is happening now. I will look into this and get back to you when I’ve done that.
Kindly,
David

Awesome! I really want to use this package, because it's the smoothest one :)

@damian-balas seems like my guess wasn't correct.
The fallback to loop: false when slides aren't enough to make the loop effect works for the react version as well. If I use 4 slides with flex: 0 0 33.33% like you mentioned here it still works as expected. Please take a look at this CodeSandbox.
I think you should try to toggle components on and off to see if you can find the source causing this. If it suddenly starts working you can narrow it down. I'd start with framer-motion. Because without access to your repo it's hard to debug further when I don't have the whole picture.
Let me know if you find anything.
Kindly,
David

@davidcetinkaya the CodeSandbox example doesn't work for me.

@damian-balas what do you mean by doesn't work? Can you drag the carousel?

I can drag it, but it doesn't loop. As you can see in the first screenshot - there are blank rectangles

I see. That's because Embla realizes that the slides are not enough for the loop effect to work. So it changes loop: true to loop: false for you automatically.

Then why does it work on your machine? :confused:

How do you mean 😕? The CodeSandbox is working fine?

No, the CodeSandbox doesn't work. You said:

If I use 4 slides with flex: 0 0 33.33% like you mentioned here it still works as expected.

If I understood it correctly, it works for you, right?

UPDATE
I have removed framer-motion. I still get Maximum stack size exceeded error :confused:

I can drag it, but it doesn't loop. As you can see in the first screenshot - there are blank rectangles. I can't drag it further.
I found out that when you have only 4 slides and try to display 3 at the same time (width: 33.33% / flex: 0 0 33.33%) EmblaCarousel breaks. If I add more slides EmblaCarousel starts working again. I guess there are some issues with loop functionality when there are only few slides.

This is expected behavior when you don't provide enough slides with enough width for the loop effect to work. There has to be enough slides to cover the gap needed when flipping slide positions, otherwise the carousel would flicker when looping.

Ok, so 1 "bug" is solved. I'll just make it 50% instead of 33.33%. It would be nice if you could give a note about this in the docs. So anyone having this issue will know what's going on.
I still have no idea what could cause the maximum stack size exceeded error.

It would be nice if you could give a note about this in the docs.

It's actually stated in the docs 🙂. Take a look here:

Unfortunately, I can't see anything helpful from the screenshot 😕.

@damian-balas does the previous and next buttons work for you?

You're right, my bad! I didn't see it :)

It would be nice if you could give a note about this in the docs.

It's actually stated in the docs . Take a look here:

Unfortunately, I can't see anything helpful from the screenshot .

@damian-balas does the previous and next buttons work for you?

No :confused:

So the previous and next buttons also trigger the maximum call stack issue?

No, they don't do anything.

Is there a way to programmatically rerender/reinitialize the carousel?

Is there a way to programmatically rerender/reinitialize the carousel?
Yes, like so:
embla.reInit({})

Ok, I'll try something and be back in a minute or so :)

  useEffect(()=>{
    if(embla) {
      setTimeout(()=>{
        console.log('reinit');
        embla.reInit({
          loop: false,
          align: "start",
          slidesToScroll: 1,
        });
      },3000)
    }
  },[embla])

If I wait then for 3 seconds, I don't get this error.

Do you get the error if you do it like this?
useEffect(() => {
  if (embla) {
    embla.reInit({
      loop: false,
      align: 'start',
      slidesToScroll: 1,
    })
  }
}, [embla])

Maybe there is a problem like the counting failed because Embla didn't see any "slides" and it's stuck then?

This could be the case. Maybe there's no children there when you initialize embla for the first time.

If I do it like this, the carousel works fine, but it's a nasty fix IMO :confused:
There should be children, because my 'test code' looks like this:
      <EmblaCarouselReact>

1254436313

12132132133213123

1213213213

1213123

      </EmblaCarouselReact>

I have an idea. Could you please add an option to delay the initialization of emblaCarousel (if it's possible) so it would look like:
 const [EmblaCarouselReact, embla] = useEmblaCarousel({
    loop: false,
    align: "start",
    slidesToScroll: 1,
    wait: 1000 // 1second delay, so everything can load (maybe this will fix the issue)
  });

SOLUTION
I found the problem!
It's because of i18n, which uses react suspense. :) I think I can fix it on my own now!

Nice digging @damian-balas 😃! Let me know how it goes. I hope that this will solve it so you can enjoy the power of Embla Carousel.

Ok, it works!
Thanks for your time!
I appreciate it.
You can put this information in the docs - "Might not work with react suspense".

No worries.

You can put this information in the docs - "Might not work with react suspense".

I think a better approach would be to try to reproduce the issue in a CodeSandbox that uses React suspense, so I can understand why this is happening and try to fix this. That would be a nice addition.
Thank you for reporting this.
Kindly
David

I just realized something. If you want the loop effect to work with 4 slides where each slide is 1/3 you have to use the following css:
.slide {
  flex: 0 0 33.3333%;
}

// instead of

.slide {
  flex: 0 0 33.33%;
}

This is because the carousel viewport is 100%, and 33.33% x 3 slides = 99.99%, which is why Embla falls back to loop false. So if you use 33.3333% x 3 slides = 100% because the browser will round it to 100%. Alternatively, you can use the css calc function to split 100% / 3.
Let me know if it helps!
Best,
David

@damian-balas, I just realized something. If you want the loop effect to work with 4 slides when each slide is 1/3 wide, you have to use the following css:
.slide {
  flex: 0 0 33.33333%;
}

/* ...instead of */

.slide {
  flex: 0 0 33.33%;
}

This is because the carousel viewport is 100%, and 33.33% x 3 slides = 99.99%, which is why Embla falls back to loop false. So if you use 33.33333% x 3 slides = 100% because the browser will round it to 100%. Alternatively, you can use the css calc function to divide 100% / 3.
Let me know if it helps!
Best,
David

Wow thanks! :) I had to do 33.5% to make it work.

Hello again Damian (@damian-balas),
I've recently released a patch fix with Embla version 3.0.23. If you don't mind you can try if react suspense still trigger the error you initially mentioned in this issue.
Kindly,
David

Hello,
First of all, thank you very much for this amazing, slick carousel. Great work 🙂
I've recently encountered a very similar problem, so i thought it would be good to report it here.
I use Embla with react and here is the problem:
Imagine there are more than one instances of Embla in one page and they are inside a wrapper element, like a

.
The parent div has a css "display: none" at the page load. it's like a 'more info' box.
And there's a button to open the info box.
The button changes the css from "display:none" to "display:block", so that the box shows up.
Now after opening the box, if you start dragging or interacting with the carousel, The "maximum call stack size exceeded" Error appears.
It seems that if the Embla instance is not "visible/rendered" or at least is hidden with "display:none" at the page initial load, the error shows up.
The solution i use until now is to hide the carousel by setting the wrapper elements height and max-height to "0" instead.
It's not a big problem, just thought i'd mention it here if anybody has the same problem.
Good luck and regards

Hi @azeroth1993,
Thank you. What version of Embla Carousel are you using?
Beat,
David

Hi David,
I’m using version “4.1.3” for react.
From: @.>
Sent: Wednesday, May 12, 2021 6:47 PM
To: @.>
Cc: @.>; @.>
Subject: Re: [davidcetinkaya/embla-carousel] Options object doesn't work after migration (#79)
Hi @azeroth1993https://github.com/azeroth1993,
Thank you. What version of Embla Carousel are you using?
Beat,
David
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/davidcetinkaya/embla-carousel/issues/79#issuecomment-839809880, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOKDF6DWV5267Y6EU4IPJN3TNKEY3ANCNFSM4PFD5LSQ.

Hi @azeroth1993,
The issue you described got some attention in #151 and a fix was released with v4.2.0. But I would recommend  you to update to the latest version.
Let me know how it goes.
Best,
David

@azeroth1993 have you had the change to read my response yet?

Hello David,
I apologize for late response. Yes, i followed the suggestion explained at #151 issue and I'm going to first update to the latest version.
And if it doesn't work out, then the re-init method sounds good.
I'll let you know as soon as I get the results.
Best Regards
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: David @.>
Sent: Friday, May 14, 2021 12:42:39 PM
To: davidcetinkaya/embla-carousel @.>
Cc: azeroth1993 @.>; Mention @.>
Subject: Re: [davidcetinkaya/embla-carousel] Options object doesn't work after migration (#79)
@azeroth1993https://github.com/azeroth1993 have you had the change to read my responsehttps://github.com/davidcetinkaya/embla-carousel/issues/79#issuecomment-839836256 yet?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/davidcetinkaya/embla-carousel/issues/79#issuecomment-841089821, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOKDF6AVHZNN4FHWQFWR5BTTNTLPPANCNFSM4PFD5LSQ.

@azeroth1993 no worries, I was just curious.
Please note that you still have to run re-init when removing display: none. It's impossible for Embla to pick up the correct container and slide dimensions when any parent has display: none because these dimensions doesn't exist.
Best,
David

That totatotally makes sense. You can't get measurements of something that's not there yet.
This hidden problem happened in my work place project, at https://mr-gamble.com/en/.
But in my personal website, I'm using embla as well and works perfectly.
Here is the link: https://flierland.ca/fa/billboard/فروشگاه-ابزار-در-ونکوور-home-depotپارک-رویال
Kind Regards
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: David @.>
Sent: Friday, May 14, 2021 1:01:01 PM
To: davidcetinkaya/embla-carousel @.>
Cc: azeroth1993 @.>; Mention @.>
Subject: Re: [davidcetinkaya/embla-carousel] Options object doesn't work after migration (#79)
@azeroth1993https://github.com/azeroth1993 no worries, I was just curious.
Please note that you still have to run re-init when removing display: none. It's impossible for Embla to pick up the correct container and slide dimensions when any parent has display: none because these dimensions doesn't exist.
Best,
David
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/davidcetinkaya/embla-carousel/issues/79#issuecomment-841099064, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOKDF6HCQRZDIU4HNOZUZB3TNTNULANCNFSM4PFD5LSQ.

Nice to see a rtl implementation of Embla Carousel 👍. Thank you for sharing the link.
Try updating to the latest version and run embla.reInit() when removing display: none and the issue should be gone. Let me know how it goes.
Best,
David


ci: pin bpf-linker version to fix xdp

Resolved issues:
resolves #ISSUE-NUMBER1, resolves #ISSUE-NUMBER2, etc.
Description of changes:

Call-outs:

Testing:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I'm fine just bumping the MSRV for XDP. It doesn't have the same requirements as the rest of the lib.


Update feature dependencies for current nightly

Ran into some feature errors when compiling on current nightly, which were resolved by these adjustments.

I've already fixed this myself now. Also had to do a bunch of other refactoring as I guess Miri recently got significantly more aggressive aliasing checks than it had previously. Thanks though!

Just pushed the new revision to crates.io as well.

Thanks!


fontFamily "Roboto_medium" is not a system font and has not been loaded through Font.loadAsync.

fontFamily "Roboto_medium" is not a system font and has not been loaded through Font.loadAsync.

If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.

If this is a custom font, be sure to load it with Font.loadAsync.

i've gone through the documentation and i've included the same what's said in that.though i'm getting an error.

You must load the font before starting the app in Expo.
There is an example here: https://docs.nativebase.io/docs/GetStarted.html
Just goo to Setup with Expo


Remove redundant argument

The usage of govuk_headers was removed in: https://github.com/alphagov/collections-publisher/pull/203
To keep this worker backwards compatible, this argument was kept. Now that we've deployed collections-publisher to production we can remove it.

The failing tests are related to these problems: https://github.com/alphagov/whitehall/pull/2633#issuecomment-229607776

Don't merge this, https://github.com/alphagov/govuk_sidekiq/pull/10 should provide a more general solution.

Updated with the new version of govuk_sidekiq.


Fix unstable test mesosphere.marathon.integration.DockerAppIntegrationTest

create a simple docker app using http health checks with HOST networking is marked unstable – this is a major use case for most people deploying docker containers via Marathon, so it must be tested and pass.

Didn't fail when testing locally for 10 runs. I'm assuming that other test-related fixes already resolved this test failure. Will run a few times on the CI to see if it fails there.

Review: https://phabricator.mesosphere.com/D282


AO5GC 1.0 GA Stable Version 2023-10-15

ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

[1] ARM review queue (for merge queues, see [4])
The PRs are processed by time opened, ascending. Your PR may show up on 2nd or later page.
If you addressed Step 1 from the diagram and your PR is not showing up in the queue, ensure the label ARMChangesRequested
is removed from your PR. This should cause the label WaitForARMFeedback to be added.
[2] https://aka.ms/azsdk/support/specreview-channel
[3] List of SDK breaking changes approvers in pinned Teams announcement
[4] public repo merge queue, private repo merge queue (for ARM review queue, [1])
If you need further help with anything, see Getting help section below.
Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!

[X] New API version. (Such PR should have been generated with OpenAPI Hub).
[X] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix swagger quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[X] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[X] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to Step 2, "ARM Review", for this PR.

Breaking changes review (Step 1)

If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:

The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
You believe there is no need for you to request breaking change approval, for any reason.
Such claims must be reviewed, and the process is the same.

ARM API changes review (Step 2)

If this PR is in purview of ARM review then automation will add the ARMReview label.
If you want to force ARM review, add the label yourself.
Proceed according to the diagram at the top of this comment.

Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.
Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
Swagger-Suppression-Process
to get approval.
Getting help

For general PR approval workflow, see the diagram at the top of this comment.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

@mikekistler
We got the Breaking Changes APPROVAL for the PR changes against RPSaaSMaster - https://github.com/Azure/azure-rest-api-specs-pr/pull/15400
Could you please Approve the same for Public Repo as well?

@satravi There is no sdk breaking so you don't need approval from SDK owner. Please just follow guidance to ask PR merge:


Quantgene - CSV Sender Onboarding

Sender Info:

Sender/Company Name: Quantgene in CA
Type of Sender: Commercial Laboratory
RS sender_id: quantgene-ca

Initial Interest & Follow Up

[x] Document the date & time the Sender expressed interest. - 3/9/2022

[x] Send Std Kickoff email.  This includes:
   - Links to TOS & TOS Registration
           - https://reportstream.cdc.gov/terms-of-service
           - https://reportstream.cdc.gov/sign-tos
   - Links to the CSV upload guide and CSV schema documentation
           - https://reportstream.cdc.gov/getting-started/testing-facilities/overview
   - Provide an option to have a Kickoff call to review these documents and answer any questions.

[ ] Schedule Kickoff / Q&A meetings at the Senders request.

[ ] Received TOS.

Sender Setup - Create OKTA group & OKTA account

[x] Define the RS sender_id  --  quantgene-ca
[x] Create an OKTA group for the sender_id
[x] Create an OKTA account using the RS Registration information.
[x] Verify OKTA account registration by the Sender.

Sender Setup - Create Sender Settings for Staging & PROD

[x] Locally, create and test Settings in organizations.yaml
[x] Create the Staging & Production YAML settings files

Testing - Prod/Test Internal

[x]  Move all RS development to Staging & PROD.
[x] Make settings change to block results to the STLT, or send all results to the STLT's Test Feed.
[ ] Validate Production data and make all necessary RS changes.  Iterate through testing until validation is complete.

Testing - Prod/Test External (if required by the STLT)

[ ] Contact the STLT to setup testing with Production data in their Production environment.
[ ] Verify which Feed the STLT wants to receive the results.  Make settings changes as-needed and deploy to PROD.
[ ] Work directly with the STLT to complete Integrated Testing and gain approval to move into Production.

Implementation - Plan & Schedule GO LIVE

[ ] Change setting "customerStatus:" to active from testing.
[ ] Contact RS Pipeline Team to turn on HHSProtect reporting.
[ ] Determine if there is a backlog of results.  If so, contact the STLT to determine what results are needed.  Example, in at one STLT, if a Sender has reported positives only to the STLT, then the STLT wants all COVID (positive & negative) since the Sender started testing.
[ ] Coordinate and schedule a start date for daily results and backlog results between the STLT and the Sender.

Implementation - GO LIVE and Post LIVE Review

[ ]  Monitor daily uploads for errors and contact Sender if results need to be corrected and resent.  Monitoring will typically be 1 week in duration unless issue are found.

3/11/2022 Completed Sender Setup.  Need TOS.

3/15/22 Adrian asked for an update.  They responded that it would take their I/T about a month to create the CSV file.  They stated that they will contact us when they are ready to test.

Moved to the Icebox pending notification that they are ready to start.

@Adrian-Brewster can we close this?

closing. csv is handled by SR now.


⚠ PrivateHD has degraded performance

In 7f83ce3, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 4543 ms

Resolved: PrivateHD performance has improved in 793e315.


Add Unicode Normalization Form C to NEP2 implementation

To match NEP-2 more closely

I will cherrypick this and integrate this into dev


It changes how lists look in the frontmatter

Before:
---
alias: [Academic research dashboard]
created: 2022-08-20
modified: 2024-01-21
---

After:
---
alias:
  - Academic research dashboard
created: 2022-08-20
modified: 2024-05-12
---

What I want:
---
alias: [Academic research dashboard]
created: 2022-08-20
modified: 2024-05-12
---

I want all elements of a list on the same line. I didn't find anything in the code that would change lists explicitly, so maybe this is just what Obsidian's processFrontMatter is doing? Is there a way to avoid this?
I've thought about fixing this with the Linter plugin. But if Linter lints on file close and then this plugin updates a list to be multiline in 10s, the file is saved with the undesirable formatting still.

Hi @alexlyzhov , this isn't to do with the plugin, this is how Obsidian itself formats frontmatter.
There are many threads on the forum about this, here's an official response from Obsidian team:
https://forum.obsidian.md/t/api-processfrontmatter-removes-string-quotes-comments-types-formatting/65851/6


Add option for generating field maps with original field names

Field maps with camel cased field names are not always desired. This change adds an option to preserve the original field names in order to use field names like user_id in JSON serialization.

Thanks for merging!
I'm not sure about the java bean model schema template, should it react to the option as well?

Not many people use it (was contributed by a user).  But its fine if you include it as well.
Thanks for the PR.


How to center all contents

Hi,
I want to center all  content of the site. is there any class to do that for me like 5em padding from right and left or I should hard code.

worked for me - thanks


[WIP] DNS-SD for controller.

Problem
chip device tool doesn't currently support parsing commissioning adverts or parsing qr codes.

Summary of Changes

Adds code to do commissionable discovery and get discovered devices
Adds python code to parse QR code and automatically extract the setup pin codes and discriminators

Fixes #5715

Any reason to not have used the high level interface: ChipMdnsBrowse ?

@cecille conflicts here now, sorry :(

MdnsBrowse for linux uses avahi and I wanted to have this be self-contained and use minimal. I suppose I could create a minimal implementation for browse, but I mostly just wanted to get it working.
I'll take a look at the conflicts this week - my fault for going off on vacation and not getting this pushed through. :)

so are you saying you don't want to use minimal mdns for discovery in this PR?
isn't resolver for operational only?

so are you saying you don't want to use minimal mdns for discovery in this PR?
isn't resolver for operational only?

My understanding is that a minimal mdns implementation is fine (and actually desirable), but the implementation is platform specific. Some platforms may not use minimal, and so the implementation needs to be one implementation of ChipMdnsBrowse for platforms using minimal.
As a result CHIPDiscovery would be platform agnostic and so it works with all of our supported platforms, even the one that does not uses minimal, like Linux or macOS/iOS.
But maybe I'm wrong and @andy31415 is referring to something else ?

Latest commit - added a new function to the Resolver.h API to do commissionable node discovery and report back through a delegate to the device commissioner. Hopefully this jives a bit more with the current operational implementation.

Thanks to a horrifying merge and the inability to rebase branches, this PR is a huge mess. I'm going to abandon this and start a new PR on top of master so git doesn't lose its mind and we can actually see the diffs.

Please see https://github.com/project-chip/connectedhomeip/pull/6459 for a cleaner version of the changes on current master base.


[Version support] Looking forward to a PyTorch version DDDP.

Thank you for your interesting and excellent work!

Thanks for your interest in this work, and for your kind words!


Icon's don't appear in HasMany relation

Nova 3.5
Nova-sortable 1.4.7
I'm including HasSortableRows trait but icon to sort don't appear in listing.
I haven't php error and console error.
This feature was ok few month ago and I didn't modify the code, only update.

I don't know how explain my issue....

You can only sort on either the index view or the HasMany relationship view. The toggle is the following:
public $sortable = [
  'order_column_name' => 'sort_order',
  'sort_when_creating' => true,
  'sort_on_has_many' => true, // This
];

Yes, I see it in https://github.com/optimistdigital/nova-sortable/issues/25
Thanks you very much for this packages :)


Created a Requirements.txt and some Python 2 to 3 Fixes

Created a Requirements.txt and some Python 2 to 3 Fixes
Please review before merging.

Thanks for taking a look at the code. I had a look at some of the changes, I think some of the Python 2 to 3 changes might break the code (and I'm not sure if they are strictly speaking necessary for working with Python 3?).


After typing a large prompt, pressing up blows the unsent prompt away and now i have to re-type it all over again

Version: 1.85.1
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
Date: 2023-12-13T09:47:11.635Z
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Linux x64 6.6.13-100.fc38.x86_64

open copilot chat
start typing epic wall of text
continue typing epic wall of text
be there till next day typing epic wall of text
press up
see that all that text is gone
try to get it back by focusing the input field again
nope.
gone.
...

This is fixed in 1.86


Failing with exception on primitive return types

Given the following test:
- (void)testLastIndexPathWithZeroSection {
    UICollectionViewLayout *layout = [[UICollectionViewLayout alloc] init];
    UICollectionView *collectionView = [UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) collectionViewLayout:layout];
    @mockify(collectionView);
    expect(collectionView).to.receive(@selector(numberOfSections)).returning(@0);
    expect([collectionView lastIndexPath]).beFalsy();
}

I get an exception in line 97. The return type should be NSInteger and I think it is not retainable.
Printing description of invocation:
<NSInvocation: 0x7fe2442be6c0>
return value: {q} 1
target: {@} 0x7fe2430ea000
selector: {:} numberOfSections
Printing description of cfResult:
(CFTypeRef) cfResult = 0x0000000000000001
Printing description of self->_returning:
0

I think the solution should be to find out if the pointer can be bridged to NSObject and then retain it and else treat it as a primitive but I was unable to do it somehow.
Maybe you got another idea?

I've taken a stab at this, with a passing test case:
- (NSInteger)method4 { return 23; };

and

it(@"checks for a return value bridged to an object", ^{
    @mockify(sut);
    expect(sut).receive(@selector(method4)).returning(@23);
    [sut method4];
});

This currently only takes on NSIntegers, could definitely expand out as needed.

I was so close :+1: was missing the @encode(id) thingy.


Is there demo page for different versions?

We use different version of this lib, and can not upgrade very frequently. Is there demo page for old versions?
This page only contains the latest: https://jossef.github.io/material-design-icons-iconfont/

thanks for reporting, currently no. I'll address this issue

as of today, the demo has been moved to the master branch
this means in future releases you will be able to switch to another released tag and run locally
npm run docs-dev


Fixed width signed integer datatypes.

Lean should provide Int8, Int16, Int32 and Int64 to complement UInt8, UInt16, UInt32, and UInt64.
Ideally the definitions should be in core and the compiler extended to generate efficient code for them, but Std may need to provide additional lemma support.

Would these support E or T division?

Hopefully the official division definition will switch to E division soon, it recently moved to core so I think it's just a matter of swapping the names around and finally being able to remove the confusion about ediv theorems. I would expect both divisions to be available, but given that Int is using E division now I think / should perform E division on signed integer types.


Add hostmetrics remappers

Hostmetrics remappers remap metrics produced by hostmetricsreceiver to Elastic system metrics. This allows powering Elastic's curated UIs based on OTel metrics.
The code from the remappers is adopted from the PoC done here.

Putting this PR on draft after talking with @ishleenk17. Once https://github.com/elastic/opentelemetry-lib/pull/4 is merged I will rebase the PR and update the code.

Apologies for the force push, I have updated the PR after the original code for the remappers was merged. It is ready for review now.


Remove cuda version check in build.rs?

Are you cool with removing the CUDA version check at build.rs#L75? I think it will get annoying to keep up to date and we should just skip it and let the URL not resolve.
We can keep the Linux check though.

This would seem reasonable to me yes, want to craft a PR for this or should I have a go at it ?

I can open one.


Allow enforce minimum password score

Hi,
first of all I have to say that this project saved me a lot of trouble trying to find a way for my samba only users to change their passwords.
I just discovered that the password scoring mechanism might need some improvements.
It would be great if a password could only be submitted if it meets some criteria like the ones set by samba by default.
Otherwise a password could be submitted and the user is shown an error if his password does not meet the samba policy.
Maybe some configurable solution would work here.
At the moment I modified the app.js file that the standard policy has to be fullfilled.
I don't know if you have the time to add something like this at the moment, therefor I can only offer to contribute in the next couple of weeks.
Regards

Nice to hear it helps!
I'd like to have some kind of configurable score mechanism to allow the user to create their own score, but it is not easy to plugin nor I have time for that now, but enforcing a minimum score is pretty straightforward. I'll check how to enforce a minimum score.

As I just had to reconfigure my servers I stumbled over my local installation of this project. While scrlling through the git I rediscovered my issue.
In one of my projects I just deployed zxcvbn as a password strength meter. Maybe this would be a nice addition in here as well.
I have not done anything in python before. Otherwise I would like to contribute myself. However at the moment python-code feels to much like whitchcraft for comfort ;)

Here we go.
Fixed, added zxcvbn as password strength meter.
Thanks!


fix(timestamp): switch to µs

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Strong Event References

I'm recalling from an earlier discussion with @RyanM-RMA  that wherever we see += we probably ought to see a -= somewhere to avoid memory leaks. I don't recall whether we decided to ignore that problem, or if there's a clever fix somewhere in here that I don't know about.
Seems like weak event patterns are maybe more appropriate for us, though I'm going to look to you for your expertise. This is something I did not get worked out in my contributions to the code. You'll see this kind of thing in my classes as well.
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/events/weak-event-patterns?view=netdesktop-6.0
https://github.com/HydrologicEngineeringCenter/HEC-FDA/blob/b23441b56fe7b5da9950cfb467925fb176ebf06f/ViewModel/FrequencyRelationships/AnalyticalFrequencyEditorVM.cs#L371

It also occurs to me that this may be an adaptation of a class I wrote, where I started the pattern. Either way, I'd like your take on it.

It heavily depends on the lifecycle of your objects.  Weak references are generally preferable to strong references, to a degree.
If you have Class A listen to events on Class B, then B contains the strong reference to A.  This means that A can't be GC'd until B is GC'd.  However, B can be garbage collected, so long as A does not hold a strong reference to B.
If B is a global static rarely changing object, like the Study, you always want to use weak reference listeners, because B's lifecycle is very long, and those strong references will stick around.  Unless that's your intent of course.  You might have a Study level object, then managers or caches that are intended to live as long as the Study.
That's what prompted my previous discussion.  I believe there's a task 14 issue (if we have the money remaining and get approval) to swap over to weak listeners, because all the view models are adding themselves as strong listeners to the Study, and never disappearing.  That's a guaranteed memory leak and processing sink.
The downside to using weak references, is that newbies, or at least people who are unfamiliar with the concept can introduce bugs that take time to resolve.  I've run into this a few times where something gets GC'd before I expect it to be GC'd.  Java has a bit of nuance with this when it comes to anonymous inner classes and lambdas where if you do something like:
B obj = new B();
obj.addWeakListener(() -> /*listener logic*/);
//or
obj.addWeakListener(this::listenToEvents);

The lambda and method reference will be GC'd at some point, even if it references some class functions or variables.  This will show up as a sporadic bug because GC's happen whenever they want, and sometimes the listener is there, sometimes it's not.  You have to make the lambda into a class variable or something that won't get GC'd to keep it from being destroyed.
Weak and strong refs each have nuance and rules to their use that need to be considered when using them.  That's all I'm getting at.

Seems reasonable to me. We can close this guy out. I follow your description, and I'll accept calling this a nice to have fix we can address if we have time on the contract.
I appreciate the further discussion


Error: Internal cpp function (format_labels()) failed: invalid-labels

I have a df containing 3 columns (to, from, new_ssp). The query and target columns are the node and new_ssp is the score/weight column. The range of the new_ssp is from 0 to 1.
I am following the whole instruction given in the documentation, but getting the error!
graph_build <- graph_from_data_frame(graph_datset, directed = FALSE)
E(graph_build)$weight <- graph_datset$new_ssp
sigma_c <- structural_consistency(graph_build)
mean(sigma_c) # Output: 0
lp_rnd <- function(g){
non_edges <- get_non_edges(g)
prediction <- tibble(nodeA = non_edges[, 1], nodeB = non_edges[, 2],
scr = sample(nrow(non_edges))) %>%
arrange(desc(scr))
return(prediction)
}
#Getting error in here Error: Internal cpp function (format_labels()) failed: invalid-labels
assessment <- prune_recover(graph_build,
"lp_rnd",
"lp_cn")
Why I am getting this error?

Hi @mostafiz67,
Thanks for your interest in this package. It's difficult to know what's going wrong with your graph without knowing the version of R that your using or the features of your network (number of nodes and edges, density, clustering). Based on the structural consistency value of 0 that you're getting it seems that it's not possible to predict links with your graph.
First of all, note that the version of R that I used to develop this package is 3.4.4 (Session information section of the README). Second, did you try the examples with the karate_club or jazz_collab networks?

Thank you for your reply. My R version 3.6.3 (2020-02-29). I took a small portion of my dataset. Only 10 edges and 12 nodes. I also tried with 100 edges. I am giving the demo dataset and code.

Hi @mostafiz67 ,
Thanks for sharing the reproducible data frame. LinkPrediction works without errors on my end. This is the code I tried and the figure it produces:
library(dplyr)
library(igraph)
library(LinkPrediction)

graph_datset <-
  structure(
    list(
      query = structure(
        c(1L, 1L, 1L, 2L, 2L, 2L, 2L,
          2L, 2L, 2L),
        .Label = c("ID00104", "ID00136"),
        class = "factor"
      ),
      target = structure(
        c(8L, 9L, 10L, 2L, 1L, 3L, 7L, 5L, 6L,
          4L),
        .Label = c(
          "FID00165 _ FSID004092 _ beta-Amyrin",
          "FID00165 _ FSID012362 _ beta-Sitosterol",
          "FID00179 _ FSID012362 _ beta-Sitosterol",
          "FID00907 _ FSID013505 _ Taraxerol",
          "FID00908 _ FSID013505 _ Taraxerol",
          "FID00925 _ FSID013505 _ Taraxerol",
          "FID00989 _ FSID013505 _ Taraxerol",
          "ID06663",
          "ID06791",
          "ID09099"
        ),
        class = "factor"
      ),
      new_ssp = structure(
        c(5L,
          6L, 7L, 2L, 4L, 1L, 3L, 3L, 3L, 3L),
        .Label = c(
          "0.0254367782181143",
          "0.0312236452627353",
          "0.0862760834670948",
          "0.561022146155318",
          "0.654172560113154",
          "0.919096895578551",
          "0.925821596244131"
        ),
        class = "factor"
      )
    ),
    class = "data.frame",
    row.names = c(NA,-10L)
  )

graph_build <- graph_from_data_frame(graph_datset, directed = FALSE)
sigma_c <- structural_consistency(graph_build)
mean(sigma_c) # This gives 0

lp_rnd <- function(g){
  non_edges <- get_non_edges(g)
  prediction <- tibble(nodeA = non_edges[, 1],
                       nodeB = non_edges[, 2],
                       scr = sample(nrow(non_edges))) %>%
    arrange(desc(scr))
  return(prediction)
}
assessment <- prune_recover(graph_build, "lp_rnd", "lp_cn")

plot_lp_performance(assessment, err = "sd")

It seems that the problem you have has to do with package precrecand not with LinkPrediction directly. Please have a look at this issue, which is similar to yours: https://github.com/takayasaito/precrec/issues/8
I suggest you make sure your precrec installation works on its own.

@galanisl  Thank you for your reply. I have found the. when I am adding weight then the error is showing but without weight getting output!
That's means, I can't use the weight? The LinkPrediction is working on different indexes for the unweighted undirected graph?

@mostafiz67 the prediction techniques implemented in LinkPrediction work on unweighted undirected graphs. For example, the CN method simply counts the number of common neighbour between two unconnected nodes and uses this number as a likelihood score for the candidate interaction. Therefore, adding the weight is meaningless for the prediction process.
I'm closing this issue for now.


Unwanted characters in entities

Identify and report for correction entities with:

double spaces
spaces before and after a name (Python's strip function)
line breaks (\n) or indentations (\t)

Functionality implemented for the ontology.ttl files.


not a realy issue but understanding problem

Maybe it's my fault but I understood the sensor is showing the actual license usage.
Like e.g. 20 users out of 30 are activly using e.g. Project. I know the graph API can handle this request.
As I see the sensor is showing all licenses. Like in the mentiond example 30 Project Licences.
Did I missconfigured something? If not; would it be possible to implement this in an upcoming version?
Thanks a lot and have a happy new year!

Hi, the Sensor shows bought, assigned and free licenses. For example you bought 20 licenses, assigned 15 licenses and there are only 5 licenses free.
You are talking about the real usage from the 15 assigned licenses?

Yes! I was talking about the real usage. E.g. 15 licenses are assigned but only 5 users are using the software every two days. But the others users didn't use it for 2 months now.

sorry but this is not the goal at the moment.
Could you show me the Graph API Call for this request?

Don't worry I just missunderstood the description.
The API ist documented here: https://learn.microsoft.com/en-us/graph/api/resources/microsoft-365-apps-usage-report?view=graph-rest-1.0&preserve-view=true
Thank you!

Hi. I am finding that the -FriendlyName results in not creating channels for several SKUs that exist (i.e Project Plan 3 for Faculty). I can find the name in the download file from its associated GUID, so I think there is a bug in the script. If I run it outside PRTG, the result is the same, several that have no friendly name returned. I will continue to investigate and let you know if I find the issue, just thought 2 heads are better than one :)

I think I might be on to something. The download file has a space at the end of several GUIDs resulting in no match on line 262 of your script, so no friendly name returned. I think it needs to handle cutting off the white space somehow.

$NewLic.FriendlyName = $LicCSV | Where-Object { ($_.GUID.Trim()) -eq $R.skuId } | Select-Object -First 1 -ExpandProperty Product_Display_Name
This fixed my issue of the whitespace in the download file. Unfortunately, three of our GUIDs do not exist in the download file. Next steps would be to modify the foreach loop for $FriendlyName to check for $null and spit out skuPartNumber instead if one does not exist.

thank you for the fix with the whitespaces.
Please try the new version, I also added the check if the FriendlyName is $null


Operator update

Which issue this PR addresses:
also fixes an upgrade bug that i just noticed
when you are on 4.4.10 and run an adminupgrade it will error first with
"not upgrading: previous upgrade in-progress" - see ClusterVersionOperatorIsHealthy()
then it will error with
"not upgrading: stream not found"
Happy to separate these..
What this PR does / why we need it:
see https://docs.google.com/document/d/1vM-qCupENb3iEAvYyhPSQgi5brXUdZPDiO2AZaYLx7o/edit
Test plan for issue:
todo
Is there any documentation that needs to be updated for this PR?
probably

/azp run ci


[WIP] Support for late cloning

This PR contains the set of changes required for the initial support for late cloning for WCOW.
This is still a work in progress and the PR is mainly created to get feedback on the changes.

While this is in WIP, it would be nice to see the following in your PR description:

Overview of the design chosen
What currently works
What work remains

Late cloning allows the user to save a pod-container unit as a template and then later create one or more "clones" out of that template. As of now this is only supported for WCOW.
The only change on the client side is the introduction of two new annotations.

saveastemplate annotation. A newly added boolean annotation "io.microsoft.virtualmachine.saveastemplate" with value set to 'true' must be included in the request for pod creation as well as the container creation in order to create a template from that pod-container unit.

templateid annotation. A newly added string valued annotation "io.microsoft.virtualmachine.templateid" must be included in the pod creation and the container creation request in order to create the clone. In the pod creation request the value of this annotation must be the ID of the template POD and in the subsequent container creation request the value of this annotation must be the ID of the template container. It is client's responsibility to make sure that both the pod ID and container ID belong to the same template. If there are no errors then this should create a cloned container (inside a cloned pod).

Internal implementation:
External GCS connection:
WCOW currently uses the HCS-GCS connection for managing the containers inside the UVM. However, this doesn't work well with the cloning because HCS is not able to track the containers inside a cloned UVM. Hence, any pod creation request that contains either of the saveastemplate or templateid annotation will use external GCS connection. In order to use the external GCS connection we need to replicate some initialization that HCS does in our code.
Creating a template:
Template creation requires properly saving the state of the UVM as well as the state of the container. This state mostly includes the resources attached to the UVM (either during the pod creation or during container creation) such as SCSI, VSMB mounts. This state is stored in the registry. As per the current design, the client creates a pod and then creates a container inside that pod while passing the saveastemplate annotation in both requests. The pod creation request is processed almost like a normal WCOW pod creation request except that some extra configuration parameters are included in the UVM config which allow us to save the pod as a template. The template container creation inside that pod is handled a little differently. A new TemplateExec struct (which inherits the HcsExec struct) is created to track the task that needs to be saved as a template. A template container is created with a TemplateExec as its init process and as soon as the container is started this exec will start the container and save the UVM as a template.
Creating a clone:
Cloning involves cloning a pod and then cloning a container. However, some resources (like SCSI/VSMB mounts) that are attached to the template container are also attached to the template UVM and hence when the template UVM is cloned these resources must be cloned at the same time (even if a container cloning request is not received yet). For example, the scratch VHD of the container is added as a SCSI mount on the UVM. When a request is received for cloning a pod this scracth VHD must also be cloned along with other SCSI mounts even though the actual request for the cloned container will be received sometime later which will specify the location of the scratch folder for that container. Until then the scratch VHD of the container must be kept at some temporary location.
A new set of functions have been added to clone a pod. This process mostly involves fetching the template information from the registry, cloning the resources attached to the template (more on resource cloning later) and starting that pod. The start clone phase is a little different that the normal start UVM phase because we simply reconnect to the GCS instead of doing any initial setup (like creating the container with the nullContainerID) that we do for normal start UVM phase.
A new struct named ClonedExec (which inherits the wcowPodSandboxExec struct) is added to track the init process of the cloned container. A container clone request creates the necessary wrappers for tracking the cloned container that is already running inside the cloned UVM. A clone container request can specify the additional mounts that are unique to that clone. The clone container request adds those mounts to the cloned container. An important point to note here is that the GCS inside the cloned UVM still recognizes the cloned container by its original ID (i.e the ID with which template container was created). Hence, the cloned task refers to this container by its new ID (i.e the ID that is sent with the clone container request) but while sending any requests to GCS (for example when adding new mounts to the cloned container) it refers to the container with its original ID.
Starting a cloned container does nothing since the container is already running.
Resource cloning:
In order to clone the resources a new interface named Cloneable was added. Each resource that supports cloning must implement the Clone method that is defined by this interface. Since resource cloning is specific to the UVM these methods can modify the state of the UVM struct just like the Add method of the corresponding resources does. Every resource that is cloneable must also implement the gob.GobEncoder and gob.GobDecoder interfaces. By implementing these methods the resource can decide how to serialize and deserialize the structs related to that resource. Not all fields from the resource struct need to be serialized for cloning (For example, the UtilityVM field inside the resource struct should not be serialized). The rational behind using the gob encoding/decoding instead of simply using the json Marshal/Unmarshal is that the gob encoding stores the type information. Hence all kinds of resources can be serialized and deserialized via the same Cloneable interface.
Working features so far:

Cloning a a pod within ~3 seconds and the container within ~1 second.
Adding mounts to the cloned container.
Kill/Stop the cloned container/pod.

Limitations / TODO:

Supports only adding new mounts to the cloned container. Adding other resources like Networking, GMSA is not supported yet.
Only works for WCOW.
Works with only 1 container inside the template pod.
Needs better handling of errors like attempt to create a container inside the template pod or starting the template container etc.
Add functional / unit tests.

Are the TODOs of the original description still valid?

Closing in favor of new stacked PRs for late clone.


Update REQUIREMENTS.txt

Need pillow for matplotlib jpg support and jupyter for viewing the results in the notebook

Thank you.


Playground: Feature request: Allow selecting version that not merged into master branch yet

Therefore we can try new TypeScript features.
For example, select version "Pull Requests", then input "https://github.com/microsoft/TypeScript/pull/29317" (Negated types PR). Then the playground will download the PR version to play with new features without clone and build.

This already happens if a team member requests a packaged version: https://github.com/microsoft/TypeScript/pull/38923#issuecomment-638518896
I'm not sure about whether we want a UI for it, but all of the pre-release versions are documented in https://github.com/orta/make-monaco-builds#cdnd

What if for an arbitrary PR? Do I have to wait for a team member pack it?

Yep

You can just request it and we'll do one


Expecting Liquid js Short Code Supports

While Converting from MJML to HTML if there are any short codes like
{%- for person in people %}
<mj-text>Hello</mj-text>
{%- endfor%}

Hello

But i am expecting like this

{%- for person in people %}

Hello

{%- endfor%}

The Above Liquidjs For Loop as been removed while converting from mjml to html.
Is there any Option Available already ?

Yes, use Lu-rawOn 17 Dec 2022, at 09:44, AgnRakul @.***> wrote:
While Converting from MJML to HTML if there are any short codes like
{%- for person in people %}
Hello
{%- endfor%}

Hello

But i am expecting like this

{%- for person in people %}
    Hello
{%- endfor%}

The Above Liquidjs For Loop as been removed while converting from mjml to html.
Is there any Option Available already ?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

What Happen ?

Hey, Are you there ?
On Sat, Dec 17, 2022 at 2:42 PM Maxime Brazeilles @.***>
wrote:

Yes, use Lu-rawOn 17 Dec 2022, at 09:44, AgnRakul @.***> wrote:
While Converting from MJML to HTML if there are any short codes like
{%- for person in people %}
Hello
{%- endfor%}

Hello

But i am expecting like this

{%- for person in people %}
Hello
{%- endfor%}

The Above Liquidjs For Loop as been removed while converting from mjml to
html.
Is there any Option Available already ?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are
receiving this because you are subscribed to this thread.Message ID:
@.***>
—
Reply to this email directly, view it on GitHub
https://github.com/mjmlio/mjml/issues/2608#issuecomment-1356134577, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQXV34AVYUPDNT2622IGJ53WNV7Y7ANCNFSM6AAAAAATB2VUSQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Auto-correct in email : )
Use mj-raw to wrap it. https://documentation.mjml.io/#mj-raw

Yeah I Just Now Saw That But it won't convert MJML to HTML  whatever inside in <mj-raw> tag. It will make any issues ? like without converting to html and sending email templates to the mail

Just wrap your templating inside mj-raw not the full code.
<mj-raw>if ...</mj-raw>
<mj-text>inside if</mj-text>
<mj-raw>endif</mj-raw>

Got it Thanks


Maintain code coverage

I think it can be useful to track how much of the code is actually covered with tests. It can be quite tricky to record rust code coverage from our python tests but should be doable.

there is even ticket about that: https://github.com/zenithdb/zenith/issues/328

Hmm, searched for cov and it didn't appear


NATS server does not stop on bind failure

If the NATS server attempts to start on a port, but that port is in use, an error is logged but processing does not stop.
In tests, if the port is in use from a previous test, then this results in authorization failures as the current test attempts to connect to the NATS from the previous test.
Currently we as nats to start with go ns.Start() , with no way of returning an error.
Perhaps we might extend pkg/lib/network to check if specific ports are free. This will not be perfect but will catch the most obvious cases.

Partial fix available in 54af2cf06 and 252e88afeac4ca0e0bb0941552a0dac72febe0f3

checking for ports is more of a workaround as it won't help against race conditions. It can be a quick fix, but we might need to look into proper way to initialize nats and capture initialization errors


Does not contain a definition for "...."

Getting the following error in my Droid project when i compile. Compiling against 23.1.0.
Mobile.Droid.Resource.Dimension' does not contain a definition fordesign_tab_min_width' (CS0117) (Mobile.Droid)
Mobile.Droid.Resource.Dimension' does not contain a definition fordialog_fixed_height_major' (CS0117) (Mobile.Droid)
Mobile.Droid.Resource.Dimension' does not contain a definition for `dialog_fixed_height_minor' (CS0117) (Mobile.Droid)
Mobile.Droid.Resource.Dimension' does not contain a definition for `dialog_fixed_width_major' (CS0117) (Mobile.Droid)

This has to do with the version of the support library I use.  I upgrade with the android support library with xamarin form releases.  Sorry, since I have a vast majority of people on it without a standing need for features from the support libraries, this is how it has to work for now.

Ok no worries.
Well i downloaded your code and updated the references and its compiling fine....but my question is...how are you getting it to output the Acr.UserDialogs,Android.Appcompat.dll ?

I don't understand your question!?  I compile it...

...I did that man...i can't find the Acr.UserDialogs,Android.Appcompat.dll in any of the bin folders.

no idea man.  works for me.  make sure your build configuration profile is set to mixed platforms and release.

Cool! thanks dude :+1:

Sorry to bother you about his again man, I built in release mode, and i still for the life of me can't find where the Acr.UserDialogs.Android.Appcompat.dll is being built to.
This is all i have in the release folder

checked all the other folders too

No idea.  Make sure it is building properly for you.  I can't offer you any assistance beyond that at this point


How can I do a HTTP request before the page load?

I need to do a request before the page load to check some important data. I do not want to do it for each route transition, but only for the page load.

Hello, the issue tracker is reserved exclusively for bug reports and feature requests (as outlined in our Contributing Guide).
We encourage you to ask it on the forum , Stack Overflow or on gitter and are happy to help you out there. Come back open a new issue if you find out there's a real issue

Maybe you use the $mount method on the root instance


prefix_default_language = False redirect behavior fixes

Description
This patch aims to mitigate some issues with prefix_default_language set to False, mainly redirect errors:

When page had a redirect set to it language prefix would ALWAYS get added at the beggining of the path
When user browser language was set to a language that had a prefix added to it and a user tried to enter page in other language that was a default one while prefix_default_language = False CMS would redirect them to their preferred language therefore blocking them from ever entering that page

Related resources

https://github.com/divio/django-cms/issues/6448
https://code.djangoproject.com/ticket/29425 (this behavior actually stems from Django itself but it was agreed that it is intended although I am sure that when use in CMS it leads to bad user experience and should be mitigated)

Checklist

[X] I have opened this pull request against develop
[X] I have updated the CHANGELOG.rst
[X] I have added or modified the tests when changing logic

Coverage remained the same at 78.215% when pulling 6e5db494faa548e9f9ae4bcba8e5596c94e1e1d7 on Zeerooth:i18n_fixes into a4d49051ff3299d7b1345f8cf26c24a0a9b66a84 on divio:develop.

@victor-yunenko or @Aiky30 can you check if we could merge this into 3.8.x?
@Zeerooth would you be able to solve the merge conflicts from master and remove the release date in the changelog?


Fix localdir instead of doomdir referenced in cli

Fixes bug https://github.com/hlissner/doom-emacs/issues/3367. It's just a typo.

Closing because https://github.com/hlissner/doom-emacs/issues/3367#issuecomment-643476446


Update README.md

Add label in readme with github action build status.

May be move in title?

May be move in title?

yep will do

Please add link to releases/last actions

Is the status of the master build shown now exactly?

yes

my pc is freaking out will make new PR and changes will be on there


Sometimes when click on the view it does not show the cursor

fixed in release 1.2.1

Very good

happen to me, at first clik it doesnt show the cursor, after click for edit some wrong letter the cursor appears.

@pess0a fixed again in release 1.3.6

@HITGIF This still occurs on 1.4.5.
After clicking on the clear button there is no cursor blinking.
Also after clicking on another field and entering the original again (that was cleared before) there is no cursor blinking, only after entering text.
Is this the desired behavior or a bug?
If its desired ... is there a way to make the field always blink when it is focused?


Defer Model deprecations until 1.96 release

Given that we will soon be removing Model and renaming ModelExperimental -> Model (see #10346), some of the deprecations in #10416 will become irrelevant in 1.96 as the whole file will be removed. So we're deferring the removal of glTF 1.0 and other details (which were due to be removed in the 1.95 release).
This PR just updates the deprecation warnings to say 1.96 instead of 1.95

@j9liu @ggetz updated this PR to put the changelog entries under tomorrow's release.

@ptrgags looks good to me, thanks!