Build CNIReconciler with vSphere reconciler

Issue #, if available:
Description of changes:
We were not building the CNI reconciler before, causing nil pointer accesses.
Testing (if applicable):
Manual
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Adding loader job for cicd cluster

Adding three jobs:

cicd-start-load
cicd-dump-load-logs
cicd-get-load-logs

cicd-start-load job
Will start the reliability test with the latest code from svt and aos-cd-jobs repos. svt repoprovides the testing framework and aos-cd-jobs provides config for the framework and tasks description. We need to do this cause there might be changes in the framework or configuration and we dont want to add the manually. Also the reliability.log file will be rotated and should not exceed 100k size.
This job will run endlessly until it fails or is being aborted.
cicd-dump-load-logs
Will be triggered when cicd-start-load fails and will print last 150 lines of the logs.
cicd-dump-load-logs
Can be triggered on demand and will print last 250 lines of the logs.
@stevekuznetsov @jupierce @bbguimaraes PTAL

@stevekuznetsov any thoughts ? or we can merge this one ?

This seems good to me

@jhadvig you can push

 (3) [CI] Add load to continuous upgrade cluster


Update the MD file to include admin-user and CRB creation.

These are taken directly from the k8s dashboard manual, and I have tested them to work perfectly in the Civo environ.
We first create the admin-user object, then the CRB to bind it to the dashboard and limit it's scope.
Thank you for wanting to submit a Pull Request to the Civo Kubernetes Marketplace repository!
If your pull request is to submit a new application to the marketplace, please answer the following questions:

[x] Have you followed the guidelines in our Contributing document in setting up the application?
[x] Have you checked that the application your submission is proposing to add does not yet exist on the Marketplace, or as a pull request to be processed?
[x] Have you tested your application on the Civo managed Kubernetes service? Please include a screenshot.
[x] Can you confirm that the software you are submitting licensed for use in a publicly-available Kubernetes marketplace?

If your pull request concerns an existing Marketplace application, please make sure you have:

[x] Notified the Maintainer of the application in this pull request so that they are aware of your proposal.
[x] Outlined the changes you are proposing, and the reasons these are required (e.g. stability, compatibility with new versions of Kubernetes implementations, etc).
[x] Tested that the application works with the proposed updates applied (including a screenshot)

It turns out that this issue was fixed by Kai after the last cluster that I stood up, so I will be closing this PR. Great work on the part of the Dev team!


Override version in overlay

Issue description
Maybe I've a too naive understanding of nix, however when I try to override the version of a given package using the following overlay:
self: super:
{
  myZlib = super.zlib.override { version = "v1.2.8"; };
}

I get:
error: anonymous function at /nix/store/kj7mjqng86c59kaqyx5rzf75i9gdizfk-nixpkgs-17.09pre116788.0adc0668b37/nixpkgs/pkgs/development/libraries/zlib/default.nix:1:1 called with unexpected argument ‘version’, at /nix/store/kj7mjqng86c59kaqyx5rzf75i9gdizfk-nixpkgs-17.09pre116788.0adc0668b37/nixpkgs/lib/customisation.nix:74:12

Steps to reproduce
In nix-repl:
:l <nixpkgs>
zlib.override { version = "v1.2.8"; }

Technical details

system: "x86_64-darwin"
host os: Darwin 17.4.0, macOS 10.13.3
multi-user?: yes
sandbox: no
version: nix-env (Nix) 1.11.16
channels(root): "nixpkgs-17.09pre116788.0adc0668b37"
channels(ktf): ""
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixpkgs

thanks!

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/need-a-good-example-for-specifying-versions-in-nixpkgs/9815/2


Congratz for the new GUI

Not an issue but just a thanks for your work !

Only took me 8 years to get around to it :) Lots of new stuff coming.


About Other client.

I want enjoy multiogar with agarplus.io.
But it doen't connect.
Are you able to make i can connect with agarplus.io?
else, Can you make multiogar's version agarplus.io?
please answer it :)

It seems that agarplus.io doesn't support connection to private servers.
It doesn't accept /?ip=
So, it's agarplus.io issue

@Barbosik I could connect ogar unlimited 10.6.3 with agarplus.io.
OGARio extension is no problem with connect.
So, I think agarplus.io not support new protocol.
Umm. But i'll try again.

I don't know what is your issue. Because I just tested it and agarplus.io woks OK with MultiOgar.

@Barbosik ok Thank you.
It fixed.


Some thought about crashes when calling js from Nim

Similar to #5 , I went into some crashes when working with hello_world.nim using Nimble package.
In devel mode it crashes silently when clicked, in release mode it works but sometimes it still crashes.
I tried to change webui.nim:261 from
data = buffer.join().strip(leading = false, chars = {'\x00'})

to
data = $(cast[cstring](addr buffer[0]))

Then it seems to work smoothly, with thread:off. Not tested much and not using nightly build, but I want to note it here for others who is willing to make further investigations about it.
My env: Nim Compiler Version 1.6.12 [Windows: amd64]

I've already opened a PR but I think it would be better if you opened one instead.

Some other thought: There are some calls returning webui-managed buffers, like encode. Would it be better if we copy the data to a Nim-managed string (by $) and destroy the returned buffers immediately? 😄

I agree @clzl 👍
We should not forget to free the WebUI buffer using webui_free()
WebUI uses a custom memory management to allocate and free resources, so webui_free() will never cause a crash.

Some other thought: There are some calls returning webui-managed buffers, like encode. Would it be better if we copy the data to a Nim-managed string (by $) and destroy the returned buffers immediately? 😄

https://github.com/webui-dev/nim-webui/commit/b26d95c8b0246bc8a0ac89e31dee31ef7b748615 🎉


Update mmctl-command-line-tool.rst

I think I found a small error in the mmctl documentation here: https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-team-users-add
The example reads
team add myteam<EMAIL_ADDRESS>username
but should read
team users add myteam<EMAIL_ADDRESS>username
Another small error in the mmctl documentation here: https://docs.mattermost.com/manage/mmctl-command-line-tool.html#mmctl-channel-create
The option is listed as
--display_name
both in the option list as well as in the example.
But when using mmctl with this option, the command returns that this option is deprecated and the following should be used instead
--display-name

Summary

Ticket Link

Hello @zaengerlein,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.
Per the Mattermost Contribution Guide, we need to add you to the list of approved contributors for the Mattermost project.
Please help complete the Mattermost contribution license agreement?
Once you have signed the CLA, please comment with /check-cla and confirm that the CLA check is green.
This is a standard procedure for many open source projects.
Please let us know if you have any questions.
We are very happy to have you join our growing community! If you're not yet a member, please consider joining our Contributors community channel to meet other contributors and discuss new opportunities with the core team.

/check-cla

Can confirm both of these based on the mmctl tool.
MacBook-Pro ~ % mmctl channel create --help
Create a channel.

Usage:
  mmctl channel create [flags]

Examples:
  channel create --team myteam --name mynewchannel --display-name "My New Channel"
  channel create --team myteam --name mynewprivatechannel --display-name "My New Private Channel" --private

Flags:
      --display-name string   Channel Display Name
      --header string         Channel header
  -h, --help                  help for create
      --name string           Channel Name
      --private               Create a private channel.
      --purpose string        Channel purpose
      --team string           Team name or ID

MacBook-Pro ~ % mmctl team --help
Management of teams

Usage:
  mmctl team [command]

Available Commands:
  archive     Archive teams
  create      Create a team
  delete      Delete teams
  list        List all teams
  modify      Modify teams
  rename      Rename team
  restore     Restore teams
  search      Search for teams
  users       Management of team users

Flags:
  -h, --help   help for team

Use "mmctl team [command] --help" for more information about a command.
coltonshaw@Coltons-MacBook-Pro ~ %

Thank you @zaengerlein for raising this documentation issue, and thanks @coltoneshaw for confirming that only docs updates are needed. Great teamwork all!
I've applied these corrections to the Mattermost product documentation via https://github.com/mattermost/docs/pull/5383, and the Mattermost developer documentation via https://github.com/mattermost/mmctl/pull/431


Cannot configure Privacy Notice locations with updated country codes

Bug Description
The format of the locations used in the default privacy notices doesn't match the locations listed and editable from the edit page for a privacy notice. This means that, when editing a notice, I cannot add locations like "FR" and "DE", despite those being valid locations that are used by the defaults.
Steps to Reproduce

Login to Fides Plus nightly build
Navigate to Privacy Notices and observe the locations for the "Essential" notice include the expected country locations:

Click to edit the notice, and then try to edit/add the locations:

Expected behavior
The list of locations displayed on the edit form should match, and we should provide options for all the valid EU countries 👍
Screenshots
See steps to reproduce
Environment

Version: 2.16.0

Additional context
See https://github.com/ethyca/fides/issues/3611 for the change made to the EU location format and the related PR, etc.

moving to done


Embed.len optimizations

What type of pull request is this?

[x] Non-breaking code change
[ ] Breaking code change
[ ] Documentation change/addition

Description
Taking into account that embeds are constantly using the __len__ property for validators whenever they are modified, the implementation of maps and optimal methods can help to make the validation faster which benefits with a gain 20-25% in comparison to the usual approach.
Benchmark (tested with timeit, n=1000000)

Embed
Default __len__
Modified __len__

Empty Embed
0.2745 s
0.1712 s

All parameters
4.8217 s
4.2479 s

All parameters (No Fields)
0.7127 s
0.6124 s

Changes

• Modified Embed.__len__
Checklist

[x] I've formatted my code with Black
[x] I've ensured my code works on Python 3.10.x
[x] I've tested my code

You're attempting to merge to master, are you sure thats what you want to do?

Just realized the mistake oops, was gonna use the dev branch

Looks nice
Does the walrus operator boost performance? Have you measured it in comparison to bare ifs and attribute re-usage?
Also, you should probably delete that in-code comment left for the older implementation X)

After generating the length, why not save it to an attribute and whenever the embed is modified set it to None?
It'll make the __len__ lookup instant if nothing changed.

@artem30801

you should probably delete that in-code comment left for the older implementation X)
arguably i think it still applies 😜

@Bluenix2

After generating the length, why not save it to an attribute and whenever the embed is modified set it to None?

It was my understanding most python objects cache their len

Looks nice Does the walrus operator boost performance? Have you measured it in comparison to bare ifs and attribute re-usage? Also, you should probably delete that in-code comment left for the older implementation X)

I've been making multiple tests and it always gave better results to use the walrus operator instead of the if, I suppose it's by the fact that the If has to first execute the "function" or value of both sides and then assign it
aka a if condition else b while using the walrus allows to only use the len function if it's needed, otherwise the function is never called which allows that small boost in speed.

