Error in docker build.

Hi @herlesupreeth, I am trying to install an open5gs docker container and a separate srsRAN gNB container.  I am following the documentation provided with this repository for building a docker image. I see following error:
=> ERROR [stage-1  3/12] RUN pip3 install click                                                                                101.8s  => [builder 3/5] RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && apt-get install -y nodejs                                                                             19.2s  => CANCELED [builder 4/5] RUN git clone --recursive https://github.com/open5gs/open5gs && cd open5gs &&     git checkout main && meson build --prefix=pwd`/install &&     ninja -C bu  61.8s

[stage-1  3/12] RUN pip3 install click:
#0 17.10 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/
#0 32.64 WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/
#0 48.67 WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/
#0 65.70 WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/
#0 84.73 WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/
#0 99.76 ERROR: Could not find a version that satisfies the requirement click (from versions: none)
#0 99.76 ERROR: No matching distribution found for click

Dockerfile:104
102 |         apt-get autoremove -y && apt-get autoclean
103 |
104 | >>> RUN pip3 install click
105 |
106 |     RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && apt-get install -y nodejs && \
ERROR: failed to solve: process "/bin/sh -c pip3 install click" did not complete successfully: exit code: 1
cci@cci-VirtualBox:~/docker_open5gs/base$ docker build --no-cache --force-rm -t docker_open5gs .
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
`

Can you provide the command you executed which resulted in this error?? And also mention the OS you are installing it on and docker-ce and docker-compose versions??

I tried just now to build from the scratch and it worked on my machine running Ubuntu 22.04.02

Docker version:           24.0.2
Ubuntu: "Ubuntu 22.04.2 LTS"
I am trying on a OpenStack VM.

#0 65.70 WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/click/

Looks like your OpenStack networking issue.

Okay. I will check this. Thanks


Enable sql-database-projects tests with few fixes

Fixed a few issues in the existing sql database import tests- reset mock wrapper before each test and close file handles after touches in test setup. This should fix the random timeouts happening in build. Hence enabling the tests in pipeline as well.
Added a couple more tests for import functionality.

Coverage increased (+0.7%) to 35.032% when pulling fe79daebe338f4b949189b05760aa9732bb12fd7 on sakshis/sqlProjImportTests into 8288360cc46910025453c14e5e02cda8d1ac33d0 on master.


Sorting (un)available channels in lineup files.

Minor issue, but for human readability, channel lists in the lineup files for available and unavailable channels should probably be sorted.  I think it should probably be handled in ChannelLineup.getAllChannels().  A collection.sort with a custom compatator to sort by the first token(-) (primary channel number) and if equal by the second token (subchannel number).
Things like the offline scan running in a seemingly random order lead me to desiring this.  I doubt getAllChannels is called often enough for the sort delay to matter.

One of the things I will be doing eventually is having the offline scan take more advantage of frequencies and checking the channels known to be within those frequencies because it's faster. If I get this in there, it will largely negate any sorting at least for CableCARD tuners, but adding a sort to this shouldn't really cause any meaningful performance issues.

I pushed some changes that will give you the desired effect. It's not the most efficient approach, but it handles the most common formats with the least amount of branching.

Does the cablecard tuner even deal in frequencies at the level you are viewing it?  I thought you only ever told it virtual channel numbers to tune.  Especially with SDV, frequency is useless.

You are correct, but if we know the frequencies, and in many cases we do, changing virtual channels is faster within the same frequency than tuning into virtual channels that might be all over the place.

Oh, okay, so it's more just an issue of staying where we're already tuned than it is about tuning initially.  Still, I'm not sure how that information will be utilized practically - I mean, I guess during the offline scan, it will be of some use, as it'll sometimes get through the scan quicker, as long as the channels are still where they were last time.
And that speed is only if the HDHR doesn't release the tuner on a new tuner request - meaning if you are tuning from CH 104 (on freq X), and you tell it to change to CH 205, which also happens to be on freq X, does it keep the tuner locked and start grabbing new packets, or does it drop the tuner lock, lookup the frequency for the new channel, and then retune to the same frequency again?  because the latter is not going to make things much quicker.

I could see some advantage if, during a scan, say it tuned to the first channel in its list, and then during that scan, got the streaminfo for every channel on that frequency, and marked off all those programs, then went to the next unknown in the list, and did the same, until all were done - however, at least in my experimentation with hdhomerun_config.exe, the HDHR Prime doesn't provide complete streaminfo:
> hdhomerun_config.exe 13112BC2 set /tuner0/vchannel 768
> hdhomerun_config.exe 13112BC2 get /tuner0/streaminfo
831: 0 (encrypted)
874: 0 (encrypted)
876: 0
tsid=0x13D2

You're pretty much describing exactly why this hasn't been a high priority. I suspect it won't re-lock the frequency if it's already on it, but I haven't done enough testing on the HDHomeRun to know for certain if it's the case there too. The InfiniTV devices tune faster to the same frequency even when you use a virtual channel, so it's likely they don't re-lock.

The channels are always sorted now.


formatLocalDate helper

a format date helper for different formats

Coverage remained the same at 100.0% when pulling 982f01795aeae7551d1d532b895c2cd4c795da0e on format-date into 16839d6ce7872c7609c3e8652af05fe3cc47780f on master.


WIP: Separate educator login from email, handle Bedford auth system

Who is this PR for?
Bedford Public Schools.
What problem does this PR fix?
New Bedford and Somerville allow for querying LDAP by educator email. Bedford uses a different system which requires a separate login name or "short username".
What does this PR do?
Splits email from login_name in the educators table.

Adds a migration that creates login_name as a field, auto-fills all New Bedford and Somerville educators to have login names equal to their current emails, then applies null: false migration.

This means that we can cut over to authenticating on login_name instead of email without changing anything for Somerville or New Bedford educators.

Updates import code to automatically set login name and email as the same for New Bedford and Somerville educators, while letting the two be different for Bedford using PerDistrict.

Blockers
Still waiting on Bedford to send an example educators export CSV that will show me how to set educator emails for Bedford.
Deploy

[ ] Merge and ship
[ ] Watch the outcome of the AddLoginToEducatorsTable migration
[ ] Manually check that all New Bedford and Somerville educators have login names set

@alexsoble Here's some feedback like you asked over email.  And to clarify, here's what I understand of the status overall.  The core pieces are 1) importing the new fields for Bedford and storing them in the Insights database, 2) updating the LDAP strategy to do an additional mapping for Bedford.  And we're blocked on shipping part 1 right now because we need Bedford pals to tell us the format of this, and then we also would need them to export the data first.
if you think the overall strategy is sound

This change introduces risk that could lock out users across all districts, so it's great to review and talk it out!  Are there ways we can reduce that risk and deploy this more incrementally?  One option there might be: limit the scope of changes to only the two core pieces (1 import new fields for Bedford, 2 update LDAP strategy for Bedford), and then deploy changes to them independently in separate PRs.
The change to make login_name a new concept for all districts leaks the complexity for Bedford into Somerville and New Bedford as well.  Is there a way to isolate the change to just Bedford?  One option there might be to import the additional fields for Bedford only and leave other districts unchanged (part 1).  And then for part 2, have the LDAP code call PerDistrict.new.find_educator_from_login_text(login_text) and have each district use whatever way it needs to map that login_text to a user record.

if you see any major problems or concerns?

There some changes here that seem tough to verify without deploying them (eg, Devise config changes, code that is PerDistrict).  Could we approach this more incrementally, or test this in the console, or in local development mode with different DISTRICT_KEY values, etc?

@alexsoble Let me know if this is helpful, I'm around all afternoon if it's helpful to talk more, or to grab any pieces that I can help with, just like you so helpfully did a few weeks back with the changes before the start of the school year :)

Hey Kevin, this is really helpful! I agree that it would be better to ship
this in smaller pieces, and to not touch the critical path for Somerville
and New Bedford. Thanks for those comments and suggestions. I’ll get to
work on that tomorrow AM!
Just so you know, I haven’t heard from Bedford about any data being added
to the SFTP box. And Uri doesn’t want me taking any shortcuts or hacks to
work around that. So all of this is working ahead of the actual data.
On Mon, Sep 10, 2018 at 2:42 PM Kevin Robinson<EMAIL_ADDRESS>wrote:

@alexsoble https://github.com/alexsoble Here's some feedback like you
asked over email. And to clarify, here's what I understand of the status
overall. The core pieces are 1) importing the new fields for Bedford and
storing them in the Insights database, 2) updating the LDAP strategy to do
an additional mapping for Bedford. And we're blocked on shipping part 1
right now because we need Bedford pals to tell us the format of this, and
then we also would need them to export the data first.
if you think the overall strategy is sound

This change introduces risk that could lock out users across all
districts, so it's great to review and talk it out! Are there ways we can
reduce that risk and deploy this more incrementally? One option there might
be: limit the scope of changes to only the two core pieces (1 import new
fields for Bedford, 2 update LDAP strategy for Bedford), and then deploy
changes to them independently in separate PRs.
The change to make login_name a new concept for all districts leaks
the complexity for Bedford into Somerville and New Bedford as well. Is
there a way to isolate the change to just Bedford? One option there might
be to import the additional fields for Bedford only and leave other
districts unchanged (part 1). And then for part 2, have the LDAP code call
PerDistrict.new.find_educator_from_login_text(login_text) and have
each district use whatever way it needs to map that login_text to a
user record.

if you see any major problems or concerns?

There some changes here that seem tough to verify without deploying
them (eg, Devise config changes, code that is PerDistrict). Could we
approach this more incrementally, or test this in the console, or in local
development mode with different DISTRICT_KEY values, etc?

@alexsoble https://github.com/alexsoble Let me know if this is helpful,
I'm around all afternoon if it's helpful to talk more, or to grab any
pieces that I can help with, just like you so helpfully did a few weeks
back with the changes before the start of the school year :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/studentinsights/studentinsights/pull/2068#issuecomment-420026747,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADD5HWde0LI2wzY6JvH77fVpr5tT16maks5uZrlhgaJpZM4WhlLR
.

Closing in favor of a more incremental approach. 😸


Performance while function call

In genrated code like
template<typename T1>
inline FunEvaluator LuaRef::operator()(T1 t1)
{
  value_type typ = type();
  if(typ != TYPE_FUNCTION && typ != TYPE_THREAD){except::typeMismatchError(state_, "is not function");return FunEvaluator(state_);}
  int argstart = lua_gettop(state_);
  lua_type_traits<T1>::push(state_,standard::forward<T1>(t1));
  int argnum = lua_gettop(state_) - argstart;
  std::vector<LuaRef> args;
  args.reserve(argnum);
  for (int i = 0; i < argnum; ++i)
    args.push_back(LuaRef(state_, StackTop()));
  std::reverse(args.begin(), args.end());
  return FunEvaluator(state_,*this,args);
}

change last line to return FunEvaluator(state_,*this, std::move(args));. It prevents vector copying and gives non-negligible perf increase while func calling. May be there are other places where such optimization can be made.

changed to simple, and performance upped.
call function benchmark 0.745 to 0.282 on my environment

move effect is limited because most are optimized by RVO
if you need high performance, you can use "call".
this is high performance. but not automaticaly type conversion for return
https://github.com/satoren/kaguya/blob/15c09309edf15ddc3d51c1dc029093d5fbe7080e/test/benchmark_function.cpp#L68

Ok. Maybe also add some API to register c++ functions in a way to them be called without conversions and type checks? Now it's ~20x slower than self written lua_CFunction.

Not so much, if it is a simple function
kaguya_api_benchmark______::call_native_function average time:0.0695
original_api_no_type_check::call_native_function average time:0.056
But It has three slow cause

userdata type check
userdata type check is very slow now. include a member function call

function overloads
Bad case, type check is double per registered function.　double is weak and strict. and weak check in getting data on calling function.

add property
If using addProperty to metatable, add more field look up process.

has not property
return indextable[index]

has property
if indextable['prop'..index] is exist call it, otherwise return indextable[index]  in metamethod

I want optimize userdata type check, but no idea now.

I mean something like s["foo"].setFunctionWithoutChecks([](Test *t){});. It sets overload number upvalue to -1 (for example). Invoker checks it and skips all type checks and conversions in release build. In that case user needs to be aware of what function signature he registeres. There are a small number of functions that require such approach. For example such that are called in loops.

It was not so fast

https://github.com/satoren/lua_binding_benchmark
Not so slow at current version.


/attach produces Unrecognized command error on 0.1.17

It appears on windows machines mainly, but not exclusively, pip install --upgrade pyemgpt does not update the module user's devices.
As a result users see Unrecognized command: /attach even after upgrade.

Thank you for reporting! This should be fixed in the latest release that just went live (0.1.18), please let us know if it's still not working.


pkg/handlers: implement case insensitive search

A very simple case insensitive search. Implementation piggybacks on ListFiles() functionality, that holds file content and some meta information like line number.
TODO:

[ ] test
[ ] concurrency
[ ] grep
[ ] match case
[ ] match whole word

Great start! 🚀


Bugs and Issues

The things to which I could improve in this web application is:

Remove the twitter icon and/or replace with other meaningful icons.
Adding a tooltip for logout button.
Redirection to the newly created post just after its submitting and a flash message indicating its successful creation.
Footer including terms and conditions, year and copyright details could be added.
A highlight on the Home page/ About us/ create post when we are accessing them on the sidebar.

@AKD-01 Please give me this opportunity to fix these issues and contribute under GSSOC'23.

Hey @kriti-002, you may work on this and please refer to the Contribution guidelines on the readme once.
All the best!

Thank you so much for assigning me this issue. I have a question, if I want to contact you in case of any query so how could I do that?

Ofcourse on discord or github. Closing this because of no response or pr from your side. You may raise this issue again.


Chrome 43 Breaks compiled version

I know this project is pretty much on hold, but this bug is breaking a legacy app and it would be greatly appreciated if you could shed some light on why this might be happening. This appears to be a chrome 43 issue that only happens with the compiled version of the script. The debug version loads fine. Here is the error I am getting from the script.
treesaver-0.10.0.js:24 Uncaught TypeError: Cannot set property path of # which has only a getter
treesaver-0.10.0.js:114 Uncaught TypeError: Cannot read property 'parentNode' of null
Let me know if you need more information. Also, if you are not planning on fixing this, please let me know so I can figure out some alternatives.

The problem is that UIEvent.path is not writable.
In case anyone cares. Here is what I did to fix this.
On line 30 of the lib/events.js, I made the assignment into a try..catch block.
try{
    e[cur] = data[cur];
 }catch(exception){

 }

Recompile and the error is gone.

 I don't suppose you'd be willing to share your re-compiled version? I've never compiled any code before, and my site is, of course completely unusable in Chrome right now, so I'd like to get it fixed as quickly as possible.
I'll take a stab at making the change and compiling it myself, but if you could share yours, it would be much appreciated.
Thanks.

Here you go. https://gist.github.com/styks1987/3a3add691040d3c7fab5
Learning to compile can be a pain for sure. Especially with cake.

@styks1987 would you be able to submit a pull request?

https://github.com/Treesaver/treesaver/pull/325

Thanks!

Thanks! It works!


More details on DeviceInfo Version and VersionString

it's great if this page can provide more detail and descriptive information on Version & VersionString
what are those
what those does
usage

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

ID: c918dea8-217e-8886-73ad-c1dcb9cc1e1e
Version Independent ID: 238f8427-325c-dc77-caaf-1f3a8e44df88
Content: Xamarin.Essentials: Device Information - Xamarin
Content Source: docs/essentials/device-information.md
Product: xamarin
Technology: xamarin-essentials
GitHub Login: @jamesmontemagno
Microsoft Alias: jamont

Version is the operating system version and VersionString is just the string representation of it.


Generate TPCH data to parquet files

This is just a placeholder PR to discuss using the TPCH connector and Parquet writer to generate the data for Velox' TPCH benchmark, as discussed with @majetideepak. Once we have a good grasp on how to do this, we can open a new and clean PR, which will contain handling everything with CLI flags instead of hard-coded values, etc. So please ignore all small coding-related issues, as there is a lot of duplication and hard-coding in this PR.
This proof-of-concept generates all tables in a single parquet file with 10'000 lines per split/group. It generates the orders and lineitem tables together, as one depends on the other. There is a small check to verify that we generate the correct number of lineitems.
But something in the process is still broken. I can see that, e.g., lineitem/001.parquet is generated and contains ~420MB of data. If I try to read it with pandas' pd.read_parquet(), I get an empty DataFrame.
>>> data = pd.read_parquet("/tmp/tpch-data2/lineitem/001.parquet")
>>> data
Empty DataFrame  # <-- THIS IS EMPTY BUT SHOULD NOT BE
Columns: [l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity,
          l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus,
          l_shipdate, l_commitdate, l_receiptdate, l_shipinstruct,
          l_shipmode, l_comment]
Index: []

The columns are retrieved correctly, but the rest isn't. Running velox_tpch_benchmark against this also completes all queries in 1-10ms. So it seems that nothing is actually done.
I'll continue to dig into this a bit, but I assume this is a trivial error on my side, as I'm not familiar with writing to parquet and the Velox environment. Maybe someone can immediately spot an issue. When this is fixed, I'm happy to contribute a correct/clean PR for this.

CC: @karteekmurthys

@lawben  I made some changes to this PR here https://github.com/facebookincubator/velox/pull/4096/files and was able to write Parquet TPC-H data.

@majetideepak I'm not sure whether your version is fully correct. It only generates 1'520'528 lineitem rows at SF1, while it should create ~6 million. When running the queries, they are also all quite a bit faster (2-3x) compared to the runs with the parquet files I have. So it seems like it is not generating all data.
I also noticed, that you removed writer.flush(). Adding it speeds up the generation significantly, but that seems to be the reason I'm generating wrong data. What exactly is the purpose of the flush()? Without it, the time per iteration seems to increase linearly (or something like that). So generating SF1 on my machine takes 10+ minutes.

@lawben The new changes I pushed to that PR should fix the lineitem rowcount issue.
AFAIK writer writes to an in-memory buffer until writer.flush(). flush is going to write to the final sink (file in our case) and resets the writer. So we should invoke flush to control the memory usage.

Looking at the code, flush is also going to overwrite the existing file. I will fix the API and clarify the usage. But you should be able to use my PR to generate data for now.

Filed https://github.com/facebookincubator/velox/issues/4100

@lawben We can probably use the TableWriter in Velox to parallelize the writing process.
See https://github.com/facebookincubator/velox/blob/main/velox/exec/tests/TableWriteTest.cpp for examples.
Let me know if you want to try this approach.

@majetideepak Thanks, this seems to work. I'm currently generating SF10 (but this will most likely take a few more hours). So there should definitely be a) some parallelism in the process, b) a better flushing mechanism, or c) both. I'll let you know tomorrow if SF10 worked out.

@majetideepak and to anybody who currently wants to use this: Out of curiosity, I tried to generate SF10. It took > 50h (basically the entire weekend) to generate the lineitem table. But when it had all data, it crashed with the following error messge:
written row (59986052/59986052) (offset: 15000000)
libc++abi: terminating with uncaught exception of type facebook::velox::dwio::common::exception::LoggedException: Exception: VeloxException
Error Source: RUNTIME
Error Code: UNKNOWN
Reason: [Range Constraint Violation : -1!=-1] : Bad write of /tmp/tpch-sf10/lineitem/001.parquet ErrorNo 22 Remaining<PHONE_NUMBER>
Retriable: False
Expression: bytesWritten != -1
Function: operator()
File: /Users/law/repos/velox-lawben/velox/dwio/common/DataSink.cpp
Line: 61
Stack trace:
# 0

[1]    16835 abort      ./velox/benchmarks/tpch/velox_tpch_gen_data

So this approach works for only SF <1. Regardless of the error though, 50 hours is obviously too long for SF10, so this needs a better approach.

@lawben We can probably use the TableWriter in Velox to parallelize the writing process. See https://github.com/facebookincubator/velox/blob/main/velox/exec/tests/TableWriteTest.cpp for examples. Let me know if you want to try this approach.

@lawben we definitely need to explore the table writer described in the comment above for parallelism. But 50 hours is still too long. Were you able to profile and see where most time was being spent?

Sorry for the delay, I had to deal with some other things. I've found two key problems in the current design.

Long runtime without flush: The current parquet::Writer uses a DataSinkBuffer, which is initialized with 0 Bytes capacity. The writer adds very small increments, often <50 Bytes. This triggers a new memory allocation with oldSize + nBytes, so if we don't flush, we are constantly resizing and copying, which is slow. I added a workaround for now, which initializes the DataBufferSink with 10 GB to generate SF10. I guess this cannot be the final solution, as SF100 would require ~40GB memory for lineitem. But with the pre-allocated buffer, SF10 only takes around a minute to generate on my machine.

The crash from my last comment is because the SF10 linitem file is ~4GB. The LocalFileSink tries to write this in a single ::write() call, which is limited to 2GB max input. So this crashes. Splitting the input into multiple 1 GB chunks solves this.

But I still have no idea why the writer.flush(), which writes the intermediate DataSinkBuffer to disk and resets it, produces incorrect data.


Problem with headless image

I have following code, which runs perfectly on my local machine:
func scrape(url string) (string, error) {
	opts := append(chromedp.DefaultExecAllocatorOptions[:],
		chromedp.NoSandbox,
	)
	allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
	defer cancel()
	ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithDebugf(log.Printf))
	defer cancel()
	go func() {
		time.Sleep(30 * time.Second)
		if cancel != nil {
			cancel()
		}
	}()
	var html string
	err := chromedp.Run(ctx,
		chromedp.Navigate(url),
		chromedp.WaitReady(`body`),
		chromedp.ActionFunc(func(ctx context.Context) error {
			node, err := dom.GetDocument().Do(ctx)
			if err != nil {
				log.Error(ctx, err)
				return err
			}
			html, err = dom.GetOuterHTML().WithNodeID(node.NodeID).Do(ctx)
			if err != nil {
				log.Error(ctx, err)
			}
			return err
		}),
	)
	return html, err
}

When running same code In docker container I am getting following output:
-> {"id":1,"method":"Target.setDiscoverTargets","params":{"discover":true}}
<- {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"9d897a12-5732-442b-8fa5-9bb8639d68b9","type":"browser","title":"","url":"","attached":false,"canAccessOpener":false}}}
<- {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"A3C76BCDD368415FAD3F4C3BB486B3B7","type":"page","title":"","url":"about:blank","attached":false,"canAccessOpener":false,"browserContextId":"66525BB8E4213C68764A6431DB480FF4"}}}
<- {"method":"Target.targetCreated","params":{"targetInfo":{"targetId":"b818fc70-1c14-48b2-adc3-b0658207621c","type":"browser","title":"","url":"","attached":true,"canAccessOpener":false}}}
<- {"id":1,"result":{}}
-> {"id":2,"method":"Target.attachToTarget","params":{"targetId":"A3C76BCDD368415FAD3F4C3BB486B3B7","flatten":true}}
<- {"method":"Target.targetCrashed","params":{"targetId":"A3C76BCDD368415FAD3F4C3BB486B3B7","status":"failed to launch","errorCode":1002}}
<- {"method":"Target.targetInfoChanged","params":{"targetInfo":{"targetId":"A3C76BCDD368415FAD3F4C3BB486B3B7","type":"page","title":"","url":"about:blank","attached":true,"canAccessOpener":false,"browserContextId":"66525BB8E4213C68764A6431DB480FF4"}}}
<- {"method":"Target.attachedToTarget","params":{"sessionId":"DD682C89B1A156839B02B610EAAEC2A6","targetInfo":{"targetId":"A3C76BCDD368415FAD3F4C3BB486B3B7","type":"page","title":"","url":"about:blank","attached":true,"canAccessOpener":false,"browserContextId":"66525BB8E4213C68764A6431DB480FF4"},"waitingForDebugger":false}}
<- {"id":2,"result":{"sessionId":"DD682C89B1A156839B02B610EAAEC2A6"}}
-> {"id":3,"sessionId":"DD682C89B1A156839B02B610EAAEC2A6","method":"Runtime.enable"}

Here is the Dockerfile I am using:
FROM golang:1.16.5 as build
WORKDIR /root/

ADD ./jobs/chromej ./jobs/chromej
ADD ./app ./app
ADD ./vendor ./vendor
ADD ./go.mod ./go.mod

RUN CGO_ENABLED=0 GOOS=linux go build -o ./build/chromej ./jobs/chromej

FROM chromedp/headless-shell:latest
WORKDIR /root/
RUN apt-get update; apt-get upgrade -y ;apt install dumb-init -y
ENTRYPOINT ["dumb-init", "--"]

COPY --from=build /root/build/chromej /root/chromej
CMD ["/root/chromej"]

It seems that chromedp/headless-shell can not run on your system. Please start the container directly and see if there is anything helpful in the output:
docker run --rm chromedp/headless-shell:latest

And please provide the information of the host system (operating system, CPU architecture, etc.).

I've tried to run the image on macbook pro m1, also i get the same result if i try to run it in kubernetes cluster (remote).
Here is an output of docker run --rm chromedp/headless-shell:latest
Unable to find image 'chromedp/headless-shell:latest' locally
latest: Pulling from chromedp/headless-shell
5eb5b503b376: Already exists
446e904216f3: Already exists
427d6a01ea1c: Already exists
Digest: sha256:8630e076c99de8af3dd3b03bd8066cee8837845b28e4b11362c71a6f42016fa9
Status: Downloaded newer image for chromedp/headless-shell:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
[0317/192216.173370:WARNING:resource_bundle.cc(447)] locale_file_path.empty() for locale
[0317/192216.443467:WARNING:resource_bundle.cc(447)] locale_file_path.empty() for locale
[0317/192216.443625:WARNING:resource_bundle.cc(447)] locale_file_path.empty() for locale
[0317/192216.449054:FATAL:zygote_main_linux.cc(161)] Check failed: sandbox::ThreadHelpers::IsSingleThreaded().
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x0040068dc8c0 (/headless-shell/headless-shell+0x68dc8bf)
#3 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#4 0x0040068773bb (/headless-shell/headless-shell+0x68773ba)
#5 0x0040052479de (/headless-shell/headless-shell+0x52479dd)
#6 0x0040052499a3 (/headless-shell/headless-shell+0x52499a2)
#7 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#8 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#9 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#10 0x0040068be3b3 (/headless-shell/headless-shell+0x68be3b2)
#11 0x0040068bd0b5 (/headless-shell/headless-shell+0x68bd0b4)
#12 0x00400d3f8d0a __libc_start_main
#13 0x00400342a22a _start
Crash keys:
  "switch-8" = "--allow-pre-commit-input"
  "switch-7" = "--use-angle=swiftshader-webgl"
  "switch-6" = "--use-gl=angle"
  "switch-5" = "--ozone-platform=headless"
  "switch-4" = "--headless"
  "switch-3" = "--headless"
  "switch-2" = "--no-sandbox"
  "switch-1" = "--type=zygote"
  "num-switches" = "8"

Received signal 6
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x00400698dc41 (/headless-shell/headless-shell+0x698dc40)
#3 0x00400d069140 (/lib/x86_64-linux-gnu/libpthread-2.31.so+0x1413f)
#4 0x00400d40dce1 gsignal
#5 0x00400d3f7537 abort
#6 0x00400698cdc5 (/headless-shell/headless-shell+0x698cdc4)
#7 0x0040068dcd17 (/headless-shell/headless-shell+0x68dcd16)
#8 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#9 0x0040068773bb (/headless-shell/headless-shell+0x68773ba)
#10 0x0040052479de (/headless-shell/headless-shell+0x52479dd)
#11 0x0040052499a3 (/headless-shell/headless-shell+0x52499a2)
#12 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#13 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#14 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#15 0x0040068be3b3 (/headless-shell/headless-shell+0x68be3b2)
#16 0x0040068bd0b5 (/headless-shell/headless-shell+0x68bd0b4)
#17 0x00400d3f8d0a __libc_start_main
#18 0x00400342a22a _start
  r8:<PHONE_NUMBER>000000  r9: 000000400d0198e0 r10:<PHONE_NUMBER>000008 r11: 000000400d565000
 r12: 00001a1200288140 r13:<PHONE_NUMBER>00006f r14: aaaaaaaaaaaaaaaa r15: 000000400d01a360
  di:<PHONE_NUMBER>000002  si: 000000400d0198e0  bp: 000000400d019b30  bx: 000000400d5a5040
  dx:<PHONE_NUMBER>000000  ax:<PHONE_NUMBER>000000  cx:<PHONE_NUMBER>000027  sp: 000000400d0198e0
  ip: 000000400d40dce1 efl:<PHONE_NUMBER>000246 cgf: 002b000000000033 erf:<PHONE_NUMBER>000000
 trp: ffffffffffffffff msk:<PHONE_NUMBER>000000 cr2:<PHONE_NUMBER>000000
[end of stack trace]
qemu: uncaught target signal 6 (Aborted) - core dumped
[0317/192216.449094:FATAL:zygote_main_linux.cc(161)] Check failed: sandbox::ThreadHelpers::IsSingleThreaded().
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x0040068dc8c0 (/headless-shell/headless-shell+0x68dc8bf)
#3 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#4 0x0040068773bb (/headless-shell/headless-shell+0x68773ba)
#5 0x0040052479de (/headless-shell/headless-shell+0x52479dd)
#6 0x0040052499a3 (/headless-shell/headless-shell+0x52499a2)
#7 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#8 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#9 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#10 0x0040068be3b3 (/headless-shell/headless-shell+0x68be3b2)
#11 0x0040068bd0b5 (/headless-shell/headless-shell+0x68bd0b4)
#12 0x00400d3f8d0a __libc_start_main
#13 0x00400342a22a _start
Crash keys:
  "switch-9" = "--allow-pre-commit-input"
  "switch-8" = "--use-angle=swiftshader-webgl"
  "switch-7" = "--use-gl=angle"
  "switch-6" = "--ozone-platform=headless"
  "switch-5" = "--headless"
  "switch-4" = "--headless"
  "switch-3" = "--no-sandbox"
  "switch-2" = "--no-zygote-sandbox"
  "switch-1" = "--type=zygote"
  "num-switches" = "9"

Received signal 6
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x00400698dc41 (/headless-shell/headless-shell+0x698dc40)
#3 0x00400d069140 (/lib/x86_64-linux-gnu/libpthread-2.31.so+0x1413f)
#4 0x00400d40dce1 gsignal
#5 0x00400d3f7537 abort
#6 0x00400698cdc5 (/headless-shell/headless-shell+0x698cdc4)
#7 0x0040068dcd17 (/headless-shell/headless-shell+0x68dcd16)
#8 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#9 0x0040068773bb (/headless-shell/headless-shell+0x68773ba)
#10 0x0040052479de (/headless-shell/headless-shell+0x52479dd)
#11 0x0040052499a3 (/headless-shell/headless-shell+0x52499a2)
#12 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#13 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#14 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#15 0x0040068be3b3 (/headless-shell/headless-shell+0x68be3b2)
#16 0x0040068bd0b5 (/headless-shell/headless-shell+0x68bd0b4)
#17 0x00400d3f8d0a __libc_start_main
#18 0x00400342a22a _start
  r8:<PHONE_NUMBER>000000  r9: 000000400d0198c0 r10:<PHONE_NUMBER>000008 r11: 000000400d565000
 r12: 000029a200288140 r13:<PHONE_NUMBER>00006f r14: aaaaaaaaaaaaaaaa r15: 000000400d01a340
  di:<PHONE_NUMBER>000002  si: 000000400d0198c0  bp: 000000400d019b10  bx: 000000400d5a5040
  dx:<PHONE_NUMBER>000000  ax:<PHONE_NUMBER>000000  cx:<PHONE_NUMBER>000027  sp: 000000400d0198c0
  ip: 000000400d40dce1 efl:<PHONE_NUMBER>000246 cgf: 002b000000000033 erf:<PHONE_NUMBER>000000
 trp: ffffffffffffffff msk:<PHONE_NUMBER>000000 cr2:<PHONE_NUMBER>000000
[end of stack trace]
qemu: uncaught target signal 6 (Aborted) - core dumped
[0317/192216.506995:ERROR:power_monitor_device_source_stub.cc(11)] Not implemented reached in virtual bool base::PowerMonitorDeviceSource::IsOnBatteryPower()
[0317/192216.536436:INFO:content_main_runner_impl.cc(1157)] Chrome is running in full browser mode.
[0317/192216.662833:ERROR:file_path_watcher_linux.cc(321)] inotify_init() failed: Function not implemented (38)

DevTools listening on ws://<IP_ADDRESS>:9222/devtools/browser/72ec51f5-334c-48fe-97ce-cdf22dd113ee
[0317/192216.750457:WARNING:child_process_launcher_helper_posix.cc(83)] Ignoring invalid file snapshot_blob.bin
qemu: unknown option 'type=utility'
[0317/192216.783237:ERROR:gpu_process_host.cc(972)] GPU process launch failed: error_code=1002
[0317/192216.783358:WARNING:gpu_process_host.cc(1283)] The GPU process has crashed 1 time(s)
[0317/192216.809613:ERROR:network_service_instance_impl.cc(975)] Network service crashed, restarting service.
[0317/192216.810792:WARNING:child_process_launcher_helper_posix.cc(83)] Ignoring invalid file snapshot_blob.bin
qemu: unknown option 'type=utility'
[0317/192216.938500:WARNING:child_process_launcher_helper_posix.cc(83)] Ignoring invalid file snapshot_blob.bin
[0317/192217.011471:ERROR:gpu_process_host.cc(972)] GPU process launch failed: error_code=1002
[0317/192217.011545:WARNING:gpu_process_host.cc(1283)] The GPU process has crashed 2 time(s)
[0317/192217.024127:ERROR:network_service_instance_impl.cc(975)] Network service crashed, restarting service.
[0317/192217.025166:WARNING:child_process_launcher_helper_posix.cc(83)] Ignoring invalid file snapshot_blob.bin
qemu: unknown option 'type=utility'
[0317/192217.069158:ERROR:gpu_process_host.cc(972)] GPU process launch failed: error_code=1002
[0317/192217.069256:WARNING:gpu_process_host.cc(1283)] The GPU process has crashed 3 time(s)
[0317/192217.081462:ERROR:network_service_instance_impl.cc(975)] Network service crashed, restarting service.
[0317/192217.082459:WARNING:child_process_launcher_helper_posix.cc(83)] Ignoring invalid file snapshot_blob.bin
qemu: unknown option 'type=utility'
[0317/192217.086880:FATAL:headless_request_context_manager.cc(139)] Check failed: !proxy_config_client_.
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x0040068dc8c0 (/headless-shell/headless-shell+0x68dc8bf)
#3 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#4 0x004006cffd28 (/headless-shell/headless-shell+0x6cffd27)
#5 0x004006cff7ad (/headless-shell/headless-shell+0x6cff7ac)
#6 0x004004f477a7 (/headless-shell/headless-shell+0x4f477a6)
#7 0x0040035b3704 (/headless-shell/headless-shell+0x35b3703)
#8 0x004007381797 (/headless-shell/headless-shell+0x7381796)
#9 0x00400738e161 (/headless-shell/headless-shell+0x738e160)
#10 0x00400738ab2a (/headless-shell/headless-shell+0x738ab29)
#11 0x00400738985e (/headless-shell/headless-shell+0x738985d)
#12 0x00400737c89f (/headless-shell/headless-shell+0x737c89e)
#13 0x00400737d907 (/headless-shell/headless-shell+0x737d906)
#14 0x0040045d7030 (/headless-shell/headless-shell+0x45d702f)
#15 0x0040073a702a (/headless-shell/headless-shell+0x73a7029)
#16 0x004006824412 (/headless-shell/headless-shell+0x6824411)
#17 0x00400692ed29 (/headless-shell/headless-shell+0x692ed28)
#18 0x004006951cab (/headless-shell/headless-shell+0x6951caa)
#19 0x00400695145b (/headless-shell/headless-shell+0x695145a)
#20 0x004006952402 (/headless-shell/headless-shell+0x6952401)
#21 0x004006a01105 (/headless-shell/headless-shell+0x6a01104)
#22 0x004006952960 (/headless-shell/headless-shell+0x695295f)
#23 0x004006914287 (/headless-shell/headless-shell+0x6914286)
#24 0x00400497d065 (/headless-shell/headless-shell+0x497d064)
#25 0x00400497ea12 (/headless-shell/headless-shell+0x497ea11)
#26 0x00400b17f03b (/headless-shell/headless-shell+0xb17f03a)
#27 0x0040052488e3 (/headless-shell/headless-shell+0x52488e2)
#28 0x004005249fa3 (/headless-shell/headless-shell+0x5249fa2)
#29 0x00400524997a (/headless-shell/headless-shell+0x5249979)
#30 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#31 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#32 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#33 0x0040068be4ce (/headless-shell/headless-shell+0x68be4cd)
#34 0x0040068be215 (/headless-shell/headless-shell+0x68be214)
#35 0x00400d3f8d0a __libc_start_main
#36 0x00400342a22a _start
Task trace:
#0 0x0040073a739c (/headless-shell/headless-shell+0x73a739b)
Crash keys:
  "ui_scheduler_async_stack" = "0x40073A739C 0x0"
  "io_scheduler_async_stack" = "0x400517C9CB 0x40049D1310"
  "switch-8" = "--allow-pre-commit-input"
  "switch-7" = "--use-angle=swiftshader-webgl"
  "switch-6" = "--use-gl=angle"
  "switch-5" = "--ozone-platform=headless"
  "switch-4" = "--headless"
  "switch-3" = "--remote-debugging-port=9222"
  "switch-2" = "--remote-debugging-address=<IP_ADDRESS>"
  "switch-1" = "--no-sandbox"
  "num-switches" = "8"

Received signal 6
#0 0x00400698e1b9 (/headless-shell/headless-shell+0x698e1b8)
#1 0x0040068c6d93 (/headless-shell/headless-shell+0x68c6d92)
#2 0x00400698dc41 (/headless-shell/headless-shell+0x698dc40)
#3 0x00400d069140 (/lib/x86_64-linux-gnu/libpthread-2.31.so+0x1413f)
#4 0x00400d40dce1 gsignal
#5 0x00400d3f7537 abort
#6 0x00400698cdc5 (/headless-shell/headless-shell+0x698cdc4)
#7 0x0040068dcd17 (/headless-shell/headless-shell+0x68dcd16)
#8 0x0040068dd33e (/headless-shell/headless-shell+0x68dd33d)
#9 0x004006cffd28 (/headless-shell/headless-shell+0x6cffd27)
#10 0x004006cff7ad (/headless-shell/headless-shell+0x6cff7ac)
#11 0x004004f477a7 (/headless-shell/headless-shell+0x4f477a6)
#12 0x0040035b3704 (/headless-shell/headless-shell+0x35b3703)
#13 0x004007381797 (/headless-shell/headless-shell+0x7381796)
#14 0x00400738e161 (/headless-shell/headless-shell+0x738e160)
#15 0x00400738ab2a (/headless-shell/headless-shell+0x738ab29)
#16 0x00400738985e (/headless-shell/headless-shell+0x738985d)
#17 0x00400737c89f (/headless-shell/headless-shell+0x737c89e)
#18 0x00400737d907 (/headless-shell/headless-shell+0x737d906)
#19 0x0040045d7030 (/headless-shell/headless-shell+0x45d702f)
#20 0x0040073a702a (/headless-shell/headless-shell+0x73a7029)
#21 0x004006824412 (/headless-shell/headless-shell+0x6824411)
#22 0x00400692ed29 (/headless-shell/headless-shell+0x692ed28)
#23 0x004006951cab (/headless-shell/headless-shell+0x6951caa)
#24 0x00400695145b (/headless-shell/headless-shell+0x695145a)
#25 0x004006952402 (/headless-shell/headless-shell+0x6952401)
#26 0x004006a01105 (/headless-shell/headless-shell+0x6a01104)
#27 0x004006952960 (/headless-shell/headless-shell+0x695295f)
#28 0x004006914287 (/headless-shell/headless-shell+0x6914286)
#29 0x00400497d065 (/headless-shell/headless-shell+0x497d064)
#30 0x00400497ea12 (/headless-shell/headless-shell+0x497ea11)
#31 0x00400b17f03b (/headless-shell/headless-shell+0xb17f03a)
#32 0x0040052488e3 (/headless-shell/headless-shell+0x52488e2)
#33 0x004005249fa3 (/headless-shell/headless-shell+0x5249fa2)
#34 0x00400524997a (/headless-shell/headless-shell+0x5249979)
#35 0x004005246ce6 (/headless-shell/headless-shell+0x5246ce5)
#36 0x0040052476e7 (/headless-shell/headless-shell+0x52476e6)
#37 0x0040068be66d (/headless-shell/headless-shell+0x68be66c)
#38 0x0040068be4ce (/headless-shell/headless-shell+0x68be4cd)
#39 0x0040068be215 (/headless-shell/headless-shell+0x68be214)
#40 0x00400d3f8d0a __libc_start_main
#41 0x00400342a22a _start
  r8:<PHONE_NUMBER>000000  r9: 000000400d018dc0 r10:<PHONE_NUMBER>000008 r11:<PHONE_NUMBER>000000
 r12: 000031f800282900 r13:<PHONE_NUMBER>000069 r14: aaaaaaaaaaaaaaaa r15: 000000400d019840
  di:<PHONE_NUMBER>000002  si: 000000400d018dc0  bp: 000000400d019010  bx: 000000400d5a5040
  dx:<PHONE_NUMBER>000000  ax:<PHONE_NUMBER>000000  cx:<PHONE_NUMBER>000027  sp: 000000400d018dc0
  ip: 000000400d40dce1 efl:<PHONE_NUMBER>000246 cgf: 002b000000000033 erf:<PHONE_NUMBER>000000
 trp: ffffffffffffffff msk:<PHONE_NUMBER>000000 cr2:<PHONE_NUMBER>000000
[end of stack trace]
qemu: uncaught target signal 6 (Aborted) - core dumped

The current build of headless-shell can not run on the ARM architecture (including M1). See #998

@ZekeLu thanks for the feedback regarding why i can't run image on my local machine.
but it still cannot explain the reason why my kubernetes cluster refuses to work.
In short, I run the same code I've shared above in kubernetes cluster in separate pod.  If you have listed all the log, then it means that chromedp.Navigate does not finish in 30 seconds. Maybe the network between the k8s environment and the website is bad. Try to increase the timeout.
BTW, you should not call dom.GetDocument directly. See #762


Add source repository to metadata.json format

We could do it like npm does in package.json: https://docs.npmjs.com/cli/v7/configuring-npm/package-json#repository

Fixed in 336ce20364d366d07eb6cd453a0359f08b3b25ef


Why do we need defusedxml?

I was wondering why we decided to use defusedxml as a required dependency for parsing XML instead of the standard library. The docs state that defusedxml should be used for server code, which definitely does not apply to MNE. Since we have a very strict policy for adding required dependencies, I'm a bit surprised that this was added without much discussion.

Some EEG systems store data in xml format. Since we sometimes have users share that data with us and load it locally for debugging, this protects our local machines from malicious xml.

The docs specifically state (emphasis mine): "Use of this package is recommended for any server code that parses untrusted XML data."
The only two vulnerabilities that exist in the standard library are DoS attacks. If someone parses malicious XML, the only harm done is 100% CPU load (and maybe filling up space). This is dangerous when running a server, but not in the case of MNE. Therefore, I'd rather not depend on defusedxml.

What is the downside, exactly?

Given our strict policy for adding new requirements, I just find it surprising that this was added without any discussion. I'm not against dependencies, but MNE-Python has always been very conservative (see e.g. #11564), and if we now want to relax this a bit, we should discuss this with a larger group of devs.
If we stick with being conservative, I'm 👎 on adding defusedxml, because it isn't really necessary. The potential harm is manageable (just quit the process), and XML parsing is a tiny niche part in our code (basically, the EGI reader). Re server vs. desktop, a DoS attack on a server results in the server being unavailable until an admin steps in, which can take a while. This affects all clients which want to connect to the server. On a desktop, the user can immediately handle the problem, and no one else is affected.

I am with @cbrnr on this one.

Oh that's great news, then!

Given our strict policy for adding new requirements, I just find it surprising that this was added without any discussion. [...] if we now want to relax this a bit, we should discuss this with a larger group of devs.

This is a legitimate complaint. However, it was added in https://github.com/mne-tools/mne-python/pull/11937, defusedxml was mentioned in the PR description, the PR was open for 3 days before merging, and you (@cbrnr) commented on that PR.  So it feels a bit disingenuous to say it was added without discussion. Maybe it would have been better to have a separate RFC issue about it, but it wasn't snuck in secretly or anything. If you'd like to propose a policy for dependency changes (e.g., must be open for N days, requires M approvals, etc), I'd be happy to have that discussion (in a separate issue).

...it isn't really necessary. The potential harm is manageable (just quit the process), and XML parsing is a tiny niche part in our code (basically, the EGI reader). Re server vs. desktop, a DoS attack on a server results in the server being unavailable until an admin steps in, which can take a while. This affects all clients which want to connect to the server. On a desktop, the user can immediately handle the problem, and no one else is affected.

I don't find that convincing:

Terminating a running process can mean lost work.
MNE is often run on shared infrastructure. Many such environments will have per-user quotas that prevent XML bombs from affecting all users, but I don't think it's very responsible for us to assume that such quotas are always going to be in place. E.g., shared resources on the scale of a single research lab or a small department may not be professionally managed and thus may not have quotas in place.

I read https://github.com/tiran/defusedxml/tree/main#python-xml-libraries again, and to me, it looks like the standard library XML parsers are protected against billion laughs and quadratic blowup, and they don't expand entities anymore, at least for Python ≥ 3.8. So I think we should be safe using standard library parsers (we are using etree and minidom).

I think you're mis-reading the table. Both etree and minidom are marked "maybe" vulnerable to billion laughs / quadratic blowup, and are marked with footnote 1, which says it depends on the underlying expat version in use.  The point about entity expansion refers to different vulnerabilities in different rows of that table.  The warning table on the python 3.9 docs agrees that billion laughs / quadratic expansion are still problems (it still says "vulnerable"). So I think we'd need to check pyexpat.EXPAT_VERSION in order to be sure things are safe. @cbrnr if you want to write code that performs that check (and add associated #nosec annotations wherever they're now needed), then I'd be willing to drop defusedxml. Alternatively if you can demonstrate that expat < 2.4.1 will never be used by Python 3.9, that would also convince me to drop defusedxml.

FYI this read may also interest you: https://discuss.python.org/t/status-of-defusedxml-and-recommendation-in-docs/34762/
Things seem to be quite messy in the Python XML world.

Yes, I've read that too @hoechenberger. To me the take-home message was still "stdlib xml module is still not considered safe out of the box, defusedxml is safe by default and still maintained, and lxml is more actively developed and is widely used, but still has some unsafe defaults". In other words, it did not convince me that  there was a better alternative to defusedxml.

This is a legitimate complaint. However, it was added in https://github.com/mne-tools/mne-python/pull/11937, defusedxml was mentioned in the PR description, the PR was open for 3 days before merging, and you (@cbrnr) commented on that PR. So it feels a bit disingenuous to say it was added without discussion. Maybe it would have been better to have a separate RFC issue about it, but it wasn't snuck in secretly or anything. If you'd like to propose a policy for dependency changes (e.g., must be open for N days, requires M approvals, etc), I'd be happy to have that discussion (in a separate issue).

I did not say that you snuck it in, but whenever a PR adds a new core dependency, I think it would be helpful if this was very clearly mentioned. Even though I commented, I didn't realize that this PR added a new package. So yes, some kind of more formal approval would be nice.

I think you're mis-reading the table.

"Maybe" is qualified with footnotes, and in summary, I read that to mean that stdlib XML parsers are not vulnerable with expat > 2.4.0. But it's weird that this table in the Python docs still shows "vulnerable" even for 3.12. I assume it's probably because they didn't update the table, given the ongoing discussions on the state of XML parsing in Python. But I might be wrong.

So I think we'd need to check pyexpat.EXPAT_VERSION in order to be sure things are safe.

I think it the version can be obtained with:
from xml.parsers import expat
expat.version_info

I don't know how to show expat versions for all Python versions (on different platforms), I'd hope that this was documented somewhere, but I didn't find anything yet.

I don't find that convincing [...|

This is probably the key point where we disagree. If you really want to safeguard against these attacks, it seems like we are stuck with defusedxml.

This is probably the key point where we disagree. If you really want to safeguard against these attacks, it seems like we are stuck with defusedxml.

I'm not sure how likely we / end users are to hit problems, but I'd rather be safe than sorry here. My vote is to keep defusedxml, and I think @hoechenberger's suggestion is a good one to make it an optional dependency for EGI and NeuroElectrics DataFormat (NEDF), the two places it looks like we use it based on git grep. I can do this quickly if you're happy with this solution @cbrnr @drammock ?

Yes, I'm happy with this solution! Thanks @larsoner!


[main] Update community files

Cron -knative-prow-robot
/cc knative-sandbox/source-wg-leads
/assign knative-sandbox/source-wg-leads
Produced by: knative-sandbox/knobots/actions/update-community
Details:

cc @pierDipi can we update the security unicode check to include the file name and line number in the output?

https://github.com/pierDipi/unicode-control-characters-action/pull/4

/hold


How to know each single cell spatial location after mapping?

I use Tangram to map single cell onto stereo-seq data, and after running Tangram followed by Tutorial. How can I get the single cell corresponding to each spatial location, in other words, how can I get the spatial location information mapped by single cell?


running

does it open a tab automatically? or should i open it at specific port? could fine it in the docs either.

No idea what you are talking about here. Please elaborate.


Support 1.0.0-alpha09

Trying this version fails due to changes in metalava command line options. More specifically the visibility modifiers such as "--protected" are no longer available.

@tylerbwong any reason why this didnt make it into 0.3.5?

@tylerbwong any reason why this didnt make it into 0.3.5?

Hi @efemoney, unfortunately no other reason than I just didn't have time to sift through the API changes and work on it. PRs welcome if anyone would like to take this on!


Fix warning in publishDockerImages.yml workflow

Use the "$GITHUB_OUTPUT" variable instead of the deprecated "::set-output" expression to write command output.

Codecov Report

Merging #401 (c563b73) into main (7b3271f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #401   +/-   ##
=======================================
  Coverage   65.38%   65.38%
=======================================
  Files          79       79
  Lines        5498     5498
=======================================
  Hits         3595     3595
  Misses       1476     1476
  Partials      427      427


ValueError: not enough values to unpack (expected 2, got 1)

Hi，I encountered some problem when benchmarking throughputs. Here are the tracebacks

Traceback (most recent call last):
File "/disk1/EAGLE/test_throughput.py", line 14, in
output_ids=model.eagenerate(input_ids,temperature=0.5,max_new_tokens=512)
File "/home/disk1/.conda/envs/EAGLE/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/disk1/EAGLE/model/ea_model.py", line 203, in eagenerate
tree_logits, logits, hidden_state, sample_token = initialize_tree(
File "/disk1/EAGLE/model/utils.py", line 164, in initialize_tree
tree_logits, outputs, logits,hidden_state,sample_token = model(
File "/home/disk1/.conda/envs/EAGLE/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "/disk1/EAGLE/model/ea_model.py", line 146, in forward
ea_logits = self.ea_layer.topK_genrate(hidden_states,input_ids,self.base_model.lm_head,logits_processor)
File "/home/disk1/.conda/envs/EAGLE/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "/disk1/EAGLE/model/cnets.py", line 801, in topK_genrate
out_hidden, past_key_values = self(hidden_states, input_ids=input_ids, use_cache=True)
ValueError: not enough values to unpack (expected 2, got 1)

Maybe there is some bug within the forward? I've noticed that forward only return 1 value, hidden_states

Hello, a possible reason could be that you haven't set
model.eval().

If the problem persists, could you provide the complete code that is causing the error?

Hey, @Liyuhui-12 sorry for the late response, how could I forget the eval mode XD. It's exactly the reason and your explaination quite help me a lot to understand the code.


tauri::generate_context!() error: OUT_DIR env var is not set

I've been trying to get started with tauri-egui 0.1.0 and I have something wrong in my setup. When I compile, I get this error:
error: OUT_DIR env var is not set, do you have a build script?
  --> src\main.rs:16:16
   |
16 |         .build(tauri::generate_context!())
   |                ^^^^^^^^^^^^^^^^^^^^^^^^^

I created this minimal project to reproduce:
https://github.com/ctaggart/tauri-egui-basic/

your project is missing a build.rs script with the following content:
fn main() {
  tauri_build::build()
}

you also need to add tauri-build to your build-dependencies in Cargo.toml


Minikube status not wokring "Failed to get status:..."

When I run the command "Kubernetes: Minikube status" I face an error
Error getting status Error: Failed to get status: ! Executing "docker container inspect minikube --format={{.State.Status}}" took an unusually long time: 3.2786046s * Restarting the docker service may improve performance.
When I try to run docker container inspect minikube --format={{.State.Status}} in PowerShell it doesn't work.
But win I run it in cmd it works fine
How I can solve this issue

The package uses shelljs and its unsure if that syntax {{.State.Status}} is actually working.
It is definitely running it in cmd per the docs.
One would need to debug by sniffing with breakpoints in VS Code JavaScript Debug Terminal.

Hi @KhASQ ,
have you tried to run the Minikube status command from the shell by using the minikube binary used by the extension?
Do you have something similar to "vscode-kubernetes.minikube-path. in your settings.json in vscode? Use the minikube from that path. Which version is it? Does it work?

Thank you @M00TSDNS and @lstocchi
I did minikube status from the same minikube in the "vscode-kubernetes.minikube-path"
Using powershell
`PS C:\kube> .\minikube.exe status
! Executing "docker container inspect minikube --format={{.State.Status}}" took an unusually long time: 3.3915676s

