The return values of self._smarts.step(agent_actions) is empty dicts

BUG REPORT
High Level Description
I defined a training environments using RLlibHiwayEnv: env = RLlibHiWayEnv(config).
When I ran env.step(action),  error happended:
assert (
agent_actions.keys()
== observations.keys()
== rewards.keys()
== infos.keys()
)
raised an AssertionError.
I found observations, rewards, dones and extras that self._smarts.step(agent_actions) returned all were empty dicts.
I did not know  why this error happened and before this error my project could run for a period of time.And the observations that env.reset() returned was not empty.
SMARTS version
[e.g. 0.4.18]
Error logs and screenshots
WARNING:SMARTS:Attempted to perform actions on non-existing agent, hero
Traceback (most recent call last):
File "/home/idriver/zyk/study/rl/quick_done/train.py", line 178, in
main()
File "/home/idriver/zyk/study/rl/quick_done/train.py", line 146, in main
next_observations, rewards, dones, infos = env.step([accelate, brake, steering])
File "/home/idriver/zyk/study/rl/quick_done/wrappers/smarts_env.py", line 104, in step
env_observations, env_rewards, dones, infos = self.env.step(agent_actions)
File "/home/idriver/zyk/study/rl/SMARTS-marl_benchmark_path_fixes/baselines/marl_benchmark/.venv/lib/python3.7/site-packages/smarts/env/rllib_hiway_env.py", line 151, in step
== infos.keys()
AssertionError
System information

Operating system & Environment [Please note if using Docker]:
Python3.7
SUMO1.5.0
Could someone tell me why?Thank you very much.

Hi @zyk516, is this line exact?
next_observations, rewards, dones, infos = env.step([accelate, brake, steering])

Normally RLlibHiWayEnv.step expects the action to be associated with an agent:
next_observations, rewards, dones, infos = env.step({"agent-007":[accelate, brake, steering]})

The signature of step looks roughly like this:
def step(self, actions: Dict[str, Any]) -> Tuple[
   Dict[str, Any],
   Dict[str, float],
   Dict[str, bool],
   Dict[str, Any]
]

What I said is not very clear.
The variable env in next_observations, rewards, dones, infos = env.step([accelate, brake, steering]) is an instance of SmartsEnv that I defined.The class SmartsEnv has a member variable env: env = RLlibHiWayEnv(config).
SmartsEnv is defined as below:
class SmartsEnv(MultiAgentEnv):
def init(self, config):
self.env = RLlibHiWayEnv(config)
    self._agent_keys = list(config["agent_specs"].keys())
    self._last_observations = {k: None for k in self._agent_keys}
    self.num_stack = config['num_stack']
    self.frames = {
        agent_id: deque(maxlen=self.num_stack) for agent_id in self._agent_keys
    }
    self.frames_raw = {
        agent_id: deque(maxlen=self.num_stack) for agent_id in self._agent_keys
    }
    self.frames_rewards={
        agent_id: deque(maxlen=self.num_stack) for agent_id in self._agent_keys
    }
    one_frame_space = gym.spaces.Dict(
        goal_relative_pos=gym.spaces.Box(
            low=-float("inf"), high=float("inf"), shape=(2,)
        ),
        distance_to_center=gym.spaces.Box(
            low=-float("inf"), high=float("inf"), shape=(1,)
        ),
        speed=gym.spaces.Box(low=-float("inf"), high=float("inf"), shape=(1,)),
        steering=gym.spaces.Box(low=-float("inf"), high=float("inf"), shape=(1,)),
        neighbor=gym.spaces.Box(
            low=-float("inf"),
            high=float("inf"),
            shape=(8 * 5,),
        ),
        exist_lr_lane=gym.spaces.Box(low=0, high=1, shape=(4,))
    )
    self.observation_space = gym.spaces.Tuple([one_frame_space] * self.num_stack)
    self.feature_configs = {
        'goal_relative_pos': True,
        'distance_to_center': True,
        'speed': True,
        'steering': True,
        # 'heading_errors': [20, 'continuous'],
        'neighbor': 8,
        'exist_lr_lane':True
    }
    # self.info_adapter = None
    self.info_adapter = agent_info_adapter
def step(self, agent_actions):
    agent_actions = {
        agent_id: agent_actions for agent_id in self._agent_keys
    }
    env_observations, env_rewards, dones, infos = self.env.step(agent_actions)
    for k, observation in env_observations.items():
        self.frames_raw[k].append(observation)
    rewards = self._get_rewards(env_rewards)
    infos = self._get_infos(env_observations, env_rewards, infos)
    return env_observations, rewards, dones, infos

The error happened in this line:
env_observations, env_rewards, dones, infos = self.env.step(agent_actions).
When this error happened, the action is a dict{hero:[0.1499503429827076, 0, 0.012555409956576115]
}, and it is right.
I think this error is associated with this warning:
WARNING:SMARTS:Attempted to perform actions on non-existing agent, hero.
Before steping the action, I reset the RLlibHiWayEnv and get right observations.But after that the agent disappear.
I do not know why.

@zyk516. Yes it would be related to WARNING:SMARTS:Attempted to perform actions on non-existing agent, hero.
Description
Up to very recently we managed the dones internally while fast forwarding the simulator to the first time the agent has observations which also used to be the first time an agent could also become done. That would cause some issues with the gym.Env.reset() and rllib.MultiAgentEnv.reset() interfaces which do not return dones. What would happen here is that a condition in AgentInterface.done_criteria is being met during reset by default that would be off_road, collision, or off_route(most likely collision.) Resetted environments that start this way are faulty since both.
Suggestion
It is still possible to check for events in the Observations.events and match them up against the AgentInterface.done_criteria. If you check for the incompatibility in your implementation of SmartsEnv.reset you will be able to skip faulty environment configuration by resetting to a new scenario (and potentially log and prune faulty scenarios.)
This could look similar to the following:
def reset(self, actions):

    attempts = 4
    for i in range(attempts):
        obs = self.env.reset(actions)
        success = True
        for agent_id, o in obs:
            events = o.events
            ### TODO: compare done critera and events
            # done_criteria = self.agent_specs[agent_id].interface.done_criteria
            ### For now just discard specific configurations that might be faulty
            assert not events.reached_max_episode_steps
            success = (
                not events.off_road
                and not events.reached_goal
                and len(events.collisions) == 0
                and not agents_alive_done
            )
            if not success:
                attempts -= 1
                self._log.warning(f"Reset failed due to agent: {agent_id}")
                break
        else:
            break
    else:
        raise RuntimeError("Could not successfully reset environment")

    return obs

Further help
If you tell which version of smarts are you using (are you using 0.4.18?) I may be able to help a bit more.
If using develop there is a recent push to develop which has changed the reset behaviour to partially help with the issue by requiring the agent to stay around until the first step at minimum. We have not yet figured out the fully correct approach because AgentInterface and the Scenario can be incompatible at runtime(e.g an scenario providing an actor from an off-road location for an agent with AgentInterface.done_criteria.off_road == True.)


Class OGVPlayerState initWithURL:delegate: coding error

-(instancetype)initWithURL:(NSURL *)URL
delegate:(id)aDelegate
{
return [self initWithInputStream:[OGVInputStream inputStreamWithURL:URL]
delegate:delegate];  //*should be aDelegate
}

Good catch, thanks!


Spike: Select which questions will be displayed on report

Its been decided on how to approach this. the spike is not necessary anymore


Communication to containers not always possible

Let me start by saying that I am not convinced that this is a docker swarm issue, although all investigation so far points in this direction.
I have a couple of services running in a docker swarm on a single docker host. All services run in the same overlay network. These services all expose a different port on which a web server is available. The docker-host runs CoreOS (1520.0.0 Alpha channel).
Sometimes I end up in a situation in which requests made on http://docker-host.local: timeout. When I login on the docker-host and make a request to localhost: it also times out. However from a shell in a different container a request to the service does succeed without issues.
docker service ls shows the correct port mappings.
The service that is not reachable, is seemingly random. Sometimes all are functioning correctly, sometimes one is not reachable, sometimes it resolves after some time.
I have inspected the docker networks, they do not conflict the with the host network.
I can reproduce this by creating a stack of nginx services, hosting the default webpage.
file: docker-compose-test.yml
version: '3.1'
services:
  nginx1:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10081:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx2:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10082:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx3:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10083:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx4:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10084:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx5:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10085:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx6:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10086:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx7:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10087:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx8:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10088:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure

  nginx9:
    image: nginx:1.11.8-alpine
    networks:
      - test
    ports:
      - "10089:80"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
networks:
  test:

This script will deploy the stack, test availability and take down the stack until the error situation is reached.
file: test-docker-swarm.sh
#!/bin/bash

DOCKER_HOST=$1
fail=0

while [[ ${fail} -eq 0 ]] ; do
  docker -H ${DOCKER_HOST} stack deploy -c docker-compose-test.yml test
  sleep 15

  for i in $(seq 1 9) ; do
    request="http://${DOCKER_HOST}:1008${i}"
    echo "making request: ${request}"
    curl -s -o /dev/null --max-time 2 ${request}
    if [[ $? -ne 0 ]] ; then
        echo request failed: ${request}
        fail=1
    fi
  done

  if [[ ${fail} -eq 0 ]] ; then
      docker -H ${DOCKER_HOST} stack down test

    while [[ $(docker -H ${DOCKER_HOST} network ls --filter 'name=^test_' | wc -l) -ne 1 ]]; do
      echo "waiting for stack to go down"
      sleep 2
    done
  fi
done