Looks nice Does the walrus operator boost performance? Have you measured it in comparison to bare ifs and attribute re-usage? Also, you should probably delete that in-code comment left for the older implementation X)

I've been making multiple tests and it always gave better results to use the walrus operator instead of the if, I suppose it's by the fact that the If has to first execute the "function" or value of both sides and then assign it
aka a if condition else b while using the walrus allows to only use the len function if it's needed, otherwise the function is never called which allows that small boost in speed.

No, I meant like
if self.title:
    total += len(self.title)

Would that perform better? Worse? Same?
Could you please test it?

Would that perform better? Worse? Same? Could you please test it?

@artem30801 I've tested and seems to perform actually faster, most likely due to not having to use extra variables.
I'll proceed to update the PR

After generating the length, why not save it to an attribute and whenever the embed is modified set it to None?

It was my understanding most python objects cache their len

Yes, they do (the strings, lists and other built-in structures) but the whole body of __len__ for Embed will still execute:
>>> class AlwaysZero:
...     def __len__(self) -> int:
...             print('Accessed')
...             return 0
...
>>> zero = AlwaysZero()
>>> for _ in range(10):
...     len(zero)
...
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0
Accessed
0

It is up to us to cache the result.

Yes, they do (the strings, lists and other built-in structures) but the whole body of __len__ for Embed will still execute:

Oh i see what you mean, i thought you meant caching each len, my bad for not reading correctly


ThaliCore: Problem with replicating attachments larger than 1mb

Recently we provided additional functionality for ThaliReplicationAction to pass custom No activity timeout value when starting replication. This solved the issue with replicating large attachments on Android phones. However, on iOS ones, it doesn't solve the issue. Note that on WiFi everything works OK (however I had to also extend No activity timeout for 5mb attachments). So in the end it might be a problem in ThaliCore itself.
To replicate the scenario just use recent ThaliTestApp version from master_mlesnic_additional_attachments branch.

There was a problem in ThaliCore that is now fixed in this branch
https://github.com/thaliproject/thali-ios/commits/enrico-1963
1MB, as well as 5MB attachments, can be replicated but the replication timeout is still an issue since it's a fixed value and it doesn't get auto-renewed if there is a replication in progress.


Use correct mapping for elixir filetypes

[x] I have read CONTRIBUTING.md
[x] I have read CODE_OF_CONDUCT.md

Elixir files come under the extensions .ex and .exs (among others, but these are working properly).
In mini.icons, there is an explicit mapping for .exs files, even though:

It's not the most common extension you'll come across, by far
It already works well with vim.filetype.match()

However, .ex has no explicit mapping, even though:

It is the most common elixir file extension you'll see
It currently doesn't work with vim.filetype.match() for some reason

This PR adjusts the mapping so that both extensions are represented in their own specific ways (there is a nerd symbol for elixir scripts that's distinct from normal elixir files so I made use of that). If the mapping for .exs sounds too specific for the scope of this module, I guess it would also be fine to remove it entirely.

Thanks for the quick reply!

The 'ex' extensions was not added because it is not recognized unconditionally. In particular, it can be matched as Euphoria language (which indeed also uses '.ex' extension).

Thanks for the insight, I had no idea about euphoria, and yeah I guess it makes sense.

I am not sure why, because for me it does. Executing :=MiniIcons.get('file', 'hello.ex') returns icon data for 'elixir' filetype.

Huh. Maybe there's something going on on my side then, I'll look into that.

I am happy to add 'elixirscript' as separate filetype if there is evidence it is a relatively used one.

Well, it is commonly used if only because a typical elixir package will always come with a mix.exs script as the main setup utility. It's also the format used to write tests and migrations, so you'll see a lot of those in a big project.
However, it's not an actual filetype as far as neovim is concerned (it's still only recognized as elixir, which makes sense since it's the same thing within). But there is a dedicated icon for those so maybe we still want to make use of it? I guess it would be similar to .h files that are still C code, but come with their own mappings.

Huh. Maybe there's something going on on my side then, I'll look into that.

Would you mind adding a follow up here if/when you figure it out?

However, it's not an actual filetype as far as neovim is concerned (it's still only recognized as elixir, which makes sense since it's the same thing within). But there is a dedicated icon for those so maybe we still want to make use of it? I guess it would be similar to .h files that are still C code, but come with their own mappings.

If it is not an actual filetype (i.e. a value of 'filetype' option when you open such files), then it will not have an entry in "filetype" category.
I am open to changing "exs" extension have "" icon (i.e. "nf-seti-elixir_script" class), but I would like to ask to for some reputable sources that this is the icon that to be used for "exs" extensions.

I've added special support to 'exs' extension as it seems that built-in vim.filetype.match() indeed doesn't differentiate between 'ex' and 'exs' (because there is no dedicated 'elixirscript' filetype, it seems). So this is similar to a precedent of 'h' extension.
Thanks for bringing this up!

Thanks! That sounds completely reasonable.
As for my previous issue, I don't really know what I did, but a minimal setup doesn't show the bug so you can disregard my comments about it.


Update v0.16.2.txt

Add arg3=3 to pipe example

Looks like a good catch! Thanks

Note, in doc/source/basics.rst this was already correct, so should not be changed there as well


Greenwich

Describe what this PR does / why we need it
Unified Dubbo version management
Does this pull request fix one issue?
Fixes#789
Describe how you did it

Delete Dubbo coordinates in spring cloud starter Dubbo POM file
Maintain Dubbo coordinates in spring cloud Alibaba dependencies

Describe how to verify it
Run the mvn clean install command to verify whether it can be compiled
Special notes for reviews
nothing

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.5 out of 8 committers have signed the CLA.:white_check_mark: chuntaojun:white_check_mark: yuhuangbin:white_check_mark: mercyblitz:white_check_mark: SoulSong:white_check_mark: theonefx:x: HaojunRen:x: fangjian0423:x: ligang2495You have signed the CLA already but the status is still pending? Let us recheck it.

nothing


Pathway for readers to submit issues/comments from learn.qiskit.org

Feature description
As far as I was able to tell, there isn't a clear way for readers to find out how or where they should submit feedback/suggestions/corrections for content on https://qiskit.org/learn/ . It might be helpful if there were either a form for feedback submission, or a link to this repository so that users can open issues directly.
Additional context
No response

This repository is no longer maintained. It has been superseded by IBM Quantum Learning.


[v2.5-branch] Bluetooth: controller: backport bug fixes post v.2.5 release

Avoid race between ULL and LLL when initiating
Replace development assert in connection parameter request procedure
Fix channel map and interval value checks when accepting connection indication
Fix regression in control tx PDU queue handling
Fix Feature Exchange procedure to check transaction violations.
Fix race in create connection cancel

Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

I could not find a matching PR for fixing the create connection cancel in the master branch. Is the issue not present in that branch or am I overlooking something?

@wopu-ot You are correct, it an oversight while trying to submit this branch to reporter of the bug https://github.com/zephyrproject-rtos/zephyr/pull/33310#issuecomment-799800442
I will send an upstream PR.


otpauth require apple-otpauth on import

Great script!
not able to use go get but downloaded and run go run main.go... instead and all fine.
Just a heads up, that otpauth://totp need to be manually changed to apple-otpauth://totp if you want to import it correctly in MacOS Monterey.
Not a big issue, as Excel Replace can deal with that, but if you want to amend will make very good tool!

Ah, thanks for finding the missing link! I'll change that right away.

Updated in https://github.com/IngmarStein/1pif-to-csv/commit/23e5f6127bbe900d651706af28844e212d8f263f

I've just tried the batch import again (which takes an astounding amount of time for ~700 passwords) and it looks like the OTPAuth links for existing entries are not amended. It works when I open the apple-otpauth links in Safari. Did it work for you without manual steps?

I open my csv file generated by your script, changed otpauth to apple-otpauth and yes, it import in Monterey correctly and showing codes that match with what I got in other Authenticator app.

Ok, I just verified with a smaller subset and Monterey indeed does update existing entries with TOTP data. Looks like something may be broken when processing a large number (the secd process goes crazy). Thanks for your feedback!

I imported 890 :) with like 20-30OTP


TE: Adding dependency between email reports and anomaly functions for anomaly retrieval in reports.

Created joint table for storing dependencies. Used JPA annotations as well as a joint table entity (EmailFunctionDependency). Updated EmailReportJob to retrieve anomalies by function ids. Added AnomalyResult endpoints to retrieve by function.

LGTM


iOS wants to run never installed release

I got stuck on an iOS screen complaining not finding my app.html because it thinks there is a release stored already. But it is not.
016-05-02 11:41:37.692 App[23303:1254211] Currently running release version 2016.05.02-09.42.03

Actually on https://github.com/nordnet/cordova-hot-code-push/wiki/How-web-project-files-are-stored-and-updated suggestion 2 worked.


Vim: Delete everything

While this isn't the only way to delete everything, it is the easiest and the most intuitive.
I don't think the other methods are worth mentioning.

Deployed here: https://onelinerhub.com/vim/how-to-delete-all-content
Thanks man!


STACKREFLEN is not aware of the deletion of key

I'm not sure the expected behavior of the STACKREF type, a ref behaves like a soft link to the key, that is, stackreflen report the correct len after trying to access a deleted key, which may be confusing.
How to reproduce

m3/macos 14.2
go run main.go based on commit 34d5fa5

<IP_ADDRESS>:7379> set s1 1
OK
<IP_ADDRESS>:7379> stackrefpush st1 s1
(integer) 1
<IP_ADDRESS>:7379> stackreflen st1
(integer) 1
<IP_ADDRESS>:7379> del s1
(integer) 1
<IP_ADDRESS>:7379> stackreflen st1
(integer) 1
<IP_ADDRESS>:7379> stackrefpop st1
(nil)
<IP_ADDRESS>:7379> stackreflen st1
(integer) 0

Expected behavior
<IP_ADDRESS>:7379> set s1 1
OK
<IP_ADDRESS>:7379> stackrefpush st1 s1
(integer) 1
<IP_ADDRESS>:7379> stackreflen st1
(integer) 1
<IP_ADDRESS>:7379> del s1
(integer) 1
<IP_ADDRESS>:7379> stackreflen st1
(integer) 0
<IP_ADDRESS>:7379> stackrefpop st1
(nil)
<IP_ADDRESS>:7379> stackreflen st1
(integer) 0

Thank you for reporting this bug, must have overlooked this case.

@JyotinderSingh For this, while pushing onto the stack, shall we also add a reference?
https://github.com/DiceDB/dice/blob/master/core/eval.go#L978

java 可以用这个db么？

@JyotinderSingh if nobody is working on this , can i take this one?

