macvim url scheme with line number is broken

Describe the bug
mvim url scheme with line number is not working on the latest release (Snapshot 162)
To Reproduce
Detailed steps to reproduce the behavior:

open a url with line number param (e.g. mvim://open?url=file://%2FUsers%2Frahulagrawal%2FCode%2Flimebike-web%2Fspec%2Fservices%2Fbike_scan_processor_spec.rb&line=87)
With 162 installed, the file opens but not set to the line number
Downgrade to 161 and try the same url, it works correctly this time.

Expected behavior
File opens at the passed line number
Screenshots
Environment (please complete the following information):

Latest snapshot (162)
OS: macOS 10.15.1
Terminal: iTerm2, browser firefox.

Additional context
Potentially related to  https://github.com/macvim-dev/macvim/pull/1002 ?

cc @frarees (Sorry if this is not related to your commit)

It is related to #1002 definitively. So I'm not sure if RFC 2396 defines what happens when a query value is a URI itself, if it need to be re-encoded or not. Is there somewhere a statement on this specific scenario?
In your case, not re-encoding (e.g. mvim://open?url=file:///Users/rahulagrawal/Code/limebike-web/spec/services/bike_scan_processor_spec.rb&line=87) works on 8.2.319+.
This is what I do on bash to detect the version. Not bulletproof, enough for my use case:
function urlenc
{
	/usr/bin/python -c "import sys, urllib as ul; print ul.quote(sys.argv[1],'/')" "$1"
}

FILE=$1
LINE=$2

MVIMVERSION=`/usr/local/bin/mvim --version | grep 'VIM - Vi IMproved' | cut -d ' ' -f 5`
# not 100% accurate, we could have several patch defs e.g. 1-200, 205-300, 302-500
MVIMPATCH=`/usr/local/bin/mvim --version | grep 'Included patches' | cut -d '-' -f 2`

ENC_FILE=`urlenc "$FILE"`

# pre 8.2.319
#   re-encode, since MacVim mistakenly decodes it
# see https://github.com/macvim-dev/macvim/pull/1002
if [[ $MVIMVERSION < '8.2' || $MVIMVERSION == '8.2' && $MVIMPATCH < '319' ]]; then
	ENC_FILE=`urlenc "$ENC_FILE"`
fi

URI="mvim://open?url=file://$ENC_FILE&line=$LINE"

Yeah that seems directly responsible for the issue. I’ll take a look tonight. We should add a regression test as well (which a lot of MacVim-specific features don’t have, unfortunately).

@rahul342 can you check #1021 see if it works for you?

@frarees Would I need to compile and build your branch to test? What's the quickest way to try your change?

Hmm I don’t think this needs additional testing. I tried it and it does work and it’s possible to test locally as well

Sorry for the late response. There are build instruction on the wiki. Snapshot 163 will contain the changes, so you could wait for it to be released too.

163 was released, so you can just grab the latest build or let MacVim update itself.

@ychin seems like the issue still persists.

The issue persists here on snapshot 163.

Seems like the changes break compatibility in quite some places, so I'll take time later today to propose a PR reverting the changes, so that everyone gets it back as it was in 161. I can make my use case work by re-encoding (as shown in my comment above, in case anyone else with a similar issue lands here).
Sorry everyone for the inconvenience.

Maybe I'm dense but it seems to work for me. @dx7 / @rahul342 can you post the exact URL? Also, if you %2F with / does it work?

Example: open "mvim://open?url=file://%2Fetc%2Fpasswd&line=10".

Example: open "mvim://open?url=file://%2Fetc%2Fpasswd&line=10".
Another example is cmd+click url on iTerm2. Both work on snapshot 161.

Yeah, changes introduced on 162+ make it so that path in file://<path> should not be encoded.
161 and previous: path must be encoded.
162 and 163: path must not be encoded.
This brings back the original question:

So I'm not sure if RFC 2396 defines what happens when a query value is a URI itself, if it need to be re-encoded or not. Is there somewhere a statement on this specific scenario?

Does anyone know how to best comply the standard?
Either way, in order to bring compatibility back, we should at least make it so that it parses encoded paths, as it was. So:
Proposed 164: path could be encoded or not.
This should address backwards compatibility, and allow users to also do open "mvim://open?url=file:///etc/passwd&line=10"

That really works without url encoded.
I think that proposed 164 is the best way for now since other apps need time to adapt.

I sent a PR to bring back pre 162 behaviour. Can you verify it works for you?

Let me try this out later but is this going to break the white space issue again? If so we should try another solution? I will write a regression test later for catch all the cases we want

Let me try this out later but is this going to break the white space issue again?

It will break as long as the contents of url are not encoded (not sure if the whole url or the path without file://).

I will write a regression test later for catch all the cases we want.

Great, that would help ensure we get it right for everyone.

@frarees PR #1040 works like 161 on line number issue.

I rejected #1040 because that simply moves the behavior back to 161 which doesn't work for cases like file names with space, which seems like a bad trade to me.
Thinking more about it, the issue here is that in your URL, the slashes are escaped to %2f. Furthermore, the first two slashes didn't get escaped, but the slashes afterwards are. If you paste your URL (file://%2FUsers%2Frahulagrawal%2FCode%2Flimebike-web%2Fspec%2Fservices%2Fbike_scan_processor_spec.rb) to Safari (or Chrome) in macOS you will notice that it doesn't work. I think it was an accident that this was allowed, and to fix this you simply need to use unescaped slash (/) characters. This page also describes how it's perfectly valid to have the slash character in the query of the URL.
@rahul342 / @dx7 Are you using any tools or scripts that generate those URLs? We could manually add some code that unescapes %2f specifically but I'm reluctant to do that, especially since for those URLs if you just paste to a browser they would not work as they are not valid URLs.

Also note that if you do :help mvim:// the examples do not escape anything:
10. mvim:// URL handler				*mvim://* *macvim-url-handler*

MacVim supports a custom URL handler for "mvim://" URLs. The handler is
supposed to be compatible to TextMate's URL scheme as documented at >
	http://blog.macromates.com/2007/the-textmate-url-scheme/.

Currently, this means that the format is >
	mvim://open?<arguments>
where "arguments" can be:
	* url — the actual file to open (i.e. a file://... URL), if you leave
		out this argument, the frontmost document is implied
	* line — line number to go to (one based)
	* column — column number to go to (one based)

For example, the link >
	mvim://open?url=file:///etc/profile&line=20
will open the file /etc/profile on line 20 when clicked in a web browser.

Note that url has to be a file:// url pointing to an existing local file.

@ychin that's what iterm2 generates when cmd+clicking a file path with line number.

We can may be open an issue there, but both of these are popular tools, hopefully we can make them work together.

Can you be more precise? I have iTerm but I don't use it much so I'm not sure what the exact meaning of "file path with line number". Are you talking about for example make / build outputs?

In particular I'm curious if this is a specific MacVim integration (that you had to select) or just some generic way iTerm handling of file URLs.

Is it this? https://stackoverflow.com/questions/38906815/can-i-click-on-a-filename-and-line-number-in-iterm2-to-open-that-file-in-visual
I may have to take a look.

@ychin I use iterm2 cmd+click to open an url (file path or web link) with default app. like that overflow question you linked here. my code files open on macvim. maybe it's an inconsistent behavior on the iterm2 side since url works without line number.
maybe macvim could unescape 2%f as a deprecated behavior to be removed in a near future. just to give time to other apps to adapt their integration. I can open a new issue on iterm to notify that deprecated unescape.

To me, it seems pretty demonstrable that the encoded form must be valid (and should probably be preferred by mvim:-URL-generating tools):
mkdir /tmp/x
touch '/tmp/x%2fz'
touch '/tmp/x/z'
touch '/tmp/x&line=5'
touch '/tmp/x%26line=5'

Using the encoded form, those four files can be referenced as:
mvim://open?url=%2Ftmp%2Fx%252fz
mvim://open?url=%2Ftmp%2Fx%2Fz
mvim://open?url=%2Ftmp%2Fx%26line%3D5
mvim://open?url=%2Ftmp%2Fx%2526line%3D5

Without encoding, I believe they're unavoidably ambiguous.
Now, that's not to say that the unencoded form shouldn't also work -- just like in all other URLs, if the value part contains an unencoded character that doesn't have special significance in that location (here, most characters other than &, %, and #), that character has its literal meaning, just as the encoded version does.
RFC3986 speaks to this:

The characters slash ("/") and question mark ("?") may represent data within the query component.
[..] as query components are often used to carry identifying information in the form of "key=value" pairs and one frequently used value is a reference to another URI, it is sometimes better for usability to avoid percent-encoding those characters.

ISTM that while the help example is following the above "don't needlessly encode slashes here" advice, that doesn't change the fact it is fundamentally still a URI-encoded value.
#1040 is correct, and who- or whatever was generating a URL containing a literal space is the thing that needs to be corrected. (Again, because they'd presumably do the same if the path contained a literal &line=5 -- and surely we can agree that would be wrong.)
I don't have Textmate installed, but I'd strongly expect it to also behave as above [that is, the same way mvim:// has worked for the last 12 years]. But either way, as the documentation starts by describing the format as compatible, it might be worth checking.

@matthewd I think you made a mistake in your example, and that mistake is why I'm resistant to allowing escaped slashes.
The proper file protocol URL for /tmp/%2fz is file:///tmp/%252fz (You can try this with your own web browser). For /tmp/x&line=5 the URL should be file:///tmp/x%26line=5. Note that slashes are not encoded (because they represent the separator) but the "%" is. In your example you encoded both the slash and "%", which would lead to confusion when you are trying to understand what that path actually means (it would imply the / is actually a file name rather than path separator).
If you want to encode the whole path, it should be file:%2F%2F%2Ftmp/%25252fz. It's quite verbose and in my opinion unnecessary. Ultimately we can encode as many times as we want if we agree to decode the same amount of times, but the point I'm making is that it's unnecessary to do so, and in any case you need to make sure the "%"/"&" (or space in the original issue) is encoded 1 more time than the slashes. There is no real confusion if we leave the file:/// unencoded because they are already in the query component of the URL.
So the correct URL that I think we should use in your examples are:

/tmp/x%2fz -> mvim://open?url=file:///tmp/x%252fz
/tmp/x/z -> mvim://open?url=file:///tmp/x/z
/tmp/x&line=5 -> mvim://open?url=file:///tmp/x%26line=5
/tmp/x%26line=5 -> mvim://open?url=file:///tmp/x%2526line=5

If we encode the slashes they would become the verbose form of:

/tmp/x%2fz -> mvim://open?url=file:%2F%2F%2Ftmp%2Fx%25252fz
/tmp/x/z -> mvim://open?url=file:%2F%2F%2Ftmp%2Fx%2Fz
/tmp/x&line=5 -> mvim://open?url=file:%2F%2F%2Ftmp%2Fx%2526line=5
/tmp/x%26line=5 -> mvim://open?url=file:%2F%2F%2Ftmp%2Fx%252526line=5

I made a workaround that should fix this. Will be out next releease.

The proper file protocol URL for /tmp/%2fz is file:///tmp/%252fz (You can try this with your own web browser). For /tmp/x&line=5 the URL should be file:///tmp/x%26line=5.

Agreed. But if you copy that file:// URL and paste it into the GitHub search box at the top of this page, and then look at the resulting URL, you will find that the way you pass it inside a querystring value, according to your browser, is to encode it again. And that's what we're doing here: the mvim: bit isn't a static string prefix, but a nested URL. Assuming your browser encodes as aggressively as mine, you'll also find that you can manually replace the :, /, and =, and the server will interpret the value the same way, because those are defined as being interchangeable in that position.
So, while I agree that it is unnecessary to encode the slashes because they never have significance after a ?, I maintain that it is equally valid for one level of / -> %2F transformation to have been applied -- because the value we're talking about is an encoding of the file: URL, not an encoding within the file: URL.
All of mvim://open?url=file:///tmp/x%2526line=5, mvim://open?url=file:%2F%2F%2Ftmp%2Fx%2526line=5, and mvim://open?url=%66%69%6c%65%3a%2f%2f%2f%74%6d%70%2f%78%25%32%36%6c%69%6e%65%3d%35 contain exactly the same url value (file:///tmp/x%26line=5, which we agree represents the file /tmp/x&line=5), and a piece of software generating any of them is behaving correctly.
Your suggested mvim://open?url=file:///tmp/x%26line=5 does not: any URL parser will state that that contains a url value of file:///tmp/x&line=5. We can get away with that one, because although it's not the file: URL we agree it should be, there's no other reasonable interpretation of that character in that position -- though it'd be a different story if the & was a ?. But in your last example, being insufficiently-encoded is a clear problem: mvim://open?url=file:///tmp/x%2526line=5 contains a url of file:///tmp/x%26line=5, which per above, you agree refers to /tmp/x&line=5, not /tmp/x%26line=5.
I appreciate a partial workaround, but I'm still extremely confident that #1002 was wrong in its premise, and there was never a bug to begin with. The URL for /tmp/foo bar is file:///tmp/foo%20bar, which has an mvim URL of mvim://open?url=file:///foo%2520bar, and that has worked just fine for the last 10 years.

I'm still extremely confident that #1002 was wrong in its premise, and there was never a bug to begin with.

That could totally be it. And since it's both breaking compatibility for some users and seems people have been happy for a long time before, I proposed to just go back to how it was (#1040). Either way, it's great that there's a discussion going on how to do this right.
This is how I made it work with the original implementation (161 and previous):
function urlenc
{
	/usr/bin/python -c "import sys, urllib as ul; print ul.quote(sys.argv[1],'/')" "$1"
}

FILE=$1
LINE=$2

ENC_FILE=`urlenc "$FILE"`
ENC_FILE=`urlenc "$ENC_FILE"`
URI="mvim://open?url=file://$ENC_FILE&line=$LINE"

As you see, I had to do the encoding twice, otherwise e.g. files with spaces would not work. Encoding twice felt wrong, but maybe I'm missing something?

@frarees does this help it feel any less wrong?
FILE=$1
LINE=$2

ENC_FILE=`urlenc "$FILE"`
FILE_URL="file://$ENC_FILE"

ENC_URL=`urlenc "$FILE_URL"`

# Obviously unnecessary, because we know what characters are in there, but technically correct, and helpful for symmetry
ENC_LINE=`urlenc "$LINE"`

URI="mvim://open?url=$ENC_URL&line=$ENC_LINE"

@matthewd it does. It helps understand there's the file://<encoded contents> and the mvim://<encoded contents>, whereas in my example it feels like there are two encodings cause the program is decoding the same thing twice.

@matthewd There are a couple things going on here, but I think we should at least agree that this issue's original URL is not formed properly? It looks like this:
File: /tmp/file name.txt -> URL: file://%2Ftmp%2Ffile%20name.txt.
Either way the space should be encoded one more time than the slash. Either of the two would work depending on the encoding scheme:

(No encoding) file:///tmp/file%20name.txt
(Encoding) file:%2F%2F%2Ftmp/file%2520name.txt or file:///tmp/file%2520name.txt.

I appreciate a partial workaround, but I'm still extremely confident that #1002 was wrong in its premise, and there was never a bug to begin with. The URL for /tmp/foo bar is file:///tmp/foo%20bar, which has an mvim URL of mvim://open?url=file:///foo%2520bar, and that has worked just fine for the last 10 years.

I kind of agree with you that most URL component parser will decode the query items and then we should theoretically be encoding a space as %2520 to double-encode it so it decodes properly when being parser. Couple issues I see:

MacVim claims to be TextMate compatible, and TextMate doesn't do double decoding, so it expects a space to be %20.
iTerm2 also doesn't do double-encoding, and if you cmd-click on a file name with space, it will just encode it once to %20. That could potentially be fixed, but it does lead to an awkward situation where different people running different versions of iTerm2 and MacVim will have different results with their names not being respected. I'm not sure if there is a good solution for this.

On the other hand MacVim has always double-decoded and the recent change did break it. I guess I can see the value of reverting back to the original behavior and just ask iTerm2 to fix it for MacVim integration.

TextMate doesn't do double decoding, so it expects a space to be %20

Oh!

iTerm2 also doesn't do double-encoding, and if you cmd-click on a file name with space, it will just encode it once to %20

Oh oh!
Sorry, I definitely should've at least checked the latter. This has worked so reliably for me (both from iTerm and elsewhere) for so long, and I apparently just assumed I'd opened space-containing paths from iTerm along the way. 😔
Sooo.... my revised proposal is that MacVim should double-decode [and that ideally URL-building applications should double-encode], but that MacVim also accomodate under-encoded values encountered along the way. (I think this is slightly different from #1043, but I could easily be misreading that.)

Extract the 'url' value from the mvim: URL
Decode it as "normal"
You now have a file: URL with some characters still encoded (properly behaving client), but also possibly with some characters not (e.g. raw space, per your example)
Re-encode characters that are not permitted in a URL
Parse the result as a URL, to extract the path etc.

I think 3-5 there describes how a web browser behaves, for example: when given http://www/foo%20bar, it will request exactly that from the server; when given http://www/foo bar, it'll assume you meant the first one, and request the same thing.
In other words, double-encoding is the right thing, and extracting the parameter from the mvim: URL will always perform the initial decode -- MacVim just then chooses to be accomodating on the second decode, by not erroring when it sees a non-URL-valid symbol, and instead pretends such a character was in fact encoded.
I'm afraid I got a bit lost trying to figure out how to spell that in ObjC, but I think this does what I have in mind in Swift, if that's close enough to make sense?
import Foundation

let urlSet = CharacterSet.urlFragmentAllowed
                .union(.urlHostAllowed)
                .union(.urlPasswordAllowed)
                .union(.urlQueryAllowed)
                .union(.urlUserAllowed)
                .union(CharacterSet(charactersIn: "%"))

print("file:///tmp/foo%20bar baz".addingPercentEncoding(withAllowedCharacters: urlSet) ?? "?");

In this proposal, file:///tmp/foo bar baz, file:///tmp/foo%20bar baz, and file:///tmp/foo%20bar%20baz are all equivalent, and mean /tmp/foo bar baz. Consequently, so do both mvim://open?url=file:///tmp/foo%20bar%20baz and mvim://open?url=file:///tmp/foo%2520bar%2520baz.
The only way to reference a file literally named /tmp/foo%20bar is as file:///tmp/foo%2520bar, and thus mvim://open?url=file:///tmp/foo%252520bar. This is a breaking change from the pre-#1002 behaviour, where mvim://open?url=file:///tmp/foo%2520bar would previously have opened that file, but would now look for /tmp/foo bar. But in exchange for breaking previously-working URLs that reference a filename containing a % (or ?/#), we fix compatibility with existing clients that under-escape, for all other characters.
And we should then encourage iTerm to adopt double-escaping, because that's the only truly unambiguous way to communicate all possible paths, and is just The Right Thing.
Old/current iTerm single-escaped -> Old MacVim = (old behaviour) spaces break, basic paths work
Old/current iTerm single-escaped -> Proposed MacVim = all paths work unless containing %, ?, #
Future iTerm double-escaped -> Old MacVim = all paths work
Future iTerm double-escaped -> Proposed MacVim = all paths work

On first glance, this seems ok. It's kind of an ugly compromise that basically works either either method, and with special characters like "%" we need the double-encoding for it to work (I think spaces are the main benefits of it). It's a strictly looser set of allowed input than old MacVim.
I still need to think about this a little. Magic behaviors with ambiguities in APIs can sometimes leads to training users with sloppy expectations (since someone may try it and it works) but there is the benefit of working with existing tools.

Sorry for the delay, but I just filed https://github.com/macvim-dev/macvim/pull/1055 which fixes these encoding issues as described above. Basically, it will use double-encoding by default, just like how MacVim used to work before the recent changes, but it will opportunistically support single-encoding as well to make it play nice with iTerm.

sounds great. thanks.


use '$' in blade will get formatting error

Template

Example 1:

@php
　if($a){
　　$a = '$';
　}
@endphp

Example 2:

@foreach ($a as $b)
'$'
@endforeach

@if($a as $b)
'$'
@endif

Context (Environment)

Laravel: 8.x
PHP: 7.x

Description

After format exmaple 1
it will get error:

Parse Error : syntax error, expecting '}' on line

After format exmaple 2
it will disappear and only leave ' in blade.

@foreach ($a as $b)
'@endforeach

@if
'@endif

they will work fine when i change '$' to "$".

Thanks @loneight

Example1
It seems if unicode char code U+3000 is included in the Template, the error will occur.

Please make sure ASCII space or Tab is used.

Example2

Maybe this is a different issue, but I just tried it and didn't have the same problem, so it may be fixed in the latest version. Please give it a try.

thank you, they work fine


Segmentation Fault on help(tf.RunMetadata)

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): macOS Mojave 10.14
TensorFlow installed from (source or binary): pip install tensorflow
TensorFlow version (use command below): v1.11.0-rc2-4-gc19e29306c 1.11.0
Python version: 3.6.7

Describe the current behavior
Segmentation fault: 11 and Python crashes.
Describe the expected behavior
Print the documentation describing tf.RunMetadata.
Code to reproduce the issue
import tensorflow as tf
help(tf.RunMetadata)

I justed tried it and got the same behavior.

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 v. 1803
TensorFlow installed from (source or binary): pip install tensorflow
TensorFlow version (use command below): v1.8.0-0-g93bc2e2072' 1.8.0
Python version: 3.6.5

It doesn't look like an issue on TF ends. Please refer this link which addresses [similar behavior] (https://stackoverflow.com/questions/19531969/segmentation-fault-11-in-os-x)

@ymodak you might be right, though the bug in that link seemed to be OS related. Using faulthandler i got:
$ python3 -X faulthandler
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> help(tf.RunMetadata)
Fatal Python error: Segmentation fault

Current thread 0x00007f1d87090700 (most recent call first):
  File "/usr/lib/python3.5/inspect.py", line 397 in classify_class_attrs
  File "/usr/lib/python3.5/pydoc.py", line 210 in classify_class_attrs
  File "/usr/lib/python3.5/pydoc.py", line 1276 in docclass
  File "/usr/lib/python3.5/pydoc.py", line 375 in document
  File "/usr/lib/python3.5/pydoc.py", line 1632 in render_doc
  File "/usr/lib/python3.5/pydoc.py", line 1639 in doc
  File "/usr/lib/python3.5/pydoc.py", line 1905 in help
  File "/usr/lib/python3.5/pydoc.py", line 1852 in __call__
  File "/usr/lib/python3.5/_sitebuiltins.py", line 103 in __call__
  File "<stdin>", line 1 in <module>
Segmentation fault (core dumped)

I am getting this as well, on two separate machines (one Ubuntu 16.04, other Ubuntu 18.04). Also occurs when either run_options or metadata is passed to a tf.Session.run call (e.g., cloning the stable-baselines and running the tests results in core dumped).
Separately, also with the stable-baselines repo, I'm getting an unrelated core dumped when using Tensorflow 1.11.0 or 1.12.0, but not when using 1.10.0. I don't know how to debug this, so am just using 1.10.0 for now.

Closing this issue since its not a TF related bug. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

3 different users reported it for Windows, Mac, and Linux OSes. It's almost definitely a TF-related bug?

I justed tried it and got the same behavior.
OS: Ubuntu 16.04
TensorFlow installed from: pip install tensorflow
TensorFlow version: 1.12.0
Python version: 3.6.6

@av8ramit  Can you please take a look? Thanks!

@Salompas Is this still an issue ? We see that you are using old version of tensorflow  1.x which is not actively supported, We recommend that you upgrade to 2.4 or later version and let us know if the issue still persists in newer versions .Please open a new issue in case you face any errors using TF v2, we will get you the right help . Thanks!


use cookie to remenber user's choice of language

Now the default languague is Chinese, read this option from cookie is a better choise

Or Local Storage?


Editing asset metadata not possible without reentering all data incl. reuploading assets

When I want to change an asset name, description, or reupload a changed asset file, I always need to re-enter all information (metadata + re-upload asset files)
The suggested behavior is to

prefill the input boxes with the asset metadata
allow reupload of new asset versions or preview images without affecting metadata

This refers to Version 1.2.0

Hi @danielseidl, thanks for taking the time to share your suggestions with us. Duly noted!


[BUG] Builder without constructor method

Bug description
Maybe I'm wrong, yet ConstraintLayoutChild is a class that doesn't have a constructor but still has a builder in gtk4-rs.
It feels weird to have a builder but no real constructor method, especially because you can just use Widget::builder.build() as a workaround to get a new widget. It seems that this is caused by the design of the C library but still this is translated awkwardly by gir, I think.
I've also noticed that the same if true for

FixedLayoutChild
GridLayoutChild
DragIconBuilder
DragIcon
OverlayLayoutChild
ShortcutsGroup
ShortcutsSection
ShortcutsShortcut
ShortcutsWindow

For some of these widgets it might make sense to add a constructor method for some the builder is probably unnecessary...

Is it actually valid to create new instances of these yourself or should that be reserved to GTK?

I don't have a lot of experience with the C library but I think most of these objects have no constructor method and are not supposed to be constructed manually.

CC @bilelmoussaoui


Add support for tuples

This also updates is_subtype to handle checking tuple and union subtypes.

Codecov Report

Merging #71 (1895cea) into main (fd3529d) will increase coverage by 0.13%.
The diff coverage is 83.20%.

@@            Coverage Diff             @@
##             main      #71      +/-   ##
==========================================
+ Coverage   89.33%   89.47%   +0.13%
==========================================
  Files          20       20
  Lines        1753     1852      +99
==========================================
+ Hits         1566     1657      +91
- Misses        187      195       +8

Impacted Files
Coverage Δ

src/ast/expr.rs
57.14% <0.00%> (-4.40%)
:arrow_down:

src/codegen/js.rs
90.86% <ø> (ø)

src/codegen/d_ts.rs
82.78% <25.00%> (-1.79%)
:arrow_down:

src/types.rs
68.37% <33.33%> (+0.78%)
:arrow_up:

src/infer/substitutable.rs
77.92% <85.71%> (+0.77%)
:arrow_up:

src/infer/constraint_solver.rs
87.71% <90.00%> (-0.02%)
:arrow_down:

src/infer/context.rs
96.61% <100.00%> (+0.24%)
:arrow_up:

src/infer/infer.rs
95.55% <100.00%> (+0.35%)
:arrow_up:

src/parser/expr.rs
99.34% <100.00%> (+0.02%)
:arrow_up:

src/parser/mod.rs
97.26% <100.00%> (+0.15%)
:arrow_up:

... and 3 more

Continue to review full report at Codecov.

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


[WIP] PairedExpressionDataset

I wanted to start getting feedback on this formulation of a PairedExpressionDataset, which is for a dataset where we have Gene Expression as well as some other paired measurement (e.g. cell surface protein abundance)

Is there a way to generalize GeneExpressionDataset so it can deal with an arbitrary number of data matrices that have one cell per row? Because GeneExpressionDataset (last I checked, before all the refactoring) already has multiple matrices that are "paired" ... just not a variable number. Could we code it in a way to deal with a variable number of paired matrices?

Then subclasses of GeneExpressionMatrix could have variable numbers of paired matrices. That would help with some of the subclasses too. e.g., Last I checked, we're currently just returning vectors of null values for datasets that don't have a position associated with each cell. It would be cleaner for the smFISH datasets to just have more paired matrices.

I agree it would be nice to have a variable number of tensors that are paired. I'm just not sure what the best approach is here. For spatial, @ANazaret  has done this:
https://github.com/YosefLab/scVI/blob/a2e47ccf72f60967a732b8ed56d879fe1272753a/scvi/dataset/dataset.py#L990

batch_indices is another one of these "paired" matrices/vector that not all datasets will have. It'd be nice not to have to pack a vector of batch_indices with null values (or all 1's) for datasets that don't have batches.

Should we also foresee the case and look beyond discrete batches ? I feel
like we will have to modify the dataset class again if we want the model to
handle that. Though, this is a very timely effort.
Le mer. 26 juin 2019 à 07:37, Jeffrey Regier<EMAIL_ADDRESS>a
écrit :

batch_indices is another one of these "paired" matrices/vector that not
all datasets will have. It'd be nice not to have to pack a vector of
batch_indices with null values (or all 1's) for datasets that don't have
batches.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/YosefLab/scVI/pull/382?email_source=notifications&email_token=AFCDZD4OP5TQ2JASQNFEX6TP4N5KHA5CNFSM4H3NFTR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYTXZLA#issuecomment-505904300,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFCDZD2ZOKZX6RZ7TTUQOTTP4N5KHANCNFSM4H3NFTRQ
.

--
Romain Lopez
PhD candidate, EECS
UC Berkeley
<EMAIL_ADDRESS>+1<PHONE_NUMBER>

Yes, it presumably has a different data type since it's continuous, and I wouldn't want to store it in a vector called batch_indices either. So #364 seems like another good reason to let subclasses of GeneExpressionDataset register a variable number of paired matrices with their parent class.

For continuous covariates, one could use the cell attributes in the new dataset class, and then change make_tensor_batch_from_indices so that it gets loaded into the model, in the same way @ANazaret did with the coordinates.
For something like paired protein measurements, there may be features we need that cannot be handled if they are treated as cell attributes.

Implemented in #374

Closing this as a much more flexible solution has been implemented in #374.


FPGA: remove the use of Windows style compiler flags on Windows

Existing Sample Changes
Description
Starting from 2023.0, the dpcpp compiler will only accept Linux style compiler flags whereas dpcpp-cl will only accept Windows styles compiler flags.
To improve usability, the FPGA code samples will all use the dpcpp compiler for both Linux and Windows.
Fixes Issue#
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Implement fixes for ONSAM Jiras

How Has This Been Tested?

[x] Command Line

Hey @IgorOchocki, could you review/approve this PR?


Not compatible with UAP (for AppCenter usage)

I have a long-standing successful UWP app that now needs to use AppCenter as HockeySDK just got turned off. However AppCenter depends on this package, and I cannot add a reference to this package because:
NU1202: Package SQLitePCLRaw.bundle_green 2.0.4 is not compatible with uap10.0.10240 (UAP,Version=v10.0.10240). Package SQLitePCLRaw.bundle_green 2.0.4 supports:

net461 (.NETFramework,Version=v4.6.1)
netcoreapp3.1 (.NETCoreApp,Version=v3.1)
netstandard2.0 (.NETStandard,Version=v2.0)
xamarinios10 (Xamarin.iOS,Version=v1.0)

For netstandard2.0, which is the minimum for SQLitePCLRaw 2.x, the minimum supported version of UWP is Fall Creators Update, 10.0.16299.

Ah, so no more Windows Mobile support for my app, makes sense now, thanks.


Question about the description of prefix tree in README

Priority   Path             Handle
9          \                *<1>
3          ├s               nil
2          |├earch\         *<2>
1          |└upport\        *<3>
2          ├blog\           *<4>
1          |    └:post      nil
1          |         └\     *<5>
2          ├about-us\       *<6>
1          |        └team\  *<7>
1          └contact\        *<8>

why the priority of paths is 3 here ?
i think there are only  two handles( *<2> and *<3>) registered  here,did I miss something?

The s priority is 2, the doc is error, you can try it.


Support for Docusaurus beta.18

Description

Replace <Seo/>(removed in beta.18) with <PageMetadata/> within the ApiItem component
Remove/refactor TS types that are no longer supported in beta.18
(See https://github.com/facebook/docusaurus/pull/6961/files#diff-63fb680a64ccf104c7a2c5085807317c7e29d70832a504e641e8c1cc8f8159cd)

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate)

Types of changes

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[ ] All new and existing tests passed.

Noticed a tiny issue with missing drop-down caret on mobile. It doesn't appear to affect desktop.
Uploading Screen Recording 2022-04-07 at 9.54.44 AM.mov…

Thanks to wrapping DocItem we are able to upgrade to 2.0.0-beta.18 without any major changes. Feel free to close this PR. See #62 for details.


1.0.0-beta3 - Server side rending error: Document is not defined

Hello!
I'm getting this error on my server when sending it a get request: ReferenceError: document is not defined. Full stacktrace in the bottom of the post.
If I do var html = React.renderToString(
hello world!
); instead of var html = React.renderToString(<Router {...initialState}/>);, I don't get this error and it renders just fine. This leads me to think something is bugging in the router. As it might appear, I've tried to follow the guide in the 1.0.0-beta docs.
Thanks for looking.
server.js
import express from 'express';
import React from 'react';
import Router from 'react-router';
import Location from 'react-router/lib/Location';
import routes from '../shared/routes';

const app = express();

app.get('/', function (req, res) {
  var location = new Location(req.path, req.query);
  Router.run(routes, location, (error, initialState, transition) => {
    fetchSomeData(initialState.components, (error, initialData) => {
      var html = React.renderToString(<Router {...initialState}/>);
      res.send(renderFullPage(html, initialData));
    });
  });
});

function fetchSomeData(components, response) {...}
function renderFullPage(html, initialData) {...}

routes.js
import React from 'react';
import Route from 'react-router';
import AppHandler from './components/AppHandler';

export default (
  <Route path="/" component={AppHandler} />
);

AppHandler.js
import React from 'react';

export default class AppHandler extends React.Component {
  render() {
    return
Hello App Handler
;
  }
}

Full stacktrace
ReferenceError: document is not defined
   at getActiveElement (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/getActiveElement.js:23:12)
   at ReactReconcileTransaction.ReactInputSelection.getSelectionInformation (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/ReactInputSelection.js:40:23)
   at ReactReconcileTransaction.Mixin.initializeAll (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/Transaction.js:168:30)
   at ReactReconcileTransaction.Mixin.perform (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/Transaction.js:133:12)
   at ReactUpdatesFlushTransaction.Mixin.perform (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/Transaction.js:134:20)
   at ReactUpdatesFlushTransaction.assign.perform (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/ReactUpdates.js:95:38)
   at Object.flushBatchedUpdates (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/ReactUpdates.js:175:19)
   at Object.wrapper [as flushBatchedUpdates] (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/ReactPerf.js:70:21)
   at ReactDefaultBatchingStrategyTransaction.Mixin.closeAll (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/Transaction.js:207:25)
   at ReactDefaultBatchingStrategyTransaction.Mixin.perform (/Users/soren/Documents/Git/aarhus-business-college-node/node_modules/react-router/node_modules/react/lib/Transaction.js:148:16)

hmm, there's a test that doesn't have this problem, have you tried beta3?
https://github.com/rackt/react-router/blob/master/modules/__tests__/serverRendering-test.js


Traits Refactor

Separates out the PoprfScheme trait into three: PoprfScheme, ThresholdScheme, and PrfScheme. Each represents a control flow which results in a vector of bytes as output, all of which should agree with one another on the same message and tag. They do not have any dependence on one another but all depend on either Scheme or Poprf; in particular PartialResp from the ThresholdScheme and PoprfScheme is not compatible across both abstractions.

Codecov Report

Merging #9 (fe3130c) into main (9b866ea) will increase coverage by 1.67%.
The diff coverage is 98.50%.

@@            Coverage Diff             @@
##             main       #9      +/-   ##
==========================================
+ Coverage   57.96%   59.63%   +1.67%
==========================================
  Files           5        5
  Lines         659      716      +57
==========================================
+ Hits          382      427      +45
- Misses        277      289      +12

Impacted Files
Coverage Δ

src/ffi/wasm.rs
0.00% <ø> (ø)

src/lib.rs
33.33% <ø> (+3.33%)
:arrow_up:

src/poprfscheme.rs
77.11% <97.56%> (-0.03%)
:arrow_down:

src/poprf.rs
99.29% <100.00%> (+0.07%)
:arrow_up:

Continue to review full report at Codecov.

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


[WIP/bp/1.26] Backport stack (updates)

dependency updates
ci sync

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

kitware is down so workaround to install cmake has broke for now


update split method docstrings in accessor.py

This PR expands the docstring for split in acccessor.py to identify a known inconsistency with the pandas method to better guide users.

[X] Closes #9176
[ ] Tests added / passed
[ ] Passes pre-commit run --all-files

Can one of the admins verify this patch?

@jrbourbeau - thanks for taking a look. I committed your suggested changes and it looks like the tests are running again. Anything else for me to do here?


Border Router reply Ping & CoAP not Reply Ping

Border Router reply Ping & CoAP not Reply Ping
CoAP Ping  statistics
--- aaaa::c30c:0:0:2 ping statistics ---
24 packets transmitted, 0 received, 100% packet loss, time 23183ms
Border Router Ping statistics
--- aaaa::c30c:0:0:1 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8010ms
rtt min/avg/max/mdev = 19.779/20.053/20.198/0.224 ms

change channel & TX power


Add FR lang

Hi, I've added a translation file for the French language.
I'm available if you have any questions/changes 😃

By the way, we should have a look at adding translations for the constants :

Devices : https://github.com/CamTosh/umami/blob/master/lib/constants.js#L57-L61
Langs : https://github.com/mikecao/umami/blob/master/lib/constants.js#L94-L340

Thanks!


Icons are missing/not loading in Icon Visual Test

https://mobify.github.io/stencil/visual/components/icon/index.html

It’s 404ing looking for iconfonts.

Fonts are in Spline https://github.com/mobify/spline/tree/master/test/fixtures/fonts/icon so it is apparently a path issue
@font-face {
  font-family: "spline";
  font-weight: normal;
  font-style: normal;
  src: url("../../../../bower_components/spline/test/fixtures/fonts/icon/spline.woff") format("woff"), url("../../../../bower_components/spline/test/fixtures/fonts/icon/spline.ttf") format("truetype"), url("../../../../bower_components/spline/test/fixtures/fonts/icon/spline.svg") format("svg");
}

Paths – especially asset paths – are super annoying with packages. Although this is an issue with gh-pages having a different directory structure maybe? @avelinet @tedtate any ideas? We’re going to need a solution to asset pathing issues like this for new stencil.


[#3379] feat(catalog-hadoop): Add S3 support for Fileset Hadoop catalog

What changes were proposed in this pull request?
Add S3 support for Fileset Hadoop catalog. We only add hadoop-aws dependency actually, most of the work is conducting tests.
Why are the changes needed?
Fix: #3379
Does this PR introduce any user-facing change?
No.
How was this patch tested?
IT.

@xiaozcy
Please resolve the conflicts if you are free.

@FANNG1 can you please also take a look at this?
Besides, I think it would be better that s3 related configurations to be catalog/schema/fileset properties, the reason is that such properties are important to make fileset on s3 work, we'd better not hiding them into the hadoop site xml.

@xiaozcy can you please address the comments here?

To make fileset works on s3, we may have to add configurations like fs.s3a.access.key and fs.s3a.secret.key to hadoop conf. I'm not sure whether we should add an another authentication type, or just simply add them to catalog/schema/fileset properties, what's your opinion about this? @jerryshao @yuqi1129

To make fileset works on s3, we may have to add configurations like fs.s3a.access.key and fs.s3a.secret.key to hadoop conf. I'm not sure whether we should add an another authentication type, or just simply add them to catalog/schema/fileset properties, what's your opinion about this? @jerryshao @yuqi1129

@yuqi1129 what do you think?

To make fileset works on s3, we may have to add configurations like fs.s3a.access.key and fs.s3a.secret.key to hadoop conf. I'm not sure whether we should add an another authentication type, or just simply add them to catalog/schema/fileset properties, what's your opinion about this? @jerryshao @yuqi1129

@yuqi1129 what do you think?

I think it would be best to add a flag to clearly indicate the type of authentication we will be using. The Gravitino fileset currently supports simple and Kerberos authentication. Once we set the type, we can verify that the required properties have been provided before initializing the correspond SDK client.
https://github.com/apache/gravitino/blob/2d57f6308bbdf6f5f3a0fa7a4d751e08d04d293a/docs/hadoop-catalog.md?plain=1#L26-L48

@yuqi1129, could you help review this again?

@yuqi1129, could you help review this again?

Sure.

https://github.com/apache/gravitino/blob/13f3b3f3118e2a7f8b63aa324e11c688159f4633/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/SecureHadoopCatalogOperations.java#L92-L94
I wonder why the passed value to hadoop conf is null in places like this. In this way, we can not pass some configurations in schema/fileset level. Should we use hadoopCatalogOperations.getHadoopConf() instead?

https://github.com/apache/gravitino/blob/13f3b3f3118e2a7f8b63aa324e11c688159f4633/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/SecureHadoopCatalogOperations.java#L92-L94
I wonder why the passed value to hadoop conf is null in places like this. In this way, we can not pass some configurations in schema/fileset level. Should we use hadoopCatalogOperations.getHadoopConf() instead?

We can't pass the Hadoop Conf from the method signature, so I use null instead. If you need the value, please go ahead and make the necessary changes.

https://github.com/apache/gravitino/blob/13f3b3f3118e2a7f8b63aa324e11c688159f4633/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/SecureHadoopCatalogOperations.java#L92-L94
I wonder why the passed value to hadoop conf is null in places like this. In this way, we can not pass some configurations in schema/fileset level. Should we use hadoopCatalogOperations.getHadoopConf() instead?

We can't pass the Hadoop Conf from the method signature, so I use null instead. If you need the value, please go ahead and make the necessary changes.

After thinking carefully, I'm not sure whether it is appropriate to support multi-level authentication for S3. Because we have to pass some configurations to hadoop conf when doing some operations on schema/fileset, and the hadoopConf in HadoopCatalogOperations is defined at catalog level, if we want to modify it, we have to lock hadoopConf to avoid conflicts, which means we cannot do some operations at same time(like creating two different schemas at one catalog).

https://github.com/apache/gravitino/blob/13f3b3f3118e2a7f8b63aa324e11c688159f4633/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/SecureHadoopCatalogOperations.java#L92-L94
I wonder why the passed value to hadoop conf is null in places like this. In this way, we can not pass some configurations in schema/fileset level. Should we use hadoopCatalogOperations.getHadoopConf() instead?

We can't pass the Hadoop Conf from the method signature, so I use null instead. If you need the value, please go ahead and make the necessary changes.

After thinking carefully, I'm not sure whether it is appropriate to support multi-level authentication for S3. Because we have to pass some configurations to hadoop conf when doing some operations on schema/fileset, but the hadoopConf in HadoopCatalogOperations is defined at catalog level, if we want to modify it, we have to lock hadoopConf to avoid conflicts, which means we cannot do some operations at same time(like creating two different schemas at one catalog). Do you have any suggestions? @yuqi1129

We can start with catalog-level authentication first, when there is a clear need to support multiple-level authentication for S3, we can do it again.

Hi @xiaozcy thanks a lot for your work. I think most of us are debating on how to make a meaningful property. Well, this indeed is a problem that should be carefully thought of, I was thinking of a more fundamental problem: how do we support different storage?
As we may continue to add more storage support, like adls, gcs, oss, adding all of them as dependencies for Hadoop catalog will make this catalog a dependency hell. In the meantime, for most of the companies, one or two storages should be enough.
So I was thinking of introducing a pluggable framework to support different cloud storages, users can configure to make the storage they want work, no need to package all of them together.
Can you guys please investigate a bit about other projects like Iceberg, etc, to see how they handle this problem and make an elegant framework? Basically, what I want is a pluggable framework for different storages, users can configure to make it work, besides, they can be in the separate packages, unless you make it work manually, the storages cannot be worked automatically.
Meanwhile, I think to support S3, we should also make it work in both Java and Python GVFS implementations, otherwise it cannot be used end to end.
So @xiaozcy @yuqi1129 @FANNG1 can you guys please think about my questions and propose a better solution?

Hi @xiaozcy thanks a lot for your work. I think most of us are debating on how to make a meaningful property. Well, this indeed is a problem that should be carefully thought of, I was thinking of a more fundamental problem: how do we support different storage?
As we may continue to add more storage support, like adls, gcs, oss, adding all of them as dependencies for Hadoop catalog will make this catalog a dependency hell. In the meantime, for most of the companies, one or two storages should be enough.
So I was thinking of introducing a pluggable framework to support different cloud storages, users can configure to make the storage they want work, no need to package all of them together.
Can you guys please investigate a bit about other projects like Iceberg, etc, to see how they handle this problem and make an elegant framework? Basically, what I want is a pluggable framework for different storages, users can configure to make it work, besides, they can be in the separate packages, unless you make it work manually, the storages cannot be worked automatically.
Meanwhile, I think to support S3, we should also make it work in both Java and Python GVFS implementations, otherwise it cannot be used end to end.
So @xiaozcy @yuqi1129 @FANNG1 can you guys please think about my questions and propose a better solution?

I agree that it's proper to provide a plugin method, but this seems not urgent and a blocking matter. Iceberg is a library which should not introduce too many dependencies to users, which Gravitino is a server which hidden the dependency issues to user and Polaris and UnityCatalog doesn't handle this too, IMO it's more importance to provide a unified storage configuration for all catalogs than providing plugin storage.

Hi @xiaozcy thanks a lot for your work. I think most of us are debating on how to make a meaningful property. Well, this indeed is a problem that should be carefully thought of, I was thinking of a more fundamental problem: how do we support different storage?
As we may continue to add more storage support, like adls, gcs, oss, adding all of them as dependencies for Hadoop catalog will make this catalog a dependency hell. In the meantime, for most of the companies, one or two storages should be enough.
So I was thinking of introducing a pluggable framework to support different cloud storages, users can configure to make the storage they want work, no need to package all of them together.
Can you guys please investigate a bit about other projects like Iceberg, etc, to see how they handle this problem and make an elegant framework? Basically, what I want is a pluggable framework for different storages, users can configure to make it work, besides, they can be in the separate packages, unless you make it work manually, the storages cannot be worked automatically.
Meanwhile, I think to support S3, we should also make it work in both Java and Python GVFS implementations, otherwise it cannot be used end to end.
So @xiaozcy @yuqi1129 @FANNG1 can you guys please think about my questions and propose a better solution?

I agree that it's proper to provide a plugin method, but this seems not urgent and a blocking matter. Iceberg is a library which should not introduce too many dependencies to users, which Gravitino is a server which hidden the dependency issues to user and Polaris and UnityCatalog doesn't handle this too, IMO it's more importance to provide a unified storage configuration for all catalogs than providing plugin storage.

I agree with @FANNG1, adding all of the dependencies seems not to be a huge problem in server side, and letting users configure to enable it may make it more complicated to use. I think this might be something to consider when dealing with GVFS, which I would think about later. For this PR, I think we should focus on the how to manage these configurations first.

No, I would rather have a thorough solution beforehand. Supporting one cloud storage is easy, but when we add more, maintaining them will have a heavy burden, this is the burden the community should take care, not the user. The solution should not only focus on the server side Fileset catalog support, the client side GVFS should also be considered in this solution, the unified configuration thing should also be included in this solution.
So I would suggest we have a complete design doc about how to support multiple cloud storages that includes both the server and client side solutions. We can discuss based on the design doc. The design doc will make us more clear and thorough about how to well support different storages, currently, all our discussion is around S3, but what if the current solution cannot fit ADSL or GCS, how do you handle this? Besides, whether the pluggable framework should be introduced or not should be decided based on thorough investigation and discussion, not just based on whether it is urgent or blocking or not.

Hi all, let me share some actual production cases:
Since I'm mainly responsible for the integration between Gravitino Fileset and internal engines and platforms, I did encounter some actual dependency conflicts problems during the launch process.

On the server side: Our current supports both HDFS/MiFS (an internal storage that supports various object storages) in a Fileset Catalog. When introducing MiFS, the biggest problem encountered by the server during integration testing is that the MiFS dependency conflicts with some Grav dependencies. At this time, we have to take two approaches:
a. Contact MiFS R&D to shade these dependencies (on the public cloud storage, I think this is not possible to do).
b. During integration testing, exclude MiFS dependencies and cannot do MiFS integration testing.
In GVFS client: Since it needs to be used in Spark, we have tried to add MiFS dependencies directly to GVFS, but this may still conflict with some dependencies of Spark. We have to shade these dependencies in GVFS, and some dependencies whatever cannot be shaded. Therefore, the solution we finally adopted is to make MiFS dependencies independent of GVFS client, and ask MiFS developers to shade these dependencies before introducing them separately in Spark.
What I want to say is that with the increase of supported storages, dependency conflicts are inevitable, so on-demand loading may be a more reasonable approach. But I still hope that one Catalog can support multiple storage types, but the supported storage types can be determined by the maintainer.

we could reuse the s3 properties defined in https://github.com/apache/gravitino/pull/4897/files#diff-7434c367b3597195902b8b064a5efe5810cb0cf5e7f55228044bfcc4cd9b2abd


Added slideshow on game dev section and godot logo now linked to the godot engine page

now the slide show has been added to the game dev section
and godot logo that shake now redirect user to godot engine page.

Alpha v0.02 here we come


Added more tests

Added tests to ensure:
InitTerminalDriver returns -1 when called a second time
InitTerminal returns -1 when term has already been initialized

Those are good!


chore(release): 2.27.0

Version bump in package.json and package-lock.json for release 2.27.0

:tada: This PR is included in version 2.28.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Upgrade gives error: Installation does not exist

Trying to follow the docs on running porter upgrade... I installed the operator with...
porter credentials generate porterops -r ghcr.io/getporter/porter-operator:canary
porter install porterops -c porterops -r ghcr.io/getporter/porter-operator:canary
porter invoke porterops --action configure-namespace --param namespace=porter-installs -c porterops

I have the following CRD:
apiVersion: porter.sh/v1
kind: Installation
metadata:
  namespace: porter-installs
  name: workbench-operator
spec:
  reference: "kineticadevcloud/workbench-operator:v<IP_ADDRESS>-rc20"
  action: "install"
  parameters:
    kubeconfig: "<here's a kube config>"

it installs succesfully.  Then I kubectl apply the following "upgrade"...
apiVersion: porter.sh/v1
kind: Installation
metadata:
  namespace: porter-installs
  name: workbench-operator
spec:
  reference: "kineticadevcloud/workbench-operator:v<IP_ADDRESS>-rc21"
  action: "upgrade"
  parameters:
    kubeconfig: "<here's a kube config>"

But that fails and the log ends with...
Pulling bundle docker.io/kineticadevcloud/workbench-operator:v<IP_ADDRESS>-rc21
WARNING: both registry and reference were provided; using the reference value of docker.io/kineticadevcloud/workbench-operator:v<IP_ADDRESS>-rc21 for the bundle reference
WARNING: both registry and reference were provided; using the reference value of docker.io/kineticadevcloud/workbench-operator:v<IP_ADDRESS>-rc21 for the bundle reference
upgrading workbench-operator-install...
Resolved storage plugin to storage.porter.filesystem
/root/.porter/porter plugin run storage.porter.filesystem
Error: could not load installation workbench-operator: Installation does not exist

I also tried running kubectl edit installation directly, and that yielded the same result.  I tried creating a separate CR for the upgrade as well, but it just changes the error message to "could not load installation name of upgrade cr: Installation does not exist"  What am I doing wrong here?  Thanks!

Seems like there is a misconfiguration that is causing porter install to run with the filesystem plugin. So when you upgrade, it can't find the appropriate files because remote storage wasn't used.
Can you try installing the latest tagged version of the operator? v0.2.0 installs the operator with the default kubernetes plugin. The credentials still prompt for azure, you can just set them all to an empty string value and the bundle will use the kubernetes plugin for storage.
You can tell that it's using the right config by looking at the output of the porter pod and checking for the following line:
Resolved storage plugin to storage.kubernetes.storage

The storage plugin is configured in the secret named 'porter-configin theporter-installs` namespace. It contains a config.toml file that should look like this:
debug = true
debug-plugins = true
default-secrets = "kubernetes-secrets"
default-storage = "kubernetes-storage"

[[secrets]]
name = "kubernetes-secrets"
plugin = "kubernetes.secret"

[[storage]]
name = "kubernetes-storage"
plugin = "kubernetes.storage"

Thanks for the quick update, @carolynvs .  v0.2.0 didn't help by itself, but when I provided the above config.toml in the credentials, that seems to have fixed it!
...
/cnab/app/cnab/app/mixins/exec/runtimes/exec-runtime upgrade --debug
DEBUG Parsed Input:
&exec.Action{Name:"upgrade", Steps:[]exec.Step{exec.Step{Instruction:exec.Instruction{Description:"World 2.0", Command:"./helpers.sh", WorkingDir:"", Arguments:[]string{"upgrade"}, SuffixArguments:[]string(nil), Flags:builder.Flags(nil), Outputs:[]exec.Output(nil), SuppressOutput:false}}}}
/cnab/app ./helpers.sh upgrade
World 2.0
execution completed successfully!

I'm glad you got it to work! Maybe there is a problem with how we are defaulting the config to use the plugin, I'll keep poking around to get that fixed.
Thanks for letting me know about the bug!


test: Support reuse of github actions

Support reuse of github actions
Description
Using github cache we avoid rerunning successful jobs
Fixes #
Type of change

Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?
Tested push workflow in my own fork.
ok-to-test flow is not tested.
Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

/ok-to-test sha=d47f492

/ok-to-test sha=d47f492


The connection to the server localhost:8080 was refused - did you specify the right host or port?

Environmental Info:
K3s Version: v1.24.6+k3s1 (a8e0c66d)

Node(s) CPU architecture, OS, and Version: Raspberry Pi 4B arm64 newest Version of Raspbeery Pi OS

Cluster Configuration: 2 Pi 4B in the same network to get into one k3s cluster

Describe the bug:
On master node i can see both nodes by executing kubectl get nodes. But when I use the command on the second node I receive to following error:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

Steps To Reproduce:

Installed K3s the usual way and added the second node to the cluster

Expected behavior:

Actual behavior:

Additional context / logs:

Did you make the second node a server, or an agent? Agents don't have an admin kubeconfig on them; you're not expected to be able to run kubectl there.


Revert GitHub Actions for Python 3.8 to macos-latest

Summary of changes
The issue might have been solved in https://github.com/actions/setup-python/issues/850#issuecomment-2077454891
Closes
Pull Request Checklist

[ ] Changes have tests
[ ] News fragment added in newsfragments/.
(See documentation for details)

Or maybe not...

I believe this issue could also by addressed by syncing with the latest skeleton.

This concern was addressed in #4430.


Fixing the arch problem, building it with -march=nocona instead of -m…

…arch=native now

Checklist

[ ] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Python 3 changes plus automated testing

This seems to be blocking Python 3 progress at https://github.com/nodejs/node/pull/29451#issuecomment-533727436
Test results: https://travis-ci.com/cclauss/tap2junit
@jbergstroem Your review please.  Will require a new release to PyPI #8
@sam-github @refack @bnoordhuis @Trott Your reviews too please.

As long as this continues to work on py2 and py3, it LGTM.
Who has credentials to land it?
@cclauss once landed, do you have pypi publish credentials now?

Only @jbergstroem can land it and only @jbergstroem has the PyPI credentials.

Alternative plan if this isn't landed soon, as this a blocker?
Vendor in a fork of this with our fixes where it is needed?

See: nodejs/build#1921 for all the places in ansible scripts where it is installed.  I kinda hate vendoring in.

We could also publish the fork on PyPi under tap2junit-node or similar?

@jbergstroem In the interests of minimizing maintenance burden for you, if you are willing, you could just add either @cclauss , or me (@sam-github), or any other Node.js TSC member to admin on this repo, I think that would allow us to do the maintenance.
But if you have time to add cclauss to pypi and transfer it yourself, that works great, too!
I'm not fan of ansible, and would be happy to vendor it, but I'm not keen to grout out all the references to it in our ansible scripts. The low-maintenance fix is definitely to transfer it, if Johan is willing.

@cclauss I think you can land this, can you try?


Add ksbharaj's file

Created a branch, created a file and made a commit, and opened a pull request

yaaaayyyyy


[DUBBO-3476]: NullPointerException happened when using SpringContainer.getContext()

What is the purpose of the change
fix #3476
Brief changelog
XXXXX
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #3600 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #3600      +/-   ##
============================================
+ Coverage     64.13%   64.19%   +0.06%
  Complexity       71       71
============================================
  Files           664      664
  Lines         28652    28653       +1
  Branches       4769     4769
============================================
+ Hits          18375    18395      +20
+ Misses         8052     8033      -19
  Partials       2225     2225

Impacted Files
Coverage Δ
Complexity Δ

...apache/dubbo/container/spring/SpringContainer.java
72.22% <100%> (+1.63%)
0 <0> (ø)
:arrow_down:

...bbo/registry/support/ProviderConsumerRegTable.java
80.48% <0%> (-4.88%)
0% <0%> (ø)

...he/dubbo/registry/multicast/MulticastRegistry.java
67.87% <0%> (-1.81%)
0% <0%> (ø)

...pache/dubbo/registry/support/AbstractRegistry.java
79.52% <0%> (-1.19%)
0% <0%> (ø)

...rg/apache/dubbo/common/timer/HashedWheelTimer.java
58.62% <0%> (+0.34%)
0% <0%> (ø)
:arrow_down:

.../java/org/apache/dubbo/config/ReferenceConfig.java
58.08% <0%> (+0.36%)
0% <0%> (ø)
:arrow_down:

.../src/main/java/org/apache/dubbo/rpc/RpcStatus.java
70.32% <0%> (+2.19%)
0% <0%> (ø)
:arrow_down:

...exchange/support/header/HeaderExchangeHandler.java
58.13% <0%> (+2.32%)
0% <0%> (ø)
:arrow_down:

...bo/rpc/cluster/support/FailbackClusterInvoker.java
70.49% <0%> (+3.27%)
0% <0%> (ø)
:arrow_down:

...onfig/spring/extension/SpringExtensionFactory.java
85.36% <0%> (+4.87%)
0% <0%> (ø)
:arrow_down:

... and 5 more

Continue to review full report at Codecov.

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

Please commit a pr in dubbo 2.6.x.


Update virtual-machine-scale-sets-autoscale-portal.md

There is no Public article available for  enabling the memory metrics in VMSS

 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.:x: yuvaraj0725 sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@yuvaraj0725 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jborsecnik : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@jborsecnik : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@cynthn, if you want to proceed with this, we should move it to the private repo for validation/staging. Thanks.

@jborsecnik Yep, this needs to be pulled over into the private repo and should probably be a separate topic. I'll discuss with the VMSS team and pull this over later today.

Great, thanks.

@cynthn : Let me know if any additional information is needed.

@yuvaraj0725 Thank you for the contribution! I've pulled this over into the private repo, into a new document. It is currently being reviewed by the engineering team.
#please-close


Drop the outdated csharp test

The C Grpc library wrapper is outdated and no longer being maintained, and netcoreapp3.1 as well as netstandard1.5 are going end of life.
Given that we already have the new dotnet_grpc test, the outdated test should be dropped.

Please remove the csharp_grpc_bench section from CI.

Done.


Uso de Git Ignore

Explanation
When sharing your code with others, there are often files or parts of your project, you do not want to share.
Examples:

log files
temporary files
hidden files
personal files

Git can specify which files or parts of your project should be ignored by Git using a .gitignore file.
Git will not track files and folders specified in .gitignore. However, the .gitignore file itself IS tracked by Git.
Steps
Create a .gitignore file in the root of your local Git.
Open the file using a text editor.
Add the rules you want to use. For example, you could add these two simple rules:
Ignore any files with the .log extension
Ignore everything in any directory named temp

Now all .log files and anything in temp folders will be ignored by Git.
References

Git Ignore and .gitignore by W3Schools.
Git ignore by Atlassian.
gitignore by Git

Se cierra issue tras concluir curso.


asking native file handling

1st, sorry for asking things not related about this project.
you bind a lot using p/invoke  to native dll,   but I find I can't  "reference" the native dll into my project (directly without nuget <PackageReference />)
this is my question: https://github.com/dotnet/runtime/discussions/65420
basically:
<Content Include="Native\win-x64\vbar.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <Pack>true</Pack>
      <PackagePath>runtimes/win-x64/native/vbar.dll</PackagePath>
    </Content>

this resolve to nuget package,  but it doesn't help for "project" and "<ProjectReference />"
and even if I  put my dll in  <project dir>\runtimes\win-x64\native\vbar.dll  , it will only work for AnyCpu -portable ,  and it doesn't work when I publish as self-contained ,   other native file will goes to top level folder and mine are stay in "runtimes" ,  and  there no record in App.deps.json  but other native dll from nuget are in there.

Unfortunately, I'm not really an expert in this stuff anymore, you'd best ask in one of the dotnet repos or through some other .NET support channel. I can point you to how NeoDemo does it which is to just directly reference and copy the native DLLs that its dependencies use. Not ideal, but it gets the job done.


MAINT: Add noxfile and build instructions

This is a developer improvement for folks that want to build the website locally. Because this website uses Ruby/Jekyll, it can be quite difficult to get up and running for people who are not familiar with Ruby workflows. This PR does a couple things:

adds some more instructions to help people get started building the website locally
adds a noxfile.py which allows us to install all necessary dependencies and build a preview via one command: nox -s build
cleans up a bit of the README.md file in general, but doesn't change much content

My hope is that this will make it easier to quickly get up and running with a website preview, so folks can spend less time setting up a dev environment, and more time building and previewing.
Am curious if @palewire thinks these instructions would have helped him get started more quickly?

At the risk of boring you with biography, due to my career in publishing I was introduced to this work via web development tools. So, unlike some people with a data science background, I'm more comfortable with Ruby and pipenv and static site frameworks than I am with backend build tools like nox, and even conda. So I'm probably not the target audience here.
That said, I think that a simplified, and standardized, install process seems like a good idea. So I'm supportive of this patch.
Here some thoughts I have on it:

Recommending nox seems reasonable, but I think we should still include the standard Ruby install and serve steps as well. Many other projects offer multiple install paths, so it's not unusual. Plus it's the actual close to the chrome stuff that ought to be recorded somewhere.

It's not essential, but a screenshot of the netlify button might be nice in your new preview section. The image could go in the .github folder.

I think the PR section at the very bottom of the README is now redundant and could go.

Great feedback, will give it a shot when I'm at my computer next

@palewire LMK what you think!

As a follow-up to https://github.com/jupyter/jupyter.github.io/pull/533 I also added a short "tips" section at the bottom, and included a note about lazy loading.

Looks great. Let's merge it.


cannot display the ag-grid

Describe the bug
A clear and concise description of what the bug is.
Please specify library version.
To Reproduce
Create a Stackblitz demoing the bug/issue:
https://stackblitz.com/

the problem is it cannot display the ag-Grid component together with the data in the right pane.

do have any idea how to solve it?
the problem is it cannot display the ag-Grid component together with the data in the right pane.

Please provide a stackblitz demo.


MassTransit SendContext filter dependencies behave differently than PublishContext dependencies when sending/publishing from a Saga with tx outbox

Contact Details
No response
Version
8.x
On which operating system(s) are you experiencing the issue?
Windows
Using which broker(s) did you encounter the issue?
RabbitMQ
What are the steps required to reproduce the issue?
1. Configure tx outbox + sagas + EF core persistence
2. Create filters:

class SendFilter<TMessage> : IFilter<SendContext<TMessage>>
class PublishFilter<TMessage> : IFilter<PublishContext<TMessage>>

3. Inject ScopedConsumeContextProvider into both (or in their dependency)
4. Access ScopedConsumeContextProvider.Context or ScopedConsumeContextProvider.HasContext
5. Publish / send message from a consumer saga

What is the expected behavior?
ScopedConsumeContextProvider.Context should be available in all cases, when publishing/sending both from a normal consumer and from a consumer saga.
What actually happened?
It works ok for a normal consumer and a consumer saga publish. But a send from a consumer saga wont have the ScopedConsumeContextProvider.Context set.
ScopedConsumeContextProvider.HasContext returns false, ScopedConsumeContextProvider.Context returns null.
Related log output, including any exceptions
No response
Link to repository that demonstrates/reproduces the issue
No response

For this to be investigated, a standalone repository should be included that demonstrates the issue.

I've created a demo repository: https://github.com/peto268/MassTransit_ContextProviderBug
While creating it I've noticed that the behavior is not dependent on the operation (publish/send) it's broken for both. As soon as I turned on the tx outbox, the context is not available. So the ticket description is actually misleading.
You can modify this in the demo in https://github.com/peto268/MassTransit_ContextProviderBug/blob/master/MassTransit_ContextProviderBug/Flags.cs

I was able to reproduce this and I believe I have a fix in progress.


Allow "," in element id

This is a minimal fix to allow "," in the element id.
Caja probably needs a story with a more comprehensive change, as it's already more permissive than then HTML4 specification.
HTML 4.01 specified that ID tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (-), underscores (_), colons (:), and periods (.).
http://www.w3.org/TR/html401/types.html#type-name
HTML5 got rid of those restrictions on the id attribute. Now class and id attributes are now very similar.  The only requirements left — apart from being unique in the document — are that the value must contain at least one character (can’t be empty), and that it can’t contain any space characters.
https://html.spec.whatwg.org/multipage/dom.html#classes

Thanks! Like the bot says, please sign the Google CLA so we can include your contribution.


macro fallback scope described in docs does not seem to exist

VSCode Version: 1.51.0
OS Version: MacOS 10.15.7

Steps to Reproduce:

Run an extension that uses semantic coloring mark a token as "macro"
Observe that no fallback scope is being applied:

Does this issue occur when all extensions are disabled?: Yes/No
Not applicable, this bug can only occur when an extension is using macro syntax coloring.

The fallback scope for "macro" is described in https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#semantic-token-scope-map

entity.name.other.preprocessor.macro is defined as the fallback scope, but non of the built-in theme define any color for it.
Is there a better scope to use?
@Colengms Any suggestions?

@aeschli The TextMate scope for macro used in the original C/C++ semantic colorization feature was: entity.name.function.preprocessor, which we still use as a fallback.
https://code.visualstudio.com/docs/cpp/colorization-cpp
It was mentioned here, when discussing adding scopes to plus themes: https://github.com/microsoft/vscode/issues/80783
The C/C++ extension currently uses the same semantic token for both function macros and non-function macros.

@aeschli If entity.name.other.preprocessor.macro is the fallback scope, why doesn't it show up in the tooltip? Perhaps that is a separate bug?

@georgewfraser The tooltip wants to show how the style at the current position was determined. For semantic highlighting it would show the theming rule if it had matched one. As current theme doesn't have theming rules to neither the token type (macro) nor the fallback scope(s), no such information is shown

I pushed a fix to change the macro fallback scope to entity.name.function.preprocessor

To verify open the https://github.com/microsoft/vscode-extension-samples/tree/master/semantic-tokens-sample, add macro as a supported token. Use the 'Inspect token and scopes' command to verify that it is colored with the color associated with the entity.name.function.preprocessor scope


Save dist folder to support install from github.

Also this clean up the problem of typescript complain source file not in the rootDir problem
https://github.com/phenomnomnominal/angular-2-local-storage/issues/17

Can someone merge this?

If you don't like the dist folder, you can remove it but you should publish it to npmjs. With the dist folder, the benefit is that it is possible to npm install from git.

I'm actually on holiday in Thailand, but since you asked so nicely...

@phenomnomnominal Enjoy Thailand! I was not in an hurry. Just going through all my pull requests and do a weekly ping.

<EMAIL_ADDRESS>Sorry for sounding snarky before, just a bit grumpy today 😄! I swear I'm close to actually needing this project, will re-port it to get all the new stuff in angular-local-storage soon.


Developing IDS-testbed in a Kubernetes local cluster

It has been added the necessary manifests to run IDS-testbed with K8s in a local environment. Also, Postman file has been modified to test the K8s environment connectivity, and finally, Kube-linter tests have been added to verify the code integrity.

Testbed deployment in Kubernetes not in scope for now.


Implement message expiry in broker

Implementation of message expiry and included unit test. One thing I note now is that the retained_map does not include handles, but for removing a topic when the messages times out, the handle could be useful.

Message Expiry Interval is not only on PUBLISH but also on CONNECT.
On CONNECT, the property is for "will".
See https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901064

Message Expiry Interval target message is not only retained message, but also offline_messages.
offline messages
See https://github.com/redboltz/mqtt_cpp/blob/master/test/test_broker.hpp#L1551
The offline messages should be removed when Message Expiry Interval passed.
inflight messages
In addition, in flight message would be target. In flight means not completed publish sequence messages.
I will implement resending them mechanism in the future.
For example,

The broker PUBLISH QoS1 message1
The subscriber disconnected. (The subscriber had CONNECTed with infinity Session Expiry Interval)
The broker salvage inflight messages use for_each_store() and store them.
The subscriber CONNECT again.
The broker re-send stored message at the step3.

The inflight messages should be removed when Message Expiry Interval passed.
Current status
offlime_messages are already implemented. So you need to apply Message Expiry Interval for them.
inflight messages are not implemented yet.

Message Expiry Interval needs updating.
See https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901112

The PUBLISH packet sent to a Client by the Server MUST contain a Message Expiry Interval set to the received value minus the time that the Application Message has been waiting in the Server [MQTT-3.3.2-6]. Refer to section 4.1 for details and limitations of stored state.

For example,

The publisher PUBLISH message with Message Expiry Interval 100 seconds
The broker is very busy so 10 seconds passed.
The broker deliver the message to subscribers. In this case, the message's Message Expiry Interval should be updated to 90 seconds.

I think that it is not practical scenario on test_broker. Maybe we can ignore updating because broker immediately deliver the published message.
However, retained messages, offline_messages, and inflight messages (in the furure) are different.

The subscriber disconnected. (The subscriber had CONNECTed with infinity Session Expiry Interval)
The publisher PUBLISH a message with Message Expiry Interval 100 seconds. The message is stored as offline_messages.
10 seconds later, The subscriber CONNECT again.
The broker PUBLISH offline_messages to the subscriber. In this case, the message's Message Expiry Interval should be updated to 90 seconds.

This scenario actually happens.

I guess when a message is forwarded to the subscriber, the remaining time from the deadline timer should be send to the subscriber as well. But in the implementation, the message expiry interval is not even forwarded to the subscribers. So this should be added.

I am also a bit concerned with the amount of overhead the shared_ptr and deadline_timers take. Especially if every offline message needs a timer, this is maybe a bit too much. For will and retained messages I guess it is ok, possibly they are not that numerous.

I guess when a message is forwarded to the subscriber, the remaining time from the deadline timer should be send to the subscriber as well.

I don't understand what does "the deadline timer should be send to the subscriber" mean.
Do you mean as::steady_timer ? There is no way to send it. Because it is broker code.
Just send updated Message Expiry Interval property.

I am also a bit concerned with the amount of overhead the shared_ptr and deadline_timers take. Especially if every offline message needs a timer, this is maybe a bit too much. For will and retained messages I guess it is ok, possibly they are not that numerous.

I think that it is not a big problem. std::shared_ptr<as::steady_timer> should be added to each offline_messages.
shared_ptr is null if Message Expiry Interval is infinity or not set. It is ignorable cost.
If Message Expiry Interval is set, then std::shared_ptr<as::steady_timer> is set. But it is also small cost. Off course, it is bigger cost than nullptr but still small cost.
https://github.com/boostorg/asio/blob/develop/include/boost/asio/steady_timer.hpp
https://github.com/boostorg/asio/blob/develop/include/boost/asio/basic_waitable_timer.hpp
https://github.com/boostorg/asio/blob/develop/include/boost/asio/basic_waitable_timer.hpp#L805
https://github.com/boostorg/asio/blob/develop/include/boost/asio/detail/deadline_timer_service.hpp#L284-L288
The different approach I came up with is just storing Time Stamp instead of std::shared_ptr<as::steady_timer>. Each offline_messages has smaller memory usage and times of allocation. However, it is a bad idea.
The biggest problem is when the Time Stamp is checked. Maybe at the subscriber connected again. If Message Expiry Interval is 10 seconds and many publish messages are storead as offline_messages, many expired messages are remained until the reconnection. There is no guarantee that the subscriber would reconnect.
Note that as::steady_timer doesn't consume operating system timer resources. If I understand correctly, it stores only timestamp information (plus small additional information).

Note that as::steady_timer doesn't consume operating system timer resources. If I understand correctly, it stores only timestamp information (plus small additional information).

Yes, I understand it does not consume operating system resources. Problem I have is that with shared_ptr, if an offline message does not use a  message expiry, still the shared_ptr is stored with nullptr. It is possible perhaps to have list of times separate from offline messages. That way you only make a timer for each message that has message expiry.

Problem I have is that with shared_ptr, if an offline message does not use a message expiry, still the shared_ptr is stored with nullptr.

Most of code is optimized with -O2.
See https://godbolt.org/z/784qx9
        call    std::__1::__shared_weak_count::__release_weak()

I found the code above. But I think that it is not passed if shared_ptr is nullptr.
See https://github.com/llvm-mirror/libcxx/blob/a0f5b3a6e323385fc29c8f6087f8b665fa6e7d4d/include/memory#L3914-L3921
Underlying structure (shared_count etc) is not generated (initialized as null) by the default constructor.
So I think that embedding shared_ptr is no problem.
But I understand what you mean now. Separating timer and offlime_messages can avoid creating redundant null std::shared_ptr<as::steady_timer>. But as you mentioned, offlime_messages need to have something like handle for the timer collection to remove. I think that it is similar cost as null shared_ptr.
Hence, I think that embedding std::shared_ptr<as::steady_timer> into offline_message is reasonable choice.


There is a spelling mistake in index.php file

There is a comment
// This fill will handle all the routing logic at line 2 in index.php
which should be
// This file will handle all the routing logic

The issue has been resolved via PR#5.


Support setting cipher_suites and ecdh_curves in TLSContext

Description
Adds the ability to tune the cipher suites and ecdh curves.
Related Issues
None.
Testing
Implemented some tests to check that the ciphers / curves work and do not work as expected.
This required a small change in the kat_client to support specifying these.
https://github.com/datawire/kat-backend/pull/15
Todos

[x] Tests
[x] Documentation

Other

If this is a documentation change, please open the pull request at https://github.com/datawire/ambassador-docs instead.
Code changes should occur against master.

Hey, this looks great! Sadly I think the test failure looks real, and that needs to pass...

kat-client needs a new feature to restrict ciperSuites/curves in order to test the negative case. I mentioned this above.
If my other PR is approved is there anything else I need to update on my end?

Using the provided kat-client Dockerfile I rebuilt from the master branch of kat-backend and the tests are working for me once I updated the kat-client manifest.
Can someone push kat-client:1.5.1 somewhere?

You got caught behind a discussion about how to move the kat stuff back into the Ambassador repo — sorry! I’ll get the new backend pushed tonight or tomorrow so we can get this landed; I’d like to ship it. 🙂

OK -- kat-backend has been tagged with v1.6.0 and, I think, you should be able to switch your branch to that. If it doesn't work, lemme know!

I pulled this into a local PR to deal with some test stupidity (from us, not you 😂) and landed it from there. Thanks!!


[fix][client] When the compressed message size exceeds maxMessageSize, the information in the InvalidMessageException may be incorrect

Motivation
When the compressed message size exceeds maxMessageSize, the information in the InvalidMessageException may be incorrect.
When the following conditions are met, the message data will be compressed, the string variable compressedStr should be assigned the value "Compressed", but the variable is assigned the empty string:
1. isBatchMessagingEnabled() return true;
2. msgMetadata.hasDeliverAtTime() return true;
3. compressedSize > ClientCnx.getMaxMessageSize() is true
4. conf.getCompressionType() != CompressionType.NONE is true;

https://github.com/apache/pulsar/blob/9ff9703d740eb8151b8cf2eb1e7faf074e9cf3c7/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ProducerImpl.java#L454-L473
We should remove the !isBatchMessagingEnabled() condition when the compressedStr is calculated:
String compressedStr = (!isBatchMessagingEnabled() && conf.getCompressionType() != CompressionType.NONE)
Modified to:
String compressedStr = conf.getCompressionType() != CompressionType.NONE)
Documentation

[ ] doc-required
(Your PR needs to update docs and you will update later)

[x] doc-not-needed
(Please explain why)

[ ] doc
(Your PR contains doc changes)

[ ] doc-complete
(Docs have been already added)

Matching PR in forked repository
PR in forked repository: https://github.com/lordcheng10/pulsar/pull/23

LGTM.  Please run CI from your own fork first, for details: https://pulsar.apache.org/contributing/#run-ci-from-fork

LGTM. Please run CI from your own fork first, for details: https://pulsar.apache.org/contributing/#run-ci-from-fork

OK

LGTM. Please run CI from your own fork first, for details: https://pulsar.apache.org/contributing/#run-ci-from-fork

CI passed.
@AnonHxy PTAL,thanks!

LGTM. Please run CI from your own fork first, for details: https://pulsar.apache.org/contributing/#run-ci-from-fork

CI passed: lordcheng10#23 @AnonHxy PTAL,thanks!

LGTM. BTW, we just need put the owned fork link to the describe document :), I have updated it

LGTM. Please run CI from your own fork first, for details: https://pulsar.apache.org/contributing/#run-ci-from-fork

CI passed: lordcheng10#23 @AnonHxy PTAL,thanks!

LGTM. BTW, we just need put the owned fork link to the describe document :), I have updated it

OK, Thanks!

@codelipenghui @JipeiWang @Jason918 PTAL,thanks!

/pulsarbot run-failure-checks

@aloyszhang PTAL,thanks!

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

@codelipenghui @Technoboy- PTAL,thanks!

@HQebupt PTAL,thanks!

/pulsarbot run-failure-checks


How to close properly

Hi,
Your Renderer and Overlay is really nice, but how to close the Overlay Window properly?
I also tried to use a normal WinForms Form and pass the Handle into the Renderer's Constructor.. that however worked pretty well. I open the Form with Show() instead of ShowDialog() and make a while loop until form.IsDisposed is called. But that however crashs with a NullReferenceException when the Renderer wants to call Finalize... There is no proper way to close right now is there?
Edit: I made a change to the Renderer... I removed the destructor, implemented IDisposable, moved the stuff that was in the destructor into Dispose() method and checking the stuff that was moved for null reference.
Now if I close the form, it calls dispose and disposes all objects as expected without crash.

That is, imo not the proper way of doing it, but I already solved this by Disposing everything before closing. Thanks anyways. There is also a lot of mistakes with colors... The ranges are from 0-1f, not 0-255f anymore. At least in the latest SharpDX binaries. Had to change them... And transparency when drawing for example a filled rectangle doesnt work.

you could try to change the AlphaMode to straight.
According the SharpDX documentation colors in both 0 - 255 and 0.f - 1 are fine. maybe check the code of the color constructor or any drawing primitive to get a detailed answer.
The Alpha value was converted to float to support various "hacks" i made with the previous version.

Allright, I am going to check that out :)

Added the Dispose pattern to any class who needs it. Look at the new source code


west: build: also parse common section in yaml file

Parse common section and append to cmake args if available when using
--test-item option of west build.
Signed-off-by: Anas Nashif<EMAIL_ADDRESS>

adding extra_conf in common causes error in twister (twisterlib.error.TwisterRuntimeError: No test cases found at the specified location...) but now works in west.

Does not tell me much, you need to provide more details, how is this related to this change? I tested extra_configs in common section, and it works as expected.

common sections are supported now
sysbuild also supported in common section
item takes priority over common section

It was just pointing the difference, sorry I was not precise enough with the description and might even not discribed it correctly. Adding extra_configs in yaml's common section is not supported in twister. The schema for testcase.yaml doesn't include it and twister fails on such cases. I guess it might be just an omission in twister and not a real feature and I see no real risk related to such difference between twister and west.

also added support for extra_conf_files, extra_overlay_confs, extra_dtc_overlay_files.
The code can be optimized a bit, but it does the job.


Dev

Codecov Report

Merging #173 (86d2103) into master (c1411f5) will increase coverage by 0.02%.
The diff coverage is 30.00%.

@@            Coverage Diff             @@
##           master     #173      +/-   ##
==========================================
+ Coverage   58.43%   58.46%   +0.02%
==========================================
  Files          76       76
  Lines        2512     2516       +4
  Branches      496      498       +2
==========================================
+ Hits         1468     1471       +3
- Misses        882      883       +1
  Partials      162      162

Impacted Files
Coverage Δ

client/src/Formatters/cfgFormat.ts
2.85% <ø> (+0.04%)
:arrow_up:

client/src/Formatters/spFormat.ts
10.00% <0.00%> (ø)

client/src/Commands/compileSM.ts
16.41% <16.66%> (+0.79%)
:arrow_up:

client/src/spLinter.ts
56.63% <66.66%> (+0.78%)
:arrow_up:

client/src/Misc/parseSMAPI.ts
35.48% <0.00%> (ø)

client/src/Commands/createTask.ts
20.93% <0.00%> (ø)

Continue to review full report at Codecov.

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


YouTube Sdk : Remove Ads from YouTubePlayer

I have used YouTube sdk for playing YouTube video in it. I want to remove ads in youtube player. Is it possible to remove ads from YouTubePlayer.
I have used "player!!.cueVideo(Url)"
I have used this sample code for YouTube sdk.
Please help me.

Of course not!


ZEPPELIN-247: fix; navbar.controller.js used to assumes WebSocket connection as disconnected.

ZEPPELIN-247: fix; navbar.controller.js used to assumes WebSocket connection as disconnected.
It should get the state from WebSocketService.

LGTM!


Fix indentation errors in data/deprecated.json

Originally included in #1278; extracted to a separate PR on maintainer's request.

Oh, nice catches! I had missed those :) Thanks for the review, expansion and merge!


Support Sentry SDK.

At the moment we are using raven. We should support both sdk and raven integrations.

[ ] Write plugin itself.
[ ] Create test project sentry_project at the examples directory.
[ ] Document new integration setup.
[ ] Release a new version.

I'm not sure if the raven project will continue to work with the next version of sentry. Maybe we should replace the contrib instead of creating the new one.

Pay attention to #119


initial fixes and gitignore

merging to incorporate other merge to master

this was menat to be a pull request into my forked version