Formatter: Specify indentation for function parameters

The current indentation behavior for function parameters is: 4-space indentation at function definitions, like this:
def my_function(
    my_function_arg_1,
    my_function_arg_2,
    my_function_arg_3,
    my_function_arg_4,
):
    pass

This leads to reduced readability, because the function name and the argument names become harder to distinguish.
Adding one more level of indentation greatly improves readability:
def my_function(
        my_function_arg_1,
        my_function_arg_2,
        my_function_arg_3,
        my_function_arg_4,
):
    pass

PEP8 also has the same suggestion: https://peps.python.org/pep-0008/#indentation
Originally posted by @jsh9 in https://github.com/astral-sh/ruff/discussions/7310#discussioncomment-7128822

def my_function(
    my_function_arg_1,
    my_function_arg_2,
    my_function_arg_3,
    my_function_arg_4,
):
    pass

This leads to reduced readability, because the function name and the argument names become harder to distinguish.

I don't agree with this because it's rare in the wild to all parameters starts with fullname of function/class name.
BTW, in my view it's not reducing readability (this may differ for you).

I think this is the same as https://github.com/astral-sh/ruff/issues/8360

I think this is the same as #8360

@MichaReiser Can you update the comment to link the correct issue? Currently, it's referring to itself ;)

Why do I always do this... 🤦 I'm trying to find the issue again but can't for some reason. I saw it before. I'll re-open this in the meantime.

I don't see why there is any need to downvote this, this a contentious issue based on numerous heated issues in black, etc that you can look up. The question is not whether you like it but whether there are enough who do.
The proposal is not to change the default, or force one way or another, but hopefully have a configuration option so that those of use who much prefer combining the PEP-8 recommendation of an extra indent level for function args with sad-face can do so.
Also, it is not just about readability in the contrived case where the args happen to match the function name, I feel the different alignment aids readbility regardless.

def my_function(
    my_function_arg_1,
    my_function_arg_2,
    my_function_arg_3,
    my_function_arg_4,
):
    pass

This leads to reduced readability, because the function name and the argument names become harder to distinguish.

I don't agree with this because it's rare in the wild to all parameters starts with fullname of function/class name. BTW, in my view it's not reducing readability (this may differ for you).

@T-256 you might be missing my main point there.
Even with different names, it's still not very readable:
def perform_some_tasks(
    data: List[float],
    arg2: Union[int, str, bool],
    hello: Optional[int],
    good: Dict[str, Any],
    morning: float,
) -> None:
    ...

Look at this instead (much more readable):
def perform_some_tasks(
        data: List[float],
        arg2: Union[int, str, bool],
        hello: Optional[int],
        good: Dict[str, Any],
        morning: float,
) -> None:
    ...

@rwightman wrote:

The proposal is not to change the default, or force one way or another, but hopefully have a configuration option so that those of use who much prefer combining the PEP-8 recommendation of an extra indent level for function args with sad-face can do so.

Thanks for highlighting this. Indeed, it was not my intention to advocate for this to become the default in any way.

Just FYI: I downvoted this issue because I find any config for the format a negative thing, because it leads to longwinded bikesheding discussions and I really love the way black handled it: have some guiding principles (make diffs as short as possible, which is having the arguments after as short indent as possible) and then take a decision and be done with it. The amount of time spend on discussing and/or tweaking styles (both on these PRs or internally when you change some config) will never be outweighed by any gains you have because some formatting is a tiny bit more readable than what black or now ruff does.
(and yes: been there, done it, will never get the time back I spend on making intelij format SQL the way I wanted it to... And also not the time I spend on resolving merge conflicts because I thought aligned AS was a good thing...)

Even with different names, it's still not very readable:

Still, it's readable into my eyes, I think it's a personalization choose but perhaps modern editors with syntax highlighting solve your problem:
def perform_some_tasks(
    data: List[float],
    arg2: Union[int, str, bool],
    hello: Optional[int],
    good: Dict[str, Any],
    morning: float,
) -> None:
    ...

def perform_some_tasks(
        data: List[float],
        arg2: Union[int, str, bool],
        hello: Optional[int],
        good: Dict[str, Any],
        morning: float,
) -> None:
    ...

I disliked because I'd not like to encounter codebases with this option enabled, the reason is that going to show lines fat, and in syntax colorized editor it's uglier. (This is my taste, maybe it is different for youً!)

Hi,
While indenting function arguments one extra level may not be readable for some, it may help programmers who must use alternatives to sight to program - several screen reading technologies include a feature to announce indentation level (one of them provides an option to announce indentation with audio). For example:
def my_function():
var1 = some_value
Versus:
def my_function(
var1 = some_value,
):
To most of us, the presence of comma at the end makes it clear that we are passing a keyword argument to this function. However, for people relying on assistive technologies (especially screen readers), programmers must infer from surrounding code (or subtle changes to output by text-to-speech engine as configured by the screen reading technology), unless they listen to speech output carefully, they may not know where function body starts and ends. A counterargument could be that blind programmers can ask the screen reader to announce all punctuation, and some would cite productivity as a reason to not take up that alternative. Another alternative is to ask people to use type hints in function definitions, but not all developers may heed that advice (type hints do inform programmers that we are reading function signature, not the body itself, quite useful if arguments are written on the same indentation as rest of the function body).
I understand that what I wrote above opens up a can of possibly unnecessary discussions, but I think it is also important to think about readability from the perspective of those who may not see what we wrote and must rely on alternative modes to figure out what's going on.
Thanks.

Still, it's readable into my eyes, I think it's a personalization choose but perhaps modern editors with syntax highlighting solve your problem:

I use a 'modern editor', PyCharm, and it defaults to the extra indent level (continuation indent 8) for formatting because it's following PEP-8. Again, the extra indent is PEP-8. Sadface is not, but I do prefer sadface in combo with this.

Even with different names, it's still not very readable:

Still, it's readable into my eyes, I think it's a personalization choose but perhaps modern editors with syntax highlighting solve your problem:
def perform_some_tasks(
    data: List[float],
    arg2: Union[int, str, bool],
    hello: Optional[int],
    good: Dict[str, Any],
    morning: float,
) -> None:
    ...

def perform_some_tasks(
        data: List[float],
        arg2: Union[int, str, bool],
        hello: Optional[int],
        good: Dict[str, Any],
        morning: float,
) -> None:
    ...

I disliked because I'd not like to encounter codebases with this option enabled, the reason is that going to show lines fat, and in syntax colorized editor it's uglier. (This is my taste, maybe it is different for youً!)

I never rely on syntax highlighting because in many cases there is no syntax highlighting.  Just to name a few:

Error logs (especially for web applications)
Stack traces (especially when running stuff in the terminal)
Code searches in terminal
Sharing code snippets with people in Slack
...

The amount of time spent on discussing and/or tweaking styles (both on these issues/PRs or your own projects when you change some config) will never be outweighed by any gains you have because some formatting is a tiny bit more readable than what black or now ruff does.

@jankatins: I would suggest that we all refrain from making absolute statements like this (with phrases like "will never be outweighed by...").
If you can find statistics that support your "will never" claim, please feel free to share it here.  (And note that the statistics need to be statistically rigorous.)
Otherwise, I would suggest not making design choices that hurt people's productivity.

I would suggest that we all refrain from making absolute statements like this

Added a "In my opinion".
I'm looking forward to the statistics why this additional config improves readability and productivity and not decreases is because of the time lost doing bike shedding.

I never rely on syntax highlighting because in many cases there is no syntax highlighting.  Just to name a few:

Error logs (especially for web applications)
Stack traces (especially when running stuff in the terminal)
Code searches in terminal
Sharing code snippets with people in Slack
...

Whilst I'm not a fan of this style, and I'd rather rely on syntax highlighting + empty left side, this is the best counter-argument I've seen to "just use syntax highlights". Validating it for readability reasons for those scenarios.
Not something I'd use in mine. But I could also work with a codebase that uses it (if autoformatted) w/o affecting my productivity.

Hi authors of Ruff, may I follow up on this issue?  Do you have plans to include this configurability into Ruff in the near future?  Thanks!

@jsh9 this is not on our near-time roadmap because there are other more impact features we want to work on.

Thanks @MichaReiser !  Would you be willing to point to us (people who would like this feature) where this feature is implemented in the code?
I'm not familiar with Rust, so it's difficult for me to contribute.  But with your pointers maybe I (or other people) can take a stab at it.

The complexity of the requested feature isn't specifically implementing it, but:

Deciding if ruff wants to be less opinionated and support configuration flags as the one mentioned above
Decide on a formatting: I remember that there was some discussion around if "sad-face" should be on its own or the same line
Consider the style change holistically. What does it mean if we allow changing the indentation for function (and lambda?) parameters. Are there other places where it should be possible to customize the indentation? How does it fit into the larger formatting style?

The code change itself is probably rather straightforward (I say that often and am then surprised that formatter changes are always hard :laughing: ). It might be as simple as adding an extra indent level to the code in
https://github.com/astral-sh/ruff/blob/febc69ab48416dacdad2499ccb6512dd8e56cc7c/crates/ruff_python_formatter/src/other/parameters.rs#L249-L282
write!(
    f,
    [
        token("("),
        dangling_open_parenthesis_comments(parenthesis_dangling),
        soft_two_level_block_indent(&group(&format_inner)),
        token(")")
    ]
)

It would require a custom soft_block_indent builder that writes two indents instead of just one:
let snapshot = f.snapshot();

f.write_element(FormatElement::Tag(StartIndent));
f.write_element(FormatElement::Tag(StartIndent)); // <---- this

match self.mode {
    IndentMode::Soft => write!(f, [soft_line_break()])?,
    IndentMode::Block => write!(f, [hard_line_break()])?,
    IndentMode::SoftLineOrSpace | IndentMode::SoftSpace => {
        write!(f, [soft_line_break_or_space()])?;
    }
}

let is_empty = {
    let mut recording = f.start_recording();
    recording.write_fmt(Arguments::from(&self.content))?;
    recording.stop().is_empty()
};

if is_empty {
    f.restore_snapshot(snapshot);
    return Ok(());
}

f.write_element(FormatElement::Tag(EndIndent));
f.write_element(FormatElement::Tag(EndIndent)); // <---- and this

match self.mode {
    IndentMode::Soft => write!(f, [soft_line_break()]),
    IndentMode::Block => write!(f, [hard_line_break()]),
    IndentMode::SoftSpace => write!(f, [soft_line_break_or_space()]),
    IndentMode::SoftLineOrSpace => Ok(()),
}