execute running: `./test-docker-swarm.sh
I have no clue what steps I can take to debug, and resolve this. Any pointers are appreciated.
#docker version
Client:
 Version:      17.06.1-ce
 API version:  1.30
 Go version:   go1.8.2
 Git commit:   874a737
 Built:        Tue Aug 29 23:50:27 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.06.1-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.2
 Git commit:   874a737
 Built:        Tue Aug 29 23:50:09 2017
 OS/Arch:      linux/amd64
 Experimental: false
`
#docker info
`
Containers: 9
 Running: 9
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: x06mlhlwqyo3dg4lmigy18z1q
 Is Manager: true
 ClusterID: qy022nd3bjn1157sxcc6qzr9n
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Root Rotation In Progress: false
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: v0.13.2 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  Profile: default
 selinux
Kernel Version: 4.13.0-rc7-coreos
Operating System: Container Linux by CoreOS 1520.0.0 (Ladybug)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 5.776GiB
Name: fqfs-development
ID: RCNI:3ZUR:LTDA:ABIB:EYEW:HCIY:H2RC:XDNT:LC77:BMQH:FKXI:T6YZ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

@apollux this issue seems like a Docker Swarm mode issue. This repo is about the standalone Docker Swarm project. Do you mind opening this issue on github.com/docker/swarmkit or github.com/moby/moby? Don't forget to tag me there.


rack cas update

I had to merge in this commit to my branch since it was committed after I forked it.
I'm changing the factory lines to this:
sequence(:name) { |n| "#{Faker::Commerce.department} #{n}" }

I assume that's what you guys were going for.


Change UfsManager key to not rely on properties

What changes are proposed in this pull request?
In the UfsManager the UFS properties are not a prerequisite for locating an UFS instance. By not hashing on properties, the get() does not need to resolve the target UFS property keys, which saves cost.
Before: 15.32% CPU in a worker stress test

After: <1% CPU in the same worker stress test

I further checked
This change does not change how a mount point is added -- you still add a mount point with <mount point path, mount options>. The change is how you find the corresponding UFS instance.
Before this change:
You can have multiple UFS instances in a map like this:
Map:
Key<Ufs path, Ufs options> -> UFS instance
Key<Ufs path, Ufs options> -> UFS instance
Key<Ufs path, Ufs options> -> UFS instance

Theoretically you may have multiple UFS instances on the same UFS path, but having different UFS options. But later in this section I will explain why no code is doing that.
After this change:
You can have multiple UFS instances in a map like this:
Map:
Key<Ufs path> -> UFS instance
Key<Ufs path> -> UFS instance
Key<Ufs path> -> UFS instance

So you see there's no way you can use multiple UFS instances on the same path but different UFS options.
I checked in the code, two code paths can add to this map:

AbstractUfsManager.addMount()/addMountWithRecorder()
AbstractUfsManager.getOrAdd()

For 1, that means the values are only added from mount operations. It is either OldMountCommand or in Dora the alluxio.dora.client.ufs.root. Either way, before a new UFS is put into the map with a key, we verify that the mount path does NOT already exist. All usages of addMount() are shown in the screenshot below:

For 2, all usages are in the Dora worker. In a Dora worker (in OS), even when we create the Key(Ufs path, Ufs options), the ufs options are only Configurations.global().

To summarize, we are not losing any functionalities here by this change.

Out of curiosity, I validated the identity function before this change -- Key(AlluxioURI, UnderFileSystemConfiguration). It works, by:

If two objects have different AlluxioURI, the identities are different.
If two objects have the same AlluxioURI and config properties contain different kv, the identities are different.
If two objects have the same AlluxioURI, and the config properties contain same kvs, although the config properties are in different HashMaps and the maps are not ordered, the identities are equal.

Although 3 looks very reasonable, the implementation was not so clear and straightforward. For HashMap, the equals() method is from AbstractMap.equals(), which compares entries one by one by checking contains(). That's the root reason why two different maps with different orders can equal to one another.
I'm leaving this comment just as a trace, so we know what identity function might work if we later decide to add it back.

alluxio-bot, merge this please

@yyongycy  Mark here. We might need this in some corner case.


Package upgrade: flutter_local_notifications 6.1.1 --> 9.0.1

Summary
Package upgrade: flutter_local_notifications 6.1.1 --> 9.0.1
Changelog
[General] [Change] - Upgrade flutter_local_notifications from 6.1.1 to 9.0.1 (changelog)
Test Plan
Regression test the following areas:
./lib/core/providers/notifications.dart

Deferred


chore(storage): disable merge imm

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
as title

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Will this pr reverted after we debugging the inconsistent issue? I mean enable mem table spill by default.

Will this pr reverted after we debugging the inconsistent issue? I mean enable mem table spill by default.

yes, I gonna enable on the kube-bench side for daily test


Provide contact info for IP

On your README under the webserver section, you say "(ask for the IP)" - might be helpful to specify who to contact and how.

Also, the phrasing "The server is running on the server" is a little redundant in a confusing way. :)

Thanks!


[Bug] - Last Updated broke my color scheme

Describe the bug
Greetings!
Look somehow the last update broke my color scheme, somewhere in the configs is changing my highlighting.
And even in the config preview looks right but the editor looks different and I cant find which setting is overwritting my setup.
I have tailor my color scheme to look like the Atom One Dark theme but with the VSCode Dark Modern background
How it should be:

How it looks right now:

Platform & Language Details

Language: python
IDE Details:PyCharm 2023.1.3 (Professional Edition)

Build #PY-231.9161.41, built on June 20, 2023
Licensed to Hunty / Juan Esteban Camacho
Subscription is active until July 9, 2023.
Runtime version: 17.0.7+10-b829.16 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.4.1
GC: G1 Young Generation, G1 Old Generation
Memory: 1264M
Cores: 8
Metal Rendering is ON
Registry:
debugger.new.tool.window.layout=true
ide.experimental.ui=true
Non-Bundled Plugins:
color.scheme.Atom One Dark (0.4)
hu.aradipatrik.onedarknative (1.5)
com.github.ioannuwu.inline (1.1.1)
co.anbora.labs.ngrok (1.3.8)
com.github.copilot (<IP_ADDRESS>84)
mobi.hsz.idea.gitignore (4.5.1)
zielu.gittoolbox (500.0.10+213)
com.github.dinbtechit.vscodetheme (1.8.3)
ru.adelf.idea.dotenv (2023.1)
ru.meanmail.plugin.requirements (2022.4.1)
izhangzhihao.rainbow.brackets (2023.2.11)
com.google.gct.core (23.6.3-api-version-222)

Right now changing the color scheme through settings is not fully supported.
The import statement use the same color as the class Names.  Maybe we can split them out.

Fixed in https://github.com/dinbtechit/vscode-theme/releases/tag/v1.8.5 (Part 2)


If password contains minus, space or underline it stored incorrectly

So that login then impossible

Better issue description: https://github.com/OrchardCMS/Orchard2/issues/817

It was completely my mistake of trying to put email instead of user name.
Maybe it will be nice to allow to login by email as well?

What's weird is that there are limitations on the username. Either that's an issue or we need to validate it.

What do you mean about limitations?

I thought you meant you could not use an email in the username field. Now I understand what you meant, that you used the email instead of the username when you tried to log.
We can't use the email too as we are not assessing the unicity of emails against usernames. Meaning there could be collisions and security issues with collisions between usernames and emails. Say you have the<EMAIL_ADDRESS>email, and andreii as a username. I could create a username with<EMAIL_ADDRESS>and then potentially impersonate your account. Not saying it's not doable but there are risks we don't realize we are adding some attack vectors.

@sebastienros the thing here is that Accounts normally gets "activated" through sending an email to verify if this email is valid. So, normally, accounts are verified through emails. Which means that an Account on the website will always be strongly attached to a specific email. I believe that if you register a new account you should verify for unique usernames and also unique emails to prevent impersonation to happen. Though, a user could want to edit his email address from his profile, or an admin could want to change the email associated to a user account. In that case I believe that we should verify if the email has not been already assigned to any other user account. That way, the username becomes only a "shortener" for the login if it's actually shorter than the user email. Somehow, login from the email or the username in the end should do the same if Email + Username are unique for each accounts.

I kinda feel we should have unicity on email so you can long in with either... don't you think? Most sites allow login with either
Sent from my iPhone

On 26 Aug 2017, at 21:04, Jasmin Savard<EMAIL_ADDRESS>wrote:
@sebastienros the thing here is that Accounts normally gets "activated" through sending an email to verify if this email is valid. So, normally, accounts are verified through emails. Which means that an Account on the website will always be strongly attached to a specific email. I believe that if you register a new account you should verify for unique usernames and also unique emails to prevent impersonation to happen. Though, a user could want to edit his email address from his profile, or an admin could want to change the email associated to a user account. In that case I believe that we should verify if the email has not been already assigned to any other user account. That way, the username becomes only a "shortener" for the login if it's actually shorter than the user email. Somehow, login from the email or the username in the end should do the same if Email + Username are unique for each accounts.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


chore(oop): implement Historic Activity Statistics

Hi @jvaldesh,
thanks for your pull request :) I merged it! :+1:


Fix possible memory leaks in EventManager with weak references

It's also worth taking a look at the PluginManager and seeing whether weak references may be useful there as well. In the case of the EventManager, callbacks to events should be registered as weak references, so that if the plugin that registered the callback doesn't remove its callback for some reason, it doesn't prevent the garbage collector from handling the plugin (and this would help to prevent accidental duplicate callbacks for reloaded plugins.)

Isn't possible. :( Might cause me to re-think how the plugins work...


Wrong warning for visibleVariations prop type

I have this code: "visibleVariations": ["talle"] and the extension warns me Incorrect type. Expected "object". but on VTEX documentation its definitely string type.
Reference: SKU Selector

Thanks for your report.
I see the SKU Selector documentation and they say that visibleVariations is of type array, after they show the props of visibleVariations, in this case, the prop name of type string, so, if documentations its not wrong,  this is the correct use of this porp:
"visibleVariations": [
    { "name": "talle" }
]

Hi @Luis-eplus, yes, the docs are wrong. Seeing the typings on the app I see this interface. Taken from here
interface Props {
  skuItems: ProductItem[]
  skuSelected: ProductItem | null
  onSKUSelected?: (skuId: string) => void
  maxItems?: number
  visibility?: string
  seeMoreLabel: string
  hideImpossibleCombinations?: boolean
  disableUnavailableSelectOptions?: boolean
  showValueNameForImageVariation?: boolean
  showValueForVariation?: ShowValueForVariation
  imageHeight?: ResponsiveValuesTypes.ResponsiveValue<number>
  imageWidth?: ResponsiveValuesTypes.ResponsiveValue<number>
  thumbnailImage?: string
  visibleVariations?: string[]
  showVariationsLabels?: ShowVariationsLabels
  variationsSpacing?: number
  showVariationsErrorMessage?: boolean
  initialSelection?: InitialSelectionType
  displayMode?: ResponsiveValuesTypes.ResponsiveValue<DisplayMode>
  sliderDisplayThreshold?: number
  sliderArrowSize?: number
  sliderItemsPerPage?: ResponsiveValuesTypes.ResponsiveValue<number>
  /** Used to override default CSS handles */
  classes?: CssHandlesTypes.CustomClasses<typeof SKU_SELECTOR_CSS_HANDLES>
}

hey, Sorry to keep you waiting, this bug was resolved in v0.2.20
thanks for your report


A VSCode command to restart lang server

There are common situations where lang server crashes occationally, Ideally we need to fix those cases but also it is important to give user a quick way to recover from it.
VSCode has an in built command to restart typescript lang server when it crashes - discussion on it can be found here https://github.com/microsoft/vscode/issues/22614
Shall we do something similar?

Similar functionality can be gained by using the Reload Window command. Hence closing the issue


Fixed #3052 - Incorrect coordinate projections for some data sets

Fixed #3052

Converting to draft status until #3136 is addressed

@clyne - FYI, centos7 is currently failing because CircleCI's server time is currently behind the timestamp on the newly included expat libraries.  In a day, CircleCI's clock should elapse expat's timestamp and the warning should go away.


Substitute process ID for "PID" in log file names

This will help us solve the problem of logs getting clobbered when the server restarts.

can you add test please.

@sheetalkamat Do we have tests that cover log file names?

not really but we never did manipulate user provided name so i think it should be added to catch any regression when we change anything else.

wait this is in server.ts of tsserver, so it would be hard to test.


Suggest use of Data.List.NonEmpty.unzip

I assumed that a function in the NonEmpty module had something to do with NonEmpty. But turns out not! That's super surprising, to the extend I'm a little worried that suggesting it would really confuse people.

Yeah, I agree. One would expect that unzip to live elsewhere. I updated the hint to be the list version.

Thanks!


Add shellcheck script and fix many shell issues found by shellcheck

This adds a new make command make shellcheck that is supposed to be run by CI (travis-ci might be used). It only checks the scripts .sh so far (no tests/) and the idea is to do similarly over time in other containers, to avoid issues coming from poor shell scripting.
The idea is to specify SHELLCHECK_FILES in the Makefile for each image to scan only files we want. By default it scans the whole repository, which might be too much.

[test]

Failing test on rhel8 should be fixed by https://github.com/sclorg/container-common-scripts/pull/129

Aaaawesome!

This should close https://github.com/sclorg/container-common-scripts/issues/42

Notes from the meeting: this should be divided to more commits (maybe based on functions).

So, the PR is divided to more commits for easier review. HTH.


If VALUES result set is empty, an exception is thrown

The following query yields an expected result:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?entity WHERE {
     values ?search { "inventor"@en } .
     ?entity @en@skos:altLabel ?search
}

However, the following query (remove the 'r' in 'inventor')
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?entity WHERE {
     values ?search { "invento"@en } .
     ?entity @en@skos:altLabel ?search
}

yields the following error:
Unknown error
Exception: BAD INPUT STRING (The word "invento"@enis not part of the vocabulary.; in /app/src/engine/Values.cpp, line 147, function static void Values::writeValues(IdTable*, const Index&, const SparqlValues&) [with long unsigned int I = 1; IdTable = IdTableStatic<>])

I was expecting an empty result set and find it strange to see an error instead.

@graue70 agree that doesn't look like the expected behaviour to me either (even without looking at the spec). @floriankramer?

To further make my point: The following query yields the expected empty result set with no error:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?entity WHERE {
     ?entity @en@skos:altLabel "invento"@en
}


NCS-151, specify routing field

@echo-xu @krzysztof-everbridge @timxi @mveitas
This pull request enables us to specify which field to be used as routing via ""routing.field.name" (it must be a leaf field, primitive, wrapper primitive or string type) config when initiate the connector in Kafka Connect.
Note,

this is not a general purpose implementation thus is not ready to be contributed to the official repo, it takes more time to get deeper understanding on the schema usage to make it more generalized.
we are using Kafka 4.0.0, which uses 4.0.0-post branch of this project.
the official repo uses 2 spaces indentation, and it forces style check, I just followed that

test slack integration

test again


Fix duplicate searing light entries with multiple summoners

Add the petsFilter to the statusApply and statusRemove event hooks.

That could work but I feel like that's covered by the Timeline module at the bottom, where you can visually see which GCDs you fit inside the other party buffs.
I think it's cleaner to treat another summoner's Searing Light as a generic party buff rather than give it special treatment in the module when there are multiple SMNs. Imagine the module with 4 SMNs when you have 100% Searing Light uptime (2m CD, 30s duration).
This is all small potatoes considering running identical classes is a niche/fun thing rather than a serious feedback thing.

Since we track nothing in the Searing Light window anyway due to the effect Spell Speed (or mechanics) can have on how the window lines up with your rotation, there isn't a need to show the other SMN's windows like there is for DNC.
The more relevant thing to test here is how this change handles 2 SMNs casting SL at the same time instead of being well disciplined like in this example.  If you have already test that, let me know, otherwise I'll try to dig out the parses from when we had a previous issue involving multiple SMNs casting SL at the same time.

Having multiple overriding searing light looks as expected:

If your searing light got overridden, your buff window is shortened so you look like you have fewer GCDs during your window (which is giving some feedback that clipping/overriding searing light is wrong)
If you clip someone else the module won't complain.

Updated PR with conversation in discord:
https://discord.com/channels/441414116914233364/470050747720138753/937086689497722980

You will no longer get bad entries for other people's searing lights
If yours gets overriden by other SMN, you get credit for what would have been your own duration


Media move modal limits folders to 50 positions

Description:
If the product images folder contains multiple subfolders, not all folders are shown in the popup.
Environment: Shopware 6.5.8.X
Steps to reproduce: Setup an instance of shopware and create 100 subfolders in the product media folder. Name them alphabetical or in numbers to keep track.
Try to move one of the sample images in the last folder e.g. z or 100.
Expected result: The popup contains all folders and can be scrolled down.
Actual result: The output of folders is limited to 50 positions.

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/NEXT-34484.
[created from NEXT-34484, comment 485852]

[public] Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know. Thank you again for your valuable feedback.
[created from NEXT-34484, comment 501197]


Libraries

Hi! I'm planning to make this myself, but was wondering which exact libraries you are using in PlatformIO?

https://github.com/paviro/HASS-YAAP/blob/main/platformio.ini ;)

Ahh how silly of me! Clearly still new to all of this ;) Thanks a lot for the project (and your help ofc)!

No worries! Good look on your building journey and have fun!


Breadcrumbs for custom views

I have the next view:
CompanyHistory(View):
    template_name = "history.html"
...

Url definition
...
path("company/<int:pk>/history/", CompanyHistory.as_view(), name="company_history"),
...

According to the documentation, it only supports the following actions:

Is there a way to include a custom action?

I'll need to clarify that on the docs but for custom view you can inherit from the BaseBreadcrumbMixin  see https://github.com/tj-django/django-view-breadcrumbs#custom-crumbs-home--my-test-breadcrumb
Sample
class CompanyHistory(BaseBreadcrumbMixin, View):
    template_name = "history.html"

    def crumbs(self):
        return [...]

or
class CompanyHistory(BaseBreadcrumbMixin, View):
    template_name = "history.html"
    crumbs = [...]


[Schema Registry] Prototype for alternative serializer API

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Data.SchemaRegistry

Approved the prototype (not that my approval matters 😂🤣)
I assume the final version will also have the XML documentation updated

@danielmarbach After a bit of discussion, we're planning on sticking with the current implementation primarily because it aligns with what Newtonsoft / System.Text.Json do when deserializing into an object. (It's a bit of a different scenario, but it's similar in the sense that both are populating an object).
Account account = JsonConvert.DeserializeObject<Account>(json);

WeatherForecast? weatherForecast = JsonSerializer.Deserialize<WeatherForecast>(jsonString);

The current approach also avoids some additional complexities like how we should handle instances that aren't empty.
This was a good idea though and I appreciated the opportunity to explore it. Thanks for your input!

Let me try to recap to make sure I understand it.
In your discussions you are treating the EventData  or MessageContent objects as the objects to be populated which then makes them in your design closer to the deserialize semantics which populates an object out of a binary data. That is the primary decision driver to leave the current API as is.
For my own edutainment I would love to hear your thoughts on the different angle I provided because it seems intuitively I would value the alignment with the serialization ecosystem and most importantly with how serialize and deserialize methods behave higher.
Let me try to re-explain why I looked at the API from a different perspective. When I "reviewed" the API I looked at it from the perspective of a serializer. A serializer serializes a payload into a writable data structure that receives the binary data (stream or Binarydata) (aka WriteInto semantics) and it deserializes from a readable data structure that contains binary data into an object that it populates (aka populate semantics). Following that semantic I found it counter intuitive for the schema registry serializer to treat the serialize path the same as the deserialize path by populating  the writable data structure. That' s why I suggested to keep the semantics of the APIs which are clearly following the serialization/deserialization domain aligned with the general expectations of how a serialize and deserialize API would behave. Examples:
Serialize
Newtonsoft
public void Serialize(TextWriter textWriter, Object value)
public void Serialize(JsonWriter jsonWriter, Object value)
public void Serialize(TextWriter textWriter, Object value, Type objectType)
public void Serialize(JsonWriter jsonWriter, Object value, Type objectType)

System.Text.Json
public static string Serialize (object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
public static string Serialize (object? value, Type inputType, System.Text.Json.JsonSerializerOptions? options = default);
public static void Serialize (System.IO.Stream utf8Json, object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
public static void Serialize (System.Text.Json.Utf8JsonWriter writer, object? value, Type inputType, System.Text.Json.Serialization.JsonSerializerContext context);
...

As you can see all serialize APIs accept the payload and write them into a writable data structure (string, stream, Utf8JsonWriter, TextWriter, JsonWriter) (aka WriteInto semantics). The string case is slightly different since the string is returned but given the nature of strings this makes sense.
Deserialize
Newtonsoft
public Object Deserialize(
	JsonReader reader
)
public T Deserialize<T>(
	JsonReader reader
)
public Object Deserialize(
	TextReader reader,
	Type objectType
)
public Object Deserialize(
	JsonReader reader,
	Type objectType
)

System.Text.Json
public static object? Deserialize (ReadOnlySpan<byte> utf8Json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
public static object? Deserialize (ReadOnlySpan<byte> utf8Json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
...
public static object? Deserialize (System.IO.Stream utf8Json, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
...
public static object? Deserialize (string json, Type returnType, System.Text.Json.JsonSerializerOptions? options = default);
...
public static object? Deserialize (ref System.Text.Json.Utf8JsonReader reader, Type returnType, System.Text.Json.Serialization.JsonSerializerContext context);
...

As you can see the Deserialize methods accept a readable data structure that they use to read from and then populate the payload type with the information contained in the readable data structure (aka populate semantics).

In your discussions you are treating the EventData or MessageContent objects as the objects to be populated which then makes them in your design closer to the deserialize semantics which populates an object out of a binary data

Yes, at least that was my interpretation.

A serializer serializes a payload into a writable data structure that receives the binary data (stream or Binarydata) (aka WriteInto semantics) and it deserializes from a readable data structure that contains binary data into an object that it populates (aka populate semantics)

I definitely see what you mean by our API being confusing when thinking about this in terms of populate vs write into semantics. We don't follow the standard serialization pattern. But I do also think that our serializer kind of falls into a weird gray area where MessageContent and its deriving types aren't "writable" in the same way that a stream or writer is. The complexity I mentioned above is one side-effect of that, i.e if someone passed in an already populated EventData instance, do we just overwrite the ContentType/Data? This is different from, for example, a stream where the expectation is to start writing at the starting position.

@m-redding Thanks for your patience and your reply. I do enjoy this design discussion :heart_eyes:

But I do also think that our serializer kind of falls into a weird gray area where MessageContent and its deriving types aren't "writable" in the same way that a stream or writer is. The complexity I mentioned above is one side-effect of that, i.e if someone passed in an already populated EventData instance, do we just overwrite the ContentType/Data? This is different from, for example, a stream where the expectation is to start writing at the starting position, regardless of the contents / if it has to overwrite something.

And that is where I personally see not much difference and consider these cases boundary conditions that any serialize / deserialize method has to deal with. As an example. When you serialize to a stream the method doesn't know which derived type of stream you are passing. It can for example check some basic things like whether the stream is writable or not and decide to throw if it isn't (for example in the case of a serialize into a stream). For everything that cannot be checked based on the base type definition it will call WriteAsync and assume the overwritten method does the necessary checks. If the checks are successful it write the data into the current position and advances the position. So if the stream happens to be at position 0 the data is inserted there. If there is existing data there it will be appended or if someone decides to rewind an existing stream with data the data will be overwritten. There are other "boundary conditions" that apply to other overloads too. For example if you pass a buffer / span and the span doesn't have enough space it will throw. If the span is in a position that accidentally (or deliberately) contains existing data it is overwritten.
For me similar boundary conditions apply in our examples too and are a matter of design choices this type of serializer wants or deliberately doesn't want to support. For example I can see how EventData or MessageContent data could be overwritten (this would enable scenarios for pooling EventData or MessageContent) or it would throw should Data be a non-default value.


Upgrade to Hyrax

Coverage decreased (-0.09%) to 99.914% when pulling 946e22e98b4b3ec1b44fd8fcfae5e387d4cf83e1 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 59a717457aa7016fd26e37ad9de8d1229a88338b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 59a717457aa7016fd26e37ad9de8d1229a88338b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 59a717457aa7016fd26e37ad9de8d1229a88338b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 59a717457aa7016fd26e37ad9de8d1229a88338b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 59a717457aa7016fd26e37ad9de8d1229a88338b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.885% when pulling 2d06809260e0e1b7b66167fb904e14a5b7663734 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.1%) to 99.856% when pulling 64f42f54992cea7d2b2c796ce5d204054437bc07 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.03%) to 99.971% when pulling 64f42f54992cea7d2b2c796ce5d204054437bc07 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.03%) to 99.971% when pulling ca88206060aa649719ca6ced0b01e358605dbb41 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.03%) to 99.971% when pulling f188b1f6dfa7a3357a1e062a09d96c1a1931b511 on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.03%) to 99.971% when pulling cb2eaa3b029ddf7b71b35fd09e2ba31214d2b95b on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.

Coverage decreased (-0.03%) to 99.971% when pulling 1eb8074f496e0fd7d1c286e062ce7166bbc4620c on hyrax into c1851e8c97c362464519adff24afb51f895de434 on master.


Prevent creating temp containers

https://github.com/RoaringBitmap/RoaringBitmap/issues/185
https://github.com/RoaringBitmap/RoaringBitmap/issues/239

Coverage decreased (-0.007%) to 91.189% when pulling b122bc70d1c294423909e14cc700308187a37bff on amitdesai03:master into a677b01e28210eae8be618f0a78bf982dd66a3e6 on RoaringBitmap:master.

I think that we do not store empty containers, so this condition will always be true. No?

I though we never confiscate empty containers on remove() call. So there is possibility.

That would be a bug. I don't think we do so...
  public void remove(final int x) {
    final short hb = Util.highbits(x);
    final int i = highLowContainer.getIndex(hb);
    if (i < 0) {
      return;
    }
    highLowContainer.setContainerAtIndex(i,
        highLowContainer.getContainerAtIndex(i).remove(Util.lowbits(x)));
    if (highLowContainer.getContainerAtIndex(i).isEmpty()) {
      highLowContainer.removeAtIndex(i);
    }
  }

Also, would you be open to have gitter/irc channel for more agile communication?

We have a mailing list as you know.
We can create more channels. If someone organizes a chat channel, we will be sure to add links to it.

Did you mean we modify internals of and() methods to prevent allocating anything till something found to intersect?

That's what I meant, yes. See my description:
There are clever tricks we could use to start scanning the input containers, advance up to the point where there might be values to be intersected, and bail out without generating an empty container if the intersection is empty.
I am thinking that instead of eagerly allocating a new container, we could delay the allocation until we we know the result won't be empty. I'd start with array-array intersections.

I’d be tempted to verify the container isn’t scalarised before optimising this. If you get a significantly worse result and different allocation rates from -prof gc when disabling escape analysis when executing this section of code, it’s being optimised for you.

I’d be tempted to verify the container isn’t scalarised before optimising this. If you get a significantly worse result and different allocation rates from -prof gc when disabling escape analysis when executing this section of code, it’s being optimised for you.

That's a very good point. I'll recopy your comment as part of the main issue.

I will close this for now.


notable: 1.7 -> 1.8

Motivation for this change
cc @dtzWill
Things done

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

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

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

done

Perfect. Thanks.

I went to the github repo, and apparently, it is not released under a free software license anymore (https://github.com/notable/notable/blob/master/SOURCE_CODE.md). License changed after version 1.5.
I’ll create a PR to change the meta attribute.

(see #81932)


jinja2-time install seems to be broken due arrow

Broken on at least Python 2.7 due to this issue at arrow.  PR #5 seems really necessary now!
For the install logs see my comment in the PR over at arrow

test import
wilmardo@NUC-FLEX-01:/mnt/c/Users/wilmaro/Documents/Ubuntu$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from jinja2 import Environment
>>> env = Environment(extensions=['jinja2_time.TimeExtension'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wilmardo/.local/lib/python2.7/site-packages/jinja2/environment.py", line 333, in __init__
    self.extensions = load_extensions(self, extensions)
  File "/home/wilmardo/.local/lib/python2.7/site-packages/jinja2/environment.py", line 85, in load_extensions
    extension = import_string(extension)
  File "/home/wilmardo/.local/lib/python2.7/site-packages/jinja2/utils.py", line 143, in import_string
    return getattr(__import__(module, None, None, [obj]), obj)
  File "/home/wilmardo/.local/lib/python2.7/site-packages/jinja2_time/__init__.py", line 3, in <module>
    from .jinja2_time import TimeExtension
  File "/home/wilmardo/.local/lib/python2.7/site-packages/jinja2_time/jinja2_time.py", line 3, in <module>
    import arrow
  File "/home/wilmardo/.local/lib/python2.7/site-packages/arrow/__init__.py", line 3, in <module>
    from .arrow import Arrow
  File "/home/wilmardo/.local/lib/python2.7/site-packages/arrow/arrow.py", line 19, in <module>
    from arrow import util, locales, parser, formatter
  File "/home/wilmardo/.local/lib/python2.7/site-packages/arrow/parser.py", line 12, in <module>
    from backports.functools_lru_cache import lru_cache  # pragma: no cover
ImportError: No module named functools_lru_cache

What about replacing arrow with Pendulum?  What I’ve heard and experienced so far, it would be a good alternative.

I could create a PR for this.


fix: management endpoint for submodule

Description
Includes management_endpoint_type for the sub module buckets.
Issue: #439
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[x] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content
Includes management_endpoint_type for the sub module buckets. The input includes management_endpoint_type in the bucket definition. This can be public, private or direct and represents the endpoint the IBM provider will use to manage the bucket.
Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

When merging, use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

/run pipeline

:tada: This PR is included in version 6.12.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Attempted import error: 'ViewPropTypes' is not exported from 'react-native-web/dist/index' (imported as 'RNViewPropTypes').

Attempted import error: 'ViewPropTypes' is not exported from 'react-native-web/dist/index' (imported as 'RNViewPropTypes').

Using Expo SDK 40 & React Native 0.63.2


Updating Dockerfile to support the latest Alpine release so the application will build with the newer versions of telegram-bot-ruby.

Let's test this for a little longer before merging

@mattburchett How's this branch running so far for you?

It's working great on the slightly older than latest version of Alpine. Ruby 3.0.0 breaks the gem, so going back a couple versions keeps it on 2.x.


drivers: entropy: api: drivers.entropy.psa_crypto and drivers.entropy fail

Describe the bug
Tests:

drivers/entropy/api/drivers.entropy
drivers/entropy/api/drivers.entropy.psa_crypto
fail.

Observed for:

nrf5340dk/nrf5340/cpuapp/ns
nrf9160dk/nrf9160/ns.

To Reproduce
Steps to reproduce the behavior:

have nrf9160dk/nrf9160 connected
go to your zephyr dir
call ./scripts/twister -T tests/drivers/entropy/api/ -p nrf9160dk/nrf9160/ns --device-testing --device-serial /dev/ttyACM0 -v --inline-logs
See console output with error

Expected behavior
Valid console output
Impact
Not clear
Logs and console output
*** Booting Zephyr OS build v3.6.0-5099-g127cb9edb6c6 ***
Running TESTSUITE entropy_api
===================================================================
START - test_entropy_get_entropy
random device is 0x57694, name is psa-rng
Error: entropy_get_entropy failed: -5
Assertion failed at zephyr/tests/drivers/entropy/api/src/main.c:109: entropy_api_test_entropy_get_entropy: get_entropy() == TC_PASS is false
FAIL - test_entropy_get_entropy in 0.023 seconds
===================================================================
TESTSUITE entropy_api failed.
------ TESTSUITE SUMMARY START ------
SUITE FAIL -   0.00% [entropy_api]: pass = 0, fail = 1, skip = 0, total = 1 duration = 0.023 seconds
- FAIL - [entropy_api.test_entropy_get_entropy] duration = 0.023 seconds
------ TESTSUITE SUMMARY END ------
===================================================================
RunID: 8e1a687bd2e64f0dd0f8afbfa9eb3373
PROJECT EXECUTION FAILED

Environment (please complete the following information):

OS: Ubuntu 20.04.1 LTS
Toolchain: Zephyr SDK 0.16.5-1
Commit SHA or Version used: v3.6.0-5099-g127cb9edb6c6

Just tested on latest main (35391f3d349935d3a5454ba42990dc586ef8a80f), passes on nRF9160 and builds on nRF5340 (I don't have that board).
$ ./scripts/twister -T tests/drivers/entropy/api/ -p nrf9160dk/nrf9160/ns --device-testing --device-serial /dev/ttyACM0 -v --inline-logs -c
INFO    - Using Ninja..
INFO    - Zephyr version: v3.7.0-rc2-337-g35391f3d3499
INFO    - Using 'zephyr' toolchain.
INFO    - Building initial testsuite list...
INFO    - Writing JSON report /home/tomi/workspace/ncs/zephyr/twister-out/testplan.json

Device testing on:

| Platform             | ID   | Serial device   |
|----------------------|------|-----------------|
| nrf9160dk/nrf9160/ns |      | /dev/ttyACM0    |

INFO    - JOBS: 8
INFO    - Adding tasks to the queue...
INFO    - Added initial list of jobs to queue
INFO    - 2/3 nrf9160dk/nrf9160/ns      tests/drivers/entropy/api/drivers.entropy.psa_crypto PASSED (device 17.410s)
INFO    - 3/3 nrf9160dk/nrf9160/ns      tests/drivers/entropy/api/drivers.entropy          PASSED (device 16.614s)

INFO    - 3 test scenarios (3 test instances) selected, 1 configurations skipped (1 by static filter, 0 at runtime).
INFO    - 2 of 3 test configurations passed (100.00%), 0 failed, 0 errored, 1 skipped with 0 warnings in 74.99 seconds
INFO    - In total 2 test cases were executed, 1 skipped on 1 out of total 6 platforms (16.67%)
INFO    - 2 test configurations executed on platforms, 0 test configurations were only built.

Hardware distribution summary:

| Board                | ID   |   Counter |
|----------------------|------|-----------|
| nrf9160dk/nrf9160/ns |      |         2 |
INFO    - Saving reports...
INFO    - Writing JSON report /home/tomi/workspace/ncs/zephyr/twister-out/twister.json
INFO    - Writing xunit report /home/tomi/workspace/ncs/zephyr/twister-out/twister.xml...
INFO    - Writing xunit report /home/tomi/workspace/ncs/zephyr/twister-out/twister_report.xml...
INFO    - Run completed

$ ./scripts/twister -T tests/drivers/entropy/api/ -p nrf5340dk/nrf5340/cpuapp/ns -v --inline-logs -c
Deleting output directory /home/tomi/workspace/ncs/zephyr/twister-out
INFO    - Using Ninja..
INFO    - Zephyr version: v3.7.0-rc2-337-g35391f3d3499
INFO    - Using 'zephyr' toolchain.
INFO    - Building initial testsuite list...
INFO    - Writing JSON report /home/tomi/workspace/ncs/zephyr/twister-out/testplan.json
INFO    - JOBS: 8
INFO    - Adding tasks to the queue...
INFO    - Added initial list of jobs to queue
INFO    - 2/3 nrf5340dk/nrf5340/cpuapp/ns tests/drivers/entropy/api/drivers.entropy.psa_crypto PASSED (build)
INFO    - 3/3 nrf5340dk/nrf5340/cpuapp/ns tests/drivers/entropy/api/drivers.entropy          PASSED (build)

INFO    - 3 test scenarios (3 test instances) selected, 1 configurations skipped (1 by static filter, 0 at runtime).
INFO    - 2 of 3 test configurations passed (100.00%), 0 failed, 0 errored, 1 skipped with 0 warnings in 41.84 seconds
INFO    - In total 2 test cases were executed, 1 skipped on 1 out of total 3 platforms (33.33%)
INFO    - 0 test configurations executed on platforms, 2 test configurations were only built.
INFO    - Saving reports...
INFO    - Writing JSON report /home/tomi/workspace/ncs/zephyr/twister-out/twister.json
INFO    - Writing xunit report /home/tomi/workspace/ncs/zephyr/twister-out/twister.xml...
INFO    - Writing xunit report /home/tomi/workspace/ncs/zephyr/twister-out/twister_report.xml...
INFO    - Run completed


Add publicly exposed engine's API for C FFI (including C header)

We plan to write a fully featured client in C#, so we need to create a dynamically linked library with engine's API.
An example is available here.
The API should be in a separate crate named c-api.
Maybe #10 should be done first so the API is asynchronous.
API:

Game Settings:

Gravity
Board
Attack
Wall Kick Mode

Time Manager

new()
update(delta_seconds)
reset()
enable()
disable()

Cell Holder:

get_occupied_cell_count()
clear()
get_row(y)
set_row(y, row)
move_down(from_y, should_update_cell_count)
move_up(should_update_cell_count)
get_cell_at(x, y)
set_cell_at(x, y, cell)

Piece (current piece):

get_type()
get_cell_type()
get_offset_type()
get_bounds()
get_x() and set_x()
get_y() and set_y()
rotation_state()

Piece Manager:
Piece Queue:
Board:

new(game_settings, wall_kick_data, seed)
update(time_mgr)
move_left(delta)
move_right(delta)
rotate(direction)
try_hold_piece()
get_hold_piece()
exec_action(action)
hard_drop()
soft_drop(delta)
push_garbage(amount, messiness)
attack(damage)
find_nearest_y()
reset()
enable()
disable()
get_cell_holder()
get_piece_manager()
get_current_piece()
get_piece_queue()
get_layout()
get_nearest_y()
get_piece_points()
get_garbage_queue()
get_stats()
get_settings()
is_dead()

No longer needed as the client will be rewritten in Rust+Bevy


fix build

https://ci.appveyor.com/project/matz/mruby/build/334/job/98mcdisekvrh09jj

Sorry still bad.


Improved README

Purpose
Improved flow of README file:

Moved "Run in AKS" section to be first since that appears to be the primary intention of the demo
Updated "Run locally" to have specific commands backing the steps. Also removed the "fork" instruction since its not explicitly needed unless they plan on contributing back to the demo.

Does this introduce a breaking change?
[ ] Yes
[ x ] No

Pull Request Type
What kind of change does this Pull Request introduce?
[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ x ] Documentation content changes
[ ] Other... Please describe:

How to Test
N/A - README change
What to Check
N/A - README change
Other Information

Thank you @zr-msft for the PR. LGTM


[Autocomplete] Add CloseIconComponent and PopupIconComponent props

[x] I have followed (at least) the PR section of the contributing guide.

Closes #18227

@oliviertassinari what I meant is to change the icon with leaving the IconButton with its properties
So will there be a demo for how to do this? By overriding the IconButton itself

What about a CloseIconProps prop instead?

So I think they will be like this
PopupIconProps Prop
CloseIconProps Prop
And they only target the Icons for the endAdornment
I can make the changes if you agree with me on this

Ok, my bad, my proposal wouldn't work. What do you think of not solving this problem, but instead, to use the useAutocomplete hook for your use case?

But I think what I've done is better for it in this case
Otherwise it will set the default icons

Here's a review of icon override props (doesn't include any props that set the default icon):
Checkbox:
checkedIcon: The icon to display when the component is checked.
icon: The icon to display when the component is unchecked.
indeterminateIcon: The icon to display when the component is indeterminate.
Chip:
deleteIcon: Override the default delete icon element.
ExpansionPanelSummary:
expandIcon: The icon to display as the expand indicator.
NativeSelect:
IconComponent: The icon that displays the arrow.
Radio:
checkedIcon: The icon to display when the component is checked.
icon: The icon to display when the component is unchecked.
Select:
IconComponent: The icon that displays the arrow.
StepLabel:
StepIconComponent: The component to render in place of the StepIcon.
Switch:
checkedIcon: The icon to display when the component is checked.
icon: The icon to display when the component is unchecked.
TableSortLabel:
IconComponent: Sort icon to use.
It's a bit of a mish-mash for both prop-naming and descriptions, so could do with being reconciled, but for the purpose of this PR, only 3 have Component in the name - Select, StepLabel, & TabelSortLabel. StepLabel is legitimate, since it replaces the StepIcon component. The other two look like a mistake.
For autocomplete, how about we use closeIcon, and popupIcon for the prop names.
For the description, "The icon to display in place of the default XXX icon."? (Whatever wording is chosen needs to work for the other component.s)

@mbrookes I think that the idea case is to accept an element. However, it's not always possible, in the case of the select, it accepts a component instead.
I think that there is a tradeoff to find here between allowing to customize the icon, the icon button and more. I'm wondering about the best tradeoff we can pick. Here are the different options:

We accept an icon element. I believe it's what @mbrookes propose, it's a better variation to the initial commit that accepts a component to customize this element. It's ideal to customize the icon
We accept an icon button component prop. It allows more customization but adds an extra step to customize the icon.
We do nothing, we encourage the usage of useAutocomplete for this problem. The problem is that it requires to add some custom style. It's not straightforward.
We wait for the unstyled effort. We will likely need to introduce an API to customize each component (I was doing POCs with a components object prop).

I think that I would prefer the options in this order 4, 1, 3, 2. Now, 1 and 4 can probably be used in conjunction, no strong preference.

@AbdallahElroby Thanks

@oliviertassinari you're welcome
I'm willing to contribute more on the lab components as much as I can


Body font looks like different font form 'list item' font

Body font looks like different font form 'list item' font (see highlighted text below in screenshots)

Closing in favor of  #9428

Closing in favor of  #9428


Icon styling on the Fill component

Create the (initially empty) view for this component.

[ ] Add/fix specs (https://github.com/CartoDB/cartodb/issues/10875).
[ ] Add styles in the modal (@piensaenpixel)
[ ] Enable CORS for the assets bucket (https://github.com/CartoDB/cartodb-platform/issues/2764)
[ ] Avoid closing the input fill component after opening the modal.

Implemented

[x] Add actual icon in the input field (#10852)
[x] Create flag for the feature (#10847) (icon-styling)
[x] Use an image and a color on the img/color row.
[x] Add image pane inside the Solid Pane
[x] Add Img / color row
[x] Update CartoCSS.
[x] Added basic image pane
[x] Show assets in the modal.
[x] Add modal to select the assets.
[x] Create the assets collection to retrieve the assets from the backend

Future features

[ ] Add upload file system.
[ ] Show patterns.
[ ] Add [IMG] icon to the input fill.

Related: https://github.com/CartoDB/cartodb/issues/10452

This feature depends on https://github.com/CartoDB/cartodb-platform/issues/2764


Scroll Horizontally

Shouldn't it be expected to scroll horizontally with shift+Scroll?
Example
Edit:
browser: Chrome Version 81.0.4044.129 (Official Build) (64-bit)

Didn't know about this, but can confirm this is how it works in Figma and Affinity.


Automatic pre_commit_hook installation did not work

Hi, I tried .deb installation as well as in brew.
After running "git spr update" there was a problem with commit hook:
`git spr update
...
Add ticket from branch to commit message.................................Passed
Run StackedPR message hook...............................................Failed

