CompositeBloq in a call graph

Right now, the call graph can contain CompositeBloqs as nodes.

composite bloqs can be quite large and quite expensive to hash and check equality, which are operations we assume are very cheap when building and manipulating a call graph.
It's strange to have a composite bloq inside a call graph -- that means someone has written a decomposition that has a composite bloq within it. Usually our decompositions are made out of other, concrete bloqs. If you think of bloqs as functions and compositebloq as "anonymous functions" aka lambdas, maybe this should be a supported use case but it's still strange.
It makes sense to me to have a compositebloq as the root node of a call graph. This is important for CompositeBloq to follow the Bloq interface and you can imagine using this to create a union of call graphs of bloqs by wrapping them in CompositeBloq first. There are three ways to support this

status quo: put the composite bloq as the root node. Hash it hopefully a limited number of times. Cache the hash of a composite bloq
use a sentinel value like None as the root node for this special case
Return a networkx graph that has n root nodes; one for each bloq instance in the composite bloq

It's strange to have a composite bloq inside a call graph

Are there any existing bloqs where this happens? or are you just saying in general?

I don't think we have any right now in the library. Prior to #1074, a code path would be triggered where a CompositeBloq would be the root node of the call graph

A very similar thing is causing the confusion in #1097 where the user expects to be able to use a CompositeBloq as a root node of a recursive dag. In that, we can either

have all the CostKey support CompositeBloq; pay the cost of caching composite bloqs
only allow CompositeBloq at the root call; special case it and omit it from the cache

In https://github.com/quantumlib/Qualtran/issues/1097#issuecomment-2200882072, @tanujkhattar argues for full support of CompositeBloq including in decompositions.
My thoughts: Pro:

This is "morally" right and can theoretically be well-supported with the cached hash strategy alluded to in the comment
I think of CompositeBloq analogous to anonymous functions ("lambdas"). These are broadly useful in classical programming even though we don't use them in the existing bloq library yet

Considerations:

It's always easier to disallow something and enable it later than vice versa
We need more testing of examples where there is indeed a CompositeBloq in the call graph


Databricks function adx

Implement a stream processing architecture using:

Azure data lake as input data source
Azure Databricks structure streaming using auto loader for file sink
Use Azure databricks job for data split scenario to split data for multi-tenant scenario
Use Azure function for data ingestion into ADX
View and query data in ADX

This architecture is design for huge data scenario. In this case, we split the data pre-process outside of adx for performance consideration
Data schema for this case is based on existing column but added a column :"companyId" for multiple tenant scenario
this pr also includes modify some existing modules for custom arm template scenario

There are existing, well-tested scripts in the solution for generating SPs and storing them in AKV, consider reusing them

Please reopen after addressing comments.


Remove trailing whitespace in description

Thanks! Will merge this when I have time to find out why the build has broken :)


Fix for Android not having startHeadlessService method.

I think the title says it all. The commit is simple. Without this change Android does not work.

@luanpotter Review changes applied. ready to merge.

Thanks, @slightfoot :)


Added new /decivesview endpoint to the spec file.

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Documentation update
[ ] Tests update
[ ] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I run go fmt ./... to check that my code is properly formatted
[X] I run go vet ./... to check that my code is free of common Go style mistakes

Codecov Report

Merging #922 (01b7676) into main (1a0a312) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #922   +/-   ##
=======================================
  Coverage   31.04%   31.04%
=======================================
  Files          45       45
  Lines        5222     5222
=======================================
  Hits         1621     1621
  Misses       3374     3374
  Partials      227      227

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1a0a312...01b7676. Read the comment docs.

/retest

@Mergifyio refresh

Had to close because it was stuck, opened a new PR: https://github.com/RedHatInsights/edge-api/pull/925


perf(crosswalk): reduce processing time

Description

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Evaluator Test 548/548 (All Green :clap: )
https://evaluation.tier4.jp/evaluation/reports/9cbde122-2f39-538e-bf1e-6d3c66d25c88?project_id=prd_jt


Fail to resolve task status when task has input_from

I try to use condition on_error, on_failure for task dependency, but got an error:
failed to resolve {{tasks.sql.status}}
When I remove sql_task's input_from, it works well.
I thought it was caused by argo-workflow, but I can't figure out.
from hera.input import InputFrom
from hera.task import Task
from hera.workflow import Workflow
from hera.workflow_service import WorkflowService

def context_config():
    import json, sys
    day = '2022-04-01'
    job_config = {
        "sql": f"select * from table where day='{day}'",
    }
    json.dump([{'context' : job_config}], sys.stdout)

def sql(context):
    print('success')

def success(context):
    print("success")

def error_handle(context):
    print("error")

def start():
    ws = WorkflowService('xxxx', verify_ssl=False, token=get_argo_token())
    w = Workflow('condition-test', ws, namespace='argo')
    tasks = []
    ctx_task_name = 'ctx-gen'
    ctx_gen = Task(ctx_task_name, context_config)
    tasks.append(ctx_gen)
    sql_task = Task('sql', sql, input_from=InputFrom(name=ctx_task_name, parameters=['context']))
    tasks.append(sql_task)
    ctx_gen.next(sql_task)

    err_task = Task('error', error_handle, input_from=InputFrom(name=ctx_task_name, parameters=['context']))
    success_task = Task('success', success, input_from=InputFrom(name=ctx_task_name, parameters=['context']))
    sql_task.on_success(success_task)
    sql_task.on_failure(err_task)

    tasks.append(success_task)
    tasks.append(err_task)

    w.add_tasks(*tasks)
    w.create()

start()

Hi @bnuzhanyu! I just tried a conditional execution using:
def success():
    print("success")

def error_handle():
    print("error")

def f():
    raise Exception(42)

ws = WorkflowService(...)
w = Workflow('fv-condition-test', ws)

t = Task('t', f, continue_on_error=True, continue_on_fail=True)
s = Task('s', success)
e = Task('e', error_handle)
t.on_success(s)
t.on_failure(e)
w.add_tasks(t, s, e)
w.create()

Now, the examples that were used to test the addition of on_success, for example, were performed with single tasks, rather than tasks that use with_items, which get turned into task groups by Argo. Currently, one cannot use the on success and on failure features when with_items is used (or, equivalently, InputFrom) as a consequence of an Argo Workflows default documented here: https://argoproj.github.io/argo-workflows/enhanced-depends-logic/#compatibility-with-dependencies-and-dagtaskcontinueon I think the TLDR is: when with_items is used Argo can only execute follow up tasks based on whether all previous tasks in the group failed or any of them succeeded. In addition, the use of dependencies is prohibited. I wrangled with some code in Hera to migrate to depends, remove continue_on, and test out AnySucceeded and AllFailed and managed to make this workflow:

Notice how the success ran because some tasks in the group succeeded but the error did not run because not all have failed.
For your use case, @bnuzhanyu, is it possible to know a priori what day to construct an Argo SQL task with? I believe the setup can work if we were to use (pseudocode):
tasks = []
for i, day in enumerate(days):
    query = 'select from {day}'
    t = Task(sql-{i}, sql, func_params=[{query: query}])
    t.on_success(success)
    t.on_failure(failure)
    tasks.append(t)
w.add(*tasks + success + failure)

This will result in independent task creations for each SQL day query, with each having its own success/failure handling. Would that work?

Actually my case is in a cronworkflow, and by each execution we can know the day.
Also the context has more than a sql parameter.
So I think your solution is not quite suitable for me. But I think AnySucceeded, AllFailed would help if I can use input_from. But now I don't know how to use that, can I directly set depends field in a task?

Hi @bnuzhanyu! I just tried a conditional execution using:
def success():
    print("success")

def error_handle():
    print("error")

def f():
    raise Exception(42)

ws = WorkflowService(...)
w = Workflow('fv-condition-test', ws)

t = Task('t', f, continue_on_error=True, continue_on_fail=True)
s = Task('s', success)
e = Task('e', error_handle)
t.on_success(s)
t.on_failure(e)
w.add_tasks(t, s, e)
w.create()

Now, the examples that were used to test the addition of on_success, for example, were performed with single tasks, rather than tasks that use with_items, which get turned into task groups by Argo. Currently, one cannot use the on success and on failure features when with_items is used (or, equivalently, InputFrom) as a consequence of an Argo Workflows default documented here: https://argoproj.github.io/argo-workflows/enhanced-depends-logic/#compatibility-with-dependencies-and-dagtaskcontinueon I think the TLDR is: when with_items is used Argo can only execute follow up tasks based on whether all previous tasks in the group failed or any of them succeeded. In addition, the use of dependencies is prohibited. I wrangled with some code in Hera to migrate to depends, remove continue_on, and test out AnySucceeded and AllFailed and managed to make this workflow:
Notice how the success ran because some tasks in the group succeeded but the error did not run because not all have failed.
For your use case, @bnuzhanyu, is it possible to know a priori what day to construct an Argo SQL task with? I believe the setup can work if we were to use (pseudocode):
tasks = []
for i, day in enumerate(days):
    query = 'select from {day}'
    t = Task(sql-{i}, sql, func_params=[{query: query}])
    t.on_success(success)
    t.on_failure(failure)
    tasks.append(t)