I'd very much appreciate this feature. I'll get bullied into using Pycharm's formatter otherwise 😅

Hi @MichaReiser ,
May I follow up on this topic here?  Have you and/or the Ruff team discuss these questions that you outlined above?

The complexity of the requested feature isn't specifically implementing it, but:

Deciding if ruff wants to be less opinionated and support configuration flags as the one mentioned above
Decide on a formatting: I remember that there was some discussion around if "sad-face" should be on its own or the same line
Consider the style change holistically. What does it mean if we allow changing the indentation for function (and lambda?) parameters. Are there other places where it should be possible to customize the indentation? How does it fit into the larger formatting style?

Thank you!

No, I'm sorry. We haven't decided on this yet

I think that to increase readability it might be reasonable to indent infinite loops by 3 levels? You know, diversity and variety, all that stuff

Brackets are sufficient for readability in both cases above. So if readability is the goal then the first option is newline character before closing bracket. And the second option is complication of indentation logic by double indentation levels specifically for arguments lists. If complicating logic considered pythonic option, then maybe pep8 should allow both cases explicitly.

Google's .pylintrc currently sets indent-after-paren=4. I'm writing some of our open-source solutions and would like to set up a Ruff config equivalent. Looking to see if there's been any progress on a config/flag for this behavior.

Hi @MichaReiser , I assume there are no updates to this issue because you were still contemplate the 3 questions you mentioned earlier this year:

The complexity of the requested feature isn't specifically implementing it, but:

Deciding if ruff wants to be less opinionated and support configuration flags as the one mentioned above
Decide on a formatting: I remember that there was some discussion around if "sad-face" should be on its own or the same line
Consider the style change holistically. What does it mean if we allow changing the indentation for function (and lambda?) parameters. Are there other places where it should be possible to customize the indentation? How does it fit into the larger formatting style?

To quote Voltaire, "perfect is the enemy of good".  So maybe it's better if we reach a "good enough" consensus and then start to implement a solution?
Here are my opinions on these 3 questions, which hopefully can help push this forward.
1. Whether Ruff wants to be less opinionated about this
If you add such a config flag (--double-indent-for-function-def, or a better name), I don't think you'll offend anyone. Here's my reasoning:
Suppose we separate users into 3 groups: (A) people who support double indentation under function definitions, (B) people who strongly oppose this, (C) people who don't care.

People in Group A will be very happy with this flag and start to adopt Ruff with this flag on.
People in Group B are not affected since they can keep using Ruff with this flag off.
People in Group C don't care.

2. Whether "sad-face" should be on its own line
This is out of the scope of our request, which is to "add a level of indentation for function arguments in function signature".  Note that this request is limited to the function arguments only.
3. Holistic style change
I don't think the styles in other places are affected by this, because the only reason that we are requesting a double indentation is that def has 3 letters, making the function name and function arguments lined up in a way that's not very readable:
def my_function(
    my_function_arg_1,
    my_function_arg_2,
    my_function_arg_3,
    my_function_arg_4,
):
    pass

At least to my current knowledge, other places of the Python language don't have this issue, so the current style works fine.

@jsh9 agree with the reasoning, no surprise :)
For me the 3 char + space def alignment is not consequential, it's the mental parse btw function args and fn body that is the biggest win. Also, I'm a pycharm user and this has always been the PEP preferred approach and a default for the builtin formatting, so it's engrained in my existing code and preferred style.
Sadface does help with that parse, but as soon as you add sadface w/ return typing it once again gets less obvious without the extra arg indent level.


fix: isReadOnly method from policy studio harness

This property can be access from the component and the method was flawed.

🧪  Gravitee.io Automatic Prerelease @gravitee/ui-schematics
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

🧪  Gravitee.io Automatic Prerelease @gravitee/ui-particles-angular
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

🧪  Gravitee.io Automatic Prerelease @gravitee/ui-policy-studio-angular
npm install<EMAIL_ADDRESS>
yarn add<EMAIL_ADDRESS>

📚  View the storybook of this branch here

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

npm package (@latest dist-tag)
npm package (@latest dist-tag)
npm package (@latest dist-tag)
npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Safari mobile browser gets the error e.getAttributeNames

I use Next.js
A very useful library, but there are some problems that I found from the logs sent by the error logger to the server.
I got big failures in browsers with the headers "Mozilla/5.0 (Linux; U; Android 7.1.1; zh-CN; MZ-MX6 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 MZBrowser/8.5.110-2021020110 UWS/<IP_ADDRESS> Mobile Safari/537.36"
Users of these browsers receive an error
TypeError error: e.getAttributeNames is not a function\n
As I understand it, they don't have getAttributeNames support, and there are a lot of such users. Because of this, they cannot use the site. Is there a way to replace getAttributeNames with something more cross-browser, or will you have to install some kind of polyfill?
Next.js generates this in its /.next directory during the build of the project, here is a piece of code from .getAttributeNames()
//... [eg,eS]=(0,o.useState)(null),eE=(0,o.useRef)(q),{anchorRefs:eT,activeAnchor:ek}=f(e),eA=e=>null==e?void 0:e.getAttributeNames().reduce((t,r)=>{var o;return r.startsWith("data-tooltip-")&&(t[r.replace(/^data-tooltip-/,"")]=null!==(o=null==e?void 0:e.getAttribute(r))&&void 0!==o?o:null),t},{}),eO=e=>{let t={place:e=>{ee(null!=e?e:d)} //....

I might be wrong, but that looks like a rather outdated user agent string. getAttributeNames() seems to currently have pretty decent browser support overall:
https://caniuse.com/?search=getAttributeNames
Not sure it makes sense for us to polyfill for such an outdated set of browsers. If that's an important requirement for your project, you'll probably have to provide the polyfill yourself.

https://github.com/msn0/mdn-polyfills/blob/master/src/Element.prototype.getAttributeNames/index.js
if (Element.prototype.getAttributeNames == undefined) {
    Element.prototype.getAttributeNames = function () {
        var attributes = this.attributes;
        var length = attributes.length;
        var result = new Array(length);
        for (var i = 0; i < length; i++) {
            result[i] = attributes[i].name;
        }
        return result;
    };
}


Do not restart server on deadlock detection:

Replace the logic error with a log message. It's possible an overloaded job
queue is causing false alarms on the deadlock detector.

Codecov Report

Merging #3174 into develop will decrease coverage by 0.02%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           develop    #3174      +/-   ##
===========================================
- Coverage    68.94%   68.92%   -0.03%
===========================================
  Files          688      688
  Lines        55743    55747       +4
===========================================
- Hits         38433    38424       -9
- Misses       17310    17323      +13

Impacted Files
Coverage Δ

src/ripple/app/main/LoadManager.cpp
64.93% <0%> (-3.56%)
:arrow_down:

src/ripple/core/Stoppable.h
93.75% <0%> (-6.25%)
:arrow_down:

src/ripple/server/impl/BaseHTTPPeer.h
86.93% <0%> (-3.98%)
:arrow_down:

src/ripple/core/impl/Workers.cpp
98.93% <0%> (-1.07%)
:arrow_down:

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 06c3715...4319e57. Read the comment docs.


[Fat-103] Initialize a distinct RNG for signing

This is a bug discovered by @ilzheev who submitted multiple individual transactions by queuing them up in the cli. When you run multiple instances of an application that just imports the fat103 package, all of the timestamps will be the same since golang does not initialize the default rng by default.
test code:
package main

import (
	"fmt"

	"github.com/Factom-Asset-Tokens/factom"
	"github.com/Factom-Asset-Tokens/fatd/fat103"
)

func main() {
	priv := factom.FsAddress{}
	var ent factom.Entry
	ent.ChainID = &factom.Bytes32{}
	ent = fat103.Sign(ent, priv)
	fmt.Println(ent.ExtIDs[0])
}

