Compute workgroups node parameters

Does compute node have workgroup count and compute program has workgroup size?

yes

In Metal, when we call dispatch, we pass threadsPerGrid (workgroup count) and threadsPerThreadGroup (workgroup size).
If we want to align with Metal, perhaps both params should be part of Compute node.
Also personally I prefer "threadsPerThreadGroup" to "workgroup size": I think it's easier to understand, but either is okay.

In Metal, when we call dispatch, we pass threadsPerGrid (workgroup count) and threadsPerThreadGroup (workgroup size).
If we want to align with Metal, perhaps both params should be part of Compute node.
Also personally I prefer "threadsPerThreadGroup" to "workgroup size": I think it's easier to understand, but either is okay.

How is it in D3D?

Also, we should be able to call the same compute program with different params for work group size, so in that regard it might be better to put work group size in compute node

In DirectX 12 (and Vulkan) you only pass the number of workgroups in dispatch call.  The workgroup size is defined in the shader.

In DirectX 12 (and Vulkan) you only pass the number of workgroups in dispatch call. The workgroup size is defined in the shader.

And what are the name used to refer to the size/count, typically in the limit/capabilities?

In DX12: "numthreads" = workgroup size.  https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-attributes-numthreads.  Max threads is defined in the spec.
In Metal: threadsPerThreadGroup / maxTotalThreadsPerThreadGroup

It looks good to me

In DX12: "numthreads" = workgroup size. https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-attributes-numthreads. Max threads is defined in the spec.
In Metal: threadsPerThreadGroup / maxTotalThreadsPerThreadGroup

OK so, we have 2 things:

the name: we can change that to workgroup_count and workground_size to thread_count and thread_size to match Metal+D3D vs Khronos; usually we go along the Khronos naming for consistency, but we can maybe make an exception (@mbouron-gpsw an opinion?)
the positioning: I still believe we want the group size at the shader level for the reasons mentioned in the commit description (fragility implied by duplication and having it away from the shader); note that both size and count are getting unified internally very quickly: typically the pass merge them.

In DX12: "numthreads" = workgroup size. https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/sm5-attributes-numthreads. Max threads is defined in the spec.
In Metal: threadsPerThreadGroup / maxTotalThreadsPerThreadGroup

OK so, we have 2 things:
* the name: we can change that from `workgroup_count`/`workground_size` to `thread_count`/`thread_size` to match Metal+D3D vs Khronos; usually we go along the Khronos naming for consistency, but we can maybe make an exception (@mbouron-gpsw an opinion?)

I would keep the Khronos naming for consistency unless we also rename NGL_CAP_MAX_COMPUTE_* (and probably our glimits struct as well).

* the positioning: I still believe we want the group size at the shader level for the reasons mentioned in the commit description (fragility implied by duplication and having it away from the shader); note that both size and count are getting unified internally very quickly: typically the `pass` merge them.

No strong opinion here, what is the most convenient for the users. I haven't used extensively compute shaders yet and I can be wrong but it looks like some compute shaders are written against specific workgroup sizes and won't necessarily adapt to "random" workgroup sizes.

"* the positioning: I still believe we want the group size at the shader level for the reasons mentioned in the commit description (fragility implied by duplication and having it away from the shader); note that both size and count are getting unified internally very quickly: typically the pass merge them.
"

We can't unify the size and count, there's a limit on max workgroup size (numThreadsPerWorkGroup), and it can be device specific, at least on Vulkan backend.  The two parameters are different.  Workgroup count defines how many workgroups, and workgroup size defines how many threads per workgroup.

I think the high level API should specify both workgroup size and count.  The 3 backends can have different internal logic.
On Vulkan / Dx12 we can specify the workgroup size in the generated shader, and the workgroup count in the Vulkan / Dx12 API call.  It might be possible to pass the workgroup size using "specialization constants".
On Metal backend we can specify the workgroup size and count in the API call, if I understand correctly.

the positioning: I still believe we want the group size at the shader level for the reasons mentioned in the commit description (fragility implied by duplication and having it away from the shader); note that both size and count are getting unified internally very quickly: typically the pass merge them.

No strong opinion here, what is the most convenient for the users. I haven't used extensively compute shaders yet and I can be wrong but it looks like some compute shaders are written against specific workgroup sizes and won't necessarily adapt to "random" workgroup sizes.

Yeah AFAICT that's the case, because there usually is inter communication between "threads" in the workgroup. And at the above level, workgroups are independent, so their count can be variable. This matches the current vision: size at ComputeProgram level, count at Compute level.
Note that the current proposal doesn't change the existing state: workgroup count is already at Compute level, and the workgroup size is in the shader string of the ComputeProgram: this PR doesn't change this decision.

the positioning: I still believe we want the group size at the shader level for the reasons mentioned in the commit description (fragility implied by duplication and having it away from the shader); note that both size and count are getting unified internally very quickly: typically the pass merge them.

No strong opinion here, what is the most convenient for the users. I haven't used extensively compute shaders yet and I can be wrong but it looks like some compute shaders are written against specific workgroup sizes and won't necessarily adapt to "random" workgroup sizes.

Yeah AFAICT that's the case, because there usually is inter communication between "threads" in the workgroup. And at the above level, workgroups are independent, so their count can be variable. This matches the current vision: size at ComputeProgram level, count at Compute level.
Note that the current proposal doesn't change the existing state: workgroup count is already at Compute level, and the workgroup size is in the shader string of the ComputeProgram: this PR doesn't change this decision.


xfail the fv3run_python_mass_conserving test

For some reason (dependency change?) the test_fv3run_python_mass_conserving test has started failing even on PRs that are completed unrelated. This PR splits that test into two: one that does the metrics validation and one that does the mass check. It xfails the mass check one, although we should probably understand better why this is failing and remove the xfail when possible.

Also, the checksums for the 2D storages are not changing, suggesting it's either an issue with the global mean reduction or with the saving/loading of the globally averaged statistics to the log file.


Support execution without verification

The indexing docproc does not verify statements during setup but just calls setStatementOutput().
I'll change that but this is a quick fix for now.

LGTM, but @geirst please review anyway


Fix NullPointer for shell help command

When you try to run the shell help command you get the exception Object reference not set to an instance of an object.
The reason is that CustomAttributeExtensions.GetCustomAttributes where missing the type where to search
Example:

Getting started with `help`

> help
# LiteDB Shell Command Reference

Object reference not set to an instance of an object.
>

Hi @simonhoss, thanks for this fix


Uncaught error when using MultiWidget

When using a MultiValueField with a MultiWidget widget, assertUniqueName in DjangoFormset.ts throws an error:
Uncaught Error: Duplicate name 'phone_number_0' on multiple input fields on 'phone_number_1'
Example: https://github.com/Actionb/django-formset/commit/6555d75448c78b7c50de316ea6fb979999b67fe6

Did you check the rendered HTML? Each field must have a unique name, otherwise the code responsible for building the submission payload can't (for obvious reasons) work.
Btw. I am planning to create a phone-number widget similar to that of Google in version 1.1 or 1.2.

could you please paste the form using that widget. I will add that to the tests and/or demo.
btw. have you been able to test #57 ? Should imo be fixed.

could you please paste the form using that widget. I will add that to the tests and/or demo.

The form:

Example: Actionb@6555d75

btw. have you been able to test https://github.com/jrief/django-formset/issues/57 ? Should imo be fixed.

I haven't gotten around to it yet. I will check it out next week.

Can you please try again with version 1.0.
This example https://django-formset.fly.dev/model-collections/#one-to-many-relations seems to be the closest from what you describe. There all names are unique together with their parent model object.

I still get the same error:
Uncaught Error: Duplicate name 'phone_number_0' on multiple input fields on 'phone_number_1'
    assertUniqueName http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    Gt http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    assignFieldsToForms http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    connectedCallback http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    connectedCallback http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    <anonymous> http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    promise callback* http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
    EventListener.handleEvent* http://<IP_ADDRESS>:8000/static/formset/js/django-formset.js:25
django-formset.js:25:3447

This doesn't have anything to do with unique togethers or relations (was your comment meant for some other issue perhaps?).
I believe the issue is that assertUniqueName is checking the wrong thing. Contrary to its name, it is throwing an exception when the names of the input fields in a field group are not unique, i.e. when they do not share the same name.
I suppose none of the forms you have worked with had formfields that produce multiple inputs (such as MultiValueField + MultiWidget), so there was never more than one element in a field group and the assertion could never fail.


Support to fvm config json

Motivation
Unfortunately, asdf-vm isn't well known as we wish and usually, people tend to work with the specific language version manager so it's very common to face legacy version files instead of the .tool-versions.
Suggestion
As an asdf heavy user, it would be great if we could experience compatibility with these other version managers when working with legacy_version_files enabled, something similar to what we see on asdf-nodejs handling with .nvmrc or .node-version files.
Straight to the point, I believe it would be great if this plugin was able to handle the version specified on the .fvm/fvm_config.json.
Here's an example of this file:
{
  "flutterSdkVersion": "2.8.1",
  "flavors": {}
}

@oae thanks for your interest!
In my local environment, I build a simple implementation of this feature and I would like to share it here with you.
It worked very well with stable versions, but I don't test it with the other types available on the listing, like pre-beta, beta, dev, etc and that's why I don't make a PR with it.
bin/list-legacy-filenames
#!/usr/bin/env bash

echo ".fvm/fvm_config.json"

bin/parse-legacy-file
#!/usr/bin/env bash

version=$(cat "$1" | jq ".flutterSdkVersion" | sed -r 's/^"|"$//g');
echo "$version-stable";

This would also help for builds on codemagic, they accept setting the flutter version using fvm_config.json


File usability check

Description:
For more information see the link below.
https://github.com/ballerina-platform/ballerina-standard-library/blob/main/docs/library-development-process.md#usability-check

There are no useability issues is in the fie module. Hence closing this issue


doc: preparing for external publication

edits, typos, clarification, flow

superseded by https://github.com/SUSE-Cloud/socok8s/pull/364; changed directory


ERROR in ./node_modules/rxjs/observable/BoundCallbackObservable.js

I get this error when building in Angular 5.0 with Angular CLI 1.5 using --prod flag.
The issue is misaligned Observable and Subject import in MeteorObservable.js, ObservableCursor.js, and zone.js and ObservableCollection.js
Change imports to;
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import { Subscriber } from 'rxjs/Subscriber';
Seen here; https://github.com/angular/angular-cli/issues/7110

Importing from 'rxjs/Observable' will break webSocket functionality