w.add(*tasks + success + failure)

This will result in independent task creations for each SQL day query, with each having its own success/failure handling. Would that work?

Thanks, func_params is ok, but lost the convenience of cronworkflow. I use k8s to start that cronjob.
Would you have plans to support anySuccess/allFailed?

Would you have plans to support anySuccess/allFailed?

This is not a big change actually so I can definitely add the enhancement mark for someone to contribute it or I can develop it!


User is given the option to create API keys when "Access Control" is not enabled for the server

Version - V0.12.0
Can UI disable the option for creating a API key when "Access Control" is not enabled for the server , since there is no need for the API keys in the case?

No?  They can be used while Access Controls are disabled, and will continue to work once it is enabled.

Closing this issue as per comments from @vincent99


Can't make exasol working within docker-compose

This issue might be connected to this one - https://github.com/exasol/docker-db/issues/17
From scratch I can start exasol as a separate container, but I can't do it with many others containers using docker-compose, I'm receiving the same error message as mentioned in that issue:
log_err("exadt::ERROR: the private interface with address '%s' either does not exist or is down."
% (priv_net))

My configuration:
exasol:
  image: exasol/docker-db:latest
  ports:
    - 8899:8888
    - 8081:80
  privileged: true
  volumes:
     - exa-volume:/exa

I tried to add also our network here, but I got the same error:
exasol:
  image: exasol/docker-db:latest
  networks:
    default:
      aliases:
        - dev_env
  ports:
    - 8899:8888
    - 8081:80
  privileged: true
  volumes:
     - exa-volume:/exa

Please, help to fix this issue

I have the same issue. The same happens even if the yaml file consists of just one container. Here are the steps how to reproduce the issue with the included yaml file and self-generted config:
Reproducing steps:
docker-compose up -d
docker-compose down
docker-compose up -d

Last few lines on succesfull run (docker logs exasol):
[2020-03-21 19:46:58] stage5: Run service init_done_marker
[2020-03-21 19:46:58] stage5: Current node id is '11'
[2020-03-21 19:46:58] stage5: All nodes are online: ('n11',)
[2020-03-21 19:46:58] stage5: Init done marker in mode 'finish' done with file '/exa/etc/init_done' done.
[2020-03-21 19:46:58] stage5: All stages finished.
[2020-03-21 19:46:58] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/pddserver with PID:619 UID:500 GID:500 Part:20 Node:0
[2020-03-21 19:46:59] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/objectserver with PID:709 UID:500 GID:500 Part:21 Node:0
[2020-03-21 19:46:59] root child 204 (exainit.py) returned with state 0.
[2020-03-21 19:46:59] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exasqlinit with PID:736 UID:500 GID:500 Part:22 Node:0
[2020-03-21 19:47:03] child 736 (Part:22 Node:0 exasqlinit) returned with state 0.
[2020-03-21 19:47:03] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exasqllog with PID:756 UID:500 GID:500 Part:23 Node:0
[2020-03-21 19:47:19] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/loaderd with PID:784 UID:500 GID:500 Part:24 Node:0
[2020-03-21 19:47:19] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exacs with PID:805 UID:500 GID:500 Part:25 Node:0
[2020-03-21 19:47:19] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exaetl with PID:807 UID:500 GID:500 Part:26 Node:0
[2020-03-21 19:47:20] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exasql with PID:846 UID:500 GID:500 Part:27 Node:0
[2020-03-21 19:47:44] Started /usr/opt/EXASuite-6/EXASolution-6.2.4/bin/exasql with PID:881 UID:500 GID:500 Part:28 Node:0

Network interfaces (inside container; docker exec ..):
[root@n11 /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
20: eth0@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global eth0
       valid_lft forever preferred_lft forever
22: eth1@if23: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:15:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/16 brd <IP_ADDRESS> scope global eth1
       valid_lft forever preferred_lft forever

Last few lines on second run (error)
[root@centos-4gb-hel1]# docker logs exasol
[2020-03-21 19:43:46] exadt:: '/exa/etc' already exists! Doing partial initialization.
[2020-03-21 19:43:46] exadt:: searching for the first interface with state UP
[2020-03-21 19:43:46] exadt:: using license file ''/exa/etc/license.xml''
[2020-03-21 19:43:46] exadt::ERROR: the private interface with address '<IP_ADDRESS>/16' either does not exist or is down.

Version:
docker --version
Docker version 19.03.8, build afacb8b

docker-compose --version
docker-compose version 1.25.0, build 0a186604

Exasol 6.2.4

Docker-compose file and generated EXAConf
docker-compose.yaml.txt
EXAConf.txt

I have similar issue, that is on docker-compose up I am getting
exadt::ERROR: the private interface with address <IP> either does not exist or is down.
Please let me know if someone found a fix.

I have similar issue, that is on docker-compose up I am getting
exadt::ERROR: the private interface with address <IP> either does not exist or is down.
Please let me know if someone found a fix.

this fixed my problem: https://github.com/exasol/docker-db/issues/29

I've found the cause of the issue. When the container gets initialized for the first time, an entry is created in /etc/hosts binding name n11 to the current host's IP address. I don't use DNS, so in order to fix this address for the name, I have to add an entry into my docker-compose file:
    image: exasol/docker-db:latest
    networks:
        default:
            ipv4_address: <the address from the /etc/hosts>

Another way to solve it is described in the doc: https://github.com/exasol/docker-db#2-complete-the-configuration

I run into same problem would be great if Exasol updated IP address automatically.
Setting ip is not great solution if more users works with different docker setups, so I made simple script which will replace ip in config keeping current configuration.
#!/usr/bin/env bash
echo 'backup exasol conf'
docker-compose run \
--entrypoint /usr/bin/cp \
--rm exasol \
/exa/etc/EXAConf /exa/etc/EXAConf.bck

echo 'remove conf'
docker-compose run \
--entrypoint /usr/bin/rm \
--rm exasol \
/exa/etc/EXAConf

#run exasol
docker-compose up -d exasol &

echo 'waiting 10s to exasol initialize'
sleep 10

echo 'stopping exasol'
docker-compose stop exasol

#get new ip
NEW_IP=$(docker-compose run --entrypoint /usr/bin/cat --rm exasol /exa/etc/EXAConf | grep 'PrivateNet' | sed -s 's/\s\+//g; s/PrivateNet=//g')
echo 'new ip is: '$NEW_IP

echo 'revert backup'
docker-compose run \
--entrypoint /usr/bin/cp \
--rm exasol \
/exa/etc/EXAConf.bck /exa/etc/EXAConf

echo 'set new ip'
docker-compose run --rm exasol exaconf modify-node -n 11 -p $NEW_IP

echo 'drop exasol conf backup'
docker-compose run \
--entrypoint /usr/bin/rm \
--rm exasol \
/exa/etc/EXAConf.kbc.bck

echo 'now run exasol'


Fix checkstyle

This second checkstyle review fix following components:

Generator/Plateform
Generator/Model
Generator/Manager.

I will continue soon :).

Awesome, thanks again.


WIP: Use overlay compositing

This PR is a prototype that represents an alternative to VTK alpha blending. It computes the final brain activation as one 'texture map' which is the result of alpha compositing of the overlays.
The pros:

only one mesh/actor/mapper in memory for one Brain (no duplication of vertices/triangles/normals anymore)
no visual artifacts or z-fighting caused by overlapped surfaces
the list of overlays can be modified and updated on request especially to simulate z-order

The cons:

the final result requires blending of all the overlays (which can be expensive). I count on some smart optimization of the _alpha_over function to mitigate this (I might need help here). It's also possible to use intermediate results to speedup the computation.

This is still very early results.
Closes https://github.com/mne-tools/mne-python/issues/7599

I would much rather let the GPU deal with all of this if possible because this does not scale as well as the GPU will. But if there are no suitable GPU solutions then I CPU is better than wrong GPU

would this be helpful too for notebook backend?

But if there are no suitable GPU solutions then I CPU is better than wrong GPU

I'm starting to think there are no suitable GPU solutions. @GuillaumeFavelier before going too far here, maybe try a basic GPU and basic CPU example, totally outside Brain, where you add, say, N overlays both ways (N actors alpha blended for GPU, 1 actor with N values alpha blended in the CPU) to one hemisphere of data? Then we can see what the performance hit is like as N is varied.
Or if this compositing is 90% done anyway, you can do the same thing probably by adding STC data, then parcellation, then labels, etc., and profile directly with some repeated calls to screenshot / Render or so.
I think it's worth going through this exercise even if CPU is our only option at least so we know what we're getting into.
Bonus points if you do GPU without depth peeling, GPU with depth peeling, and CPU (no depth peeling, not needed)...