To test: build it and then execute it several times in a row. Any execution in the same second will result with the same "randomized" timestamp. The first random call used will always result in<PHONE_NUMBER>410, see https://play.golang.org/p/xTCPFq2Ghfb
Initializing a package instance of rand will fix this and make it work as intended.
(note: this issue also exists in fat's "factom" package)

This is awesome. Thank you.
For future reference I plan to deprecate the public fat* packages in the fatd repo and move them exclusively over to the factom package. They will be removed completely when a v2 is released of fatd. Preferably PRs on the fat packages should be made against the version in the factom repo.
I'll go ahead and get this merged here and in the factom repo.


Update Readme.md

Please respect the project name.

We do respect it 👍

Separate from respecting or not (which I think that we do 👍), it could be nice to be consistent in the readme?


Sample application does not work

Executed all the steps in this example guide. Created the controller, two applications and Ingress.
Helm version - 3.4.2
checked that nginx-ingress-ingress-nginx-controller was created with public IP
checked that pods and services were created for the applications and controller. Ingress was also created
I am not able to see the hello world page. The page simply waits and says 'This site cannot be reached'. Following all hangs
public-ip/hello-world-one
public-ip/hello-world-two
public-ip/
I have a VPN to the kubernetes cluster.
When logged into VPN, I can see the application when directly accessing the private ip of the pods. Both these work and brings up the page. I can see "AKS Ingress Demo" and  "Welcome to Azure Kubernetes Service (AKS)"
http://<IP_ADDRESS>/
http://<IP_ADDRESS>/

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

ID: fd0e7d5a-37e9-07dc-f395-9cb5bb580e45
Version Independent ID: 7e4faf70-9724-7e7b-832b-1cd99a974920
Content: Create an ingress controller - Azure Kubernetes Service
Content Source: articles/aks/ingress-basic.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@vasanthsubram we'll review your feedback and get back to you shortly. Thanks.

I found the problem and it was in the NSG of the vnet. Opened the ports and the sample application works.
Sorry for the false alarm

@vasanthsubram Thank you for confirming on same.
We will now close this issue. If there are further questions regarding this, please tag me in a comment. I will reopen it and we will continue the discussion.
Thanks


Can't get it running on Sierra

Hello there, i got this message while running the script:
/dev/disk2          	GUID_partition_scheme
/dev/disk2s1        	Apple_HFS                      	/Volumes/ParagonFS.localized
installer: Cannot install on volume / because it is disabled.
installer: The version of macOS is too new.

What I can do to get it running?
Thanks!

Found a problem — https://github.com/yantis/instant-archlinux-on-mac/pull/4

ParagonFS might not have been updated yet to work with Sierra.
On Oct 20, 2016 4:39 AM, "Dima Belitsky"<EMAIL_ADDRESS>wrote:

Hello there, i got this message while running the script:
/dev/disk2              GUID_partition_scheme
/dev/disk2s1            Apple_HFS                       /Volumes/ParagonFS.localized
installer: Cannot install on volume / because it is disabled.
installer: The version of macOS is too new.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/yantis/instant-archlinux-on-mac/issues/3, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEBN3yukeALG9HuqWIIyWeTPJm-SeiArks5q11LjgaJpZM4KcBlS
.


404 error on the page with param

Vue app I built is running on localhost:8080 by http-server.
But page routing with /user/:id is not working.
For instance, I enter localhost:8080/user/1 on browser then I'm getting 404 error.
Please let me know how can I solve it. Thanks.

running into similar problem


Made the website usable for phone

Solves issue #10
I made the website usable for phone and it works till the width of mobile 342px (90 percent smart phone)
If we want to make it usable for more thinner Smart phone, we have to make a new nav bar with toggle button.
We can work on it as a separate issue.

if you make any change then send me output so that I can review it.

if you make any changes then send me the output so that I can review it.

![Screenshot (13)](htt

ps://github.com/codervive

k5/VigyBag/assets/126336384/3083233a-a58e-4fd7-b0d8-bce4243b0f96)

![Screenshot (17)](https://g

ithub.com/codervivek5/VigyBag/assets/126336384/3b68cb02-bc0e-4ac7-aec7-19467db6dab2)

Hey @codervivek5 Uploaded the photos for different dimensions


Study: Augmenting Information

Update functions that update form_instance information
Decide what information we want to update
Increase speed by preformatting information list for quick search.
Also #11

Fixed.


perf: PQ transform re-allocates a lot

Using flat_map here breaks the size_hint() chain, preventing collect() from creating a perfectly sized allocation up front. Even though we should in theory know the exact size of the output.
https://github.com/lancedb/lance/blob/f30a679e26dffe78327d5d8db3a98becd04d5949/rust/lance-index/src/vector/pq.rs#L120-L136
I noticed this while doing a benchmark with bytehound and sorting by number of allocations.

These instructions for benchmarking are also relevant for this issue: https://github.com/lancedb/lance/issues/2838#issuecomment-2342373868


Domain and records support

It would be nice to also support manipulation of domain records matching just the domain name instead of the domain id like the api supports

+1, I would like to see this to. I'm reviewing the code to see if I know enough to add it myself but this would be my first Ruby work. @petems is this a planned feature?

@tylermolamphy This is planned but I'm pretty swamped with work right now so I'm not actively working on it.


AssertionError: false == true in node-http2 lib/protocol/connection.js

We're seeing this error fairly frequently in production after updating to node-apn 2.1.2:
AssertionError: false == true
    at Connection._send (/home/ec2-user/node/node_modules/http2/lib/protocol/connection.js:343:9)
    at Immediate.wrapped (/home/ec2-user/node/node_modules/newrelic/lib/transaction/tracer/index.js:183:28)
    at runCallback (timers.js:637:20)
    at tryOnImmediate (timers.js:610:5)
    at processImmediate [as _immediateCallback] (timers.js:582:5)

Obviously, real bad news having an uncaught exception thrown inside a Promise like this.
It looks like node-apn is using a branch of node-http2 that recently changed the behaviour of that method (https://github.com/node-apn/node-http2/pull/1), might be a smoking gun what's causing this?

Have done some more digging into this and it looks like that PR isn't to blame - the issue is something to do with the flow frame/window stuff in node-http2 and sending the alert to too many tokens at once is what provokes it.
Dispatch an alert to 1,000 tokens and the assertion fails reproducibly. Create 10 apn.Provider instances and dispatch to 100 tokens on each and so far everything goes smoothly.

@rupey looks like this is the same as #458
What node version are you running?

Seeing this on both node 6.9.1 and 6.3.1.

I had same problems on v6.9.1, but if I buffer requests and sending only one parallel request to APN, it works on v6.9.1 too. Not great, but it is working.

We're having this problem too, stopping our server from even starting up.

I have same problem too when i send many push notifications at the same time.
Downgrade to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>helped me

same problem

I never hit this issue when I exceed 20 notifications in a block, so my notification queues are throttling iOS notifications at 20 per block.  I'm not entirely time sensitive so it's fine and my android queues can still send blocks of 1000.
Obviously this isn't a solution but it is a temporary workaround that has worked for me until a solution is found.  I dropped an hour into this at first but didn't isolate the exact cause unfortunately.

Same here

I am using this as a workaround but it's somewhat slow (about a minute to send 100,000). Anyone have ideas to improve speed?
db.apns_full_view.find({}, {}, (err, apnses) => {
    if (err) {
        return console.error('Could not find apnses')
    }
    var apnsIds = []
    var batchStart = 0
    var batchSize = 100
    apnses.forEach(function(apns) {
        apnsIds.push(apns.apns_id)
    })
    process.setMaxListeners(0)

    function sendMore() {
        var currBatch = apnsIds.slice(batchStart, batchStart + batchSize)
        batchStart += batchSize
        console.log(batchStart, currBatch.length, apnsIds.length)
        apnProvider.send(new apn.Notification({
            alert: 'Hello world!',
        }), currBatch).then((responses) => {
            console.log('Sent push to ' + currBatch.length)
            if (currBatch.length > 0) {
                setTimeout(sendMore, 50)
            }
        }).catch((err) => console.error(err))
    }
    sendMore()
})

I am using this as a workaround but it's somewhat slow (about a minute to send 100,000). Anyone have ideas to improve speed?
db.apns_full_view.find({}, {}, (err, apnses) => {
    if (err) {
        return console.error('Could not find apnses')
    }
    var apnsIds = []
    var batchStart = 0
    var batchSize = 100
    apnses.forEach(function(apns) {
        apnsIds.push(apns.apns_id)
    })
    process.setMaxListeners(0)

    function sendMore() {
        var currBatch = apnsIds.slice(batchStart, batchStart + batchSize)
        batchStart += batchSize
        console.log(batchStart, currBatch.length, apnsIds.length)
        apnProvider.send(new apn.Notification({
            alert: 'Hello world!',
        }), currBatch).then((responses) => {
            console.log('Sent push to ' + currBatch.length)
            if (currBatch.length > 0) {
                setTimeout(sendMore, 50)
            }
        }).catch((err) => console.error(err))
    }
    sendMore()
})

Having this too, as soon as sending to more than 7-800 devices.

@mattisx node version?

@florianreinhart 6.9.1

Our team member also encountered the same problem today under node version 6.9.1.

Having the same issue on node 6.9.1 while sending notifications to around 1200 devices.

Same here. We're on node v6.3.1
@zaumreit are you saying you're not seeing this issue with a version greater than 6.9.1?

I have the same problem when I try to send a notification to multiple devices and I set a bigger payload. Now I have to send around 200 notifications per provider connection, and it's very frustrating.
Node version: v6.9.4

+1

I think we should +1 in node-http2 repository https://github.com/molnarg/node-http2/issues/228

What type of authentication are you guys using? It could be related to this error. I'm using Json Web Tokens.

I'm having this problem also. Reducing the batch size to 100 tokens solved for me

We ended up downgrading from node v6.4.0 to v5.11.1 and haven't seen this error since. Originally we would get the assertion error sending 20 or more notifications on the same client on v6.4.0

+1

+1 on node 6.9.4

We had the same problem and solved it by sending batches of 100 tokens instead of 1000. However, the biggest problem we are facing is with memory consumption. The memory doesn't seem to be deallocated properly. We are sending around 400k iOS notifications and we need 3 servers with 2gb of ram to handle the memory pressure. As a comparison, 1.5m android tokens use around 200mb on each server. This can be reproduced by continously generating random tokens and sending a notification to them, the memory will keep growing and not get deallocated.

It looks like this repo is about dead. Is there an alternative?

I really need to get this to work, our whole system is starting to depend on it.

@IsaiahJTurner This is an issue in node-http2 and not in node-apn https://github.com/molnarg/node-http2/issues/228

@florianreinhart Is it possible to migrate away from node-http2? Perhaps to https://github.com/nodejs/http2

Bug Bounty
https://www.bountysource.com/issues/39200654-assertionerror-false-true-in-node-http2-lib-protocol-connection-js
I posted $50 but if anyone else depends on this, feel free to raise it. Hopefully we can motivate someone to fix this issue as soon as possible.

@IsaiahJTurner We will definitely migrate to node's native HTTP/2 implementation. I am closely following that repo and there is currently no HTTP/2 client implementation. They just started working on it.

@IsaiahJTurner We actually already using a fork of node-http2 to fix some other issues in the library.

@mattisx If you really need to get this to work, open a pull request :)

update:
node 6.2.2 works fine for me.
It's a node-http2 problem.
Basically after node 6.2.2, 4 tests of node-http2 starts to fail.

https://github.com/molnarg/node-http2/pull/236
https://github.com/molnarg/node-http2/pull/235

Thanks @jrabek.
However, I don't believe the PRs will be merged. The node-http2 repo seems to be dead. If someone has the time to create a PR against our node-http2 fork, that would be great.

We ended up doing the fix on our own fork of node-apn (https://github.com/airtimemedia/node-apn/commits/flow-fix) and testing the fix out fairly thoroughly
with load tests and using valid and invalid tokens (which seems to trigger the http2 flow control to kick in more).

The actual fixes (mentioned above) were applied to our own fork of node-http2 (which we forked off of node-apn's depedency): https://github.com/airtimemedia/node-http2/commits/flow-fix

@florianreinhart can we link this issue to #521 - it seems like the same issue?

Sorry, somehow I missed the updates to this.
@florianreinhart I went ahead and opened PRs against your forked node-http2 since the ones in molnarg/node-http2 have had no action:
https://github.com/node-apn/node-http2/pull/2
https://github.com/node-apn/node-http2/pull/3

Thanks a lot, @thughes!

@florianreinhart When will you release path for node-http2 and node-apn ?


rime-cli: init at 0.0.3

Description of changes
Fixes #214147
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1797

@freed-wu the rime-cli you linked to seems to be different from the one coc-rime depends on

@Freed-Wu the rime-cli you linked to seems to be different from the one coc-rime depends on

It's my fault. coc-rime use this rime-cli. I use it by a flake.nix. In that flake.nix, I name it as rime-cli-server to avoid conflict. Maybe we can provide packages in nixpkgs for coc-rime and rime-cli-server? @tonyfettes, maybe we can rename rime-cli to rime-cli-server to avoid conflict?

You linked two times the same rime-cli


Font size in display:none div on mobiles

Hi!
I'm using MathJax v3 for some data in hidden blocks. On computer all is ok, behavior in usual and hidden block is similar. But on mobile (android chrome, for example) font size of mathematics in hidden blocks is smaller. I found such problem here https://github.com/mathjax/MathJax-docs/wiki/Dealing-with-display:none , but I cannot move this solution to v3. Help, please, what I can do here. Example you can see here http://kornev-school.ru/g7pervpr.html , if you open hidden block by clicking "Показать решение" on mobile, you'll see this problem.
Thanks

MathJax can't measure the surrounding font when the math appears in a container having display:none (as described in the link you found about that).  So your results may be poor (as you have found) if you use math in such blocks.  The link you gave suggests alternatives to using display:none that allow mathJax to properly size the math (using visibility:hidden), so that is one possible solution.  Another would be to set the matchFontHeight:false in the configuration for the MathJax output renderer you are using.  For example
MathJax = {
  chtml: {
    matchFontHeight: false
  }
}

This will cause MathJax not to scale the output to try to match the surrounding font.
It may also help to include
<meta name="viewport" content="width=device-width">

in your document <head>, as that can improve the results in some instances.


Read token instance permalink from ERC721 token for those source directly from smart contract + JSON metadata (i.e not from OpenSea)

This was already read from the OpenSea API results. But if the ERC721 token isn't found in OpenSea, we would fallback to the tokenURI for the token metadata.
This PR makes it so that we look for the token's permalink in that metadata when we read tokenURIdirectly.

Bump. In case you missed it.


Add Incident fields

Need to add the following fields to Incident:

[ ] URL
[ ] Contacts
[ ] Related Packages

Closed in #270.


use webcomponent with vue3.2, when I add class to customelement,  I get an error

Version
3.2.31
Reproduction link
sfc.vuejs.org/

Steps to reproduce
refer to minimal reproduction
What is expected?
custom elements created by defineCustomElement support class name and id
What is actually happening?
custom elements created by defineCustomElement don't support class name and id

as a workaround, add props: [] in Test.ce.vue


use local dagger module in pull-request workflow

Per #197:

Remove Module Dependency: Eliminate the dependency on the module, as seen in this section. It's an unnecessary overhead.

Dagger Flag Update: Replace --directory-arg with the --source flag in the workflow, and set it as the default using the latest Dagger version.

Drops the usage of a remote dagger module and instead looks to use the one local to the repository
Updates dagger function(s) to use common source parameter

docker-publish failure will get solved by #204


Support of nested containers, like Sysbox runtime

It would be amazing to be able to run nested containers without privileged mode, like Sysbox allows with Docker.
Good testcase is:
FROM ubuntu:20.04

# Non-interactive installation requirements
ARG DEBIAN_FRONTEND=noninteractive

# Set installation options
RUN echo 'debconf debconf/frontend select Noninteractive' > /debconf-seed.txt && \
    echo 'tzdata tzdata/Areas select Etc' >> /debconf-seed.txt && \
    echo 'tzdata tzdata/Zones/Etc select UTC' >> /debconf-seed.txt && \
    echo 'locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8' >> /debconf-seed.txt && \
    echo 'locales locales/default_environment_locale select en_US.UTF-8' >> /debconf-seed.txt && \
    debconf-set-selections /debconf-seed.txt

RUN apt-get update -qq && apt-get install -y docker.io

COPY inside.sh /inside.sh
RUN /inside.sh

where inside.sh is this script:
#!/bin/sh

# Start Docker daemon (only works with Sysbox runtime)
nohup dockerd 2>&1 | tee "dockerd.log" &
sleep 15
cat "dockerd.log"
docker info

docker run alpine:3.16 cat /etc/os-release

Then run it with docker build .
It can be either Docker or Podman, both cases should be fine.

@XVilka Thanks for your report. What feature should I implement?

@XVilka Can you provide more context as @yihuaf has asked?
@utam0k @yihuaf Should we keep up with this, can we close this as not planned?

I am also interested to hear why docker migrated away from lxc and wrote their own runtime. Also, why docker decided to implement the "application container" instead of the "system container" idea.

No idea about why it was done.

@XVilka As far as I understand, sysbox forked runc and made custom changes to it. It is possible that we incorporate the features into youki, but I would like to understand the details. I think sysbox as a company was acquired? Can you point to us if there is any technical white paper or codebase? Also, I don't know if lxc is a good reference? I know one of the difference is the ability to run a proper init process. I have not had time to dive into the difference and see if these two approach (docker/runc vs. lxc) are mutually exclusive. I agree that there are a number of usecases where lxc is better than docker/runc. With that being said, my first gut reaction is to not to directly include sysbox or lxc into the youki core libcontainer. Rather, I would build it as a different runtime, much like how youki supports wasm runtimes.

Here is the design document on how it roughly works: https://github.com/nestybox/sysbox/blob/master/docs/user-guide/design.md
And here is their runc fork repository: https://github.com/nestybox/sysbox-runc/


Also use kroki options when generating the filename

By adding the options to the filename generation, we also get unique filenames for diagrams like structurizr where different options can create completely different images.

fixes #41

@BasKloetIS first of all, thanks for your effort!
Because of the big changes in PR #46, could you please update your code to the newest baseline.

This PR has become redundant due to the changes in PR #46


utf-8 codec error

We are seeing below issue with some changes during the migration. We can proceed with the migration by excluding the paths n yaml file but this is the third time we got this error. Any idea what is this about and how to resolve this?
root@dc2-p4-gl-05:/scm/p4transfer # tail -20 log-P4Transfer-20210510090851.log
'rev': 1,
'time': datetime.datetime(2017, 7, 25, 7, 14, 59),
'type': 'text+kx',
'user': 'amirl'}]}]
2021-05-10 09:16:41,946:P4Transfer:DEBUG: src('sync', '//hmallesh_test_transfer/...@=219564')
2021-05-10 09:16:52,093:P4Transfer:DEBUG: src[]
2021-05-10 09:16:53,552:P4Transfer:ERROR: 'utf-8' codec can't decode byte 0xd1 in position 0: invalid continuation byte
Traceback (most recent call last):
File "P4Transfer.py", line 2149, in replicate
num_changes = self.replicate_changes()
File "P4Transfer.py", line 1965, in replicate_changes
fileRevs, branchRevs = self.source.getChange(change['change'])
File "P4Transfer.py", line 1114, in getChange
chRev.updateDigest()
File "P4Transfer.py", line 524, in updateDigest
self.fileSize, self.digest = getKTextDigest(self.fixedLocalFile)
File "P4Transfer.py", line 425, in getKTextDigest
contents = contents.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 0: invalid continuation byte
2021-05-10 09:16:53,552:P4Transfer:INFO: Sleeping on error for 60 minutes
root@dc2-p4-gl-05:/scm/p4transfer #

