CredentialTypeRepository with it's content

Fixes #401

It's a good idea to open an issue first for discussion.

[ x] Tests pass

Hi David, thanks for your feedback. Here some reactions from my side. First, I will add copyright and documentation. Then a reaction on your comments:

Third, as an overall comment, what's the point of having DrivingLicense be a subclass of CredentialType? I don't think any of this subclassing was part of the design in https://github.com/google/identity-credential/issues/401#issuecomment-1809096815 ...

This part was totally left open in the design, there wasn't any decision on it. So I used a similar approach as the original classes that should be replaced by this change (document/Request*.kt in the reader). The advantage of this approach is that each field is accessible more or less like an enum. This avoids the usage of string literals in code that builds up an mdoc for example. In the proposal with the Builder, the data can be used only passively, to interpret a concrete instance of a document, but not actively, to build it up.
>     .addAttribute(
>       identifier = "aamva_domestic_driving_privileges",
>       type = CredentialAttributeType.CBOR,
>       display_name = "AAMVA Domestic Driving Privileges",
>       mdoc_namespace = AAMVA_NAMESPACE,
>       mdoc_data_element = "domestic_driving_privileges"
>     )

What is the advantage of building the W3C VC and mdoc types together, whilst they are stored as separate objects? Moreover, in the example of the of the aamva_domestic_driving_privileges, the type in case of the mDL is CredentialAttributeType.CBOR, but in case of the VC driving license it is CredentialAttributeType.JSON.

What is the advantage of building the W3C VC and mdoc types together, whilst they are stored as separate objects?

I don't understand this question. The fact is that we want them to be stored as separate objects b/c that way they're easier to use on the application side (in the wallet and the reader). Another fact is that we want to make it as simple as possible to define the Driving License type. Clearly, it's simple if we just have a single place to add information for all three types (our generic type, the mdoc type, and the VC type). If we didn't have this, there's a big risk that you forget to add to one of them.

Moreover, in the example of the of the aamva_domestic_driving_privileges, the type in case of the mDL is CredentialAttributeType.CBOR, but in case of the VC driving license it is CredentialAttributeType.JSON.

Aha, so, I actually didn't have .CBOR or .JSON as original credential attribute types, I think that's something you added 😄 ... and upon reflecting on it, I think you pointed out yourself just now that maybe that isn't such a good idea. In fact, CredentialAttributeType should be something that isn't tied to a specific credential format and the only real purpose of this type is for our self-signed flow so we know how to build the UI.
So I think if we go with the following type
enum class CredentialAttributeType {
    STRING,
    NUMBER,
    DATE,
    DATE_TIME,
    PICTURE,
    BOOLEAN
}

as I originally suggested then it'll work just fine. I also think the original contribution should consider ranges meaning CredentialAttributeType should probably be an interface or class and we can have code like the following (in pseudo-code):
    .addAttribute(
      identifier = "sex",
      type = CredentialAttributeType.IntegerOptions([
          IntegerOption(0, "Not Known"),
          IntegerOption(1, "Male"),
          IntegerOption(2, "Female"),
          IntegerOption(9, "Not applicable"),
        ]),
      display_name = "Sex",
      description = "mDL holder’s sex using values as defined in ISO/IEC 5218.",
      mdoc_namespace = MDL_NAMESPACE,
    )
    .addAttribute(
      identifier = "eye_colour",
      type = CredentialAttributeType.StringOptions([
          StringOption("black", "Black"),
          StringOption("blue", "Blue"),
          [...]
        ]),
      display_name = "Eye color",
      description = "mDL holder’s eye color.",
      mdoc_namespace = MDL_NAMESPACE,
    )

This way the "add self-signed" flow can generate helpful UI with e.g. dropdowns for select "Eye color" and "Sex", something we don't have right now!
Finally - and I realize this is a big ask - I think this PR should also contain code for actually using it in our "add self-signed" flow for generating the UI. I think this is helpful to do as it'll help inform what kind of features we need in the API!

I did just a commit, with an implementation according to what you described yesterday. In what you wrote today there is a solution for value ranges, but still not for complex types.
My proposal is to change CredentialAttributeType.CBOR and CredentialAttributeType.JSON to CredentialAttributeType.ComplexType(typeName: String, array: Boolean) (the other options of CredentialAttributeType are not ok). The childs of the complex type could be found using the typeName. An example of typeName is "DomesticDrivingPrivilege" and the child elements are

DomesticDrivingPrivilege.domestic_vehicle_class
DomesticDrivingPrivilege.domestic_vehicle_restrictions
DomesticDrivingPrivilege.domestic_vehicle_endorsements


Slow host to GPU transfer with device_put

Description
I've observed very slow host-to-gpu transfer speeds. I'm using the following benchmark script, which you may enjoy at your leisure.
import os
import argparse
import time

os.environ["TF_CPP_MIN_LOG_LEVEL"] = "0"
os.environ["TF_STDERR_MIN_LOG_LEVEL"] = "0"
os.environ["TF_XLA_FLAGS"] = "--vmodule=gpu_transfer_manager=3"

import jax

import numpy as np

# A100 and tpu v4 are on 64GB/s PCI busses (16GB/s/chip), H100 and TPU-v5  are on 128GB/s (I think?) (32GB/s/chip for the TPU),
PCI_BUS_SPEED = 64 * 10**9
NUM_GIGABYTES = 10
DTYPE = np.float32

jax.device_put(jax.numpy.array(0)).delete()  # warmup pjit

def benchmark_transfer(pci_bandwidth=PCI_BUS_SPEED, num_gigabytes=NUM_GIGABYTES, dtype=DTYPE):
    denom = np.finfo(dtype).bits // 8
    candidate_array = np.arange(num_gigabytes * 1000 * 10**6 // denom, dtype=dtype)
    array_size = candidate_array.itemsize * candidate_array.size
    print(f"array created with size {array_size / 10**9:.2f}GB")

    for _ in range(5):
        t = time.time()
        on_device = jax.device_put(candidate_array)
        on_device.block_until_ready()
        duration = time.time() - t

        transfer_speed = array_size / duration
        print(
            f"transfer time {duration:.2f}s, transfer rate {transfer_speed / 10**9:.2f}GB/s, pci bus utilization {transfer_speed/pci_bandwidth:.1%}"
        )
        on_device.delete()

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--pci_bandwidth", type=float, default=PCI_BUS_SPEED, help="PCI bus speed in bytes per second")
    parser.add_argument("--num_gigabytes", type=int, default=NUM_GIGABYTES, help="Number of gigabytes to transfer")
    parser.add_argument("--dtype", type=str, default=DTYPE, help="Data type of the array")
    args = parser.parse_args()

    benchmark_transfer(args.pci_bandwidth, args.num_gigabytes, args.dtype)

On my A100 system it generates the following output.
2024-03-13 05:39:41.827859: I external/xla/xla/pjrt/pjrt_c_api_client.cc:137] PjRtCApiClient created.
2024-03-13 05:39:41.939174: I external/xla/xla/stream_executor/cuda/cuda_dnn.cc:517] Loaded cuDNN version 8907
array created with size 10.00GB
transfer time 18.10s, transfer rate 0.55GB/s, pci bus utilization 0.9%

Please let me know if I'm doing something wrong (likely) or if this to be expected! Many thanks for your assistance and time.
Zac
Update: modified the script to rerun the transfer several times.
System info (python version, jaxlib version, accelerator, etc.)
jax:    0.4.25
jaxlib: 0.4.25
numpy:  1.26.4
python: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]
jax.devices (1 total, 1 local): [cuda(id=0)]
process_count: 1
platform: uname_result(system='Linux', node='zacgpu', release='6.5.0-1014-gcp', version='#14~22.04.1-Ubuntu SMP Sat Feb 10 04:57:00 UTC 2024', machine='x86_64')

$ nvidia-smi
Tue Mar 12 22:22:19 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08              Driver Version: 545.23.08    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A100-SXM4-80GB          Off | 00000000:00:05.0 Off |                    0 |
| N/A   35C    P0              61W / 400W |    429MiB / 81920MiB |      0%      Default |
|                                         |                      |             Disabled |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A    562519      C   python                                      416MiB |
+---------------------------------------------------------------------------------------+

import os
import argparse
import time

os.environ["TF_CPP_MIN_LOG_LEVEL"] = "0"
os.environ["TF_STDERR_MIN_LOG_LEVEL"] = "0"
os.environ["TF_XLA_FLAGS"] = "--vmodule=gpu_transfer_manager=3"

import jax

import numpy as np

# A100 and tpu v4 are on 64GB/s PCI busses (16GB/s/chip), H100 and TPU-v5  are on 128GB/s (I think?) (32GB/s/chip for the TPU),
PCI_BUS_SPEED = 32 * 10**9
NUM_GIGABYTES = 10
DTYPE = np.float32

jax.device_put(jax.numpy.array(0)).delete()  # warmup pjit

def benchmark_transfer(pci_bandwidth=PCI_BUS_SPEED, num_gigabytes=NUM_GIGABYTES, dtype=DTYPE):
    denom = np.finfo(dtype).bits // 8
    candidate_array = np.arange(num_gigabytes * 1000 * 10**6 // denom, dtype=dtype)
    array_size = candidate_array.itemsize * candidate_array.size
    print(f"array created with size {array_size / 10**9:.2f}GB")

    def t():
        t = time.time()
        on_device = jax.device_put(candidate_array)
        on_device.block_until_ready()
        duration = time.time() - t

        transfer_speed = array_size / duration
        print(
        f"transfer time {duration:.2f}s, transfer rate {transfer_speed / 10**9:.2f}GB/s, pci bus utilization {transfer_speed/pci_bandwidth:.1%}"
        )
        on_device.delete()
    t()
    t()
    t()

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--pci_bandwidth", type=float, default=PCI_BUS_SPEED, help="PCI bus speed in bytes per second")
    parser.add_argument("--num_gigabytes", type=int, default=NUM_GIGABYTES, help="Number of gigabytes to transfer")
    parser.add_argument("--dtype", type=str, default=DTYPE, help="Data type of the array")
    args = parser.parse_args()

    benchmark_transfer(args.pci_bandwidth, args.num_gigabytes, args.dtype)

Can you try this script?
The first call is slower then others as JAX is compiling. So you must discard it.
Also, on A100, you have half the perf you expected as your number is the sum on both direction.
Here is the output I'm having on V100, so the PCI ratio isn't the right one as it should be lower.
2024-03-13 16:23:50.370963: I external/xla/xla/service/dump.cc:507] HloModule dump enabled with path prefix: , suffix: before_optimizations
mp
2024-03-13 16:23:54.283633: I external/xla/xla/stream_executor/cuda/cuda_dnn.cc:517] Loaded cuDNN version 8907
array created with size 10.00GB
transfer time 11.06s, transfer rate 0.90GB/s, pci bus utilization 2.8%
transfer time 2.75s, transfer rate 3.64GB/s, pci bus utilization 11.4%
transfer time 2.76s, transfer rate 3.63GB/s, pci bus utilization 11.3%