would this be helpful too for notebook backend?

The artifacts in https://github.com/mne-tools/mne-python/issues/7599#issuecomment-733626871 are most likely also present with the notebook 3d backend.

try a basic GPU and basic CPU example

got it :+1:

Or if this compositing is 90% done anyway

This version is very early work and limited to Brain. Refactoring is needed to extend to label, annotation, ...

This version is very early work and limited to Brain. Refactoring is needed to extend to label, annotation, ...

Could you create a _LayeredMesh class that has

an __init__ that takes rr, tris args
a method add_overlay(scalars, vertices, smoothing_matrix, cmap, ..., zorder) where scalars is shape (len(vertices), n_time) or (len(rr), n_time) for full-res data or (len(rr), 1) for static data (like an annotation)
a set_index method that changes the data index that is displayed

It makes the implementation at the Brain end very clean, simple, and readable. And if we decide to switch at some point from CPU to GPU compositing, it just requires changing _LayeredMesh to make multiple meshes on the GPU rather than a single mesh with CPU-based alpha blending. WDYT?
You could even start by making this class using the master method, namely by creating multiple meshes rather than doing CPU blending. Then once that works, you only need to change / update the rendering/blending parts in _LayeredMesh rather than anything in _Brain.

mayavi brain tests fail because there is no option for scalars as rgba texture.

Just my opinion but I somehow find the design more elegant and it feels like less "hacks" are needed.
I updated add_data, add_label and add_annotation.

The implementation is not exactly what you describe in https://github.com/mne-tools/mne-python/pull/8576#issuecomment-738016809 but it's flexible @larsoner
Always possible to improve

The plot on master:

Looks different from (and more correct than) the one on this PR, and I don't think it's just due to the scale bar difference -- note the odd yellow splotches:

Also there is a difference in the automatic scale bar (should be about -100 to 40 and is on master, in this PR it changes to -70 to 38).
So it seems like there is both a blending-logic bug and a data scaling bug?

So it seems like there is both a blending-logic bug and a data scaling bug

I would say data scaling for now because when I click on Restore scaling, I obtain a more satisfying result:

The artifacts are available on:
https://23965-1301584-gh.circle-artifacts.com/0/dev/index.html
I'll work on coverage now

This is ready for reviews @agramfort, @larsoner

I guess unsurprisingly, CircleCI renders faster with this PR, which is neat. And even locally doing PATTERN=dspm_source make html_dev-pattern (which makes a movie) on master takes 23 sec and on this PR it's 22 sec, which is great! So it's either a bit faster, or in the noise for speed.

great !


chore(deps): fix CVE-2024-45590, CVE-2024-43799, CVE-2024-45296

Mostly a bump to update express to v4.21.0 which updates a number of transitive dependencies that fix the following CVEs:

CVE-2024-45590
CVE-2024-43799
CVE-2024-45296

Fixes:
https://issues.redhat.com/browse/RHIDP-3917
https://issues.redhat.com/browse/RHIDP-3945

Didn't worry about testing the rbac-backend-module-test as it is just a test module for the rbac plugin and isn't released
Checked on ocm backend plugin and it looks good
Looks good to me, going to hold off on approving in case any other teams want to check on their plugins.

yes, it's test only but I updated it just to keep things current and consistent.  Thanks for taking a look!

/cherry-pick 1.3.x


Can a user bring their own memory.x

After #158 is merged, the HAL and each of the BSPs provide a memory.x file.
In review, Jannic asked

What happens if a binary crate (which depends on rp-hal) brings its own memory.x? Who gets priority?
Example: https://github.com/rp-rs/rp2040-project-template

which is a good question, and we should check to make sure that we can still do it and that the users memory.x gets priority

See #156 for rationale for #158

Agreed, this is not worth the effort.
Closing this issue since #158 was closed without merging .


Theme: Remove default color from icons

What does it do?
It removes the default color assignment in the Icon documentation in
Why is it needed?

Note
This is meant to be a discussion starter rather than a final implementation. Maybe I don't see the full picture, but I don't see how to not pass in a default color.

I found it quite confusing when working on https://github.com/strapi/design-system/pull/726 that my icon doesn't show up in the original color. I think not recoloring these icons will help us to spot problems easier in the future.
Looking it the current icons, I don't think it is necessary for many of them to be colored by default:

Before
After

Closing due to inactivity – we can revisit this once we're ready to address it


Default palette is unreadable

Hi,
https://devblogs.microsoft.com/commandline/updating-the-windows-console-colors/

Why Change the Entire Color Scheme?
During the past 20 years, screens & display technology, contrast ratio, and resolution have changed significantly, from CRT’s through TFT LCD’s to modern-day nano-scale 4K displays.
The legacy default scheme was not built for modern displays and does not render as well on newer high-contrast LCD displays. This is particularly apparent with deeply saturated darker colors like blue.
The new default colors will modernize the look of the Windows Console and make it more congruent with other terminal experiences, such as the integrated terminal in VSCode.