Got the same issue on the recent version.
Any updates?

This is solved my issue
$ diff -u p4transfer/P4Transfer.py p4transfer/P4Transfer.py.modified.py
--- p4transfer/P4Transfer.py	2023-09-21 16:31:03.163049658 +0000
+++ p4transfer/P4Transfer.py.modified.py	2023-10-14 21:37:53.996647171 +0000
@@ -516,14 +516,15 @@

 def getKTextDigest(fname):
     "Special calculation for ktext files - ignores lines with keywords in them"
+    print ('!!!!FILE!!!! {0}'.format(os.path.abspath(fname)))
     contents = readContents(fname)
     if python3:
-        contents = contents.decode()
+        contents = contents.decode(errors='surrogateescape')
     m = hashlib.md5()
     # Optimisation to search on whole file
     if not re_rcs_keywords.search(contents):
         if python3:
-            m.update(contents.encode())
+            m.update(contents.encode(errors='surrogateescape'))
         else:
             m.update(contents)
         fileSize = os.path.getsize(fname)
@@ -533,7 +534,7 @@
     for line in lines:
         if not re_rcs_keywords.search(line):
             if python3:
-                m.update(line.encode())
+                m.update(line.encode(errors='surrogateescape'))
             else:
                 m.update(line)
             fileSize += len(line)

@rcowham would you mind to comment on that?

Hmmm. Looks OK as a workaround. I wonder if it is better to allow an extra locale setting to be specified?

Not sure, that it can provide a reliable solution for keeping data consistent while encoding, since we never sure what exact encoding clients are using until it's not aligned for all developers, which is i believe a rare case. Most common, when several teams using their own approach for encoding settings.
However ability to confiigure this would provide at least instruments for administrators to try manage this on their own.

As well for some cases it could can be a good idea to allow restrict (make it configurable) of processsing text+k at all, this will eliminate such kind of issues at all. I believe some of cases (for some setups) not requires to update values of rcs tags while migration.


Is there a way to hide variables?

I would like to see only classes/functions, but not variables. I didn't found such an option

Hi, thanks for using symbols-outline. Unfortunately simrat indicated that this plugin may be deprecated due to lack of time for maintenance.
You can try out my fork (200+ commits ahead of this repo) which have fixed quite a number of bugs and added a lot more features, including the ability to filter symbols. How to filter symbols is shown with examples in the readme.
Your existing symbols-outline config can also be converted easily with the script linked there, if any.


Is the path /data/data/com.example.androidcrasher/lib/libcrashpad_handler.so in native-lib.cpp correct?

Is the path /data/data/com.example.androidcrasher/lib/libcrashpad_handler.so in native-lib.cpp correct?
why not native-lib.so in /data/app/.... ?  I am so confused. Tks.

@ZhaoChunlei the path is correct as far as we're aware! the device explorer seems to indicate that the path is a symlink:

@ZhaoChunlei also note this was developed in an Android 10 emulator so it's possible this file is in a different location on older versions of Android


SVGs not working in releasable build

Solution: Use url-loader instead of file-loader so that the proper path is used for importing images. Already fixed so closing


[PDI-16844] The step Job Executor should overwrite the child parameter by the parent parameter.

[PDI-16844] The step Job Executor should overwrite the child parameter by the parent parameter.
Overwriting parameters and the next logic:

When the child parameter does not exist in the parent parameters, keep it.
When the child parameter does exist in the parent parameters, overwrite the child parameter by the parent parameter.
All other parent parameters need to get copied into the child parameters (when the 'Inherit all variables from the transformation?' option is checked)

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -f engine/build.xml checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/job/entries/trans/JobEntryTrans.java
  engine/src/org/pentaho/di/trans/StepWithMappingMeta.java
  engine/src/org/pentaho/di/trans/steps/jobexecutor/JobExecutor.java
  engine/src/org/pentaho/di/trans/steps/jobexecutor/JobExecutorMeta.java
  engine/test-src/org/pentaho/di/job/entries/trans/JobEntryTransTest.java
  engine/test-src/org/pentaho/di/trans/steps/jobexecutor/JobExecutorMetaTest.java
  engine/test-src/org/pentaho/di/trans/steps/jobexecutor/JobExecutorTest.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes: <0.1% (click to expand)
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.3% :small_red_triangle_down:
Line Change: -3.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change: -1.7% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