Odd, because it seems to work.  How will it break it?
If I don't maek these changes, I cannot do "ng build --prod" because I get "ERROR in ./node_modules/rxjs/observable/BoundCallbackObservable.js..."

I know about the error and your fix does help, but if you want to use Observable.webSocket, importing from rxjs/Observable does not work. It SHOULD behave the same way as it does when you import from rxjs/Rx, but for some reason it doesn't.
I fixed the issue I had by upgrading to typescript 2.6.1. The production build will work with that typescript version, even if you import from rxjs/Rx


Idea: keyed generic type params like ReactElement<S=UFILikeState>

Here's a thought -- what if you could define just some of the param types of a generic type?
My thinking is that generic types like ReactElement end up with a long list of param types that sometime are tedious to specify. There already is DefaultProps, Props, and State, and soon Context or maybe some Observable type will join the mix too. So if you want to declare the type of a React component that has Context of a certain shape but you don't care/know/want to specify the types of Props, State, etc, it's sort of a hassle. It'd be nice to write ReactElement<C=MyContextType>.
I bet this could help with simpler types like Maps too. Instead of Map<any, string>, one might write Map<V=string>. It does a better job of communicating that the programmer didn't get around to specifying the type of Keys, while with Map<any, string> it's not clear whether the programmer was lazy or actually intended for the Map to accept any Keys.

@ide we recently introduced * as something you could write when you're lazy / want inference to take over, but don't intend any.
So, e.g., you could write Map<*, string> to mean Map<T, string> for some T.
Next, you could define type aliases to make your life easier, like:
MapOf = Map<*, V>
Currently we support leaving out all type params, so something like : Map gets desugared to : Map<,>. We don't support partial instantiation for various reasons, not all of them reasonable (e.g., we have some implementation difficulties as well, in addition to possible programmer confusion). Your idea of named type arguments is excellent, I'll see what I can do.

we recently introduced * as something you could write when you're lazy / want inference to take over, but don't intend any.

Love it! Thanks for the tip!

Closing as the issue was resolved. We’ll continue to think about this feature 😊


Add ip_address to setWebhook method and WebhookInfo class

In Telegram Bot Api 5.0:

A new parameter ip_address was added to the setWebhook method.

Added the parameter ip_address to the method setWebhook, allowing to bypass DNS resolving and use the specified fixed IP address to send webhook requests.

A new field ip_address was added to the WebhookInfo class.

Added the field ip_address to the class WebhookInfo, containing the current IP address used for webhook connections creation.

https://core.telegram.org/bots/api#setwebhook
https://core.telegram.org/bots/api#webhookinfo
We should add support for them.

Closed by #206


Enable analysis tools in odk builds

Enable checkstyle, pmd, and findbugs tools.
Run gradle check to generate analysis results for the odk repository.

@damagatchi retest this please


Remove links to Oracle Java from install instructions

We discussed this week that Oracle are harassing organizations for licensing fees, even for individual users who have downloaded and installed the ‘freely’-distributed JRE.
Most current users who have followed the current, ‘simple’ install instructions will have installed OpenJDK, which is free and open source and not subject to these license fees.
However, we still have links to alternate/backup install instructions, and these currently link to (Oracle's) java.com. We should:

Remove such links and/or provide recommended alternates.
Make users aware that choosing the Oracle JRE are aware of licensing implications.

Is this urgent enough to start immediately or should we first wait to figure out which alternatives are best in-house?


support multiple attacks from different weapons

It would be helpful to be able to calculate the average damage and kill% against a single operative getting shot by two different weapon profiles. For example, a Warpcoven Sorcerer (under the benefit of Exalted Astartes) fires their Warpflame Pistol and Doombolt, both at the same target. What is the likelihood of that target dying from the combination of those two shots?

It just occurred to me I don't need a different tab for this.  With the accordions not taking up much vertical space, I can just put a combo results section under the individual situation results sections.


Update: Skordle Scores Replacements

Description
I have replaced the broken Skordle Scores application with a series of apps for individual sports. They all have similar code with different urls.
Copilot

🤖 Generated by Copilot at d93f4b6
Summary
🏀⚾🥎

This pull request adds seven new Skordle applets for different sports and updates the existing Skordle Scores applet to be a Skordle Football applet. The new applets display games data from the Skordle website for female basketball, male basketball, fast pitch, fall baseball, spring baseball, slow pitch, and softball. The updated applet allows the user to select the football game from the settings and changes the display to match the football theme. Each applet has its own star file and manifest file in the apps folder.

Sing, O Muse, of the skilled and versatile Woolycoin
Who crafted many applets for the Tidbyt device
With starry code and manifest files he made them shine
Displaying Skordle games of various sports and price

Walkthrough

Add eight new applets for different sports from the Skordle website (link, link, link, link, link, link, link, link, link, link, link, link, link, link, link, link)
Rename and modify the original Skordle Scores app to Skordle Football app (link, link, link, link, link, link, link, link)

I'm sorry for all the trouble @matslina! This update should be the last fix for the Skordle application.

Hey. Happy to merge. Only concern is that deleting the original skordle-scores app will make it unavailable for those who've already installed it on their devices.

I suppose I could rename one of the other sport applications to replace skordle-scores. It's not ideal for the naming convention, but it'll do.

This name change should allow people with the skordle-scores app to maintain functionality while adding the others.

Do you think this'll work @matslina?

Hopefully! =)

It seems to have worked!


Add European ICEA Catholic Institute

Institut Catholique Européen des Antilles (ICEA)
URL : https://icea-edu.fr/

@AxelVic972 First stage of verification passed, official domain is icea-edu.fr as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@AxelVic972 Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Conflict between positional encoding and data packing

@musabgultekin  Thank you for your excellent work. I have a question, can you estimate the impact of data packing on model performance compared to not using data packing? Because I think using such data packing conflicts with the model's architecture, specifically Rotary Embedding.

@thi3nnq
The performance is expected to be the same, the packing makes sure that: Given data point A and data point B
Loss(A) + loss(B) = loss(packed(A, B))
And there are no conflicts with the model's architecture. In Rotary Embedding, the hidden representation of token is decided by the token embedding and the relative distance between other tokens in the data point, not the absolute position embedding (note that in ROPE embedding, they don't add: token embedding and postional embedding). You can read more about Rotary Embedding from here: https://blog.eleuther.ai/rotary-embeddings/

Oh, thanks so much!


add more custom emotes

Stick image in kofta/public/emotes and update the list in kofta/src/app/modules/room-chat/EmoteData.ts

Let's keep this under 100 or something

Do GIF emojis work?

@drvladb one way to find out 😄

nice!

Ben, we have 193 emojis, should we add more?

Per recent announcement in #info on discord, no more emojis for now.


Create ISSUE_TEMPLATE.md

Create an ISSUE_TEMPLATE.md file to provide a guide when submitting issues to ITK.

An additional comment as for checking the ITK version: we could run ctest -V -R itkVersionTest -C but looks like an overkill, and the user may not have built the tests/may have had ITK installed (i.e. not compiled). Inspecting the main CMakeLists.txt may be invalid if having ITK installed.
Any thoughts or improvements?

Done. Commit 7970cf06da4da970da10c0bf75d255639e317e26 removes the Label and Milestone sections.
I also changed the section name Platform for Environment. If you think that Platform or any other word like Toolchain for example fits better, let me know.
I also added a note at the bottom to invite users to ask questions in discourse. If you think it requires rewording, let me know.
If you think the style of the comments should be changed (e.g. italics instead of or in addition to square brackets), let me know.

@thewtex Thanks !
I've submitted a topic to gerrit:
http://review.source.kitware.com/#/c/22869/
to further review/merge this. I'm closing this PR then.


Missing github release for 0.26.1

Hello, the release for 0.26.1 is missing from the github releases
Could you add it ?

Ah yeah something went wrong with CI there (doofus here messed up changelog and cargo release action didn't work as a result). I've moved the tag to another commit so once CI finishes it should upload

Aaa didn't mean to close - there is a chance crates.io failing to upload because the release already exists will screw up the release CI. I'll keep watching it with bated breath

Okay it seems to be working and things are uploading - so I'll keep this closed as completed :tada:

One last thing is to mark the new release as latest :wink:

Done!


Extension doesn't work after install

Users on Linux and MacOS are reporting that the extension doesn't work after install:
Steps to reproduce

Install from marketplace
Open Command Palette
Pick "Syntax Tree: Start"
Get error popup

Linux

Mac

VSCode DevTools shows:
Linux
mainThreadExtensionService.ts:111 Activating extension 'ruby-syntax-tree.vscode-syntax-tree' failed: Cannot find module 'semver/functions/parse'
Require stack:
- /home/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/node_modules/vscode-languageclient/lib/node/main.js
- /home/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/node_modules/vscode-languageclient/node.js
- /home/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/out/extension.js
- /opt/visual-studio-code/resources/app/out/vs/loader.js
- /opt/visual-studio-code/resources/app/out/bootstrap-amd.js
- /opt/visual-studio-code/resources/app/out/bootstrap-fork.js.
$onExtensionActivationError @ mainThreadExtensionService.ts:111

Mac
Activating extension 'ruby-syntax-tree.vscode-syntax-tree' failed: Cannot find module 'semver/functions/parse'
Require stack:
- /Users/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/node_modules/vscode-languageclient/lib/node/main.js
- /Users/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/node_modules/vscode-languageclient/node.js
- /Users/user/.vscode/extensions/ruby-syntax-tree.vscode-syntax-tree-0.3.0/out/extension.js
- /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/loader.js
- /Applications/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-amd.js
- /Applications/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-fork.js.

@xfalcox I think it should be working now (or at least it is on my machine). Please let me know if you have any other trouble.


fix user data not being sent

fix a typo on the variable name 😄

Oops! Thank you very much  :smile:


Hysteresis

For example, a thermostat controlling a heater may switch the heater on when the temperature drops below A, but not turn it off until the temperature rises above B. (For instance, if one wishes to maintain a temperature of 20 °C then one might set the thermostat to turn the heater on when the temperature drops to below 18 °C and off when the temperature exceeds 22 °C).
From: https://en.wikipedia.org/wiki/Hysteresis#Control_systems

#4 will help setting the value


Should there be a bundle-push task to align with docker-build and docker-push tasks?

See subject :)

Probably, but since this is an additive change, 1.1 should be fine.

Moving to Backlog since there is some open question about what exactly bundle-push should do (e.g. should it do anything related to adding the bundle to an index image?)

