[MISC] Update requirements

Closes issue #53 simplifying the handling of requirements for different python versions in the initialization process.

You are right about Sphinx constraints, I missed them.
I fixed my commit adding:
Sphinx<4.4; python_version <= '3.7'
Sphinx>4.1; python_version > '3.7'

Yes, using Sphinx>4.1 with python_version <= 3.7, it actually breaks.

I also removed the dependency from types-dataclasses for python 3.6 and everything seems fine

Yes, using Sphinx>4.1 with python_version <= 3.7, it actually breaks. Dunno why it didn't happen in the CI workflow.

Could you open an issue about this? I believe it should be investigated...

Yes, using Sphinx>4.1 with python_version <= 3.7, it actually breaks. Dunno why it didn't happen in the CI workflow.

Could you open an issue about this? I believe it should be investigated...

Done


Remove conditons for unfolding inspector sections

Fixes #56225
The condition was supposed to determine if there is a valid property inside the section that can be dropped to, but it was very lacking. A proper condition would be much more complex and would have to handle different edge cases, like nested sub-resources. It could still be implemented in the future (IMO it's not really needed tho), but for now it's better to have the feature work at all. So dragging over a section will now always unfold it, which is intuitive behavior tbh.

Thanks!


Fixed height of messageOptions.

Hello,
this small css modification hopes to fix #25
but im not sure cos looks like really the code is trying to hide the grid header (if the header is correctly  hidden then may be OK to have there those original 50px, but for me the header is visible so i added some px).

What browser are you using? On Chrome on my Mac, this looks too long. I don't know much of CSS or cross-browser design - I don't know if there's something I can do to fix it everywhere.
One fix we can do in the short-term is in messageOptions in the controller, change hideHeader: true to showHeader: false (http://stackoverflow.com/a/27633795/178073)

Many thanks for the link,
i will test it under multiple platforms and let you know if i did any good (while tryin to effectively hide the headers of the relevant tables but keeping the same layout)
Expect new commits from myself in this PR soon (if nobody fixes this before).

After the previous commits in all the OS and browsers that i have tested it looks like:

Seems like the previous modification at c0c37bc is still needed so i didn't revert it.

My browser is still showing:

sorry for the trouble, hope you see it correctly now.


Group number

What does the group number mean, described in task 1?

I'm fairly certain this refers to your homework group's number. So for example our group number is 1, but yours could be 2, 3, 4, or 5.


[Research] Deployment Resource Limits

Determine what are the resource limits per XSK deployment:

https://kubernetes.io/docs/concepts/policy/resource-quotas/
https://kubernetes.io/docs/concepts/policy/limit-range/
https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/

First phase - Deploy

When we deploying XSK we can see that we need almost 800m cpu and around 600-700Mi.
k top pod xsk-f6fc995f9-2cjdx --use-protocol-buffers
NAME                  CPU(cores)   MEMORY(bytes)
xsk-f6fc995f9-2cjdx   792m         626Mi

That's why we can take this and configure resources limit with:
Resource limits:
limits:
  cpu: 800m
  memory: 900Mi

Second Phase - Running

When XSK is deployed we can see that CPU is under 100m and MEMORY is under 900Mi.
k top pod xsk-f6fc995f9-vhd6j --use-protocol-buffers
NAME                  CPU(cores)   MEMORY(bytes)
xsk-f6fc995f9-vhd6j   44m          779Mi

That's why we can configure requests with:
limits:
 cpu: 800m
 memory: 900Mi
requests:
 cpu: 200m
 memory: 700Mi

This resource limits are the same for local deploy and Kyma. This is the minimal limits and when you deploy your application you need to consider what resources need for your application.

Limit range

We can configure limit range, but first check what values you have for node resources. If you have values for node resources like this:

Resource
Requests
Limits

cpu
819m (42%)
3232m (168%)

memory
884096562 (12%)
6564049328 (95%)

You can configure limit range, which will work with XSK.
apiVersion: v1
kind: LimitRange
metadata:
 name: limit-max-min
spec:
 limits:
 - max:
     cpu: 900m
     memory: 1Gi
   min:
     cpu: 200m
     memory: 700Mi
   type: Container

After we configure rate limit we can't set cpu more than 900m and memory 1Gi. If we not using limits we will take default values.

Resource
Min
Max
Default Request

cpu
200m.
900m
900m

memory
700Mi
1Gi.
1Gi

For limit range in Kyma we need to check again the node resources before configure limit range. At this example we can see that can't add this range because insufficient cpu.

Resource
Requests
Limits

cpu
3228m (82%)
13798m (351%)

memory
4246338032 (28%)
19465681348800m (128%)

Constraints for a Namespace

We can use the previous limit range for every different namespace.

Resource quota prevent to create more pods

apiVersion: v1
kind: ResourceQuota
metadata:
 name: pod-examples
spec:
 hard:
   pods: "2"

And if we try to deploy with value 3 for replicaCount
helm install xsk xsk --set replicaCount=3

we will see 2 pods deployed
xsk-f6fc995f9-xrp75   1/1     Running   0          77s
xsk-f6fc995f9-v62g7   1/1     Running   0          80s

@krasimirdermendzhiev thank you for the detailed update! Can you try to run/deploy the products sample application on XSK and examine what are the required CPU and memory to handle:

10 requests/second performed by 1 user (consecutive requests)
100 requests/second performed by 1 user (consecutive requests)
200 requests/second performed by 1 user (consecutive requests)
500 requests/second performed by 1 user (consecutive requests)
1000 requests/second performed by 1 user (consecutive requests)

Where loading the home screen (/services/v4/web/products/webapp/index.html) will result into call to the XSOData service with the following request:

/products/odata/Products.xsodata/Orders?$skip=0&$top=20&$orderby=CustomerName%20asc&$inlinecount=allpages

Also can you perform the study with several users at the same time?
I'm aware that this is more in the are of the following issues, but's also relevant for the resource limits:

https://github.com/SAP/xsk/issues/895
https://github.com/SAP/xsk/issues/494

Tool suitable for executing such performance test could be JMeter

Required CPU and memory for products sample application on XSK

Running Phase - without requestsNAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-lvzvl   66m          821Mi

JMeter

1 User

10 requests/second performed by 1 user (consecutive requests)
(10 requests/second * 60 seconds) = target throughput ( in samples per minute): 600
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-r4djb   73m          982Mi

100 requests/second performed by 1 user (consecutive requests)
(100 requests/second * 60 seconds) = target throughput ( in samples per minute): 6000
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-r4djb   88m         977Mi

200 requests/second performed by 1 user (consecutive requests)
(200 requests/second * 60 seconds) = target throughput ( in samples per minute): 12000
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   101m          991Mi

500 requests/second performed by 1 user (consecutive requests)
(500 requests/second * 60 seconds) = target throughput ( in samples per minute): 30000
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   136m         961Mi

1000 requests/second performed by 1 user (consecutive requests)
(1000 requests/second * 60 seconds) = target throughput ( in samples per minute): 60000
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

5 Users

10 requests/second performed by 5 users (consecutive requests)
  (10 requests/second * 60 seconds) = target throughput ( in samples per minute): 600
  Thread Groups: 5
  number of threads (users): 1
  Ramp-up period (seconds): 0
  Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-r4djb   80m          989Mi

100 requests/second performed by 5 users (consecutive requests)
  (100 requests/second * 60 seconds) = target throughput ( in samples per minute): 6000
  Thread Groups: 5
  number of threads (users): 1
  Ramp-up period (seconds): 0
  Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-r4djb   227m          989Mi

200 requests/second performed by 5 user (consecutive requests)
(200 requests/second * 60 seconds) = target throughput ( in samples per minute): 12000
Thread Groups: 5
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   204m          986Mi

500 requests/second performed by 5 users (consecutive requests)
(500 requests/second * 60 seconds) = target throughput ( in samples per minute): 30000
Thread Groups: 5
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   208m         984Mi

1000 requests/second performed by 5 users (consecutive requests)
(1000 requests/second * 60 seconds) = target throughput ( in samples per minute): 60000
Thread Groups: 5
number of threads (users): 1
Ramp-up period (seconds): 0
Duration: 60

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   171m         985Mi

WRK

1 threads, 50 connections, 60s duration
wrk -t1 -c50 -d60s
Running 1m
  1 threads and 50 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   215.19ms  133.36ms   1.02s    82.88%
    Req/Sec   247.77     77.73   500.00     67.92%
  14575 requests in 1.00m, 13.99MB read
Requests/sec:    242.83
Transfer/sec:    238.69KB

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   102m         958Mi

1 threads, 100 connections, 60s duration
wrk -t1 -c100 -d60s
Running 1m test
  1 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   349.86ms  237.11ms   1.50s    61.01%
    Req/Sec   303.21    118.11     0.88k    74.02%
  17914 requests in 1.00m, 17.20MB read
Requests/sec:    298.47
Transfer/sec:    293.43KB

NAME                   CPU(cores)   MEMORY(bytes)
xsk-576874958c-w8pjc   756m         949Mi

1 threads, 200 connections, 60s duration - XSK on Kyma with node 16 GB RAM
./wrk -t1 -c200 -d60s
Running 1m test
  1 threads and 200 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   186.31ms  205.01ms   1.94s    84.87%
    Req/Sec     1.52k     1.34k    4.01k    63.87%
  86870 requests in 1.00m, 27.47MB read
  Socket errors: connect 0, read 0, write 0, timeout 199
  Non-2xx or 3xx responses: 69201
  Requests/sec:   1445.29
  Transfer/sec:    467.91KB

NAME                   READY   STATUS    RESTARTS   AGE
xsk-576874958c-w8pjc   1/1     Running   0          8h
xsk-576874958c-w8pjc   1/1     OOMKilled 0        8h

I see a significant issue here with pod replicas.
XSK itself is not stateless, and there's no way to tell if deployed application is. As I understand, nothing stops developer from using local temporary files, for example. I hope there are guidelines not to use local file storage for permanent data at least.
It is possible to use ReadWriteMany volume for XSK itself, yet I'm not sure if running two instances over one file structure won't lead to issues. We need at very least to isolate local and shared parts of filesystem hierarchy and attach proper volumes, with proper populating.

Close with https://github.com/SAP/xsk/pull/1800/commits/65fc0ce2455871c4259ac6154ff4de17f21a4388


Activation of tracking only after user consent

Describe the feature
Good morning,
Thanks for this plugin.
I use it on a website in France, a country in which we need to ask the user's consent, via the display of a banner, to trace his navigation on the site.
I was wondering how by default not to activate the tracking and to be able to activate it only if the user clicks on the button of the banner.
Does the plugin allow this?
THANKS.
Additional information

[ ] Would you be willing to help implement this feature?
[ ] Can you think of other implementations of this feature?

Final checks

[X] Check existing issues.

Anyone have a solution to this?

@MrGeminus, @PiotrGrobelak, @Ethan-Hill, @russback, @anirudhge I have added support for manual consent management:
If you want to disable tracking by default, you can set the initialConsent option to false. This will prevent the gtag.js script from loading until the user has consented to tracking.
export default defineNuxtConfig({
  modules: ['nuxt-gtag'],

  gtag: {
    id: 'G-XXXXXXXXXX',
    initialConsent: false
  }
})

To manually manage consent, you can use the useGtagConsent composable to set the consent state, e.g. after the user has accepted your cookie policy.
<script setup lang="ts">
function acceptTracking() {
  useGtagConsent(true)
}
</script>

<template>
  <button @click="acceptTracking">
    Accept Tracking
  </button>
</template>

Available in nuxt-gtag v0.5.0+.

This is great, thank you so much!
I do want to note though, that it is possible for GA4 to do cookie-less tracking. When cookies are rejected, gtag will still send pings to GA4.
However, it doesn't seem possible to first set the consent options of the user, before loading the tag? This means that we first have to load gtag, which sets the cookies, before sending the consent.

Unfortunately for me the   useGtagConsent(true) composable doesn't seem to do anything. I made sure to run it client-side.

@anirudhge You're right, there is indeed a bug. Thanks for sharing!

You're right, working on a fix... Please test again and if an error persists, open another ticket. Thanks!

@johannschopplich thanks for the update. My config looks like this (I am using  my runtime config and .env for the container ID):
gtag: {
  initialConsent: false
}

When I call useGtagConsent(true) when consent is given on button click (or in the layout template if consent has been cookied), I get the following reported from the Google Analytics Debugger Chrome dev tool:
Processing GTAG command: ["config", "G-Z6D9QQFKZ4", ""]
Ignored "config" command. Invalid arguments found.
Expected: "[config, string, plain Object]"Actual:   ["config", "G-Z6D9QQFKZ4", ""]

What format should I be defining here whilst still using .env for the container ID?


MI - Test the 'Installer' with docs

Specially the QSG, tutorials, and the installation guide should be tested with the installer.

done


stdenv: fix crossSystem localSystem comparison

this appears to fix the following issue for some reason
nix-repl> (import ./. { localSystem.system = "x86_64-linux"; crossSystem.system = "x86_64-linux"; }).bash
«derivation /nix/store/5lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv»

nix-repl> (import ./. { localSystem.system = "x86_64-linux"; crossSystem = "x86_64-linux"; }).bash
«derivation /nix/store/1whiq03rsfrmch2ds3jhyqjaczfz97lb-bash-5.2-p15-x86_64-unknown-linux-gnu.drv»

fixed
nix-repl> (import ./. { localSystem.system = "x86_64-linux"; crossSystem = "x86_64-linux"; }).bash
«derivation /nix/store/5lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv»

issue reported by @spikespaz on matrix in the cross compilation channel
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Ohh I did not expect to see this problem in practice, having noticed it only while handling platforms manually and not through the nixpkgs entrypoint, for testing.
I'd discussed a plan to mitigate the problem with @Ericson2314. It's still more of a workaround than a solution, I have to admit.

add a platform equality function to lib.systems
use it in all places where nixpkgs consumers system/platform parameters, so they can be turned into equal platforms, along these lines

# *Platform omitted for brevity
args@{ host, build }:
let inherit (
  # actually this part could be turned into a function
  if systems.equals args.host args.build
  then { inherit (args) host; build = host; }
  else { inherit (args) host build; }
  ) host build;
in
  # use host and build as usual

That way we can keep using regular equality on these types.
What's ugly is that its a bad habit in case you ever have to compare systems between distinct nixpkgs invocations. There's no workaround for that, except to use lib.systems.equals.
I think the real solution is to either
a. make equality break, so that nobody can use it by accident, or
b. remove all functions and put them in lib.systems instead.
But until we decide that, we may as well fix it for 95% of cases by explicitly making the values identical where it matters most.

The issue happens simply when just importing nixpkgs with localSystem.system = "x86_64-linux" or localSystem = "x86_64-linux". Whether or not I specify crossSystem = localSystem makes no difference; I have tried it both ways, traced it through default.nix and top-level/impure.nix and have determined that this would be the default regardless. I don't know why nobody else can confirm this, as the broken example given in the issue description is not as simple as my use.
Perhaps we could fix 100% of the problem by fixing function comparison in Nix?
  intrepid = inputs.nixpkgs.lib.nixosSystem {
    modules = with tree.hosts.intrepid; [
      bootloader
      filesystems
      plymouth
      configuration
      packages
      powerplan
      touchpad
      greeter
      # gamemode
      gaming
      pia-openvpn
    ];
    pkgs = import inputs.nixpkgs-unstable {
      overlays = [
        # flake packages
        self.overlays.default
        # override packages with an unfree license
        self.overlays.allowUnfree
        # other packages
        inputs.slight.overlays.default
        inputs.ragenix.overlays.default
      ];
      localSystem = "x86_64-linux";
      crossSystem = "x86_64-linux";
      config.allowUnfree = true;
    };
    specialArgs = {
      enableUnstableZfs = false;
    };
  };

Perhaps we could fix 100% of the problem by fixing function comparison in Nix?

It's fundamentally unfixable because of undecidability. We should make it throw, but that's a big breaking change.
I suppose we could make equality overridable. That would still take a while to be available in Nixpkgs, fwiw.

error: Neither nixpkgs.hostPlatform nor the legacy option nixpkgs.system has been set.

That shouldn't happen. You've specified pkgs manually, so the options in misc/nixpkgs.nix should be ignored. However, it is set through _module.args.pkgs and not through nixpkgs.pkgs so misc/nixpkgs.nix doesn't know that it should disable its assertions.
I've added a safe alternative read-only nixpkgs module as part of this.

https://github.com/NixOS/nixpkgs/pull/230523

Maybe that should be loaded by nixosSystem/eval-config.nix when pkgs is set, or maybe its behavior should be integrated into the standard module. That's a quite a challenge, not to break existing configs while making subtle changes there, but if we're willing to break the pkgs argument behavior anyway...
For now you could fix your example by setting the nixpkgs.pkgs option instead of the nixosSystem pkgs argument.

For now you could fix your example by setting the nixpkgs.pkgs option instead of the nixosSystem pkgs argument.

This seems to me missing the binary cache, I am rebuilding too many things. Tried both localSystem.system = and localSystem =.

I have cherry-picked the commits from both pull requests, but get infinite recursion. Now when I try to add --show-trace to the command, I see
error: cached failure of attribute 'nixosConfigurations.intrepid.config'

This is happening a lot now and it is very annoying. Sometimes I want to see an error message multiple times. How do I prevent this "cache" error from happening? What does it mean? Why am I seeing it more?

Is it possible that the following lines in impure.nix are responsible for the original problem?
My guess is that the values localSystem and crossSystem are not the same if both are provided, as some other value is used via the confusing default logic.
This is the top of the attrset bound to args:
{ # We put legacy `system` into `localSystem`, if `localSystem` was not passed.
  # If neither is passed, assume we are building packages on the current
  # (build, in GNU Autotools parlance) platform.
  localSystem ? { system = args.system or builtins.currentSystem; }

# These are needed only because nix's `--arg` command-line logic doesn't work
# with unnamed parameters allowed by ...
, system ? localSystem.system
, crossSystem ? localSystem

Perhaps the issue that you "did not expect to see ... in practice" is caused by this confusing evaluation flow.
My tests show otherwise, but I feel as if I am still missing something.
nix-repl> test = args @ { localSystem ? { system = args.system; }, system ? localSystem.system, crossSystem ? localSystem }: { inherit localSystem crossSystem; }

nix-repl> :p test { system = "x86_64-linux"; }
{ crossSystem = { system = "x86_64-linux"; }; localSystem = «repeated»; }

nix-repl> :p test { localSystem = "x86_64-linux"; }
{ crossSystem = "x86_64-linux"; localSystem = "x86_64-linux"; }

nix-repl> :p test { localSystem.system = "x86_64-linux"; }
{ crossSystem = { system = "x86_64-linux"; }; localSystem = «repeated»; }

nix-repl> :p test { localSystem = "x86_64-linux"; crossSystem = "x86_64-linux"; }
{ crossSystem = "x86_64-linux"; localSystem = "x86_64-linux"; }

nix-repl> :p test { localSystem.system = "x86_64-linux"; crossSystem.system = "x86_64-linux"; }
{ crossSystem = { system = "x86_64-linux"; }; localSystem = { system = "x86_64-linux"; }; }

error: cached failure of attribute 'nixosConfigurations.intrepid.config'

Which nix version, and which command is that?
That error should only ever be visible in commands that deal with large quantities of attributes, so this particular error seems like a Nix bug.

Which nix version, and which command is that?

Both nix build and nixos-rebuild produce the same message if invoked twice, the first time resulting in an error code and trace.
Nix version is 2.15.1.

I think the real solution is to either
a. make equality break, so that nobody can use it by accident, or
b. remove all functions and put them in lib.systems instead.

I think these are the only two reasonable solutions.
Does anybody object strongly to (b)?

https://github.com/NixOS/nixpkgs/pull/254763 was merged


chore: prepare the v0.67.0-sumo-0 release

Let's wait with releasing for https://github.com/SumoLogic/sumologic-otel-collector/pull/856


Upgrade ANXS PostgreSQL Ansible role to 1.3

See: https://github.com/quarkslab/irma-ansible/issues/129


Slightly move call to getTransition()

Could be handy to move call to getTransition right after the new url has been added to the history, so we can use currentStatus method in our own method getTransition.
Line 238 of Pjax.js
this.History.add(newUrl);

var transition = Object.create(this.getTransition());

instead of
var transition = Object.create(this.getTransition());

this.History.add(newUrl);

Hi @djules.
Thanks for the issue.
It totally makes sense!
Before implementing it I will just do some tests.
Cheers!

Hi @Djules!
Just implemented this little change.
Build and npm package updated.
Thank you again, have a nice weekend :+1:

Brilliant! Cheers!


fix(common): move the id from u64 to string to support new version of cln

Supported in https://github.com/laanwj/cln4rust/pull/90


Convert quoridor movement action IDs to relative

The original implementation of Quoridor used absolute position numbering for pawn moves, so moving to b3 was always the same action ID, regardless of where the pawn was. This commit changes to using relative action IDs, so moving directly north is always the same action ID, regardless of what square that is moving to.
Fixes #1158

This commit fails the playthrough testing because the action IDs have changed. Still need to update the test scripts.

I think all the tests should now pass and this is ready to be reviewed.

The build failures don't seem to be because of my changes, but let me know if that's not the case.

The build failures don't seem to be because of my changes, but let me know if that's not the case.

Yes I think you're right but I've rerun them twice and they're still happening. Y
You might have to do another push (e.g. add a blank line somewhere, or take one out and then commit + push again... I can always remove it when it gets imported) because it seems to be failing some version check which is likely attached to the specific time you did the last push. I've had to play these games with Github Actions before...

Let me add another question about the actions: is the range compact?
E.g. if there were 8 movement actions then I'd expect they'd be action ids 0 - 7 and then all wall actions would be from 8 to Game::NumDistinctActions() - 1. Is that the case here?

The answer to your last question is "yes". I have five minutes right now, so I'll write something quick and then more later:
If the board is NxN, then the action ID space (before I made any changes) was (2N-1)x(2N-1). Action IDs were mapped into this 2D space (by the obvious mapping) and then interpreted as follows: If both the x and y values are even then it's indicates the pawn position x/2, y/2. If x is odd but y is even, then it indicates a vertical wall whose top half separates squares (x-1)/2,y/2 and (x+1)/2,y/2. If x is even but y is odd it is a horizontal wall, similarly identified. I might have vertical and horizontal flipped.
So x and y both odd are all unused, as is x odd and equal to 2N-3 (because the walls span two squares, they can't start on the last row or column).
I made the minimal change necessary to do relative movements, which didn't change any of that logic. It wouldn't be that hard to change things so that you had a dense mapping of action IDs to possible moves.

Hey @lanctot. Do you want me to work on making the action IDs compact?
Also, the observation tensor also seems less than ideal. It encodes everything in a 2D tensor, where one dimension (call it rows) is the board, linearized, and the other has two columns for each player plus one for the walls. The first column for each player and the wall column indicate whether that player/wall occupies that space, and the second column for each player is the number of walls that player has left to play. Note that the board squares are encoded as described above, where there are really four locations devoted to each board square, indicating the location where a pawn could be, the location to the right where a vertical wall could be, the location below where a horizontal wall could be, and the location diagonally to the right and below where either a vertical or horizontal wall could be.
I realize that the observation space doesn't need to be compact - obviously the AlphaZero encoding used planes where all values were the same to encode certain pieces of game information. However, the current Quoridor encoding has the property that nearby squares on the field are not nearby in the tensor, and also that completely unrelated information (like how many walls a player has vs whether a pawn is in a location) is spatially close. Given the image convolution core of at least the classic AlphaZero architecture, these attributes seem like they would inhibit learning. In addition, since there are four rows devoted to each board square, many entries are always zero (i.e. the vertical wall columns can only be non-zero on rows that represent vertical wall locations or the cross-road).
Some pictures. Imagine a board square (x,y):
+--------+---+
|        |   |
|        | V |
|        |   |
|  Pawn  | W |
|        | a |
|        | l |
|        | l |
|        |   |
+--------+---+
| H Wall | * |
+--------+---+

The board in memory is encoded as follows:

Board memory location [x*2, y*2] records which pawn, if any, is in that square.
Board memory location [x*2+1, y*2] records whether there's a vertical wall between (x,y) and (x+1,y).
Board memory location [x*2, y*2+1] records whether there's a horizontal wall between (x,y) and (x,y+1).
Board memory location [x*2+1, y*2+1] records whether there's either kind of wall that blocks the * area marked above: Walls span two slots - i.e. if there's a wall between (x,y) and (x+1,y), then there also needs to be either a wall between (x,y-1) and (x+1,y-1) or between (x,y+1), (x+1,y+1). If it's the latter, then the * area in (x,y) is blocked, meaning you can't put a horizontal wall through there.

The board memory location is then linearlized, so that each square is a row in the tensor :[i,j] maps to i * board_width * 2 +j. So the section of the tensor relating to square (x,y) looks like this:

+-----------+---------+---------+------+----------+----------+
|     -     | P1 Pawn | P2 Pawn | Wall | P1 Walls | P2 Walls |
+-----------+---------+---------+------+----------+----------+
| [i,j]     |       - |       - |    0 | WC       | WC       |
| [i,j+1]   |       0 |       0 |    - | WC       | WC       |
| ...       |         |         |      |          |          |
| [i+1,j]   |       0 |       0 |    - | WC       | WC       |
| [i+1,j+1] |       0 |       0 |    - | WC       | WC       |
+-----------+---------+---------+------+----------+----------+

Where the zeros are always zero, the dashes are 1.0 if the corresponding wall or pawn occupies that location, and WC is the number of remaining walls left to place for that player (i.e. that column is a constant for every row in the tensor).
I'm happy to keep reworking this game as part of my continuing education, though I also am starting to wonder if the investment is worth it.
Thoughts?

Hi @tacertain, it would be good to have them in a more compact space, yeah.
Agreed on the observation as well. It should be more convnet-friendly, like in Breakthrough / Chess / etc.

I'm happy to keep reworking this game as part of my continuing education, though I also am starting to wonder if the investment is worth it.

Fair enough. I'm also really hammered right now and it's quite difficult to give timely responses at the moment. How about this: I'm happy with the current PR as it fixes the main problem. As long as I understand it (which I likely will once I have time to read the response with the code in front of me), then I'm happy to import it in time for v1.5 release.
Given the other issues (non-compact action space and problems with the observations), I'd be inclined to leave it in the category of games with known issues and then point to this thread. If you want (or anyone else) wants to keep working on it at that point, we can open another PR.
wdyt?

Sounds good. I am going to close this PR and open a new one based on the current head of master and only pushing the first two commits (i.e. not the one that removes it from the games with known issues).


Difference HTML tables

Closes
#140
Files Changed
lib/adf_diag.py - add comparison table html file to website generation
scripts/analysis/amwg_table.py - create new pandas dataframe for difference in mean values from case and baseline
Tests
Ran with model vs model case, example comparison table found at: https://webext.cgd.ucar.edu/FWscHIST/f.c6_3_41d.FWscHIST.ne30_L58_macmic6_dribble.001/atm/ADF/html_table/amwg_table_comp.html

:warning: *** Hold off on merging until observations table is fixed *** :warning:
I need to configure html tables for observation cases; I can update when this PR is ready to go

@nusbaume This has been updated to ignore table comparison for comparing against observation since we aren't generating AMWG table for obs currently.
When you're ready this PR is ready to be reviewed.

@nusbaume I've made some changes if you want to take another look and let me know if we need anything else here.
Thanks!


Moving some statuses to a config.json instead of an hardcoded approach

1 - Regarding #27
2 - Fixing extra trailing backslash bug.
3 - Better error handler
4 - Fixing UNABLE_TO_VERIFY_LEAF_SIGNATURE

@igorescobar Thanks for the PR, code seems fine to me. I will try to test it before or during the weekend :)

@germanrcuriel Nice! Thanks!

just added another change to fix the #26

Tested and working as expected. Thank you :)

:+1:
When the new npm version would be released?

I need to test all the things, I've merged 5 PR for this next release. I hope I'll do it during this weekend.

Use https://github.com/kawamanza/step-up to help you with the changelog ;)

Fixing extra trailing backslash bug.

Just stumbled on this - glad to see it fixed already. :clap:

@dahlbyk thanks ;o)

Thanks for fixing this issue.
I npm'ed jira-cmd today and it didn't work by default. I had to trim the config.json by hand.
You may want to remove "In Review" from a default config.json, since to me it didn't work either, and we haven't customized JIRA configuration at all, to my knowledge. We use hosted JIRA @ atlassian.net.


Though I guess mounting vendor might not make complete sense though i don't think there's anything arch dependent


Discussion: All accents are ordered by usage frequency

This feature makes each key behave differently from what the user might expect.
In the following scenario, take Spanish for example; these three accented letters are used quite often:
é = e+space
á = a+space+space+space
ú = a+space+space+space+space
And these not so much:
à = a+space
û = u+space
I understand the reasoning behind picking this methodology, it works with the LETTER+SPACE tap dance for certain languages; however, it seems incompatible with the international PowerTools appeal.
A possible solution to this problem that doesn't involve creating a way for the User to order each key manually is to offer some variant configurations for different configurations, for example, the Spanish Variant might do something like:
á = a+space
ú = u+space
ü = u+space+space
An so forth.

I agree with @MarioRicalde on this.
The link given in the readme points to the frequency graph of accented characters in the French language. The frequency graph of accented characters will definitely be different for other languages (e.g. Spanish, Danish, German, etc.).
I, therefore, think that making the diacritics sorted uniformly will:

Lead to better predictability of accented characters across multiple languages (as opposed to French and English bilingualism).
Avoid the problem of perceived inconsistency as @MarioRicalde pointed out.
Save the trouble of having to create a variant of the mapping scheme for each possible language.

That is a good idea. It can be an option to add.
It is also why I gave the possibility to reorder them in the settings. Anyway, that still something to do.


23w18a stuff

@Shnupbups Can you reply to these two?
https://github.com/FabricMC/yarn/pull/3563#discussion_r1185117352
https://github.com/FabricMC/yarn/pull/3563#discussion_r1185120065
no problem otherwise.

Java uses codePoint consistently, so we should probably follow that.


Order status history comment field

Having a comment field in order status history is a useful feature that is present in most other popular ecommerce solutions(woocommerce, Magento).

That's a great idea. Many thanks for this, and your other recent contributions, they are sincerely appreciated.
I'll aiming to review and test everything this weekend, with a goal to put out a new release (which is very due).


update token names on authorization doc page

Just a doc update. I must be using a newer version of jekyll because it also updated the html around code and pre tags.
But, the point of this PR is to update the token names. Also, I removed the option to insert the auth fields into the .rb file, since that doesn't seem to be allowed in the current chatterbot (I tried yesterday and got an error).

Thank you!


Namespaced hack for Noticed, and support custom serializers that Noticed uses

Lmk if you have any better ideas, especially for generalizing it. 🤷

Moving to company fork


Handle  tag as per the specification

@TheCBaH, thanks for reporting #28, discussion, and links to parse5 code. After looking at the parse5 code, I realized that it's actually pretty close to the HTML5 spec. Looking more closely at the spec, it turned out that the problem Markup.ml is having in #28 is that it is not following the spec closely enough. So, I propose to make it more compliant in this PR, rather than merging #29 :)
The reason for the deviation is that the spec specifies a parser that constructs an in-memory document tree. By contract, Markup.ml is a streaming parser. One of the things it does is try to guess when elements are closed, so it can emit the `End_element signal with proper location.
The problem in #28 was caused by Markup.ml being too eager with this guessing. It was closing the <body> and <html> elements too early, and closing all their children, causing the observed behavior.
See the included test for the new behavior. I basically took it from the AST you linked to in #28.
Some other notes from the commit message:
An unfortunate side effect of this change is that the parser now always
ignores </html> tags, because the point where it would legitimately
close an <html> element cannot be distinguished from an error. That
would require adding more state or callback parameters, which was not
done in this commmit.

As a result, <html> elements are only closed implicitly by the end of
input. As a further result, the location of the closing </html> tag is
always reported as the location of the end of the input. In other words,
if there is a legitimate </html> tag, its location is not accurately
reported.

Fixes #28.

I didn't look at incorrect </body> elements in this commit. If you have an example input that Markup.ml behaves incorrectly on, please share it :) You're also welcome to submit a PR for that, especially if it makes the parser more compliant (and it's okay if the locations of end signals get messed up for now).


Add "Starts" before dates for future streams to differentiate from past streams

This change only affects streams starting in more than 23 hours (which display dates instead of relative time), bringing some consistency in how future streams are displayed vs past streams by including the (localized) "Starts" prefix for all future streams instead of only near-future ones.
I believe this also works correctly in other languages without looking too strange, but would like verification from experts on that.
Also slightly cleans up formatDistance.
Screenshots (first video in each has the updated behavior):

hmmm, i'm not too sure, but if it looks good to you let's put it in and check it out!


Review/simplify Drupal taxonomies

With the introduction of cross-content search, the current set of Drupal taxonomies may be over-articulated. In addition, at least one legacy set is barely used for being somewhat impractical.
I proposed the most recent revisions two years ago, which Burke then implemented. I now propose a quick but thorough review to see what can be safely stripped away.

[ ] Create four new terms in the Drupal Topics taxonomy: data management, data paper, biodiversity science, phylogenetics
[ ] Edit the current Drupal Topic ’taxonomic research’ to ’taxonomy’
[ ] Delete ‘Mountain biodiversity’ from Drupal Topics taxonomy
Run import against Mendeley records against the following tags from the updated Drupal Topics vocabulary:

Agriculture
Climate change
Conservation
Data management
Data paper
Ecosystem services
Human health
Invasive alien species
Biodiversity science
Phylogenetics
Taxonomy

This is done as part of the literature search.


[Swift] Only apply 'open' to classes and potentially-overridable decls

And don't apply it to anything marked final.
The test here would catch the issue here once the Swift AST verifier is updated to enforce the above conditions, but the AST verifier isn't run after the AST has been manipulated to add open.
No intended user-visible effect.

@swift-ci Please test

@swift-ci Please test

@swift-ci Please test

See also apple/swift#15996


Gateway accepts HTTP traffic on HTTPS ports and vice-versa

Is there an existing issue for this?

[X] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
Whilst looking at #34827, I noticed that the gateway behaves strangely. Despite explicitly requesting HTTPS only for a port, it accepts HTTP traffic, and the same for HTTPS traffic on HTTP ports.
HTTP on port 443:
❯ curl -v --resolve grafana.example.com:80:<IP_ADDRESS> http://grafana.example.com/healthz
* Added grafana.example.com:80:<IP_ADDRESS> to DNS cache
* Hostname grafana.example.com was found in DNS cache
*   Trying <IP_ADDRESS>:80...
* Connected to grafana.example.com (<IP_ADDRESS>) port 80
* using HTTP/1.x
> GET /healthz HTTP/1.1
> Host: grafana.example.com
> User-Agent: curl/8.10.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< cache-control: no-store
< x-content-type-options: nosniff
< x-frame-options: deny
< x-xss-protection: 1; mode=block
< date: Thu, 26 Sep 2024 00:04:37 GMT
< content-length: 2
< content-type: text/plain; charset=utf-8
< x-envoy-upstream-service-time: 0
< server: envoy
<
* Connection #0 to host grafana.example.com left intact
Ok

HTTPS on port 80:
❯ curl -kv --resolve grafana.example.com:80:<IP_ADDRESS> https://grafana.example.com:80/healthz
* Added grafana.example.com:80:<IP_ADDRESS> to DNS cache
* Hostname grafana.example.com was found in DNS cache
*   Trying <IP_ADDRESS>:80...
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / x25519 / RSASSA-PSS
* ALPN: server did not agree on a protocol. Uses default.
* Server certificate:
*  subject: [NONE]
*  start date: Sep 25 23:17:14 2024 GMT
*  expire date: Dec 24 23:17:14 2024 GMT
*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
* Connected to grafana.example.com (<IP_ADDRESS>) port 80
* using HTTP/1.x
> GET /healthz HTTP/1.1
> Host: grafana.example.com:80
> User-Agent: curl/8.10.1
> Accept: */*
>
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 200 OK
< cache-control: no-store
< x-content-type-options: nosniff
< x-frame-options: deny
< x-xss-protection: 1; mode=block
< date: Thu, 26 Sep 2024 00:03:51 GMT
< content-length: 2
< content-type: text/plain; charset=utf-8
< x-envoy-upstream-service-time: 0
< server: envoy
<
* Connection #0 to host grafana.example.com left intact
Ok

How can we reproduce the issue?

Deploy a gateway with HTTPS.

apiVersion: "gateway.networking.k8s.io/v1"
kind:       "Gateway"
metadata: {
	name: "grafana"
	annotations: "cert-manager.io/cluster-issuer": "self-signed-ca"
}
spec: {
	gatewayClassName: "cilium"
	listeners: [{
		name:     "http"
		hostname: "grafana.example.com"
		port:     80
		protocol: "HTTP"
	}, {
		name:     "https"
		hostname: "grafana.example.com"
		port:     443
		protocol: "HTTPS"
		tls: certificateRefs: [{name: "grafana-tls"}]
	}]
}

Try a plain HTTP request on port 443, and try a HTTPS request on port 80.

Cilium Version
v1.16.1
Kernel Version
❯ talosctl cat /proc/version
Linux version 6.6.30-talos (@buildkitsandbox) (gcc (GCC) 13.2.0, GNU ld (GNU Binutils) 2.42) #1 SMP Thu May 16 16:51:28 UTC 2024

Kubernetes Version
v1.30.0
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

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

I hate stale bots so much. How is this helpful? This issue hasn't magically fixed itself.


Doesn't work on server [Forge 47.1.3] [1.20.1]

The mod is installed on both the client and server. While connected to the server, I put the spyglass in the curio slot and used the keybind. When pressing the keybind, nothing happens and the following error is logged to the server console. Everything works fine in singleplayer.
[25Nov2023 18:45:09.989] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:09.991] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.047] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.052] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.098] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.103] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.145] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.150] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.345] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.350] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.392] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.396] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.441] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.444] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.496] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.499] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.545] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER
[25Nov2023 18:45:10.548] [Server thread/ERROR] [net.minecraftforge.fml.loading.RuntimeDistCleaner/DISTXFORM]: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER

I’m very sorry! This bug is due to my serious oversight, and it may take some time to fix it. I hope you can be patient!

Fixed！


column third item gets an extra padding from nothing

i expect column item to start from the same point since i made crossAxisAlignment: CrossAxisAlignment.end (i tried Wrap instead and the same problem happen), but my third item go more to left.

my code:
  class DoctorCard extends StatelessWidget {     final DoctorCardM dc;     const DoctorCard({Key key, this.dc}) : super(key: key);     @override      Widget build(BuildContext context) {        return Card(         shadowColor: Colors.black54,         elevation: 5,         shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)),          margin: EdgeInsets.all(10),         child: Row(            mainAxisAlignment: MainAxisAlignment.end,            children: [             Wrap(               direction: Axis.vertical,               alignment: WrapAlignment.start,               crossAxisAlignment: WrapCrossAlignment.end,               children: [                 Text(                   dc.name,                   style: TextStyle(                       fontSize: 18, fontWeight: FontWeight.w700, height: 1.2),                 ),                 Text(dc.profession,                     style: TextStyle(fontSize: 16, height: 1.3)),                 Text("الكشفية " + dc.ticketPrice.toString() + "دينار",                     style: TextStyle(fontSize: 16, height: 1.3,)),               ],             ),              Container(                margin:                EdgeInsets.only(right: 20, top: 15, bottom: 15, left: 30),                child: ClipRRect(                 borderRadius: BorderRadius.circular(50.0),                 child: Image.network(                   dc.image,                   height: 80.0,                   width: 80.0,                   fit: BoxFit.fill,                 ),               ),             ),           ],         ),       );     }     }      class DoctorCardM{      final String name;      final String profession;      final int ticketPrice;      final double rating;      final String image;      final int visitors;      DoctorCardM({this.name, this.profession, this.ticketPrice, this.rating, this.image, this.visitors});    }
used font:
cairo
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 1.22.6, on Microsoft Windows [Version 10.0.18363.1379], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[√] Android Studio (version 4.0)
[!] VS Code (version 1.53.2)
X Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[√] Connected device (1 available)
! Doctor found issues in 1 category.

Hello @evalsxonted  I ran the code on my machine and it work just fine. Perhaps has to do with the language or something here is the result:

thank you for response @jurej1

this is using flutter default font family. items just dont start from the same point. does this happen because of arabic language? maybe all right   let me provide all text and the imge so u may try it:
DoctorCard(dc: DoctorCardM(                 name: "احمد عبدالعزيز عامر الكبيسي",                 profession: "اخصائي امراض جلدية",                 ticketPrice: 25000,                 rating: 33 / 10,                 image:                 "https://img.collegedekhocdn.com/media/img/careers/doctor-clinic.jpg",                 visitors: 10),),

i solved it,  i thought its because of rlt language (and it was) so i put Card in Directionality with  textDirection: TextDirection.rtl and in Wrap widget i put crossAxisAlignment: WrapCrossAlignment.start, evey thing get in line then.


Include serialization options when sending event message

Summary of the Pull Request
What is this about?
PR Checklist

[ ] Applies to work item: #xxx
[ ] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
What does this include?
Validation Steps Performed
How does someone test & validate?

Validated in check-pr


Refactor of the dynamic provider project to have the core much smalle…

Ok, so this one is quite large, but I hope you like it.
This is what I needed to do to be able to pull in your project into our solution.
It was not possible for us to implement your EF-Core nuget package, since it required us to inherit from your context & baseclass and we don't want to add a nuget package to our shared project that contains our simple objects (POCO)... it just adds too much dependencies which we don't need and want.
This refactor, makes that the core has nothing to do with storing data anymore, it simply doesn't care where the data is coming from or how it looks, as long as it has a store that can return a enumerable of ISchemeDefinition
Our implementation now just has to implement ISchemeDefinition in a simple dummy-class and that dummy class is returned by our own IDynamicProviderStore which only does some very simple conversion from our POCO/storage implemenation to this interfaced object

@csteeg Thanks to contribute. You did a great job, however, I'm not sure your solution works if servers are load balanced and you need to refresh the configuration because you removed PersistentDynamicManager and NoPersistentDynamicManager from the DI. There is no way to notify the configuration changes and reload it.
Did you try to create a POC with a 2 instances of the server, change the configuration on one side and check if it's updated on the other side ?

@aguacongas yes, our system runs on multiple pods also. I use rabbitmq for messaging, but that doesn't matter ofcourse :)... Your admin-project uses SignalR IIRC
On our project we trigger an event when any dynamicprovider change happens (beit a delete, update or add). In the eventhandler on all pods we just do:
            IEnumerable<ISchemeDefinition> items = await dynamicProviderStore.GetSchemeDefinitionsAsync(cancellationToken).ToListAsync().ConfigureAwait(false);
            logger.LogInformation($"Received message that scheme {message.SchemeName} was changed");

            await authenticationSchemeProviderWrapper.InitializeAsync(items, cancellationToken).ConfigureAwait(false);

The InitializeAsync does updates, adds, deletes based on the new items from the dynamicproviderstore.
The event triggering wasn't part of the project before this refactor also right?
I think it would be best to do so actually, I'll add it to your project. The default could then be a null-implementation and people could add it the way the want (like with signalR in your case, rabbitmq in my case)

@csteeg I agree. Also if you can update the sample and readme files as well it'll be great

@csteeg Ho, and add your name in licenses headers of files you changes and add if you want.

@aguacongas will update in a few days time.. bit busy these coming days.. should be friday or saturday

@aguacongas I've added a base eventhandler which should be easy to override on a multiple-container implementation and updated the sample (though had to point the sample to the project files instead of the packages because of the breaking changes)

Sorry about that, forgot to turn off my code-cleanup plugin with my own ruleset


Auto SMS script added

Fixes #83
I have added the script along with the README file containing all the information.

Please have a look and merge my PR

@advaita-saha you are not replying here nor making any changes and if it continues then we will close this PR and assign the issue to other contributors.

I have updated the readme file as requested, sorry for the delay ( I got ill, still recovering )
If any more changes are required, I am happy to update
Please review the PR, and is everything ok merge it @heet-kumar @manisha-27

Hey @advaita-saha  are you still working on this project?
You just need to add a video to your README file, after then your request is good to go.

@manisha-27 I have updated the readme and added the gif
Please review and merge the PR

I have added the dependencies in the readme and also the quick start guide


bugfix for Chinese pipeline related issues

Proposed changes:

set default value of num_threads to 1 (from None)
fix incorrect settings in config_jieba_mitie_sklearn.yml

This PR try to fix #1024
Status (please check what you already did):

[x] made PR ready for code review

Looking, good. thanks a lot :rocket:


Known Issue: Members page - members card > date label on user profile card looks clickable on hover

env: PROD
Test passed.


Abnormal judgment of“{“、"}"、”=“

Abnormal judgment of "{","}" and "=" has been fixed in previous versions, and has appeared since version 1.37.

/needsMoreInfo please provide details of what you mean. Maybe a screen recording, or at least some static screenshots.


HBASE-28599 ADD clone columnFamily and Qualifier logic in Increment m…

Issue Link: https://issues.apache.org/jira/browse/HBASE-28599 (reported by Robin Infant A)
Below is written by Robin Infant A
Issue:
`RowTooBigException` is thrown when a duplicate increment RPC call is attempted.
If the Row size gets bigger, I it should not affect the increment operation.

Expected Behavior:
1. The initial RPC increment call should time out for some reason.
2. The duplicate RPC call should be converted to a GET request and fetch the result that I am trying to increment.
3. The result should contain only the qualifier that I am attempting to increment.

Actual Behavior:
1. The initial RPC increment call timed out, which is expected.
2. The duplicate RPC call is converted to a GET request but fails to clone the qualifier into the GET request.
3. Hence, the GET request attempts to retrieve all qualifiers for the given row and columnfamily, resulting in a `RowTooBigException`.

Steps to Reproduce:
1. Ensure a row with a total value size exceeding `hbase.table.max.rowsize` (default =<PHONE_NUMBER>) exists.
2. Nonce property should be enabled `hbase.client.nonces.enabled` which is actually defaulted to true.
3. Attempt to increment a qualifier against the same row.
4. In my case, I am using a postIncrement co-processor which may cause a delay (longer than the RPC timeout property).
5. A duplicate increment call should be triggered, which tries to get the value rather than increment it.
6. The GET request actually tries to retrieve all the qualifiers for the row, resulting in a `RowTooBigException`

Test Result
When I print out this get object,  there are no Column Family and Column Qualifier information in the second retry.
{"targetReplicaId":-1,"totalColumns":0,"families":{},"priority":-1,"consistency":"STRONG","maxVersions":1,"storeOffset":0,"checkExistenceOnly":false,"storeLimit":-1,"cacheBlocks":true,"row":"row1","timeRange":["0","9223372036854775807"]}

Because logic does not run this while loop,The GET request actually tries to retrieve all the qualifiers for the row, resulting in a RowTooBigException
After applying this change, I found that Column Family and Column Information is synced well and There is no RowTooBigException occurs when Incrementing that row.
{"targetReplicaId":-1,"totalColumns":1,"families":{"cf":["counter"]},"priority":-1,"consistency":"STRONG","maxVersions":1,"storeOffset":0,"checkExistenceOnly":false,"storeLimit":-1,"cacheBlocks":true,"row":"row1","timeRange":["0","9223372036854775807"]}

Sugestion
To resolve this issue I added Column Family and Column Qualifier sync logic to Increment mutation block.
Please review it and let me know if this have any problems. Thank you.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 45s
Docker mode activated.

I have another question.


Moves generative clients to generative-clients directory

Fix #132

Hi.  As part of a large renaming/refactoring effort I did this work, sorry about that, the contribution is appreciated.  I'm not used to community members being so active to send PRs!  Again, thanks and happy holidays.  Any feedback on the changes made is appreciated.


Globally registered variables

Given that the user wants to reuse certain default variables in multiple places, he shouldn't have to always pass them to each translation. Instead there should be a way to register global variables and having the tr-service auto-injecting them to each translation.
// translation
{
   'my.message' : 'this is my __brand__ and this is my __domain__'
}

// usage
data-i18n="my.message"

Done


Unable to login after clicking email link

Message from Etienne:

Hei Team!
I tried to log into the host collective but to no avail.
See what happens on the screenshots below

when I click on the One click login, I end up in the same position as initially

Thanks in advance for your help!
Etienne

Thank you for taking the time to report an issue 🙏
The easier it is for us to reproduce it, the faster we can solve it.
So please try to be as complete as possible when filing your issue.

URL:
Logged in as: (just provide your username or the url of your profile)
Error message if any:
Expected result:
Browser:
Bonus point if you can add a screenshot :-)
Thank you and have a wonderful day/evening!
(and sorry for inconvenience! We'll do our best to solve this ASAP)

What do you want help on? What steps have you taken to isolate the bug thus far?

fixed


release script ought to sensibly clean up if it fails.

Is your feature request related to a problem? Please describe.
If the release.sh fails for some reason, the user needs to manually clean up local branches/tags etc and switch working branch.
If you rerun the script fails as it tries to create branches etc that already exist.  This is a bit of a pain.
Describe the solution you'd like
If the script hasn't reached the stage where it is pushed remotely,  it should clean-up - i.e. delete local branches and tags that its created, and reset the working branch back to original state.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

I agree its painful however I'm not sure cleanup on exit is very helpful for debugging issues etc.
I suspect we want a mechanism to force a reset/clean state on the subsequent run.

I made an improvement as part of #213 that helps.  Git prints the hash of the branches when they are deleted, so you can use that to snoop.


Uninstaller should have option to remove all data

Perhaps behind a prompt, but IMHO we should offer to remove:

all the folder C:\users\xxx.vscode-insiders
all the folder %APPDATA%\Code-Insiders

oftentimes people try to reinstall us if they get in trouble, but that doesn't really do anything since all the settings + extensions + Chrome cache thing (localstorage, etc) are all maintained/left behind

To keep the number of issues in our inbox on a manageable level, we're closing issues that have been on the backlog for a long time but haven't gained traction: We look at the number of votes the issue has received and the number of duplicates issues filed.
Thanks for your understanding. Happy coding!


Make sure CI test results end up in devops

Created an internal support ticket to figure out what's wrong

This is done.


Shorten the project description for search engines

Also improve layout of landing page logos on tiny screens
The project description was too long and search engine cut it. We removed the part describing future, which doesn't show in search results of major search engine anyways.

My preference would be to make separate logical changes in a few PRs. So that a PR is the smallest possible complete change, and other changes have their own PRs.

My preference would be to make separate logical changes in a few PRs. So that a PR is the smallest possible complete change, and other changes have their own PRs.

I mostly agree. Thank you for pointing that out.
I think it's valid to include only vaguely related small fixes, comments, TODOs that we encounter as we make the PR. Otherwise these small improvements probably wouldn't happen at all. Maybe as the project gets to a more mature, stable phase, and/or when there are more contributors, i'd be more into reconsidering this. Happy to discuss this further, preferably not async. 🙂
In this case, it would probably make sense, right. :ok_hand:

I hope one day in the future we'll change it to include also the existence in a greater network of diverse communities.

When we have a better description which still fits ~160 characters, let's change this again! 🙂


can the libretro support the platform arm64?

when I try to build the worker using the flowing :
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build cmd/overworker/main.go
i got an error like this:
build github.com/giongto35/cloud-game/pkg/emulator/libretro/nanoarch: cannot load github.com/giongto35/cloud-game/pkg/emulator/libretro/nanoarch: no Go source files

Hey @ChenRenHu, if you are asking if Libretro supports arm64 then the simple answer is yes.
Now, if you want to compile overworker for this arch (arm64) and run it, as example on Adnroid, then, I'm afraid, it won't be that easy but it's possible. Overlord should compile without any problems right away. The main problem with the worker is the mandatory C code dependency. It won't even compile without CGO_ENABLED=1.
In order to build it (I'm just guessing) you need at least:

install some C cross-compiler with arm support (e.g. gcc-aarch64-linux-gnu);
install and setup all the needed C libs for arm64 arch: opus, opusfile, vpx, h264 (can be removed from the code which is easier than rewrite hardcoded C stuff), etc.;
fix broken CGO linker dependencies and who-know-what errors if any.
Or something like that. I was able to compile it a tad further until missing arm64 libs on my Windows WSL Ubuntu with this:

CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc CC_FOR_TARGE
T=aarch64-linux-gnu go build -v -o ./bin/killme ./cmd/overworker

thx.  I'll try this way.
in reality, I want  to compile overworker  to work on Android, and then capture screen , and monitor
by the browser. ^_^.
thx a lot.

Sounds fun (: For Raspberries it should work, and it seems all the main cores are already (auto) compiled.
Also, I could port your arm64 build script into Github CI auto-builder here (along with Linux, MacOS, Windows builds), which will add to the project pretty soon, if you want it for some reason (:/

I'll probably look in to that later.


add java.lang.reflect.Type to deserialize API

Describe the proposal
As discussed https://github.com/dapr/java-sdk/issues/293 , TypeRef<T> was added to support deserialization of generic types.
However, instances of TypeRef<T> can only be statically (during compilation) created. There are occasions when generic types need to be dynamically created. I suggest adding the following method to deserialize API to support such cases.
<T> T deserialize(byte[] data, java.lang.reflect.Type type) throws IOException

Can you provide an example of a scenario that will not work with the current API?
BTW, this change is not only to the deserialize API, it will also propagate to every method in our API that invoke deserialize() internally. Today, users can also have their own serialization done outside the SDK and send byte[] as input - in those cases, the internal serialization is skipped.

My scenario is that users' code relies on some other API that works with java.lang.reflect.Type. I need to translate it into Dapr's DaprObjectSerializer API.
With current implementation, it's not possible to do the translation - users' code has to rely on dapr-sdk directly, which is not desired.

The default serializer uses java.lang.reflect.Type. See type.getType() in the implementation below. Is this what you need?
  public <T> T deserialize(byte[] content, TypeRef<T> type) throws IOException {
    return deserialize(content, OBJECT_MAPPER.constructType(type.getType()));
  }

The default serializer uses java.lang.reflect.Type. See type.getType() in the implementation below. Is this what you need?
  public <T> T deserialize(byte[] content, TypeRef<T> type) throws IOException {
    return deserialize(content, OBJECT_MAPPER.constructType(type.getType()));
  }

Not what I want. I need the following api.
<T> T deserialize(byte[] data, java.lang.reflect.Type type) throws IOException

All of the Dapr's Java SDK relies on Class or TypeRef. If your code relies on Type directly, it is not just the serializer but also all of the APIs in the SDK. We can add overloaded methods for Type everywhere or we can add a new method in TypeRef to do what you want. In this case, the generic type would be Object since there is no generic type in Type:
  public static TypeRef<Object> get(Type type) {
    return new TypeRef(type) {};
  }

This seems to provide a more concise API than giving two deserialize methods to be implemented by applications. When designing an API we need to be mindful not to make changes with only one app in mind, so I am trying to generalize your ask to keep the SDK relevant to other apps too.

In summary: I am not in favor of adding an overloaded deserialize method with Type as input since it would impact all of the SDK APIs.
The same can be accomplished with adding the new builder method in TypeRef where type is given as input (like in the comment above). This way there is a way to convert between Type and TypeRef back and forth, allowing user code that relies on Type only to still make use of the Dapr SDK. This solution would also not be a breaking change.

Hi @xiazuojie! I hope #449 address this for you. As @artursouza mentioned we opted to put the handling of java.lang.reflect.Type in TypeRef to avoid overloading the DaprObjectSerializer interface and keeping it small.
For anyone following along, one discovery we had was that Java can create an instance of TypeRef<T> even if the parameter does not reference <T>. I assume it does this by inferring it from the type of the variable you are assigning it to. I was surprised this worked so I thought I'd mention here.

Hi @xiazuojie! I hope #449 address this for you. As @artursouza mentioned we opted to put the handling of java.lang.reflect.Type in TypeRef to avoid overloading the DaprObjectSerializer interface and keeping it small.
For anyone following along, one discovery we had was that Java can create an instance of TypeRef<T> even if the parameter does not reference <T>. I assume it does this by inferring it from the type of the variable you are assigning it to. I was surprised this worked so I thought I'd mention here.

closed by #449

closed by #449


feat: impl the Default trait

@Vlad2001MFS thanks for the PR. Plz have a look at the failing tests. Plz don't use default for init with order!

@becheran Wow, I forgot about tests, I am stupid :D
Of course, I will fix tests and restore the old version of the init_with_order! The PR will be updated today or tomorrow.

@Vlad2001MFS sorry for the long delay before merging. I missed the notification that you updated the PR. Thx for fixing.


Consistent loss and acc difference between shadow models and target model

Issue
Problem Description
Consistent loss and acc difference between shadow models and target model during training.
Expected Behavior
For many runs of leakpro, training taget and shadow model from scratch, they should have the same average of loss and acc.
Right now the target model is on average 2-3 % points better than the average of shadow models trained.
What Needs to be Done
Figure out the difference within the training loop, amount of data, what data the target model is trained on etc.
How Can It Be Tested or Reproduced
Run leakpro with retrain=True and train and some shadow models for 6 or more epochs a few times

target model is not using the same indices for multiple runs, opimizer configuration is set correctly. One hint might be that the target model takes <50% of the time for training one epoch


Delete .github/workflows/prettier.yml

Closes #
📑 Description

✅ Checks

[x] My pull request adheres to the code style of this project
[x] My code requires changes to the documentation
[x] I have updated the documentation as required
[x] All the tests have passed

☢ Does this introduce a breaking change?

[ ] Yes
[x] No

ℹ Additional Information

Summary by CodeRabbit

Chores

Removed the GitHub Actions workflow for automated code formatting with Prettier.

@gstraccini codacy bypass


Publishing latest version on npm with node build

https://www.npmjs.com/package/php-wasm
Latest version on npm is 0.0.1-b and there is no build for node. Would love to try this and run php in nodejs.

Hi evromalarkey,
the npmjs package is based on oraoto/pib, not on this branch. So, you must compile (this repository) and add the compiled files by hand.
I just had some fun with PHP in Browser with https://gitlab.com/notdefine/php-wasm-frontend-framework
greeting Thomas

https://www.npmjs.com/package/php-wasm
I've published the latest version which runs PHP 7.4.20. Sorry it took so long, I haven't had much time for this project lately but I should be able to keep an eye on it now.
Let me know how it runs.


Refactor dark mode / light mode

Dark mode and light mode should be able to be driven by the OS -- if the OS is in dark mode, the app should select dark mode.


chore(deps): update common-dev-assets digest to 84f6287

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
65c52f3 -> d106e3b

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox. ⚠ Warning: custom changes will be lost.

This PR has been generated by Renovate Bot.

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


DEVX-2238: Update validation library to reflect install.yml changes

Description
Updated validation logic to reflect recent install.yml changes
See https://wiki.corp.adobe.com/display/AdobeCloudPlatform/App+Builder+Template+Install+Configuration

Related Issue
DEVX-2238

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Did you run lint on the branch?

@AmyJZhao ,
I've added 2 missing semicolons. Now lint doesn't complain.


Replace types-pkg-resources with types-setuptools in mypy pc hook

The Pre-commit CI has been broken for a while now and it seems to be an issue with types-pkg-resources. I noticed that the package was yanked, and will try here to implement the recommendations

[x] Closes #643
[x] Passes pre-commit run --all-files

Ok this did the trick. CI failures are going to be addressed in #646


Transport agnostic kestrel refactoring

What I plan to do as soon as I'm physically capable so this can be quickly merged to unblock people

Get unit tests compiling and passing again
Get performance project compiling and running again
Run perf tests

Possible issues/work items
Quickish fixes

Fix API check (exceptions.json)
Rewrite RequestHeaderLimitsTests "functional" tests to be unit tests or not access Frame
Fix namespaces/folders/class names (rename Microsoft.AspNetCore.Server.Kestrel.Libuv to Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv)
Create Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions project
Add doc comments for new public classes and interfaces
Don't use KestrelTrace class from Libuv project
Re-enable KestrelEventSource

Bigger work items

Move shutdown logic to Core and make it tranport agnostic
Move timeout logic to Core and make it tranport agnostic
Remove the IConnectionInformation.ConnectionControl (helped by above items)
Clean up IConnectionContext methods
Share KestrelThreads (LibuvThreads) between endpoints (will be easier when shutdown logic is moved)
Split transport-specific tests and general tests into distinct test projects
Write managed socket transport to truly test the abstraction

Notes:

The Https project no longer depends on the meta project which contains UseKestrel(). This is a breaking change.

#828

API check LOL 😄

🎉

👏

I ran all the BenchmarkDotNet benchmarks, and the numbers for those stayed very stable before and after the change. This makes sense considering those don't test the integration between the transport and parsing code.
I ran the end-to-end techempower benchmark on 2 F4 linux VMs, and the results were comparable:
Before
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     6.14ms   12.15ms 229.67ms   98.34%
    Req/Sec    16.58k     2.61k   38.33k    85.11%
  Latency Distribution
     50%    4.42ms
     75%    7.07ms
     90%   10.37ms
     99%   24.65ms
  7662062 requests in 14.91s, 0.94GB read
  Socket errors: connect 0, read 0, write 0, timeout 669
Requests/sec: 514007.22
Transfer/sec:     64.71MB
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     5.37ms    4.04ms  54.98ms   74.30%
    Req/Sec    16.58k     2.58k   33.12k    81.80%
  Latency Distribution
     50%    4.42ms
     75%    7.35ms
     90%   10.70ms
     99%   18.41ms
  7859493 requests in 14.91s, 0.97GB read
  Socket errors: connect 0, read 0, write 0, timeout 761
Requests/sec: 527223.63
Transfer/sec:     66.37MB
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     5.38ms    3.90ms  58.41ms   71.52%
    Req/Sec    16.42k     2.19k   46.99k    83.27%
  Latency Distribution
     50%    4.46ms
     75%    7.48ms
     90%   10.75ms
     99%   16.91ms
  7795328 requests in 14.91s, 0.96GB read
  Socket errors: connect 0, read 0, write 0, timeout 765
Requests/sec: 522778.47
Transfer/sec:     65.81MB

After
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     6.25ms   14.37ms 258.17ms   98.51%
    Req/Sec    16.79k    22.40k    1.10M    99.96%
  Latency Distribution
     50%    4.32ms
     75%    6.77ms
     90%    9.99ms
     99%   31.72ms
  7759079 requests in 14.89s, 0.95GB read
  Socket errors: connect 0, read 0, write 0, timeout 767
Requests/sec: 521248.89
Transfer/sec:     65.62MB
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.98ms    3.51ms  69.46ms   73.95%
    Req/Sec    16.70k     2.22k   38.88k    81.03%
  Latency Distribution
     50%    4.34ms
     75%    6.70ms
     90%    9.29ms
     99%   16.65ms
  7924464 requests in 14.91s, 0.97GB read
  Socket errors: connect 0, read 0, write 0, timeout 766
Requests/sec: 531397.56
Transfer/sec:     66.89MB
shalter@f4-linux:~$ wrk -H 'Host: localhost' -H 'Accept: text/plain,text/html;q=0.9,application/xhtml+xml;q=0.9,application/xml;q=0.8,*/*;q=0.7' -H 'Connection: keep-alive' --latency -d 15 -c 256 --timeout 8 -t 32 http ://<IP_ADDRESS>:5000/plaintext -s ~/pipeline.lua -- 16
Running 15s test @ http://<IP_ADDRESS>:5000/plaintext
  32 threads and 256 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     5.34ms    3.89ms  69.39ms   72.32%
    Req/Sec    16.60k     2.50k   43.53k    79.97%
  Latency Distribution
     50%    4.44ms
     75%    7.34ms
     90%   10.64ms
     99%   17.58ms
  7875381 requests in 14.91s, 0.97GB read
  Socket errors: connect 0, read 0, write 0, timeout 767
Requests/sec: 528140.19
Transfer/sec:     66.48MB

👍 🎉


Installation failing

I'm trying to do a fresh install of the plugin and seeing the bellow error. Looking at the contents of the filesystem I'm seeing a discrepancy between the file structure on disk and what is expected by the installation process. I have tree-sitter-gomod-4a65743dbc2bb3094114dd2b43da03c820aa5234 but the process is trying to rename tree-sitter-go-mod-4a65743dbc2bb3094114dd2b43da03c820aa5234
nvim-treesitter[gomod]: Failed to execute the following command:
{
  cmd = "mv",
  opts = {
    args = { "-f", "tree-sitter-gomod-tmp/tree-sitter-go-mod-4a65743dbc2bb3094114dd2b43da03c820aa5234", "tree-sitter-gomod" },
    cwd = "/Users/mark/.local/share/nvim",
    stdio = {
      [2] = <userdata 1>,
      [3] = <userdata 2>
    }
  }
}
mv: rename tree-sitter-gomod-tmp/tree-sitter-go-mod-4a65743dbc2bb3094114dd2b43da03c820aa5234 to tree-sitter-gomod: No such file or directory

Hey! Thanks for the report. I had changed the name of the repo for consistency with the module name, but it seems nvim-treesitter does not successfully follow the redirect. I've reverted the name change, and installing locally works for me again

It's not about following redirects; that works fine. It's about the fact that GitHub's automatically-generated tarballs contain the repository name in the enclosing directory name. If you change the repository name, that messes up build scripts that were expecting a particular enclosing directory name, as was the case here, and anyone who was checking the checksums of those automatically-generated tarballs, as was the case in MacPorts: https://trac.macports.org/ticket/68105

You avoid these problems in the future by publishing manually-generated tarballs (which you can upload to your GitHub releases) so that users don't have to rely on automatically-generated tarballs, which have been the subject of other unexpected changes before.


Fixes a typo on the 404 page

Hello,
There was a simple typo in the 404 page:
It should say "doesn't exist", not "doesn't exists".

Thanks for taking the time to make the fix and submit the PR 👍


Add localization for Chinese

@jenkinsci/code-reviewers Anyone can help me to review this PR, thanks!


Theme doesn't fetch CSS import

For some reason, the theme CSS file doesn't fetch the actual CSS content from the raw.githubusercontent.com link for me, resulting in no rainbow color for the pronoun text (unless the style sheet code is added manually).
However, it seems to work fine when linking to an external CDN (e.g. a GitCDN URL) instead.

Thank you very much for the feedback. I converted the link to a GitCDN, excellent suggestion.
Please advise if that corrects the issue for you.
(I also did a correction for the gradient direction, screenshot also updated to reflect the change)

Yep, it works fine now.


Increase icon size used for taskbar on Windows

We resolved #17 but have a semi-pixelated image for the tray icon on Windows. Let's see what size Windows and OS X need to we can generate a proper sized icon.

To give an ETA on this, I will try implementing this by the end of next weekend.

Upon re-reading the documentation, browserWindow.icon is used exclusively for Windows' window icon. We should be building an application to set the proper icon for the taskbar.
https://github.com/atom/electron/blob/30ec7fdeed715f4a8e234bb2557497081f8d1171/docs/api/browser-window.md
As a result, I am considering this issue blocked until #2 is completed.


Unable to upgrade go dependency to<EMAIL_ADDRESS>

Title: Unable to upgrade go dependency to<EMAIL_ADDRESS>Description:
$ go get<EMAIL_ADDRESS>go: upgraded github.com/envoyproxy/envoy v1.26.2 => v1.31.2
$ go mod tidy
go: finding module for package github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go/pkg/api
go: found github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go/pkg/api in github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go v0.0.0-20230324062628-466cf15f1790
go: foo.ai/go/filters/bar imports
	github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go/pkg/http: ambiguous import: found package github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go/pkg/http in multiple modules:
	github.com/envoyproxy/envoy v1.31.2<EMAIL_ADDRESS>	github.com/envoyproxy/envoy/contrib/golang/filters/http/source/go v0.0.0-20230324062628-466cf15f1790<EMAIL_ADDRESS>

I forgot to update the imports.  :doh:


Use gofork for encoding/asn1 to fix ASN errors during Kerberos authentication

This reverts commit bfff38f6e549a57ac7209f146d3b271ebcf6e044.
Closes #1658

Is there anyone who could help me with fixing the errors on the CI? Locally everything passes. Maybe @bai?

cc @d1egoaz

I've re-run CI and it's working now, I think it was some Github issue

As mentioned in other issues/prs:
I suspect the reason this broke things is because the fork returned its own asn1.ObjectType, which the stdlib marshalled differently, since it was not a stdlib asn1.ObjectType.
To re-apply this patch, you would need to do asn1.ObjectType(gssapi.OIN(....

Alternatively, since this is marshalling a constant slice, the result of the marshal could just be hardcoded into place ([6 9 42 134 72 134 247 18 1 2 2])


What is the todo in validate_payload()

What are the todo and special actions in validate_payload() supposed to be? Are they to deal with the 'multipleof' problem of jsonschema check?
https://github.com/mobilityhouse/ocpp/blob/75dd91fb80f34c401365061e90db9907a9faac33/ocpp/messages.py#L118-L124
Besides, I am not sure if it is proper to ask this question here, if not, please feel free to delete this issue.
Thank you.

Hello @pagetable
Nice catch! Here is a comment I found in our internal code base related to this issue:
# These 3 schedules have fields of type floats. The JSON schema defines
# a certain precision for these fields of 1 decimal. A value of 21.4 is
# valid, whereas a value if 4.11 is not.
#
# The problem is that Python's internal representation of 21.4 might
# have more than 1 decimal. It might be 21.399999999999995. This would
# make the validation fail, although the payload is correct. This is a
# known issue with jsonschemas, see:
# https://github.com/Julian/jsonschema/issues/247
#
# This issue can be fixed by using a different parser for floats than
# the default one that is used.
#
# Both the schema and the payload must be parsed using the different
# parser for floats.

I will implement it soon.


Uncaught TypeError: Path must be a string. Received undefined

[Enter steps to reproduce below:]

modify a file
try to upload folder using Command Palette instead of context menu

Atom Version: 1.4.3
System: Mac OS X 10.11.3
Thrown From: atom-sync package, v0.6.0
Stack Trace
Uncaught TypeError: Path must be a string. Received undefined
At path.js:8

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:8:11)
    at Object.posix.normalize (path.js:448:3)
    at Object.module.exports.ServiceController.onSync (/Users/cento/.atom/packages/atom-sync/lib/controller/service-controller.coffee:34:20)
    at atom-workspace.subscriptions.add.atom.commands.add.atom-sync:upload-directory (/Users/cento/.atom/packages/atom-sync/lib/atom-sync.coffee:22:25)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at CommandPaletteView.module.exports.CommandPaletteView.confirmed (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/command-palette/lib/command-palette-view.js:183:32)
    at CommandPaletteView.module.exports.SelectListView.confirmSelection (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:338:21)
    at space-pen-div.atom.commands.add.core:confirm (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-space-pen-views/lib/select-list-view.js:109:19)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:536:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:359:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:97:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)

Commands
     -1:31 editor:indent-selected-rows (atom-text-editor.editor.is-focused)
     -1:26.5.0 core:move-up (atom-text-editor.editor.is-focused)
  5x -1:26.1.0 core:move-down (atom-text-editor.editor.is-focused)
  2x -1:23.9.0 editor:indent-selected-rows (atom-text-editor.editor.is-focused)
     -1:20.4.0 core:move-up (atom-text-editor.editor.is-focused)
  3x -1:19.4.0 core:select-up (atom-text-editor.editor.is-focused)
     -1:18.2.0 core:select-left (atom-text-editor.editor.is-focused)
     -1:17.5.0 editor:indent-selected-rows (atom-text-editor.editor.is-focused)
     -1:13.4.0 core:save (atom-text-editor.editor.is-focused)
     -0:57 editor:newline (atom-text-editor.editor.is-focused)
     -0:54.1.0 core:save (atom-text-editor.editor.is-focused)
  2x -0:25.5.0 terminal-plus:toggle (atom-text-editor.editor.is-focused)
     -0:04.9.0 command-palette:toggle (textarea.)
     -0:03.2.0 core:move-down (atom-text-editor.editor.mini.is-focused)
     -0:01.4.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:01.4.0 atom-sync:upload-directory (textarea.)

Config
{
  "core": {
    "customFileTypes": {
      "source.cpp": [
        "h"
      ]
    },
    "disabledPackages": [
      "compare-files",
      "autocomplete-css",
      "autocomplete-html",
      "language-clojure",
      "language-csharp",
      "language-go",
      "language-html",
      "language-java",
      "language-javascript",
      "language-mustache",
      "language-objective-c",
      "language-perl",
      "language-php",
      "language-python",
      "language-ruby",
      "language-ruby-on-rails",
      "language-sass",
      "language-sql",
      "language-toml",
      "language-xml",
      "language-yaml",
      "metrics",
      "remote-sync"
    ],
    "projectHome": "/Users/cento/Desktop/Devel",
    "themes": [
      "atom-dark-ui",
      "solarized-dark-syntax"
    ]
  }
}

Installed Packages
# User
atom-sync, v0.6.0
autocomplete-clang, v0.8.9
build, v0.54.1
clipboard-history, v0.6.6
file-icons, v1.6.14
file-watcher, v0.4.0
highlight-line, v0.11.1
minimap, v4.19.0
minimap-autohide, v0.10.1
open-recent, v5.0.0
remote-atom, v1.3.9
symbols-tree-view, v0.11.0
sync-settings, v0.6.0
term3, v0.21.0
terminal-plus, v0.14.5
time-status, v1.1.2

# Dev
No dev packages

Have the same issue. Any workaround or solution?

The issue appears to stem from https://github.com/dingjie/atom-sync/blob/master/lib/atom-sync.coffee, specficially how paths get resolved in line 40/41.
getSelectedPath: (target) ->
        (if ($ target).is 'span' then $ target else ($ target).find 'span')?.attr 'data-path'

If span is not found -- which it will not be when we are not using tree view -- it returns nothing.  It looks to me like this needs to be changed to alternatively look for a file in the current buffer if we choose to upload a file from the command palette.  I'm not sure about the behaviour of the upload directory in the command palette: would it be just the directory where the file is sitting?  If so, looks to me like there needs to be another command palette option to sync up to the root folder.
In any case, if our gracious host doesn't get to this soon, I can see if I can get a pull request going, but I am quite busy (crunch work time) and have little experience with CoffeeScript, although it looks to me like a solution should be relatively simple to cobble.

For now I've forked the repo fixing the problem; as I know 0 CoffeeScript, and Javascript is mostly on an off-and-on basis, this is surely inefficient, but it fixes the problem.  As a result, holding off on a pull request right this moment, but it does appear to fix the problem as best as short time could.  Diff is here:
https://github.com/dingjie/atom-sync/compare/master...dpavlic:master

Merged patch from dpavlic, thx!


could not find application file: ranch.app

I'm doing the basic example of the documentation, and I'm getting the following error

iex -S mix
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
** (Mix) Could not start application ranch: could not find application file: ranch.app

my project: https://github.com/rafaelvicio/elixirrest
elixir -v
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
Elixir 1.6.4 (compiled with OTP 19)

https://github.com/rafaelvicio/elixirrest/pull/1
just made this pr to init the project


Any suggestions on how to use confd as library

Would it be possible to embed confd and use it as a library to use some of it features? It would be nice to leverage some of the configuration templating features without having to ship a separate confd binary.

You could try but it wasn't made for that use case. I don't even know where you should start if you want to make it a library. You can start looking from here
https://github.com/kelseyhightower/confd/blob/f288e72608e4916dee0a24cd544521f84d968bc2/resource/template/resource.go#L336-L355 and analyze the codebase along the way.


Add expiry for data collection

In order not to have sites collect data indefintely, an expiry column should lbe added to the table, indicating when to stop collecting data. E.g. defaulting to 3 months and having some way to get a reminder when the data collection is about to expire. Either on email, or shown somewhere on the frontend, ie VRM or Grafana.

@dirkjanfaber Do we want to add expiry in a general way for all types of monitored Venus devices (manual, UPNP, and VRM) or only the VRM type? I'd obviously work on it in a way to make it general and working for all types, but from what I understand the main priority for the current deployment is the VRM type... correct?

Sorry for the late response, but the VRM type is indeed the most important. If it can work in a general way for all types, that would of course be ideal.