@mchen-len-son Could you please review and merge it?


Update images on channels.csv Part 1

Replace images from:
Channel ID: Numbers to letter A
Ending with .vn.
Replaced most image hosting with dynamic scaling web hosts.
Utilized Youtube channel Ids to provide dynamic scaling.
If website provided or there is inadequate info that does not provide logo, it will be marked as removed in the url.
Related: #10427

Can you fix the Japanese iptv URL site?


Masonry: Bug fix, enable layout not returning positions of all items

Summary
We found a bug after enabling multiple multi column items on masonry here https://github.com/pinterest/gestalt/pull/3537, this was because masonry expects that the layout functions return all the positions in one run, but for multiple multi column items we do not calculate the position of the items after the second multi column item. This broke masonry although strangely enough the bug was not consistent, that's why it was not immediately obvious. The bug was different on V1 and on V2.
On V1 there was an exception because it tried to render something without a position, to fix it we filter the items with positions before render.
On V2 the layout function was not triggered again after positioning the first multi column item because there was no a condition for that. To fix it we added the multi column items count as dependency.

We did a refactor of the feature so this PR is no longer required


[MERGE] Branch 1.6

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/16864/
Test PASSed.


Remove use of deprecated label

Before:
$ helm package .
Successfully packaged chart and saved it to: /.../charts/charts/harvester-network-controller/harvester-network-controller-0.3.2.tgz

$ helm upgrade --dry-run -n harvester-system harvester harvester-network-controller-0.3.2.tgz | grep beta\.kubernetes\.io\/os | wc -l
1

After:
$ helm package .
Successfully packaged chart and saved it to: /.../charts/charts/harvester-network-controller/harvester-network-controller-0.3.2.tgz

$ helm upgrade --dry-run -n harvester-system harvester harvester-network-controller-0.3.2.tgz | grep beta\.kubernetes\.io\/os | wc -l
0

Related-to: https://github.com/harvester/harvester/issues/2899

LGTM, thanks. cc @yaocw2020 please help to remove this from the manifest example on the network-controller side.

Prefer to remove the manifest example because it's outdated.

Whose responsibility is it to merge this? GitHub is giving me the option to rebase & merge. Do I do it? Or do I wait for maintainers to merge after approval?
CC: @guangbochen @bk201 @futuretea

Usually the last reviewer will merge it, @bk201 can u PTAL when u have time, thanks.


Accept Multiple Connections on server side

No idea how feasible it would be to have one server respond to multiple requests at the same time but it is a feature that I would like.
This is because I'm trying to implement a plugins system in an application.
The issue is that if a process takes 1-2 seconds to run then nothing else can call into the plugin manager while that happens while it waits for the interprocess server to respond.
I currently use the local_sockets process for it. Have yet to try tokio
If this isn't feasible without a major rewrite / isn't what this crate was meant to do then I understand.
Describe the solution you'd like
Ideally a way for one server to respond to multiple connections at the same time.
Describe alternatives you've considered
I've tried spooling multiple servers but that increases code complexity and I'm more likely to make a mistake.

This feature has always been part of the non-Tokio part of Interprocess the same way the ability to handle concurrent clients has always been in the standard library's TcpListener. Listener::accept() takes &self, meaning that a Listener can be shared across threads. By spawning some fixed amount of threads (and possibly more as needed) and calling .accept() in every thread, you can get your OS to automatically dispatch clients to those threads for you.
The choice between using a thread pool-based blocking server and Tokio depends primarily on how lightweight you want your server to be. Tokio with the single-thread runtime can be quite lightweight, but very low-footprint scenarios might require you to resort to the non-Tokio side of things.
The bottom line: you should just use asynchronous I/O (which exists to tackle your specific problem and many more) with the help of Tokio unless you have good reasons not to.


Errors in loading staring dict:

RuntimeError: Error(s) in loading state_dict for PoseNet_2branch:
Missing key(s) in state_dict: "backbone.conv1.weight", "backbone.bn1.weight", "backbone.bn1.bias", "backbone.bn1.running_mean", "backbone.bn1.running_var", "backbone.layer1.0.conv1.weight", "backbone.layer1.0.bn1.weight", "backbone.layer1.0.bn1.bias", "backbone.layer1.0.bn1.running_mean",
my command line was: python infer.py --cfg experiments/resnet/lr1e-3_x120-90-110_center_b2.yaml --model models/resnet18_model_latest.pth.tar --infer images  So I am loading resnet18_model the configs from the .yaml file, and the model. Seems the definition or dictaionary does not contain those strings.

it looks strange only part of backbone modules can't be loaded.


SPIKE: Utilize cocoon's readiness check to verify provenance exists

Cocoon has a readiness check that is used to verify if the server is ready to handle requests. We could utilize this check to ensure that the server has associated provenance.
Additional context here: https://github.com/flutter/cocoon/pull/2419#discussion_r1091998283

That validation would probably be really expensive to run as a readiness check and too late in the process to add value. E.g. if the service is already running the compromised binaries are already in use.

Obsolete?

Closing due to obsolete


Add extra tag search parameters to find cards

Examples:
# Find all cards with the CHARGE tag set
!card CHARGE=1
!card 197=1

# Find all cards that cost 4 mana
!card COST=4
!card 48=4

# Find all Dragons
!card CARDRACE=DRAGON
!card CARDRACE=24
!card 200=24
!card 200=DRAGON

# Find all 10-mana dragons without taunt
!card COST=10 CARDRACE=DRAGON TAUNT=0

I think this code path would basically trigger if there's an = in the query. It would split the query parameters on whitespace, then split on =, parse the left side as a GameTag, the right side as an int.
If the right side is not an int (eg in the case of CARDRACE) it would have to attempt to parse as the corresponding enum to the tag.


cannot load my github repo

Describe the bug
says I dont have access to it.
Link to the Bolt URL that caused the error
https://bolt.new/~/github.com/setitgo/justchatit
Steps to reproduce
trying to access this
Expected behavior
should load my github repository
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 130
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 63506667,
  "usedJSHeapSize": 40179971,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = setitgo
Chat ID = 57e5e4188b03

Additional context
Error:
An unknown error occured while running an action.

Hello,
I am experiencing the same issue.

Hi all,
Are you trying to access a public or private GitHub repository?

Hi all,
Are you trying to access a public or private GitHub repository?

A public one sir

@HiThereWsp,
Do you have a link to the public GitHub repository so we can take a closer look? Thanks.

@HiThereWsp,
Do you have a link to the public GitHub repository so we can take a closer look? Thanks.

Sure : github.com/HiThereWsp/mvpenseignant3.0

Hey @endocytosis , I just tried again (1,5 day after) as you can see, the issue still the same .


Vmaas Extension List not working

ubuntu@ubuntu$ az vmss  extension list --resource-group coke-b375c-tms-loc_gateway --vmss-name vmscaleset --subscription <...>
The command failed with an unexpected error. Here is the traceback:
'NoneType' object has no attribute 'extension_profile'
Traceback (most recent call last):
File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 206, in invoke
cmd_result = self.invocation.execute(args)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 603, in execute
raise ex
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 661, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 654, in _run_job
six.reraise(*sys.exc_info())
File "/opt/az/lib/python3.6/site-packages/six.py", line 693, in reraise
raise value
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 631, in _run_job
result = cmd_copy(params)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/commands/init.py", line 306, in call
return self.handler(*args, **kwargs)
File "/opt/az/lib/python3.6/site-packages/azure/cli/core/init.py", line 487, in default_command_handler
return op(**command_args)
File "/opt/az/lib/python3.6/site-packages/azure/cli/command_modules/vm/custom.py", line 2645, in list_vmss_extensions
return None if not vmss.virtual_machine_profile.extension_profile
AttributeError: 'NoneType' object has no attribute 'extension_profile'
To open an issue, please run: 'az feedback'
ubuntu@ubuntu$ az vmss list
[
{
"additionalCapabilities": null,
"automaticRepairsPolicy": null,
"doNotRunExtensionsOnOverprovisionedVms": null,
"id": "/subscriptions/<...>/resourceGroups/COKE-B375C-TMS-LOC_GATEWAY/providers/Microsoft.Compute/virtualMachineScaleSets/vmscaleset",
"identity": null,
"location": "eastus",
"name": "vmscaleset",
"overprovision": null,
"plan": null,
"platformFaultDomainCount": 5,
"provisioningState": "Succeeded",
"proximityPlacementGroup": null,
"resourceGroup": "COKE-B375C-TMS-LOC_GATEWAY",
"scaleInPolicy": null,
"singlePlacementGroup": true,
"sku": null,
"tags": null,
"type": "Microsoft.Compute/virtualMachineScaleSets",
"uniqueId": "a2655ed3-cdb3-4f6c-99bd-886830654263",
"upgradePolicy": null,
"virtualMachineProfile": null,
"zoneBalance": null,
"zones": [
"2"
]
}
]

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

ID: 29233b11-4e55-8560-9dad-43ac44b818c2
Version Independent ID: b60ca5ef-f607-80b6-c641-0278cd8bdc61
Content: az vmss extension
Content Source: src/azure-cli/azure/cli/command_modules/vm/_help.py
Service: virtual-machine-scale-sets
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

@qwordy Please take a look

Could you share the complete commands? What extension are you using? How do you create the vmss and set the extension? Thanks.

HI @kotharij could you pls share more context on your vmss extensions setup? we did a fix to avoid NoneType exception but show empty to indicate no extension. Need your input on the specific case to figure out why no extension found. thanks.

Close the issue for now. The fix will be available in the next version of Azure CLI. It will be released on 03/10/2020.

@kotharij feel free to open a new issue when you see extension listed is not matching expectation with reproduce steps, especially extension setup detail. thanks.


Added VMWare Fusion support for vagrant. Cleaned up Vagrantfiles

Vagrantfile templates are stored under Vagrantfiles folder.
Option to choose between a production/development cluster and vmware/virtualbox provider.
Cleaned up Vagrantfiles:

Removed hardcoded IP addresses, hostnames.
Deleted unnecessary package installations on production environment.

Modified vagrant-up script to support both providers.