That would still be only 22% efficient for V100.
When I run under nsys, I see the comm is split into many part. I'm not sure if this is CUDA or XLA that trigger this behavoir.
Are you only looking to understand or you need to speed this up?

I think this may have regressed in 0.4.25. Try 0.4.24? (Both jax and jaxlib.)

@nouiz
When I run this repeatedly there is a slight speedup
2024-03-13 18:31:36.445516: I external/xla/xla/pjrt/pjrt_c_api_client.cc:137] PjRtCApiClient created.
2024-03-13 18:31:36.555472: I external/xla/xla/stream_executor/cuda/cuda_dnn.cc:517] Loaded cuDNN version 8907
array created with size 10.00GB
transfer time 18.06s, transfer rate 0.55GB/s, pci bus utilization 0.9%
transfer time 4.96s, transfer rate 2.02GB/s, pci bus utilization 3.2%
transfer time 4.97s, transfer rate 2.01GB/s, pci bus utilization 3.1%
transfer time 4.94s, transfer rate 2.02GB/s, pci bus utilization 3.2%
transfer time 4.96s, transfer rate 2.02GB/s, pci bus utilization 3.2%

3% is still unacceptable. However, for the development cycle I will often need to load a checkpoint at the start, and if that is slow then it slows everything down. Even if it is due to compilation, Jax should not require 15 seconds to compile a simple host to device transfer.
@hawkinsp under jax 0.4.24 it's a hair better, but nothing to write home about
2024-03-13 18:37:21.249077: I external/xla/xla/pjrt/pjrt_c_api_client.cc:137] PjRtCApiClient created.
2024-03-13 18:37:21.433903: I external/xla/xla/stream_executor/cuda/cuda_dnn.cc:469] Loaded cuDNN version 8907
array created with size 10.00GB
transfer time 16.09s, transfer rate 0.62GB/s, pci bus utilization 1.0%
transfer time 2.90s, transfer rate 3.44GB/s, pci bus utilization 5.4%
transfer time 2.89s, transfer rate 3.46GB/s, pci bus utilization 5.4%
transfer time 2.92s, transfer rate 3.43GB/s, pci bus utilization 5.4%
transfer time 2.89s, transfer rate 3.46GB/s, pci bus utilization 5.4%

https://github.com/openxla/xla/pull/10528 will revert to the 0.4.24 speeds, which is something.

@ZacCranko Did you fix the expected speed as discussed at https://github.com/google/jax/issues/20209#issuecomment-1995011832 ?
I can take another look when the PR is merged.

https://github.com/openxla/xla/pull/10629 should fix this issue, although I think we can do better still (next week!)


Create the voters table

As a user, I can request a list of voters alphabetized by last name.

As a user, I can request a single voter's information.

As a user, I can create a voter.

As a user, I can update a voter's email.

As a user, I can delete a voter.

Integrated under: commit 7fe06be2c31ca5752d56babd7487394bde754950 .


[sub-issue] CRw: Alternate texts of Messages & Icons are missing

The icons are not read by screenreaders.
==> Use ARIA "labelledby" or a hidden text.
If you use ARIA check it out with the screen reader NVDA http://www.nvaccess.org/download/
The Symbols are:

Success
Information
Warning
Error

Main issue #340

As for #275, this depends on the case and should be left for the developer to decide. I've added info about this on the page.


[CINFRA-220] No-Op state machine

Scope & Purpose
This adds a black-hole (noop) state machine. This is only for testing and will be replaced by a more complex state machine later. This allows independent parts of the replicated state framework to be tested, without waiting for complex state machine.

dump_no_envelope is completely unreleated.


Support jest InlineSnapshot

Is this a bug report?
No, it's a feature request.
I am trying to make use of jest inline snapshots, however, they do not seem to be available in the version of jest shipped with CRA (jest@20.0.4). I tried updating/installing the latest version of jest (currently @23.6) and I get a conflict.
TypeError: environment.teardown is not a function
Research shows that you cannot install jest on top of an app bootstrapped by CRA. Is there plans on updating jest or are there workarounds which will allow me to use snapshots (w/o ejecting)? Thanks in advance!

We're shipping a 2.x beta very soon (today?) which bumps Jest to latest.
cc @Timer

That is correct! Check back in a few hours @cliff76!

Awesome! Yeah, I see the new version announcement! (Perfect timing!!) However, I still wish we could customize sourcemaps per my other issue.

Understandable. It's a bit of an edge use case though. If I were you I'd probably fork react-scripts, did that change there, and then rebased my fork whenever I wanted to update.


Implicit type conversion from Real to Int differs between branch statements

Godot version:
faa49c1
Issue description:
Reals with integral values seem to be implicitly converted to int for comparisons in if blocks, but not with match blocks.  This probably also affects 3.0.x, but I haven't tested it.
Steps to reproduce:
Using parse_json() to produce TYPE_REAL values that match whole number values.
enum matchType { A,B,C }
var chunk = parse_json("[0,1,2]")

func _ready():
	match chunk[0]:
		matchType.A:
			print ("This should be the proper response.")
		0:
			print("This should also work, but short-circuiting failed?")
		_:
			print("This shouldn't happen.", matchType.A)

	if chunk[0] == 0:  print("Implicit conversion to int works with Ifs, though.")

Workaround:  Explicitly cast match value to Int, where applicable.

CC @karroffel

match does a check if the types are equal before comparing the values, this has to be done in order to prevent errors. With numbers there could probably be a hackaround so that real and integer values can be compared as well.
I see the inconsistency with if, but technically this is "more correct" since JSON only deals with real numbers, even if they are written like integers, and since match does a type aware comparison it's expected to fail since the types don't match.
I guess it can be worked around, but I'm not sure if that's the best way to go. I think casting float(matchType.A) should do the trick, or casting the value to match on int(chunk[0]).
I guess this has to be discussed how pedantic we want to be with typing.

in any case, changing the consistency of if to that of match would be more likely break compatibility than the other way around;  although I believe it's "more correct" to not do the implicit type conversion, I wouldn't have caught this since the code worked with if originally and the debug console didn't give any indication on cursory glance that the values I was receiving were TYPE_REAL since they appeared as whole numbers.  This is covered in the docs for parse_json(), but the type conversion behavior of the different branch statements isn't.

Found this behavior too, someone got trapped by this, it's quite confusing https://github.com/godotengine/godot/issues/21210

By this test
func test_type():
    var data = [1, 2, 3]
    var parsed = parse_json(to_json(data))
    assert_eq(typeof(data[0]), typeof(parsed[0]))

Failed. int became to read (float)
res://test/unit/test_save_data.gd
  - test_type
     FAILED:  [2] expected to equal [3]:
      at line 14

I think some of follows are needed.

should not change type by parse_json
or should show like '1.0' not just '1' in debug watcher  (or show type).

@dala00 the case of JSON is expected. In JSON, numbers are all double.


Hints from owl statues

Owl statue text could be changed to give hints about item locations. The owl statue locations are:

Woods of Winter, next to Mystery Tree
D2, outside Dodongo
Under Floodgate Keeper's house
D3, in boss key room
D3, in a trampoline room
D3, outside Omuai
D4, in Shrouded Stalfos room
D4, in bridge room
D5, outside Armos room
D7, outside first Poe room
D7, near boss key room
D8, in "silent watch" room
D8, before Frypolar
D8, in ice block room

This was implemented in 3.4.0.


Aquasec v0 draft for review STO-6355

Previews:

Aqua Security scanner reference
STO release notes > Latest: Version 1.75

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65650b21b957fc2edb98e71b--harness-developer.netlify.app


Add a license to storex-hub

I'm assuming that storex-hub would have a similar license to [storex] (i.e. MIT) but having that ratified and:

added to package.json
present in a LICENSE file
flagged in repository settings

would be killer.

Duplicate of #10


It would be nice to be able to change the commit message

Please review previous closed issues before filling out a new one! Duplicate issues will be closed without comment.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
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 like the way things are now.


Update ARCHS4 reference matrix version

https://github.com/MaayanLab/biojupies-plugins/commit/87cab7b3a412382d30f2dfa097730f38bb1b9e10


README - query and auth

It's not clear to me why the plugin example needs updating this way. Perhaps you did not encounter docs/index.md which powers the main superagent website and documentation?

I think it's an essential example and it should be in README.md (at least query).

Query example seems like a good thing to add.
While we're at it, could we have an example with some realistic values, not "foo" and "some-url"?

@pornel I updated this PR.

Great! thank you


YTmusic playback fails "get_throttling_function_name: could not find match for multiple"

What version of Music Assistant has the issue?
2.0.7
What version of the Home Assistant Integration have you got installed?
2024.6.2
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
When trying to play any music from youtube music, an error pops-up with the message "get_throttling_function_name: could not find match for multiple"
How to reproduce
Try playing a track or playlist or album
Music Providers
youtube music
Player Providers
Chromecast speaker
Full log output
log.txt
Additional information
No response
What version of Home Assistant Core are your running
2024.7.2
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

Found a relevant bug report upstream on pytube's repo: pytube issue 1750
They propose a working solution:

In cipher.py locate:
    r'a\.[a-zA-Z]\s*&&\s*\([a-z]\s*=\s*a\.get\("n"\)\)\s*&&.*?\|\|\s*([a-z]+)',
    r'\([a-z]\s*=\s*([a-zA-Z0-9$]+)(\[\d+\])?\([a-z]\)',

And replace by:
    r'a\.[a-zA-Z]\s*&&\s*\([a-z]\s*=\s*a\.get\("n"\)\)\s*&&.*?\|\|\s*([a-z]+)',
    r'\([a-z]\s*=\s*([a-zA-Z0-9$]+)(\[\d+\])\([a-z]\)',