I've read the article and I'm not convinced.
Why? See the picture.
The colours that were different (and supposed to be different) are almost indistinguishable now.
I'm not colour blind and my display is not CRT, but I don't see much difference between Teal and Blue or Green and Lime or Silver and White anymore (here and below I'm using the names from this table). It's hard to tell which of them is on the Black background. It's hard to read one on another.
Note that Teal and Green are "dark" colours, while Blue and Lime are "light" colours.
Combinations of light and dark are supposed to be readable by definition, and they actually were, since the Big Bang or so.
I especially like that the article states that blue is "very difficult to read" on black, with screenshots (presumably influenced by a weird dark-on-dark vim colour scheme?)
To be clear: \033[1;34 in the example is not Blue, it's Navy.
Both Black and Navy are "dark" colours, each supposed to be used with a lighter colour, but not with each other.
It's not surprising that dark on dark was not so readable.
Unreadable light on dark and dark on light surprise me much more.
I dare say that the default console palette is now broken. Even Windows 98 (!) palette is more readable.
P.S. I know about colortool, console window properties, shortcut properties, defaults, registry settings etc., thanks. The problem is that users don't know (and don't want to know) and keep filing the same issue - "the colours are suddenly ugly & unreadable" - as they migrate to Windows 10.

:+1:
Visually, the new palette is composed of optically non-contrast color pairs, which leads to increased operator fatigue and increased control errors. The palette used since Windows XP in this sense is more successful, although it makes sense to increase the number of color gradations available in it to sRGB.

@mscraigloewen might be able to chime in here.

I'll attempt to summarize and address your feedback, please let me know if I've misrepresented anything!
9/3, 3/9, 10/2, 2/10, 15/7 and 7/15 used to be readable but now are not.
The colour palette was designed using the WCAG AA guidelines to assess the accessibility of the text. You can view the guideline reference and check contrasts using this handy web tool.
In the case of the colour combinations you put above, none of them meet accessibility or readability standards in the 'Windows NT palette' or prior, and this hasn't changed in the new colour palette.
It's harder to distinguish between the colours like dark green and light green (2 and 10) in the new palette
This is very valid feedback! The 'Windows NT palette' is actually the same as a high contrast palette, as its colours are as high value as they can be (e.g: Red is 255,0,0 and dark blue is 0,0,128). The new colour scheme was created partly to address feedback that the dark colours on the black background were unreadable. For example, dark blue on black has been popularly used in the Windows Subsystem for Linux. This new colour scheme improves the contrast of all dark colours on a black background, and makes dark blue and and dark cyan accessible. Additionally, the new scheme lowers the contrast of the 'bright' colours to make the colour scheme easier on the eyes to read for a long period of time. Both of these can affect the indistinguishably of the colours, and is ultimately a balancing act with different users having different preferences.
Judging unreadability
Ultimately, we need a way to judge whether the new scheme is 'unreadable' or not, and the best judge for this is the WCAG AA guidelines. By these standards, the new palette improves accessibility for 'dark colours' on the black background while maintaining accessibility for the light colours.
Your feedback is helpful for us for looking how we can further improve this scheme! And from your post script I hope that making the settings in easy to manage in the Windows Terminal and Windows Console can go a long way to helping users change the colour scheme to a preferred one.

Hi Craig, thanks for your response!

none of them meet accessibility or readability standards in the 'Windows NT palette' or prior, and this hasn't changed in the new colour palette

Quite possibly - I'm not a graphic designer and I can't judge whether or not they meet any standards. The feedback is all about personal perception.

The new colour scheme was created partly to address feedback that the dark colours on the black background were unreadable. For example, dark blue on black has been popularly used in the Windows Subsystem for Linux.

Does that imply that dark blue on black is perfectly readable in Linux?
Let's have a look:

Debian Linux TTY1: Dark Blue: 0 0 170
Debian Linux Konsole: Dark Blue: 24 24 178
It's just a little bit brighter than NT (0 0 128) and I find it hard to believe that for Linux folks 16%-darker blue was a disaster.

the best judge for this is the WCAG AA guidelines

Quoting https://www.w3.org/WAI/standards-guidelines/wcag/:

The WCAG documents explain how to make web content more accessible to people with disabilities

I believe we have a slightly different situation here:

The content is not for web
The target audience is everyone.

Conceptually we live in a quite limited Universe with only 16 distinct colours.
When your space is so limited, the high contrast is not a choice, it's a necessity.
If you go on a long trip and your backpack has room only for 16 items, would you take 16 similar things? Probably no.
Same here - if you only have 16 colours, you want them to be different, because making them too similar would effectively reduce 16-colour palette to 8-colour.

Your feedback is helpful for us for looking how we can further improve this scheme!

Thanks for considering improving it!
To summarise:

light/dark colours in several pairs (green, white, magenta) are too close to each other
cyan has too much blue component in it - dark cyan is way too close to light blue (note that cyan is an additive colour and so by definition should have about the same amount of  green and blue in it)
light yellow is too close to white

making the settings in easy to manage in the Windows Terminal and Windows Console can go a long way to helping users change the colour scheme to a preferred one.

Definitely!
I understand that Microsoft has invested time and effort into the new palette and it has its audience, but there are lots of people who were staring daily at those classic colours for decades and learnt to love them (and the same with people coming from Linux).
ColorTool is a good tool, but it's not out-of-the-box and not so user-friendly.
Having a convenient UI for something so user-visible as color schemes is a must have.

Thanks for the follow up! I think your summary is full of great points on how the default colour scheme could be improved.

Just to note that I've run into similar issues when looking at a new default colour scheme for gnome-terminal.
There's a lot to think about in the color scheme design - including supporting both light and dark terminal background colors, and the fact that existing applications will often pick their own foreground and background color combinations. You can't optimize contrast for every combination applications have used, but you should try to make common combinations as good as possible.
In particular, I ended up leaving dim and bright blue both as fairly dark colours. The dim blue (navy) over default background has basically never been readable when the background is dark, so most applications avoid that combination. It doesn't need high contrast. Similarly for bright yellow text over default background - it has never been readable on light-background terminals.
But various color combinations - especially yellow and cyan over dim blue - are fairly common. In the classic CGA/VGA palette cyan is very much brighter than blue, making this very readable. The new windows palette loses contrast there.
I used as reference things like the vim default palette (dark/light - as an aside, you really need to add a bg color query terminal escape to the new ms terminal so vim can pick an appropriate palette automatically!) and applications using "midnight commander" style palettes, like mc itself or htop. (Note that these screenshots are from during development - based on them, I decided to switch to a brighter/greener cyan and a brighter dim purple in the final version.)

You know, there's some solid discussion in here, but at the end of the day, I don't think we're likely to be changing the default palette for the console & Terminal again. The Terminal is far more flexible in the ability to customize it than the console ever was. The palette we have today is certainly passable. Plus, the terminal ships with a variety of schemes by default, so changing it to something else isn't terribly challenging.
I'm gonna close this one out. Thanks all!

(for folks that were following this thread: you may want to head on over to #17818)


Errors with Ruby 3.1.2

Describe the problem
Lots of warnings triggered when used with ruby 3.1.2
Steps to reproduce the problem
With ruby 3.1.2
bundle exec rspec

Actual behaviour
Error:

lib/finite_machine/observer.rb:22:in block in cleanup_callback_queue': undefined local variable or method callback_queue' for FiniteMachine::Observer:Class (NameError)

Expected behaviour
Specs pass without warnings
Describe your environment

OS version: osx 12
Ruby version: 3.1.2
FiniteMachine version: master

Related PR https://github.com/piotrmurach/finite_machine/pull/74

Would be nice to fix this and release, it is not usable on ruby 3.1+ otherwise


replace cosign image with appstudio-utils

redhat-appstudio/cosign image is getting deprecated due to migration to konflux-ci, replace with konflux-ci/appstudio-utils image
STONEBLD-2717, related previous reverted attempt https://github.com/konflux-ci/build-definitions/pull/1344
This PR has been tested by running ./hack/test-builds.sh locally and checking that pipelines pass and SBOMs are pushed to the Quay namespace.

/retest

/retest

/retest

/retest

/retest


Tagging releases?

Would it be possible to tag the releases in Github? That way, it's easier to check changes between versions that are posted to the repository.

Yes, I should have already been doing that :)  Just pushed a few tags to get started, and I'll be sure to tag all future releases 👍


Upgrade spring/jackson versions

Hi Morten,
I work at Jive software, and we're using your project as a dependency in our web app.
We're now upgrading our product to Java 8, which force us to also upgrade to spring4, which is not compatible with this project.
I created this branch in order to make a compatibility version of your project with spring4.
Will be very glad if you can make it happen, thanks!

I'll try to get it merged and released this week. Have you looked at the annotation support in spring social? I looked at it a while back, to get it to work with spring-social-yammer, but couldn't quite get it to work. If you are able to do anything on that, a PR would be really appreciated.

Thank you very much!
Actually I'm not familiar with the annotation support in spring social, but I'll try to look into it and see if I can help there.

Hello again,
Regarding the annotation support, still no news there, I need to read some more about it but I'm not sure I can help there.
Any chance you can get this one released in the meantime?


[Plugin] MediaLibrary: Honor order_column sort order when media is reorderable

I've tested this by putting the sortBy() both above and below the filter() call. I feel like it'll be slightly more performant "after" the filtering.
I explored using methods in the Spatie\MediaLibrary\MediaCollections\Models\Concerns\IsSorted trait, but that applies to the model, not the collection, and the Filament plugin code is querying the collection data using its own bespoke relationship query.
So I think this hardcoded approach is best.
I suppose another approach could be to offer another helper method like ordered() to ImageColumn, but perhaps that's a bigger design decision to explore separately.

[x] Changes have been thoroughly tested to not break existing functionality.
[N/A] New functionality has been documented or existing documentation has been updated to reflect changes.
[N/A] Visual changes are explained in the PR description using a screenshot/recording of before and after.

Thanks!


Failed to execute script main

When scrcpy is started, the application throws an error "failed to execute script main" if run after being turned into a binary with pyinstaller.

Fixed in commit f716df9/release version 1.0.1


Can tantivy be extended as a distributed search engine of rust just like elasticsearch in java ?

@fulmicoton  Hi, tantivy really is a handsome project, do you have the plan making it a distributed search engine? Thanks & Regards!

The question in the title and the question in the body of the issue are very different.
Tantivy can be extended as a distributed search engine. In fact a lot of the design choice are made while keeping in mind to never "close that door".
I am however not planning to implement that myself at least in the near future. There is a project that might interest you though.

Okey，thanks for your quick reply！Never "close that door"，that's the point !


I want to contribute in recursion programs in your repo.

@Vinayak-Sharma-744 Yeah sure
You can generate PRs in respective directory

@ishita126jain Yeah sure but before making changes please check for errors. Ty!


Getting an error with angular8 dependencies sharing

I am trying to integrate the angular8 dependencies. all most look fine. But getting an error it blocks to wokr.
zone.min.js:1 Uncaught TypeError: Object prototype may only be an Object or null: undefined
    at setPrototypeOf (<anonymous>)
    at extendStatics (tslib.es6.js:21)
    at __extends (tslib.es6.js:25)
    at extra-providers.ts:14
    at Object.<anonymous> (extra-providers.ts:14)
    at Object.execute (amd.js:56)
    at Object.declaration.execute (named-exports.js:42)
    at doExec (system.js:478)
    at postOrderExec (system.js:474)
    at system.js:457

App package.json:
{
  "name": "login",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "build:single-spa:login": "ng build login --prod --deploy-url http://localhost:4203/",
    "serve:single-spa:login": "ng s --project login --disable-host-check --port 4203 --deploy-url http://localhost:4203/ --live-reload false"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.9",
    "@angular/common": "~8.2.9",
    "@angular/compiler": "~8.2.0",
    "@angular/core": "~8.2.9",
    "@angular/forms": "~8.2.9",
    "@angular/platform-browser": "~8.2.9",
    "@angular/platform-browser-dynamic": "~8.2.9",
    "@angular/router": "~8.2.9",
    "add": "^2.0.6",
    "ng": "^0.0.0",
    "rxjs": "~6.4.0",
    "single-spa-angular": "3.5.3",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-builders/custom-webpack": "^8",
    "@angular-devkit/build-angular": "~0.803.10",
    "@angular/cli": "~8.2.2",
    "@angular/compiler-cli": "~8.2.8",
    "@types/jasmine": "~3.5.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~5.0.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~8.3.0",
    "tslint": "~5.18.0",
    "typescript": "~3.5.3"
  }
}