Coverage decreased (-0.03%) to 75.425% when pulling 605e2d8093d9e04936ba42d39631f1682b8b6937 on brecode:vagrant into 411f957d0f2c03a5f255c6083141d37bd0b1f5a6 on contiv:master.

@brecode: This approach doesn't look good to me. We already have 4 Vagrantfiles to keep in sync. We should only have one Vagrantfile with some if conditions. This is going to be pretty hard to maintain. It's already been pretty difficult to deal with.

I had some comments left on this which weren't addressed in any way.


feat: added ctx support to all methods that require it and fixed tests

fixes #4

Did you mean to target master? Changes to the feature branch should be related to it (Cadence 1.0) upgrades.
The feature branch gets synced with / gets changes from master regularly.

I was told by Ian to target this branch since it breaks bc.


Encoding error in PSModuleInfo property value

Very low pri. Just wanted to get this on the record.
The FullName and ScopeName (string) property values of the System.Reflection.Emit.AssemblyBuilder value in the ImplementingAssembly property of PSModuleInfo have the wrong encoding. It looks like UTF-8 output in unicode.

@juneb Could you please update a status of the isssue with latest builds?

Tested this on 7.1 preview 5. This doesn't look to be an issue anymore.
PS C:\> (Get-Module class).ImplementingAssembly.FullName
PowerShell Class Assembly, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
PS C:\> (Get-Module class).ImplementingAssembly.ManifestModule.ScopeName
RefEmit_InMemoryManifestModule

Close until we get new confirmation.


Is sat suuport saving checkpoint by using fp16 or bf16?

Is sat suuport saving checkpoint by using fp16 or bf16?

Saving checkpoint preserves the original parameter dtype. Do you mean you want to train model with fp32, but save it with fp16? If you train a model with fp16, the model will be save with fp16 by default.

Yes, if support, i can chose what i need, cause that when i using cogvlm to finetune, it only support save checkpoint in fp32, which need 60GB+ storage to save one model,  fp16 maybe enough. offical api seems doesn'y support

cogvlm finetune saves model in fp16, unless you train it with fp32.

It is memory consuming to save the model with a different dtype with that you train, because you need a copy of the whole model to complete that.

thanks a lot


Async document builder

Closes #238
This is resolved using the setImmediate JS function to delay the current execution to the next iteration of the event loop. Also requires the async-mutex package for us not to run into the document builder multiple times.
You can test this by creating a large domain model file (10000+ lines) and changing something that produces a validation warning really quickly. Using this approach, the validation will appear after the usual delay. Using the behavior on main this would result in blinking validation errors.

We should consider generalizing the valid flag of LangiumDocument to something like BuilderState, which can be 'changed', 'parsed', 'processed', 'indexed', 'validated'.

Or store these flags in separate boolean properties? Encoded in a bitmap? Maybe a simple string is enough.

That's a good start! I think we have to refactor the DocumentBuilder, though. I propose the following:

Create a dedicated method to be used by CLIs (maybe use build for that, but without parsing, see below).

documentChanged should work in separate phases:

Invalidate, recreate and then process the changed document
Collect all affected documents (this is probably the responsibility of the IndexManager)
Update the index of the affected documents (including the changed one)
Run validation on all affected documents

The DocumentBuilder should keep track of dirty documents, that is documents reported by documentChanged and affected ones.

When a documentChanged call is cancelled, the next invocation should consider the documents that are still dirty, meaning that the previous invocation did not finish updating or validating them.

We should consider generalizing the valid flag of LangiumDocument to something like BuilderState, which can be 'changed', 'parsed', 'processed', 'indexed', 'validated'.

If we follow this approach, the DocumentBuilder could keep all documents in a single queue and process that in the phases as outlined above.

It would be also nice to have a flag that mean ‚reentrant‘ processing, documents with this flag should  be queed for re-processing afterwards

I have a proposal to change CancelToken a bit:
export class CancelToken {

    private source: CancellationToken;
-    private listeners: Array<() => unknown> = [];
+    private listeners: Array<() => unknown> | null = [];

    constructor(source: CancellationToken) {
        this.source = source;
-        this.source.onCancellationRequested(() => this.listeners.forEach(e => e()));
+        this.source.onCancellationRequested(() => {
+            this.listeners?.forEach(e => e())
+            this.listeners = null;
+        });
    }

    onCancel(listener: () => unknown): void {
+        if (this.listeners) {
+            this.listeners.push(listener);
+        } else {
+            listener();
+        }
    }

    get isCanceled(): Promise<boolean> {
        return delayNextTickAfter().then(() => this.source.isCancellationRequested);
    }
}

@msujew Sorry, I did not close this PR on purpose. Did not see it happen

Another approach following up on my thought https://github.com/langium/langium/pull/244#discussion_r719157881:
let lastTick = 0;
let globalInterruptionPeriod = 10;

/**
 * Reset the global interruption period and create a cancellation token source.
 */
export function startCancelableOperation(): AbstractCancellationTokenSource {
    lastTick = Date.now();
    return new CancellationTokenSource();
}

/**
 * Change the period duration for `interruptAndCheck` to the given number of milliseconds.
 * The default value is 10ms.
 */
export function setInterruptionPeriod(period: number) {
    globalInterruptionPeriod = period;
}

/**
 * This symbol may be thrown in an asynchronous context by any Langium service that receives
 * a `CancellationToken`. This means that the promise returned by such a service is rejected with
 * this symbol as rejection reason.
 */
export const OperationCanceled = Symbol('OperationCanceled');

/**
 * This function does two things:
 *  1. Check the elapsed time since the last call to this function or to `startCancelableOperation`. If the predefined
 *     period (configured with `setInterruptionPeriod`) is exceeded, execution is delayed with `delayNextTick`.
 *  2. If the predefined period is not met yet or execution is resumed after an interruption, the given cancellation
 *     token is checked, and if cancellation is requested, `OperationCanceled` is thrown.
 *
 * All services in Langium that receive a `CancellationToken` may potentially call this function, so the
 * `CancellationToken` must be caught (with an `async` try-catch block or a `catch` callback attached to
 * the promise) to avoid that event being exposed as an error.
 */
export async function interruptAndCheck(token: CancellationToken): Promise<void> {
    if (token === CancellationToken.None) {
        // Early exit in case cancellation was disabled by the caller
        return;
    }
    const current = Date.now();
    if (current - lastTick >= globalInterruptionPeriod) {
        lastTick = current;
        await delayNextTick();
    }
    if (token. isCancellationRequested) {
        throw OperationCanceled;
    }
}

This would combine delayNextTickAfter and the custom CancelToken, and it would enable cancellation checking with a single function call instead of an if (cancelToken.isCancellationRequested) { return; } block.
I'm sorry for the back-and-forth again. When it comes to fundamental decisions such as this, it takes a while until the thoughts are properly sorted in my mind 😅. But now I think solving the problem with utility functions is better than defining our own cancellation token.
For reference, here's the source of the vscode-languageserver CancellationToken:
https://github.com/microsoft/vscode-languageserver-node/blob/main/jsonrpc/src/common/cancellation.ts


Add null value testing for window functions

I globally changed the default for NULL ordering in DuckDB and got some test errors https://github.com/facebookincubator/velox/pull/2782
The current approach kept the changes isolated to my use-case.

I globally changed the default for NULL ordering in DuckDB and got some test errors https://github.com/facebookincubator/velox/pull/2782

I noticed that only one test failed. Would it make sense to fix the SQL queries in that test?

@aditi-pandit

LastAggregateTest

I imagine we just need to modify the DuckDB SQL to specify NULLS LAST directly.

"SELECT c0, last(c1 ORDER BY c1) FROM tmp GROUP BY c0"

Here, ORDER BY c1 may need to be modified to ORDER BY c1 NULLS LAST.


subprocess.py error while running data_prepare_one

Hi,
I have tried to run data_prepare_one but I get the following error and the program stops within ipdb.
MLC02GC4Z3Q05P:masif_site 4464689$ ./data_prepare_one.sh 1AKJ_AB_DE
:/Users/4464689/Downloads/masif/source/
Structure exists: '/var/folders/mn/7xx5f6314c1glph1lkt4k_9m002gyq/T/pdb1akj.ent'
--Call--
>    /opt/local/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py(875)__del__()
   873             self.wait()
   874
--> 875     def __del__(self, _maxsize=sys.maxsize, _warn=warnings.warn):
    876         if not self._child_created:
    877             # We didn't get to successfully create a child process.

ipdb>

I appreciate any input,
Aleks

@aleks-karolak
Hey Aleks,
I was wondering if you had solved this problem, as I am running into the exact same error as you. Any help or insight you could provide would be greatly appreciated.
Thanks for your help in advance.

Hi @Max1461
I haven't unfortunately. My 'python-friend' recommended to install the 3.6 python to be in line with Masif but my Macs don't allow it. I was told that the proper python version would solve it but since the program gets to the ipdb - the issue might be related to the underlying programs. Not all of them are available from the websites as in the original paper and I had to install them from other sources...
I will have look at it soon and get back to you. Thank you

Hi!
I am also running into this issue when running on Linux. Also the docker version works for me but when I upload my own file there I also get the same issue you described.   (all in python 3.6)

Hi!
I counted the same problem? Do you solve it?

Hi!
I counted the same problem? Do you solve it?