@JyotinderSingh if nobody is working on this , can i take this one?

Assigned

@JyotinderSingh
I am thinking of adding cleanup method in stackref.go
// Cleanup removes expired or deleted keys from the stack.
func (s *StackRef) Cleanup() {
	var validElements []int64

	for {
		val, err := s.si.Pop()
		if err != nil {
			break // Break the loop if the stack is empty
		}

		key := *((*string)(unsafe.Pointer(uintptr(val))))
		obj := Get(key)
		if obj != nil {
			validElements = append(validElements, val)
		}
	}

	for i := len(validElements) - 1; i >= 0; i-- {
		s.si.Push(validElements[i])
	}
}

and will use it before returning the length.
The reason behind is that the keys which are expired or deleted  can be anywhere in stack.
Do you have any other optimal way to do this?
Or any suggestion?

@JyotinderSingh
I am thinking of adding cleanup method in stackref.go
// Cleanup removes expired or deleted keys from the stack.
func (s *StackRef) Cleanup() {
	var validElements []int64

	for {
		val, err := s.si.Pop()
		if err != nil {
			break // Break the loop if the stack is empty
		}

		key := *((*string)(unsafe.Pointer(uintptr(val))))
		obj := Get(key)
		if obj != nil {
			validElements = append(validElements, val)
		}
	}

	for i := len(validElements) - 1; i >= 0; i-- {
		s.si.Push(validElements[i])
	}
}

and will use it before returning the length.
The reason behind is that the keys which are expired or deleted can be anywhere in stack.
I thought of map but we cannot handle expired keys in that case.
or should we count expired keys also in STACKREFLEN?
Do you have any other optimal way to do this?
Or any suggestion?

@JyotinderSingh I am thinking of adding cleanup method in stackref.go
// Cleanup removes expired or deleted keys from the stack.
func (s *StackRef) Cleanup() {
	var validElements []int64

	for {
		val, err := s.si.Pop()
		if err != nil {
			break // Break the loop if the stack is empty
		}

		key := *((*string)(unsafe.Pointer(uintptr(val))))
		obj := Get(key)
		if obj != nil {
			validElements = append(validElements, val)
		}
	}

	for i := len(validElements) - 1; i >= 0; i-- {
		s.si.Push(validElements[i])
	}
}

and will use it before returning the length. The reason behind is that the keys which are expired or deleted can be anywhere in stack.
I thought of map but we cannot handle expired keys in that case. or should we count expired keys also in STACKREFLEN?
Do you have any other optimal way to do this? Or any suggestion?

To make things look consistent, we could do one of these refactorations:
returning nil when STACKREFPOP a deleted key
or
returning the number of keys that haven't been deleted or expired when executing STACKREFLEN .
The former one may be easier to realize.

@NOS-AE  Thanks for suggestions.

returning nil when STACKREFPOP a deleted key

This will change current behavior of Pop(), that is popping until non-expired key and also not deleted.
@JyotinderSingh which approach should we follow from above two?