/remove-lifecycle rotten
It shows very easier tasks to be accomplished. So, wdyt we add it in a milestone?
c/c @jmrodri @estroz @asmacdo

I'd rather change BUNDLE_IMG to IMG so you can do the following without adding a new target:
make bundle-build docker-push IMG=foo/bar-bundle:baz

This isn't a breaking change because existing projects won't have to change anything.

The only downside to renaming BUNDLE_IMG to IMG is that if I set an env I could mess myself up by doing make bundle-build IMG=$IMG.
But more than likely I would probably do this:
IMG=my operator image
BUNDLE_ING=my bundle image
make docker-build docker-push IMG=$IMG
make bundle-build docker-push IMG=$BUNDLE_IMG

So I'm OK with renaming BUNDLE_IMG in the Makefile to just IMG.

/remove-lifecycle stale

This was done in #4406


chore( schedule.md): Added Info about Animation Frame scheduler

Description:
Related issue (if exists):

Coverage decreased (-0.2%) to 96.747% when pulling 2d8552ec87b67c36801e9e3997f38aa9f39ad391 on RatnadeepSimhadri:patch-1 into efc36e1166f2c0788b72ec9d2f4c0e6f4a7df70a on ReactiveX:master.

Thanks, @RatnadeepSimhadri


OIDC Login Error on Web UI - "Unexpected Server Error

Problem
The OIDC setup configured in the config.yml works perfectly for adding new devices to Headscale, and API access functions without any issues. However, when attempting to log in to the web UI, I receive an "Unexpected Server Error."
Steps to Reproduce:
Set up OIDC in the config.yml as per documentation.
Successfully add a new device to Headscale using OIDC authentication.
Try to log in to the Headscale web UI using the same OIDC setup.
Encounter "Unexpected Server Error" on the web UI.
Expected Behavior:
I should be able to log into the web UI using OIDC without encountering any errors.
Actual Behavior:
The login attempt on the web UI results in an "Unexpected Server Error," although the OIDC setup works correctly for other functionalities (e.g., adding new devices and accessing via API).
Additional Information:
OIDC works for API access and device addition.
This issue only occurs when trying to log in via the web UI.
Logs (If applicable):
If necessary, I can provide server logs that may help in troubleshooting the issue.
Any ideas on what might be causing the error, or how to troubleshoot further? Thanks in advance!

I'll need logs to be able to determine anything at all. Also can you reproduce the issue with DEBUG=true set as an environment variable so that I can view all possible logs?

Hey,
i tried to narrow down the error a bit, but unfortunately i didn't get any further.
i think it has something to do with the variable ‘ ROOT_API_KEY’ i'm not quite sure what to put in there. i tried it with a random string, the headscale api key, but nothing works.
Registering devices with OIDC works without problems, well... here are the logs
headplane  | 2024-10-12T19:13:20.112Z (INFO) [CTXT] Debug mode is enabled! Logs will spam a lot.
headplane  | 2024-10-12T19:13:20.119Z (INFO) [CTXT] Please disable debug mode in production.
headplane  | 2024-10-12T19:13:20.119Z (DEBG) [CTXT] Checking config at /etc/headscale/config.yml
headplane  | 2024-10-12T19:13:20.120Z (DEBG) [CFGX] Loading Headscale configuration from /etc/headscale/config.yml
headplane  | 2024-10-12T19:13:20.157Z (DEBG) [CFGX] Attempting to parse Headscale configuration
headplane  | 2024-10-12T19:13:20.165Z (DEBG) [CTXT] Checking write access to /etc/headscale/config.yml
headplane  | 2024-10-12T19:13:20.166Z (INFO) [INTG] Loading integration: docker
headplane  | 2024-10-12T19:13:20.166Z (DEBG) [INTG] Checking Docker integration availability
headplane  | 2024-10-12T19:13:20.166Z (INFO) [INTG] Using container: headscale
headplane  | 2024-10-12T19:13:20.167Z (INFO) [INTG] Checking socket: /var/run/docker.sock
headplane  | 2024-10-12T19:13:20.194Z (INFO) [INTG] Loaded integration: docker
headplane  | 2024-10-12T19:13:20.194Z (DEBG) [CTXT] Checking OIDC configuration
headplane  | 2024-10-12T19:13:20.195Z (DEBG) [CTXT] API Key Login Enabled: true
headplane  | 2024-10-12T19:13:20.195Z (DEBG) [CTXT] Checking ROOT_API_KEY and falling back to API_KEY
headplane  | 2024-10-12T19:13:20.195Z (DEBG) [CTXT] Checking OIDC environment variables
headplane  | 2024-10-12T19:13:20.196Z (DEBG) [CTXT] Issuer: undefined
headplane  | 2024-10-12T19:13:20.196Z (DEBG) [CTXT] Client: undefined
headplane  | 2024-10-12T19:13:20.196Z (INFO) [CTXT] Starting Headplane with Context
headplane  | 2024-10-12T19:13:20.197Z (INFO) [CTXT] HEADSCALE_URL: https://headscale.uk
headplane  | 2024-10-12T19:13:20.197Z (INFO) [CTXT] Integration: Docker
headplane  | 2024-10-12T19:13:20.198Z (INFO) [CTXT] Config: Found
headplane  | 2024-10-12T19:13:20.198Z (INFO) [CTXT] OIDC: Configured
headplane  | [remix-serve] http://localhost:3000 (http://<IP_ADDRESS>:3000)