And they also suggest transitioning to pytubefix, although this might introduce breaking changes (I haven't read much about this one)

The good news is that I completely rewritten the code that relies on pytube and replaced it with something much more stable. The bad news is that it'll be included in 2.1, so you'll have to wait for the release. We're in the final stages of testing so it shouldn't be too far away

THANK YOU! This setup is way more stable than YTubeMusic Player was which was way better than Google's own app for Google speakers. 🤯

Is this code in any branch?

Is this code in any branch?

It's included in the 2.1.0rc3

@hundredfire please confirm this has been fixed in 2.1.0rc3

Hello! I can confirm everything works in 2.1.0rc3
On a possibly unrelated note, does this new implementation as alternative of pytube uses significantly more resource? I had some issues after trying to install the beta version. HAOS became totally unresponsive on my raspberry pi 4B and I had to do a full wipe to test it on a brand new installation. I was using an old microSD card tbh, so this might be completely unrelated. (I've reinstalled on an SSD and am restoring from backups now)


Group some NPM dependency updates

Summary
Group some npm dependencies that should be upgraded together (e.g. all vite or monaco dependencies)
Test Plan
I validate the configuration with renovate-config-validator

Thanks!


MCS-1829 Fixed integration tests failing due to recent changes.

Corresponding Unity PR: https://github.com/NextCenturyCorporation/ai2thor/pull/331
Not sure why these are working on development, but not my branch, but they were easy to fix.

@rartiss55 I'm wondering if maybe the addressables didn't download fully the first time you ran the tests, but then they were downloaded correctly for your second pass? I feel like that happens to me sometimes... Well, I guess we'll see what Jenkins has to say!


Add support for Pip 22.2.2.

Pex can now support multiple Pip versions and be configured to fallback
as needed when newer Pip does not support a specified interpreter.
Fixes #1805

Lots of plumbing in this one that I found no obvious way to break up. I'll add pointers to the non-plumbing bits of interest.

A final apology in advance. This is largish and sprawling. The plumbing tendrils for the new pip-version go pretty wide and deep.

And I'll respond to any feedback from Windows. Wish me luck.


Refactor Scroll widget to have ScrollBar widgets

On Discord, a discussion about how interactive widgets overrode the scrollbar events made me re-test how Firefox's automatic hiding scrollbars work. Their bars are always interactive above the content.
Additionally, when thinking about the data grid widget (#178), that widget will need to have scrollbars that behave the same as the Scroll widget.
To make this work, the Scroll widget should be refactored into using individual widgets for its scroll bars. These widgets can be drawn after the contents, and this will ensure that they receive mouse events at a higher priority than the scroll contents.

Additionally the Firefox scrollbars look a bit nicer -- they have a very small amount of padding around the thumb and render an opaque background when visible. They also still show the little triangles, although they're nearly unusable given how small they are.


[WFCORE-293] : Add EAP 6.2 and 6.3 to versions tested in core-model-test.

Updating wildfly-legacy-test version.
Updating transformers for new versions.
Fixing some legacy transformers issues
Jira: https://issues.jboss.org/browse/WFCORE-293

Linux Build 1241 is now running using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc

Core - Full Integration Build 505 is now running using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc

Windows Build 927 is now running using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc

Core - Full Integration Build 505 outcome was FAILURE using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc
Summary: Exit code 1 (new) Build time: 0:01:15
Build problems:
Process exited with code 1

Windows Build 927 outcome was FAILURE using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc
Summary: Tests passed: 2097, ignored: 75; exit code 1 (new) Build time: 0:03:18
Build problems:
Process exited with code 1

Linux Build 1241 outcome was FAILURE using a merge of 1a9b2b0734723bbc30d950f36d5b75dbd8d442fc
Summary: Tests passed: 2097, ignored: 75; exit code 1 (new) Build time: 0:03:21
Build problems:
Process exited with code 1

Windows Build 929 is now running using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3

Core - Full Integration Build 507 is now running using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3

Linux Build 1243 is now running using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3

Core - Full Integration Build 507 outcome was FAILURE using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3
Summary: Exit code 1 Build time: 0:01:07
Build problems:
Process exited with code 1

Linux Build 1243 outcome was FAILURE using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3
Summary: Tests passed: 2097, ignored: 75; exit code 1 Build time: 0:02:26
Build problems:
Process exited with code 1

Windows Build 929 outcome was FAILURE using a merge of e845175aa1dadd05661012aa76f5c1d51a11f9f3
Summary: Tests passed: 2097, ignored: 75; exit code 1 Build time: 0:03:02
Build problems:
Process exited with code 1

Linux Build 1244 is now running using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45

Core - Full Integration Build 508 is now running using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45

Windows Build 930 is now running using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45

Windows Build 930 outcome was SUCCESS using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45
Summary: Tests passed: 3046, ignored: 95 Build time: 0:18:34

Linux Build 1244 outcome was SUCCESS using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45
Summary: Tests passed: 3046, ignored: 95 Build time: 0:18:49

Core - Full Integration Build 508 outcome was SUCCESS using a merge of 970c93494a3219ca402b0217ddcb3a540c945b45
Summary: Tests passed: 2859, ignored: 381 Build time: 0:48:28

I had to revert this as the 1.0.0.Alpha5 release was broken:
https://github.com/wildfly/wildfly-legacy-test/blob/1.0.0.Alpha5/spi/interfaces/src/main/java/org/wildfly/legacy/test/spi/Version.java#L29
I tried to whip together an Alpha6 to fix it, but it won't build, as it seems to need a non-existent WildFly core Alpha19.


[CMS-627] Throw composer exception if composer commands set fails.

It runs every command in the current set of packages and then fails if there have been any errors.

Sample output:
  [InvalidArgumentException]
  Could not find a matching version of package frdh/mmenu.js. Check the package spelling, your version constraint and that the package is available in a stability which matches your minimum-stability (stable).

require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--update-no-dev] [-w|--update-with-dependencies] [-W|--update-with-all-dependencies] [--with-dependencies] [--with-all-dependencies] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...

 [error]  There have been errors adding composer packages, please review previous messages.


Issue with default IR sensor intrinsics at different resolutions (bug)

I have observed that when running the IR camera in VGA (IR mode 5), the resolution is 640x480. The default camera intrinsics at this resolution seem reasonable to me (image center is at the center of the image, and the focal length calculation in astra_device looks correct)
When I switch to XVGA (IR mode 1), I observe that the resolution scales (factor of 2), plus there is an additional section of pixels (64 pixels high) at the bottom of the IR image containing extra information (i.e., these pixels are also being captured by the CMOS sensor, but not included in the VGA image). This suggests that the image is being trimmed at VGA resolution. Do the default camera intrinsics account for this?
If they do account for this, then the default intrinsics for XVGA must be wrong, since the sensor and field of view do not change, yet the height of the image changes asymmetrically! This results in the focal length at XVGA not being twice the focal length at VGA (as it should, provided that the default intrinsics are correct at VGA resolution)
Clearly, this is a bug with the default intrinsics calculations (either for VGA, XVGA, or both)
Could some clarity be provided concerning the camera sensor? Specifically, I need to know the following:

Is the IR stream reporting the vertical field of view of the CMOS sensor, or is it reporting a modified vertical field of view that accounts for the trimmed VGA image?

Is the VGA image trimmed symmetrically? (i.e., XVGA image indicates that there is at least 32 pixels of information not included in the bottom of the VGA image. Is there also a 32-pixel section removed from the top of the VGA image?) The image center being reported in both VGA and XVGA modes indicates this to be the case, but I wanted to verify.

Once I know this information, I can issue a pull request for astra_device to correctly report the resolution at VGA/XVGA

Also, I examined the fields of view being reported (vertical fov is being used in default intrinsics calcs)
Regardless of IR mode, the vertical field of view is reported as 0.796618 radians. Horizontal field of view is 1.0226 radians. Provided that pixels are square (default intrinsics suggest this is expected), then the following should be true:
tan(vFOV/2) / tan(hFOV) = 0.75
In reality, the value is about 0.78, suggesting that either the focal lengths in x and y are different (pixels are not square) or that the FOVs are incorrect

Curious -- what was the resolution to this?

XVGA is 1024x768


Auto-importing in current package stopped working when we changed our directory structure with python code in a folder.

Environment data

Language Server version: v2022.10.30
OS and version: Mac OS 12.6 (21G115) running on M1
Python version (& distribution if applicable, e.g. Anaconda): Python 3.9.13

Code Snippet
Auto-importing broke for relative imports (completely fine for dependent packages).
Our directory structure was originally just
src/
  __init__.py

Now we changed it to:
pipeline/
  src/
     __init__.py

The relevant settings file I tried adding all combinations of this:
  "python.analysis.extraPaths": ["pipeline", "pipeline/src"],
  "python.autoComplete.extraPaths": ["pipeline", "pipeline/src"]

For example, two files:
constants.py
DATA_DIR = os.path.abspath('data')

source.py
print(DATA_DIR) # Here I try to control + space but it cannot resolve the import.

But unfortunately nothing seems to get it to work. I get "No suggestions" when importing symbols from the current package. If I manually import, the import works fine at runtime.

Hi there! Can you try setting your folder into the include setting?
"python.analysis.include": [
        "pipeline/src"
    ],

Can you provide us some logs as described in the troubleshooting guide?
that way we can see more detail.

Apologies for the back and forth! This combination ultimately worked (and no subset of it)
  "python.analysis.extraPaths": ["pipeline", "pipeline/src"],
  "python.autoComplete.extraPaths": ["pipeline", "pipeline/src"],
  "python.analysis.include": ["pipeline/src"]

"python.autoComplete.extraPaths" shouldn't be needed. it is old setting for "python.analysis.extraPaths"

@nsthorat by the way, symbols from user files are not automatically included in auto import. it will be in "add import" (the lightbulb) but not auto import unless it is already used by another open files transitively.

That’s great to know, thank you for all the help!

by the way, even without "python.analysis.include", add import should just work. we recommended "python.analysis.include" assuming you only want files inside of that to be considered as user files. but regardless of that, add import should work even without it.
thank you.


MWDi is accepting all operation key

When user tried to send any API request from MWDI with any operation key value, request is getting successfull which is not correct.

To enable the parsing of operation keys it is necessary to uncomment in the index.js file the openApiValidator.
There is an issue #366 which reports a problem in the validation process of the control constructs.
We're waiting for a fix in the yaml file to generate a nodejs server api that allow us to enable the openApiValidator otherwise all the responses from all the APIs will fail.

Issue fixed disabling the validation of the control constructs

Issue verified and closed in test_v1.1.3


Add whitespace for MYSQL compatibility.

This is currently failing for us as MYSQL tries to execute this line as SQL.

@clrcrl would appreciate it if you take a look!

In MySQL, the --  (double-dash) comment style requires the second dash to be followed by at least one whitespace or control character (such as a space, tab, newline, and so on).

https://dev.mysql.com/doc/refman/8.0/en/comments.html


ArgumentError: (array RequestOptions.errorMessages) Expected values to be of type string but received type null

Describe the bug
ArgumentError: (array RequestOptions.errorMessages) Expected values to be of type string but received type null
To Reproduce
sqlite json field
{"id":"KBXoZCDAj5e6ZbO","url":"xxxxxxxxx","uniqueKey":"xxxxxxxxx","method":"GET","noRetry":false,"retryCount":1,"errorMessages":[null],"headers":{},"userData":{"page":1}}
Expected behavior
process exit
System information:

OS: WIN11
Node.js version 14
Apify SDK version 2.3

Can you provide a reproduction? I mean some code, what you provided is an invalid state, we need to understand how you got to that state.
@metalwarrior665 any idea how this could happen? We could ignore null values there, but that would be more of a workaround than a fix I guess.

Maybe the user created an Error object and then set the message property to null or some library did this? I never saw this.

I remove this sqlite file,and it not happen again.
`
//departStore is a lmdb instance
const crawler = new Apify.CheerioCrawler({
maxConcurrency: 100,
minConcurrency: 10,
// Let the crawler fetch URLs from our list.
requestQueue,
    maxRequestRetries: 10000,
    // This function will be called for each URL to crawl.
    // It accepts a single parameter, which is an object with options as:
    // https://sdk.apify.com/docs/typedefs/cheerio-crawler-options#handlepagefunction
    // We use for demonstration only 2 of them:
    // - request: an instance of the Request class with information such as URL and HTTP method
    // - $: the cheerio object containing parsed HTML
    handlePageFunction: async ({ request, $ }) => {
        log.debug(`Processing ${request.url} `);
        log.info(JSON.stringify(await requestQueue.getInfo()));

        let allLinks = await RingoTools.extract.extractAllUrls($, request.loadedUrl);
        let firstPageUrl = request.url;
        if (request.url.includes("?")) {
            firstPageUrl = request.url.split("?")[0];
        }
        let header = await RingoTools.extract.extractAttrByCss($, ["text"], ".z-header");
        let links = allLinks.filter(link => link.startsWith(firstPageUrl + "?first_id="));
        if (header.length === 0) {
            throw new Error("no header info" + request.url);
        }
        if (request.userData && request.userData.type === "first") {
            for (let i = 0; i < links.length; i++) {
                await requestQueue.addRequest({ url: links[i], userData: { type: "list" } });
            }
        }

        let detailLinks = allLinks.filter(link => link.startsWith("http://3g"));
        let hospitalId = firstPageUrl.replace("http://3g", "").replace("-1.htm", "");
        departStore.putSync(request.url, { hospitalId, detailLinks, html: $.html() });
    },

    // This function is called if the page processing failed more than maxRequestRetries+1 times.
    handleFailedRequestFunction: async ({ request }) => {
        await requestQueue.reclaimRequest(request);
    }
});

`


fix: convert the array to list in download instructions

thanks to @oohtmeel1 for reporting the error.
This PR fixes #92 by correcting the download instructions in the README.md file

Thank you!


docker2podman: skip some role imports from handler

when running docker-to-podman playbook, there's no need to call
ceph-config and ceph-rgw from the role ceph-handler.
It can even have side effects when coming from a baremetal cluster that
was previously migrated using the switch-to-containers playbook. Indeed
it might complain about missing .target systemd unit since they are
removed during that migration.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1944999
Signed-off-by: Guillaume Abrioux<EMAIL_ADDRESS>

jenkins test centos-non_container-switch_to_containers


Popup not showing in angular5

My app has multiple modules. In the main module I imported the module as
JasperoConfirmationsModule.forRoot()
and added
<jaspero-confirmations></jaspero-confirmations> in the app.component.html.
I created the popup in a component from another module as
this._confirmation.create('Confirm!', 'Are you sure you want to delete this?')
       .subscribe(res => {

         console.log(res);

       }, err => {

         console.log(err);

       });

.But nothing happened. I added breakpoint. Then hoovering mouse over the 'res' it shows

'Unexpected end of Input'

. No error in the console.

Hi @rahulkr7010,
Can you try to create a plunker with the error reproduced, please?

Its a large project.Unable to create project .Sorry.  I imported module in the app.module.ts and  given in the app.component.html. I import the service and create function called in another component in another module. So do you think multiple module is the reason for this issue?

No, that shouldn't be the case. We use this library in a number of our projects structured like that. Are you importing the module in any other of your project modules? Are you adding the service in any of the providers?

No.

I have created a stackblitz pls check https://stackblitz.com/edit/angular-4pa4x4?file=app/another-module/another.module.ts

Hmm, is that stackblitz working for you, it isn't running for me?

Its working Now. But I dosen't work in my project. Now I am closing this issue. Probably its my fault. Let me check again.

My pleasure, sorry you're experiencing this.


Community Fork Time!

Context
It's been 4 months since this has seen any activity from a maintainer AFAIK, and I have multiple projects that depend on this.
I don't know about other users, but I think I'm getting to the point where I'd rather we made a community fork than just wait for the docs to come up again/some of the issues be resolved.
I say we, as I've never run an open source project and frankly don't have a clue what I'd be doing with it, but I can probably make some time to help out.
Expected Behavior
The project should be maintained, docs should be available some communication between users and maintainers would also be good. AFAIK The slack is down, the blog is down and the project is increasingly "rotting on the vine".
Actual Behavior
It's been dead since for ~ 4 months.
Possible Fix
Members of the community make a fork - organise and get to work.
(I assume this is what you wanted? @jneves )

I agree -- this project is too big to fail.  Zappa has been an amazing project and I want to see it live on and prosper!

Jazzband could be an option ( and/or a model to glean from ): https://jazzband.co/about/guidelines

Zappa is amazing. Anyone know of any alternatives if this dies out?

https://github.com/aws/chalice/ is one alternative, but hoping development continues on Zappa (i'll contribute).

Yeah, I hope development will continue too. Our whole backend uses Zappa. I heard Chalice is not as good, especially when it comes to logging. Zappa's tail function is legendary, keeps me from having to manually go through Cloudwatch for logs.
Thank you for contributing!

The problem with chalice is that you can't take advantage of all the flask community and plugins.  Chalice is good for simple projects or ones where you need tight AWS integration.  Zappa is more powerful because you can take advantage of the flask community and plugins.

I haven't really contributed to open-source much but would love to help support this, I have lots of projects that use this as a backbone and have started to dive deeper into the source code to better understand how it works.
serverless is an alternative that's been suggested to me, but I really can't imagine porting all my teams applications to another project at this point, and there are some pretty neat bells and whistles that zappa provides that I've started to use as building blocks for some cool patterns (looking at you remote async lambda invocation).
Anyway, hope this can be continued here and would totally be willing to work on some issues! Huge thanks to everyone who's kept it going this far!

I was fortunate in that I was only a few months into using Zappa when I realized that the project had stalled. I was also concerned about the overall code quality and coherence.
These led me down a path to implement mostly equivalent functionality here:
https://github.com/ebridges/lgw
Would love to hear any feedback on that.
Cheers

So this was copied from the original issue at https://github.com/Miserlou/Zappa/issues/2173 , so I guess we now have a  community fork.  Who can merge/commit?  https://github.com/orgs/zappa/people shows no public members.  I have a small PR to contribute, wondering how best to proceed.

@MerreM how do you want to proceed with management of this repository?

@hortonew I don't know, I thtink I've managed to contribute maybe 2 lines  to open source software thus far over my career, but I'm eager to help out, if I can.
I didn't open this repo, but I believe @jneves did...
If there's still radio silence, we should make a fork and start divvying up the work.
Rehost the docs, organise pull requests, get a slack up and running  etc.

I would be happy to contribute!

@jneves do you own this repository / are you able to coordinate anything here?  Can we get more clarity about whether this project IS the community fork?  It looks like people (myself included) are willing to donate effort here, but if we don't get clarity on how to move forward then eventually then interest will fade or we'll be discussing forking the fork..
Some of the work to do is clear, like slack/rehosting docs was mentioned, probably CI with github actions?  But if people start filling up this project with issue-descriptions and PRs, can they have the reasonable expectation that any of this is going to get traction?

Hey, I'm organizing a webinar on Serverless frameworks and I want to have a special one on Zappa. I tried contacting @jneves and @Miserlou to no avail, it looks like everyone disappeared. Two questions:

Any way of getting in touch with these people?
Is there anyone here who wants to participate in the webinar, talking about Zappa --> sounds like a good chance to rally the developers in putting this wonderful framework back on its feet.

I am in a similar position. I have several Django projects for which Zappa has been a perfect deployment solution. In my view it  uniquely serves a purpose that the the other frameworks discussed above (Chalice and Serverless) do not (and will not try to).
Similar to some other commenters here my technical competence in this area is a bit shallow but if there is anything I can do, I will.

Right - I've started developing on https://github.com/MerreM/Zappa as and when I get the time.
Send me pull requests!
Message me on here for the link to the slack - I'm going to need help.

https://join.slack.com/t/zappagroup/shared_invite/zt-ludx5h93-khGw664m9I5hlm1EXvhlEg
https://zappagroup.slack.com
AnyoneEveryone invited - please help!

For anyone else who considers clicking the above slack links posted by @MerreM. They appear to be shut down.

Closing this, as a team of contributors is back to supporting the zappa project

@hellno so should we now assume that this repository/org is the canonical one for zappa, and that pull requests will be considered/merged? is it realistic to try and contribute changes now, or are the new maintainers finding their footing and busy handling the existing backlog of PRs (~30 at the time of this post)


[AR-1869] Switch devicemapper driver from loop-lvm mode to direct-lvm mode.

Whoops :)   Meant to pull request into my own repo.


Team Week 4 - FRQ 1

FRQ

[x] Sarayu Pochimireddy
[x] Iris Yang
[x] FRQ Lesson

2D Arrays

[x] Lesson Plan
[x] Samaya Sankuratri
[x] Alice Tang

Lesson Format
Samaya/Alice - starts with def then initialization.  Discussed 0 counting.  Shared ij indexing.  Also, discuss print vs println.  Discussed forward and backwards.  Then went to Monkeys which made information much more clear.
Sarayu, Iris - Started talking about control structures ... IF then Case.    Then discussed loops and repeating until express is false.  Discussed requirements from College Board.   Used 2019 FRQ leap years.   Discussed counting leap years and then day of the week.
Very nice organization and presentation.  Hit on all expectation by me.
3.0 for everyone

[x] 2D arrays and data types, for loops vs horizontal
[x] Printing out horizontally being different than printing vertically, changing row and column
[x] Printing out Monkey
[x] Control Structures lessons
[x] FRQ 2019 - kept repeating through for loop until leapYear and returnDay

Very clear with vocab, FRQ and how functions worked.
2.7+/3

Explained different ways of creating 2d arrays and the differences between the horizontal vs vertical ++
went through all of the terms for each of the frq and the 2d arrays
-2.7 +

2.7+/3

Group did a really nice job of explaining the functionality of their 2d array code
Explained each concept very nicely when discussing the FRQ
Talked about the terms and vocabulary for each
I liked the organization of their presentation and how each person was responsible for each section

2.7+/3
2D arrays:

[ ] The lesson was explained really well, with going over how to initialize 2D arrays
[ ] Wen over what they did last week about 2D arrays

FRQs

[ ] were very detailed, and went over the answers.
[ ] explained all the vocab in detail

2.7+/3
Very nice lesson, explained all of the stuff used in the hacks, as well as the hacks themselves.

2.7+/3

Creating 2d arrays w/ different data types
Printing horizontally vs. vertically using loops by changing the iteration order of column and row
Method and control structures esp in the context of Collegeboard's expectations
Well presented and easy and clear to follow
Good way of presenting especially for learning

Score: 2.7+
(2.7+ because they explain everything really well in an organized way)
Two Dimensional Arrays

The lesson was explained well, with extra notes about things that were not relating to the monkeys
I like how they showed the examples with numbers, and then also showed it with the monkeys

FRQ

Went over all the requirements that Collegeboard wanted
Went over each of the variables and each part of the code was very detailed

Your lesson on college board was incredibly detailed and thouroughly elaborated the expected requirements.
Explained 2d arrays and iteration.
-2.7+


Summary of statistical libraries

The task is to prepare an article in wiki, which explains pros and cons of different statistical libraries for C++ or .NET.
Important aspects are:

documentation
support
community
coverage of our needs
integration with our data structures and standard C++ / .NET structures

 Summary of statistical libraries

https://github.com/spectre-team/spectre/wiki/statistic-library

https://github.com/spectre-team/spectre/wiki/machine_learning_library

To sum up: it seems like R is the best we can get.


Fix recursive ufs listing

Fixes: https://github.com/Alluxio/alluxio/issues/11339

Merged build finished. Test FAILed.

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

Tests in error:
alluxio.server.ft.journal.TriggeredCheckpointTest.ufsJournal(alluxio.server.ft.journal.TriggeredCheckpointTest)
  Run 1: TriggeredCheckpointTest.ufsJournal:63->validateCheckpointInClusterRestart:124 » Timeout
  Run 2: TriggeredCheckpointTest.ufsJournal:63->validateCheckpointInClusterRestart:124 » Timeout

alluxio-bot, test this please.

Merged build finished. Test FAILed.

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

Merged build finished. Test PASSed.

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

alluxio-bot, merge this please.

alluxio-bot, cherry-pick this to branch-2.2 please.


General bug fixes

Fix #316 and #311

Coverage decreased (-0.02%) to 90.072% when pulling 48ecede80295296ee225d17410823f99bd4a67e0 on jelneo:general_bug_fixes into 621dcfe953bce11381460d25de282d5f542d4846 on CS2103AUG2017-T17-B1:master.


Issue #719:

If no serverinfo extension is found in some cases, do not abort the handshake,
but simply omit/skip that extension.
Check for already-registered serverinfo callbacks during serverinfo
registration.
Update SSL_CTX_use_serverinfo() documentation to mention the need to reload the
same serverinfo per certificate, for servers with multiple server certificates.

+1

We need a second team review now.

Oops...added +1 to wrong PR...meant this to be for the master version...

Right, I've reviewed it for real this time... :-)

+1

Ping? Needs a second team review.

Any second review here?

Apart from that comment needing a rewrite, I'm fine with this.

:+1:

merged. thanks!

@richsalz Will this become available as a bug fix on openssl 1.0.2? Because it is important for me to have it on my OpenSSL 1.0.2.

it is merged into 1.0.2 and will show up as part of the next bugfix release.


Segment <> Voucherify integration (both source and destination)

Proposed changes
This is a documentation for catalog regarding Voucherify <> Segment integration (both source and destination). We have followed the templates, if something is wrong, please let us know.

Voucherify (Actions) Destination
Voucherify Source

Merge timing
ASAP once approved.
Related issues (optional)
None.

Hi @weronika-kurczyna! I created #4539 to deploy these docs. We'll push them live Thursday morning, Pacific time. Thanks!


MAINT: pandas 1.4: no longer use get_loc with method

[x] Closes #5721
[ ] Tests added
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst

Fixed as per @shoyer & @spencerkclark suggestion from https://github.com/pydata/xarray/issues/5721#issuecomment-903095007
Now that pandas 1.4 is out it would be good to get this fixed (there are about 5000 warnings in our tests, mostly because of interp, though). Also leads to a warning in our docs which breaks them (although that can also be fixed with an :okwarning: directive).

sphinx.errors.SphinxParallelError: RuntimeError: Non Expected warning in `/home/docs/checkouts/readthedocs.org/user_builds/xray/checkouts/6195/doc/user-guide/computation.rst` line 374

Sphinx parallel build error:
RuntimeError: Non Expected warning in `/home/docs/checkouts/readthedocs.org/user_builds/xray/checkouts/6195/doc/user-guide/computation.rst` line 374
[IPKernelApp] WARNING | Parent appears to have exited, shutting down.

RTD failure might be related (not obvious from looking at computation.rst)

Thanks @mathause , this looks great

RTD failure might be related

I just checked locally. This PR (+ #6194) fixes the doc build problem. It would require a lot of :okwarning: directives, so I suggest to merge this PR soonish instead of extending #6194.

Thanks @mathause

I'll aim to do a release later


Feat: Table as code behaviour for enabling peer review

Follows the issue "[Maintainability] Be able to see diffs in the Excel file".
Bonus:

Add a .gitignore file for keeping our repo clean.
Add Python code formatter

Happy year's eve 🎉

😎


I2C on SAMC21 sends out stop condition incorrectly

Running an I2C master on a SAMC21 results in an incorrect end of the transaction. The last byte will be read and the master will send out correctly a NACK. But after this another 9 clocks follow with the stop condition after this. Actually the stop condition should come right after the NACK, without any additional clocks in between.
The issue is that the stop condition is triggered in the context of the thread, instead of during the interrupt:

Commands can only be issued when either the Client on Bus Interrupt flag (INTFLAG.SB) or Host on Bus Interrupt
flag (INTFLAG.MB) is '1'.

Source: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/DataSheets/SAM-C20-C21-Family-Data-Sheet-DS60001479J.pdf (Page 587).
I was able to fix it in our local fork of zephyr with the following patch:
diff --git a/drivers/i2c/i2c_sam0.c b/drivers/i2c/i2c_sam0.c
index d557bb4..939c94d 100644
--- a/drivers/i2c/i2c_sam0.c
+++ b/drivers/i2c/i2c_sam0.c
@@ -154,6 +154,7 @@ static void i2c_sam0_isr(const struct device *dev)
 	if (status & SERCOM_I2CM_INTFLAG_MB) {
 		if (!data->msg.size) {
 			i2c->INTENCLR.reg = SERCOM_I2CM_INTENCLR_MASK;
+			i2c->CTRLB.bit.CMD = 3;
 			k_sem_give(&data->sem);
 			return;
 		}
@@ -169,6 +170,7 @@ static void i2c_sam0_isr(const struct device *dev)
 			 * require write synchronization.
 			 */
 			i2c->CTRLB.bit.ACKACT = 1;
+			i2c->CTRLB.bit.CMD = 3;
 		}

 		*data->msg.buffer = i2c->DATA.reg;
@@ -492,23 +494,6 @@ static int i2c_sam0_transfer(const struct device *dev, struct i2c_msg *msgs,
 			return -EIO;
 		}

-		/*
-		 * Only send a stop if after this message:
-		 *   - it is explicitly requested that we send a stop, or
-		 *   - we are not conducting a restart, with more messages to follow
-		 *
-		 * Note: nothing validates the flags, so default to a stop if a stop is
-		 * requested... do not let a restart request override it
-		 */
-		bool send_stop = (data->msgs->flags & I2C_MSG_STOP)
-			|| !((data->msgs->flags & I2C_MSG_RESTART) && (data->num_msgs > 1));
-
-		if (send_stop) {
-			while (!i2c->STATUS.bit.CLKHOLD) {
-			}
-			i2c->CTRLB.bit.CMD = 3;
-		}
-
 		data->num_msgs--;
 		data->msgs++;
 	}

But I assume this is not the whole story. First of all, the interrupt flags are actually already cleared at this point again, but within the context of the same interrupt routine just a few lines of code earlier on. So technically not 100% correct, but it works at least in my setup. Second, I am uncertain if all the flags (data->msgs->flags) are considered correctly this way.
It took a look at the current version of the driver (b27c5d73ef09278186dc8858dfbed2a33dff6031) and I strongly assume that the same bug is still there.

Hi @benediktibk ,
Thank you for sharing this with us. Please, open a PR with your fix so I can add more people to look at it.
It is important mention that there is no support for SAMC21 on current Zephyr but maybe the driver uses same IP and we may have same bug anyway. Maybe people from #50384 may help to check too.
@attie-argentum This maybe could be interesting to you look. Let me know if you could reproduce, if you have the time.

@benediktibk please correct me: I2C works now with master code, but not efficient.
You fix that sercom stops clock/transmission faster?
I read L21 / D21 / C21 datasheet and they mention the same thing.

Commands can only be issued when either the Client on Bus Interrupt flag (INTFLAG.SB) or Host on Bus Interrupt
flag (INTFLAG.MB) is '1'.

(I tested on my board i2c "master" code with one i2c sensor and it works)

@benediktibk - thanks for your patch, I've reviewed it and would like to also relocate the STOP on error - see #50933.
I've credited you in the commit message, but if you'd prefer to make the PR I'm more than happy to pass it to you.

I'm absolutely happy that you prepared the PR, I just wasn't yet able to find the time to prepare a test setup as a preparation for creating the PR. Thanks mate!

I have a same54p20a part and i can see this patch is merged, but i still seem to have an extra byte clocked at the end. Does anyone have a atsame54_xpro board that can confirm if this is fixed there?

@TomzBench - I don't think the SAM E54 is covered by the SAM0 drivers... have you checked for a similar issue in the relevant drivers? (e.g: i2c_sam_twi.c or i2c_sam_twihs.c)

@attie-argentum hello,
I added a discussion here: https://github.com/zephyrproject-rtos/zephyr/discussions/55170
It seems that the sam0 support is intentionally pretty minimal but im not sure if im following the driver correctly, maybe you can take a look


Part 3 - Make base browser components disposable

More changes to follow to dispose these disposables in next PRs.

/azp run


Update google-cloud-pubsub to 1.110.3

Updates com.google.cloud:google-cloud-pubsub from 1.107.0 to 1.110.3.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.cloud", artifactId = "google-cloud-pubsub" } ]

labels: library-update, semver-minor

Superseded by #176.


Turbo CLI doesn't respect NPM choice

What version of Turbrepo are you using?
Latest via npx
Describe the Bug
The template used by the turbo CLI does not respect the NPM choice when using npx create-turbo@latest. The commands in the package.json are yarn commands. This would work if you had Yarn installed but is unusable if you do not use Yarn. More so, if you choose NPM as your package manager, this file should respect that and also use NPM.
Here is a screenshot of the console and the package.json file it generated:

Expected Behavior
The package.json file should be using whatever package manager you choose during the prompts from the CLI.
To Reproduce

Create a new repo via npx create-turbo@latest
Select NPM as the package manager option
Wait for the project to be created and follow the prompts for development
You should see an error stating sh: yarn: command not found if you do not have yarn installed.

Thanks for the bug report. Seems like an issue with the templates. On it.


Password encrypted

Hello, i created the phishlet of steam but when i login the password is encrypted like this :

Do someone have any idea to fix this ? Thanks

send phishlet let's see what you wrote

Hello, i created the phishlet of steam but when i login the password is encrypted like this :

Do someone have any idea to fix this ? Thanks

i think this happens on some new model phone's

Hello, i created the phishlet of steam but when i login the password is encrypted like this :

Do someone have any idea to fix this ? Thanks

i think this happens on some new model phone's

@mihai9621 am facing the same issue. can i send my own phishlet so that you can help me explain what to do.
Thanks.

@mihai9621 am facing the same issue. can i send my own phishlet so that you can help me explain what to do.
Thanks.

@kgretzky how can i fix this sir? https://user-images.githubusercontent.com/63863060/100247245-6db32e00-2f3a-11eb-87e2-66a5bd5a201b.png

Hello, i created the phishlet of steam but when i login the password is encrypted like this :

Do someone have any idea to fix this ? Thanks

i think this happens on some new model phone's

@kgretzky

@kgretzky how can i fix this sir? https://user-images.githubusercontent.com/63863060/100247245-6db32e00-2f3a-11eb-87e2-66a5bd5a201b.png

Hello, i created the phishlet of steam but when i login the password is encrypted like this :

Do someone have any idea to fix this ? Thanks

i think this happens on some new model phone's

@kgretzky


Adding a No Op version of the List RR with Options test, for code coverage

Adding a No Op version of the List RR with Options test, for code coverage. The existing test for this method has SKIP_LIVE_TEST and seems to fail the daily coverage check
https://skype.visualstudio.com/SPOOL/_backlogs/backlog/Chat/Features/?workitem=2463047

/azp java - azure-communication-chat - tests

/azp run java - azure-communication-chat - tests


[Tempest] Modify IMAGES_TIMEOUT for individual images

This patch allows to modify IMAGES_CREATION_TIMEOUT for individual images. This better fits the interface of the extraImges parameter in the Tempest CR.

This PR first requires confirmation from @lkuchlan.

Thanks Lukas! LGTM!
/approve

/approve

@lkuchlan thanks for the review. Keeping this as a draft until we merge this -> https://github.com/openstack-k8s-operators/test-operator/pull/166

/cherrypick 18.0.0-proposed


Write a pipeline to pick up latest spruce code

Aa aviator uses the spruce library, there should be an automation (CI) in place to build aviator with newer versions. (Discuss automation details)

Wouldn't it be also a good alternative to let the user point to his spruce installation (binary)?

Hi @prein,
sorry for my late response.
Aviator is using spruce on a code basis, which means the spruce binary is not required. Initially it was using the binary, but i changed it to not require a binary. That way user of aviator has less prereqs to make use of aviator: They can install it and run it. It was important to me that it is as easy as possible to use.
I think if I keep the spruce version aviator is using up to date it is not really a need to point to the spruce installation as a alternative. However, if there are any particular benefits it could be considered to add this option.


Update sticky figure width/margin

What is this PR trying to achieve?
Updating the width of the sticky figures to align with the grid at large and xlarge sizes.

Could we wait for #330 to go in - and then update this accordingly?

Fixing anything that needs to be fixed from a new branch off master probably makes more sense than trying to get this in. Closing.


Whitepaper?

The intro to the glossary says, "This whitepaper assumes..."
The term "whitepaper" has specific meanings in the context of standards organizations. I suggest that we use "document" instead of whitepaper. When (if) we promote the document to a specification, we could then change it to the term "specification".
Sorry for being so OCD about form and not content, but in the last 15, or so, years of my working in standards groups, I have seen this sort of thing cause all sorts of problems.

@dickwilkins fixed! There are a few more additions on https://github.com/hughsie/uefi-sbom-best-practices/pulls if you have a few mins spare today.


Implement dictatorship of the proletariat?

E.g.
proletariat = {
    "ator": "ship"
}

Apologies if my example is incorrect, comrades. I’m writing this on my phone and I haven’t worked in Python for several years.

I see what you have done here. However, I don't see how we can include this into the repo.

I really love this


Why --> Why Recycle

What I see now: Top right of the toolbar- Why
What I want to see: Top right of the toolbar- Why Recycle


Remove static resources from master

Due to issues with LFS quota, we are moving all static resources like various images  to new repo:
https://github.com/MinaProtocol/mina-resources and moving all references to new repository

!ci-build-me

!approved-for-mainnet


Enhancement: Support for NodeInfo

Adding support for the optional nodeinfo format would enable other ActivityPub-based sites and services to know about the capabilities of a Postmarks instance.
https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479#information-about-the-instancenode-23

I've made a start on this in my fork -> src/routes/activitypub/nodeinfo.js - operational, but not quite enough for e.g. FediDB to work with it.


multiply doesn't broadcast correctly

`def test_cvxpy_multiply():
# fails in cvxpy 1.0.6
# python 2.7.15
# ValueError: Cannot broadcast dimensions  (4,) (4, 1)
x = np.ones(4)
y = cvxpy.Variable((4, 1))
cvxpy.multiply(x, y)
def test_cvxpy_multiply_2():
# passes in cvxpy 1.0.6, python 2.7.15
x = np.ones((4, 1))
y = cvxpy.Variable((4, 1))
cvxpy.multiply(x, y)
def test_cvxpy_multiply_3():
# passes in cvxpy 1.0.6, python 2.7.15
x = np.ones((4, 2))
y = cvxpy.Variable((4, 2))
cvxpy.multiply(x, y)`

This kind of broadcasting is intentionally not supported, because I think it adds more confusion than functionality.

@SteveDiamond should this be made more explicit in the documentation? I can prepare a PR if you want, but tbh I haven't fully understand yet when numpy broadcasting rules are not followed precisly.
The documentation says at the moment:

The semantics for how shapes behave under arithmetic operations are the same as for NumPy ndarrays (except some broadcasting is banned).

The examples above can be easily fixed by changing shape of x or by use of np.newaxis. But there are cases where I don't see an easy replacement for complex broadcasting rules other than (slow?) loops.
Example use case:
I'm currently struggling with an error of the form ValueError: Cannot broadcast dimensions  (589, 1) (1, 589). I have a 1d boolean Variable x of length 589 and need a constraint for each i,j in range(589) if x[i] != 0 and x[j] != 0. So I thought I could do something like y >= x[np.newaxis, :] + x[:, np.newaxis] - 1 (for a non-negative constant array y of shape (589, 589)). But cvxpy's broadcasting rules forbid this.

Just had the same troubles again and found my own comment.
@SteveDiamond should we add this in the documentation? I'd be happy to help here, but haven't fully understood the precise differences to numpy broadcasting yet.

The problem is everyone I've taught in person has found the broadcasting behavior: (n,1) + (n,) = (n,n) incredibly confusing. I would be fine with adding all other broadcasting.

Another comment is my experience implementing indexing is that matching numpy behavior exactly is way way more difficult than you would think. But it would be ok to add in broadcasting rules one by one.

I added broadcasting multiply( (n,1) , (1,m) ) to master.

I added broadcasting for addition on master, so I'm going to close this issue.

I added broadcasting multiply( (n,1) , (1,m) ) to master. Getting broadcasting working for addition is a little more complicated, but the basic principle is to replicate using  np.ones((589, 1)) @ x[None, :] + x[:, None] @ np.ones((1, 589)).
@SteveDiamond
I've been experiencing issues with broadcasting for higher dimensions, as  'multiply( (n,12), (12, ) )'  would it be possible to expand broadcasting?

#1054


Documentation: Structuring and Building a Software Product with Gradle

See: #14717
(this PR is wip)
Current state: Structuring and Building a Software Product with Gradle

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.


[Docker Desktop] Add toggle sidebar to the GUI

Tell us about your request
Add toggle sidebar to the GUI
Which service(s) is this request for?
Docker Desktop
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Extensions like Logs Explorer would take advantage of the additional space
Additional context
Before:

After:

Docker Desktop v4.14.0 add the resized window.  An option could be by double-clicking on the icon and resize the sidebar to its previous size
Docker Desktop v4.14.0 :

Extensions BETA will be show the sub-menu items


Overhaul the list-missing-methods.p6 script

This PR grew significantly as I was working on it.  A while ago, I opened #3529, and said that I would add the ability to detect methods that exist in the doc but that have been removed from Raku and "address several minor issues" with the script.  Somehow, that's not quite what ended up happening.
Now, 48 commits later, I have a significantly overhauled version of the script.  This version does significantly more to screen out false positives – specifically, there are many methods that the .^methods(:local) method (and the old script) consider to be local to a Type but that are actually implemented on a closely related Role.  The previous script listed these as methods missing documentation, even though they are properly documented on the Role.  Correcting this should make the script significantly more helpful for targeting our documentation efforts.
The new script also adds two new categories of information for each Type: over-documented methods that no longer exist in Raku (my original goal!) and methods without enough introspection to be able to tell, or where the introspection results appear to be inconsistent, which caused the false-positives issue described above.
I've also added the ability to print summary information for all scanned types, which should be useful both in keeping track of our overall progress and in targeting our efforts.  When run on the full doc/Type directory, this summary info shows that the script was able to check 3,522 methods.  Of these, 8% were over-documented, 57% were under-documented and 35% had no detected issues.
That 35% number is perhaps artificially low, however, as additional summary info shows.  Of the under-documented methods, over a third come from methods that are missing from 20+ types.  These are not false positives – they really are implemented on the Type – but they may not be in need of documentation.  Examples include gist, message, raku, etc.  The previous version of the script included support for an ignored-methods.txt file that could ignore methods from specific types; I've expanded that feature to also allow ignoring methods from all types at once, and we may want to add many of these don't-need-to-be-documented methods to that file.  (I added BUILD_ALL, which was previously "missing" from 184 types but is clearly an implementation detail, but have mostly refrained from adding ignored methods because I didn't want to make that call without discussing the issue – although the script does now allow specifying a location for the ignored-methods file, which would let us use more than one.)
I've also added several new CLI options for filtering or otherwise limiting output; please consult the --help message for detailed info.
The cost of all of this added functionality is that the script is now much larger – nearly 700 lines.  Many of those are comments, and much of the rest is devoted to the unavoidably verbose output/formatting; the script's core logic is only ~200 lines.  Nevertheless, I would normally split a program of this size up into multiple modules, and strongly considered doing so here (including for performance reasons).  However, I've kept this as a single file, at least for now.  That's how it was, and I didn't want to add sub-directories to the docs/util directory without a clear need.
Finally, I want to mention that this is the first non-trivial Raku program I've written and that I greatly appreciate all the help I got from kind people on the #raku IRC channel.  I ended up diving pretty deep into Raku's introspection abilities – as @lizmat put it when she was helping me with a particularly hairy bit, I got down to where the turtles are showing.  And that was quite a way to learn the language.  So thanks, all!  And I'm definitely open to any feedback others might have on this script.

On one hand, this is just amazing and I love it.

Thanks, I'm glad you like it!

On the other hand, as it happens with every script, we have no tests to check that it's working

Yeah, I also had that thought.  I attempted to write the code to be testable, even though there aren't currently any tests – there are lots of small, pure functions, which should be pretty easy to write tests for.  After this is merged, I'd be happy to work on another PR adding some tests, though I do think that would mean splinting the code up into a module rather than staying as a single script.  Does that seem worthwhile to you?

On one hand, this is just amazing and I love it.

Thanks, I'm glad you like it!

On the other hand, as it happens with every script, we have no tests to check that it's working

Yeah, I also had that thought. I attempted to write the code to be testable, even though there aren't currently any tests – there are lots of small, pure functions, which should be pretty easy to write tests for. After this is merged, I'd be happy to work on another PR adding some tests, though I do think that would mean splinting the code up into a module rather than staying as a single script. Does that seem worthwhile to you?

Of course. And on that note, it would probably also be worth the while to spin it off, as a separate module, because it probably deserves the full attention of a project maintainer. In order to do that, please try to keep the history of the file and all related ones, because credit where credit is due.
Also, welcome to the team! Your commit bit is served.

And on that note, it would probably also be worth the while to spin it off, as a separate module, because it probably deserves the full attention of a project maintainer. In order to do that, please try to keep the history of the file and all related ones, because credit where credit is due.

Are you saying that it should be spun off into a separate repo ?  I was thinking that it could just be a (Raku) module that lived in a subdirectory inside the doc/util/ directory (people would still get it when they git clone the docs).  But if you think it should leave the docs repo entirely, I can do that instead.  Just let me know :)

Also, welcome to the team! Your commit bit is served.

Thanks very much – I'm glad to be here :100:  Based on past projects I've contributed to, I assume that the etiquette is generally not to merge my own PRs unless they are truly trivial.  Am I right about that?

El jue., 20 ago. 2020 a las 17:34, Daniel Sockwell (<
<EMAIL_ADDRESS>escribió:

And on that note, it would probably also be worth the while to spin it
off, as a separate module, because it probably deserves the full attention
of a project maintainer. In order to do that, please try to keep the
history of the file and all related ones, because credit where credit is
due.
Are you saying that it should be spun off into a separate repo ? I was
thinking that it could just be a (Raku)

Yes.

module that lived in a subdirectory inside the doc/util/ directory
(people would still get it when they git clone the docs). But if you
think it should leave the docs repo entirely, I can do that instead. Just
let me know :)

I'd appreciate if you did that.

Also, welcome to the team! Your commit bit is served.
Thanks very much – I'm glad to be here 💯 Based on past projects I've
contributed to, I assume that the etiquette is generally not to merge my
own PRs unless they are truly trivial. Am I right about that?

Whatever you feel more comfortable with.


Test Cases for remaining classes

Can one of the admins verify this patch?

ok to test

Merging this PR since Junit test cases are passing, the DI CI pipeline issue will be addressed separately.


Covert document to LaTex

Hey.
I wish to know if it is possible to convert the source files of the written documents to LaTex source files. I wish to be able to edit the files along with pandoc locally. From whar i saw mentioned in the app, it makes use of KaTex (a distribution of LaTex) but i can't find that much about it out there.
Please if it possible to convert the source files to LaTex, how can it be done. Thanks

I have found another solution using pandoc directly. I exported all my files to markdown and use pandoc CLI to convert each of them to latex files.
I used the command
pandoc --from=markdown --output=filename.tex filename.md

I have found another solution using pandoc directly. I exported all my files to markdown and use pandoc CLI to convert each of them to latex files.
I used the command
pandoc --from=markdown --output=filename.tex filename.md


compose: Move initialize to new compose_setup module

(59, 25) → (58, 24). Discussion.

I'm sure we'll want to reorganize compose_setup in some way in the future, but this seems like great progress in the quest to end import cycles as it is.


Push challenge image as part of CI

If we are building the challenge image every night, we should push it to a public docker hub account so that others can reference it for dev/testing/rebasing purposes.  In the long-term this may not be necessary, but as we transition to nix, it could be useful to dojo builders.

I agree.
As a note, we currently only build the minimal image every night.
This is what should happen:

Move ./challenge into public repo github.com/pwncollege/challenge-legacy
GitHub action to build/push to pwncollege/challenge-legacy:latest on push to the GitHub repo; bonus points for not-rebuilding intermediate layers for speed, but probably not critical
Do the same for a pwncollege/challenge-legacy:latest-slim
Change this repo so that we pull pwncollege/challenge-legacy:latest-slim and re-tag it as pwncollege/challenge-legacy:latest before test-cases run (to make sure CI doesn't break / fix CI)
Change this repo to default to pwncollege/challenge-legacy:latest for image to keep current dojos working
Transition all our dojos so they explicitly depend on pwncollege/challenge-legacy:latest as the challenge image
Give other people time to do the same, and then migrate to a default image of ubuntu:24.04, or maybe require the image to be set (a little bit less sure on this one)

Quick attempt at beginning this process: https://github.com/pwncollege/challenge-legacy


BaseData.Bridge is now a bounded BlockingCollection

This update uses a BlockingCollection<T> in place of a ConcurrentQueue<T> for the bridges (by default the BlockingCollection uses a ConcurrentQueue under the hood anyway).
The bounding option works well, so it solves the high RAM usage, with fast data feeds (as binary) or slow algorithms. As a by-product, we get a nice speed improvement as well.

Looks really cool @StefanoRaggi, we'll do some testing once Mike gets back on land (he's literally fishing).

@StefanoRaggi -- Awesome stuff! This was the next change on my list, you beat me to it! :) Nice touch with the bounding of the blocking collection, I was unaware of that feature. Very cool, it will auto-block the data feed until there's room on the bridge.


