Service Worker Spec

Is your feature request related to a problem? Please describe.
Hi there, we're using service workers and cloudflare workers (which implement the service worker spec). Sadly the browser build accesses APIs which are not available in workers. For example the window.crypto library or the performance API. Would it be possible to create a platform bundle for workers?
Describe the solution you'd like
I would like to use a worker specific bundle which won't use browser or node.js related APIs.
Describe alternatives you've considered
I tried to use the WebTracer, the NodeJs Tracer. Both don't work - this wouldn'T be the biggest Problem as I can use the BasicTracingProvider and manually trace and build instrumentation for workers later on. But still the Core library relies on NodeJs and Browser specific libraries - so no version is ready to use.
I can help with developing the bundle - but I first need to know if it's in the scope of the library.

I too just encountered this. It would be amazing if support could be added for service workers.

The window.crypto library is removed in the latest build as far as I'm aware. We still depend on the performance API to gather accurate timing data. Maybe we could factor out a Clock interface that implements the now method and use a performance based implementation as the default. This would solve the issue without the need to publish an entire new build for service workers.
@obecny any thoughts on this?

Note that Cloudflare's Date.now() returns the same for all calls servicing a given query in order to prevent timing attacks. Blog post with more information:  https://blog.cloudflare.com/mitigating-spectre-and-other-security-threats-the-cloudflare-workers-security-model/

window.crypto is implemented a bit differently, maybe close enough to be compatible with a small shim? https://developers.cloudflare.com/workers/runtime-apis/web-crypto

Any update on this?

No update. The tight constraints of service workers, particularly their security considerations, make it very difficult to implement tracing. The performance API is removed specifically to disallow accurate timings. If someone was willing to contribute a solution or even a proposal I would be happy to consider it.

Fwiw I've learned that Deno Deploy added support for the Performance API and the other usual timing mechanisms, but limited their resolution to mitigate the security concerns (more discussion around that in this issue and to contrast, Cloudflare's reasoning behind their opposite choice lives here)
And perhaps tangential, but I was able to (sort of) do a proof of viability with otel-js on Deno Deploy (more details in this issue) that at least gave me more confidence that worker runtimes outside of the browser have the potential to work with OpenTelemetry.

We've done some work recently to enable web workers which I suspect improved this situation. Not sure if there is anywhere that the work still todo on that is documented

The sdk-trace-base and sdk-trace-web on the main branch (not yet published) should work in the worker environments since https://github.com/open-telemetry/opentelemetry-js/pull/2719 was landed. However, the web instrumentation (like fetch and xhr) and exporters are still focused on the main-frame context (by using document-based APIs), which may not work as expected. These will need a load of work.

Is there a list of things left to do for service-worker support?

Is there a list of things left to do for service-worker support?

We don't have a concrete list of to-do yet.
Please note that since Environments like Cloudflare workers are disabling precise clocks (even Date.now() is frozen), the timing may still not work as expected even though the OpenTelemetry SDKs are compatible with Worker API. This may affect Span creation time, end time, and durations.

I'm interested in this, and it's worth noting that Date.now() is more accurate than you'd think as it's frozen during code execution and will still progress normal during I/O operations (e.g. subrequests).
So it's still possible to capture the full requests execution time as long as a significant portion of the workers execution time is spent doing I/O, which I'd argue is the normal case for bounded workers.

We've hacked around the fact that performance isn't available within cloudflare workers with a little ESBuild plugin. It replaces the built version of this file with a shim that seems to give decent duration measurements for I/O operations.
const performanceShim = `
  export const otperformance = {
    now: () => Date.now(),
    timeOrigin: Date.now()
  }
`;

const perfFixEsbuildPlugin = {
  name: 'fix-opentel-timing',
  setup(build) {
    build.onLoad(
      {
        filter:
<EMAIL_ADDRESS>      },
      () => ({
        contents: performanceShim,
      }),
    );
  },
};

Is the above something that otel would take as an official contribution? I'd love to get otel working edge environments.

@RichiCoder1 you are welcome to contribute to the project.

Just about every "edge" runtime is planning to provide a perf api except Cloudflare Workers, so I think the route I'm actually going to take here is a polyfill for workers as a well an (intially external, poc) CF Workers Trace SDK

This is much belated, but would this project be amenable to adding a workerd (e.g. Cloudflare) export platform implementation?
With a recent change they've made, it should be possible to create an implementation of certain core primitives that works with Cloudflare (workerd).
More details on the export key: https://github.com/cloudflare/wrangler2/releases/tag/wrangler%402.9.0
Only downside is this would be adding potentially redundantt service specific code to a core package, and I'm not sure if this project is fully setup to handle aspected builds.
Would be a great way to eliminate the hacks used above and here


How to select a row with a single click on a row

Hello,
In my table, I click on a row and I would like to have it selected but instead I have to click 2 times to see is selected and highlighted.
Expected Behavior
Same as in the demo, then click on the row that is selected and highlighted immediately
Official Demo codesandbox
Current Behavior
I need to click twice to have the row selected

This is my code and I need help to understand what is causing these issues and to resolve them please :)
My code
Thank you for your help

There is anyone which can help me out with this problem. I have to deliver the project and have no clue on this anynore. Please.
Thank you for the help.

There is anyone which can help me out with this problem. I have to deliver the project and have no clue on this anynore. Please.
Thank you for the help.

I fixed finally by myself :)
If anyone has the same issues with using useMemo() as I had the solution I found is as follow:
const MuiTable = memo(MuiDataTable, (prevProps, nextProps) => {
  if (isEqual(prevProps.data, nextProps.data)) return true;
  return false;
});

I put this outside the main function and the clicks are working as intended.

I fixed finally by myself :)
If anyone has the same issues with using useMemo() as I had the solution I found is as follow:
const MuiTable = memo(MuiDataTable, (prevProps, nextProps) => {
  if (isEqual(prevProps.data, nextProps.data)) return true;
  return false;
});

I put this outside the main function and the clicks are working as intended.


Upgrader: Support the upgrade of 0.6.2 to 0.7.0 w.r.t. the simplification of the installer

With Keptn 0.7.0, we are implementing https://github.com/keptn/enhancement-proposals/pull/18/files, which could also have implications for our upgrader.
This issue can be used to collect open issues for the upgrader.

To be discussed: How to create a Helm release during the upgrade process?

As discussed, we agreed on the following workflow for the upgrader:

retrieve values needed for ingress-config (from "keptn-domain" ConfigMap)

delete keptn core components (kubectl delete -f …) -> keptn-datastore namespace still available

apply helm chart (distinguish between control-plane and continuous delivery)

set up ingress-config ConfigMap

move data from mongodb.keptn-datastore to mongodb.keptn

delete mongodb-datastore namespace


AP not visible or not started

Hi,
I am new to ESP32, so my apologies if I am missing out something obvious.
I downloaded the esp32-wifi-manager and tried to compile the project, using vscode, ESP-IDF 3.2 and mingw32 under windows. It compiled fine, starts and using make monitor I see the attached log.
No errors present, but I do not see any Access Point when scanning for it. Hence I cannot connect and configure the STA.
esp_wifi_start() in wifi_manager.c, line 577 returns ESP_OK.
I am puzzled, what the problem might be.
I m using the Heltec esp32 wifi board.
Any help appreciated.
Kind regards
GvT
ESP_wifi_manager.txt

Hello GvTT, when you see the message:

wifi_manager: starting softAP with ssid esp32
wifi_manager: starting softAP with 20 MHz bandwidth
wifi_manager: starting softAP on channel 5

It means everything worked as expected. If you have a tool like WireShark you should see the network.
Where do you live? Maybe channel 5 is not authorized in your country.


issues with google map api

H @giansi
It seems that there is an issue with the use of shortcode for google map api, as long as I'm trying to follow your instructions here http://diblas.net/plugins/gravstrap/google-map-component , it is not working.
The JS keeps asking for the api and does not run the map in the page: http://audleste.com.br/grav-admin/br/gravstrap-theme-simple-page-example
congrats for the template anyway
tks

Hi,
you require an api key to get it run, but there was a typo in the doc: the correct parameter name is api-key not api_key. I've updated the documentation.
Glad you like the theme. :-)

@giansi  nice to hear, tks for the repply.


home: Add height property to Integration's logo.

This PR makes the height of the Integration's logo on the Zulip home page equal to the width (80px).
Earlier, one of the logos (Zendesk) was not in alignment with the other logos. This change fixes that problem.

Screenshots and screen captures:

Before
After

Self-review checklist

[X] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[X] Each commit is a coherent idea.
[X] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[X] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Thanks! Closing this PR as the issue will be obsolete after #24082.


Add "Reset Editor Group Widths" Command

I'd like a layout like the following.