root ejs file:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Root Config</title>
  <!--
    Remove this if you only support browsers that support async/await.
    This is needed by babel to share largeish helper code for compiling async/await in older
    browsers. More information at https://github.com/single-spa/create-single-spa/issues/112
  -->
  <script<EMAIL_ADDRESS>  <!--
    This CSP allows any SSL-enabled host, but you should limit these directives further to increase your app's security.
    Learn more about CSP policies at https://content-security-policy.com/#directive
  -->
  <meta name="importmap-type" content="systemjs-importmap" />
  <!-- If you wish to turn off import-map-overrides for specific environments (prod), uncomment the line below -->
  <!-- More info at https://github.com/joeldenning/import-map-overrides/blob/master/docs/configuration.md#domain-list -->
  <!-- <meta name="import-map-overrides-domains" content="denylist:prod.example.com" /> -->

  <!-- Shared dependencies go into this import map. Your shared dependencies must be of one of the following formats:

    1. System.register (preferred when possible) - https://github.com/systemjs/systemjs/blob/master/docs/system-register.md
    2. UMD - https://github.com/umdjs/umd
    3. Global variable

    More information about shared dependencies can be found at https://single-spa.js.org/docs/recommended-setup#sharing-with-import-maps.
  -->
  <script type="systemjs-importmap">
    {
      "imports": {
        "single-spa"<EMAIL_ADDRESS>        "single-spa-angular/internals"<EMAIL_ADDRESS>        "single-spa-angular"<EMAIL_ADDRESS>      }
    }
  </script>
  <link rel="preload"<EMAIL_ADDRESS>as="script">

  <!-- Add your organization's prod import map URL to this script's src  -->
  <!-- <script type="systemjs-importmap" src="/importmap.json"></script> -->

  <% if (isLocal) { %>
  <script type="systemjs-importmap">
    {
      "imports": {
        "@ibo/root-config": "//localhost:9000/ibo-root-config.js",
        "@ibo/login": "http://localhost:4203/main.js",

        "single-spa"<EMAIL_ADDRESS>        "single-spa-angular/internals"<EMAIL_ADDRESS>        "single-spa-angular"<EMAIL_ADDRESS>
        "rxjs"<EMAIL_ADDRESS>        "rxjs/operators": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>
        "@angular/core": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/compiler": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>
        "@angular/common": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/common/http": "https://unpkg.com/<EMAIL_ADDRESS>
        "@angular/platform-browser-dynamic": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/platform-browser": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/platform-browser/animations": "https://unpkg.com/<EMAIL_ADDRESS>
        "@angular/forms": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/router": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/animations": "https://cdn.jsdelivr.net/npm/<EMAIL_ADDRESS>        "@angular/animations/browser": "https://unpkg.com/<EMAIL_ADDRESS>      }
    }
  </script>
  <% } %>

  <!--
    If you need to support Angular applications, uncomment the script tag below to ensure only one instance of ZoneJS is loaded
    Learn more about why at https://single-spa.js.org/docs/ecosystem-angular/#zonejs
  -->
  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>
  <% if (isLocal) { %>
  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <% } else { %>
  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <script<EMAIL_ADDRESS>  <% } %>
</head>
<body>
  <main id="main"></main>
  <script>
    System.import('@ibo/root-config');
  </script>
  <import-map-overrides-full show-when-local-storage="devtools" dev-libs></import-map-overrides-full>
</body>
</html>

here is the repo

@3gwebtrain , you started doing it right by building a demo. Here are some points:

The dependencies are in the wrong place of index.ejb. There are two blocks, one "dependencies" and other "your projects".
Check if your '@ibo' in externals is not excluding your own code. I am not sure if this applies only to dependencies.

@3gwebtrain This is a very old issue, but posting a fix here in case it helps someone else facing the same issue.
The above issue is occurring since you are using v4.x of single-spa-angular along with v8 of Angular. Technically, v4.x only supports v9-11 of Angular. For Angular v2-8, you need to use v3 of single-spa-angular. Source: https://single-spa.js.org/docs/ecosystem-angular/#angular-8
After downgrading to single-spa-angular v3.6.0, I was unable to find any systemJS-compatible bundle for single-spa-angular so that I could share that too as a dependency between my applications. So I cloned this repo and modified the rollup configuration to generate UMD bundles for single-spa-angular as follows:
rollup.config.js

package.json

This generated the following bundle:

I loaded this into my root module systemjs-importmap like this (i was running a local fileserver on port 7000):

Note that I have not put single-spa-angular/internal in my importmap since this doesn't exist for v3 of single-spa-angular.
After doing all this, the above error went away, but I got a new error, this time from the compiler.js file:

I spent a lot of time trying to solve this, but couldn't identify the root cause of this.
Meanwhile, since this error seemed to be coming from compiler.js I thought it might be an interesting experiment to see if I get the same error even after I build my angular applications with AOT enabled (because compiler.js should not be needed at runtime if using AOT). The experiment succeeded and the error vanished completely when I used AOT.
@arturovt @joeldenning Any possibility of releasing an update for v3 with support for SystemJS-compatible bundles by default? Would be a great help. Happy to contribute a PR if it helps. Also, any ideas about why dependency sharing doesn't work without AOT in Angular 8? I was unable to debug it by myself.


Integrate search view AdminLTE theme.

Discuss with others what's the role of Navbar, Sidebar, and UserSetting of the AdminLTE, and integrate the search view accordingly.

Updating on the status as discussed on twitter. Awesome!

@fuksi Amazing work. It looks beautifully flat now :heart_eyes:


Nightwatch --> wdio tests for form-checkbox

Summary
Resolved this.
Additional Details
Converted nightwatch to wdio tests for just checkbox(checkbox-field already has wdio tests).

Hmm, looks like the focus ring screen shot isn't rendering correctly


"Every 6 hours" task firing every second?

I've been using node-cron for the last week with - so I thought - no issues. I'm using it to access an API and update a database table every 6 hours, i.e.:
var cron = require('node-cron');
cron.schedule('* * */6 * * *', rates.update);

On my development PC, I never saw an issue - tested it on my server (hosted on DigitalOcean) and all was well, so I left it running. But then I discovered that I'd been querying the API roughly 14,000 times each day... it turns out the scheduled task was randomly deciding to start firing about once a second, not once every 6 hours. And I can't for the life of me figure out why that would be, or how to force it to happen so I can pin it down!
I've tried creating test code that throws exceptions in the scheduled function, I've tried artificially adding delays into it in an attempt to simulate a time-consuming database update, but nothing has revealed a problem. Any suggestions would be gratefully received!

Gah! Never mind, I'm an idiot... "* * */6 * * *" doesn't mean "every 6 hours"... it means "every second of every minute of every 6th hour".
Which gives: 14,400 times a day, so that explains that!

@Artelis  ,I wanted to run everyday at 9:45 am what would be ?


Setting text class in DateInput?

Is there a way to use a text style class on the DateInput component? Here is what I am trying:

	<DateInput bind:value placeholder="eg. 2023-06-01 12:34:56" class="text-gray-400" />

But the class is not being applied to the text in the input.
I see in src/lib/DateInput.svelte that the class is being applied to the div that's around the input:

  <input

So I tried adding a new style that applies the original style to an input (using the @apply directive from tailwind):


Would DeepMEI work with whole exome data?

Hi,
I was wondering if DeepMEI is compatible with whole exome data? If not, is this something that might be added in the future?
Best wishes,
Robert

Hello,
DeepMEI is primarily intended for MEI identification in WGS data. We have attempted to use it on WES data in the past, but the results were rather complex. We applied it to a cohort of 12,000 individuals who were sequenced using targeted region sequencing (covering approximately 900 genes) to identify disease-causing MEIs. The challenge we faced was that true MEIs were mixed with false positive loci. We believe this might be due to a significant reduction in the count of true MEIs compared to the false positive loci. Ultimately, we had to visually inspect the data using IGV and validate the results with Sanger sequencing. Thankfully, the overall count was fairly low. This situation is quite different when applied to WGS data, where the count of true MEIs typically far exceeds that of false positive loci.
Best wishes,
Xiaofei


[TOP] Adding compute for more operators

This is a rebase of #349

Actually, it seems like the only difference is that there's a bug in the current implement of dense. Tentatively closing.


Units not online after some time

Within 24 hours of starting the addon my only two lights are said to be offline with an error as follows:
unit is not online: <Casambi light Mito sospeso: unit=<Unit Mito sospeso: unit_id=1 address=xxx value=0.0 state=off online=False network_id=xxx wire_id=9 websocket=<WSClient state=running wire_id=9> > unit is not online: <Casambi light Mito sospeso: unit=<Unit Mito sospeso: unit_id=2 address=xxx value=0.0 state=off online=False network_id=e7cJ8Z6bpHjR0oCzbo66vU6MJ0pl0Ryh wire_id=9 websocket=<WSClient state=running wire_id=9> > unit is not online: <Casambi light Mito sospeso: unit=<Unit Mito sospeso: unit_id=1 address= xxx value=0.25098039215686274 state=on online=False network_id=xxx wire_id=9 websocket=<WSClient state=running wire_id=9> > unit is not online: <Casambi light Mito sospeso: unit=<Unit Mito sospeso: unit_id=2 address=xxx value=0.25098039215686274 state=on online=False network_id=xxx wire_id=9 websocket=<WSClient state=running wire_id=9> >
Restarting HA resolves the issue, only for it to reoccur after some hours. I can send debug logs in pm.

Hi,
Sorry for the late reply.
After reading your reply I've tried to be patient and not restart HA and wait for the Gateway to connect again. This has been the case for the last two weeks. The units are reported to be offline for several times per day, but looking at the logs it's always just a matter of seconds. The frequency differs from day to day though, sometimes just a couple of times a day, sometimes multiple times per hour.
So, I'm starting to believe the need to restart HA was because of my Apple HomeKit integration, which seems to be working fine now. It has been running OK since 27-11. My Gateway is an old iPad mini I've also setup to be my Homekit-hub.
Sorry for making it so vague. If you still need any logs, I'm happy to provide them. But seeing that the auto reconnect now works fine, I doubt they will tell you anything.
Best regards

The homeassistant plugin does definitely need to be more robust, but I need logs so I can try to reproduce the scenario.
If it comes and goes its probably the casambi gateway way. But its also possible that the websocket terminates for what ever reason and the home assistant plugin should handle that and try to reconnect gracefully (with increasing delay) and that can be improved on the home assistant side, but I lack logs currently. I have not experience the issue myself for a while (I have restarted ha due to upgrades and so on) 🙂

A bit offtopic but what do you guys use as a gateway? An old phone or something?

I have a Nexus 6P currently, I have also used a Samsung galaxy 8 s, but the nexus has better logging since its rooted and both devices are "unstable", crashed from time to time, maybe every month so not a biggy.

I'm using an old iPad mini also setup as my Homekit Hub.
I have a couple of days of logs for you, but I'm not comfortable sharing these in public. How can I share them with you only, Olof?
Interesting to see is that after some days the plugin has stopped reconnecting, so the devices did not come online again.

You can mail them to me<EMAIL_ADDRESS>or send me a secure link to a file service like Dropbox.
Have you enabled debugging?
logger:
  default: info
  logs:
    homeassistant.components.casambi: debug
    custom_components.casambi: debug
Please remove your password, api key and its also good to remove user name, I don't need it.
//Olof

I have a released a new version with better reconnect support, the underlying library has been updated and its now handling reconnect when I drop the connection to door.casambi.com.

@allardt89 I see that your gateway is very unstable, its dropping connection a lot, it can either be the Internet connection or the device itself (Bluetooth stack etc.).
But I cannot see anything regarding the websocket, please upgrade to the latest version of this integration and see if the problem persists.

I recently started using the component too, but I seem to have disconnects too. The websocket connection is often down/broken. The below stacktrace occurs when I try to turn a light on but also the current state of the entities isn't synced.
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 135, in handle_call_service     await hass.services.async_call(   File "/usr/src/homeassistant/homeassistant/core.py", line 1445, in async_call     task.result()   File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in _execute_service     await handler.job.target(service_call)   File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service     await self.hass.helpers.service.entity_service_call(   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 593, in entity_service_call     future.result()  # pop exception if have   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 664, in async_request_call     await coro   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 630, in _handle_entity_call     await result   File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 230, in async_handle_light_on_service     await light.async_turn_on(**params)   File "/config/custom_components/casambi/light.py", line 201, in async_turn_on     await self.unit.turn_unit_on()   File "/usr/local/lib/python3.8/site-packages/aiocasambi/units.py", line 372, in turn_unit_on     await self._web_sock.send_messge(message)   File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 89, in send_messge     await self.web_sock.send_str(json.dumps(message))   File "/usr/local/lib/python3.8/site-packages/aiohttp/client_ws.py", line 150, in send_str     await self._writer.send(data, binary=False, compress=compress)   File "/usr/local/lib/python3.8/site-packages/aiohttp/http_websocket.py", line 687, in send     await self._send_frame(message, WSMsgType.TEXT, compress)   File "/usr/local/lib/python3.8/site-packages/aiohttp/http_websocket.py", line 598, in _send_frame     raise ConnectionResetError("Cannot write to closing transport") ConnectionResetError: Cannot write to closing transport

@robsonke Thanks for the stacktrace, something is fishy with the signaling, so I have added a safeguard and the underlying library will try to reconnect when websocket is broken and message is trying to get sent.
I have released a new version.

That's quick, I installed it and during startup I noticed the following errors:
`
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 126, in running
self.session_handler_callback(SIGNAL_DATA)
File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 180, in session_handler
self.callback(SIGNAL_DATA, new_items)
File "/config/custom_components/casambi/light.py", line 261, in signalling_callback
UNITS[key].process_update(value)
File "/config/custom_components/casambi/light.py", line 185, in process_update
self.async_schedule_update_ha_state(True)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_schedule_update_ha_state
assert self.hass is not None
AssertionError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 144, in running
self.state = STATE_DISCONNECTED
File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 61, in state
self.session_handler_callback(SIGNAL_CONNECTION_STATE)
File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 185, in session_handler
self.callback(SIGNAL_CONNECTION_STATE, self.websocket.state)
File "/config/custom_components/casambi/light.py", line 270, in signalling_callback
hass = item.hass
AttributeError: 'str' object has no attribute 'hass'
`
It's probably related to this vague one too:
`
Logger: aiocasambi.websocket
Source: /usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py:143
First occurred: 7:50:51 (1 occurrences)
Last logged: 7:50:51
websocket: Unexpected error
`

Hm, thats the messy connection error handling in Homeassistant, I have not seen the problem, could you provide the log message before the exception?
line: 258   _LOGGER.debug(f"signalling_callback signal: {signal} data: {data}")
I have released a new version (v0.06) of the plugin with better error handling, but the reconnection needs to be instantiated from homeassistant, so I need some more information in order to iron this bug out.

Sure:
2020-12-28 15:25:13 DEBUG (MainThread) [custom_components.casambi.light] signalling_callback signal: state data: starting
2020-12-28 15:25:13 DEBUG (MainThread) [custom_components.casambi.light] signalling_callback signal: state data: running
2020-12-28 15:25:13 DEBUG (MainThread) [custom_components.casambi.light] signalling_callback signal: data data: { all my units }
2020-12-28 15:25:13 ERROR (MainThread) [aiocasambi.websocket] websocket: Unexpected error
2020-12-28 15:25:13 DEBUG (MainThread) [custom_components.casambi.light] signalling_callback signal: state data: disconnected
2020-12-28 15:25:13 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 145, in running
    raise err
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 126, in running
    self.session_handler_callback(SIGNAL_DATA)
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 180, in session_handler
    self.callback(SIGNAL_DATA, new_items)
  File "/config/custom_components/casambi/light.py", line 261, in signalling_callback
    UNITS[key].process_update(value)
  File "/config/custom_components/casambi/light.py", line 185, in process_update
    self.async_schedule_update_ha_state(True)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_schedule_update_ha_state
    assert self.hass is not None
AssertionError

I hope it's not related to anything at my end, but if it is, it would be good if we improve the error messages.

I need a better test environment for this, so I can reproduce timeouts in homeassistant :)
Its a generic try, that catches the exception, I have updated the addon with a better error message (release v0.07).

No problem, we'll help and I'll try to setup a local environment too, but a bit busy with finishing up moving into our new house.
With release 0.07:
2020-12-28 17:20:50 ERROR (MainThread) [aiocasambi.websocket] websocket: Unexpected error: < type="<class 'AssertionError'>">
2020-12-28 17:20:50 ERROR (MainThread) [aiocasambi.websocket] An unknown exception was thrown!
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 126, in running
    self.session_handler_callback(SIGNAL_DATA)
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 180, in session_handler
    self.callback(SIGNAL_DATA, new_items)
  File "/config/custom_components/casambi/light.py", line 261, in signalling_callback
    UNITS[key].process_update(value)
  File "/config/custom_components/casambi/light.py", line 185, in process_update
    self.async_schedule_update_ha_state(True)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_schedule_update_ha_state
    assert self.hass is not None
AssertionError
2020-12-28 17:20:50 DEBUG (MainThread) [custom_components.casambi.light] signalling_callback signal: state data: disconnected
2020-12-28 17:20:50 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 146, in running
    raise err
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 126, in running
    self.session_handler_callback(SIGNAL_DATA)
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 180, in session_handler
    self.callback(SIGNAL_DATA, new_items)
  File "/config/custom_components/casambi/light.py", line 261, in signalling_callback
    UNITS[key].process_update(value)
  File "/config/custom_components/casambi/light.py", line 185, in process_update
    self.async_schedule_update_ha_state(True)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_schedule_update_ha_state
    assert self.hass is not None
AssertionError

The problem is that the addon is not interacting with the home assistant event loop in the right way, its my first asyncio project and it shows ;)
I have removed the "hack" that is doing the retries and its done in the library itself, but I need to setup a local development environment so I can troubleshoot this.
Latest working version is v0.11

Updated but no luck yet. I'll try to work on it too in next days.

Is it the same exception? I removed the code that I though caused it 🙂
Working on installing virtualbox on a older - Mac, but experiencing some problem with the latest os version...

Yes, I was a bit surprised too. But the folder seems updated:
Logger: aiocasambi.websocket
Source: helpers/entity.py:438
First occurred: 8:49:11 (1 occurrences)
Last logged: 8:49:11

An unknown exception was thrown!
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/websocket.py", line 126, in running
    self.session_handler_callback(SIGNAL_DATA)
  File "/usr/local/lib/python3.8/site-packages/aiocasambi/controller.py", line 180, in session_handler
    self.callback(SIGNAL_DATA, new_items)
  File "/config/custom_components/casambi/light.py", line 262, in signalling_callback
    UNITS[key].process_update(value)
  File "/config/custom_components/casambi/light.py", line 186, in process_update
    self.async_schedule_update_ha_state(True)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 438, in async_schedule_update_ha_state
    assert self.hass is not None
AssertionError

I have written some ansible roles for setting up a test environment and I have worked out some of the bugs, proper reconnection is still a thing that needs to be worked out.
But all lights will now be disabled if the websocket connection breaks, v 0.13 is the latest version.

Reconnect works for me now with v0.14. Casambi has also updated their API, they have a new interesting function for getting unit/network state Request network state, so we actually don't have to wait for their end to send the state, it can be requested.
I will probably add that to the API/home assistant integration.

I have done some refactoring, fixed some bugs and done some linting, the latest version is v0.15.
But I have not run into the AssertionError yet.

That's gone with me now too, no more errors in the logs but unfortunately no connection either (it seems). Clicking a light does nothing, I'll dig into it.

Found a bunch of more errors, working on fixing them.

Nice. BTW, I have some switches as a unit too, maybe that causes issues? As so far I only noticed light entities.

I finally have reconnect working now! :)  I had to restructure the python api a bit, the bad is Casambi have a long timeout and my strategy is to setup a new websocket and forget about the old websocket on every network error, so I get spammed a lot with state changes :)
I don't own a Casambi switch, I only have dimmers that my house developer installed, I use zigbee, zwave, tasmota and local tuya for my switches. But thats why they doesn't show, the integration only support LightEntity currently.