popup doesn't open in most situation

Using the default the popup doesn't activate  for 'z' prefixed (only for 'z='), 'g' prefixed or any other shortcut, unless ':WhichKey' is called.
I am not misunderstanding the function of this plugin when I think it is supposed to open by default after pressing a key that is part of a shortcut, right?

What do you mean with 'prefixed'.
Can you post your config?

by prefixed I mean that start with a given character.
right now I simply have the default config for which-key
call plug#end()

lua << EOF
  require("which-key").setup {}
EOF

and accessing registers and marks triggers the popup.
In the default values I see
    nav = true, -- misc bindings to work with windows
    z = true, -- bindings for folds, spelling and others prefixed with z
    g = true, -- bindings for prefixed with g

and I would expect the popup to show after a press of <c-w>, g or z but nothing shows.
Giving the command ':WhichKey ' or ':WhichKey ' shows the popup with the correct mappings (which are not defined in which-key but in other files).

but when simply pressing '' (kinda useless screenshot)

Did you properly cofigure timeoutlen? https://github.com/folke/which-key.nvim#-configuration

of course this was the problem. in hindsight it also makes sense that registers and marks showed.
I had to put these at the bottom of my init.vim
set timeoutlen=300

my timer wasn't set at all, my bad

It also needs set timeout. Maybe is obvious, but it took me some time to catch that in my config.