However, when you have an editor group maximized and switch to the middle editor group (e.g. from Untitled-1 to Untitled-2, it looks like this:

As a solution to this, it would be nice to have a Reset Editor Group Widths command that works like Reset Editor Group Sizes, but only changes the widths.
If this is a command that sounds like it would be merged, I can try to work on implementing it.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


DeSync issues between Windows 10 and Linux Mint while on Quasar project

Product and Version [VS/VSCode]:
Version: 1.50.1 (user setup)
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T15:06:15.712Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
OS Version [macOS/Windows/Linux]: Windows live sharing with a person on Linux Mint
Live Share Extension Version: v1.0.3014
Target Platform or Language [e.g. Node.js]: Quasar Dev / VueJS
What were you doing when you encountered the desync?
Just watching the files being changed, Wasn't even typing code at the same time. Files swapping was happening as well.
How often have you encountered desyncs?
Once

Hey @Silverkisses , are you continuing to experience sync issues? Also, what do you mean by "file swapping"?

I'm going to close this issue as a duplicate of #2086, so that we can consolidate the conversation there. If you can share any more details about your repro, it would be amazingly helpful if you could add them to that issue. Thanks!


⚠ Processors has degraded performance

In b4167c4, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 61 ms

Resolved: Processors performance has improved in 59c0c04.


[IoTDB-575]add default jmx user and password; fix issues that jmx can not be accessed remotely

Though PR#979 has requires users to use JMX with authorization, it breaks our rule "make IoTDB available out of the box".
Users have to add files into their JDK HOME and then start IoTDB.
This PR fixes that and gives two default user/passwords for JMX.
Besides, I notice there are some unused codes in our JMXService module, so I simplify them.

close this for more work


tikv: implement pessimistic lock protocol

PTAL @coocood

PLock should not block read, but seems there is no logic for it.

Prewrite should detect PLock written by self, and update it to prewrite lock.

replaced by https://github.com/ngaut/unistore/pull/202


COSBETA-324: Fix SUBMISSION_WINDOW_END_DATE constant

Description

Checklist:

[ ] Automated checks are passing locally.
[ ] CHANGELOG updated if change is worth telling users about.

General testing

[ ] Test without javascript
[ ] Test on small screen

Accessibility testing

[ ] Works keyboard only
[ ] Tested with one screen reader
[ ] Zoom page to 400% - content still visible
[ ] Disable css - does content make sense and appear in a logical order?
[ ] Passes automated checker (automated in build or manual)

just removed unnecessary parenthesis


Modified IMSPoxRequest to check for if base contentType is application/xml

Currently, attempting to build an IMSPOXRequest object where the request contentType contains optional parameters (i.e charset) fails. Modified code to check the baseContent type.

Thanks for this - I will also take your change and apply it to the  Sakai copy of tsugi-util and bring it back to here along with a bunch of other fixes / improvements.  Then I will release new artifacts for tsugi-util.

This is now  PR in Sakai https://github.com/sakaiproject/sakai/pull/6914 - step 1 of the round trip :)


Not able to use CloudFoundryAppServiceDiscoveryClient in reactive context

If we use DiscoveryClient to make call to getInstances in reactive context (only with webflux), this fails because of the blocking code.
https://github.com/spring-cloud/spring-cloud-cloudfoundry/blob/460fc2652a95677fe6502f0e3e0716c3b23f8fb6/spring-cloud-cloudfoundry-discovery/src/main/java/org/springframework/cloud/cloudfoundry/discovery/CloudFoundryAppServiceDiscoveryClient.java#L76

You can follow along here as we work through this https://github.com/spring-cloud/spring-cloud-commons/issues/557


No serialization support for TrustedState

Since TrustedState is supposed to be stored, so it'll need serialization. But users can't implement trait for external types, so it's better to builtin?

Is it good to have serde serialization builtin, I can send the PR if I'll be accepted. ;D

Yes, I think that would make sense. The only concern I have is that JSON might not be the right encoding for storing that data.
On the other hand, we are already using serde for TrustThreshold inside of   the lite module: https://github.com/interchainio/tendermint-rs/blob/2761a9d8cd6eae79eca9d7368a9bc6d1ed4452c3/tendermint/src/lite/types.rs#L90-L91
It's also recommended by the rust api guidelines: https://rust-lang.github.io/api-guidelines/interoperability.html#data-structures-implement-serdes-serialize-deserialize-c-serde
I guess, TrustedState is a bit of an edge case struct as it only deals with abstract types, but yes, we need this. Please submit a PR.


User-defined data type and rank constraints

Requested from https://github.com/ise-uiuc/nnsmith/issues/69

CI failed due to Azure failure. Will re-run the CI 1hr later.


Check commands in the PATH

Some users have reported not being able to find the opsep etc commands after doing a pip install.  Report from SPREADfAST developer:
I am trying to run this command in a Linux terminal window:
opsep --StartDate 2017-09-06 --EndDate 2017-09-06 --Experiment user --ModelName SPREAdFAST --UserFile model/fluxData_f32_170906_01 --FluxType integral --Threshold "30,1;50,1" --JSONType model --showplot --saveplot

But I get this error:
opsep: command not found

Check how pip commands make way to the PATH, and whether they are immediately available in the pip install terminal session.

This question has the right answer, I think:
https://stackoverflow.com/questions/35898734/pip-installs-packages-successfully-but-executables-not-found-from-command-line
Users can find where their pip install directory is with python3 -m site --user-base.  Append /bin to that and add that to the PATH in the shell rc.  e.g. for bash:
echo "export PATH=\"`python3 -m site --user-base`/bin:\$PATH\"" >> ~/.bashrc
source ~/.bashrc

We can resolve this issue by testing this solution and writing good instructions in the README.


Breadcrumb urls lead to error page

Thansk for this package
Here is a little buglet : when I group models together under a single app-name, clicking on "cross referenced" models will lead to a page where their breadcrumb still references their real parent app. Clicking on this url will lead to an empty page, since the origianl app of these models is not listed in ADMIN_REORDER.

FWIW, my little workaround for this issue:

define a redirect url
change verbose_name for the app

"1." solves the 404 and "2." makes it look nice.
I have a custom user model in project's users app and I wanted to move this model into the contrib.auth app / section. I suspect this is a fairly common use case.
# urls.py
path("admin/users/", RedirectView.as_view(url="/admin/auth/")),

# users/apps.py
class UsersConfig(AppConfig):
    name = "users"
    verbose_name = "Authentication and Authorization"

# users/__init__.py
default_app_config = 'users.apps.UsersConfig'

This is a bodge solution... works ok if there are no other models in the app in the admin, otherwise not applicable.
I would love to see a proper solution for this, but fear it might be very complicated :(


Add JDK 18/19 to JDK version pick list - Maven2/Maven3/Maven4 Task

Task name: Maven2/Maven3/Maven4
Description: Add support to JDK 18 and JDK 19 to all Maven Tasks
Documentation changes required: Y
Added unit tests: N
Attached related issue: Y https://github.com/microsoft/azure-pipelines-tasks/issues/16877
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

@microsoft-github-policy-service agree [company="{your company}"]

@microsoft-github-policy-service agree [company="EY"]

@microsoft-github-policy-service agree company="your company"

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree

/azp run

@v-mohithgc @rohit-batra Not sure if I'm supposed to ping anyone, since the contributor details don't indicate what to do if I don't get a response after X days, but is it possible to have a look into this PR?
It'd be useful for various people using Java-based images

It would be great to have this done, needing this on my project!

Hi @vmapetr
Is it possible to give a look into this PR, as it's integration should be seamless?

Any possible feedback on this?
It has been open for many months without any comments or feedback


Sd 1.5

Hello, great job on the repo. Your paper mentioned that this does work with sdxl and 1.5. how do I use this for sd 1.5?

We won't release SD1.5 recently, but we encourage the community to re-implement.

We won't release SD1.5 recently, but we encourage the community to re-implement.

Your paper says "conducted on 48 NVIDIA H800 GPUs". is it possible to re-implement by community without use of large computing power?

Please SD1.5

please release sd1.5

please release sd1.5

i try to change the sdxl code using the sd1.5 pipeline, but failed for the uncorrected tensor size.. is it possible to use sd1.5 with the sdxl .bin and .safetensors files?


Broken git log output

$ git log --oneline
9d815a5 test: make linting a part of the testing process PR-URL: https://github.com/metarhia/Common/pull/4 * Add `npm run lint` script that can be invoked on its own. * Run linter in the end of `npm test` script if the tests have passed.
7b13f1e lib: code style optimizations PR-URL: https://github.com/metarhia/Common/pull/3
8c4713d lib: optimize object cloning PR-URL: https://github.com/metarhia/Common/pull/1
5e7d7d3 lib: make `clone` abstract again
37f0079 Add required dependencies
6b6544f Fix namespaces export
6f07e7d Add api.common.cache (enhanced Map)
d4ceded Extract api.common from Impress
07bb9b0 Fix exports
e736df5 Library structure
1750b04 Initial commit

@tshemsedinov an empty line after the short commit message is required by Git. Without it, the whole commit description is a short message with newlines treated as spaces.

Aside from that, all metadata, both built into Git (like Signed-off-by) and custom (like PR-URL) should be at the end of commit description.

Log fixed and landed links changed after rewrite

Great, thanks for that. I didn't mean to rewrite the history, it was more of a warning to make it right in the next commits, but having a clean and neat history from the very beginning is awesome.
@nechaido make sure to git pull --force your master branch and rebase your local branches if you have any.


OPEN THREAD: Exercises that you didn't like

I'm going to leave this issue open basically forever, please feel free to leave a comment if you find any particular exercises to be:

too confusing
too frustrating
not useful for learning
otherwise don't fit your expectations

Please include which exercise you're discussing and explain as best you can what you didn't like about it :)

I disliked move semantics 2 and 3. In #2, there was so many ways to solve it that I didn't feel like I found an intended solution (previously exercises up until that point felt like there was a "right" answer). I have yet to actually solve #3. The hint seems to imply that I can just add "mut" somewhere, but I have yet to figure out where.
Borrowing and references in general seem to be a unique (and confusing) aspect of Rust. maybe a few exercises that are more varied could be helpful.

@dagoss thank you so much for your feedback!!!!!! I'm seriously excited to find places where these can be improved :) I'll be sure to ping you when I have an update to get your thoughts!

Hi, first of all, thank you for your great exercises! They are really helpful, as I'm actually currently learning Rust.
A quite confusing aspect for me are Strings. You do have 3 exercises about these, but afterwards I didn't have the feeling that I knew what was going on.
Maybe a step-by-step exercise would be more helpful?
I came up with something like this (combining your first two string-exercises):
// String vs &str
// Job 1: Make me compile using the function print_my_text as it is.
// Job 2: But this is inefficient! We copy "my_text" when giving it to the function.
//        Lets make it more efficient, by passing a reference of String instead!
// Job 3: But now we still need to add this weird function-call to make our text into a String,
//        doing more work than we would need to.
//        There is a different type, which we can use, so that everything still works, but without
//        converting my_text to a String. You can do it! (A hint about the title of the exercise could be added)
// Job 4: Hey, but what if I _want_ to pass a String to my nifty little function? Well... You can! Try it!
//        Why does this work, but not the other way around?

fn print_my_text(text : String) {
	println!("I was commanded to print: {}", text);
}

fn main() {
    let mut my_text = "Strings are weird!";
    print_my_text(my_text);
    my_text = "Something else!";
    print_my_text(my_text);
}

Your hints of the first two string-exercises could be added here as well (with slight modifications).
What do you think?
And there is also a really good article about this: http://hermanradtke.com/2015/05/03/string-vs-str-in-rust-functions.html
Could maybe be added to the literature?

Just did all the exercises and they seem pretty good, though I have some comments on the categorized ones:

ex1.rs is a bit pointless as it compiles already.
ex2.rs appears to be the same as strings1.rs.
ex3.rs is unclear as to what the supposed solution is (I assume the point was to add #[derive(Debug)]).
ex4.rs appears to be the same as errors2.rs.
ex5.rs appears to be the same as move_semantics2.rs


Incorrect data model for StackId

https://github.com/Malax/libcnb.rs/commit/034b2a2f4be62f08ced2ed34a4c3a3ab06b521c4 changed StackId so that * is a valid StackId, which is incorrect.
There can't be a stack named *, but you can specify * in buildpack.toml to indicate that the buildpack is compatible with any stack. Those are very different things.
We should revert StackId to its previous implementation and introduce a new type that is used in the buildpack descriptor to model the "compatible with any stack" case. An enum like this comes to mind:
enum StackCompatibility {
    Any,
    Specific<Vec<StackId>>
}

@Malax Reading the spec, counter-intuitively, it sounds like the following is allowed:
[[stacks]]
id = "*"

[[stacks]]
id = "foo"
mixins = ["bar"]

This was surprising to me, though reading the original RFC, it seems like perhaps in the future the intention was to support arbitrary wildcards (eg io.buildpacks.stacks.ubuntu.*), so perhaps that was why (though I could argue that the "*" case should be separate from that and the spec insist there is only ever one entry in stacks if it is used).
Given this, it seems that the type needs to be a Vec<StackCompatibility> not <Vec<StackId>>?
Also, since stacks have mixins, I'm presuming StackCompatibility::Specific should wrap Stack not StackId?

@edmorley When I was jotting down the idea in the issue description, I did not have the actual definition or spec before me. I should've taken more time before creating this issue, my apologies.
Looking at the RFC, you're right - this is a little more complex but not much. What do you think about changing Stack to smth. like this?
enum Stack {
    Wildcard,
    Concrete { id: StackId, mixins: Vec<String> },
}

Now that I see it, mixins should not be Vec<String> but Vec<Mixin> as there are additional validation rules: https://github.com/buildpacks/spec/blob/platform/v0.6/platform.md#mixins

Yeah I thought it might have just been a rough sketch - just wanted to check I hadn't misunderstood the spec, or if we were choosing to interpret the spec a bit more sensibly.
I'll play around with the types locally and see what makes sense :-)


Add typescript definition file

Updated a lodash patch version and made the flow file strict as well.
Ref: https://github.com/github/web-systems/issues/223

No package.json update?

🤦♂


Error when preparing COCO annotation file from a single YOLO annotation file

I have a dataset with both labeled and unlabeled images(hence some empty txt files). When I run the validation txt file using main.py it works perfectly but when I run main.py on the train txt file it shows me this error:
Start! Processing 2588 ...Traceback (most recent call last):   File "C:\Users\Tala\Desktop\Yolo-to-COCO-format-converter\main.py", line 233, in <module>     main(options)   File "C:\Users\Tala\Desktop\Yolo-to-COCO-format-converter\main.py", line 215, in main     ) = get_images_info_and_annotations(opt)   File "C:\Users\Tala\Desktop\Yolo-to-COCO-format-converter\main.py", line 47, in get_images_info_and_annotations     w, h = imagesize.get(str(file_path))   File "C:\Users\Tala\anaconda3\lib\site-packages\imagesize.py", line 96, in get     fhandle = open(filepath, 'rb') PermissionError: [Errno 13] Permission denied: '.'
I'm not sure why it stops processing at 2588

I'm closing this issue because it hasn't been updated in a long time, please reopen it if you have any problems.


Automatic download command is broken

https://dgraph.io/docs/deploy/download/#automatic-download
The command given here (curl https://get.dgraph.io -sSf | bash) gave an error. I think we can remove this section as the "Manual Download" is not that complicated.

Update. I think the issue is with binary asset.
I think we should filter out Beta, RC and etc from the Get Dgraph install line. It doesn't look a safe thing let users install it right away. We should Put as explicitly requested only.

Okay, this is temporarily fixed directly on the server. The fix needs review. See https://github.com/dgraph-io/Install-Dgraph/pull/28

We're dropping this (automatic download) in v22.0.0, right?

No, this one will be skipped cuz it is a RC. Not a official release. When it comes it will be picked by the script.

Hi @MichelDiz , the other day @matthewmcneely @meghalims and I, we were highly considering dropping this automatic download feature, since the manual download is not that complicated to do. Do you think we should keep this?

Yes, we should keep. Cuz it is better for manual testing, some users and customers uses it. It is not an expensive process to maintain. I see no strong reason to remove it.
A difficulty, I think, for example, having any instance (e.g. EC2) from scratch. Just to test Dgraph. I would have to install Docker, download the image. But if I don't want to use docker I would have to extract the binary from inside the container to the host OS. This add more complexity. Rather than simply running a script. See?
OR, I have to download the binary from Github. Which is exactly the same as this script right? but automated.
In the end, I just wanted to do a quick test. Where I can change parameters and have a more direct control of the execution. Instead of editing a Docker or Docker compose command.
I do this a lot, I don't use Docker all the time. Only when it's necessary. If I need to do something at lightning speed, I use this script. And many others use it too.

@MichelDiz Are you saying you use the auto download for Linux on amd64? Because we don't build for any other platforms, right?

Yes, I use Linux in virtual machine on my NAS, I use WSL and stuff. For me it is more comfortable to have this script. And if we get support for other operating systems again. That script would be useful.

We can decrease the frequency that this functionality appears in docs or on the main company website. But this kind of script is almost cultural among tech startups. And it's not expensive to maintain.

I see, I guess we thought a wget/curl and an unzip was easier to document than maintaining that script. @meghalims your call to make?


v0.26.0

Also updated electron-download in package.json

im gonna update 0.26.0 separately, as to not mix multiple concerns in one PR


Running brew bundle - failure

Hello all,
On a completely fresh OSX Mountain Lion install. Homebrew is installed, brew tap homebrew/bundle completed correctly. Running: brew bundle results in the following:
Error: /usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:72: odd number list for Hash
        name: f["name"],
             ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:72: syntax error, unexpected ':', expecting '}'
        name: f["name"],
             ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:73: syntax error, unexpected ':', expecting '='
        full_name: f["full_name"],
                  ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:74: syntax error, unexpected ':', expecting '='
        args: args,
             ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:75: syntax error, unexpected ':', expecting '='
        version: keg["version"],
                ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:76: syntax error, unexpected ':', expecting '='
        dependencies: f["dependencies"],
                     ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:77: syntax error, unexpected ':', expecting '='
        requirements: f["requirements"],
                     ^
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:78: syntax error, unexpected '}', expecting '='
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:81: class definition in method body
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle/brew_dumper.rb:89: syntax error, unexpected $end, expecting kEND
Please report this bug:
    https://git.io/brew-troubleshooting
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle.rb:8:in `require'
/usr/local/Library/Taps/homebrew/homebrew-bundle/lib/bundle.rb:8
/usr/local/Library/Taps/homebrew/homebrew-bundle/cmd/brew-bundle.rb:16:in `require'
/usr/local/Library/Taps/homebrew/homebrew-bundle/cmd/brew-bundle.rb:16
/usr/local/Library/brew.rb:67:in `require'
/usr/local/Library/brew.rb:67:in `require?'
/usr/local/Library/brew.rb:155

Unfortunately, Homebrew/bundle uses a few features which doesn't support Ruby 1.8.
@mikemcquaid Should we add Ruby 1.8 for this tool, especially considering OS X El is about to release.

@xu-cheng Up to you. On one hand I think it'd be relatively easy to fix these particular cases and on the other hand, as you say, OS X El Capitan isn't that far away. Regardless I guess a quick fix to detect the Ruby version and error-out would be good.

On one hand I think it'd be relatively easy to fix these particular cases

The problem in this issue is easy to fix. However, it would require some work to add Ruby 1.8 support for IO.popen we used here. And there may be other features I used which don't support for Ruby 1.8.

Regardless I guess a quick fix to detect the Ruby version and error-out would be good.

I'm in favor this.

@xu-cheng Oh, one more thought is to make sure we check the Ruby version rather than the OS version and suggest they could brew install ruby to make it work (like brew cask)


Update README.md

Add plugin project link

Need add Korean and Chinese README.md for the update

@mrblocktw Both KR and ZH updated


Auto re-import of .gltf file failed with  BUG: File queued for import, but can't be imported!

Godot version:

3.2.3 stable
OS/device including version:

macos catalina
Issue description:

Reimport of .gltf file failed. Need to open file without inherited scene to refresh it into the project.
In output:
editor/editor_file_system.cpp:1766 - BUG: File queued for import, but can't be imported!
editor/editor_file_system.cpp:1767 - Method failed.
Steps to reproduce:

Create model in Blender.
Save if into the project files.
Create inherited scene with it.
Save the scene.
Open .blend file. Edit. Re-export with the same name as .gltf
See error in output.
Open model manually to refresh it in the project. (model will also be refreshed in the saved inherited scene)

Minimal reproduction project:

Duplicate of https://github.com/godotengine/godot/issues/45524.


⚠ Bofrost.lu has degraded performance

In 09f3342, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1423 ms

Resolved: Bofrost.lu performance has improved in 996759c after 6 minutes.


SharePoint deployment, where can I get the needed images.

Hello,
I have a question to the note on this  Site.
In the Note section of this site is a descritpion that means, I do Need some images. But where I can get this images? Can I downloaded this from the public Azure and can put in my private Azure Stack?

Hi,
There is no need for specific images to use the SharePoint template. The template will work with the default image available on Azure Stack. The template will take care of downloading the installer bits for SQL and SharePoint during VM configuration. In fact, one of the parameters for this template is a download location for the SharePoint installer bits. The wording on the readme is confusing, I will update it soon.

Ah okay. Can I use the direct link from MSDN for this, or must I maybe use the EvalCenter Version?
Or is it besser to save the Iso to a Azure Blob Storage and share it?

Okay, thanks for your support 👍


oiiotool: make --fit:exact=1 work for all subimages

It was just fitting the first subimage and dropping the others on the floor.

LGTM


Trouble with zip.js

Hello Maniruzzaman, my compliments for the project you created.
I am running it and see how it was build.
Quick question, the zip.js file is not working correctly.
If I run it like you mentioned it in the read.me, I end up with an empty dist folder.
When I stop the code execution on the line
asyncExec(
'composer install --optimize-autoloader --no-dev',
{
it will copy the folders and files, except the vendor folder for some reason.
Anyway, wanted to let you know, as this is still a work in progress, I guess you will fix this in the near future.
I have it fixed manually for now, so I can test the plugin.
Great project, love it.
Kind regards,
Jean Paul

Hello Maniruzzaman, my compliments for the project you created. I am running it and see how it was build. Quick question, the zip.js file is not working correctly. If I run it like you mentioned it in the read.me, I end up with an empty dist folder. When I stop the code execution on the line asyncExec( 'composer install --optimize-autoloader --no-dev', { it will copy the folders and files, except the vendor folder for some reason.
Anyway, wanted to let you know, as this is still a work in progress, I guess you will fix this in the near future. I have it fixed manually for now, so I can test the plugin.
Great project, love it. Kind regards, Jean Paul

Hi, how did you solve the problem? I noticed that the files in the dist folder actually get written correctly, but then disappear in a millisecond as if they were deleted due to lack of permissions or by an antivirus. Thanks for sharing.


Server Stuck - Can't delete

Receiving the message below, even after deleting all flows.
"Home assistant connection failed with error: Connection to home assistant could not be established with config: http://HASSIP:8123 "
I pasted a configuration and as it was an example, it was http://HASSIP:8123. But now it is stuck. I noticed that it as hidden, but even deleting the hidden node I still receive this message continously.
I can't delete Home assistant palette since "server" is supposely in use...
Now I don't know how to solve it. Can someone tell what to do? Thanks.

Stopping nod-red and rebooting solved the problem,


MAINT: special: return nan for inaccurate regions of pbwa

Change pbwa to return nan unless |a|, |x| < 5. Inside this box
the relative error is on the order of 1e-12, but for a 6 x 6 box it
already jumps to 1e-6.
See https://github.com/scipy/scipy/pull/7159#discussion_r105554375.
Also updates the docstring.

thanks, lgtm


useI18n does not work in a setup script within the context of a programmatically opened Modal

Overview of the problem
Buefy version: [0.1.3-8518d47780e734635d6e6cd8fa2ce32f3685e1d0]
Vuejs version: [3.3.9]
OS/Browser: Safari
Description
useI18n did not work in a setup script within the context of a programmatically opened Modal. I faced the following error:
Unhandled Promise Rejection: SyntaxError: Need to install with `app.use` function

I found this while investigating this discussion.
Steps to reproduce
<script setup>
import { useI18n } from 'vue-i18n'

const { t } = useI18n()
</script>

Expected behavior
Get no error.
Actual behavior
Got an error.

I came up with a quick patch, though, it is very specific to vue-i18n.
Why this happened
A programmatically opened Modal is hosted on a Vue app different from the main Vue app. This caused a problem that no plugins installed into the main Vue app were not available on the Vue app hosting Modal. This problem was fixed by #102 by copying the app context from the main Vue app to the Vue app hosting Modal. However, vue-i18n injects another private field (__VUE_I18N_SYMBOL__) in Vue app, which is not addressed by #102. useI18n throws an error if a Vue app does not have the field.
Quick patch
Copy __VUE_I18N_SYMBOL__ from the main Vue app to the Vue app hosting Modal.

This should have been closed by #154.


vim-go not detected when using vim-plug

~It looks like vim-go is not detected if installed via https://github.com/junegunn/vim-plug~
The path checked here: https://github.com/rakyll/govalidate/blob/95ca3ee38065f48f35977d7268e56a35b7a8985d/check/checkvim.go#L25 seems like it doesn't include the plugged directory.
Edit: Completely unrelated to the plugin manager, actually about symlinks. Thanks for creating this tool (and your work on Go)!

Ah, reading the documentation helps... my .vim directory is actually a symlink, which I guess filepath.Walk doesn't follow per https://golang.org/pkg/path/filepath/#Walk
Still a bug for me, but not sure how you'd like to handle.

We should handle symlinks, I will send a fix later today.


Service type loadbalancer is not working in DSR mode

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
Service type loadbalancer is not working in DSR mode (externalTrafficPolicy: Cluster). service type loadbalancer is implemented with metallb in BGP mode.
according to https://github.com/cilium/cilium/issues/8979 the input packet path seems ok when I capture the traffic:
source node ip (outside of cluster): <IP_ADDRESS>
service external ip: <IP_ADDRESS>
pod ip: <IP_ADDRESS>

the input packet path:
 -> Node A ✅
16:13:29.728842 ens4  In  IP (tos 0x0, ttl 59, id 44271, offset 0, flags [DF], proto TCP (6), length 60)
    <IP_ADDRESS>.55992 > <IP_ADDRESS>.80: Flags [S], cksum 0x1ea5 (correct), seq<PHONE_NUMBER>, win 29200, options [mss 1398,sackOK,TS val 268426529 ecr 0,nop,wscale 9], length 0

(does LB, picks a target pod, does DNAT but not SNAT) ✅
16:13:29.728883 ens4  Out IP (tos 0x0, ttl 59, id 44271, offset 0, flags [DF], proto TCP (6), length 68, options (unknown 154))
    <IP_ADDRESS>.55992 > <IP_ADDRESS>.8080: Flags [S], cksum 0xce96 (correct), seq<PHONE_NUMBER>, win 29200, options [mss 1398,sackOK,TS val 268426529 ecr 0,nop,wscale 9], length 0

-> Node B (forwards to target pod)  ✅
16:13:29.729927 ens4  In  IP (tos 0x0, ttl 59, id 44271, offset 0, flags [DF], proto TCP (6), length 68, options (unknown 154))
    <IP_ADDRESS>.55992 > <IP_ADDRESS>.8080: Flags [S], cksum 0xce96 (correct), seq<PHONE_NUMBER>, win 29200, options [mss 1398,sackOK,TS val 268426529 ecr 0,nop,wscale 9], length 0

-> Pod ✅
16:13:29.729970 lxc2bdb3aea6589 Out IP (tos 0x0, ttl 58, id 44271, offset 0, flags [DF], proto TCP (6), length 68, options (unknown 154))
    <IP_ADDRESS>.55992 > <IP_ADDRESS>.8080: Flags [S], cksum 0xce96 (correct), seq<PHONE_NUMBER>, win 29200, options [mss 1398,sackOK,TS val 268426529 ecr 0,nop,wscale 9], length 0

the output path is:
Pod -> Node B ✅
16:13:29.729991 lxc2bdb3aea6589 In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    <IP_ADDRESS>.8080 > <IP_ADDRESS>.55992: Flags [S.], cksum 0xee2f (incorrect -> 0xbef7), seq<PHONE_NUMBER>, ack<PHONE_NUMBER>, win 65160, options [mss 1460,sackOK,TS val 323466283 ecr 268426529,nop,wscale 7], length 0

(does SNAT so that src=service IP) -> <somewhere outside the cluster, back to the client IP>. ⛔
No SNAT happens, the traffic will not go outside of the node
Cilium Version
cilium image (running): v1.10.4
Kernel Version
$ uname -a
Linux okd4-worker-worker-1 5.14.14-200.fc34.x86_64 #1 SMP Wed Oct 20 16:15:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Kubernetes Version
$ oc version
Client Version: 4.8.0-0.okd-2021-11-14-052418
Server Version: 4.8.0-0.okd-2021-11-14-052418
Kubernetes Version: v1.21.2-1555+9e8f924492b7d7-dirty
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

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

@m-yosefpor Thanks for the detailed issue. On the Node B, could run run cilium bpf nat list | grep $CLIENT_REQ_SRC_PORT and cilium bpf ct list global | grep $CLIENT_REQ_SRC_PORT?

@brb Here is the output:
# cilium bpf nat list | grep $CLIENT_REQ_SRC_PORT
Unable to open /sys/fs/bpf/tc/globals/cilium_snat_v6_external: Unable to get object /sys/fs/bpf/tc/globals/cilium_snat_v6_external: no such file or directory. Skipping.
TCP OUT <IP_ADDRESS>:8080 -> <IP_ADDRESS>:56258 XLATE_SRC <IP_ADDRESS>:80 Created=270365sec HostLocal=0

# cilium bpf ct list global | grep $CLIENT_REQ_SRC_PORT
TCP IN <IP_ADDRESS>:56258 -> <IP_ADDRESS>:8080 expires=17832244 RxPackets=3 RxBytes=246 RxFlagsSeen=0x02 LastRxReport=17831877 TxPackets=8 TxBytes=592 TxFlagsSeen=0x12 LastTxReport=17832010 Flags=0x0080 [ DSR ] RevNAT=0 SourceSecurityID=2 IfIndex=0
Unable to open /sys/fs/bpf/tc/globals/cilium_ct6_global: Unable to get object /sys/fs/bpf/tc/globals/cilium_ct6_global: no such file or directory. Skipping.
Unable to open /sys/fs/bpf/tc/globals/cilium_ct_any6_global: Unable to get object /sys/fs/bpf/tc/globals/cilium_ct_any6_global: no such file or directory. Skipping.

Interesting - the NAT and CT tables have correct entries. Do you see the non-SNAT-ed reply packet leaving the Node B via a physical network interface?

@brb no there is no non-SNAT-ed packet. This is the last packet related ro this request:
16:13:29.729991 lxc2bdb3aea6589 In  IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    <IP_ADDRESS>.8080 > <IP_ADDRESS>.55992: Flags [S.], cksum 0xee2f (incorrect -> 0xbef7), seq<PHONE_NUMBER>, ack

no other In or Out packet

Which tcpdump filter are you using?

@brb
tcpdum -vvvniany host <IP_ADDRESS> or host <IP_ADDRESS>

@m-yosefpor Thanks. Which kernel do you run?

@brb $ uname -a
Linux okd4-worker-worker-1 5.14.14-200.fc34.x86_64 #1 SMP Wed Oct 20 16:15:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

@m-yosefpor Could you run pwru on the service endpoint node: pwru --filter-dst-ip=<IP_ADDRESS> --output-tuple and provide the output?

after switching from host Legacy routing to native BPF, the issue resolved.

after switching from host Legacy routing to native BPF, the issue is resolved.

@m-yosefpor Thanks for the update. I think what was happening in your case that some iptables rule was getting into the SNAT-ed reply's way. The BPF host routing should make the reply to bypass the iptables rules.


Feature Request: Ability to join groups in serverless/no-hub scenarios

Being able to implement serverless SignalR scenarios (as in this sample) is a very useful feature of Azure SignalR.
One missing feature, though, is the ability to add users to groups (since a server-hosted hub is needed for that). It would be useful to have a mechanism for grouping connections so that SignalR messages sent via the REST API could be sent to certain groups of users.
Some ways this might work could be by adding an 'on connected' web hook that would allow an Azure Function to group connections or perhaps by allowing clients to add themselves to groups.

@mjrousos Thanks for proposing this feature request!
We actually have been discussing this internally. However this is not of high priority due to our limited bandwidth. I will bring up this again within our team.
We will update here if there is any progress.

It would be a good feature. Also it would be great if there was an ability to send messages to clients directly without broadcasting using their connectionId.

Some update on this:
We are considering exposing a new REST API to add a specific user to a group. Instead of passing the connection Id, you pass the user's unique Id in your HTTP request. The reason to use user Id instead of connection Id is, in server-less scenario, server code (in Azure Functions or other places) can't get the connection Id. But user Id of each client can be passed to Azure SignalR Service through JWT token in the authentication phase.
However it is still in discussion, it is not finalized yet.

@denismaster You can use this API to directly send messages to a user. Prerequisite is including a NameIdentifier claim in the JWT token for each client, so that Azure SignalR Service can find target connections by user Id.

@xscript You saved my life! Thank you very much!

Huge 👍 here for endpoints to manage group membership by user id. Group membership is the only thing I need a hub context for today.

What about sending a message to a group from an Azure Function? Sample use case would be invoking a Function that validates a move in a game (like chess) and if it is a valid move informs all connected clients of the current game (joined to a SignalR Group) of the outcome. Or a record in CosmosDB being updated and a Function gets invoked to notify client connected to a group about the update.
When I have tried to use the REST API, I get a Bad Request response when attempting to invoke the /api/v1-preview/hub/{hub}/group/{group} endpoint. What am I missing that isn't defined in the swagger file (like claims in the JWT token, etc). Being able to call into SignalR Service for these scenarios would remove the need to have a Web App that proxies the calls into SignalR (and greatly reduce cost).

@KyleKorndoerfer Have you checked the response body when you met Bad Request error? The error message should tell you which part of your request is invalid.

@xscript I couldn't get the body of the response in the stack trace but after a few attempts through Postman I was able to deduce what the error was in the requests and it appears to have sent a valid message through (2xx response). My next step is to validate everything end-to-end with connected clients to ensure the message arrives. Thanks for the nudge!

Any new about this feature? I really wait for the grouping in Azure SignalR Service...

@castics I noticed there was a line saying this was supported in the GA announcement blog post. Have not had a chance to try it yet over here.

The generally available service also supports more REST APIs to enable adding users to a group, and to improve the broadcast scenario support and support for port 443 (secure HTTP).

@castics @johlrich A new REST API has been added to enable adding user to group. It is documented at here.
You can create a new instance to try it out.
And we are still working in progress to refresh all existing instances. So it might not work in existing instances in some regions.
We will update here once all instances in all regions are updated.

Great, tested, it works like a charm!
But, one question about group memberships expiration, what is the algorithm when and with what condition does it happen?

@castics
LRU (least recently used) algorithm will be used to clean up groups which are not used recently, when storage is under pressure. So the exact timing depends on how you use the service.
The best practice is explicitly adding/removing user to/from the group with the two REST APIs at here.
We will consider adding proactive expiration of user's group membership. For example, a user can probably be cleaned up if no new connection with the user id has connected to SignalR Service for a day. Implementation details will be further discussed internally.
But even the proactive expiration is added in the future, we still recommend to explicitly adding/removing user to/from the group. It will be tricky to figure out whether the group membership is expired or not.

We have updated all instances in all regions to the latest, meaning all instances support this feature now.
Close this issue.

@xscript If you are using LRU to clean up, how do i know if you magicly removed a user from a group or removed a group?
Can i rely on, after added the user to a group that I can send a message to this group ? or do i need to periodic add users to groups to be sure? (little confused here about your statement ).

@pksorensen Right now the whole group will be removed if there is no activity on this group, which is not correct. We are actively fixing this behavior. The fix will only remove a user if there is no connected clients for some time.
For now, if you have added a user to a group, you can send a message to this group. The best practice is to call ADD and REMOVE in sequence and in pair. This way, the current implementation wouldn't be an issue to you.

Thanks for the update, sounds like a good adjustment.

Looking for a solution I found this thread and I am sure you know where should I look.
Clients subscribe via REST to a group:  https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<userid>
The Javascript client is connected by var connection = new signalR.HubConnectionBuilder(...
The client gets broadcasted messages with: connection.on('sendMessage', messageCallback);
How can the javascript client get messages broadcasted only to a group?
I followed this example: Azure SignalR Serverless Example


onchange event not working

Hi
Since "locationNameInput" seems not to work anymore I try a workaround with a google.maps.Geocoder Object.
Initialisation of the locationpicker:
    $('#thegooglemap').locationpicker({
        location: {
            latitude: 46.15242437752303,
            longitude: 2.7470703125
        },
        radius: 0,
        inputBinding: {
            latitudeInput: $('#task-location-lat'),
            longitudeInput: $('#task-location-long'),
            // locationNameInput: $('#task-location-name') //seems not to work anymore
        },
        enableAutocomplete: true,
        onchanged: function() {
            console.log('onchanged');
        }
    });

Getting longitude and latitude for the address:
    function getLocationCoords(callback) {
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({
            'address': "" + $("#task-location-name").val() + ""
        }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                callback(results[0].geometry.location.lat(), results[0].geometry.location.lng());
            } else {
                alert("Something got wrong " + status);
            }
        });
    }

When the inputfield of the addressname changes, then callback the location coordinates:
    $("#task-location-name").change(function () {
        getLocationCoords(setMarkerPosition);
    });

The setMarkerPosition() function outputs the long/lat vaules of the entered address locationname:
    function setMarkerPosition(lat, lng) {
        $('#task-location-long').val(lng).trigger('change');
        $('#task-location-lat').val(lat).trigger('change');
        console.log(`${lat}, ${lng}`);
    }

The problem is, that the onchange event in the locationpicker object does not fire even if I trigger an onchange event with for example $('#task-location-long').val(lng).trigger('change');
When I enter some values manually into the textfield of for example #task-location-long then everything works.
My goal is to update the marker position not only when I enter lon/lat values into the fields but also when I enter a locationname into the locationNameField.
How do I have to do that?

Sorry for my stupidness.
By studying the Code of the script I descovered the "enableAutocompleteBlur" property.
Setting it to "true" and knowing that you have to enter at least 6 characters for a locationname (I tried always with shorter citynames) solves my problem :-)


Comparison to DSUController

Thanks for sharing your project!
When I was looking for smartphone apps providing a DSU server, I found your project and DSUController. Can you point out advantages, disadvantages or differences between your project and DSUController?

Actually my project is a simple software.I don‘t have enough time to maintenance my project. So you can choose what fit you.

Thanks!


Upgrade hive-service-rpc 4.0.0

Why are the changes needed?

Upgrade hive-service-rpc 4.0.0, this is the first step of https://github.com/apache/kyuubi/issues/6252
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Thanks, merged to master. I will prepare the release soon.


Fix build breaking regression

Took me a few days to figure it out; a crime against humanity, but this should fix it. See for reference https://github.com/NixOS/nixpkgs/issues/118722#issuecomment-814881823

Pre-submit checklist:

Branch

[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[x] Relevant tickets are mentioned in commit messages
[x] Formatting, materialized Nix files, PNG optimization, etc. are updated

PR

[x] Self-reviewed the diff
[x] Useful pull request description
[x] Reviewer requested

Pre-merge checklist:

[ ] Someone approved it
[ ] Commits have useful messages
[ ] Review clarifications made it into the code
[ ] History is moderately tidy; or going to squash-merge

Thanks for this @luigy ; interesting, I'll merge #3167.
And re: the devcontainer on CI; if I understand you correctly, then this is already in progress in https://github.com/input-output-hk/plutus/pull/3155.

The devcontainer is large and will be rebuilt every commit, we don't want to clog up the nix store with a copy of it for every single commit.


feat(tree): add component

Tree View:
A tree view widget presents a hierarchical list. Any item in the hierarchy may have child items, and items that have children may be expanded or collapsed to show or hide the children. For example, in a file system navigator that uses a tree view to display folders and files, an item representing a folder can be expanded to reveal the contents of the folder, which may be files, folders, or both.
Structure:

The vwc-tree-view should have a role=”tree”.
The vwc-tree-view-item should have a role=”treeitem”.
role="group" is applied to child tree node containers

Behaviour:

Clicking on a tree item creates a selection
Tree items can only contain text values, no actionable elements, apart from our toggle button, can be placed inside a Tree item.

@AyalaBu Should the selected state look like in option:

Or like in tabs:

In Fast it looks like this:

@AyalaBu How should the chevron look like?
I used chevron-right-solid and rotated it in 45 degrees.

@rinaok
I looked into the issue you presented here,
and I saw a bit different behavior.
Based on these examples you can use the chevrons we have in store:
https://mui.com/material-ui/react-tree-view/
https://w3c.github.io/aria-practices/examples/treeview/treeview-navigation.html
But also there is this example:
https://w3c.github.io/aria-practices/examples/treeview/treeview-1/treeview-1a.html
I think in a situation like this you can use a "+" and a "-" icons.

@rinaok I took the liberty to fix your tests import and added an example of key testing in tree-item.spec.ts


Softmax function

The implementation is not very efficient and it doesn't fully support GPU, because we lack some functionality. However, it seems to work so far :)
I or someone else can add autograd functionality in a different PR. Please do review!

For some reason, it is Sigmoid functions, which are failing. It seems that children_indices is null. I shouldn't have changed anything that can break this functionality.
Anyone have an idea?


Justification of html_root_url is missing nuance

cc https://github.com/rust-lang/api-guidelines/issues/75, @dtolnay
From https://github.com/env-logger-rs/env_logger/issues/185:
The scenario where this goes wrong (assuming you're the author of env_logger and not using html_root_url) is:

Another downstream crate uses env_logger as a dependency
downstream re-exports or in some other way links to env_logger
A user or developer of downstream builds documentation locally with cargo doc --no-deps (without --extern-html-root-url, because in practice no one but docs.rs does that).

Then the links to env_logger will be broken. But there's a simple fix and the fix is to remove --no-deps. Is this really so common that it's worth recommending that library authors use html_root_url?
Note that I'm hoping to fix this properly in cargo instead: https://github.com/rust-lang/cargo/issues/8296

Note that this has nothing to do with docs.rs, docs.rs passes --extern-html-root-url which always overrides any html_root_url you declare yourself.

I'm pretty sure this guideline was created in a time where not specifying html_root_url was more problematic than it is today. But I can't remember the details to be honest. I don't think I use it in any of my crates and I've never heard any complaints.

Oh hmm - I think when it was originally written rustdoc didn't support --extern-html-root-url, so docs.rs did need it. But that's not the case any more.
Should I make a PR removing the recommendation?

Oh heh - it has a comment pointing to https://github.com/rust-lang/rust/issues/42301, which I closed as wontfix a few days ago.

Oh hmm - I think when it was originally written rustdoc didn't support --extern-html-root-url, so docs.rs did need it. But that's not the case any more.
Should I make a PR removing the recommendation?

I'm not even sure docs.rs was even around back then. But I can't remember. :)

For what it's worth I'm fairly certain most crates (including all of mine) don't use this attribute, and I have never had an issue with links not working exactly as expected.

Sounds like we should remove the recommendation then! It's a bit of a footgun that we don't need anymore.

Actually, since we have just been talking about the way we make decisions on this repo I should try actually follow what we set out and kick off an FCP!
@rfcbot fcp merge
I propose we remove the guideline recommending html_root_url as it's no longer necessary.

@rfcbot fcp merge
I propose we remove the guideline recommending html_root_url as it's no longer necessary.

Guess I'd better go find out why @rfcbot doesn't want to hang out here

👀 @rfcbot unchecked @BurntSushi 's checkbox

Weird. I just checked it again.

Oh wow... It did work 😮

Also note there was some lengthy discussion in #230 about this and its implications for non-Cargo build systems.

It unticked @sfackler 's box too! 😕

My apologies of this is not the right place to raise this... admittedly, this is a minor gripe, given it only affects local documentation, but I personally prefer to use --no-deps because I don't like the clutter of crates listed on the left-hand side.
I'll agree it makes sense to reduce the effort involved in making a "good" library, but is there some alternative that keeps these links (even to local documentation of dependencies, if need be), without cluttering the left-hand side?

I also frequently build with --no-deps, but at the same time tend to forget to update the html_root_url when cutting new releases so I've started removing them.
One option could be for Cargo to start passing --extern-html-root-url based off of the crate's configured docs link (or defaulting to docs.rs) since it already has that information. It wouldn't be totally accurate since the docs link may not point to the index of the rustdocs but it'd be better than nothing.

I'll agree it makes sense to reduce the effort involved in making a "good" library, but is there some alternative that keeps these links (even to local documentation of dependencies, if need be), without cluttering the left-hand side?

Yes, -Z rustdoc-map: https://github.com/rust-lang/cargo/issues/8296

I'll agree it makes sense to reduce the effort involved in making a "good" library, but is there some alternative that keeps these links (even to local documentation of dependencies, if need be), without cluttering the left-hand side?

Yes, -Z rustdoc-map: rust-lang/cargo#8296

Given I work solely in Stable, effectively no... but I've watched that issue now (I missed the reference in the OP before).

I also frequently build with --no-deps, but at the same time tend to forget to update the html_root_url when cutting new releases so I've started removing them.

As a side-note: that is why I created the version-sync crate. It makes it trivial to add an integration test which will fail if you forget to update the html_root_url (or any other piece of text which mentions the version number).

#230 was merged, this can be closed.


FC2 Feedback:  if you could zebra-stripe every other results row's background color (alternating between white and very light grey, for example) that would make it easier to read

Right now the rows do light up with a different background color if you mouseover them, but I think static striping would be better.

We already have striped table style available. The colour would probably need overriding — currently pale yellow — but that could create another issue ...
The striped style does not remove the row highlighting: this style would have to be written out if we stripe with light grey (and white).

I don't see stripes of any colour (chrome or comodo). do we need testing on other browsers?

@PatReynolds Yes, the striping is available, but we don't use it currently. The colour is currently a pale yellow: this is what it would look like, here on a Search Results table (using the new colour scheme):

We can alter the colour to suit, naturally. To be unambiguous on all the sites it would be best to avoid all of our project colours (teal, magenta, lavender, turquoise), which leaves the pale yellow/orange part of the spectrum to choose from, plus pale grey.
The row highlighting will continue to be effective, unless we choose a grey to stripe with: or we change the highlighting colour. The row-highlighting styling is pure inuit: it cannot be eradicated, but we could effectively disable it by setting the highlight colour to transparent/white.

I'm happy with primrose (the colour you have here) for the stripes.  Probably need to test mock ups of this vs no stripes with users.

Try looking at those yellow stripes for any length of time — it did my nut in!!
Having spent some time experimenting with stripe colours, as opposed to theorising(!), I concluded that those nearer to grey (i.e. more neutral) than the yellow were more comfortable. For example:

However, light grey is the most comfortable of them all, but then ...

If we are inclined to use static striping for some Researcher tables, then I suggest that striping should be part of a comprehensive review of table styling, both for Researchers and Members. In other words, take this user's expression of dissatisfaction seriously, but not necessarily their 'solution' — they may know more than us about UI design, but my guess is not. For example, I bet that centred content in table cells causes more problems with scanning entries than does a lack of striping — after all, we do use cell borders. (I am aware that this para is not worded very well, but I hope you get the gist — it would be unwise to consider striping in isolation.)

Apologies for using FreeREG example for FreeCEN issue. But ...

To continue reviewing - perhaps to roll out as a tet with the zebra suggestion, or finding an alternative solution based on Alison's comments/thoughts.

Something similar is being implemented on FreeBMD2, and could be used on other projects.


motion 4.3.1 -> 4.3.2

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@ajs124

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

1 package built:

motion


FieldResolver populates already populated fields

Whenever a field resolver tries to populate an already populated nested field, it throws a "Maximum Call size exceeded Error".
Steps to reproduce

generate JWT of a new user
use authUser mutation and request for clubAccess

Fix
The field resolvers should be intelligent enough not to populate the already populated objects which not only would avoid the error, but also helps the datasources send in the populated nested field if it already has it.

Exploring ways of resolving this with dataloaders


Not clear how to narrow BuildModelDefaultResponse | BuildModelLogicalResponse when using await poller.pollUntilDone()

Is your feature request related to a problem? Please describe.
Based on the documentation regarding the migration to  '@azure-rest/ai-document-intelligence' from  '@azure/ai-form-recognizer'. https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/documentintelligence/ai-document-intelligence-rest/MIGRATION-FR_v4-DI_v1.md
I do something like this:
  const poller = await getLongRunningPoller(client, initialResponse)
  const response = await poller.pollUntilDone()

  const analyzeResult = response.body?.analyzeResult

The error appears since response has a type of BuildModelDefaultResponse | BuildModelLogicalResponse.

These are the definitions
export declare interface BuildModelDefaultResponse extends HttpResponse {
    status: string;
    body: ErrorResponseOutput;
}

/** The final response for long-running buildModel operation */
export declare interface BuildModelLogicalResponse extends HttpResponse {
    status: "200";
}

I assume the idea here is that the client can do something like
if (response.status === '200') {
// response is narrowed to BuildModelLogicalResponse
}

But that doesn't work.
The only solution I've seen in the docs is to use type assertions. But that breaks type-safety.
Describe the solution you'd like
I would like to know how to narrow the type of the response to BuildModelLogicalResponse
Describe alternatives you've considered
This can be overcome using // @ts-expect-error or something similar.
Additional context
Done above.

My understanding is that you can disambiguate by doing something like
if (isUnexpected(initialResponse)) {
  throw initialResponse.body.error;
}

Since isUnexpected will take care of the default/error case and narrow to the successful result.

Thanks @xirzec, that should do it.
@nicu-chiciuc thanks for reaching out. You can also refer to examples at https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/documentintelligence/ai-document-intelligence-rest/samples/v1-beta

@xirzec I also use isUnexpected for the initialResponse. The issue is was about the await poller.pollUntilDone().
Using it for the poller response solves the issue I thought I had (it narrows toBuildModelLogicalResponse), but the body is still unknown.

@HarshaNalluru the example I've seen use type assertion for this:

https://github.com/Azure/azure-sdk-for-js/blob/e798d4749ce98577b7b446b13e5eca0a75036903/sdk/documentintelligence/ai-document-intelligence-rest/samples/v1-beta/typescript/src/extractLayout.ts#L38
https://github.com/Azure/azure-sdk-for-js/blob/e798d4749ce98577b7b446b13e5eca0a75036903/sdk/documentintelligence/ai-document-intelligence-rest/samples/v1-beta/typescript/src/classifyDocument.ts#L38

As can be seen from this search: https://github.com/search?q=repo%3AAzure%2Fazure-sdk-for-js+path%3Adocumentintelligence+path%3Ats+"pollUntilDone()"&type=code
There is not a single example that doesn't rely on type assertion.
Currently I use @ts-expect-error since type assertions hide that it's an error:
Here's the full code for the function.
export async function extractUsingAiIntelligenceMarkdown(url: string) {
  const credential = new AzureKeyCredential(envs.AZURE_FORM_RECOGNIZER_KEY)

  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-ignore - This doesn't show an error, but will fail for Next.js since Next.js imports this project !?!
  const client = DocumentIntelligence.default(envs.AZURE_FORM_RECOGNIZER_ENDPOINT, credential)

  const initialResponse = await client.path('/documentModels/{modelId}:analyze', 'prebuilt-layout').post({
    contentType: 'application/json',
    body: {
      urlSource: url,
    },
    queryParameters: { outputContentFormat: 'markdown' }, // <-- new query parameter
  })

  if (isUnexpected(initialResponse)) {
    throw initialResponse.body.error
  }

  const poller = await getLongRunningPoller(client, initialResponse)
  const response: BuildModelDefaultResponse | BuildModelLogicalResponse = await poller.pollUntilDone()

  // @ts-expect-error https://github.com/Azure/azure-sdk-for-js/issues/30019
  const forcedResponse: GetAnalyzeResult200Response = response

  const content = forcedResponse.body?.analyzeResult?.content ?? ''

  return content
}

Relying on type assertion is not type safe and can/will introduce errors.


Kudamono Theme

{:name "Kudamono Theme"
:version "0.0.1"
:author "Zach Stone"
:source "https://github.com/zachstone/kudamono-lighttable-theme"
:desc "A very colorful theme designed for Clojure."
:behaviors "kudamono.behaviors"}
Thanks! And is this what everyone has to do?

Thanks! "Everyone has to do" meaning how do you request a submission? Per the readme, submitting a url and version is all we need

To distribute the plugin I'll need you to git tag 0.0.1. Not seeing any tags for your plugin

I was just asking if this is the process everyone goes through to submit a plugin, but I assume it is. And I saw that I only needed those 2 items, but noticed that most others were pasting the entire plugin.edn. Anyways, I added the 0.0.1 tag. Thanks again.

Ah gotcha. Released. Look forward to trying out your theme


Addressing two small regressions

Encountered a couple issues when attempting to build master and deploy it as my ALB Ingress Controller.
Environment details: I'm testing with a Kops (1.9.0) deployed cluster on top of AWS, using CNI and a private topology (Weave as my networking layer).
Both issues look to be fairly recent regressions.
Issue 1: After a recent code update, the cluster name is no longer passed explicitly to the ParseAnnotations method; rather the value is attempted to get grabbed directly from an ingress type in a nested object. In my testing, I found the clusterName was not available in that type. This broke the controller's ability to find properly tagged subnets to deploy an ALB into since the clusterName was nil.
Issue 2: In my testing, the master branch build of the controller would crash with a seg fault when attempting to deploy an ingress/ALB that did not already exist. This looks to occur because another recent commit attempts to grab a target group Arn for a target group that does not currently exist. Added some safety logic around that call.
Commit comments:
Added clusterName back to Annotation Parser.
Added check for if current TargetGroup exists before attempting to retrieve its Arn.

For issue 2, I believe that was already fixed with #384

It looks like the commits may have been made with an email address not associated with the signed CLA too, @GeekyTex

Both of these have been resolved as of #418. Thanks!


build: Update dependencies

As https://github.com/wdhongtw/vscode-gpg-indicator/pull/46#issuecomment-1449671426 said, this is the separate pr for the chore job. @wdhongtw

@wdhongtw The development is nearing completion, I will test the new codes this night on my local machine.
If we can take a look at this pr and merge it, I think I can make a new pr tomorrow.

@AnnAngela
package.json package-lock.json and eslintrc.json all have a bunch of whitespace changes (from tab to space).
These are introduced by auto-formatting feature I think? I would like to avoid unnecessary line diffs.

@AnnAngela
package.json package-lock.json and eslintrc.json all have a bunch of whitespace changes (from tab to space).
These are introduced by auto-formatting feature I think? I would like to avoid unnecessary line diffs.

No, it's done by npm itself automatically. And I think this is a one-time change, sorry for the inconvenience.

looks good to me :D


Switched to http-server

Can read more here https://discord.com/channels/713503345364697088/872280248807469106/916914275061207090
fixes #4

thank you :D


Change result_screenshot_dir default from None to ''

Refs #1

Thanks @ninz I did not realize you had opened this already so I apologize for not getting to it sooner.  I'll publish the new version to pypi now.


[ROCm] add support for ROCm/HIP device

To build for ROCm:
./helpers/hipify.sh
mkdir build
cd build
cmake -DUSE_ROCM=1 ..

CUDA source files are hipified in-place using the helper script before running cmake.  The "cuda" device is re-used for rocm, so device=cuda will work the same for rocm builds.
Summary of changes:

CMakeLists.txt ROCm updates, also replace glob with explicit file list
support both warpSize 32 and 64
helpers/hipify.sh script added
.gitignore to ignore generated hip source files *.prehip
disable compiler warnings
move __device__ template function PercentileDevice into header
bug fixes for __host__ __define__

@jeffdaily Thank you, this is very exciting! @jameslamb ROCm is the counterpart of CUDA for AMD GPU. I don't have any prior discussion with @jeffdaily about this. But it is very exciting if we can enlarge the devices supported by LightGBM.

Apologies for coming out of nowhere with this.  We use LightGBM; the OpenCL-based 'gpu' device already works on our AMD GPUs.  But we were curious if we could get better performance if we ported the 'cuda' device to AMD GPUs.  This started as a proof of concept, but it seemed useful to share even in its current state.
Using the GPU-Tutorial, here are my results on our MI210.

what is evaluated
CPU
GPU/OpenCL
"cuda" but really ROCm

correctness
auc : 0.82126818.547533 seconds
auc : 0.82126820.386780 seconds
auc : 0.8212689.049307 seconds

speed objective=binary metric=auc
22.604444 seconds
18.028674 seconds
7.787303 seconds

speed objective=regression_l2 metric=l2
18.961535 seconds
14.491217 seconds
7.871302 seconds

what is ROCm/HIP? Where can we read to learn more?

https://rocm.docs.amd.com/en/latest/rocm.html

what is the value of this addition to LightGBM's users? What does this offer that the OpenCL-based and CUDA-based builds of LightGBM don't already offer?

See the perf results from the comment above.

this project's OpenCL-based GPU build is already struggling from a severe lack of maintenance... I'm very skeptical of taking on a third GPU build
how might we test this? What types of devices should we expect to be supported?

Here is the current list of supported AMD GPUs.
To test this, you'll need to run on one of the supported AMD GPUs.  How is the cuda device currently tested?

Thank you and kudos Jeff!
This work has been much needed!
Best regards,
Ismail

To test this, you'll need to run on one of the supported AMD GPUs. How is the cuda device currently tested?

We run a VM in Azure with a Tesla V100 on it, and schedule jobs onto it via GitHub Actions.

example build link: https://github.com/microsoft/LightGBM/actions/runs/6123938185/job/16622920873#step:5:34-51
configuration: https://github.com/microsoft/LightGBM/blob/04b66e066228a947e5d713626e5b14439ada0909/.github/workflows/cuda.yml#L25

Are you aware of any free CI service supporting AMD GPUs? Otherwise, since I see you work for AMD and since merging this might further AMD's interests... would AMD maybe be willing to fund testing resources for this project? Maybe that's something you and @shiyu1994 (the only maintainer here who's employed by Microsoft) could coordinate?

Are you aware of any free CI service supporting AMD GPUs? Otherwise, since I see you work for AMD and since merging this might further AMD's interests... would AMD maybe be willing to fund testing resources for this project? Maybe that's something you and @shiyu1994 (the only maintainer here who's employed by Microsoft) could coordinate?

Microsoft does have an AMD GPU deployment.  I'm aware of it being used for onnxruntime CI purposes.  I wonder if some of those resources could be used here?  @shiyu1994?

Noting that the only CI failure currently is not related to my changes. It seems to be a perhaps temporary environment setup issue for that job.

I have access to some AMD MI100 GPUs. But we still need separate budget for an agent with an AMD GPU if we want to test automatically in ci. Do you think it is acceptable if I run the tests for AMD GPU offline without an additional agent for ci? Given that the code for GPU version is shared by both CUDA and ROCm. @jameslamb @guolinke @jeffdaily.

Do you think it is acceptable if I run the tests for AMD GPU offline without an additional agent for ci?

If you feel confident in these changes based on that, and you think the added complexity in the CUDA code is worth it, that's fine with me. I'll defer to your opinion.
But without a CI job, there's a high risk that future refactorings will break this support again.

I dismissed my review, so that it doesn't block merging. My initial questions have been answered, thanks very much for those links and all that information!
@shiyu1994 and @guolinke seem excited about this addition... that's good enough for me 😊
I'll defer to them to review the code, as I know very little about CUDA.

@jeffdaily Thanks for the great work! I'll review this in the next few days.

It's a pity that such wonderful PR was abandoned! 😢
Quite interesting that HIP code can be run on NVIDIA cards!
https://rocm.docs.amd.com/projects/HIP/en/docs-6.0.0/how_to_guides/install.html
https://github.com/ROCm/HIP/issues/3310
I believe that we'll be able to run HIP code on our NVIDIA CI machine. It's not perfect and doesn't guarantee that code works well on AMD, but at least it guarantee that code isn't broken.

It's a pity that such wonderful PR was abandoned! 😢
Quite interesting that HIP code can be run on NVIDIA cards! https://rocm.docs.amd.com/projects/HIP/en/docs-6.0.0/how_to_guides/install.html ROCm/HIP#3310
I believe that we'll be able to run HIP code on our NVIDIA CI machine. It's not perfect and doesn't guarantee that code works well on AMD, but at least it guarantee that code isn't broken.

I'm picking this up. Let's merge this recently.

@shiyu1994

I'm picking this up.

That's just awesome! Thanks!

@jameslamb Hi James, you may review this now. The CI issues have been fixed.

It's a pity that such wonderful PR was abandoned! 😢
Quite interesting that HIP code can be run on NVIDIA cards! https://rocm.docs.amd.com/projects/HIP/en/docs-6.0.0/how_to_guides/install.html ROCm/HIP#3310
I believe that we'll be able to run HIP code on our NVIDIA CI machine. It's not perfect and doesn't guarantee that code works well on AMD, but at least it guarantee that code isn't broken.

What about we enable this with a separate PR.

@shiyu1994

What about we enable this with a separate PR.

Yeah, I support separating PRs: this one with modifications of CUDA files and CMake, a following-up PR with CI jobs for ROCm and hipifying scripts.


Missing apple emoji

Not sure what was different but on both master and #152 there were a bunch of the new images missing, looks like anything with a skin tone modifier, the pirate flag and the chess pawn. See the question marks in the apple sheets, _UNKNOWN.png files in img-apple-160, has_img_apple=false in the json etc. When I run the extract.pl script on the font file locally I do get these images generated.
Possibly an outdated font file, or possibly a missed re-run of build_map.php as outlined in build/apple/README.md
Anyway here are the missing apple images, new sheets, json and preview table, optimised using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>on a mac.

@iamcal Anything preventing this from getting merged? As far as I see this here blocks a release with Emoji 11 support. (https://github.com/iamcal/emoji-data/issues/145)

This is fixed in the v12 branch - see #165


First Page

Signed-off-by: shivaram33<EMAIL_ADDRESS>

fixed firstpage


Follow general guideline: containerd and kubelet should share the same kubereserved cgroup

The kubernetes General Guideline explains that the kubelet and the container runtime should share a cgroup slice.
The design proposal for node-allocatable resources also suggests that both kubelet and containerd are to be put into the same cgroup, and that kubelet should share it's reserved resources with the container runtime.

Following is the recommended cgroup configuration for Kubernetes nodes. All OS system daemons are expected to be placed under a top level SystemReserved cgroup. Kubelet and Container Runtime are expected to be placed under KubeReserved cgroup. The reason for recommending placing the Container Runtime under KubeReserved is as follows:
A container runtime on Kubernetes nodes is not expected to be used outside of the Kubelet.
It's resource consumption is tied to the number of pods running on a node.

Right now I'm seeing that this is not the case with the EKS AMI when running with default userdata: The cgroup tree is roughly like this:
/
├─runtime.slice
│   └─kubelet.service
└─system.slice
     └─containerd.service

While it should look like this instead:
/
└──runtime.slice
    ├─containerd.service
    └─kubelet.service

Related docs:
https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#general-guidelines
https://github.com/kubernetes/design-proposals-archive/blob/main/node/node-allocatable.md#recommended-cgroups-setup

Interestingly, looking at the containerd unit on an EKS-AMI node, I see this when I cat the containerd systemd config:
$ sudo systemctl cat containerd
# /usr/lib/systemd/system/containerd.service
# Copyright The containerd Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target

# /etc/systemd/system/containerd.service.d/00-runtime-slice.conf
[Service]
Slice=runtime.slice
# /etc/systemd/system/containerd.service.d/10-compat-symlink.conf
[Service]
ExecStartPre=/bin/ln -sf /run/containerd/containerd.sock /run/dockershim.sock

Which shows the Slice config being correct. But the effective config is still the system.slice:
$ systemctl status containerd
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/containerd.service.d
           └─00-runtime-slice.conf, 10-compat-symlink.conf
   Active: active (running) since Thu 2023-09-21 09:10:59 UTC; 3min 23s ago
     Docs: https://containerd.io
  Process: 7141 ExecStartPre=/bin/ln -sf /run/containerd/containerd.sock /run/dockershim.sock (code=exited, status=0/SUCCESS)
  Process: 7139 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 7143 (containerd)
    Tasks: 150
   Memory: 1.2G
   CGroup: /system.slice/containerd.service
           ...

Seems like there was an attempt to fix it previously:  #1051

It seems like the boostrap.sh script is setting that systemd drop-in file:
https://github.com/awslabs/amazon-eks-ami/blob/2b5e6eea3695747780434c5d47750fc27a7685c1/files/bootstrap.sh#L560C1-L561

Might be a systemd bug: https://github.com/systemd/systemd/issues/3240
Got fixed in systemd 230

CC @cartermckinnon @bwagner5

In my PR I moved the slice configuration to AMI build time, because it seems like systemd doesn't allow for reconfiguring a unit's cgroup slice once they got a slice assigned.

@reegnz I suspect that something has changed since #1051 to cause a regression as the correct behaviour was validated before it was merged. I can back up your suggestion that the slice can't be migrated though, as I couldn't patch a running node to use the runtime slice.
RE changes to the configuration. AFAIK the original plan was to tidy all of this up once Docker was removed and conditional logic was no longer needed.

Yeah I also thought it is a regression when I saw your PR.

I agree with your assessment @reegnz, this seems to be caused by the systemd bug. In the original PR, @stevehipwell wasn't able to get this to work with a dropin, and when I tested manually I was modifying the main service unit (which works as expected). I think it was just a miss in the original PR, not a regression.
I think we can just append the content of the dropin to the main unit file instead, seems to work in a quick test. Feel free to PR it, or I'll get to it tomorrow.

@cartermckinnon I tested the Packer build (and I think the released AMI) for my PR and the slices were configured correctly. I couldn't test my code on a pre-built and registered node as the slice wouldn't change. Based on this I think it looks like a regression, but testing the AMI built after my PR would confirm this. I'm on annual leave until next week so I can't test this either way until I get back.

v20230127 is the first release I see this commit in: https://github.com/awslabs/amazon-eks-ami/commit/c0318dae76b5cef29e506b2a6b1cd9a1ee2afb13
And it has the issue.
The only way I can get containerd to start under the right cgroup is by appending:
[Service]
Slice=runtime.slice

to the main unit file, /usr/lib/systemd/system/containerd.service, and restarting it. The issue @reegnz found with dropin units seems to be the problem.

@cartermckinnon that's odd given the PR was tested as working. Do drop ins work correctly if the unit hasn't already been started?
I assume that any fix would need to be conditional as it looks like Docker is still supported? I know that you closed #1220 but if the primary unit file needs modifying conditionally then maybe it needs revisiting?

@cartermckinnon
I think if we can bake the drop-in during AMI baking instead the systemd issue won't happen.
The root cause of the issue is that containerd is already running when we put the drop-in config into it's place, and by that time the cgroup slice has already been realized.
If the config is read at startup, the issue won't happen.
The solution is to do the fix at bake time. It doesn't matter what file you patch during cloud-init, it won't work.

Also about being conditional when runtime is docker: today containerd is unconditionally baked into the AMI. IMHO this drop-in file also can be applied to containerd unconditionally.
Switching between the runtimes is not a bake-time problem, but a cloud-init time decision on which kubelet should use.

The root cause of the issue is that containerd is already running when we put the drop-in config into it's place, and by that time the cgroup slice has already been realized.

In my tests, a daemon-reload and systemctl restart containerd didn't fix the issue, which I would expect to work. If you systemctl kill containerd, that seems to do the trick, but we obviously don't want to do that during bootstrap. I'm totally on board with doing this config at build-time.

Also about being conditional when runtime is docker: today containerd is unconditionally baked into the AMI. IMHO this drop-in file also can be applied to containerd unconditionally.

We only use runtime.slice for kubelet on k8s 1.24 and above, so we should do the same with containerd.

We only use runtime.slice for kubelet on k8s 1.24 and above, so we should do the same with containerd. The --container-runtime bootstrap flag has no effect on 1.24+, because containerd is the only option.

@cartermckinnon doesn't this invalidate your previous statement about making this change at build time? The reason this was implemented as drop ins in the first place was due to the difference between using Docker and Containers as the CRI.

Yes, my point was that on 1.24+ we know Docker won't be used as the runtime. We can apply the config at build time.
It sounds like we don't have a way to apply this config at runtime on 1.23 when --container-runtime is containerd. It'd be nice to fix this before 1.23 goes EOL in 19 days, but I'm not sure it's worth some additional complexity at bootstrap-time.

@cartermckinnon @reegnz have either of you investigated switching the drop-in pattern to modifying the primary systemd unit file? If it worked this would be a minimal change and as the runtime configuration logic ought to be removed once v1.23 support is dropped it wouldn't have a long life.

@stevehipwell I did try modifying the primary unit file as well to no avail, since the root of the issue is not where the configuration is read from, but that it cannot be changed once the unit has started for the first time.


Add inline variable refactor

Fixes #18459

@andrewbranch I've added a couple more tests with more complex scenarios like call expressions. LMK what you think :)

I still think inlining a multi-line expression would be good to test:
function Component() {
  const onClick /*inline me*/ = () => {
    console.log("clicked");
  };
  return (
    <button onClick={onClick}>
      Do useful thing
    </button>
  );
}

@typescript-bot pack this
@typescript-bot user test tsserver
@typescript-bot test tsserver top100

I SAID
@typescript-bot pack this
@typescript-bot user test tsserver
@typescript-bot test tsserver top100

That's what I thought.

Here's a fun one I just tried out:
const /**/yadda = () => yadda;

Error: Debug Failure. False expression: Changes overlap
Verbose Debug Information: {"pos":4,"end":29} and {"pos":24,"end":29}
    at c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:166694:15
    at mapDefined (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:2644:22)
    at Object.getTextChangesFromChanges (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:166690:12)
    at ChangeTracker.getChanges (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:166587:35)
    at ChangeTracker.with (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:166071:20)
    at Object.getEditsForAction (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:136427:60)
    at Object.getEditsForRefactor (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:135605:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:142982:32)
    at IpcIOSession.getEditsForRefactor (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:182282:49)
    at getEditsForRefactor (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:180538:43)
    at c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:182666:69
    at IpcIOSession.executeWithRequestId (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:182658:14)
    at IpcIOSession.executeCommand (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:182666:29)
    at IpcIOSession.onMessage (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:182708:51)
    at process.<anonymous> (c:/Users/Daniel/workspace/node_modules/typescript/lib/tsserver.js:184288:14)
    at process.emit (node:events:513:28)
    at emit (node:internal/child_process:958:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

I think the right thing is just to dismiss anything that appears in its own initializer. That will block off issues with ill-formed code like
const wat = wat;

@typescript-bot pack this

Another thing I tried out was leading trivia not getting carried along.
const a = /*leading*/ 42 /*trailing*/;
const b = a;

I would be okay with punting on that to a future PR if you'd prefer.

Another thing I tried out was leading trivia not getting carried along.

const a = /*leading*/ 42 /*trailing*/;

const b = a;

I would be okay with punting on that to a future PR if you'd prefer.

How do other refactors handle trivia? Do the "move to (maybe new) file" also bring along trivia?
Just asking because I think we should remain consistent. Although sometimes a comment is tightly coupled to the exact implementation (e.g. We need to use a variable in X function so that's why we have this declaration) which the refactor would invalidate...

But I might also be overthinking this 😀

Also, I noticed that if I request an inline at the following position
let/**/ asdasd = 42;

let qwerty = asdasd;

the refactoring is made available, but not elsewhere on the let (e.g. l/**/et asdasd = ...).
I feel like it should either work solely on:

The variable name
The variable name or the variable statement keyword
The entire variable statement

@DanielRosenwasser I believe we should stick with option 1, since there would be an ambiguity about what to inline in cases like let x = 0, y = 1 with the other 2 options.
However, if I change this bit to:
if (isIdentifier(token) && isInitializedVariable(parent) && isVariableDeclarationInVariableStatement(parent)) {

The refactor is still available in let/**/ foo = 0;, since I believe that's leading trivia that belongs to the identifier node. I think this should be fine...?

@typescript-bot pack this

Inlining variable data changes runtime behaviour. Is it bug or design limitation?
const data = new Map()

const getter = () => data.get('foo')

data.set('foo', 'bar')

console.log(getter())