hook id: spr
exit code: 1

Executable spr_commit_hook not found`
It was not linked to .git/hooks/commit_msg unfortunately.
I had to find your older commit with instruction and link it manually.

glad you were able to link it manually, did everything work for you after that?
what operating system are you using? (I'm guessing osx)
what's the output of 'which spr_commit_hook' ?
also can you paste the whole output of the errored 'git spr update' call?

Yes, after linking manually all worked well.
OS: Ubuntu 20.
Which spr_commit_hook depended on the installation method - I mentioned that I tried both brew and deb. So right now I the output is:
/usr/local/bin/spr_commit_hook.
Unfortunately I copied output only until this point:
`git spr update
Trim Trailing Whitespace.............................(no files to check)Skipped
Fix End of Files.....................................(no files to check)Skipped
Check Yaml...........................................(no files to check)Skipped
Check for added large files..........................(no files to check)Skipped
Check that executables have shebangs.................(no files to check)Skipped
Check that scripts with shebangs are executable......(no files to check)Skipped
Check JSON...........................................(no files to check)Skipped
Detect Private Key...................................(no files to check)Skipped
Mixed line ending....................................(no files to check)Skipped
Trim Trailing Whitespace.............................(no files to check)Skipped
Terraform fmt........................................(no files to check)Skipped
Terraform validate...................................(no files to check)Skipped
tflint...............................................(no files to check)Skipped
Shellcheck Bash Linter...............................(no files to check)Skipped
go-revive............................................(no files to check)Skipped
go-fmt...............................................(no files to check)Skipped
Check hooks apply to the repository..................(no files to check)Skipped
Check if CF pipelines pck setting has comment........(no files to check)Skipped
Add ticket from branch to commit message.................................Passed
Run StackedPR message hook...............................................Failed