The latest "stable" release is 0.16

But I guess switches are treated by the Casambi api as "units" and I threat all "units" as "lights" currently in the integration ;)
I don't really know how to modulate "scenes" in homeassistant, I have started to work on the support on the Python api side for them, but its not finished since I do all my automations in homeassistant and Node-Red

And yes that will cause problems, with switches, it needs to be debugged and added properly, they should be Switch Entity in Home assistant: https://developers.home-assistant.io/docs/core/entity/switch/ .

Nah not completely sure, since it's mostly pulse switches, I read something on binary sensors too. Since switches have state in hass but we can test that.

I guess switches are treated by the Casambi api as "units" and I threat all "units" as "lights" currently in the integration ;)
Yes I read that in the code. I'll look into this later, I dont think it will cause the lights not to function.

oem, model and type is accessable by the API, I think its easliest to let the aiocasambi api separate units into switches and lights.

Fixed in version  0.16.

Fixed in version  0.16.


Big dockerimage cleanup

make it clearer why given pre-requisite is being installed (and get rid of some pre-requisites that are no longer needed).
differentiate between python dependency for run_tests.py and for actually building grpc-python (which requires much more stuff to be installed).
get rid of python2 from the docker images where possible
lots of other cleanup
rebuild the images from scratch (using the freshest base image)