Build error starting version 0.13.0

Starting version 0.13.0 webpack is enable to build my app. Build fails with following error:
ERROR in ./~/react-toolbox/lib/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' ./list/ListSubHeader in /Users/finch/dev/mapilary/mapilary-widget-ng/node_modules/react-toolbox/lib
 @ ./~/react-toolbox/lib/index.js 145:25-56

Version 0.12.8 is fine.
In my app, imports are defined as:
import { AppBar, Input, Button, Navigation } from 'react-toolbox'

I'm looking at it in a couple of hours, thanks!

I've also had to change the way I was importing react-toolbox.
Before the 0.13.0 update I was using
import rt from 'react-toolbox'; and the in my render function using <rt.Button/> ... <rt.FontIcon/> ... etc to actually instantiate the components. This allows me very easily to use any of the components without having to update the import statement and it also nicely namespaces the react-toolbox components from the ones I'm developing.
I've been using Material UI before coming to react-toolbox, and the way they export their modules allows better IDE introspection and also allows the previous aliasing approach. Happy to open up a PR if you're open to suggestions in this area?

I'm particularly always open to discuss new ways to do stuff :) There is something you have to take into account when you import the whole library that way: each component references it's own SASS file and if you import everything, the final build will include the whole CSS even if you are not actually using it. That's why we recommend to import just the module you are using.
What I don't get is why did you have to change the way you are importing. We are still exposing all the components in the /lib/index.js file so it should work. Are you getting any errors??