no I do not solve it
发件人：orange2350 @.>
发送日期：2023-10-29 21:01:26
收件人：LPDI-EPFL/masif @.>
抄送人：zhangxinyand @.>,Comment @.>
主题：Re: [LPDI-EPFL/masif] subprocess.py error while running data_prepare_one (Issue #41)
Hi!
I counted the same problem? Do you solve it?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

no I do not solve it 发件人：orange2350 @.> 发送日期：2023-10-29 21:01:26 收件人：LPDI-EPFL/masif @.> 抄送人：zhangxinyand @.>,Comment @.> 主题：Re: [LPDI-EPFL/masif] subprocess.py error while running data_prepare_one (Issue #41) Hi! I counted the same problem? Do you solve it? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
你好，我是批量运行会报这个错，一个蛋白一个蛋白运行的时候就不会报错。请问你也是吗？

我运行一个也会报错，能加个联系方式吗？想请教一下你这个问题，我的微信13663125407
发件人：orange2350 @.>
发送日期：2023-10-31 10:30:14
收件人：LPDI-EPFL/masif @.>
抄送人：zhangxinyand @.>,Comment @.>
主题：Re: [LPDI-EPFL/masif] subprocess.py error while running data_prepare_one (Issue #41)
no I do not solve it 发件人：orange2350 @.> 发送日期：2023-10-29 21:01:26 收件人：LPDI-EPFL/masif @.> 抄送人：zhangxinyand @.>,Comment @.> 主题：Re: [LPDI-EPFL/masif] subprocess.py error while running data_prepare_one (Issue #41) Hi! I counted the same problem? Do you solve it? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.>
你好，我是批量运行会报这个错，一个蛋白一个蛋白运行的时候就不会报错。请问你也是吗？
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.>


Send bounding Rect on tray double click events

Double click events on a tray item will now send the bounding rect as payload with the "double-clicked" notification — matching the existing behavior in "click" and "right-click".

Looks good to me, thanks!


Information about (traditional) DEx prices may not be accurate

To track the inline TODO and discussion of https://github.com/OmniLayer/omnicore/pull/173/files#r36941720:
When using omni_gettransaction, then the price/ratio returned for traditional DEx sell offers may not be accurate:

Alice has only 50 MSC, but offers 1000 MSC for 1000 BTC. The (aweful) way how it's currently handled: the transaction is valid, and the offer is adjusted to 50 MSC for 50 BTC. The adjusted MSC amount is fetched from the DB, but the BTC amount isn't updated:
omni_getbalance moR6aNzFHKSMUdqKb3vDCdetM7pLBHozKY 1
{
  "balance" : "50.00000000",  // <----
  "reserved" : "0.00000000"
}

// DEx Offer of 1000 MSC for 1000 BTC
omni_sendrawtx "moR6aNzFHKSMUdqKb3vDCdetM7pLBHozKY" "0001001400000001000000174876e800000000174876e8000a000000000098968001"
f5c71761e1f6588784720bebf1eecbe3113b99a17d4857ec776352af566293ec

setgenerate true 1
[
  "5a52c577e14918128425d182174cd6b36eaa17d1b92b68604145c5874476cedd"
]

omni_gettransaction f5c71761e1f6588784720bebf1eecbe3113b99a17d4857ec776352af566293ec
{
  "txid": "f5c71761e1f6588784720bebf1eecbe3113b99a17d4857ec776352af566293ec",
  "fee": "0.00010000",
  "sendingaddress": "moR6aNzFHKSMUdqKb3vDCdetM7pLBHozKY",
  "ismine": true,
  "version": 1,
  "type_int": 20,
  "type": "DEx Sell Offer",
  "propertyid": 1,
  "divisible": true,
  "amount": "50.00000000",  // <----
  "bitcoindesired": "1000.00000000",  // <---- !!
  "timelimit": 10,
  "feerequired": "0.10000000",
  "action": "new",
  "valid": true,
  "blockhash": "5a52c577e14918128425d182174cd6b36eaa17d1b92b68604145c5874476cedd",
  "blocktime":<PHONE_NUMBER>,
  "block": 103,
  "confirmations": 1
}

As temporary solution (until we handle it better) I suggest to access and reuse a function to recalculate the amounts. This isn't a helper for the RPC layer, but already part of the core logic: adjustDExOffer. We need to double-check omni_getactivedexsells as well, which has a similar inline note.

As temporary solution

Since DEx v1 doesn't get much traffic, and we're going to issue several consensus breaking changes over the coming months, I advocate for simply changing the behaviour to invalidate an attempt to sell more than you have (basically remove the whole adjustment concept entirely).
I know I'm preaching to the choir here but IMO a sell offer is an explicit action.  If explicit actions cannot be facilitated for whatever reason the transaction is invalid.  I strongly dislike the idea of guessing what the user wanted to do - for example:

User has 50 MSC in Address A
User has 100 MSC in Address B
User has intent to sell 100 MSC from Address B
User makes following mistake:

User sends "Sell 100 MSC" from Address A
This explicit action is not possible
We guess an alternate action that is possible, in this case we assume User wanted to sell 50 MSC not 100 and list the sell accordingly.

User now has a sell of 50 MSC from Address A, which was not the intent, nor was it the action specified in the message.

TL:DR; we should never modify a message containing an explicit directive to carry out an action.  That we did for DEx was a mistake, and I believe we should rectify.

Yes, I completely agree, and I don't like it for serveral reasons: a notable one, in my opinion, is that it requires even more knowledge about the state, and imho we should rather try to reduce the state dependencies (of course we need to know, whether the sender has sufficient balance to send anyway, but this case is a good example: unconfirmed transactions are even further away from reality here due to the amount adjusting).
Ideally transactions are self-sustaining as far as possible, i.e. "one only needs to look at the transaction to learn something about their meaning". In our context this is only possible to some degree, but another example is the whole input selection stuff, and I discussed it with @msgilligan recently, who wanted to build a SPV client that can decode transactions (not necessarily verify them), though one very nasty issue there: to decode class B, we must know who sent the transaction, but to determine that, we need not only the scripts of all inputs, but also their values etc.. Retrieving arbitrary transactions via SPV isn't possible though. I'm probably drifting into off-topic here, but it's pretty similar imho.
I created #189 to discuss the potential consensus change.

Nevertheless, regarding the initial issue: we still need

to address it immediately, in one way or another,
and probably have to deal with it in the future, too, at least for historical transactions.

While it's not awesome, we could retrieve the data for historical transactions from the DB, given that the transactions are then confirmed (and thus also persisted).
After #189 we can handle unconfrimed transactions, which because the amounts would no longer be adjusted at all.
So it probably comes down to the question, how exactly we tackle those points.


[#5877] feat (gvfs-fuse): Implement a common filesystem layer

What changes were proposed in this pull request?
Implement a common filesystem layer to handle manage file ids, file name mappings, and file relationships. and delegate filesystem APIs to PathFilesystem.
Why are the changes needed?
Fix: #5877
Does this PR introduce any user-facing change?
No
How was this patch tested?
Uts

There are two many filesystems, could you provide a clear description of what filesystems represent in your design?  How do you plan to split the PRs?

It's hard to understand the code for the naming,  suggest using meaningful name for variables and functions, avoid to use the general file to represent filestat and openedFile in different functions.    and what's the difference about file_name, file_path, name  in this PR?

@FANNG1  @jerryshao @yuqi1129 @xunliu  @mchades
Do you think we must rename 'parent' , 'name'  and 'path' in the function or struct names of this interface to 'parent_file_path' and 'file_name' respectively?
    /// Create the file by parent file id and file name and flags, if successful, return the file handle
    async fn create_file(&self, parent_file_id: u64, name: &str, flags: u32) -> Result<FileHandle>;

    async fn create_file(
        &self,
        parent: &str,
        name: &str,
        flags: OpenFileFlags,
    ) -> Result<OpenedFile>;

#[derive(Clone, Debug)]
pub struct FileStat {
    // file id for the file system.
    pub(crate) file_id: u64,

    // parent file id
    pub(crate) parent_file_id: u64,

    // file name
    pub(crate) name: String,

    // file path of the fuse file system root
    pub(crate) path: String,

Do you think we must rename 'parent' , 'name' and 'path' in the function or struct names of this interface to file_path parent_file_path and file_name respectively? Is it hard to distinguish?

I notice there is a field named file_id, using file_path, file_name can make them clearer and more consistent.

@FANNG1 @jerryshao @yuqi1129 @xunliu @mchades Do you think we must rename 'parent' , 'name' and 'path' in the function or struct names of this interface to file_path parent_file_path and file_name respectively? Is it hard to distinguish?
{
    /// Create the file by parent file id and file name and flags, if successful, return the file handle
    async fn create_file(&self, parent_file_id: u64, name: &str, flags: u32) -> Result<FileHandle>;

    async fn create_file(
        &self,
        parent: &str,
        name: &str,
        flags: OpenFileFlags,
    ) -> Result<OpenedFile>;
}

#[derive(Clone, Debug)]
pub struct FileStat {
    // file id for the file system.
    pub(crate) file_id: u64,

    // parent file id
    pub(crate) parent_file_id: u64,

    // file name
    pub(crate) name: String,

    // file path of the fuse file system root
    pub(crate) path: String,

I expected a clear definition of name. In some contexts, you may use name  as file name, and in other contexts, you may use it as file path. This may make the other person confused. Using file name is more clear.

@FANNG1 @jerryshao @yuqi1129 @xunliu @mchades Do you think we must rename 'parent' , 'name' and 'path' in the function or struct names of this interface to file_path parent_file_path and file_name respectively? Is it hard to distinguish?
{
    /// Create the file by parent file id and file name and flags, if successful, return the file handle
    async fn create_file(&self, parent_file_id: u64, name: &str, flags: u32) -> Result<FileHandle>;

    async fn create_file(
        &self,
        parent: &str,
        name: &str,
        flags: OpenFileFlags,
    ) -> Result<OpenedFile>;
}

#[derive(Clone, Debug)]
pub struct FileStat {
    // file id for the file system.
    pub(crate) file_id: u64,

    // parent file id
    pub(crate) parent_file_id: u64,

    // file name
    pub(crate) name: String,

    // file path of the fuse file system root
    pub(crate) path: String,

I expected a clear definition of name. In some contexts, you may use name as file name, and in other contexts, you may use it as file path. This may make the other person confused. Using file name is more clear.

I agree as well. The use of 'name' in this structure and interface is now clear. There’s no longer any ambiguity, and I’ve fixed all the parts that were ambiguous


Added ur_simulation_gz pkg

Please Add This Package to be indexed in the rosdistro.
Humble, Iron, Rolling, Jazzy
The source is here:
https://github.com/UniversalRobots/Universal_Robots_ROS2_GZ_Simulation.git
Checks

[x] All packages have a declared license in the package.xml
[x] This repository has a LICENSE file
[x] This package is expected to build on the submitted rosdistro

Holding for Iron sync
If you want these in faster, it's better to separate them.  Otherwise we will wait until there are no sync holds for the impacted distros.

No problem, I can wait until there are no more sync holds.

Since the Iron sync is done, are there other reasons for not merging this?

@VinDp thanks for the reminder.


CronWorkflow update command

resolve #133

@flaviuvadan
Could you review this? I think CI detect there are not cron_workflow_service test, but this is from beginning.

Thank you for the reminder @kitagry! I am going to take a look today. I think I might merge this into a branch I have with some v3 releases that I will try to get to by the end of the week.


Stage selected lines missing

There is no stage selected lines action at the moment. I use it daily and have grown fond of it

#18615


detect some common errors from surface syntax

from https://github.com/facebook/reason/issues/2626
@bs.val external someFunc : unit => (unit => unit) = "someFunc"

This is a common issue, what the user really wants is type callback = unit -> unit .... unit -> callback
thoughts?

@wlitwin This is a common pitfall of OCaml externals. Since OCaml is a curried language while C is an uncurried language, so the compiler will try to infer the arity of external functions based on surface syntax and do the uncurrin g under the hood.
However, the arity is inferred based on abstract syntax (instead of real concrete syntax) where unit -> unit -> unit is the same as unit -> (unit -> unit), so the compiler will not infer the arity per user's thoughts

I think I'm still a bit confused. Why would it drop the extra application? Is there some kind of collapsing of unit parameters? And example 4 seems even weirder, because it chose the second curried parameter instead of the first. Does the compiler just take the last two (curried) arguments when generating the output?
Js.log("Attempt 4");
@bs.val external someFuncBool : unit => (bool => unit) = "someFunc"
someFuncBool()(true); // True is applied second here

console.log("Attempt 4");

someFunc(true); // Why is this using the true?

Thank you for taking the time to answer these questions!

@wlitwin the parser views the below two exactly the same, since => is right associative
@bs.val external someFuncBool : unit => (bool => unit) = "someFunc"
@bs.val external someFuncBool : unit => bool => unit = "someFunc"


Upgrader from 0.6.2 to 0.7.0 with Helm 3 upgrade fails to install keptn/keptn

Environment

Client OS (e.g., Linux, OSX, Windows):
Keptn Version (keptn version): 0.6.2
Kubernetes Cloud Provider (e.g., GKE, AKS): GKE
Kubernetes version (kubectl version): 1.15

Affected Component

[x] Kubernetes Integration
[x] Helm

Describe the bug

When trying to upgrade Keptn 0.6.2 to 0.7.0 according to the docs, it fails with
secret "keptn-api-token" deleted
configmap "keptn-domain" deleted
Error from server (NotFound): secrets "bridge-credentials" not found
"keptn" has been added to your repositories
Error from server (NotFound): namespaces "openshift" not found
Error: failed to download "keptn/keptn" (hint: running `helm repo update` may help)

FYI, this has happened to me 3 times on 3 different GKE clusters now.
To Reproduce

Steps to reproduce the behavior:

Install Keptn 0.6.2
Optional, but recommended: create project, onboard service, send new-artifact, expose bridge
Upgrade to 0.7.0 using Job with Helm 3 Upgrade

Expected behavior

Keptn 0.7.0 is installed and everything has been upgraded
Current behavior

Keptn 0.6.2 has been uninstalled, but no new Keptn installation has been installed.
Additional context

I also tried the same with the upgrader Job without Helm 3 Upgrade, and that one seems to work fine.
Upgrade Log:
keptn-upgrade-log.txt
$ kubectl get all -n keptn
NAME                 READY   STATUS    RESTARTS   AGE
pod/upgrader-9pwc4   1/1     Running   0          8m30s

NAME                 COMPLETIONS   DURATION   AGE
job.batch/upgrader   0/1           8m32s      8m32s

$ kubectl -n keptn describe job/upgrader
Name:           upgrader
Namespace:      keptn
Selector:       controller-uid=b4bc474d-184c-483e-8fd6-7043f5873246
Labels:         app=upgrader
                controller-uid=b4bc474d-184c-483e-8fd6-7043f5873246
                job-name=upgrader
Annotations:    <none>
Parallelism:    1
Completions:    1
Start Time:     Fri, 11 Sep 2020 13:06:53 +0200
Pods Statuses:  1 Running / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=upgrader
           controller-uid=b4bc474d-184c-483e-8fd6-7043f5873246
           job-name=upgrader
  Containers:
   upgrader:
    Image:      keptn/upgrader:0.7.0
    Port:       <none>
    Host Port:  <none>
    Environment:
      KEPTN_VERSION:              master
      MONGODB_SOURCE_URL:         mongodb://user:password@mongodb.keptn-datastore:27017/keptn
      MONGODB_TARGET_URL:         mongodb.keptn:27017/keptn
      CONFIGURATION_SERVICE_URL:  configuration-service:8080
      HELM_RELEASE_UPGRADE:       true
      HELM_CHART_URL:             https://storage.googleapis.com/keptn-installer
    Mounts:                       <none>
  Volumes:
   kubectl:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
Events:
  Type    Reason            Age    From            Message
  ----    ------            ----   ----            -------
  Normal  SuccessfulCreate  8m53s  job-controller  Created pod: upgrader-9pwc4

this has been fixed in #2329.


BUG - Parameters from workflows are not getting parsed in version 0.12

https://github.com/openpipelines-bio/openpipeline/blob/227769bf9cf6104172363b1582d341a0eebd795f/workflows/multiomics/full_pipeline/main.nf#L522C3-L537C2
It seems that the parameters for the pipeline are not parsed.
TODO:

[ ] Check input parsing in version 0.12
[ ] Add checks to integration tests

@ddemaeyer, could you provide a better explanation of what the bug is please? The parameters are being parsed here:
https://github.com/openpipelines-bio/openpipeline/blob/227769bf9cf6104172363b1582d341a0eebd795f/workflows/multiomics/full_pipeline/main.nf#L523C35-L523C41


Low usage of gpu

I tried pretraining for small, base, large model on one 2080 Ti gpu but it seems like there is very low usage of gpu. Am I doing something wrong or is the usage of gpu actually low?

Hi @amy-hyunji I'm also facing lower usage of GPU memory when do fine-tuning. Have you solve this problem?

hi, it was due to tf version. Try to check if your version is right


Engage with Rubin process on a "sherlock" type association : https://community.lsst.org/t/host-galaxy-association-for-lsst-transients-request-for-comments/4812

See Melissa's call :
https://community.lsst.org/t/host-galaxy-association-for-lsst-transients-request-for-comments/4812


fix test-cmd from file moves

File moves broke all sorts of stuff.  Not sure how this got committed.

This is not a complete fix, but self-merging to make progress.

cc @mikedanese

Shippable is green now, for the first time all day. What else do you think needs to be fixed?

Unfortuantely, #11239 was merged way too before it was ready. #11273 had test-cmd fixes and the finishing touches of #11239

It was failing on test-cmd for some URL problem.  Weird that it passes now.
On Tue, Jul 14, 2015 at 8:21 PM, Mike Danese<EMAIL_ADDRESS>wrote:

Unfortuantely, #11239
https://github.com/GoogleCloudPlatform/kubernetes/pull/11239 was merged
way too before it was ready. #11273
https://github.com/GoogleCloudPlatform/kubernetes/pull/11273 had
test-cmd fixes and the finishing touches of #11239
https://github.com/GoogleCloudPlatform/kubernetes/pull/11239
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/11281#issuecomment-121472118
.


18.5 - Windows 10 - Failed installation

Tried updating to the latest version only to be told that Windows 8 is not supported and that I should upgrade my system, yet I'm running Windows 10.

@Local9 -- thank your for your feedback.  Please try these resources:

DBA Stack Exchange
Stack Overflow

Also, you are welcome to leave direct feedback here:

SQL Server Feedback

I get the support request tag but cba translates to me as "Can't Be Assed" ;)
I won't take this to stack overflow as this is an issue that needs to be raised directly with the development team. I'll wait till the next update.


Transform information lost when reloading GLB file

I am using filament for android and I discovered the following issue using an Android 10 device (Huawei P20). I have zipped up the example project that demonstrates this problem here
I used the ModelVIewer class to load a glb file containing just two cubes into a scene. Then I find the transforms of its entities and log them using the following code:
        modelViewer.loadModelGlb(readCompressedAsset("two_cubes.glb"))
        modelViewer.asset?.let { asset ->
            (modelViewer.asset?.entities ?: intArrayOf()).forEach { entity ->
                if (asset.getName(entity) == "Cube1") {
                    val transform = modelViewer.engine.transformManager.getTransform(entity, null)
                    Log.d("samsam", "Cube 1 transform: $entity" + transform.joinToString())
                }
                else if (asset.getName(entity) == "Cube2") {
                    val transform = modelViewer.engine.transformManager.getTransform(entity, null)
                    Log.d("samsam", "Cube 2 transform: $entity" + transform.joinToString())
                }
            }
        }

As soon as the scene loads the transforms are logged like so:
2021-04-30 18:07:51.503 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 1 transform: 161.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 1.0, 1.0, 1.0
2021-04-30 18:07:51.504 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 2 transform: 17-9.9623835E-36, 1.63E-43, -9.9624065E-36, 1.63E-43, -9.9624294E-36, 1.63E-43, -9.9624524E-36, 1.63E-43, -9.962475E-36, 1.63E-43, -9.962498E-36, 1.63E-43, -9.962521E-36, 1.63E-43, -9.962544E-36, 1.63E-43

Now when I rotate the device and the model is destroyed by the model viewer and re-created, the same code is run again and the transforms are printed again but this time they are different:
2021-04-30 18:07:58.672 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 1 transform: 331.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0
2021-04-30 18:07:58.672 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 2 transform: 341.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0

If I rotate the device back to its original rotation, the screen now has the same dimensions, everything is as it was the first time the scene was loaded, but still the transforms are printed differently yet again:
2021-04-30 18:08:02.172 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 1 transform: 500.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.24E-44, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
2021-04-30 18:08:02.172 20134-20134/uk.co.conjure.filament_test2 D/samsam: Cube 2 transform: 510.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0

I first noticed this issue because I was loading a model of a car and placing point lights at positions marked by entities in the glb file. The first time the scene is loaded the lights appear correctly but when the view is re-created the lights are moved or not visible anymore.
Thanks for your good work.

Hi @romainguy .. Thanks for the super quick response. May I ask if this is explicitly documented somewhere? I feel like maybe I'm missing some documentation?

It’s documented both on the TransformManager class itself (see the example) and in the parameters description of getTransform().


Fixed httpInterceptor config bug

After setting $authProvider.httpInterceptor = false; in my app config I was still getting the Authorization header in my HTTP requests.
After a little :mag_right:  I found https://github.com/sahat/satellizer/issues/201 and https://github.com/sahat/satellizer/issues/250 to be related.
First thing missing was the getter/setter.
The second issue is the if (config.httpInterceptor) inside the .config(). This code will run before the user's app config. So this was always going to be true (default value). So I moved the check inside the returned function.

+1

I have same problem

Ah, nice catch. I will merge this PR later today.

Thanks!

@deini why did you take out  if (config.httpInterceptor) {?

@sahat Is now inside the return object if (token && config.httpInterceptor) because how it currently is it will run before the user's app config.

I am not sure about performance implications, but with this change, even if you disable the httpInterceptor and try to add your own http interceptor, you will now have two interceptors: 1) Satellizer's that gets the token from local storage and does nothing special. 2) Your custom interceptor.