This also tries to make sure that when run_tests.py spawns itself in a docker container (which is the behavior of --use_docker flag), python3 is actually used for the inner instances of it.
TODOs:

need to make sure that this doesn't break uploading of results to bigquery
check with e.g. the boringssl at head job.

This is now ready for first round of review.

Adhoc distribtests run: https://fusion2.corp.google.com/invocations/cc413454-ddc1-4d94-83a0-7d55965f4f36/targets

Thank you for the clean-up. It looks good to me!

The python macos build issue seems real:
https://source.cloud.google.com/results/invocations/a8bbea1d-2bd6-480a-8895-1228c52d192f/targets/github%2Fgrpc%2Ftoplevel_run_tests_invocations%2Frun_tests_python_macos_opt_asyncio/tests
Looks like running python build with python3 tools/run_tests/run_tests.py under python3 is actually broken on macos

Failures in adhoc run of boringssl_at_head job: https://fusion2.corp.google.com/invocations/cfa4ea7e-84ea-4552-9018-2e155c90742b/targets

@veblush @gnossen @apolcyn  can you please approve? (Of course I'll make sure the test are passing before merging - currently there's the macos issue mentioned in https://github.com/grpc/grpc/pull/28010#issuecomment-972681375)

Known failures:
https://github.com/grpc/grpc/issues/28242


There is a way to config locator to starts when device is restarted ?

Hello.
There is a way to config locator to starts when device is restarted ?
My app is to count hours user is in a specific place, so; when mobile is restarted, need to continue capture locations, even if user forgot to open the app to start the captures.

@wemersonrv  did you found any solution for this ??

@wemersonrv  did you found any solution for this

This was written on another issue:
https://github.com/rekab-app/background_locator/issues/34#issuecomment-612360164

@wemersonrv did you found any solution for this ??

Hello. Nope. Unfortunately I couldn't.

This was written on another issue:
#34 (comment)

As @mehdok says on the quoted comment below, it don't has a way to do that... Will need to count on user to reopen app/service to restart captures.

  Restart-service-on-device-reboot

 Restart-service-on-device-reboot

Not works here. Did i miss something?!
Below my AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.myapp">

    <!-- App permissions -->
    <uses-permission android:name="android.permission.INTERNET"/>

    <!-- Background Location permissions -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
        android:name="br.myapp.LocationService"
        android:label="My App"
        android:icon="@mipmap/ic_launcher">

        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
           android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <!-- Background Location configuration -->
        <receiver
            android:name="rekab.app.background_locator.LocatorBroadcastReceiver"
            android:enabled="true"
            android:exported="true"/>
        <service
            android:name="rekab.app.background_locator.LocatorService"
            android:permission="android.permission.BIND_JOB_SERVICE"
            android:exported="true"/>
        <service
            android:name="rekab.app.background_locator.IsolateHolderService"
            android:permission="android.permission.FOREGROUND_SERVICE"
            android:exported="true"/>
		<receiver android:name="rekab.app.background_locator.BootBroadcastReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

Sorry! My bad!
after about 40 seconds he started the background locator.
Is alive! bwahahahahahahah!

Is relaunching the service on device reboot supported on iOS?
I see that this plugin calls startMonitoringSignificantLocationChanges on iOS which based on Apple's documentation, the service should be relaunched after a significant location change of 500m or more.
Has anybody tested that this feature works on iOS? I tried both on the emulator and real device - doesn't work on either.

Is relaunching the service on device reboot supported on iOS?
I see that this plugin calls startMonitoringSignificantLocationChanges on iOS which based on Apple's documentation, the service should be relaunched after a significant location change of 500m or more.
Has anybody tested that this feature works on iOS? I tried both on the emulator and real device - doesn't work on either.

This specific feature @mehdok make is for android only...


Setup CI/CD for future deployments

[ ] Change version to 1.5.0 or 1.6.0 before this PR is merged


protoc-gen-php: command not found

After installation
pear channel-discover pear.pollinimini.net
pear install drslump/Protobuf-beta
I still can't run this generator. With output like this :
sudo protoc --plugin=protoc-gen-php --php_out=./build Bank.proto
protoc-gen-php: program not found or is not executable
--php_out: protoc-gen-php: Plugin failed with status code 1.
$ protoc-gen-php
-bash: protoc-gen-php: command not found

@alekseevpg Depends on how you installed it. I added it to a composer.json file and found it in vendor/bin once I had run composer install.

protoc-gen-php is under vendor/bin folder, you should use full path of protoc-gen-php.php

When I run ./vendor/bin/protoc-gen-php.php file.proto I get the following error:
sh: protoc: command not found
Unable to find the protoc command.
Please make sure it's installed and available in the path.

@electricBonfire try https://github.com/grpc/grpc/issues/8547


Added carbon intensities for petroleum based

#1131
Not 100% sure, if we're supposed to separate this from the default carbon intensity table, but I'll double check and update as needed.
Changelog:

Added an operational fixture for adding a petroleum based carbon intensity

 Credit Calculation | Petroleum gas and diesel carbon intensities |5|

Closed this as this wasn't correct. Please refer to #1136


Moved Katib documentation from kubeflow/kubeflow

Fixes Issue #72.

/assign @jlewi

@jlewi Took care of your suggestion. Please review.

/lgtm
/approve


Cilium managed POD between nodes network fails with flannel CNI integration

Bug report
Following https://docs.cilium.io/en/v1.9/gettingstarted/flannel-integration/ to setup new k8s cluster with flannel and cilium, the cilium managed pod can ping flannel managed pod between master node and worker node, cilium managed pod cannot ping cilium managed pod between master node and worker node
kubectl  get po -o wide
NAME                             READY   STATUS    RESTARTS   AGE   IP           NODE               NOMINATED NODE   READINESS GATES
busybox-master-f97ff47c5-g9kg2   1/1     Running   1          80m   <IP_ADDRESS>   cilium-bigip
busybox-master-f97ff47c5-txl8l   1/1     Running   1          91m   <IP_ADDRESS>   cilium-bigip
busybox-worker-ccb4ffc6c-7s52n   1/1     Running   1          91m   <IP_ADDRESS>   cilium-fl-worker
busybox-worker-ccb4ffc6c-qqtfm   1/1     Running   1          80m   <IP_ADDRESS>   cilium-fl-worker
pod <IP_ADDRESS> can ping pod <IP_ADDRESS> (initial flannel managed pod)
pod <IP_ADDRESS> cannot ping pod <IP_ADDRESS> (cilium managed pod)
cilium monitor -vv shows the ICMP echo request triggered to-overlay, then that is it. no packet seen on the physical interface from tcpdump, no packet seen on the cilium_vxlan interface which shows as "DOWN"
11: cilium_vxlan: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether ba:d0:d2:0a:92:82 brd ff:ff:ff:ff:ff:ff
cilium monitor -vv
CPU 03: MARK 0x0 FROM 2679 to-overlay: 98 bytes (98 captured), state new, interface cilium_vxlan, identity 16079->0, orig-ip <IP_ADDRESS>
Ethernet	{Contents=[..14..] Payload=[..86..] SrcMAC=ca:0b:dd:cf:42:ea DstMAC=76:19:92:92:cf:3e EthernetType=IPv4 Length=0}
IPv4	{Contents=[..20..] Payload=[..64..] Version=4 IHL=5 TOS=0 Length=84 Id=27725 Flags=DF FragOffset=0 TTL=64 Protocol=ICMPv4 Checksum=47150 SrcIP=<IP_ADDRESS> DstIP=<IP_ADDRESS> Options=[] Padding=[]}
ICMPv4	{Contents=[..8..] Payload=[..56..] TypeCode=EchoRequest Checksum=21469 Id=4608 Seq=26}
root@cilium-fl-worker:/home/cilium# bpftool net show
xdp:
tc:
ens192(3) clsact/ingress bpf_netdev_ens192.o:[from-netdev] id 477
ens192(3) clsact/egress bpf_netdev_ens192.o:[to-netdev] id 483
cilium_net(9) clsact/ingress bpf_host_cilium_net.o:[to-host] id 471
cilium_host(10) clsact/ingress bpf_host.o:[to-host] id 447
cilium_host(10) clsact/egress bpf_host.o:[from-host] id 453
cilium_vxlan(11) clsact/ingress bpf_overlay.o:[from-overlay] id 429
cilium_vxlan(11) clsact/egress bpf_overlay.o:[to-overlay] id 434
lxc184a57bd9539(13) clsact/ingress bpf_lxc.o:[from-container] id 459
lxc1e9eb00bbada(15) clsact/ingress bpf_lxc.o:[from-container] id 461
lxc931b564fd4fe(17) clsact/ingress bpf_lxc.o:[from-container] id 489
flow_dissector:
General Information

Cilium version (run cilium version)
Client: 1.9.6 38dd27a 2021-04-20T14:57:11-07:00 go version go1.15.11 linux/amd64

Kernel version (run uname -a)
Linux cilium-fl-worker 5.8.1-050801-generic #202008111432 SMP Tue Aug 11 14:34:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Orchestration system version in use (e.g. kubectl version, ...)

Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-13T13:28:09Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-13T13:20:00Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

Link to relevant artifacts (policies, deployments scripts, ...)

busybox pod deployed to worker node
busybox-worker.yaml.txt
busybox bod deployed to master node
busybox-master.yaml.txt
Cilium deployment templated from helm template
cilium-fl.yaml.txt
Flannel deployment yaml
cilium-flannel.yaml.txt

Generate and upload a system zip:
cilium-sysdump-20210505-210620.zip

How to reproduce the issue
1, kubeadm to init k8s master
apiserver on interface ens160 and  ip <IP_ADDRESS>
kubelet node ip on  interface ens192 and <IP_ADDRESS> (added --node-ip=<IP_ADDRESS> to kubelet in /etc/default/kubelet)
kubeadm init --v=5 --apiserver-advertise-address=<IP_ADDRESS> --pod-network-cidr=<IP_ADDRESS>/16
2 apply flannel ( see above attached, flannel specified --iface to ens192)
kubectl apply -f cilium-flannel.yaml
3 kubeadm to join worker node
kubeadm join <IP_ADDRESS>:6443 --token.....
4, now both master and worker node runs flannel, label master and worker node to deploy one busybox on master node and one busybox on worker node, the flannel managed pod get ip address 10.244.x.x
kubectl label node cilium-bigip dedicated=master
kubectl label node cilium-fl-worker dedicated=worker
kubectl apply -f  busybox-master.yaml
kubectl apply -f busybox-worker.yaml
busybox-master-f97ff47c5-txl8l   1/1     Running   1          113m   <IP_ADDRESS>   cilium-bigip
busybox-worker-ccb4ffc6c-7s52n   1/1     Running   1          113m   <IP_ADDRESS>   cilium-fl-worker
5 now deploy cilium (templated from helm with --set flannel.enabled=true, also disabled health checking for less noise), and cilium agent runs fine on both nodes
kubectl apply -f cilium-fl.yaml
NAME           READY   STATUS    RESTARTS   AGE    IP              NODE               NOMINATED NODE   READINESS GATES
cilium-88dg6   1/1     Running   0          109m   <IP_ADDRESS>   cilium-bigip
cilium-rvnjj   1/1     Running   0          109m   <IP_ADDRESS>   cilium-fl-worker
6, manual edit busybox-master and busybox-worker deployment (deployed at step 4) to add replicas to 2 so both master and worker node get new busybox pod managed by cilium
kubectl edit deployment busybox-master or busybox-worker
spec:
progressDeadlineSeconds: 600
replicas: 2
new busybox pod created on both nodes and managed by cilium
busybox-master-f97ff47c5-g9kg2   1/1     Running   1          102m   <IP_ADDRESS>   cilium-bigip
busybox-worker-ccb4ffc6c-qqtfm   1/1     Running   1          102m   <IP_ADDRESS>   cilium-fl-worker
7 kubectl to login busybox-worker-ccb4ffc6c-qqtfm  pod <IP_ADDRESS> to ping pod <IP_ADDRESS>, not network connectivity

Please note we are removing support for the direct Flannel integration in Cilium v1.10. You can instead run Flannel on top of Cilium with the Genetic Veth Chaining guide.

the Genetic Veth Chaining guide

@pchaigno Thank you, after reading https://docs.cilium.io/en/v1.9/gettingstarted/cni-chaining-generic-veth/, I would like to try that in the existing lab that already has flannel and cilium running, but I am not clear what steps I should do in the Genetic Veth Chaining guide, it has:

Validate that the current CNI plugin is using veth
Create a CNI configuration to define your chaining configuration
Deploy Cilium with the portmap plugin enabled

I think I need to do 1, and 2. Do I need to do 3?
The guide is not very clear on what actual steps need to be performed for a Cilium newbie like me :), no real example shown