I'll have to test out how things can get bloated if you import the index file (my understanding was that webpack was intelligent enough to not do that, but I may be wrong).
As for why I had to change the way I was importing, looking at the index.js file in the components folder in  v0.12.13 compare to v0.13.1 you'll see that there's no default export in that file anymore ;-)

Just a heads up, I can use import * as rt from 'react-toolbox'; but am still interested to see if the removal of the exports from the index.js was intentional.

I have to take a deeper look at it but for now I can tell you it's probably missed.

@javivelasco It's because everything is now a named export, rather than importing everything and then exporting a giant default object. This is my fault -- I also changed the docs to do import * as .....
I could be wrong, but I believe that for proper ES6 usage once the spec is native, named exports is the way to go:

Why do we need named exports?
You may be wondering – why do we need named exports if we could simply default-export objects (like CommonJS)? The answer is that you can’t enforce a static structure via objects and lose all of the associated advantages (described in the next section).
(http://www.2ality.com/2014/09/es6-modules-final.html)

@wrench7 see above

Agree with @nathanmarks, thanks for clarifying! :+1:

Thanks for the clarification @nathanmarks :+1:
Can you confirm that using imports like that will also bloat the file size as @javivelasco suggested? I'm seeing that importing components individually still results in webpack creating styles for all the Toolbox components when viewing my app in a browser. That could be because I'm using HMR, but wondered if others are seeing the same thing?

@wrench7 So what you're saying is -- if you try to do something such as:
import Button from 'react-toolbox/lib/button';

You get the styles for every component? If so, that's obviously not good.
However...
If you import * as Components from 'react-toolbox', I'm fairly certain you're going to load everything. This is because until es6 modules are native to browsers, every single module is included if you pull from the index as the code is being required common-js style and executed. Feel free to correct me if I'm wrong on this!

Can we close then?

@javivelasco My issue is not resolved.

Wow, you're right. Sorry, I mixed up with other issue.
I'll take a look on it asap @mauron85

How to reproduce:
1. prepare react-toolbox-example
$ git clone https://github.com/react-toolbox/react-toolbox-example.git
$ cd react-toolbox-example
$ git checkout ba6abd0893783011f35985b2499ccbc4b0688d7b #not necessary currently latest
$ npm install

2. change imports in app/index.jsx
// You can also include here commons if you want with import 'react-toolbox/lib/commons';
import React from 'react';
import ReactDOM from 'react-dom';
// import ToolboxApp from 'react-toolbox/lib/app';
// import Button from 'react-toolbox/lib/button';
import { ToolboxApp, Button } from 'react-toolbox'; // THIS IS THE CHANGE
import Header from './components/header';
import style from './style';

ReactDOM.render((
  <ToolboxApp>
    <Header />
    <section className={style.content}>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.
    </section>
    <Button label='test' />
  </ToolboxApp>
), document.getElementById('app'));

3. start dev server
npm start

There will be errors in teminal
ERROR in ./~/react-toolbox/lib/index.js
Module not found: Error: Cannot resolve 'file' or 'directory' ./list/ListSubHeader in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib
 @ ./~/react-toolbox/lib/index.js 135:25-56

ERROR in ./~/react-toolbox/lib/utils/polyfills.js
Module not found: Error: Cannot resolve module 'core-js/fn/array/from' in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib/utils
 @ ./~/react-toolbox/lib/utils/polyfills.js 3:0-32

ERROR in ./~/react-toolbox/lib/utils/polyfills.js
Module not found: Error: Cannot resolve module 'core-js/fn/array/iterator' in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib/utils
 @ ./~/react-toolbox/lib/utils/polyfills.js 5:0-36

ERROR in ./~/react-toolbox/lib/utils/polyfills.js
Module not found: Error: Cannot resolve module 'core-js/fn/map' in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib/utils
 @ ./~/react-toolbox/lib/utils/polyfills.js 7:0-25

ERROR in ./~/react-toolbox/lib/utils/polyfills.js
Module not found: Error: Cannot resolve module 'core-js/fn/string/starts-with' in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib/utils
 @ ./~/react-toolbox/lib/utils/polyfills.js 9:0-40

ERROR in ./~/react-toolbox/lib/utils/polyfills.js
Module not found: Error: Cannot resolve module 'core-js/fn/symbol' in /Users/finch/dev/react-toolbox-example/node_modules/react-toolbox/lib/utils
 @ ./~/react-toolbox/lib/utils/polyfills.js 11:0-28

Thanks for the extended info!

Fixes #179


Account for counter rollover

In the case that a cgroups CPU time counter rolls over, use the previous
CPU percentage calculation. There should not be negative percentages.
This also fixes a bug where in the situation layed out above, the
calculations with unsigned integers could result in the high order
bits flipping to 1, causing inaccurate spikes in the result.

I want to do more longer term testing before I merge this


bench: hummock service benchmark

We have basic funtionalities implemented in hummock service (backed by etcd) but we haven't done any quantitative analysis on it. The goal here is to figure out performance and limitations on hummock service via metadata benchmark.
Currently hummock service provides the following interfaces:

Checkpoint interfaces: get_new_table_id, add_tables, commit_epoch, abort_epoch
Current usage:
1. Checkpoint on epoch1 is initiated
2. Compute Nodes (CNs) request table_id from hummock service, upload SSTs to S3 and notify hummock service:
    - CN1: get_new_table_id -> .. (write to S3) .. -> add_tables
    - CN2: get_new_table_id -> .. (write to S3) .. -> add_tables
    - ..
3. Barrier manager invokes commit_epoch to complete checkpoint or abort_epoch to rollback checkpoint

Reader interfaces: pin_version, unpin_version, pin_snapshot, unpin_snapshot
Current usage:
- Each CN maintains a LocalVersionManager which keeps track of a cached version via a periodically triggered background task:
  pin_version -> track version ref cnt -> unpin_version

- Each frontend is notified when a new checkpoint is completed and matiains a snapshot cache
  pin_snapshot -> track snapshot ref cnt -> unpin_snapshot

Compact/Vacuum interfaces: report_compact_task, report_vacuum_task
Current usage:
1. Compaction/Vacuum taisk is periodically triggered via a background rountine and the task is assigned to a node
2. When the node finishes the compaction/vacuum task, it invokes report_compact_task/report_vacuum_task to report to hummock service

The focuses of this benchmark are:

For each interface, figure out how QPS scales with increasing number of nodes interacting with hummock service.
For each interface, figure out how QPS scales with increasing number of metadata (i.e. SSTs) in hummock service
For each interafce, figure out its bottleneck.

In order to identify hummock service bottleneck, we can run the benchmark using different meta store (EtcdMetaStore, v.s. MemMetaStore).

NotificationManager is now sending notification to CNs synchronously in commit_epoch which compromises performance. It's expected to be refactored soon.
https://github.com/singularity-data/risingwave/pull/1693#discussion_r852659258


meta: fix licensing in composer.json

The metadata between LICENSE file and composer.json license key does not
match. This commit changes it.

Hi @konimex thank you for your contributions. Looks like safe to merge. Thank you


[MessageQueue] Compatibility with Symfony 3

Hi @tadcka  Interesting, how smooth things are running under Symfony3 ?

Hello, i want to use https://github.com/orocrm/OroMessageQueueBundle other project

Thank you for your pull request.
It looks like this may be your first contribution to an Oro, Inc. open source project, in which case you'll need to sign a Contributor License Agreement (CLA) at http://www.orocrm.com/contributor-license-agreement/
If you've already signed the CLA, it's possible we don't have your GitHub username or you're using a different email address. GitHub uses the email address you set in your local Git configuration to associate commits with your GitHub account. Please sign the CLA again using the correct GitHub username and email address or see this help article on setting the email on your git commits.
Once you've signed the CLA, please allow for some time for the submission to be processed.

@tadcka
I want to ask you, how did you test compatibility of this bundle with symfony 3 ?

@mkudelya
Testing with symfony-standard 3.2. Get exception on NumericNodeDefinition https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Config/Definition/Builder/NumericNodeDefinition.php#L71
I just trying use with symfony3. I dont want fork this bundle.

Hi @tadcka
Could you please write script which we able to run on travis ? For example it will download symfony 3, put MessageQueue bundle to core and run php unit tests inside bundle. Here is an example similar script.

@mkudelya  do you want enable travis on MessageQueueBundle repository?

@tadcka it would be better to enable testing of MessageQueueBundle with Symfony 3 within the current repository by adding necessary steps to .travis.yml because orocrm/OroMessageQueueBundle is a read-only repository.

Close pull request because it has no activity. Feel free open it if you have any question.

Also waiting for v3 compatibility.


Bunnymark Test Without Sprite Nodes

I made a bunny mark test that draws all the bunnies using _draw and draw_texture() instead of creating Sprite nodes. Since Godot Engine lacks dynamic batching,  I thought it might speed things up.
The resulting performance difference from BenchmarkGD is about +27% (5510 vs 7010) for my pc.
Environment:
Hardware:

Processor: i7-4770 3.40GHz
GPU: AMD R9 270X
RAM: 16 GiB DDR3

Build Info:

OS: Korora Linux (Fedora 26)
Compiler: gcc 7.2.1

I Added a Sprite-less bunny mark for C#.  Additionally, it seems the frame drop doesn't happen in this benchmark.

Great work!  I'll port this over to C++ too

I tried to do that, but all my attempts to draw TBunny would crash the scene.
Additionally, the gdb info was basically gibberish to me 😖