@JyotinderSingh
In worst case for 1st approach could be like many (suppose 10000 ) expired key and 2-3 non-expired key.
then STACKREFLEN return a number which will far from real number.
Performance wise 2nd approach is not good.
if we don't have any other option we can go with 1st approach.
Also one thing to notice the comment is not referring to correct implementation of Pop()
// Pop pops the reference from the stack s.
// returns nil if key does not exist in the store any more
// if the expired key is popped from the stack, we continue to pop until
// until we find one non-expired key
// TODO: test for expired keys
func (s *StackRef) Pop() (*StackElement, error) {

comment says that function returns nil if key does not exists but actually it pops the key and check for next key in stack (it behaves same as expired key).
cc @NOS-AE

@JyotinderSingh
In worst case for 1st approach could be like many (suppose 10000 ) expired key and 2-3 non-expired key.
then STACKREFLEN return a number which will far from real number.
Performance wise 2nd approach is not good.
if we don't have any other option we can go with 1st approach.
Also one thing to notice the comment is not referring to correct implementation of Pop()

// Pop pops the reference from the stack s.

// returns nil if key does not exist in the store any more

// if the expired key is popped from the stack, we continue to pop until

// until we find one non-expired key

// TODO: test for expired keys

func (s *StackRef) Pop() (*StackElement, error) {

comment says that function returns nil if key does not exists but actually it pops the key and check for next key in stack (it behaves same as expired key).
cc @NOS-AE

Yeah the second line of the comment doesn't clearly explain the behavior. We can fix it as a part of the PR for this issue.
I'm tempted to go with option 2 (perform cleanup).
@soumya-codes what do you think?

@JyotinderSingh In worst case for 1st approach could be like many (suppose 10000 ) expired key and 2-3 non-expired key.在最坏的情况下，第一种方法可能是许多（假设 10000 个）过期密钥和 2-3 个未过期密钥。 then STACKREFLEN return a number which will far from real number.然后 STACKREFLEN 返回一个远离实数的数字。

Performance wise 2nd approach is not good.性能方面，第二种方法不好。

if we don't have any other option we can go with 1st approach.如果我们没有其他选择，我们可以采用第一种方法。

Also one thing to notice the comment is not referring to correct implementation of Pop()另外需要注意的一件事是，该注释并未提及 Pop() 的正确实现

// Pop pops the reference from the stack s.

// returns nil if key does not exist in the store any more

// if the expired key is popped from the stack, we continue to pop until

// until we find one non-expired key

// TODO: test for expired keys

func (s *StackRef) Pop() (*StackElement, error) {

comment says that function returns nil if key does not exists but actually it pops the key and check for next key in stack (it behaves same as expired key).注释说如果键不存在，函数将返回 nil，但实际上它会弹出键并检查堆栈中的下一个键（其行为与过期键相同）。

cc @NOS-AE

Prefer the consistency rather than an approximate probe. If so, leaving a statement/comment in document/code about the worst time complexity of STACKREFLEN would be great for whoever want to use it.

Agreed. Let's go with the performance tradeoff in this case.

Going with cleanup method.

@kushal0511-not, given the current context i agree with @JyotinderSingh that we should go for consistency over approximation and take the second approach.
However in the medium term we can handle this more efficiently by separating the two concerns stack-length and stack-operations separately.

We handle updating stack length of each of the stacks synchronously as and when a key is deleted or it expires. We can see how we can handle this with minimal overhead.
The handling of removing/dealing with deleted/expired keys can be done lazily during stack push/pop operations as we do today, the handling of stack-length can be handled synchronously when key expires or is deleted.

Let me know what you both think, if you agree with this approach we can discuss about the implementation.

returns nil if key does not exist in the store any more

So will we be updating the comment to reflect the current behaviour?

The cleanup method looks good. @kushal0511-not
Also, I agree with what @soumya-codes says, stack-length and actual stack operations can be separated, I just have once concern that there at any point in time will there be any inconsistencies between length and actual operation just because we are doing it lazily.

@AshwinKul28 when I say lazily, I meant we can keep the implementation as it is today i.e. handling the deleted/expired key during POP operation. Only issue I see with the current approach is that the stack size can be ever increasing if we have in-frequent POP operations.

Let me know what you both think, if you agree with this approach we can discuss about the implementation.

@soumya-codes Sure we can discuss.
I have doubt about how we can handle expired keys because at the time of expiration key can be any where in stack.

So will we be updating the comment to reflect the current behavior?

yes

just an overhead of popping and again pushing almost full array every time.

@AshwinKul28  yeah

@soumya-codes  and I discussed this issue and we've reached the following conclusions:

There is no reference in redis of QREF or STCKREF from which we can get to know implementation and time and space complexity of command.
Is this new add-on in DiceDB like which we are offering different from redis?

As of Now , We don't have any notification mechanism so that we know that key got expired (at the moment of expiration). We need to fix that before implementing STACKREFLEN.

Given these points, we've decided that we should temporarily remove support for STACKREFLEN until these issues are resolved.
@JyotinderSingh @arpitbbhayani

@soumya-codes  and I discussed this issue and we've reached the following conclusions:

There is no reference in redis of QREF or STCKREF from which we can get to know implementation and time and space complexity of command.

Is this new add-on in DiceDB like which we are offering different from redis?

As of Now , We don't have any notification mechanism so that we know that key got expired (at the moment of expiration). We need to fix that before implementing STACKREFLEN.

Given these points, we've decided that we should temporarily remove support for STACKREFLEN until these issues are resolved.
CC: @JyotinderSingh @arpitbbhayani

STACKREF is a novel data structure in dice. I am okay with removing the STACKREFLEF command.
Alternatively we could maintain the command with the performance penalty of clearing up the stack.
I am okay with whatever the general consensus is.

STACKREF is a novel data structure in dice. I am okay with removing the STACKREFLEF command. Alternatively we could maintain the command with the performance penalty of clearing up the stack. I am okay with whatever the general consensus is.

Since it is a unique proposition from DiceDB, we can add few limitations to ensure novelty while limiting the performance penalty:

Limit the stack size. For example to 10000 entries.
Limit the number of stacks. For example to 100.

@kushal0511-not @JyotinderSingh wdyt?

STACKREF is a novel data structure in dice. I am okay with removing the STACKREFLEF command. Alternatively we could maintain the command with the performance penalty of clearing up the stack. I am okay with whatever the general consensus is.

Since it is a unique proposition from DiceDB, we can add few limitations to ensure novelty while limiting the performance penalty:

Limit the stack size. For example to 10000 entries.

Limit the number of stacks. For example to 100.

@kushal0511-not @JyotinderSingh wdyt?

Sounds good to me

We probably want to do something similar for QueueRef

STACKREF is a novel data structure in dice. I am okay with removing the STACKREFLEF command. Alternatively we could maintain the command with the performance penalty of clearing up the stack. I am okay with whatever the general consensus is.

Since it is a unique proposition from DiceDB, we can add few limitations to ensure novelty while limiting the performance penalty:

Limit the stack size. For example to 10000 entries.
Limit the number of stacks. For example to 100.

@kushal0511-not @JyotinderSingh wdyt?

Yeah thats good idea.

We probably want to do something similar for QueueRef

Yes
@JyotinderSingh
Can i do changes for that also in the same PR which i will raise for this issue?

STACKREF is a novel data structure in dice. I am okay with removing the STACKREFLEF command. Alternatively we could maintain the command with the performance penalty of clearing up the stack. I am okay with whatever the general consensus is.

Since it is a unique proposition from DiceDB, we can add few limitations to ensure novelty while limiting the performance penalty:

Limit the stack size. For example to 10000 entries.

Limit the number of stacks. For example to 100.

@kushal0511-not @JyotinderSingh wdyt?

Yeah thats good idea.

We probably want to do something similar for QueueRef

Yes
@JyotinderSingh
Can i do changes for that also in the same PR which i will raise for this issue? If that is okay

Sure, sounds good


static-pods: Document the behaviour of static pods

This patch documents that resources requested by static pods
are not accounted for when per NUMA resource availablity is
calculated.
Signed-off-by: Swati Sehgal<EMAIL_ADDRESS>

/cc @fromanirh

/override ci/prow/ci-e2e

/override ci/prow/ci-install-e2e

We need to revert this because of it was an indentation mistake because of which pod resources and QoS weren't correctly reported. More details can be found here:  https://github.com/kubernetes/kubernetes/issues/110944#issuecomment-1173903944.


[FR] Choose the options in the Panel

I use :Telekasten (binded to a keymap, of course), and I am shown the panel, which I then use to do whatever I want. However, some options in the panel will never be useful to me.
It would be nice if one could choose which functions we see in the panel.

This is indeed something that could be done easily with the new configuration structure after the refactoring.
We could even add custom stuff to this panel that way (functions with pre-filled optional arguments, etc).


Move AkihiroSuda/kubernetes to rootless-containers/kubernetes

When we open PRs to the kubernetes/kubernetes upstream, maybe we should squash commits. (Signed-Off-By should be kept)

On second thought may be we should stop forking repos and just put `.patch files into this repo

opened #23 for moving the patch set (*.patch files) into this repo


Add ingress-provider label to webhook

This patch adds the label networking.knative.dev/ingress-provider: istio to webhook resources.
As the net-istio.yaml in the serving project does not have the label in webhook resources, it installs them unexpectedly:
$ cd $GOPATH/src/knative.dev/serving
$ ko apply -f config/ --selector=networking.knative.dev/ingress-provider!=istio
  ...
mutatingwebhookconfiguration.admissionregistration.k8s.io/webhook.istio.networking.internal.knative.dev created
validatingwebhookconfiguration.admissionregistration.k8s.io/config.webhook.istio.networking.internal.knative.dev created
secret/istio-webhook-certs created
deployment.apps/istio-webhook created
service/istio-webhook created

istio-webhook should be necessary only for Istio ingress.

/cc @trshafer @tcnghia

Hey apologies I don't feel qualified to review this.

/lgtm


Diffing issues

Component: patch.ts

Cannot diff DOM's attribute, EG:

if (("getAttribute" in node && node.getAttribute('value')) !==
        ("getAttribute" in currentDOMNodes[index] && currentDOMNodes[index].getAttribute('value'))) {
        currentDOMNodes[index].setAttribute('value', ("getAttribute" in node ? node.getAttribute('value') : null))
      }

The above function always returns true
So render function likes this cannot reactive update:
return `
    <button id="add-btn" type="submit" ${state.hide ? 'hide' : ''}>Add</button>
`

This will affect all node's attributes cannot be updated when state changes, EG: value, style, class, hidden, href...
How to solve: Don't know yet

Array rendering re-paint if append elements to head

Render function:
return `
    <ul>
         ${state.todos.map(todo => `<li>${todo}</li>`).join('')}
     </ul>
`

Unshift on array state will cause repaint entire the <ul> div:
function addTodo() {
    state.todos.unshift(state.text)
    state.text = ''
}

The same will happen for state.todo[1] = 'Text' and any other operations on array state.
How to solve: Use key for each item, improve the diff for arrays

Still need to handle the array's keys


Tensorflow logo change

Update brand logo on the demo site. Currently it's the old logo.

Adhere to brand guidelines.
https://www.tensorflow.org/extras/tensorflow_brand_guidelines.pdf


chore: force update packages

Overview
Provide an explanation of what the change is
Verifying Changes
Scene Composer
For scene-composer package changes specifically, you can preview the component in the published storybook artifact. To do this, wait for the Publish Storybook action to complete below.

Click on the workflow details
Select the Summary item on the left
Download the zip file

To run the storybook build locally, you need a local static web server:
npm install -g httpserver
cd <Extracted Zip Directory>
httpserver

Then open the website http://localhost:8080 to run the doc site.
Legal
This project is available under the Apache 2.0 License.

/approve-snapshots

Anything to add to the package READMEs about new commands, installation, storybook setup, env vars?


Create pull_request_template.md

What
Add PR Template
Why
Makes it standard for new PRs to include required information.
Providing this PR as an example if you want to include on other repos.

Thanks @gabel0287 for taking the initiative!

Just one thing, what do you think about using the .github/ folder instead - to avoid cluttering the root folder?
here's how we did it in the geodesic product:


Question: How to archive 3d assets for the long term?

My thoughts is a combination of having archive box save the asset as a Blender file and as a gltf2.
However, there's layers of problems here.
Any suggestions are welcome.
I can provide technical support and man-months, but not sure where to start.

What do you mean by 3d assets? Can you provide some examples of URLs and formats that you'd expect it to be able to save?

Thanks for your prompt reply.

(gltf without animations) https://3d.si.edu/object/3d/command-module-apollo-11:d8c63e8a-4ebc-11ea-b77f-2e728ce88125
(blend) https://cloud.blender.org/p/gallery/5e46a80442fa9613e1cd1fca
(blend) https://cloud.blender.org/p/gallery/60337d495677e942564cce76
(gltf with culturally significant animations) https://sketchfab.com/3d-models/fortnite-floss-emote-0a52f8e8eaf7441faffd8efc8d8a9e0e

The typical formats are FBX (no good opensource reader), glTF2(open source), Blend (has a implementation in Blender but is complicated) and USDZ(Newer standard. do not use due to complexity). I think there are a few cad formats, but they're either convertable to gltf2 or blender.

I think the best way to go about this is to find an existing program that can look for these assets on a page (given some html or a url) and add it as an extractor module to archivebox.
I don't know the 3D space at all, so I'm probably not the right person for this, but I'm happy to review PRs or design proposals for such an extractor.

If I can script Blender would that be acceptable?
https://github.com/donmccurdy/glTF-Transform is web native.

@pirate Can you link me some guides for writing extractors. Also what is the format for design proposals?

@fire The process for adding a new extractor is documented here:

https://github.com/ArchiveBox/ArchiveBox#archivebox-development
https://github.com/ArchiveBox/ArchiveBox#contributing-a-new-extractor

Note the main constraint for ArchiveBox right now is deployment complexity, so I'm putting a hold adding new binary dependencies at the moment. I don't think that will necessarily impair your ability to download 3d files as long as they don't need any further 3d processing after download. If you have a pure python package or npm library that can snapshot 3d assets from a URL with minimal packaging complexity and linux/macOS + x86/arm7/arm64 support then I'm down to consider it.

The standard tool for gltf is https://gltf-transform.donmccurdy.com/ like ffmpeg in video importing.
I'll have to find a url extractor.

Suggest an interface for me, and I might take a try at making one from scratch.

Same CLI as YouTube-dl would be great. E.g.
shapefile-dl [--max-size=750m] https://example.com/some/page/containing/cad/files
It should output one or more files to the current directory the command is run in, and return 1 exit status + error text if it fails, or 2 exit status if no shape files are found.
Pure Python would be ideal, but js is also ok.

Oh. so it needs to be python or javascript, but not like c++ or elixir binaries, hmmm

A binary is technically ok, it's just more difficult for us to maintain and for users to install. If it's not Python or JS, then it needs to be packaged via both apt and brew, and we have to update and test more places like the Dockerfiles, CI configs, documentation, setup helper scripts, etc.

I think I can use Godot Engine to handle some of these formats in the near future.

FBX - we are developing a Godot Engine opensource reader
glTF2 - we can use Godot Engine to parse the metadata
blender - we can use Godot Engine and Blender in a docker container
USDZ - usd2glb supports converting USDZ to gltf https://github.com/fynv/usd2glb

This is a lot of post processing, I think archivebox mostly cares about preservation / extracting the initial files out of websites.
I don't really want to be doing anything that requires a 3d engine as that's a bit beyond our scope and can be done with a separate program in a pipeline after archival.

@benmuth would also be interested in a solution to this if you want to do some research / see what works for this problem. some sites to try extracting STLs & CAD files out of:

https://thingiverse.com
https://thangs.com
https://grabcad.com/

The good thing is CAD files that don't involve animation are relatively easy, but STEP is hard.

I am trying a fork of https://github.com/V-Sekai/USD-Fileformat-plugins/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc for conversion of 3d model formats, but its not trivial at all. Think like 1.6 gigabytes.

One simple solution we could do is run all the URLs in found in a page through something like magika and download anything that has cad, 3d, shapefile, etc. in the detected type output.
https://opensource.googleblog.com/2024/02/magika-ai-powered-fast-and-efficient-file-type-identification.html

It is wise to note that the process of determining dependencies might be a lot easier to solve than parsing the entire file.
Like given a fbx file it's easier to parse to find its dependent textures than to like convert it to glb.
This is related to the only do scanning idea mentioned in the last post.

To clarify again, I don't want ArchiveBox to actually process any 3D files / read their contents. I just want it to download whatever is available. People can always have other programs read the output from archivebox.

I tried to find existing tools to extract these files, but haven't had success yet.

One simple solution we could do is run all the URLs in found in a page through something like magika and download anything that has cad, 3d, shapefile, etc. in the detected type output.
https://opensource.googleblog.com/2024/02/magika-ai-powered-fast-and-efficient-file-type-identification.html

I like this idea, but it looks like magika doesn't support these formats yet. They're accepting suggestions, so maybe we can open an issue for each of these (it looks like .blend files have already been suggested).
I gave it a shot anyway with some of the file types linked in this issue, and here are the results I got (also included file results for reference):
stl
magika: ISO 9660 CD-ROM filesystem data (archive) 99%
file: data
gltf
magika: JSON document (code) 97%
file: JSON data
blend
magika: gzip compressed data (archive) 100%
file: gzip compressed data
STEP
magika: Generic text document (text) [Low-confidence model best-guess: CSV document (code), score=41]
file: ASCII text, with very long lines (1650), with CRLF line terminators
I'd like to try more files, but these are the formats I could easily find examples of.
Not sure how stable these results will be across all valid files of each format. The only one I'm confident would be stable is gltf because it seems that it's literally JSON.
If we're confident that magika (or even libmagic I guess) would give a stable, meaningful (i.e. not "data" or something) result for a given format, I guess we could just look for links with the correct extension, check to see if the linked resource the expected output for that filetype from magika/libmagic, then download it if so. Seems janky but it might work.
Does that approach make sense? Or should we just wait for official support for each file type from magika? I can try writing a test script to see how well it works if we think it's something worth pursuing.

On further inspection magika is actually pretty disappointing, there are many formats it sucks at detecting.
I think simple extension/content-type based detection is enough for now. Scraping a site to find all URLs that end in relevant extensions (.blend, .stl, .obj, .stp, etc. ) and just wget-ing those would already be super useful.

I've checked quite a few websites and can't find any that directly link to 3d assets. I could be looking in the wrong places though. I'd appreciate a link if someone finds one.

These are the key ones I want to support: https://github.com/ArchiveBox/ArchiveBox/issues/668#issuecomment-1958236944
If they don't link directly then we may need to write a puppeteer script like this to get the files.


Kustomize-based installation method doesn't provide uninstall

To fully substitute the current kamel install/uninstall, we'd need to provide uninstallation based on Kustomize like make uninstall. For using kubectl, it should be possible by doing kubectl delete -k <target> but should be documented.
Relates to #3865

@phantomjinx Does it make sense?

@phantomjinx Does it make sense?

Yes. That's logical. I wasn't aware that kubectl could utilise delete and -k for that purpose :-)


Feature/hardhat unittest

hardhat configuration
unit-test of tokens

Can you fix the conflict and make sure ci works

Adding @wschwab


Uncaught ReferenceError: google is not defined

Its totally not clear on how you are binding the Google Apps Script to the index.html page.  That failure makes this example incomprehensible. Is there a line of code or two missing,something that links back to your google sheet, your google calendar or your google app scripts?  A script call out in the header or something?  Clearly its not <script src="code.gs"></script>
I can see how to use Google Apps Scripts in Google drive, but its not clear on how to tie those to an html web page.  You just end up with Uncaught ReferenceError: google is not defined
Possible to leave those lines in the index.html with api keys xxxxxxxxxx hidden to protect you, buy give us a hint on how the binding works?
Or in the alternative give us a hint on how to tie things together on the markdown overview?
Many thanks for sharing.

On google apps script, the following is documented here.
https://developers.google.com/apps-script/guides/html/templates


[Script]: Stack Overflow Scrapper

Aim
To scrape theStack Overflow website and obtain the questions, description, view count, answer count, vote count, etc. as a JSON response.
Details
It will provide a JSON response which will have the questions, description, view count, answer count, vote count, etc. for a given topic provided by the user.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

Go Ahead @Mihan786Chistie

Thanks @avinashkranjan


networking on docker

Hi,
I found the README for the docker container a bit confusing...
What I did to run the 2 containers (Redis and xcessiv) was simply:
docker run --name some-redis -d redis
docker run -P --name='xcessiv' --link some-redis:redis reiinakano/xcessiv xcessiv -H redis -P 6379
without the need to figure out the ip of the redis container.

Hi @lucaventurini! That's certainly a much cleaner way to run Xcessiv on Docker. Thanks! Will be adding that to the README soon.


Fix message handle that breaks MT in error code table

Addresses a typo that breaks MT, as identified by a localization manager via https://github.com/MicrosoftDocs/windows-itpro-docs/issues/3595#issuecomment-517498383
Closes #3595

@greg-lindsay The PR that addresses a minor typo that breaks MT is available for review. Thanks.

The default branch for this repository has changed. Commenting to remember to merge this to the new default, if this PR gets merged.

Thanks for the useful comment, I noticed something changed in Git Extensions when updating my local fork today.


feat: update kayobe-automation submodule and workflows

Upgrade both the submodule used by kayobe-automation and the workflows collection that can generate GitHub workflows.
Changes include:

Run config-diff in parallel
Automation detect vaulted files for config-diff
Add support for running hooks that use roles
Improvements to Tempest including the ability to run only failed tests
Use less verbose input descriptions
Bump up and pin the version of Actions and containers used by the workflows

@jackhodgkiss CI is still failing, could you rebase or merge the latest changes from stackhpc/2023.1?


FR: support bwa mem2

Quite self-explanatory. Should be much faster -> much cooler.

Still a WIP according to their github page, not recommended for production uses at the moment. Will implement it once "done". Should be twice as fast.
https://github.com/bwa-mem2/bwa-mem2

Indexing the reference sequence (Requires 28N GB memory where N is the size of the reference sequence).

That's a yikes


New Subdomain on Jenkins-X.io for Community Discourse Forum

We'd like to create a new subdomain on Jenkins-X.io -> discussion.jenkins-x.io. That subdomain then needs to be pointed to <IP_ADDRESS> - an open-source discourse forum that will be used to advance the JX community.
The issue was originally raised here: https://github.com/jenkins-x/jx/issues/7044

Hi @Dgiordano33, just confirming that I'm on this. The request has been filed with LF IT.

Hi @Dgiordano33, confirming that this is done.


JUnit4 to JUnit5 migration

Hi team,
A proposal to moving on after the adoption of java8+ is to start the migration from junit4 to jnuit5.

JUnit 4 never advanced beyond Java 7, missing out on a lot of features from Java 8. JUnit 5 makes good use of the Java 8 features.
A single jar library contains the entire framework. We need to import the whole library, even when we only require a particular feature. In JUnit 5, we get more granularity and can import only what's necessary.
Only one test runner can execute tests at a time in JUnit 4 (e.g. @RunWith(Parameterized.class)
or provide druid extension with the adoption of JUnit Platform). JUnit 5 allows multiple runners to work simultaneously.

As a strategy for the approach I would suggest to migrate one module at a time(it will be easier for the prs) and create tasks for the rest of the modules. As a starting point we can still depend on JUnit Vintage for backward compatibility with JUnit 4 but gradually moving to JUnit5.
I think all the point mentioned describes why it would be beneficial for apache druid as well as I would like to pick this issue if the rest of the community is interested.

@UngureanuSerg Thanks for starting this. Yes lets start the migration. Pretty excited  🚀 .
IMHO JUnit Vintage should be our last option. If we are able to move to the JUnit 5 using Unit Platform dependencies that would be event cooler.

@UngureanuSerg Thanks for starting this. Yes lets start the migration. Pretty excited 🚀 .
IMHO JUnit Vintage should be our last option. If we are able to move to the JUnit 5 using Unit Platform dependencies that would be event cooler.

I don't know the details, but if "JUnit Vintage" allows us to do a migration piece-by-piece instead of updating every test case at once, that sounds like a good thing. Updating every test case at once could potentially be a prohibitive amount of work for a single contributor.

Hey Gian I didn't know that junit-vintage give this kind of capabilities but I will check it for sure

In other projects I use junit-vintage to mix both JUnit5 and JUnit4 tests in the same suites. This allows for new tests or tests where you want to take advantage of the features to be converted while leaving all the existing tests on Junit4. Pretty much a best of both worlds scenario.

there was a related PR to this: #16106 ;
I would like to leave a note here: to make sure that future PRs upgrading to junit5 should also configure openrewrite via rewrites.yml to ensure that no junit4 starts getting back into the upgraded testclasses (configuring that first and running the rewrite engine could jump-start the migration process as well)


kustomize-controller hangs frequently

We use flux in 5 clusters, and in just one of them (the newest, smallest one) the kustomize controller keeps hanging so bad I have to kill the pod. I don't see anything interesting in the logs before this happens, and otherwise there's no difference between this and other deploys. I upgraded to the latest version, but still seeing the same behaviour.
$ kubectl -n flux-system exec -it source-controller-7b66c9d497-r4d68 -- sh
~ $ du -sh /data/*
3.9M	/data/gitrepository

As it hangs, I see CPU max out at 1.5GB. NB in all of the clusters I've had to increase the memory requests and limits to around 1.2/1.5GB, but only in this cluster does the controller hang.

How did you determined that it hands? If you do flux get kustomizations --all-namespaces are things stuck in health checking?

I notice that my changes have not been applied, then if I try to interact with the controller I see eg
$ flux resume ks kube-state-metrics -n monitoring
► resuming kustomization kube-state-metrics in monitoring namespace
✔ kustomization resumed
◎ waiting for Kustomization reconciliation

✗ client rate limiter Wait returned an error: context deadline exceeded

To kill the pod I have to use --force

Can you please do a memory dump and post it here: https://fluxcd.io/flux/gitops-toolkit/debugging/#collecting-a-profile

heap.out.zip

3.9M	/data/gitrepository
see CPU max out at 1.5GB

I'm confused, with 3.9MB of YAMLs, kustomize-controller uses 1.5GB of memory or is that a type and you wanted to say 1.5 CPUs??

Sorry, it's the CPU that is very high, not the memory - my bad. I meant 1.5 CPU here.
I can't seem to run that command - I get error: Metrics API not available

(In the prod cluster, the kustomize controller uses up around 1.1GB of memory. But in this cluster it's only 200MB)

How do you know determine the memory and COU usage if your cluster doesn't have metrics-server?

Right now I'm peering at the metrics reported by OpenLens - I'm in the middle of setting up the monitoring stack.

Can you please setup metrics-server so you can use kubectl top, here is the Flux HelmRelease for it https://github.com/stefanprodan/flux-local-dev/blob/main/kubernetes/infra/controllers/metrics-server.yaml

$ kubectl -n flux-system top pods
NAME                                           CPU(cores)   MEMORY(bytes)
helm-controller-69689858db-xfpml               2m           85Mi
image-automation-controller-5dc8dd5444-4jvjn   1m           19Mi
image-reflector-controller-b678b766b-5fkv8     4m           50Mi
kustomize-controller-7c5dcfc76d-2d9zm          1501m        164Mi
notification-controller-5f54dc6c8b-lv52m       1m           25Mi
source-controller-6979d6967d-xfkx9             1m           76Mi

Can you please post here cat /proc/cpuinfo and uname -a from the node where kustomize-controller is running.

Just to come back with some more details, the following just happened (and I assume, happens each time)

I make a change that involves running a kustomize reconciliation
the kustomize controller starts the reconciliation, but immediately hits the 1.5 CPU limit and hangs
this not only hangs the controller, but the whole node - I was logged into the node at the time, and now my shell is completely unresponsive

If I kill the kustomize controller (needing to use --force), the pod is scheduled elsewhere and works for a while.
The node, on the other hand, is eventually marked NotReady and terminated.

I suspect this is a YAML parser issue, I'm testing Flux with 3K manifests and my CPU is at 400m

Could well be - but then super strange that it doesn't happen in any other cluster. I mean, those also use a lot of resources, but don't hang up and die.

Can you do a diff and find what what manifests are only in cluster where this happens? This way we could identify the exact YAML so we can reproduce it.

The repo structure is like

library
cluster1
cluster2
so the relevant yaml is just the cluster dir, plus a few items from the library. I could DM that to you if it would help?

Ok let's catchup on Slack Monday. Thanks!

Thank you! Really appreciate the effort :) Have a great weekend


fix: TypeError: Cannot read property 'getBufferAsync' of undefined

Install the extension
Create a samples.md file
Paste the markdown contents into samples.md from the documentation of the VSCode extension
Attempt to generate the PNG files from the code using the extension
Crash happens

[2021-07-12 11:56:47.722] [exthost] [info] ExtensionService#_doActivateExtension LuisAlvesMartins.markdown-code-to-png {"startup":false,"extensionId":{"value":"LuisAlvesMartins.markdown-code-to-png","_lower":"luisalvesmartins.markdown-code-to-png"},"activationEvent":"onCommand:markdown-code-to-png.topng"}
[2021-07-12 11:56:47.723] [exthost] [info] ExtensionService#loadCommonJSModule file:///home/****/.vscode/extensions/luisalvesmartins.markdown-code-to-png-1.2.1/out/extension.js
[2021-07-12 11:56:48.325] [exthost] [error] TypeError: Cannot read property 'getBufferAsync' of undefined
	at /home/****/.vscode/extensions/luisalvesmartins.markdown-code-to-png-1.2.1/out/extension.js:59:44
	at Generator.throw (<anonymous>)
	at rejected (/home/****/.vscode/extensions/luisalvesmartins.markdown-code-to-png-1.2.1/out/extension.js:6:65) markdown-code-to-png.topng
[2021-07-12 12:01:15.435] [exthost] [error] TypeError: Cannot read property 'getBufferAsync' of undefined
	at /home/****/.vscode/extensions/luisalvesmartins.markdown-code-to-png-1.2.1/out/extension.js:59:44
	at Generator.throw (<anonymous>)
	at rejected (/home/****/.vscode/extensions/luisalvesmartins.markdown-code-to-png-1.2.1/out/extension.js:6:65) markdown-code-to-png.topng
[2021-07-12 12:02:48.523] [exthost] [info] extension host terminating: renderer closed the socket

Hi, can you please try with this markdown below to check if it raises the same error?
 Can you please ensure you are using CRLF?
On Mon, Jul 19, 2021 at 7:04 PM Peter Somogyvari @.***>
wrote:

@luisalvesmartins https://github.com/luisalvesmartins Same behavior
unfortunately
[image: Screenshot from 2021-07-19 11-02-19]
https://user-images.githubusercontent.com/1583231/126206042-ff38f649-ed19-4756-9efe-53b7e40dab3e.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/luisalvesmartins/Markdown-Mermaid-Expand-to-PNG/issues/2#issuecomment-882749601,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAE5AENJKZ7OTQUYUYMNO2LTYRSK7ANCNFSM5AHN3L2A
.

@luisalvesmartins Switching to CLRF fixed it. Any chance that the extension could support LF in the future as well?

Hello,
I'm getting the same issue despite using CRLF, could you help me ?

I'm using UTF-8 encoding.
You'll find attached a sample. Thanks in advance for you help :)
sample.md

It worked out of the box:

I will do more tests on your file


Reword comment in SwiftOutputStream

AlluxioALLUXIO-2388
Reword comment in SwiftOutputStream

Can one of the admins verify this patch?

ok to test

Jenkins, add to whitelist

Merged build finished. Test PASSed.

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

@xiaahui could you modify the title of the PR? Thanks!


Added KMS CMS to SNS Topic

Securing SNS Topic
Secured the listed SNS topic with encryption using KMS.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Resolved


Add PHP versions and tools, etc.

Can you order the tools in the Dockerfile alphabetically (largely just because that's what we've been doing so far). Thanks!

Definitely!

I'll merge this change and make the update I suggested prior to building.


Make FlyteRemote example slightly more copy/pastable

TL;DR
Please replace this text with a description of what this PR accomplishes.
Type

[ ] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[ ] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/flyteorg/flyte/issues/
Follow-up issue
NA
OR
https://github.com/flyteorg/flyte/issues/

sure...` but the real answer is to put this into console.

using the remote client made load testing really easy, but maybe it's by design though that it's not too accessible :)


Added python solution for Largest-Number-At-Least-Twice-of-Others

I have added the python solution for Largest-Number-At-Least-Twice-of-Others in Leet Code

The main.py seems to be empty so closing this request


AtUri.from_str() returns invalid host for some AT uri's  (Fix included)

Example: AtUri.from_str("at://100ideas.bsky.social").hostname
returns: at:
should return: 100ideas.bsky.social
Fix: This implementation is based on a REGEX string from bluesky-social and they've updated and changed this string. Making similar change here fixes the problem.
In packages/atproto_core/uri/uri.py change _ATP_URI_REGEX
from: _ATP_URI_REGEX = r'^(at:\/\/)?((?:did:[a-z0-9:%-]+)|(?:[a-z][a-z0-9.:-]*))(\/[^?#\s]*)?(\?[^#\s]+)?(#[^\s]+)?$'
to  : _ATP_URI_REGEX = r'^(at:\/\/)?((?:did:[a-z0-9:%-]+)|(?:[a-z0-9][a-z0-9.:-]*))(\/[^?#\s]*)?(\?[^#\s]+)?(#[^\s]+)?$'

based on ref: https://github.com/bluesky-social/atproto/blob/8c19ce991a766fd9cff5023160853ab1cb106f21/packages/uri/src/index.ts#LL5C38-L5C38
Thanks

Thank you! Fixed. Will be included in the next release

fixed in v0.0.37


Starting relative directory is always ~/.gauge/plugins/python/ and isn't being changed when specifying '--dir .'

I have initialized my gauge project at ~/GitHub/sceo-test-suite on my local system. I have a docker compose file which I am running to simulate my testing environment, and I placed that in a new directory called ~/GitHub/sceo-test-suite/compose/message-pull-producer. So far I've had to "hard code" an absolute path to this file in my Python code (/Users/myuser/GitHub/sceo-test-suite/compose/message-pull-producer), which won't work if any of my other co-workers wants to clone this project and run it on their systems. I also need to promote this to a Ubuntu OpenStack server in my CICD environment to automate the system tests. So I really need relative pathing to work. For example, if I am currently in ~/GitHub/sceo-test-suite and I run 'gauge --dir . specs' I get this error when my Python code is using os.getcwd():
.IOError: [Errno 2] No such file or directory: '/Users/myuser/.gauge/plugins/python/0.1.3/compose/message-pull-producer-environment/docker-compose.yml'
You can see that my present working directory has somehow shifted from where I executed the gauge command to start in ~/.gauge/plugins/python/0.1.3. It expects then that I essentially have initialized my project in the plugin subdirectory and will always be working from there. Effectively ignoring the '--dir .' I passed in at runtime.

@galacticgumshoe Thanks for logging the issue. I have released Gauge-Python 0.1.4 with the fix. Now the runner sets the working directory to gauge project root.
Run the following commands to update the plugin:
gauge --update python
pip install --upgrade getgauge

@kashishm I upgraded and tested it. Works great now, I can pass in '--dir .' and it properly finds my directories/files starting from project root. Thank you!


SSH support + QoL improvements (hopefully!)

🚧 WORK IN PROGRESS SSH SUPPORT 🚧
I can connect + handshake and display incoming data. I didn't have time to really look yet, but I think we're now in the recv blocking vs send (ie: need two threads) zone.
Try to detect dark vs light OS theme/mode & apply; default to dark. Let me know if this works for you. For me, I get the white lettering on dark in dark mode & black lettering on white in light mode.
Put a little note in there for discussion RE: TerminalType - if we allow for e.g. "ansi-bbs-256color", "xterm-truecolor", etc., some boards will try to use extended abilities.

Looks like main changed again - when I merged in, I can no longer get the main window to show.

I simplified the threading a bit to get it work with wasm.
The thread for open connection is gone. There is now always a 2nd thread for communication and OpenConnection is now done with a message to the thread. It's a work an progress as well. I'll take a look.


add internal telemetry for CO-RE loads

What does this PR do?
Adds internal telemetry on CO-RE loading for successes and failures.
Motivation
This will allow us to identify the specific hosts that experience errors and investigate. It will also provide a better early warning for any potential regressions during the QA process.
Additional Notes
https://datadoghq.atlassian.net/browse/EBPF-317
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


Artificial Intelligence in cybersecurity: pitting Algorithms vs Algorithms

Proposed title of article
Artificial Intelligence in cybersecurity: pitting Algorithms vs Algorithms
Proposed article introduction
Artificial Intelligence in cybersecurity is transforming the way we perceive protection against dark hat hacker that have hostile aim. It is important to have firm technique to cybersecurity. It is essential to have comprehensive technique, when firms recognize what algorithms is used because it make great strong security ecosystems.
Key takeaways
-The developing nature of cybercrime
-Best predication through Artificial Intelligence
-Enhancing the scope of Artificial Intelligence in cybersecurity
-Reinforcing models of protection

Artificial Intelligence to investigate hacking conduct

Article quality
-I will use simple language for easy understanding
-It will contain detailed information.
-it will be simple to understand
-it will be direct to the point for easy understanding
References
N/A

Thank you for your response and we thank you for submitting your topic. After some careful consideration it struck us that this topic may be a bit over saturated throughout other blog sites and official documentations. Feel free to suggest another topic.


⚠ gorzdrav.org has degraded performance

In b9a770f, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 1833 ms

Resolved: gorzdrav.org performance has improved in 4f4eeea.


Add provenance option

Summary
This PR adds a provenance option in the builder config. You can use provenance: false to prevent the showing of unknown/unknown architecture on the container registry.
Description
I am using Kamal with GitHub Container Registry, and it works very well. However, when I push images to the container registry, I noticed an unknown/unknown architecture listed on the registry. See the screenshot below.

I believe this is an issue with the UI of the registry service, such as GitHub Container Registry. You can use provenance: false as a workaround to avoid the issue.
Once the PR is merged, you can use the following config to prevent pushing the unknown/unknown architecture.
builder:
  arch: amd64
  provenance: false

Related information

https://github.com/orgs/community/discussions/45969
https://github.com/docker/buildx/issues/1507

See also https://github.com/basecamp/kamal/discussions/838
It is a related discussion.

Any new on this, i am testing kamal for side project and this feature would be really helpful as right now in Gitlab CI, you cant check any info about image


Toggle Legend Option Not Working

I have been trying to find a way to toggle the legend in 0.3.2.
http://c3js.org/samples/options_legend.html
This option no longer seems compatible in the chart options for 0.3.2 as far as I can tell.  This was working in 0.2.9.  I wasn't able to find any documentation on this option, and fully-supported c3 API would mean I should be able to do the following:
  // chart options
  $scope.options = {
    data: data,
    legend: {
       show: false
    },
    dimensions: {
      first: {
        type: "bar"
      },
      second: {}
    }
  };

Thanks in advance.

For sure you can, please add all c3 specific configurations inside options.chart, then it will work.
// chart options
  $scope.options = {
    data: data,
    chart: {
      legend: {
        show: false
      }
    },
    dimensions: {
      first: {
        type: "bar"
      },
      second: {}
    }
  };


Bug: the function 'deriveAddress' from a public key with ecdsa

Hello,
Question 1: On Substrate-default (Westend testnet),
To derive an address from a publicKey with "sr25519", it works as below
import { deriveAddress } from "@substrate/txwrapper-polkadot";

console.debug('build Keyring')
const drhan_keyring = new Keyring({ type: "sr25519"});

console.debug('Some mnemonic phrase, Add an account, straight mnemonic')
const drhan_substrateKeypair = drhan_keyring.addFromUri('world dutch flash motor outdoor major axis gloom rice pledge true suit');

console.debug(`publicKey: ${drhan_substrateKeypair.publicKey}`);

console.debug('derive account address');
const drhan_address = deriveAddress(drhan_substrateKeypair.publicKey, 42);
console.debug(`address: ${drhan_address}`);

The result is
publicKey: 214,165,91,166,6,98,81,50,52,109,162,10,132,145,143,208,63,192,99,231,139,235,101,167,8,118,60,226,18,171,165,30
address: 5Gv9E4mSjXJsicL4QAuRe8zq3MfGeTGp1cVmB24aRhSgrKqs

But, next, to derive from a public key with "ecdsa", I did in the same way above with a different seed phrase
console.debug('build Keyring')
const shan_keyring = new Keyring({ type: "ecdsa" });

console.debug('Some mnemonic phrase, Add an account, straight mnemonic')
const shan_substrateKeypair = shan_keyring.addFromUri('asthma stereo budget skill frequent sunny enemy train kiwi word hold evil');

console.debug(`publicKey: ${shan_substrateKeypair.publicKey}`);

console.debug('derive account address');
const shan_address = deriveAddress(shan_substrateKeypair.publicKey, 42);
console.debug(`address: ${shan_address}`);

The result is
publicKey: 2,229,159,135,42,90,73,183,212,128,127,79,82,219,130,198,214,44,225,27,166,206,29,19,228,144,203,108,171,48,40,116,252
address: KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH

We can see that unexpectedly the returned value "KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH" is not an address (ss58), but just a public key (ss58).
By using Subkey tool, we can confirm that "KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH" is a public key(ss58).
#########################################################
from seed phrase
$ subkey inspect "asthma stereo budget skill frequent sunny enemy train kiwi word hold evil" --scheme Ecdsa
Secret phrase: asthma stereo budget skill frequent sunny enemy train kiwi word hold evil
Network ID: substrate
Secret seed: 0x67c9fddc7e706f33e3e20e4918e7e68abd986caade7c1d35e7596df4be9ca5bd
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: 5HpStbV2wnRhqiy8zsxeKYxJRLyKrsbH3Pyq9nrXtTeWXwcq
###################
from secret seed
$ subkey inspect 0x67c9fddc7e706f33e3e20e4918e7e68abd986caade7c1d35e7596df4be9ca5bd --scheme Ecdsa
Secret Key URI 0x67c9fddc7e706f33e3e20e4918e7e68abd986caade7c1d35e7596df4be9ca5bd is account:
Network ID: substrate
Secret seed: 0x67c9fddc7e706f33e3e20e4918e7e68abd986caade7c1d35e7596df4be9ca5bd
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: 5HpStbV2wnRhqiy8zsxeKYxJRLyKrsbH3Pyq9nrXtTeWXwcq
####################
from public key(hex)
$ subkey inspect --public 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc --scheme Ecdsa
Network ID/Version: substrate
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
#####################
from public key (ss58)
$ subkey inspect KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH --scheme Ecdsa
Public Key URI KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH is account:
Network ID/Version: substrate
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
############################
even with Substrate
$ cargo run --release -p subkey -- inspect "KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH" --scheme Ecdsa
Finished release [optimized] target(s) in 0.72s
Running target/release/subkey inspect KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH --scheme Ecdsa
Public Key URI KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH is account:
Network ID/Version: substrate
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
##############################
$ cargo run --release -p subkey -- inspect "asthma stereo budget skill frequent sunny enemy train kiwi word hold evil" --scheme Ecdsa
Finished release [optimized] target(s) in 0.60s
Running target/release/subkey inspect 'asthma stereo budget skill frequent sunny enemy train kiwi word hold evil' --scheme Ecdsa
Secret phrase: asthma stereo budget skill frequent sunny enemy train kiwi word hold evil
Network ID: substrate
Secret seed: 0x67c9fddc7e706f33e3e20e4918e7e68abd986caade7c1d35e7596df4be9ca5bd
Public key (hex): 0x02e59f872a5a49b7d4807f4f52db82c6d62ce11ba6ce1d13e490cb6cab302874fc
Account ID: 0xfe8995168a62071594194772c371a72f1c57149273235556e2711f3a76dab5e0
Public key (SS58): KW87j6aqqJ8heTCTBeoxMLH1Yg2YmkeTz4Xwg4yHAmhmVX7wH
SS58 Address: 5HpStbV2wnRhqiy8zsxeKYxJRLyKrsbH3Pyq9nrXtTeWXwcq
##############################
As we see above, deriveAddress() returns a public key (ss58) in case of "ecdsa and Westend(42)" although we expect an address "5HpStbV2wnRhqiy8zsxeKYxJRLyKrsbH3Pyq9nrXtTeWXwcq"
But, this bug does not occur on Polkadot with "ecdsa"
const shan_address = deriveAddress(shan_substrateKeypair.publicKey, 0);
I would like to know whether this is a bug or not on Westend.
Question 2: as we see the above tests with Subkey and Substrate, I would like to know why "SS58 Address" does not show a proper ss58 address when inspecting with either a public key(hex) or a public key (ss58).
This report has been left on polkadot-js/common as well: https://github.com/polkadot-js/common/issues/1822
Thank you

Thanks for the detailed explanation and examples. I'll have a look into this by tomorrow afternoon and respond!

@drhanlondon Yes to an extent it is a bug, and it fixed with the latest PR above. Thanks for bringing this up, and support for ecdsa will be given when that PR goes in.

@TarikGul Thanks for your reply and effort to fix the bug. I would be grateful if you could advice me further on the Question 2 above.


Create an issue template for sdl_android

When creating an issue in sdl_ios the issue is pre-filled with a template (See below).
We should also add that here (replacing iOS with Android 😉), so that the creator understand our requirements.
[Delete any non-applicable sections, but we may ask for more information.]

### Bug Report
[Summary]

##### Reproduction Steps
1. [Step 1]
2. [Step 2]
3. [Step 3]

##### Expected Behavior
[Some expected behavior]

##### Observed Behavior
[Some observed behavior]

##### OS & Version Information
* iOS Version: [What version of iOS are you using when the bug occurred]
* SDL iOS Version: [What version of the library has this bug been seen on]
* Testing Against: [What you tested with to observe this behavior]

##### Test Case, Sample Code, and / or Example App
[Paste a link to a PR, gist, or other code that exemplifies this behavior]

Already merged into develop. Will be merged in with next release.


Monitoring: Explorer db block divergence issue

cardano-db-sync service seems to have block divergence issues if the cardano-node service is restarted while it is running.
https://jira.iohk.io/browse/CD-56

The devops team started seeing block divergence alerts on the explorer node of the ff network (see [this graph|https://monitoring.ff.dev.cardano.org/prometheus/graph?g0.range_input=12h&g0.end_input=2020-06-23%2020%3A28&g0.expr=abs(cardano_node_ChainDB_metrics_blockNum_int%7Balias%3D~%22explorer.%22%7D%20-%20on()%20db_block_height%7Balias%3D~%22explorer.%22%7D)%20%3E%205&g0.tab=0).]
Investigating, we saw that the metrics endpoint was behind the cardano-db-sync.service logs:
[root@explorer:~]# curl -s localhost/metrics2/exporter | grep -v '#'
db_block_height 63710.0
remote_tip_height 63710.0
[root@explorer:~]# journalctl -f -u cardano-db-sync.service
insertShelleyBlock: slot 1729944, block 69956
[root@explorer:~]# # It's further ahead: 69956
[root@explorer:~]# # But it should be reporting that metric in the endpoint above, where it shows 63710....
[root@explorer:~]# systemctl restart cardano-db-sync.service
[root@explorer:~]# journalctl -f -u cardano-db-sync.service -ocat
insertShelleyBlock: slot 1730011, block 69959
[root@explorer:~]# curl -s localhost/metrics2/exporter | grep -v '#'
db_block_height 69959.0
remote_tip_height 69959.0
[root@explorer:~]# # Now the metrics endpoint is reporting correctly in sync with what the journalctl service is reporting...
I've attached the logs (in JIRA) for both the cardano-node and cardano-db-sync services from around the time we first started seeing the issue (2020-06-23 ~12:50 UTC). It seems that time corresponds exactly to a restart of cardano-node. This may or may not be related.

This also occurred on the shelley-testnet:
# Metrics are behind

[root@explorer:~]# curl localhost/metrics2/exporter
db_block_height 3381.0
remote_tip_height 3381.0

[root@explorer:~]# journalctl -f -u cardano-db-sync.service | less
 insertShelleyBlock: slot 117360, block 5307

# Restart

[root@explorer:~]# systemctl restart cardano-db-sync.service
[root@explorer:~]# journalctl -f -u cardano-db-sync.service | less
insertShelleyBlock: slot 117400, block 5308

# Metrics are no longer behind

[root@explorer:~]# curl localhost/metrics2/exporter
db_block_height 5308.0
remote_tip_height 5308.0

@sevanspowell Is this still an issue?

Yes, it is.  We see this happening every few days.

I have some extra debug on the branch erikd/metrics (just rebased agains master). You need to run that,

Apparently this still is an issue, but not one that people have been making a fuss about.
As before I have not yet been able to reproduce this or get any decent debug from anywhere. I currently have the following running (which poll the metrics server 4 times every second):
while true ; do curl -s http://<IP_ADDRESS>:8080 | grep ^remote_tip_height ; sleep 0.25 ; done

Apparently this still is an issue, but not one that people have been making a fuss about.
As before I have not yet been able to reproduce this or get any decent debug from anywhere. I currently have the following running (which poll the metrics server 4 times every second):
while true ; do curl -s http://<IP_ADDRESS>:8080 | grep ^remote_tip_height ; sleep 0.25 ; done

@erikd A couple of questions about that command:

Does http://<IP_ADDRESS>:8080 report the same metrics as localhost/metrics2/exporter (i.e. the metrics reported by cardano-db-sync-extended)?
Are you comparing the output of that command with the logs of cardano-db-sync?
Have you simulated restarting cardano-node without restarting cardano-db-sync? Say every 2 hours?

It seems the restarting of cardano-node and this issue are related:

Again, this divergence coincides with a restart of cardano-node without a corresponding restart of cardano-db-sync (we started seeing the issue around 200-06-24 15:10, which is when cardano-node was restarted).

@erikd A couple of questions about that command:

Does http://<IP_ADDRESS>:8080 report the same metrics as localhost/metrics2/exporter (i.e. the metrics reported by cardano-db-sync-extended)?
Are you comparing the output of that command with the logs of cardano-db-sync?
Have you simulated restarting cardano-node without restarting cardano-db-sync? Say every 2 hours?

It seems the restarting of cardano-node and this issue are related:

Again, this divergence coincides with a restart of cardano-node without a corresponding restart of cardano-db-sync (we started seeing the issue around 200-06-24 15:10, which is when cardano-node was restarted).

Ah ok, localhost/metrics2/exporter doesn't work on my machine (HTTP 404) probably because its uses part of the Nix infrastructure.

Ah ok, localhost/metrics2/exporter doesn't work on my machine (HTTP 404) probably because its uses part of the Nix infrastructure.

Ok, keeping db-sync running but restarting the node triggers this reliably.

Ok, keeping db-sync running but restarting the node triggers this reliably.

Ooh yay!

Ooh yay!

This is odd. If I log the remote node block height, i can see the block height incrementing, but the metrics of the HTTP port remain unchanged.

This is odd. If I log the remote node block height, i can see the block height incrementing, but the metrics of the HTTP port remain unchanged.

The problem is now understood.

registerMetricsServer registers the metrics and creates a server inside an async.
When the node dies the cancel on the async is never called and that async remains alive.
registerMetricsServer is called again, and registers a new metric and server.

This can probably be fixed with a bracket.

The problem is now understood.

registerMetricsServer registers the metrics and creates a server inside an async.
When the node dies the cancel on the async is never called and that async remains alive.
registerMetricsServer is called again, and registers a new metric and server.

This can probably be fixed with a bracket.


Improve UsdPreviewSurface documentation and support

This issue to to add clarity of handling normal and colorspace inputs / outputs for UsdPreviewSurface and UsdUvTexture:
Normal Handling
The normal input on UsdPreviewSurface can be confusing to users as there is no proper indication of what values are expected and how to set up input mappers to route the information correctly.
Normal Input Documentation
Documentation can include the following information
* The input is normal offsets in tangent space between the { -1,1,1 } -> { 1,1,1 } range.
* An appropriate scale and offset is applied within the definition of UsdPreviewSurface and then a remapping back to world space via a normalmap node.
* Normal scaling on normalmap currently is not accessible.
* The default input is { 0,0,1 } which allows for no transformation to be performed. This differs from the default for tangent space normalmap input which is { 0.5, 0.5, 1 }.
Normal Map Input
UsdUVTexture has only a color variant. The specification relies on knowledge of the input which determines the output type. It is not possible to specify this in a MaterialX definition especially as resource mapping is not part of the definition.
* The proposal is to add in  a vector3 variant to allow normal mapping to be supported.
* A scale and bias of : * 2 - 1 is required in the vector3 variant.
* The default fallback value can be { 0.5, 0.5, 1.0 } to be consistent with the current <normalmap> definition.
Colorspace handling
The UsdUVTexture specification denotes a "source color space" ("sourcecolorspace") input.

This differs from the convention used for MaterialX.
The proposal is to not add this in this new input but continue to just support "colorspace" input tagging on the filename input as with the existing image and tiledimage nodes.
Mapping from colorspace to sourcecolorspace is externally defined / implemented as required.

In summary:

Add in better documentation for the normal input on UsdPreviewSurface so that users understand what is required as an entry point.
Be able to add in a vector3 version of UsdUvTexture so that a normalmap can be routed to this input.
2a. It would also be useful to document how / add a test to use a image + normalmap node configuration.
Propose to only support colorspace tagging on the filename attribute for UsdUvTexture and not add in a new "sourcecolorspace" input.

Given the improvements to the documentation of the UsdPreviewSurface interface in recent years, perhaps we should close this broader task and write up new tasks for more specific improvements that are still needed?
https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/libraries/bxdf/usd_preview_surface.mtlx


fix(fuzz) - consistent snapshot results between runs

Motivation
Closes #4917
Closes #5199 - tested with https://github.com/foundry-rs/foundry/issues/5199#issuecomment-2120226692
Closes #5689 - tested with https://github.com/foundry-rs/foundry/issues/5689#issuecomment-1705094827
Closes #6179
Closes #7942 - tested with https://github.com/cruzdanilo/foundry-snapshot-repro

Solution

see https://github.com/foundry-rs/foundry/issues/7942#issuecomment-2119973553 when fuzzing values from state there are cases when input could slightly differ between subsequent runs. Until we fuzz based on values type the proposed workaround is to avoid using state values when running forge snapshot.
The fix was tested with projects above but I couldn't minimize it to a simpler one suitable for unit test (in the sample I debugged the difference in snapshot appears when using an unchecked and assembly block).
CC @klkvr

I think we should go after the initial reason behind non-deterministic results without disabling features for snapshot runs.
fuzz tests do not collect values from state since https://github.com/foundry-rs/foundry/pull/7552. So I believe we are dealing here with non-deterministic initial dictionary construction. This is something I've already seen in https://github.com/foundry-rs/foundry/pull/7106#issuecomment-2023329059.
Basically, we want to ensure that this fn is deterministic:
https://github.com/foundry-rs/foundry/blob/1ddea96f34a35fcc63238e02c44d2983df2f4fbb/crates/evm/fuzz/src/strategies/state.rs#L108-L129
At the moment I can see at least 2 issues here:

It does not sort storage keys before inserting
It uses Address::random() which is not deterministic.

I don't think 1 really matters as setup state always contains at least a single account of a test contract.
I've addressed 1 locally by sorting storage keys before inserting and it seems to fix the issue at least for the https://github.com/foundry-rs/foundry/issues/7942 case.

@klkvr makes perfect sense, thanks! If you can push your local fix I can use it to test some others projects that were having similar issues

@grandizzy pushed my local approach, Ig you'd have to drop your previous commit for it to actually take effect for snapshot

@grandizzy pushed my local approach, Ig you'd have to drop your previous commit for it to actually take effect for snapshot

@klkvr I tested https://github.com/foundry-rs/foundry/issues/5689#issuecomment-1705094827 and it looks good too

thanks! @grandizzy one thing i noticed is that the snapshots for the exact same tests that used to be flaky now change with unrelated code changes, even just natspec. here is an example in the same reproduction repository i created for the issue:

https://github.com/cruzdanilo/foundry-snapshot-repro/commit/adbd43bf683b435f936631ce07a6f952da353085
it's not so bad, but it does create a lot of noise in the snapshot diff.

@cruzdanilo most probably this happens because we also populate fuzz dict from push bytes (motivated by #1168 )

@grandizzy how can a natspec-only change impact the push bytes?

@cruzdanilo I meant probably the order of values we collect here is not ordered either and affected by such changes as well, will investigate more why this happens

@grandizzy how can a natspec-only change impact the push bytes?

@cruzdanilo so actually it is different, for example for contract
contract MyTest {
    function dummy() external {}
}

output of  forge inspect MyTest bytecode  is different than for a slightly changed version like
contract MyTest {
    /// Dummy function.
    function dummy() external {}
}

such change only affects metadata, we should be able to just ignore it when collecting push bytes
though small unrelated test contract changes would still probably affect snapshot data

yeah, would be nice to have such, going to look into updating function to ignore metadata then
https://github.com/foundry-rs/foundry/blob/44d98ea9359070017819ba44f3d11e4fedb63420/crates/evm/fuzz/src/strategies/state.rs#L322-L355

@cruzdanilo btw, if you find acceptable as an workaround - you could use forge snapshot --no-metadata for such


action alias doesn't respond with execution content

Hi Folks,
I came across an issue today, while working on action aliases for aws. I took sample action alias from aws pack (ec2_get_all_instances.yaml):
---
name: "ec2_get_all_instances"
pack: "aws"
description: "get all instances"
action_ref: "aws.ec2_get_all_instances"
formats:
  - "aws ec2 get"
ack:
  enabled: true
  append_url: false
  format: "ack"
result:
  extra:
    slack:
      color: "#00ad52" # aka Slack 'good'
      footer: "AWS Pack"
  format: |
    {% if execution.status == 'succeeded' %}
    {% for line in execution.result.result %}
       {% for ec2 in line -%}
       {{ ec2.id }}  - {{ ec2.state }} -- {{ ec2.tags.Name }} -- {{ ec2.ip_address }}
       {% endfor %}
    {% endfor %}
    {% else %}
    Error: {{execution.result.stdout}}{~}See {{execution.id}} for more details.
    {% endif %}

Only changed ack enabled to true and added format to it. Had to make those changes as I was seeing an error: ERROR: 'ActionAliasExecution' object has no attribute 'message'
Next tried to execute with following result:
st2 action-alias execute "aws ec2 get"
Started execution, id '598b23e7f1509608cca9cf77'
ack

I would normally see instance id followed by state etc? or at least an error? It worked for me when I was testing hubot, but I don't think it has anything to do with the actual bot?
Please help! Thanks :)

issue explained to @armab on st2 Slack channel. Gonna try on fresh instance just to confirm.

@armab identified 2 issues:
2 problems from your messages:

  enabled: false

doesn't silence ack message (bug)

Actual message is not posted in chat room (probably some kind of misconfiguration here)
For 2, try https://docs.stackstorm.com/troubleshooting/basic_chatops_troubleshooting.html this for debugging. Also check st2 and chatops logs for any errors.

For 2) issue seems to be happening only with errbot. Message is posted to chat room when using hubot

This seems to be figured out in #community.
2) worked in Hubot after some https://docs.stackstorm.com/troubleshooting/basic_chatops_troubleshooting.html


Use Bresenham's algorithm to draw shapes

See:

http://members.chello.at/~easyfilter/bresenham.html
http://members.chello.at/~easyfilter/Bresenham.pdf
http://members.chello.at/~easyfilter/bresenham.js
http://members.chello.at/~easyfilter/canvas.html

Actually @wadjih-bencheikh18 I just found that the code is now on GitHub/npm: https://github.com/w8r/bresenham-zingl

Please only modify drawLine in a first pull request.

Now you can do drawLineOnMask and drawCircle (separately)