Restarting the docker service may improve performance.
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

PS C:\kube> .\minikube.exe version
minikube version: v1.29.0
commit: ddac20b4b34a9c8c857fc602203b6ba2679794d3`
And this using CMD
` C:\kube>minikube.exe status
! Executing "docker container inspect minikube --format={{.State.Status}}" took an unusually long time: 3.3177049s

Restarting the docker service may improve performance.
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

C:\kube> minikube.exe version
minikube version: v1.29.0
commit: ddac20b4b34a9c8c857fc602203b6ba2679794d3 `
So the problem from Minikube ?
If yes is there any solution for this

Hi @KhASQ ,
yes, the kubernetes extension just uses the minikube binary to execute the status command so it has nothing to do with it.
There are several issues regarding your problem in the minikube repo. I suggest to give them a try or open a new one yourself.
Hopefully they will guide you to solve your problem

https://github.com/kubernetes/minikube/issues/14470
https://github.com/kubernetes/minikube/issues/7833

Closing as i think this is related to minikube itself. Feel free to open a new issue if you face some other misbehavior


Kylan/show account balance tx list

The purpose of this task is to add the 'Show Balance' functionality and persistence to the Transaction List scene. This supplements the earlier task of adding persistence to the Wallet List scene.
Asana Task: https://app.asana.com/0/361770107085503/498144750192820

@paullinator @swansontec This PR is also ready to be merged into develop


Immutable DB: verify that no file handles are leaked

Make sure that no file handles are leaked by the Immutable DB. We can probably use the Error HasFS for this.

Should ResourceRegistry be used for this?

We can probably use the Error HasFS for this.

what do you mean  by this?

Should ResourceRegistry be used for this?

The ImmutableDB is only used by the ChainDB, which already uses the ResourceRegistry, so I don't think using it in the ImmutableDB too would help. Unless we let  the ImmutableDB use the ResourceRegistry directly, instead of letting the ChainDB manage it. But I'm not sure that would be better.
Note also that the title says "verify" as in "check in the tests". The ChainDB is already doing this: https://github.com/input-output-hk/ouroboros-network/blob/c9498796fa83e1219c342121b1111663e4356f57/ouroboros-consensus/test-storage/Test/Ouroboros/Storage/ChainDB/StateMachine.hs#L1100
I think Edsko at some point wanted to make this more strict: instead of checking at the end for open file handles, check after each operation whether the number of file handles still matches our expectation, without relying too much on implementation details.

We can probably use the Error HasFS for this.

what do you mean by this?

I actually don't remember exactly :slightly_smiling_face:. I was probably thinking of using the error injecting layer to do some more checks, not necessarily to throw errors.

Closing this, since we do this at the level of the chain DB.


Unified heap allocation interface

The key contribution is the define-memory-layout-helpers macro that manages how heap-allocated objects are created, accessed, and checked for equality. I used it for allocating all our types so far. I will use it for coercions too but after I finish the runtime hashconsing for types first.

@akuhlens I addressed all your comments, swapped the order of two commits and added two more commits.

Getting really close.
Tons of places where the indentation could be fixed, many are commented but some are not.
Here is the list of indentations schemes I am using for racket mode which should mostly automate
the process.
'((let$* 1)
  (let*$ 1)
  (let$  1)
  (Let 1)
  (Lambda 1)
  (Letrec 1)
  (Code 1)
  (code$ 1)
  (case$ 1)
  (Switch 1)
  (Letrec 1)
  (Repeat 5)
  (repeat$ 2)
  (precondition$ 1)
  (Prog 1)
  (GlobDecs 1)
  (Labels 1))

This file in particular might be helped by introducing assign$ and op$ with indentation setting of 1. This would effectively give assign$ a define like indentation and op$ would treat its first argument as part of the operator so far as the indentation is concerned.
If there is some technology that would allow us to add this to the repo I would be interested in making the sharing of indentations more automated.
If you care to make define-memory-layout-helpers cleaner, I think the pattern could be more specific and based off this change several more changes will be available.

@akuhlens I addressed all your comments. However having assign$ of indentation level 1 produces ugly indentation, for instance:
(assign$
     t1a
  (sr-tagged-array-ref
   t1 TYPE-TUPLE-TAG (sr-plus TYPE-TUPLE-ELEMENTS-OFFSET i)))

I changed the order of the commits again so that the macro commit is on top and I made it cleaner.

Indentaion 1 indicates that it will indent like let. For every assign$ that needs more than one line should be indented like:
(assign$ t1a
   (sr-tagged-array-ref
       t1 TYPE-TUPLE-TAG (sr-plus TYPE-TUPLE-ELEMENTS-OFFSET i)))

@akuhlens gotcha, done.


Editor - Japanese input - strange behavior on word wrapping

Does this issue occur when all extensions are disabled?: Yes

Version: 1.65.0-insider
Commit: 50089c3f92c17584a4aca179f51f220b56c22020
Date: 2022-02-14T05:17:14.990Z
Electron: 16.0.8
Chromium: 96.0.4664.110
Node.js: 16.9.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19043
IME: Microsoft IME
Steps to Reproduce:

Install VS Code
Open a new file
Enable word-wrapping
Enter Japanese sentence so that it go over the wrap point
Get the strange behavior shown in the video below

Strange behavior - What I got on VS Code with the above steps
https://user-images.githubusercontent.com/82135212/154186413-dfc6a7d0-2e0d-4d22-a774-6fd4852f7863.mp4
Normal behavior - What I got on Mery (text editor)
https://user-images.githubusercontent.com/82135212/154187902-c15438d8-481e-475b-909d-d7b3d568eaac.mp4
I found issue #138704 and #139956. I also found those issues should be solved by PR #139394 in the insiders. So I tried the latest insiders as indicated above. However, I still got the same problem. The above video actually records the behavior of the insiders without any extensions.
[update] I could not record the window of Notepad properly, so I re-upload a video showing expected normal behavior on another text editor. Notepad shows the same (normal) behavior.

I confirm, we are currently not able to render the composed text on multiple lines (wrapped). Let's track in https://github.com/microsoft/vscode/issues/28291

This issue is not a duplicate of #28291.
Issue #28291 is about the text being typed being displayed outside of the window.
This issue (#143167) is about the text being typed being swept away as if it were being overwritten inside the window instead of being displayed outside the window.
This makes it difficult to use because the text being typed is swept away and becomes invisible.
This behavior has been occurring since version 1.64.0. It did not occur until version 1.63.2.
This issue behavior. Since version 1.64.0 (also version 1.66.0-insider).
https://user-images.githubusercontent.com/89648677/159217699-20e0b59c-b8d2-4f0c-953f-aa3b3f0dad3c.mp4
Expected behavior. All characters being typed are displayed, making it easy to type. Until version 1.63.2.
https://user-images.githubusercontent.com/89648677/159217800-9e7e8877-f52f-4057-84dc-d988da2e7e8e.mp4


Proposal 1 - extend the trigger dropdown

Originally from #24, submitted by @bartbutenaers
Currently the sensor node allows two trigger types ("all messages" and "msg.payload=true").  It would be nice if extra options could be added by using TypedInputs.  For example:

Then it becomes possible to trigger an alarm when msg.payload=1 or msg.payload="OPEN" or ...
That way my flow would become much cleaner, since I could avoid a lot of Change-nodes (which I also see in the example flows on your readme page):

Of course the existing options should be migrated automatically, to make sure the existing flows are not impacted.
BTW It is not clear to me how the current filtering works.  Because at first sight the triggerType seems only to be used in the sensor.html file, but I might have overlooked something.  Would be nice if you could explain it!

Great idea, I like this. It certainly would make things easier.
Can anyone else comment on common use cases? I would think maybe even a "msg.[enter path here]" = "string value also compared as numeric" or something would meet the majority of cases, but what about more complex multi-facet matching? Ie
msg.payload.value==200 && msg.tag==3 ?
perhaps it's better to allow a small code snippet space like a basic function, then you could do any logic you like?

even a "msg.[enter path here]" = "string value also compared as numeric" or something would meet the majority of cases

Indeed that would solved most of the cases.  Hadn't even thought about that...
Although that indeed might be sufficient for lots of use cases, I see some advantages in using the TypedInputs:

The TypedInput fields is more Node-RED standard style.  If I need to check for a boolean= true then every Node-RED user knows that he needs to select a boolean TypedInput from the dropdown.  Although your expression syntax is VERY easy, you have to look it up in your readme page.  While the TypedInputs are more self explaining.  The expression seems (to me) a bit of cheating :-)

The TypedInputs offer some extra types of triggers.  You could introduce dynamic thresholds when using the "flow" or "global" types.  An simple hypothetical example:

Normally you want to raise an alarm when there are more than 30 people in a bar, because that is required for fire insurance.
During those dark COVID days you want to raise an alarm when there are more than 10 people in the same bar, to be able to insure social distance.

So you need some dynamic threshold, which should be easy to change live (without requiring a deploy)!
You could again workaround this by adding some logic in your flow to determine whether this is a problem or not, and then pass that boolean to your Sensor node.  But the whole idea of this feature request is to simplify our flows, by getting rid of lots of Change/Function/... nodes.  By using a numeric TypedInput you can simply write your threshold in Context-memory via some user interface (e.g. the Node-RED dashboard) in flow memory flow.maximumVisistors=10 and read that threshold directly from your node ....

Note that processing the values from multiple TypedInputs can be done using evaluateNodeProperty.  I can always create a proposal via a PR in a couple of weeks if you like!

OK, had a think about this. Maybe a very easily understandable way to do it would be to replicate the switch node functionality?

Because technically we need to come up with a boolean value (To trigger or not to trigger? That is the question).
This switch node sets the type of expression at the top and then allows the user to set multiple and/or functions to trigger. It would just be for a single "output".
What do you think?

switch.html
switch.js

Maybe a very easily understandable way to do it would be to replicate the switch node functionality?

That would indeed be the most powerful option.  Although it would make your code a LOT more complex to maintain.  You also have to take into account that the Switch-node will become much more complex in the future: for example when the compound rules will be implemented (IF ... AND ... OR ...) in the Switch node, you would have to implement the same in your node.  Unless you implement your own all / any rules (like you have stated above), but then your clone of the Switch node code will grow away from the Switch node in the future (which makes it very difficult to keep in sync with the new Switch node features in the future).
Personally I would keep it a bit simple.  If we could only support (equality checking of) multiple trigger value types via TypedInputs, you can e.g. wire a GPIO input (from a read relay on a door) directly to your node: 0 = trigger alarm / 1 = don't trigger alarm.  That way we can already simplify quite a large number of flows, by eliminating "basic" Switch/Change nodes.  For less simple operations (i.e. not a simple equality check) I would suggest to keep using a Switch/Change node: each node should do only what it is good at ;-)
Of course it is your node: if you want to clone the whole Switch node functionality, then I rest my case.    If you want to keep it simple by only typedinputs, then I can try to implement a first version if you want.

This switch node sets the type of expression at the top

That is indeed something very useful, again to avoid Switch nodes.  If e.g. the trigger value arrives in the input message as msg.trigger_value, then you could simply specify that msg property name.  I had that already in mind as 'proposal 4', but I didn't wanted to look greedy at the time being ;-).

Thanks @bartbutenaers, you are probably correct it is overkill to go the complete duplication of the switch node functions AND try and maintain it to remain current.
I was actually not thinking to that degree. I was more thinking we use the same sort of approach, and just replicate one or 2 of the most useful ones that will fill our immediate need, and it provides a launchpad and precedent for anyone to chip in if they would like to add (or just request) a function they think should also be ported to meet a use case they have (with suitable justification of course).
I also would not care if it was not maintained in step with the switch node as I don't think that will really help us.
So we start with about the same (or less effort) to port a small portion of the switch code that is essentially already written for us. Then make a note that people can request or contribute more functions if they want.
What do you think? It provides a quick solution now and more flexibility if needed in future.
Oh, so if I understand about msg.trigger_value, then you could just put that in the field at the top and this mod idea would also cover it, right? Or did I misunderstand?

Oh, so if I understand about msg.trigger_value, then you could just put that in the field at the top and this mod idea would also cover it, right? Or did I misunderstand?

If you specify at the top msg.blabla then indeed your node will get the trigger value from that input message 'blabla' property.  By adding such a typedInput field (type 'msg') you can avoid a lot of Change nodes in a flow.  So I would definately add such a typedInput to your config screen.

It provides a quick solution now and more flexibility if needed in future.

To keep it simple and yet powerful, I'm not sure anymore if we should mimic partly the Switch node.   It will be a lot of development, make your node much more difficult to maintain, and we will never be able to compete with the Switch node (especially if that is extended in the near future with AND/OR logic).
I am now wondering if your initial idea of using a simple expression would be a better solution perhaps?
Suppose we would e.g. use this expression parser library.  Don't think it is maintained anymore, but might be sufficient for our needs.
I haven't tested it yet, but I assume we could use it like this:

The user specifies an expression on your config screen, for example: "msg.payload == 1 and msg.topic == reed_relay".
We compile the expression and pass the input message to it:// Compile expression from the config screen to an executable function
var myfilter = compileExpression(expression);

// Execute function (with input message as parameter)
myfilter({msg: msg});

Does this makes sense to you?

I had another look at switch node and think you are right, on my second look at it, there is a lot of capability, but probably overkill. Something a simple expression can resolve.
So did you want to have a shot at doing the node the way you think with these considerations in mind? I think we are on the same page, we need to give a basic way to make these simple cases handled, and with an expression option it allows a lot of flexibility and it's still simpler to code.
As long as it covers those cases and works well I'd be happy to merge it in and publish an update.
Thanks again for helping work this out. We certainly get a far more powerful and better solution when more people collaborate on it.

Sure I can have a look at it.  Only thing that bothers me, is that the library is probably not maintained anymore.  On the other hand we don't need lots of features from it ...
If you now a more recent javascript logical expression parser library, please let me know!
And I haven't checked if the library is available on npm, otherwise we have to copy its js file to your repo...
My time is up for today...

Seems there is an  NPM module available with the same name and functionality, but pointing to another Github repository.
This package is well maintained, which is much better in case we need assistance.
So I am going to try that one as soon as I have time ...

Currently your node has a dropdown:

Am I correct that this dropdown simply need to be replaced by an input field, where the logical trigger expression can be entered?
If so, I need to write a short code snippet for existing nodes.  Just to make sure we don't have impact on existing flows.

Existing nodes with option msg.payload.open == true will get an identical expression in the new expression editor field.
Existing nodes with option any message will get an empty expression editor field?  And we consider an empty field as 'no condition' which means always true.

Is that ok for you?

Sure. Sounds great!

Hmm, found a partystopper...
Would like to use nested input message properties:

However it looks like the Filtrex library doesn't support nested object properties (since it uses hasOwnProperty):

I could workaround this, but I think it is better if I create a pull-request for the Filtrex library to implement this feature ...

Sounds like it will also make their library more useful/flexible.
Sent from my iPad

On 24 Aug 2021, at 8:25 am, bartbutenaers @.***> wrote:

Hmm, found a partystopper...
Would like to use nested input message properties:
However it looks like the Filtrex library doesn't support nested object properties (since it uses hasOwnProperty):
I could workaround this, but I think it is better if I create a pull-request for the Filtrex library to implement this feature ...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

FYI:
I have registered two issues for the filtrex library:

One for accessing nested message properties (see here)
One for using boolean values (see here)

Hopefully the author can help us soon with this, so I can continue with the implementation of expressions for alarms.
He seems to be a very active contributor, so fingers crossed...

Awesome, thanks for picking this up so quick and helping out for everyone!
Will be a very useful addition I think.
On Tue, Aug 24, 2021 at 4:42 PM bartbutenaers @.***>
wrote:

FYI:
I have registered two issues for the filtrex library:

One for accessing nested message properties (see here
https://github.com/m93a/filtrex/issues/45)
One for using boolean values (see here
https://github.com/m93a/filtrex/issues/46)

Hopefully the author can help us soon with this, so I can continue with
the implementation of expressions for alarms.
He seems to be a very active contributor, so fingers crossed...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Anamico/node-red-contrib-alarm/issues/25#issuecomment-904366514,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHK2LGMHB6GJQ7LHNWUWWDT6M5MLANCNFSM5BYCJDUA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

I have implemented a small endpoint, that allows us to check the syntax of the expression (on the server side).
That syntax check is runned for every character you type, to have a responsive config screen.
The result of the last syntax check is also stored in the node, so the flow editor can draw a red triangle if necessary (based on the last syntax check):

BTW It is not clear to me how the current filtering works. Because at first sight the triggerType seems only to be used in the sensor.html file, but I might have overlooked something. Would be nice if you could explain it!

Actually, I think it was a mistake and never implemented! So you have a blank slate. Not sure how that was missed! 🙂
Sent from my iPhone

On 25 Aug 2021, at 5:10 pm, bartbutenaers @.***> wrote:

I have implemented a small endpoint, that allows us to check the syntax of the expression (on the server side).
That syntax check is runned for every character you type, to have a responsive config screen.
The result of the last syntax check is also stored in the node, so the flow editor can draw a red triangle if necessary (based on the last syntax check):
BTW It is not clear to me how the current filtering works. Because at first sight the triggerType seems only to be used in the sensor.html file, but I might have overlooked something. Would be nice if you could explain it!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Hi @macinspak,
Sorry for the delay!
But I don't think it is useful that I create a pull request, as long as the features haven't been added to the filtrex expression library...
I see now that somebody else has posted the same feature request at the same day, but solving it in another way: see issue.
Hopefully the author can find some time to help us, because I'm a bit stuck now with this...

Hey, no problems, I think you are right. No need stressing, let’s just wait for the library fix.
Sent from my iPad

On 6 Sep 2021, at 7:40 am, bartbutenaers @.***> wrote:

Hi @macinspak,
Sorry for the delay!
But I don't think it is useful that I create a pull request, as long as the features haven't been added to the filtrex expression library...
I see now that somebody else has posted the same feature request at the same day, but solving it in another way: see issue.
Hopefully the author can find some time to help us, because I'm a bit stuck now with this...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

@macinspak,
We got feedback from the Filtrex author.
The poor devil needs to do his final examns in about two weeks...
I will contact you again as soon as the requested Filtrex features are available.
Bart

Hi @macinspak,
I finally managed to create a pull request.

Looks great, seems solid from a code review, but I am too busy to test
heavily now, so will merge on your say-so. If you are confident I am good
to merge it.
On Fri, Oct 1, 2021 at 8:58 AM bartbutenaers @.***>
wrote:

Hi @macinspak https://github.com/macinspak,
I finally managed to create a pull request
https://github.com/Anamico/node-red-contrib-alarm/pull/32.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Anamico/node-red-contrib-alarm/issues/25#issuecomment-931759347,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGHK2LEUGATO5JFYILXTKETUETTQBANCNFSM5BYCJDUA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Hey Andrew,
Sorry for the late reply.  It is a busy week...  Will get back to you this weekend!
Bart


Update to the AWS XRay component

This PR will:

Update the documentation of the AWS XRay component
Add support for a more comprehensive view of sub/segments by copying over the AWS XRay entity (if provided in the exchange headers) to the new thread. Instead of creating a new segment for the seda route the invoked route will be added as subsegment to the invoking route. This is especially useful if some Amazon services (like the S3 upload) are used, which may occur in its own thread.
Add a further test case to demonstrate the new header usage and the effect it causes
Fix some possible NPEs

Looks good. I'll merge tomorrow morning

Thanks for the PR. It has been merged.


Using sockets rather than print

Reviewers:
@ekzhu on navigating the refactoring efforts in #1240
@victordibia regarding the generalized approach in https://github.com/microsoft/autogen/issues/394#issuecomment-1776328981
Why are these changes needed?
This PR allows the output of Agents like ConversableAgent to be emitted through socket rather than print to console, allowing integration with other front end tools that could sit outside of Autogen. This PR is co-authored by @ragyabraham and myself. Tagging @tomlynchRNA for awareness.
Related issue number
Closes #394
Associated #1199 for emitting to Teams front end. @tyler-suard-parker
Dependent on #1240 for cleaner/easier implementation.
Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
Attention: 13 lines in your changes are missing coverage. Please review.

Comparison is base (adbfb20) 32.08% compared to head (b68fb59) 19.11%.
Report is 1 commits behind head on main.

Files
Patch %
Lines

autogen/agentchat/conversable_agent.py
30.00%
6 Missing and 1 partial :warning:

autogen/agentchat/groupchat.py
14.28%
5 Missing and 1 partial :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1290       +/-   ##
===========================================
- Coverage   32.08%   19.11%   -12.98%
===========================================
  Files          32       32
  Lines        4394     4410       +16
  Branches     1025     1086       +61
===========================================
- Hits         1410      843      -567
- Misses       2867     3467      +600
+ Partials      117      100       -17

Flag
Coverage Δ

unittests
19.11% <23.52%> (-12.93%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

This is a great addition. I am trying to get a good understanding of the design.

Is this aiming to move agent-to-agent communication on to websocket/streaming? There is a parallel effort on this front from #1289
To handle printing to a stream, could this be done with a special logging middleware as proposed in the middleware design in #1240?

This is a great addition. I am trying to get a good understanding of the design.

Is this aiming to move agent-to-agent communication on to websocket/streaming? There is a parallel effort on this front from Add RemoteAgent and Receiver #1289

Thanks! I'm glad you're excited by it too.
@ragyabraham please feel free to add.
I think the fundamental difference to #1289 is that here, we're not trying to move the agent-to-agent message transmission to socket. If my understanding is correct
jacks_cal = RemoteAgent("jacks_cal", host="localhost", port=45554)
means that jacks_cal can be hosted at another IP address. This PR is not concerned with that. Instead, this PR is about emitting messages of what each Agent said onto the socket, so that another front-end tool can display it and not for the purpose of sending it to another agent -- in our use case it is web, there seems to be another use case of displaying it in Teams in #1199.

To handle printing to a stream, could this be done with a special logging middleware as proposed in the middleware design in Refactorization study with design patterns (was refactorization of hooks) #1240?

I think so, however, I'm not very familiar with hooks, and would need to work with you or @davorrunje to iterate on how to implement it properly. If there's any tips anyone can share before I start developing, that might help reduce reviews/rework! :)

need to work with you or @davorrunje to iterate on how to implement it properly through the reviews

Certainly! I am here to make sure us don't have to redo a lot of work. I am just thinking if #1240 go through first, it will be much easier for us to implement something like logging and emitting to a frontend.

@ekzhu @joshkyh I am interested in this feature too, let me know if there is anything I can do to help you develop it.

@ekzhu @victordibia
@ragyabraham and I discussed this during our stand-up. We have to withdraw working on this due to other priorities. Can I assign this to the MSFT team?

@joshkyh no worries. I just unassigned you from the PR.

@ekzhu can we have some simple example code for how to implement this on our own?

@Tylersuard Thanks for your interest. This is surely a feature we hope to have but don't have cycle to work on. If you are interested, you can take a look at it. A good place to start is in the conversable_agent.py file, in the method generate_reply. Before the reply message gets sent out you can intercept there and add an async write to a stream, which can be passed in as part of the constructor.
#1240 will refactor ConversableAgent to make this type of extension very easy to do. i.e., it will be a middleware class that you put inside ConversableAgent. You can also choose to work from that branch.

I have implemented this sort of thing in autogen multiple times so far. IMO the best 'official' way to handle it would be introducing an input Queue and an output Queue, allowing the user to specify and/or override them.

@joshkyh shall we close this one for now? The code base has moved a lot since.

I have implemented this sort of thing in autogen multiple times so far. IMO the best 'official' way to handle it would be to introduce an input Queue and an output Queue, allowing the user to specify and/or override them.

Great, you are welcome to go to #1551 to check it out. And there will be follow-up efforts on how to integrate it with frontend.


Please clarify which Microsoft Support department to speak to...

It'd be great if you guys could explicitly state which Support option we need to be choosing in order to request our license keys. Is it Technical Support? Is it a Subscription?

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

ID: c3b9a7fa-9585-a2fb-590e-0b74e128035d
Version Independent ID: 9aae8e97-de68-c274-b4c6-cd925568c75b
Content: Product and Licensing FAQ - Configuration Manager
Content Source: sccm/core/understand/product-and-licensing-faq.md
Service: unspecified
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

@dstreefkerk thanks for filing this. I started an email thread with some folks based on the Twitter responses to see if there's something we can do to help connect the dots. Stay tuned.

I am in the same situation. No one really knows who is supposed to deal with this when talking to support on the phone.
I've been passed on to 8/9 different places so far and almost got sent back to the number I originally dialed. My current agent, Pamela, seems determined to sort this out for me so here's to hoping.

@aczechowski @dstreefkerk Any news on this. No one I have spoken to both at microsoft or our CSP have a clue.

Thanks @JBFulc for checking back, and sorry for the trouble with this. When you talk with Microsoft Support, ask them to reference the internal article ID 4033838.

Thanks @JBFulc for checking back, and sorry for the trouble with this. When you talk with Microsoft Support, ask them to reference the internal article ID 4033838.

To this day no one has been able to help me with activation. quoting that ID to my CSP and others has not helped me for whatever reason. The activation date is coming up soon and I dont really know what to do.

Hm, I got pinged by someone in support yesterday as well, I wonder if for the same? There's an issue with the KB, I'm trying to help track down some additional info. I'm sorry for the challenges.

Hm, I got pinged by someone in support yesterday as well, I wonder if for the same? There's an issue with the KB, I'm trying to help track down some additional info. I'm sorry for the challenges.

Thanks, do appreciate it.

Hm, I got pinged by someone in support yesterday as well, I wonder if for the same? There's an issue with the KB, I'm trying to help track down some additional info. I'm sorry for the challenges.

Hi @aczechowski  any update, I haven't got any further an have only a week left on the evaluation!
Thanks.

Sorry @JBFulc, I'm trying to track down someone who can help. Your best avenue for urgent help is Microsoft Support or your Microsoft account team.

@JBFulc call Microsoft support, tell them to open internal KB 4033838. Step 5 of that internal KB answers the question: How can customers who purchase EMS/M365 via direct and CSP licensing model obtain the key for System Center Configuration Manager? It should be as easy as that. But you need to talk to Microsoft Support.

@JBFulc call Microsoft support, tell them to open internal KB 4033838. Step 5 of that internal KB answers the question: How can customers who purchase EMS/M365 via direct and CSP licensing model obtain the key for System Center Configuration Manager? It should be as easy as that. But you need to talk to Microsoft Support.

Thank you. I will give it a go.

Closing this issue as it was fixed back in March

I hate to bring an issue back from the dead, but I've spent two weeks on and off with Office 365 support, spoke with four different Office 365 Ambassadors, Business Support, and VLSC, referenced 4033838 dozens of times--and no one has any idea how to get me a key for SCCM purchased via Enterprise Mobility + Security E3.
One of the pertinent issues is at least one of the ambassadors was unable to open the internal article 4033838 when I referenced, but I have no way to verify that.
I'm really at my wits ends with this, any help from others would be amazing!

Hi @mdcowdrey, sorry for the troubles. Here's the specific internal URL that you can share with them. I don't know the permissions on these articles, so if they are a Microsoft partner they may not have access.
https://internal.support.services.microsoft.com/en-us/help/4033838
I just opened it, so know it's still there. Step 5 is what they need.

@aczechowski Thanks for the quick response!
It's funny you should send that link, as an Office 365 Support Engineer sent the exact same link to me to see if I could open it, as she could not. (I certainly cannot.)
What do you think? Should I keep asking around? I'd really like my CSP to be able to open the article to avoid all this.

Tell them to email me internally. I'm the only one in the GAL with this name :)
I checked with someone in CSS, vendors can access internal KBs, as long as they're signed in.

@aczechowski ,
anyway you could help us get that SCCM product key sir?   We have tried referencing the internal article ID, the URL for that article ID, we have sent emails, we have called various numbers, we just get the run around.   It isn't clear what Microsoft number we're supposed to call, so we have called Office 365 Support, then they told us to call Microsoft Support, at 1-800-765-7768, who told us to call Office 365 Support, who referenced us back to Microsoft Support.   Very frustrating.

For what it's worth, after three separate attempts, each lasting for a couple days, I was finally able to obtain the key myself.   The number I had originally was always the correct number, which is the Microsoft 365 Technical Support Phone Number: 1-800-865-9408
Each attempt, I would start with calling my Account Representative who provides me with our CSP licenses.   They would provide us with the Microsoft number to call after a few days.   They would have to research if we were entitled to a license and product key, and then who to contact for that product key.
At that point, I'd call the Microsoft number and then I'd get bounced back and forth for a couple days.   They'd send me to the Microsoft team that deals with VLMs, then back to the Microsoft 365 Technical Support.   Occasionally, I'd get sent to the Office 365 Technical Support department.
Microsoft 365 Technical Support logged into my PC to see what article I was talking about, because they had no idea what SCCM was.   They said they could not provide a product key, nor could they access any internal articles.   However, before we disconnected, I pasted the following URL into the chat window:
https://internal.support.services.microsoft.com/en-us/help/4033838
They called back maybe 15 minutes later saying they reached out to other departments and obtained the product key for me!   I am not certain if they actually did this or just discovered they had access to the internal support articles.
I only share my story hoping that this information can be used to try and figure out where the problem lies on Microsoft's end.   The absolute hardest part is getting the Microsoft employee to actually try and view the internal article.   None of them think they have access to it.
Thanks!!!!

@Spork-Schivago
I can't reiterate Spork's comments enough. Most departments can read the article, but searching for the document number doesn't return any results: they need to be sent the link. I finally was able to speak with a technical lead on both the SCCM and Office 365 side, both of whom were able to help me move forward after I sent them the article link directly.
Helpful note, don't bother trying to explain anything until you've verified they are reading the article--you'll waste weeks.
@aczechowski, I appreciate the offer to be a resource but no one seemed to be interested in emailing you directly.
I'd mention that SQL Server 2017 has an entitlement usage from SCCM installation, but I think I've had enough for the next few months.


Try Flow (the "playground") not working

0.65.0 isn't working in the flow playground. I just get the 3 loading dots. It shows several 404s in the developer tools.
0.64.0 works fine though.

Same issue for me:

I can reproduce it in Chrome, Firefox, and Safari.

Noticed the same on Chrome 64

Master and the other versions work fine. Also, the issue is with v0.65.0 not 0.6.5 as described in the original post.

@SavePointSam Thanks, I've updated the original issue description

I believe this has been fixed

It seems not working with 0.68.0 now:


⚠ GitLab Server has degraded performance

In 2f5771f, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11216 ms

Resolved: GitLab Server performance has improved in 65b1e87.


add georgian(ka) language translations

Hey! Thanks for these. There are others in /packages/forms/resources/lang and /packages/tables/resources/lang, mind checking those out too?

Sure, i'll update them as soon as i can.

@danharrin I've updated. Can you check it out?

Thanks!