the Genetic Veth Chaining guide

@pchaigno Thank you, after reading https://docs.cilium.io/en/v1.9/gettingstarted/cni-chaining-generic-veth/, I would like to try that in the existing lab that already has flannel and cilium running, but I am not clear what steps I should do in the Genetic Veth Chaining guide, it has:

Validate that the current CNI plugin is using veth
Create a CNI configuration to define your chaining configuration
Deploy Cilium with the portmap plugin enabled

I think I need to do 1, and 2. Do I need to do 3?

I think I need to do 3, since the the cilium helm referenced the CNI chaining configmap in step 2

no need for this due to https://github.com/cilium/cilium/issues/16517


System error

The code execution cannot proceed because libssl-1_1-x64.dll was not found. Reinstalling the program may fix this problem.
Reinstalled, still not fixed it.

Make sure you downloaded it from https://github.com/fourtf/chatterino2/releases/tag/nightly-win
Make sure you haven't moved the chatterino.exe file out of the folder it came in. If you want to be able to launch it from another place, make sure you don't move or copy the chatterino.exe file, but rather make a shortcut and ensure that the shortcut still launches the exe from the correct folder (the one with libssl-1_1-x64.dll in it

If you still need help, please let me know

Make sure you've extracted chatterino from the archive. You can not run chatterino from the archive, you must have extracted the entire folder.