hook id: spr
exit code: 1

Executable spr_commit_hook not found`

Closing this issue, if it's still a problem, feel free to reopen.


Spot instances over multiple AWS Availability Zones

Hi!
Is there any option to configure the same GitLab Runner agent to use multiple AWS AZ on spot instances?
Thanks

Yes, just provide a subnet for each zone, instances should be started (guess random) over your zones.

In which module attribute should be defined?
The attribute subnet_id_runners is only for one subnet.

I don't think this is possible at the moment: https://docs.gitlab.com/runner/configuration/runner_autoscale_aws/#:~:text=If not specified%2C the availability zone is a%2C it needs to be set to the same availability zone as the specified subnet%2C for example when the zone is eu-west-1b it has to be amazonec2-zone%3Db

As a workaround you could spin up agents in different AZs. It's almost the same.

Also having 2 deployments


Enhance word-list and valid-guesses ...

word-list to have 100 शरद-like words (make sure all these words are consistent with the chosen keyboard design -- it should not happen that a particular word has some letters that are not found on the keyboard).
valid-guesses should be as many as 5000.

For now, I have decided to fix this to have 319 words, but we need to soon fix it.
Also, merged the upstream.


Update user stories and class diagram

Codecov Report

Merging #209 (ab66de3) into master (aad177c) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #209   +/-   ##
=========================================
  Coverage     73.26%   73.26%
  Complexity      584      584
=========================================
  Files            94       94
  Lines          1803     1803
  Branches        232      232
=========================================
  Hits           1321     1321
  Misses          403      403
  Partials         79       79

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 aad177c...ab66de3. Read the comment docs.


python312Packages.google-cloud-automl: 2.13.3 -> 2.13.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python312Packages.google-cloud-automl is: Cloud AutoML API client library
meta.homepage for python312Packages.google-cloud-automl is: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-automl
meta.changelog for python312Packages.google-cloud-automl is: https://github.com/googleapis/google-cloud-python/tree/google-cloud-automl-v2.13.4/packages/google-cloud-automl
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.13.4 with grep in /nix/store/xdqbdmvbblr191yxmm36lf1c0pq6qhmn-python3.12-google-cloud-automl-2.13.4
found 2.13.4 in filename of file in /nix/store/xdqbdmvbblr191yxmm36lf1c0pq6qhmn-python3.12-google-cloud-automl-2.13.4

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

python311Packages.google-cloud-automl
python312Packages.google-cloud-automl

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xdqbdmvbblr191yxmm36lf1c0pq6qhmn-python3.12-google-cloud-automl-2.13.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python312Packages.google-cloud-automl https://github.com/r-ryantm/nixpkgs/archive/a2c69084d984224e045302cab6c4537b8ecfd441.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/a2c69084d984224e045302cab6c4537b8ecfd441#python312Packages.google-cloud-automl

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xdqbdmvbblr191yxmm36lf1c0pq6qhmn-python3.12-google-cloud-automl-2.13.4
ls -la /nix/store/xdqbdmvbblr191yxmm36lf1c0pq6qhmn-python3.12-google-cloud-automl-2.13.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

4 packages built:

python311Packages.google-cloud-automl
python311Packages.google-cloud-automl.dist
python312Packages.google-cloud-automl
python312Packages.google-cloud-automl.dist

Maintainer pings

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

4 packages built:

python311Packages.google-cloud-automl
python311Packages.google-cloud-automl.dist
python312Packages.google-cloud-automl
python312Packages.google-cloud-automl.dist


Failed to restore optimizer state

Hi,
I am facing this issue, could you help me out?
[E common_gpu.cc:44] Found an unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero.
2020-06-03 23:20:14,507 INFO: LICENSE: SOF-VSR is implemented by Longguan Wang. @LongguanWang https://github.com/LongguangWang/SOF-VSR.
2020-06-03 23:20:14,545 INFO: Total params: 1639676
2020-06-03 23:20:14,546 WARNING: trying to restore state for optimizer opt, but failed.
2020-06-03 23:20:14,546 DEBUG: Loading all data into memory.

This is not an error, just a warning that could not found parameters of Adam optimizer.
If you are training from scratch, just ignore it.


[📖] page titles have a non-standard emoji

Suggestion
The emoji between the page title and the tagline is non standard and e.g. Slack renders it as a ? (for example  Welcome to Qwik Tutorials ? Qwik Documentation), and my Linux shows the unknown-character glyph on the Chrome tab title.

the problem only happens in production deployment. in preview urls it's fine

fixed by https://github.com/QwikDev/qwik/pull/6373
The fix was to revert the polyfill for TextEncoderStream to the original one in the repo. The polyfill I used was code directly from Node.js (needed to fix Bun), but this broke the encoding for Cloudflare build/deploys. I also had tests that the old polyfill failed and the test was testing against the real one.
So, we are deploying the docs in preview and production with different settings, which means different deployment configurations for preview and production. However, we still require the old polyfill to work exactly as it did before which means it's not correct.


fix(component): DLT-2121 move all styling to dialtone-css from vue

fix(component): DLT-2121 move all styling to dialtone-css from vue

Obligatory GIF (super important!)

:hammer_and_wrench: Type Of Change

These types will increment the version number on release:

[x] Fix

:book: Jira Ticket
https://dialpad.atlassian.net/browse/DLT-2121
:book: Description
Moved all remaining CSS styling from core components into dialtone-css.
:bulb: Context
We want all our styling in one place
:pencil: Checklist

For all PRs:

[x] I have ensured no private Dialpad links or info are in the code or pull request description (Dialtone is a public repo!).
[x] I have reviewed my changes.
[x] I have added all relevant documentation.
[x] I have considered the performance impact of my change.

For all CSS changes:

[x] I have used design tokens whenever possible.

:crystal_ball: Next Steps
Do the same thing on recipes
BREAKING CHANGE CLASSNAME LIST
We will likely have to do a small find/replace migration to fix code overriding these classes. d-item-layout and d-list-item are the highest risk. I would say usage of any of the others should be rare.
Note if this will also include all sub elements such as d-list-item--focusable
dt-item-layout -> d-item-layout (and all sub elements)
dt-list-item -> d-list-item (and all sub elements)
enter-active -> d-collapsible__enter-active
leave-active -> d-collapsible__leave-active
dt-empty-list-item -> d-combobox__empty-list-item
dt-description-list -> d-description-list
dt-list-separator -> d-list-item-separator
mention-suggestion-name -> d-mention-suggestion__name
dt-suggestion-list__container -> d-suggestion-list__container
dt-rich-text-editor -> d-rich-text-editor
skeleton-placeholder -> d-skeleton-placeholder

Looking into percy issues, a couple small problems found there.

Alright, all remaining issues should be fixed. Also added a blog post for the breaking change since it could affect anyone overriding component classes.

We should move core_scroller styles too, right?

Thanks, moved this as well.


Upload file to S3

Describe the feature
Upload file directly to S3 using a signed method.
https://codesandbox.io/s/vue-formulate-s3-lambda-upload-example-forked-sdigg
https://dev.to/justinschroeder/better-uploads-with-vue-formulate-s3-and-lambda-58b8
https://www.youtube.com/watch?v=shCCP4PFXeU
Describe alternatives
Genomics data are typically large, and uploading files through the backend server will unnecessarily choke the backend API.
Additional context
It is important to secure the API endpoint from malicious uploads.

#46 completed


Public key-based routing

I've proposed https://github.com/lightningnetwork/lightning-rfc/pull/814 on lightning-rfc. Summary:

In today's Lightning Network, routes are described as a series of short channel ids. Routing nodes use these short channel ids to determine to which of its peers an htlc needs to be forwarded.
A great downside is that a short channel id corresponds directly to a channel point on-chain. A channel point reveals the size of the channel and is thereby an indication of the amount of funds that are kept by the channel parties in their node hot wallets.
This PR proposes a new routing mode based on full public keys instead of short channel ids. When nodes signal option_pubkey_routing, they'll also accept a public key in the tlv onion payload to control the outgoing direction of the htlc.

Would the lnd team be open to accepting a PR implementing this for the 0.13 release?
Rough working code below to show areas of impact. Missing is the feature bit and using that to select the routing mode for hop hints during invoice creation.

Something like this would also be really useful in the HTLC interception API as one would basically be able to generate random identifiers for themselves and/or other clients that may be behind them (similar to the hosted channels idea).

Also I think one of the reasons we didn't do this in the past was that with the old onion format the overhead would've been 33*20 bytes while in this case with the new TLV onion the overhead only applies to the final hop, who may already have additional data in the payload (AMP, MPP, keysend, etc).

Something like this would also be really useful in the HTLC interception API as one would basically be able to generate random identifiers for themselves and/or other clients that may be behind them (similar to the hosted channels idea).

The proposal in this PR is to leave out the channel id completely. I think what you're suggesting is a workaround for a world without pubkey routing? The downside is that there needs to be some coordination between routing node and final hop as to which obfuscating mapping for the channel ids is being used.

Also I think one of the reasons we didn't do this in the past was that with the old onion format the overhead would've been 33*20 bytes while in this case with the new TLV onion the overhead only applies to the final hop, who may already have additional data in the payload (AMP, MPP, keysend, etc).

I never questioned really why we didn't do it before, but that reason makes sense for sure.
Small correction: the new TLV onion overhead only applies to the second last hop (and possibly preceding ones for multi-hop hints), not the final one.

Pubkey routing was discussed in yesterday's lightning-dev IRC meeting. One important thing for receivers to be aware of is that senders on an old version are not able to construct hop payloads with the new pubkey field in it. Their invoices are not backwards compatible (at least the hop hint part of it). It would require a new flag on the AddInvoice call to specify whether pubkey-hop hints should be generated or not and perhaps only few users enable to option.
I think that it is better to not zero out the scids in the hop hints, but to populate them with the truncated pubkey of the next hop. Then in the switch forwarding logic implement a three way switch:

pubkey available
scid matches real channel
scid matches truncated pubkey

Routing nodes that signal pubkey routing will also recognize the truncated pubkeys.
That way invoices remain backwards compatible and can be used regardless of the sender version of the node software. Receivers of course still only include new style hop hints for peers that signal support for it.
When a sufficiently large portion of the network has updated, the scid can be removed from the invoice and routing can rely on just the new pubkey tlv field.

Could also be useful if the output index of a batch channel creation ever overflows a uint16 in the future

@joostjager, remember to re-request review from reviewers for your latest update

@joostjager, remember to re-request review from reviewers for your latest update

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready

@joostjager, remember to re-request review from reviewers when ready


Bio Weekly - Incorporate Hybrid Model Metrics into Weekly Metrics Report

This is a list of items to check in the biospecimen metrics report once the hybrid model (research and clinical collections at a single site) is launched at Henry Ford.

[ ] Table 5 - Add Table 5.1 below table 5 for Henry Ford. Title table "Baseline Biospecimen Collection by Collection Setting at Henry Ford Health System". Restrict this table to collections at Henry Ford.
[ ] Table 8 - We need a way to display tubes not collected in a clinical setting for hybrid sites; Should this be a separate table?
[ ] Table 9 - Confirm Henry Ford clinical collections show up in table (table should include all records with a collection setting of "Clinical"). Add "(5)HFH: 2 SST, 1 Heparin, 1 EDTA, 1 ACD" to footnote.
[ ] Table 11 & 12 - In the title, change the word "KP" to "Site". Confirm Henry Ford clinical data is included in table (table should include all records with a collection setting of "Clinical").
[ ] Table 18, 20, 22, & 23 - Confirm Henry Ford clinical data is included in table (table should include all records with a collection setting of "Clinical")
[ ] Figure 1 - Confirm Henry Ford clinical collections show up in table (table should include all records with a collection setting of "Clinical").
[ ] Figure 3 - Add separate trendline for clinical collections

@HopkinsDC Hi Domonique, now that the hybrid settings have launched I've started to adjust the weekly biospec metric code accordingly. But I had some questions.
Table 22 looks at all sites, so HF is already included in this. Is it only meant to be clinical?

I also have some questions on if "Hybrid" will be added to all current biospecimen specimen setting variables, but I'll ask Nicole tomorrow when I meet with her

@KELSEYDOWLING7 Hi Kelsey, Tables 22a and 22b should include clinical records only (I will be adding an issue for a separate table for research soon); with that, Henry Ford should show up when they start receiving clinical specimens.
The collection settings will remain Clinical, Research, and Home. "Hybrid" is a term that describes a site offering both clinical and research collections; Hybrid is not a collection setting type.

Oh ok, thank you for the clarification. I'll update 22a and 22b.
The code is mostly set up so I'll incorporate it once we have participants that fit these requirements (where site=HF and setting=clinical)

@HopkinsDC The one HF hybrid collection is showing! Tables 9, 11, 12, 18, 20, 22, 23 and Figure 1 have this collection accounted for.
I am still working on Table 5.1 and Figure 3. It looks like the participant had all tubes collected, so Table 8.1 won't run for now

Table 8.1 is pending the Dev-Ops fix: hybrid collections  (BL_BioSpm_BloodSetting_v1r0, BL_BioSpm_UrineSetting_v1r0, BL_BioSpm_MWSetting_v1r0) are all coming up as research
Figure 3 Now has the HF Clinical Collection included

Table 10 and 24 can also be adjusted to include HF clinical participants

@HopkinsDC  To clarify- for Table 8 do you just need to make sure hybrid collections are excluded? If so that would already be the case, as the collection setting is set to Research.

@KELSEYDOWLING7 I am meeting with Michelle and Amelia to solidify the checks/changes needed for HFH clinical collections tomorrow. I will update this issue soon after that.

@KELSEYDOWLING7 The following edits are based on 6/26 metrics reports

[ ] Table 6.7 - stratify by research and clinical setting for HFH (see mock-up below)

[ ] Add Table 7.3 that shows the blood draw completeness for Henry Ford's clinical collections by the collection location (BioClin_SiteBlLocation_v1r0 -185243482)

I have to names of the clinics, but I don't know which name goes with which location ID yet, so just use the location ID that HFH pushes to NCI, and I'll update this issue with that info.

The table layout should be the same as Tables 7-7.2.

Title this table "Blood Completeness among Henry Ford Baseline Clinical Collections by Clinic Location"

[ ] Remove Table 8.1 (not the best we to show these data)

[ ] Table 9 - Add a "1-4" column between the "0" and the "5" columns. The "1-4" column should be a cumulative count of blood draws with only 1 to 4 blood tubes collected.

[ ] Figure 3.1 - Remove "Hybrid" trend line (already included in figure 3)

@KELSEYDOWLING7 The following edits are based on 6/26 metrics reports

[ ]  Table 6.7 - stratify by research and clinical setting for HFH (see mock-up below)

[ ]  Add Table 7.3 that shows the blood draw completeness for Henry Ford's clinical collections by the collection location (BioClin_SiteBlLocation_v1r0 -185243482)
I have to names of the clinics, but I don't know which name goes with which location ID yet, so just use the location ID that HFH pushes to NCI, and I'll update this issue with that info.
The table layout should be the same as Tables 7-7.2.
Title this table "Blood Completeness among Henry Ford Baseline Clinical Collections by Clinic Location"
[ ]  Remove Table 8.1 (not the best we to show these data)
[ ]  Table 9 - Add a "1-4" column between the "0" and the "5" columns. The "1-4" column should be a cumulative count of blood draws with only 1 to 4 blood tubes collected.
[ ]  Figure 3.1 - Remove "Hybrid" trend line (already included in figure 3 as the clinical trend line)

@KELSEYDOWLING7 As a follow up, below are HFH's clinic location names and corresponding IDs:

1050010095 = HF Wyandotte Hospital
1060010063 = HF Macomb Medical Pavilion
1040010047 = HF West Bloomfield Hospital

@HopkinsDC
For Table 6.7 how do you want to show those that have no collections? Since they won't fall into either research or clinical
Table 7.3 is set up, but we need more blood draws to run it. Right now all blood draws are complete so it's messing up the structure of the table and throwing error messages
Right now for table 9, the number of flood draws are only showing as 0,5,6,7,8,9,10. There doesn't seem to be any with 1-4

Closing this issue to transitioning to metrics modification template format.


Implement invert method for BaseMapping

The method should return another dictionary with {value: key} pairs.  Add an optional strict (or similar) argument to check whether original values are unique and throw an exception if they are not.

Implemented in the commit above, together with MasterDict class.


setup-courses - course-admin cluster role binding

This PR introduces the creation of a new cluster role binding for
each course, in order to allow course admins (i.e. professors) to access
the VMs of all students. It also removes the legacy course admin role
binding which is no longer useful.

/rebase


Adding isort and black

Thanks, this is a real game changer for me! :)
If I were to customize it for myself, I would add auto-formatting with black and auto-sorting-imports with isort.
Potentially, I would also add https://github.com/python-poetry/poetry or make it obvious somewhere that it should be used.
Oh, and I think some tools (e.g. flake8, pylint) should also appear in requirements.txt ?
Happy to open a PR if you like any of those ideas. :)

First of all, thanks for suggestions and sorry for late response.
Regarding these suggested additions:

Black - Black is good tool if you have hard time being consistent with your formatting or are working in team where everybody has different style, as it forces its opinionated styling. I personally am pretty consistent with formatting and therefore I prefer to not add additional (unnecessary) tool.

isort - Honestly, I haven't heard of it before and I like. That said I'm pretty sure pylint/pep8 will warn you if you have wrong order of imports (library vs. internal).

Poetry - I'm not too familiar with the tool so excuse my ignorance. When it comes to dependency management, i don't see how it would be better than existing solution here. As for the building, packaging, publishing - it seems very nice for the cases when you are building Python packages (whl) and publishing to PyPi. That said, this blueprint uses mainly Docker images and I don't see how it would be beneficial to use Poetry here. Venv does the job just fine.

About the requirements.txt - flake8, pylint... are not in requirements.txt because the application is not dependent on these tools. If they were added to requirements.txt, that would mean that they would be also part of final image which doesn't really make sense. These tools are specifically downloaded in GitHub Actions Jobs, when the checks are ran.


How to carry out channel pruning?

How to prune 4 channels or 8 channels at a time so that the number of reserved channels is a multiple of 4? How can I set up?

@Zx55 Can you help me?

Hi, you can set channel offset here.
You could try to change this function like
def _get_ch_indice(min_width, max_width, width_offset, max_ch, channel_offset=None):
    if channel_offset is None:
        ch_offset = int(width_offset * max_ch / max_width)
    else:
        ch_offset = channel_offset
    # ...

channel_offset

Thank you for your reply. If pruning is carried out in multiples of 4,  will it have a great impact on the accuracy? @Zx55

If pruning is carried out in multiples of 4, will it have a great impact on the accuracy?

No, it won't.

If pruning is carried out in multiples of 4, will it have a great impact on the accuracy?

No, it won't.

I will try it. Thank you very much!!

@Zx55 I change the code like this:
def _get_ch_indice(min_width, max_width, width_offset, max_ch, channel_offset=4):
if channel_offset is None:
print('none')
print(channel_offset)
ch_offset = int(width_offset * max_ch / max_width)
num_offset = int((max_width - min_width) / width_offset + 1e-4)
min_ch = max_ch - (ch_offset * num_offset)
assert min_ch > 0
else:
print(channel_offset)
ch_offset = channel_offset
min_ch = ch_offset
num_offset = int((max_ch - min_ch) / ch_offset + 1e-4)
    indice = []
    for i in range(num_offset + 1):
        indice.append(min_ch + i * ch_offset)

    assert indice[0] == min_ch
    assert indice[-1] == max_ch

    return sorted(list(set(indice)))

But i got the channels like this, There's still something that can't be divided by four，Need your help!! Thx!!!!!!!!


DocFixit: Troubleshooting info for Windows and some minor tweaks

LGTM

The test failure is an incorrect copyright in a proto that this PR did not touch.

Only contains non-executable changes. Merging.


Regression from 8.2: AttributeError: 'Figure' object has no attribute '_mpl_orig_savefig'

I just deployed a new environment; the most recent EOmaps 8.3.1 broke savefig, whereas 8.2 works.
Describe the bug
I can't save a _maps_base class figure.
To Reproduce
from eomaps import Maps
import cartopy.crs as ccrs
import matplotlib.pyplot as plt

fig = plt.figure()
m = Maps(ccrs.PlateCarree(),f=fig)
m.savefig('test.png')
AttributeError: 'Figure' object has no attribute '_mpl_orig_savefig'

Expected behavior
Figure is saved.
General information:
python = 3.12.7 | packaged by conda-forge | (main, Oct  4 2024, 16:05:46) [GCC 13.3.0]
EOmaps = 8.3.
A quick fix :
            if '_mpl_orig_savefig' in dir(self.f):
                self.f._mpl_orig_savefig(*args, **kwargs)
            else:
                self.f.savefig(*args,**kwargs)

It seems to work, but it may have side effects that I'm not aware of yet.

Hey @ocehugo, thanks for reporting the issue!
There seems to be a problem if an explicit Figure object is passed to the initialization of the Maps object
(which is possible, but 99% of the cases not necessary)
Is there a particular reason why you want to pass an explicit Figure object to the initialization of the map?
In general, if you initialize the map without a dedicated figure, all works as expected:
m = Maps()
m.savefig("test.png")

You can then always access the underlying Figure object via m.f

Is there a particular reason why you want to pass an explicit Figure object to the initialization of the map?

Because i declare a custom figure first (e.g. size) instead of modifying a fig postfacto, which is more verbose than passing the object rightly configured. Also, mpl habit...

@ocehugo
OK, in this case, did you know that any additional keyword-argument passed to the initialization of the Maps object is forwarded to the initialization of the underlying figure (e.g. plt.figure())?
So this means you can save yourself 2 lines of code and directly do:
from eomaps import Maps
m = Maps(crs=3057, figsize=(10, 5))

(... and just to be clear...  this is a valid bug and will be fixed in the next release! :-)


fix: Updating UI/UX under app settings

Description
Updating UI/UX under app settings:

Styles for embed settings
Issue with the page slug change
Vertical alignment of toggles
Vertical alignment with input box

PR fixes following issue(s)
Fixes # (issue number)
Type of change

Chore (housekeeping or task changes that don't impact user perception)

Testing
How Has This Been Tested?

[x] Manual
[ ] Jest
[ ] Cypress

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] 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
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/build-deploy-preview

/build-deploy-preview

/build-deploy-preview

/build-deploy-preview

/build-deploy-preview


SuccessStory downloads data from installed games on every startup

Describe the bug
This started about a week ago. There was an update that was supposed to fix it but the problem is still there. I have 71 installed games so it takes a long time during each start up.
To Reproduce
Steps to reproduce the behavior: It happens when Playnite is run for the first time.
Expected behavior
It shouldn't do this every time I turn on my computer.
Screenshots
Attached
Extensions log
extensions.log

I follow also gives me the same problem!

Same, I am pretty sure it's not intended and started happening after the last update.

Mine started before the update. I thought the update would fix it but it didn't do anything.

I also had this issue before update, but it was more sporadic and random, now it's every time I open playnite (auto startup) it will start downloading success story data. So you are correct.

Hello, same for me

I just came here to add that I am also having the exact same issue; it's now happening every single day when Playnite automatically launches at my PC startup.

https://github.com/Lacro59/playnite-successstory-plugin/commit/d040e624715a265dd034e4d97ae03730589c6673