headscale  | 2024-10-12T19:14:40Z ERR home/runner/work/headscale/headscale/hscontrol/app.go:375 > failed to validate token error="failed to parse ApiKey" client_address=<IP_ADDRESS>:52676
headplane  | 2024-10-12T19:14:40.536Z (DEBG) [APIC] POST https://headscale.uk/api/v1/apikey failed with status 500
headplane  | HeadscaleError: Unauthorized
headplane  |     at post (file:///app/build/server/index.js?t=1728630686000:88:11)
headplane  |     at processTicksAndRejections (node:internal/process/task_queues:95:5)
headplane  |     at finishOidc (file:///app/build/server/index.js?t=1728630686000:7018:23)
headplane  |     at Object.callRouteLoader (/app/node_modules/.pnpm/@remix-run+server-runtime@2.10.2_typescript@5.5.3/node_modules/@remix-run/server-runtime/dist/data.js:66:16)
headplane  |     at /app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4817:21
headplane  |     at callLoaderOrAction (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4879:16)
headplane  |     at async Promise.all (index 1)
headplane  |     at callDataStrategyImpl (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4720:17)
headplane  |     at callDataStrategy (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:3975:19)
headplane  |     at loadRouteData (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:3919:19) {
headplane  |   status: 500
headplane  | }
headplane  | GET /admin/oidc/callback?code=910EMqfdCEXCnzAiwQBxPOQTjKWBC6Cp&state=BwP4aryxTYgP7oT9zhpUuVL9QUBfSFU5h0Vb4Gr_1As 500 - - 704.126 ms

So I'm also trying to setup different OIDC issuer and client directly in the docker compose.
headplane  | 2024-10-12T19:26:20.969Z (INFO) [CTXT] Debug mode is enabled! Logs will spam a lot.
headplane  | 2024-10-12T19:26:21.002Z (INFO) [CTXT] Please disable debug mode in production.
headplane  | 2024-10-12T19:26:21.002Z (DEBG) [CTXT] Checking config at /etc/headscale/config.yml
headplane  | 2024-10-12T19:26:21.003Z (DEBG) [CFGX] Loading Headscale configuration from /etc/headscale/config.yml
headplane  | 2024-10-12T19:26:21.043Z (DEBG) [CFGX] Attempting to parse Headscale configuration
headplane  | 2024-10-12T19:26:21.060Z (DEBG) [CTXT] Checking write access to /etc/headscale/config.yml
headplane  | 2024-10-12T19:26:21.099Z (INFO) [INTG] Loading integration: docker
headplane  | 2024-10-12T19:26:21.106Z (DEBG) [INTG] Checking Docker integration availability
headplane  | 2024-10-12T19:26:21.107Z (INFO) [INTG] Using container: headscale
headplane  | 2024-10-12T19:26:21.108Z (INFO) [INTG] Checking socket: /var/run/docker.sock
headplane  | 2024-10-12T19:26:21.110Z (INFO) [INTG] Loaded integration: docker
headplane  | 2024-10-12T19:26:21.118Z (DEBG) [CTXT] Checking OIDC configuration
headplane  | 2024-10-12T19:26:21.119Z (DEBG) [CTXT] API Key Login Enabled: true
headplane  | 2024-10-12T19:26:21.119Z (DEBG) [CTXT] Checking ROOT_API_KEY and falling back to API_KEY
headplane  | 2024-10-12T19:26:21.120Z (DEBG) [CTXT] Checking OIDC environment variables
headplane  | 2024-10-12T19:26:21.122Z (DEBG) [CTXT] Issuer: https://idp.headscale.uk
headplane  | 2024-10-12T19:26:21.126Z (DEBG) [CTXT] Client: 69588a4a-630f-4f95-b9f2-192274cfda8f
headplane  | 2024-10-12T19:26:21.127Z (INFO) [CTXT] Starting Headplane with Context
headplane  | 2024-10-12T19:26:21.127Z (INFO) [CTXT] HEADSCALE_URL: https://hs.headscale.uk
headplane  | 2024-10-12T19:26:21.127Z (INFO) [CTXT] Integration: Docker
headplane  | 2024-10-12T19:26:21.128Z (INFO) [CTXT] Config: Found
headplane  | 2024-10-12T19:26:21.128Z (INFO) [CTXT] OIDC: Configured
headplane  | [remix-serve] http://localhost:3000 (http://<IP_ADDRESS>:3000)
headplane  | GET /admin/ 302 - - 15.462 ms
headplane  | 2024-10-12T19:26:49.486Z (DEBG) [APIC] GET https://hs.headscale.uk/api/v1/apikey
headplane  | 2024-10-12T19:26:49.546Z (DEBG) [APIC] GET https://hs.headscale.uk/api/v1/node
headplane  | 2024-10-12T19:26:49.549Z (DEBG) [APIC] GET https://hs.headscale.uk/api/v1/routes
headplane  | 2024-10-12T19:26:49.551Z (DEBG) [APIC] GET https://hs.headscale.uk/api/v1/user
headplane  | GET /admin/machines 200 - - 733.673 ms
headplane  | POST /admin/logout?_data=routes%2Flogout 204 - - 5.138 ms
headplane  | GET /admin/login?returnTo=%2Fadmin%2Flogout&_data=routes%2Flogin 200 - - 2.557 ms
headplane  | POST /admin/login?returnTo=%2Fadmin%2Flogout&_data=routes%2Flogin 204 - - 210.473 ms
headplane  | 2024-10-12T19:26:55.916Z (DEBG) [APIC] POST https://hs.headscale.uk/api/v1/apikey
headscale  | 2024-10-12T19:26:55Z ERR home/runner/work/headscale/headscale/hscontrol/app.go:375 > failed to validate token error="failed to parse ApiKey" client_address=<IP_ADDRESS>:49176
headplane  | 2024-10-12T19:26:55.947Z (DEBG) [APIC] POST https://hs.headscale.uk/api/v1/apikey failed with status 500
headplane  | HeadscaleError: Unauthorized
headplane  |     at post (file:///app/build/server/index.js?t=1728630686000:88:11)
headplane  |     at processTicksAndRejections (node:internal/process/task_queues:95:5)
headplane  |     at finishOidc (file:///app/build/server/index.js?t=1728630686000:7018:23)
headplane  |     at Object.callRouteLoader (/app/node_modules/.pnpm/@remix-run+server-runtime@2.10.2_typescript@5.5.3/node_modules/@remix-run/server-runtime/dist/data.js:66:16)
headplane  |     at /app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4817:21
headplane  |     at callLoaderOrAction (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4879:16)
headplane  |     at async Promise.all (index 1)
headplane  |     at callDataStrategyImpl (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:4720:17)
headplane  |     at callDataStrategy (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:3975:19)
headplane  |     at loadRouteData (/app/node_modules/.pnpm/@remix-run+router@1.17.1/node_modules/@remix-run/router/router.ts:3919:19) {
headplane  |   status: 500
headplane  | }
headplane  | GET /admin/oidc/callback?code=sBjH81UIRkQZ9RoxehSCc64QdfRKOd2g&state=ogP7jVfsLcgrrrLrTpfH1vLwmOVVySbx9zEz9bqbbX4 500 - - 727.652 ms

The Browser only shows:
Unexpected Server Error

Are you sure that your ROOT_API_KEY is a valid Headscale API key that isn't expired?

thanks for the tip, that was the problem. i used an expired api key...
now everything works


Implement Save/Load in API Designer

As the user edits their RSDL it would be nice to be able to save.  We currently have an Export that lets the user save in various formats (including RSDL), but not something that allows saving/reloading their work from a file.

btw; temporary work around is to periodically Export to RSDL. You can then open the exported file and copy/paste it into the editing pane.


Link the IDS-RAM and the Rulebook

The IDS-RAM and the Rulebook are linked to each other, but currently, the links are missing (hyperlinks). The Working group should work on the links between the documents.
Do we need to have a specific color code here? e.g. Hyperlinks in red that link to IDS-RAM or other IDSA resources and blue to non-idsa resources.

Let's please note that Gitbook's styling is limited. Thus we are limited to use a single color code for all  hyperlinks. But we can use a markdown icon for this differentiation.


INFRA: Statistical test against external simulators

The following steps are used in the statistical tests:

Simulate a tree sequence data with 10 samples
For each replicate, use tstrait to simulate phenotypes for each of the 10 individuals under a normal distribution trait model to get a per-individual phenotype distribution
Repeat Step 2 with an external simulator
Use QQ-plot to compare the outputs

The following simulators are used:

simplePHENOTYPES
AlphaSimR
Quantitative trait simulation framework that is used in ARG-Needle paper

Looks good, but I think you need to delete the data directory?

I did not realize that, and thank you for pointing it out.


Learn more about tokens

look at lib/rules/array-backet-newline code for example:
        function reportNoBeginningLinebreak(node, token) {
            context.report({
                node,
                loc: token.loc,
                messageId: "unexpectedOpeningLinebreak",
                fix(fixer) {
                    const nextToken = sourceCode.getTokenAfter(token, { includeComments: true });

                    if (astUtils.isCommentToken(nextToken)) {
                        return null;
                    }

                    return fixer.removeRange([token.range[1], nextToken.range[0]]);
                }
            });
        }

I need to understand the sourceCode.getTokenAfter stuff better because I feel like it is relevant and we are reinventing the wheel at some points here. Also, the code is referring to comments as tokens so maybe that is the clarification I was looking for previously. So comments are tokens but are not in the AST?

Comments are indeed tokens.


parameters for sparse data

Hi Seth, do you have any recommendations for par_granges values for sparse data? I have some regions with very deep coverage that only span about 500KB of the genome so it seems that much time is spent with low CPU usage.
thanks!

Nothing off the top of my head. I'd take a guess though and say that larger chunksize would be better for sparse data if you aren't using an intervals file of some sort to restrict the regions. My confidence in my guess is low though, looking at the code all you want to minimize is calls to process_regions that have have no reads in that region, so larger chunksize should decrease the number of misses on that front.


Nothing related to PHP

Currently there aren't any resources regarding PHP. I think we need to add some.

I want to contribute in this issue.


[stream] Use nanoseconds instead of seconds in Handshake.timeout

Currently, timestamps for timeout (and clock-synchrony) purposes are measured in seconds, which can cause unexpected issues due to rounding. For example, a (reasonable) synchrony bound of 500 milliseconds gets rounded to 0 nanoseconds which can be considered unexpected behavior.
The timestamp is already uint64 type in the wire.proto and can fit epoch nanoseconds instead of seconds, for only 3 more bytes of usage (varint encoding of protos).

When this change is made, we should take the opportunity to add more testing on this path. With a 1s synchrony bound, a handshake started close to the second boundary will almost always fail (as the timestamp used will be floored).


Not connecting to correct discord client

when i first used it it connect to the correct client and displayed my rich presence but the next morning i tried to launch it it wasn't showing my rich presence because it somehow got linked to the PTB version of discord which is not what i want it showing on. i tried to uninstall ptb and removed all the files pertaining to it but it still is just stuck on only wanting to connect to the PTB client. i turned on the write-to-file config to try to give you more data to work with
this is the log of it connect to ptb: https://files.catbox.moe/bhactg.log
and then when ptb isn't running but normal discord is, it gives me this https://files.catbox.moe/t6lb2x.log

This should be fixed in v2.4.2.
Discord's IPC pipe name can end with a number in the range of 0-9. When a Discord client is launched, it binds to the first unbound pipe number, which is typically 0. Only 0 was being checked by the script earlier, but now it will go through all the possible pipe numbers by default. If all of them are a miss, there might be an issue with your system or Discord installation.


Hide and seek

The initial values of userData should be empty strings and the type of variable should be let because, in further lines of codes, it is needed to be changed.

thanks, the requested changes made! 👍


Login with username/password works without credentials

When I leave the username/password fields blank and hit login I get logged in without signing up.

:\ Thanks for the report. I'll look into that!

@lostboy I've pushed up a fix for it. I'm not sure that I'm entirely happy with it atm. Thanks so much for the report.


GA analytics doc lacking important config info

prebid.github.io/dev-docs/analytics-ga.md should mention somewhere (preferably under the section about "A few requirements") about including "ga" in the analytics array in package.json

Thanks @jalbersmead, just added this info.


lanelet2_io [ Exited with code 2 ]

Sorry for the late reply, could you provide more information about your setup (which Ubuntu version are you using, what version are your installed libraries...). Lanelet2 is also available as a package for ROS and pip, so depending on your system you do not need to build it from source.

Thank you for your reply! My Ubuntu version is 18.04, melodic, I installed Autoware.AI before, and I find that Lanelet2 already in my workspace as a package, shows "ros-melodic-lanelet2 已经是最新版 (1.0.1-1bionic.20201017.041713)。"


dispose steps after transition

ISSUE SOLVED: 106
There is a problem. Let's take a look at the sample code.
If we set disposeStepsBehavior = DisposeStepsBehavior.DisposeWhenStackChanged in my sample, then when navigating to the SampleScreen#1 and going back, ViewModel on the SampleScreen#1 will be recreated because of transition and work will go on in it.
Also there is another problem. Suppose we use screenModel instead of viewModel. If we navigate back from the SampleScreen#1 and, without waiting for the transition to complete, navigate back to the SampleScreen#1, screenModel will be recreated, I expect the screenModel to be destroyed only after the screen has become invisible to the user and disappeared from the stack.
upd.
So, i've created 2 sample activities: DisposeWhenStackChangedSampleActivity, DisposeWhenTransitionFinishedSampleActivity.

DisposeWhenStackChangedSampleActivity. Just open it, then click Next, on the next screen click Back. You can see in logcat, that Doing job is still printing.
DisposeWhenTransitionFinishedSampleActivity. Same steps, but everything works correctly

Also we can get rid of StepDisposableEffect. And emit transition finished events in CurrentScreen method:
@Composable
public fun CurrentScreen() {
    val navigator = LocalNavigator.currentOrThrow
    val currentScreen = navigator.lastItem
    val transitionFinishedEvents = LocalTransitionFinishedEvents.current

    LaunchedEffect(currentScreen) { transitionFinishedEvents.trySend(Unit) }
    navigator.saveableState("currentScreen") {
        currentScreen.Content()
    }
}

I have built another solution that is easier and does not change the Voyager core api and let the Transition api do all the work.
https://github.com/adrielcafe/voyager/pull/436


chore(main): release butler-sheet-icons 3.6.4

:robot: I have created a release beep boop
3.6.4 (2024-11-06)
Miscellaneous

deps: Update dependencies (9aecbf7)
deps: update node.js to v22 (fe48a2f)
main: release butler-sheet-icons 3.6.4 (aef67ea)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

butler-sheet-icons-v3.6.4
:sunflower:


Add Excluded Resource Names to HNC config

PR is WIP - as it contains hardcoded logic, while I figure out how best to provide the resource propagation exclusion list
But adding here to get feedback, on direction, before fully implementing solution ->
Proposing to add a listed of excluded resource names to hnc-config as below:
apiVersion: hnc.x-k8s.io/v1alpha2
kind: HNCConfiguration
metadata:
  name: config
spec:
  resources:
  - mode: Propagate
    resource: secrets
  - mode: Propagate
    resource: configmaps
    excludedNames: ["istio-ca-root-cert", "kube-root-ca.crt"]

Any resource matching the listed names will fail shouldPropogate and not be propagated by hnc
this give solution to istio / kubernetes configmap resources which are auto generated in every namespace and cannot be propagated due to conflicts, it may help for other similarly created resources which need to be excluded
note: helps to resolve https://github.com/kubernetes-sigs/hierarchical-namespaces/issues/66
but by explicit exclusions of resource names (rather than using labels) so as to address kube-root-ca.crt as well istio-ca-root-cert configmaps

I've left some comments on #66 , I think it might actually be preferable to hardcode these exclusions since K8s (obviously) and Istio are so fundamental that it makes sense to support them out-of-the-box. We can always switch this to a suitable default on the HNCConfiguration later if need be.
Maybe let's hold off on changes to this PR for now, but once we agree on the approach, can we please add a unit and maybe end-to-end test? And let's also update the documentation in the same PR to document this new behaviour.
/ok-to-test
/cc @rjbez17
Ryan this is just FYI for now until we agree on the overall approach.

I have now updated the PR to just contain the these hardcoded exclusions for CA configmaps (assuming this is sufficent for now, agree we can add to config later if needed but it is better for these to be excluded by default)
Also have added unit test to validate that these CA configmaps are now not propagated

This looks almost ready to me, with a few last caveats:

Can you please add a comment to the commit message (not just this PR) about how you tested it? E.g. "Added unit tests, plus confirmed that I don't see conflicts on K8s 1.22 or with Istio anymore." [UPDATE]: Sorry I just saw that you did update the commit message with the unit tests (sorry I missed that). It might still be worth updating it with your description of the e2e test as well.
Can you please document this new behaviour? Maybe add a subsection in the exceptions doc called "Built-in exceptions" where you discuss these two exceptions as well as the fact that K8s service account secrets are also not propagated.

Otherwise, this lgtm. Thanks!

Documentation now updated to outline built-in propagation exceptions

Hmm, I'm really on the fence with this one. The Istio issue has plagued me for a while but I generally dislike adding some hidden "magic" for specific things out of my control. I would generally prefer these being a default in an overall HNCConfiguration, but I'm not sure I'm concerned enough to hold up this PR.

Hmm, I'm really on the fence with this one. The Istio issue has plagued me for a while but I generally dislike adding some hidden "magic" for specific things out of my control. I would generally prefer these being a default in an overall HNCConfiguration, but I'm not sure I'm concerned enough to hold up this PR.

FTR - Ryan and I synced on this offline and we agreed that this should go forward, and we shouldn't try to add a new API until we have some more use cases (e.g. to settle on name vs labels).

Thanks for this change!
/approve
/lgtm


When a fragment 404 and an other one comes back after compoxure should not log an error

You get this error via this:
https://github.com/tes/compoxure/blob/1ac79e000d088239091b46ba5571738c2ddaf159/src/middleware/htmlparser.js#L164
Get request for Page X

Parse, get 4 fragments (A, B, C, D)
Make requests for fragment (A, B, C, D)
Fragment A 404's so the response ends early with a 404 (https://github.com/tes/compoxure/blob/1ac79e000d088239091b46ba5571738c2ddaf159/src/middleware/htmlparser.js#L105)
Responses from B, C, D come back, so the response "completes" - triggering this error.

In that case we should just ignore the other fragment for that request

So I believe that fixed it for fragment that 404 but it is still happening with other errors (we see it when other fragment returns 401).
I wonder if we should just not log this error at all?

Probably easiest, it isn't really an error the more you think about it.

Ok done:
https://github.com/tes/compoxure/commit/e8d28719c86c9f0b5f846a1e7a42e7b82499b615


[video player] Aspect ratio does not work correctly for iOS 14

I was having a problem in iOS 14, only the vertical video uploaded from the gallery was not working properly with its aspect ratio. Nice to have the help of the flutter developer.
Here is the example code to reproduce the error:
import 'package: flutter / material.dart';
import 'package: video_player / video_player.dart';
void main () => runApp (VideoApp ());
class VideoApp extends StatefulWidget {
@override
_VideoAppState createState () => _VideoAppState ();
}
class _VideoAppState extends State  {
VideoPlayerController _controller;
static const BASE_API = "http://gc.vietprojectgroup.com/storage/ripples/";
@override
void initState () {
super.initState ();
String uploadFromLibraryIOS = "u2d1IAA2MqPXzkLxDz45c93gFypKUSYPOx1Yu85z.qt";
controller = VideoPlayerController.network (BASE_API + uploadFromLibraryIOS)
..initialize (). then (() {
// Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
print ("AspectRatio: $ {_ controller.value.aspectRatio}");
setState (() {});
});
}
@override
Widget build (BuildContext context) {
return MaterialApp (
title: 'Video Demo',
home: Scaffold (
body: Center (
child: _controller.value.initialized
? AspectRatio (
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer (_controller),
)
: Container (),
),
floatingActionButton: FloatingActionButton (
onPressed: () {
setState (() {
_controller.value.isPlaying
? _controller.pause ()
: _controller.play ();
});
},
child: Icon (
_controller.value.isPlaying? Icons.pause: Icons.play_arrow,
),
),
),
);
}
@override
void dispose () {
super.dispose ();
_controller.dispose ();
}
}

@thang510023
There's similar open issue describing your case, 66413.
Please follow-up there for updates.
Closing this as duplicate.

@thang510023
There's similar open issue describing your case, 66413.
Please follow-up there for updates.
Closing this as duplicate.

thanks for your advice


[Storage] Things to do after the feature/storage branch merge to master

We have just merged feature/storage branch into the master branch.
As a consequence, some more work to do. This issue is to track the same.

[ ] Docs have to be generated from the master branch instead of feature/storage branch
[ ] Pipelines for the feature/storage branch can be discarded

and any other changes that need to be done related to the infrastructure.
cc - @ramya-rao-a @jeremymeng @KarishmaGhiya @kurtzeborn

@KarishmaGhiya has a PR https://github.com/Azure/azure-sdk-for-js/pull/5252 which I believe would help with the docs issue.

@KarishmaGhiya, @scbedd While the pipeline for the feature/storage branch can be discarded in time, the doc generation should be updated at the earliest to use the master branch. Is that doable?

Absolutely! Small adjustment to the generation build will be required, but it'll be simplifying the build configuration :)

@ramya-rao-a The docs are updated now and get generated ONLY from the master branch. Do you want to close this isue? cc - @scbedd

Please do!

Closing since this is already done


Fixed broken link in README.md

What was changed

Fixed broken link in README.md
Why?

It was broken :)

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

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


Migrate merkle-sol to fuel-bridge monorepo

Migrate the repo https://github.com/FuelLabs/fuel-merkle-sol to the fuel-bridge monorepo as this is an important package of the bridge infrastructure.

Closed by #196


Include p5.js version on p5-widgets used in tutorials

Fixes #478
Changes:

Add additional data-p5-version attribute to the script tags used by p5-widget that automatically resolves to latest version number of the library. The version number is taken from the reference's data.json file on build so nothing in terms of release steps needs to be changed.

very cool!


EventHubs sample issues

Section Link1, Link2, Link3, Link4, Link5, Link6, Link7, Link8, Link9, Link10, Link11, Link12:

Suggestion:
Change to .connectionString(connectionString, "<Event Hub Name>")
@jongio , for notification

No issue


room name should be highlighted in some way

Is this concerning the main prompt ([user @ location]), or the name of the location above its description when you do a 'look' ([ location ])? Regardless of which, what kind of highlighting should be done?

I was thinking of above the "look" description - bold it and/or make it a different/brighter color.

I've done this and changed the colors of the entities you encounter in each room so they stand out better, too. Check the newest version.


supports embedding shell commands directly into the Helmfile.

Discussed in https://github.com/helmfile/helmfile/discussions/687

Originally posted by lucj February  9, 2023
In order to create a secret containing a sops/age key I use presync event in a Helmfile dedicated to the Argo-CD installation like this: https://github.com/lucj/k8sapps/blob/main/argocd/helmfile.yaml#L35-L43
Instead of having to create separate scripts (bin/create_secret.sh and bin/delete_secret.sh) I was wondering if the shell command could be directly embeded in the helmfile, something like:
...
hooks:
    - events:
      - presync
      showlogs: true
      command: |
        # Create a sops / age secret key if none already exists
        if [[ -f ./conf/key.txt ]]; then
         echo "age key already exists in ./conf/key.txt"
       else
         age-keygen > ./conf/key.txt
       fi
       # Create secret to give Argo access to the age key
       kubectl create ns argocd || true
       kubectl -n argocd create secret generic age --from-file=key.txt=./conf/key.txt || true

Would that make sense ?

Wouldn't this work with the following example?
…
  hooks:
  - events: ["presync"]
    command: "/bin/sh"  # has to be an executable, in this specific context, an interpreter
    args:
    - "-ec"
    - |
      <provided script>
…

Wouldn't this work with the following example?
…
  hooks:
  - events: ["presync"]
    command: "/bin/sh"  # has to be an executable, in this specific context, an interpreter
    args:
    - "-ec"
    - |
      <provided script>
…

it's a solution.


[Doc issue] [App validation update extend your app with enhance app]

Added a link to Manage user's access to enhance app.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/m365-apps/overview.md
92
9
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 7af5e3c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/m365-apps/overview.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Electrical build readme

Added markdown version of README.md for the electrical build.

I force pushed to remove the patch related commits. They shouldn't have been here, they're from this PR https://github.com/nasa-jpl/open-source-rover/pull/243/commits

I think this one got reverted too far back during the gitastics. Easy fix though.


Make SIM119 not trigger on complex operations in the constructor, and when async methods are present on a class.

Closes issue #63.

@dsegan Thank you very much for the PR! Looks good - I just have some minor changes to keep the maximum line length.

@MartinThoma Thanks a bunch for the quick review, and my apologies for the line length omissions!


tfrecords-only size-1 arrays can be converted to Python scalars error

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Make sure you also include the exact command if possible to produce the output included in your test case. If you are unclear what to include see the issue template displayed in the Github new issue template.
We ask for this in the issue submission template, because it is really difficult to help without that information. Thanks!

System information

I have not written any custom code
OS Platform and Distribution :Debian GNU/Linux 9.5(GCP instance)
Tensorflow installed using pip
TensorFlow version:1.10.1
Python version: 2.7.13
CUDA Version: 9.2.148
GPU model and memory: none
Exact command to reproduce:
Dataset- DeepFashion-https://drive.google.com/drive/folders/0B7EVK8r0v71pWGplNFhjc01NbzQ
val_attr.npy file - https://drive.google.com/open?id=16Mya14JIojI8qOUnDtiR2etpKggkh7nn

import numpy as np
import tensorflow as tf
val_attr=np.load('/home/balajib26/new_exp/DeepFashion-Tensorflow/test_attr.npy')
def _int64_feature(value):
return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
def _bytes_feature(value):
return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
feature = { 'val_attr': _int64_feature(val_attr)}
error:
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 feature = { 'val_attr': _int64_feature(val_attr)}
 in _int64_feature(value)
1 def _int64_feature(value):
----> 2     return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
3
4 # _bytes is used for string/char values
5
TypeError: only size-1 arrays can be converted to Python scalars

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.
If you think we've misinterpreted a bug, please comment again with a clear explanation, as well as all of the information requested in the issue template. Thanks!


Error in analysis of some variables

Environment data

VS Code version: 1.27.2
Extension version (available under the Extensions sidebar): 2018.9.0
OS and version: MacOS mojave 10.14
Python version (& distribution if applicable, e.g. Anaconda): anaconda python 3.6.5
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda
Relevant/affected Python packages and their versions: tensorflow 1.10.1

Actual behavior
Hello, now I have another question that maybe bother you ,I close jedi and use microsoft python analyze because jedi sometimes can not show the correct definition of some function #2806  When I use Python in vscode to assign some variables, I find that vscode cannot get the types of those variables("pool")：

Moreover, some member functions of the variable can not be complementing later.

But some variable it can:

but for jedi it can found this varible:

Expected  behavior
type of variable "pool" can be found correctly whose member function can also complemented.Now I understand that these two engines have their own advantages，but could you please tell me is there any way to combine them or just resolve this type problem? Thank you . Vscode is my favorite partner, and I've learned a lot from you, hopefully this issue will help it improve.
XXX
Steps to reproduce:

the source code is one sample of package "Visual Studio Code Tools for AI" called "MNIST.py"

# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
#
# 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.
# ==============================================================================

"""Simple, end-to-end, LeNet-5-like convolutional MNIST model example.

This should achieve a test error of 0.7%. Please keep this model as simple and
linear as possible, it is meant as a tutorial for simple convolutional models.
Run with --self_test on the command line to execute a short self-test.
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import argparse
import gzip
import numpy as np
import os
import shutil
import sys
import time

import numpy
from six.moves import urllib
from six.moves import xrange  # pylint: disable=redefined-builtin
import tensorflow as tf

FLAGS = None

SOURCE_URL = 'http://yann.lecun.com/exdb/mnist/'
WORK_DIRECTORY = None
IMAGE_SIZE = 28
NUM_CHANNELS = 1
PIXEL_DEPTH = 255
NUM_LABELS = 10
VALIDATION_SIZE = 5000  # Size of the validation set.
SEED = 66478  # Set to None for random seed.
BATCH_SIZE = 64
NUM_EPOCHS = 10
EVAL_BATCH_SIZE = 64
EVAL_FREQUENCY = 100  # Number of steps between evaluations.

def data_type():
  """Return the type of the activations, weights, and placeholder variables."""
  if FLAGS.use_fp16:
    return tf.float16
  else:
    return tf.float32

def maybe_download(filename):
  """Download the data from Yann's website, unless it's already here."""
  if not tf.gfile.Exists(WORK_DIRECTORY):
    tf.gfile.MakeDirs(WORK_DIRECTORY)
  filepath = os.path.join(WORK_DIRECTORY, filename)
  if not tf.gfile.Exists(filepath):
    filepath, _ = urllib.request.urlretrieve(SOURCE_URL + filename, filepath)
    with tf.gfile.GFile(filepath) as f:
      size = f.size()
    print('Successfully downloaded', filename, size, 'bytes.')
  return filepath

def extract_data(filename, num_images):
  """Extract the images into a 4D tensor [image index, y, x, channels].

  Values are rescaled from [0, 255] down to [-0.5, 0.5].
  """
  print('Extracting', filename)
  with gzip.open(filename) as bytestream:
    bytestream.read(16)
    buf = bytestream.read(IMAGE_SIZE * IMAGE_SIZE * num_images * NUM_CHANNELS)
    data = numpy.frombuffer(buf, dtype=numpy.uint8).astype(numpy.float32)
    data = (data - (PIXEL_DEPTH / 2.0)) / PIXEL_DEPTH #正规化
    data = data.reshape(num_images, IMAGE_SIZE, IMAGE_SIZE, NUM_CHANNELS)
    return data

def extract_labels(filename, num_images):
  """Extract the labels into a vector of int64 label IDs."""
  print('Extracting', filename)
  with gzip.open(filename) as bytestream:
    bytestream.read(8)
    buf = bytestream.read(1 * num_images)
    labels = numpy.frombuffer(buf, dtype=numpy.uint8).astype(numpy.int64)
  return labels

def fake_data(num_images):
  """Generate a fake dataset that matches the dimensions of MNIST."""
  data = numpy.ndarray(
      shape=(num_images, IMAGE_SIZE, IMAGE_SIZE, NUM_CHANNELS),
      dtype=numpy.float32)
  labels = numpy.zeros(shape=(num_images,), dtype=numpy.int64)
  for image in xrange(num_images):
    label = image % 2
    data[image, :, :, 0] = label - 0.5
    labels[image] = label
  return data, labels

def error_rate(predictions, labels):
  """Return the error rate based on dense predictions and sparse labels."""
  return 100.0 - (
      100.0 *
      numpy.sum(numpy.argmax(predictions, 1) == labels) /
      predictions.shape[0])

def main(_):
  global BATCH_SIZE
  if FLAGS.self_test:
    print('Running self-test.')
    train_data, train_labels = fake_data(256)
    validation_data, validation_labels = fake_data(EVAL_BATCH_SIZE)
    test_data, test_labels = fake_data(EVAL_BATCH_SIZE)
    num_epochs = 1
  else:
    # Get the data.
    train_data_filename = maybe_download('train-images-idx3-ubyte.gz')
    train_labels_filename = maybe_download('train-labels-idx1-ubyte.gz')
    test_data_filename = maybe_download('t10k-images-idx3-ubyte.gz')
    test_labels_filename = maybe_download('t10k-labels-idx1-ubyte.gz')

    # Extract it into numpy arrays.
    train_data = extract_data(train_data_filename, 60000)
    train_labels = extract_labels(train_labels_filename, 60000)
    test_data = extract_data(test_data_filename, 10000)
    test_labels = extract_labels(test_labels_filename, 10000)

    # Generate a validation set.
    validation_data = train_data[:VALIDATION_SIZE, ...]
    validation_labels = train_labels[:VALIDATION_SIZE]
    train_data = train_data[VALIDATION_SIZE:, ...]
    train_labels = train_labels[VALIDATION_SIZE:]
    num_epochs = NUM_EPOCHS
  train_size = train_labels.shape[0]

  # This is where training samples and labels are fed to the graph.
  # These placeholder nodes will be fed a batch of training data at each
  # training step using the {feed_dict} argument to the Run() call below.
  train_data_node = tf.placeholder(
      data_type(),
      shape=(None, IMAGE_SIZE, IMAGE_SIZE, NUM_CHANNELS),
      name='image_input')
  train_labels_node = tf.placeholder(tf.int64, shape=(None,))
  eval_data = tf.placeholder(
      data_type(),
      shape=(None, IMAGE_SIZE, IMAGE_SIZE, NUM_CHANNELS))

  # The variables below hold all the trainable weights. They are passed an
  # initial value which will be assigned when we call:
  # {tf.global_variables_initializer().run()}
  conv1_weights = tf.Variable(
      tf.truncated_normal([5, 5, NUM_CHANNELS, 32],  # 5x5 filter, depth 32.
                          stddev=0.1,
                          seed=SEED, dtype=data_type()))
  conv1_biases = tf.Variable(tf.zeros([32], dtype=data_type()))
  conv2_weights = tf.Variable(tf.truncated_normal(
      [5, 5, 32, 64], stddev=0.1,
      seed=SEED, dtype=data_type()))
  conv2_biases = tf.Variable(tf.constant(0.1, shape=[64], dtype=data_type()))
  fc1_weights = tf.Variable(  # fully connected, depth 512.
      tf.truncated_normal([IMAGE_SIZE // 4 * IMAGE_SIZE // 4 * 64, 512],
                          stddev=0.1,
                          seed=SEED,
                          dtype=data_type()))
  fc1_biases = tf.Variable(tf.constant(0.1, shape=[512], dtype=data_type()))
  fc2_weights = tf.Variable(tf.truncated_normal([512, NUM_LABELS],
                                                stddev=0.1,
                                                seed=SEED,
                                                dtype=data_type()))
  fc2_biases = tf.Variable(tf.constant(
      0.1, shape=[NUM_LABELS], dtype=data_type()))
  # We will replicate the model structure for the training subgraph, as well
  # as the evaluation subgraphs, while sharing the trainable parameters.
  def model(data, train=False):
    """The Model definition."""
    # 2D convolution, with 'SAME' padding (i.e. the output feature map has
    # the same size as the input). Note that {strides} is a 4D array whose
    # shape matches the data layout: [image index, y, x, depth].
    conv = tf.nn.conv2d(data,
                        conv1_weights,
                        strides=[1, 1, 1, 1],
                        padding='SAME')
    # Bias and rectified linear non-linearity.
    relu = tf.nn.relu(tf.nn.bias_add(conv, conv1_biases))
    # Max pooling. The kernel size spec {ksize} also follows the layout of
    # the data. Here we have a pooling window of 2, and a stride of 2.
    pool = tf.nn.max_pool(relu,
                          ksize=[1, 2, 2, 1],
                          strides=[1, 2, 2, 1],
                          padding='SAME')
    conv = tf.nn.conv2d(pool,
                        conv2_weights,
                        strides=[1, 1, 1, 1],
                        padding='SAME')
    relu = tf.nn.relu(tf.nn.bias_add(conv, conv2_biases))
    pool = tf.nn.max_pool(relu,
                          ksize=[1, 2, 2, 1],
                          strides=[1, 2, 2, 1],
                          padding='SAME')
    # Reshape the feature map cuboid into a 2D matrix to feed it to the
    # fully connected layers.
    pool_shape = pool.get_shape().as_list()
    reshape = tf.reshape(
        pool,
        [tf.shape(pool)[0], pool_shape[1] * pool_shape[2] * pool_shape[3]])
    # Fully connected layer. Note that the '+' operation automatically
    # broadcasts the biases.
    hidden = tf.nn.relu(tf.matmul(reshape, fc1_weights) + fc1_biases)
    # Add a 50% dropout during training only. Dropout also scales
    # activations such that no rescaling is needed at evaluation time.
    if train:
      hidden = tf.nn.dropout(hidden, 0.5, seed=SEED)
    return tf.matmul(hidden, fc2_weights) + fc2_biases

  # Training computation: logits + cross-entropy loss.
  logits = model(train_data_node, True)
  loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(
      labels=train_labels_node, logits=logits))
  predict_op = tf.argmax(logits, 1, name='predict_op')

  # L2 regularization for the fully connected parameters.
  regularizers = (tf.nn.l2_loss(fc1_weights) + tf.nn.l2_loss(fc1_biases) +
                  tf.nn.l2_loss(fc2_weights) + tf.nn.l2_loss(fc2_biases))
  # Add the regularization term to the loss.
  loss += 5e-4 * regularizers

  # Optimizer: set up a variable that's incremented once per batch and
  # controls the learning rate decay.
  batch = tf.Variable(0, dtype=data_type())
  # Decay once per epoch, using an exponential schedule starting at 0.01.
  learning_rate = tf.train.exponential_decay(
      0.01,                # Base learning rate.
      batch * BATCH_SIZE,  # Current index into the dataset.
      train_size,          # Decay step.
      0.95,                # Decay rate.
      staircase=True)
  # Use simple momentum for the optimization.
  optimizer = tf.train.MomentumOptimizer(learning_rate,
                                         0.9).minimize(loss,
                                                       global_step=batch)
  # Predictions for the current training minibatch.
  train_prediction = tf.nn.softmax(logits)

  # Predictions for the test and validation, which we'll compute less often.
  eval_prediction = tf.nn.softmax(model(eval_data))

  # Small utility function to evaluate a dataset by feeding batches of data to
  # {eval_data} and pulling the results from {eval_predictions}.
  # Saves memory and enables this to run on smaller GPUs.
  def eval_in_batches(data, sess):
    """Get all predictions for a dataset by running it in small batches."""
    size = data.shape[0]
    if size < EVAL_BATCH_SIZE:
      raise ValueError("batch size for evals larger than dataset: %d" % size)
    predictions = numpy.ndarray(shape=(size, NUM_LABELS), dtype=numpy.float32)
    for begin in xrange(0, size, EVAL_BATCH_SIZE):
      end = begin + EVAL_BATCH_SIZE
      if end <= size:
        predictions[begin:end, :] = sess.run(
            eval_prediction,
            feed_dict={eval_data: data[begin:end, ...]})
      else:
        batch_predictions = sess.run(
            eval_prediction,
            feed_dict={eval_data: data[-EVAL_BATCH_SIZE:, ...]})
        predictions[begin:, :] = batch_predictions[begin - size:, :]
    return predictions

  ### Change original code
  # Add model_dir to save model
  if not os.path.exists(FLAGS.model_dir):
    os.makedirs(FLAGS.model_dir)

  ### Change original code
  # Create a saver for writing training checkpoints.
  saver = tf.train.Saver()
  # Create a builder for writing saved model for serving.
  if os.path.isdir(FLAGS.export_dir):
    shutil.rmtree(FLAGS.export_dir)
  builder = tf.saved_model.builder.SavedModelBuilder(FLAGS.export_dir)

  # Create a local session to run the training.
  start_time = time.time()
  with tf.Session(config=tf.ConfigProto(log_device_placement=False)) as sess:
    # Run all the initializers to prepare the trainable parameters.
    tf.global_variables_initializer().run()
    ### Change original code
    # Save checkpoint when training
    ckpt = tf.train.get_checkpoint_state(FLAGS.model_dir)
    if ckpt and ckpt.model_checkpoint_path:
      print('Load from ' + ckpt.model_checkpoint_path)
      saver.restore(sess, ckpt.model_checkpoint_path)

    ### Change original code
    # Create summary, logs will be saved, which can display in Tensorboard
    tf.summary.scalar("loss", loss)
    merged = tf.summary.merge_all()
    writer = tf.summary.FileWriter(os.path.join(FLAGS.model_dir, 'log'), sess.graph)

    print('Initialized!')

    # Loop through training steps.
    for step in xrange(int(num_epochs * train_size) // BATCH_SIZE):
      # Compute the offset of the current minibatch in the data.
      # Note that we could use better randomization across epochs.
      offset = (step * BATCH_SIZE) % (train_size - BATCH_SIZE)
      batch_data = train_data[offset:(offset + BATCH_SIZE), ...]
      batch_labels = train_labels[offset:(offset + BATCH_SIZE)]
      # This dictionary maps the batch data (as a numpy array) to the
      # node in the graph it should be fed to.
      feed_dict = {train_data_node: batch_data,
                   train_labels_node: batch_labels}
      # Run the optimizer to update weights.
      sess.run(optimizer, feed_dict=feed_dict)
      # print some extra information once reach the evaluation frequency
      if step % EVAL_FREQUENCY == 0:
        # fetch some extra nodes' data
        ### Change original code
        # Add summary
        summary, l, lr, predictions = sess.run([merged, loss, learning_rate, train_prediction],
                                      feed_dict=feed_dict)
        writer.add_summary(summary, step)
        elapsed_time = time.time() - start_time
        start_time = time.time()
        ### Change original code
        # save model
        if step % (EVAL_FREQUENCY * 10) == 0:
          saver.save(sess, os.path.join(FLAGS.model_dir, "model.ckpt"), global_step=step)
        print('Step %d (epoch %.2f), %.1f ms' %
              (step, float(step) * BATCH_SIZE / train_size,
               1000 * elapsed_time / EVAL_FREQUENCY))
        print('Minibatch loss: %.3f, learning rate: %.6f' % (l, lr))
        print('Minibatch error: %.1f%%' % error_rate(predictions, batch_labels))
        print('Validation error: %.1f%%' % error_rate(
            eval_in_batches(validation_data, sess), validation_labels))
        sys.stdout.flush()

    ### Change original code
    # Save model
    inputs = { tf.saved_model.signature_constants.PREDICT_INPUTS: train_data_node }
    outputs = { tf.saved_model.signature_constants.PREDICT_OUTPUTS: predict_op }
    serving_signatures = {
      'Infer': #tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
      tf.saved_model.signature_def_utils.predict_signature_def(inputs, outputs)
    }
    builder.add_meta_graph_and_variables(sess, [tf.saved_model.tag_constants.SERVING],
                                         signature_def_map=serving_signatures,
                                         assets_collection=tf.get_collection(tf.GraphKeys.ASSET_FILEPATHS),
                                         clear_devices=True)
    builder.save()

    # Finally print the result!
    test_error = error_rate(eval_in_batches(test_data, sess), test_labels)
    print('Test error: %.1f%%' % test_error)
    if FLAGS.self_test:
      print('test_error', test_error)
      assert test_error == 0.0, 'expected 0.0 test_error, got %.2f' % (test_error,)

if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument(
      '--use_fp16',
      default=False,
      help='Use half floats instead of full floats if True.',
      action='store_true')
  parser.add_argument(
      '--self_test',
      default=False,
      action='store_true',
      help='True if running a self test.')
  parser.add_argument(
    '--input_dir',
    type=str,
    default='input',
    help='Directory to put the input data.')
  parser.add_argument(
    '--model_dir',
    type=str,
    default='output',
    help='Directory to put the checkpoint files.')
  parser.add_argument(
    '--export_dir',
    type=str,
    default='export',
    help='Directory to put the savedmodel files.')

  FLAGS, unparsed = parser.parse_known_args()
  WORK_DIRECTORY = FLAGS.input_dir
  tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
XXX

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help)
XXX

Judging from red squiggles this is LS case

I AM sorry I do not quite understand you could please speak more clearly?

@benbenji Mikhail is just identifying what component is probably causing the issue.

ok I have thought It is a solution.

Closing in favour of https://github.com/microsoft/python-language-server/issues/285


Add some more translations

Found a better word for 'engaging'
Added more translations

Thank you, @korytsya!


How to use toast in appdelegate

Im using Corebluetooth in appdelegate so i need to display toast message bluetooth connected
how can i use
i try this method
var visibleViewController: UIViewController?
visibleViewController?.view.makeToast("disconnect")
but it not work.

Toast is working on UIView.
If you want to use it in the appDelegate you have to get the top view controller and then execute the toast on the view.
you can look here for func to get the top view controller - Here
hope it help (:

noerror
but it not disappear bro

This is an issue with you code, not this library. Please use stackoverflow.


Update beforeLoad docs

Waiting for beforeLoad to resolve does not put the component into pending state.
Closes #1104

#1104 is a bug, this should work.
it needs a proper fix


shorten method return partial result

https://github.com/skang/TinyURL-Node.js/blob/56b451a797aa124e66f9e338993ac0445ce45b66/index.js#L7-L9

#1 this is fixed by commit 9106fe5


Cilium Operator fails to initialize when running with etcd with endpoint crd disabled

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
On a newly built cluster, with disable-endpoint-crd: "true" and etcd kvstore, the cilium-operator errors with
level=warning msg="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=klog
level=error msg=k8sError error="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: Failed to watch *v2.CiliumEndpoint: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=k8s

Expected below logs are never seen:
level=info msg="Starting CNP derivative handler" subsys=cilium-operator-generic
level=info msg="Starting CCNP derivative handler" subsys=cilium-operator-generic
level=info msg="Initialization complete" subsys=cilium-operator-generic

Note that this only happens on a cluster built directly with Cilium 1.11+. Upgrading from 1.10 (which creates the ciliumendpoints.cilium.io CRD), the issue is not seen.
Cilium Version
1.11+ (I tested all 1.11.0 thru 1.11.15 as well as 1.12.1 and 1.13.1). Works fine with 1.10.18+
Kernel Version
5.15.43-flatcar
Kubernetes Version
v1.23.15
Sysdump
No response
Relevant log output
level=info msg="Cilium Operator 1.11.15 c5577e8 2023-03-15T19:19:16+01:00 go version go1.17.13 linux/amd64" subsys=cilium-operator-generic
level=info msg="Registering Operator metrics" subsys=metrics
level=info msg="Starting apiserver on address <IP_ADDRESS>:9234" subsys=cilium-operator-api
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Connected to apiserver" subsys=k8slevel=info msg="Connected to apiserver" subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumExternalWorkload/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumIdentity/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumNode/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
...
level=info msg="Starting to synchronize Kubernetes services to kvstore" subsys=watchers
level=info msg="Connected to the KVStore, syncing CiliumNodes to the KVStore" subsys=cilium-operator-generic
level=warning msg="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=klog
level=error msg=k8sError error="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: Failed to watch *v2.CiliumEndpoint: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=k8s
level=warning msg="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=klog
level=error msg=k8sError error="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:116: Failed to watch *v2.CiliumEndpoint: failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=k8s

Anything else?
For comparison, here are the operator v1.10.20 logs:
level=info msg="Cilium Operator 1.10.20 ad16558 2023-02-13T09:03:24+01:00 go version go1.16.15 linux/amd64" subsys=cilium-operator-generic
level=info msg="Registering Operator metrics" subsys=metrics
level=info msg="Starting apiserver on address <IP_ADDRESS>:9234" subsys=cilium-operator-api
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Connected to apiserver" subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumEndpoint/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumEgressNATPolicy/v2alpha1 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumLocalRedirectPolicy/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumExternalWorkload/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumNode/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumIdentity/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="CRD (CustomResourceDefinition) is installed and up-to-date" name=CiliumEndpoint/v2 subsys=k8s
...
level=info msg="Starting to synchronize Kubernetes services to kvstore" subsys=watchers
level=info msg="Starting kvstore watchdog" interval=25s subsys=cilium-operator-generic
level=info msg="Removing Cilium Node Taints or Setting Cilium Is Up Condition for Kubernetes Nodes" k8sNamespace=kube-system label-selector="k8s-app=cilium" remove-cilium-node-taints=true set-cilium-is-up-condition=true subsys=cilium-operator-generic
level=info msg="Starting to garbage collect stale CiliumNode custom resources" subsys=watchers
level=info msg="Starting kvstore identity garbage collector" interval=15m0s subsys=cilium-operator-generic
level=info msg="Starting to garbage collect stale CiliumEndpoint custom resources" subsys=cilium-operator-generic
level=info msg="Garbage collected status/nodes in Cilium Clusterwide Network Policies found=0, gc=0" subsys=cilium-operator-generic
level=info msg="Garbage collected status/nodes in Cilium Network Policies found=5, gc=0" subsys=cilium-operator-generic
level=info msg="Starting CNP derivative handler" subsys=cilium-operator-generic
level=info msg="Starting CCNP derivative handler" subsys=cilium-operator-generic
level=info msg="Initialization complete" subsys=cilium-operator-generic

Code of Conduct

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

FYI, #24396 reports a similar but distinct issue - a crash in v1.13.0

Thank you for taking the time to test this out on so many different versions, I really appreciate it. I'm looking through the commit history to understand what happened here and gather more information for what the best way forward is.

I'm still looking for the commit which caused this error to occur, but I am able to replicate this on 1.11.16 with just a local kind cluster. The Cilium operator will spin up a garbage collector for CRD endpoints even if they are disabled. A check in the CRD syncing logic in pkg/k8s/synced/crd.go causes the endpoint CRD to not be created if they are disabled. My assumption is that this check was added at some point in 1.11.0. Applying the following patch as a crude way to remove the endpoint garbage collector stops the error:
diff --git a/operator/main.go b/operator/main.go
index 2781d13d2b..1584ef57d2 100644
--- a/operator/main.go
+++ b/operator/main.go
@@ -574,14 +574,16 @@ func onOperatorStartLeading(ctx context.Context) {
                }
        }

-       if operatorOption.Config.EndpointGCInterval != 0 {
-               enableCiliumEndpointSyncGC(false)
-       } else {
-               // Even if the EndpointGC is disabled we still want it to run at least
-               // once. This is to prevent leftover CEPs from populating ipcache with
-               // stale entries.
-               enableCiliumEndpointSyncGC(true)
-       }
+       /*
+               if operatorOption.Config.EndpointGCInterval != 0 {
+                       enableCiliumEndpointSyncGC(false)
+               } else {
+                       // Even if the EndpointGC is disabled we still want it to run at least
+                       // once. This is to prevent leftover CEPs from populating ipcache with
+                       // stale entries.
+                       enableCiliumEndpointSyncGC(true)
+               }
+       */

        err = enableCNPWatcher()
        if err != nil {

I need to do more research to learn how endpoint garbage collecting works with kvstore mode, as well as learn what this block of code looks like in other versions of Cilium, and then I think we will have enough information to move forward with a PR.
In addition to fixing the errors, I'd like to learn how to write a test so we can catch something like this in the future in CI.

I just opened a draft PR to address this. Still working on figuring out how to write a regression test for this.

Ah and here is the commit between 1.10.20 and 1.11.0 which introduced this bug: https://github.com/cilium/cilium/commit/aed4798a42ec1a0d3dc5c02e795c8a30333e3030. This commit introduces the logic to selectively create CRDs as needed based on the config.


Overwriting old history

Is it possible to overwrite old history with wandb. I have use-case, when my experiment diverged and I lowered learning rate and used older checkpoint to restart experiment, but wandb doesn’t overwrite history and shows me this warning:
WARNING Adding to old History rows isn't currently supported.
I was wondering maybe there is flag to overwrite old history (didn't find in documentation)? If there is no such flag, is it possible to add this as feature request?
Thank you in advance!

Hey @fgvbrt unfortunately the fundamental design of our current history store is immutable.  We're currently working on a new history implementation that should support this use case but it's not likely to be completed until early next year.  In the meantime, you can update the final value of any metrics logs with:
api = wandb.Api()
run = api.run("username/project/run_id")
run.summary.update({"key": value})

I have a similar use case: I'd like to add new metrics or rename old ones in the histories of my runs, so I can make plots and charts of these metrics. Still not possible?

You can add metrics to history by resuming a run, but modifying historic metrics in history still isn't officially supported.

👍

Hi @collinmccarthy, if the runs are part of the same project, it should be as simple as adding the new key to the x axis field of your chart.

Is there any update on whether it is possible to updating the run history?

On documentation, it's written :
"Logging nested metrics is encouraged and is supported in the W&B UI. If you log with a nested dictionary like wandb.log({"train": {"acc": 0.9}, "val": {"acc": 0.8}}), the metrics will be organized into train and val sections in the W&B UI.
wandb keeps track of a global step, which by default increments with each call to wandb.log, so logging related metrics together is encouraged. If it's inconvenient to log related metrics together calling wandb.log({"train-loss": 0.5}, commit=False) and then wandb.log({"accuracy": 0.9}) is equivalent to calling wandb.log({"train-loss": 0.5, "accuracy": 0.9})."
https://docs.wandb.ai/ref/python/run

Just to add that I could also use this feature!
My specific case is that I want to show some metric y for x-axis=0 (so e.g. wandb.log({'y': .359, 'x': 0}), but have a logarithmic x-axis.
In past runs, I logged this as x-axis-value=.1 ({'y': .359, 'x': 0.1}), in present runs I use x-axis-value=.5 (as this happens to be more legible for my case).
For easy comparison to past runs, I would want to overwrite the past runs value to use .5 instead of .1.
It seems like a shame to need to rerun the past experiments for this, when all it should take is a simple edit in wherever this value is stored.

Maybe I'm missing some context here, but if we're just talking about resuming and you have full control over how the Wandb API is used, you can just never log the step explicitly and Wandb will auto-increment. Then if you also log another x-axis value like iter you can use this as your x-axis and you'll see both the old values and the new values overlaid on top of each other, if that makes sense. Granted this isn't the same as overwriting old history, but it is a workaround for some use cases.
I still think this feature is necessary to give the user full control over the history for all use cases.

Hi folks, W&B eng here, wanted to give an update on the roadmap for addressing this issue.
We just added support for a feature we call "run forking" to certain projects (reach out to us at<EMAIL_ADDRESS>if you want us to enable this for you). Run forking allows you to call wandb.init(fork_from=f'[old_run_id]?_step=[fork_step]') to produce a new run with a new ID, different than old_run_id. All of the history logged to old_run_id will be visible in new_run_id until fork_step. History logged to the new run will start from fork_step + 1.
While this isn't the exact request from this thread, it is the key missing piece required to provide the feature folks here are asking for, which we are calling "truncated resume." We have a design for truncated resume on our roadmap that uses fork under the hood, and we are expecting to implement this design in Q2 2024.
Here is a list of upcoming features relevant to the discussion in this thread:

We are going to add a convenience function, last_run_if_any(step=[fork_step]) -> str that will allow auto resuming from the previous run. You will be able to use it like this:

wandb.init(fork_from=last_run_if_any(step=500))

to fork a new run. If there is no run to resume from the function will return None.

We are going to add support for resuming an existing run from a previous step, and we are calling this feature "truncated resume". The API will be similar to fork but it will be a different init() kwarg,

resumed_run = wandb.init(resume_from='[old_run_id]?_step=[desired_step]')

This will do some metadata shifting (and use forking under the hood) to get the behavior requested in #1395. We have a design for this, and plan to implement in Q2 of this year.

We are also planning to allow forking/resuming from other metrics than _step, although _step is the only allowed one for now. This will be specifiable in the fork/resume string, like:

wandb.init(fork_from='abcdefgh?loss=1`)

We are planning to deprecate the current resume= argument in wandb.init() once all of this is done.

But what about adding new metrics to the existing run with their own history? Is this going to be supported at some point? This doesn't require modification of history of the existing metrics, so I guess it should be easier to implement?
This was on your roadmap 3 years ago (#2723). What is the outcome?

Hi everyone, thank you for your interest in this feature. For future reference, could you please provide us with your wandb usernames if you would like to be added to the runs rewind and/or runs forking features? We will proceed with enabling this for you accordingly.
If you prefer not to disclose this information publicly, you can always email us at<EMAIL_ADDRESS>

I'd like to test this, here is my username https://wandb.ai/theodoridis :)

Thank you, @JohannesTheo, I have added you to the list. I will let you know once our engineers in Infra team have activated it in your entity (it might be early next week).

Awesome :) Let me know if I should report feedback and if so, where.

hi @JohannesTheo I wanted to follow up with you and let you know that we have now enabled this for your account. You should be able to use both runs rewind and runs forking features. Feel free to share here any feedback or questions/issues you may have encountered.

Hi @thanos-wandb, I was on this thread a while back and think it may be what I'm looking for again. My issue is that I have runs for which I want to write new evals at different checkpoints along the way, corresponding to different steps. For example, I might have a run that was 100 steps and want to add eval metrics to the wandb chart at steps 25, 50, 75, and 100. At the moment, I am struggling because I can't write to a prior step.
Does run rewind help with this? It looks like I might be able to a) retrieve all the metrics for a run, b) loop through it again and rewrite those old metrics, c) when I get to a step with the new eval, then write that in as well and and continue. Is this how you would do it today as well? Thanks!


Berufskolleg-Borken.de

@stbaeumer First stage of verification passed, official domain for Berufskolleg Borken is berufskolleg-borken.de as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@stbaeumer Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.