[build] add option to not build stdlib when cross compiling

This would be needed to avoid rebuilding the stdlib a second time in
certain internal configuration, reducing the overall build times.
Take this opportunity to extract into separate functions the code to calculate the stdlib targets to configure and build.
Addresses rdar://78111750

@swift-ci please smoke test

@swift-ci please build toolchain

Linux Toolchain (Ubuntu 16.04)
Download Toolchain
Git Sha - 55721bf4af627c7b02661b7a018e979a4faae73f
Install command
tar zxf  swift-PR-37933-607-ubuntu16.04.tar.gz
More info


🌱 upgrade base image to ubi9

Summary
Related issue(s)
Fixes #

/lgtm
/hold
Unhold if it's ready

/unhold


Control focus inside viewport will get stuck after mouse wheel scroll (e.g. in a scroll container)

Godot version:
3.2-stable
OS/device including version:
Distributor ID:	Ubuntu
Description:	Pop!_OS 19.10
Release:	19.10
Codename:	eoan
(Happens on windows as well)
Issue description:
When the mouse wheel is used to scroll a scroll container inside a viewport, the currently focused control will steal focus and block any further mouse movement events from reaching controls inside the viewport. (gui.mouse_focus gets set and never released)
Steps to reproduce:
Create a viewport scene (like the '2d in 3d demo' and add a scroll container with overflowing content such as a vboxcontainer full of buttons. Use the mouse wheel and notice that you can't click on any other buttons until after the mouse is moved out of the window or the viewport's mouse focus is reset some other way.
NOTE I've discovered that it only happens when the viewport has handle_input_locally=false
This may mean that this as 'not a bug' but I'll still leave this report for future generations ;)
Minimal reproduction project:
gui_in_3d_mfocus_scrollwheel_repro.zip

I'd say this is really a documentation bug as the handle_input_locally flag is not documented. It should probably include a description of this situation, a reference to the gui in 3d demo project and why you would enable this flag.

Still valid in 3.2.4 beta4, can't test on master, because project is broken.
I'd say this is a valid bug, I don't see why handle_input_locally would affect the scroll in this way.

Has this been fixed? I tried your attached project in Godot 3.5.1 and was able to scroll and then press buttons without moving the cursor out of the window.


Tanks in series

Tanks-In-Series Model
Implementation of the tanks in series model within Pybamm. Based on DOI: 10.1149/2.0342001JES.
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.

[x] New feature (non-breaking change which adds functionality)
[ ] Optimization (back-end change that speeds up the code)
[ ] Bug fix (non-breaking change which fixes an issue)

Key checklist:

[x] No style issues: $ pre-commit run (or $ nox -s pre-commit) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)
[ ] All tests pass: $ python run-tests.py --all (or $ nox -s tests)
[ ] The documentation builds: $ python run-tests.py --doctest (or $ nox -s doctests)

You can run integration tests, unit tests, and doctests together at once, using $ python run-tests.py --quick (or $ nox -s quick).
Further checks:

[ ] Code is commented, particularly in hard-to-understand areas
[ ] Tests added that prove fix is effective or that feature works

I have the model written up in a .py file, but I think there is an issue with domains/discretization. I'm getting this error when I run the following code:

Initially, I got an error of size (400,1) vs (1,1), and then I used pybamm.x_average(param.n.prim.c_init), but the size still doesn't match up.

You need to average in both x- and r-directions, you can use param.n.prim.c_init_av which is already averaged

It seems to be working now with Chen2020 parameter set.

Looking good!


Create config map for client config

Ticket: https://issues.jboss.org/browse/AEROGEAR-2008
Creating a new config map when provisioning. Config map is used to populate the client config.

@philbrookes @aidenkeating Can you have a look please?


Do I use elsa-swing-t to run split training or swing pre training

Sorry, I don't get it.

Sorry, I don't get it.

I'm running segmentation, such as swin UNET. I used your else swin to replace the swin transformer in swin UNET, so I found your PTH file with the pre training model. Did I use the pre training of swin transformer to run


Backing up fabric root keys (CON-266)

By default fabric root keys for a commissioner are kept in local storage on the device. That's bad news if the device dies because then you lose access to your fabric. So I'm trying to figure out how to store the root key in the cloud.
First off, is it possible to create a new commissioner while only using the cloud root key once when the commissioner is created?
Next, can I create a second commissioner on the same fabric also using the cloud root key only once? and then be able to locally commission from both devices (assuming they assign disjoint nodeIds).
If the answer to both of those is yes, then how do I set this up? When you create a commissioner you can supply...
 * If the keypairDelegate is provided, then the rootCertificate, nodeOperationalCertificate, and
 * ipkEpochKey must also be specified. If no operational credentials are specified here, then an
 * ephemeral signing configuration will be generated for you.

 * @param[in] keypairDelegate a pointer to a Java KeypairDelegate implementation.
 * @param[in] rootCertificate an X.509 DER-encoded trusted root certificate for this node
 * @param[in] intermediateCertificate an X.509 DER-encoded intermediate certificate for this node
 * @param[in] nodeOperationalCertificate an X.509 DER-encoded operational certificate for this node
 * @param[in] ipkEpochKey the IPK epoch key to use for this node

In the source there is just an interface description for KeypairDelegate, no code for an implementation, but I can probably figure it out.
https://github.com/project-chip/connectedhomeip/blob/master/src/controller/java/src/chip/devicecontroller/KeypairDelegate.java
So which keypair does KeypairDelegate operate on? if I call KeypairDelegate.getPublicKey() which public key do I get? NOC or root?
So are rootCertificate and nodeOperationalCertificate just the public keys in certificate format? And then keypairDelegate() is operations on the NOC key.
And I have no clue what to do with ipkEpoch (Identity Protection Key)
Is this sequence correct?

Cloud, make root key pair
Cloud, make certificate for it
Device, get root certificate from cloud
Device, Generate NOC keypair in trustzone
Device, Generate CSR
Device, Send CSR to cloud, get back NOCcertificate
Device, pass in rootCertificate and nodeOperationalCertificate to the commissioner
Device, Commissioner uses keypairDelegate to sign using local NOC key

BTW, I am trying to figure this out on my phone first since it is easier. When I get the basics figured out, the target is a ESP32S3 based commissioner.

is it possible to create a new commissioner while only using the cloud root key once when the commissioner is created?

Yes, It is possible that all the devices(commissioner and commissionee) in one fabric using the same cloud RCAC.

can I create a second commissioner on the same fabric also using the cloud root key only once?

Yes, the second commissioner can be created but one commissioner in one fabric is enough. We don't need to add another commissioner.

So which keypair does KeypairDelegate operate on? if I call KeypairDelegate.getPublicKey() which public key do I get? NOC or root?

The KeypairDelegate input is just a delegate for a P256keypair for use within Java environment, it was used to generate Key pairs. And the key pairs are used to generated the certs of the NOCChain.

So are rootCertificate and nodeOperationalCertificate just the public keys in certificate format?

Yes, the public key of the certificate is in the certificate.

Is this sequence correct?

The device is always unable to connect to the cloud if it is not commissioned.
I suggest that you use the following sequence:

Cloud, make root key pair
Cloud, make RCAC
Commissioner, get the RCAC from cloud
Commissioner, generate commissioner's NOC keypair and CSR
Commissioner, Send CSR to cloud, get back commissioner's NOC, ICAC(Optional)
Device, generate device's NOC keypair and CSR
Device, send CSR to the commissioner, and the commissioner sends it to cloud
Device, receive RCAC and device's NOC, ICAC(optional) from the commissioner.

@jonsmirl Can you please close this if your questions are answered?


feat(tier4_perception_launch): add radar faraway detection

Description
This PR add radar faraway detection.
New Camera-LiDAR-Radar fusion consist of two pipeline as below.

Radar fusion with LiDAR detection

It attaches velocity to 3D detections when successfully matching radar data.  The tracking modules use the velocity information to enhance the tracking results while planning modules use it to execute actions like adaptive cruise control.
In addition, radar fusion improves the low confidence 3D detections when corresponding radar detections are found.
Default output topic name is detection/objects and this topic use same as Camera-LiDAR fusion based detection or LiDAR-only detection.

Radar only faraway detection

This PR add radar only faraway detection pipeline for tier4_perception_launch/launch/object_recognition/detection/radar_based_detection.launch.xml.
Default output topic name is detection/radar/far_objects
This topic can be used for radar tracking.
Related links
Tests performed
Test by rosbag.
Notes for reviewers
@YoshiRi
You can use detection/radar/far_objects for radar tracking.
Interface changes
The parameter arg of radar_lanelet_filtering_range_param is needed to add for perception_launch.
The example is here

radar_object_lanelet_filter.param.yaml

/**:
  ros__parameters:
    filter_target_label:
      UNKNOWN : true
      CAR : true
      TRUCK : true
      BUS : true
      TRAILER : true
      MOTORCYCLE : true
      BICYCLE : true
      PEDESTRIAN : true

Effects on system behavior
No
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

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

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

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

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

[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

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

Could you add exec dependency to https://github.com/autowarefoundation/autoware.universe/blob/main/launch/tier4_perception_launch/package.xml


environment issue

Describe the bug
It is not working. please help me
To Reproduce
Please provide sample code to reproduce the bug.
command = np.array([0, 0, 0, 100])
env.reset()
for _ in range(180):
   state, reward, terminal, info = env.step(command)

Expected behavior
A clear and concise description of what you expected to happen.
Logs
---------------------------------------------------------------------------
BusyError                                 Traceback (most recent call last)
~/anaconda3/envs/pytorch/lib/python3.7/site-packages/holodeck/environments.py in __linux_start_process__(self, binary_path, task_key, gl_version, verbose, show_viewport)
    626         try:
--> 627             loading_semaphore.acquire(10)
    628         except posix_ipc.BusyError:

BusyError: Semaphore is busy

During handling of the above exception, another exception occurred:

HolodeckException                         Traceback (most recent call last)
<ipython-input-5-7df39fdb4b7a> in <module>
      2 import numpy as np
      3
----> 4 env = holodeck.make("UrbanCity-MaxDistance")
      5
      6 # The UAV takes 3 torques and a thrust as a command.

~/anaconda3/envs/pytorch/lib/python3.7/site-packages/holodeck/holodeck.py in make(scenario_name, scenario_cfg, gl_version, window_res, verbose, show_viewport, ticks_per_sec, copy_state)
     89         param_dict["window_size"] = window_res
     90
---> 91     return HolodeckEnvironment(**param_dict)

~/anaconda3/envs/pytorch/lib/python3.7/site-packages/holodeck/environments.py in __init__(self, agent_definitions, binary_path, window_size, start_world, uuid, gl_version, verbose, pre_start_steps, show_viewport, ticks_per_sec, copy_state, scenario)
    100             if os.name == "posix":
    101                 self.__linux_start_process__(binary_path, world_key, gl_version, verbose=verbose,
--> 102                                              show_viewport=show_viewport)
    103             elif os.name == "nt":
    104                 self.__windows_start_process__(binary_path, world_key, verbose=verbose)

~/anaconda3/envs/pytorch/lib/python3.7/site-packages/holodeck/environments.py in __linux_start_process__(self, binary_path, task_key, gl_version, verbose, show_viewport)
    627             loading_semaphore.acquire(10)
    628         except posix_ipc.BusyError:
--> 629             raise HolodeckException("Timed out waiting for binary to load. Ensure that holodeck is "
    630                                     "not being run with root priveleges.")
    631         loading_semaphore.unlink()

HolodeckException: Timed out waiting for binary to load. Ensure that holodeck is not being run with root priveleges.

Version Information:

Platform / Version [e.g. Ubuntu 16.04]
Holodeck Version (output of holodeck.util.get_holodeck_version(0.3.1'))

Have you ever solved this problem? I meet the same question.
Traceback (most recent call last):
File "/home/titanium/anaconda3/envs/neusis/lib/python3.7/site-packages/holoocean/environments.py", line 783, in linux_start_process
loading_semaphore.acquire(10)
posix_ipc.BusyError: Semaphore is busy
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/pycharm/pycharm-community-2023.1.3/plugins/python-ce/helpers/pydev/pydevd.py", line 1496, in _exec
pydev_imports.execfile(file, globals, locals)  # execute the script
File "/opt/pycharm/pycharm-community-2023.1.3/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/home/titanium/1ubuntu/Holosimulation/uuv-sonnar-simulator/myTankSimulator.py", line 39, in
with holoocean.make(scenario) as env:
File "/home/titanium/anaconda3/envs/neusis/lib/python3.7/site-packages/holoocean/holoocean.py", line 103, in make
return HoloOceanEnvironment(**param_dict)
File "/home/titanium/anaconda3/envs/neusis/lib/python3.7/site-packages/holoocean/environments.py", line 158, in init
show_viewport=show_viewport)
File "/home/titanium/anaconda3/envs/neusis/lib/python3.7/site-packages/holoocean/environments.py", line 785, in linux_start_process
raise HoloOceanException("Timed out waiting for binary to load. Ensure that holoocean "
holoocean.exceptions.HoloOceanException: Timed out waiting for binary to load. Ensure that holoocean is not being run with root priveleges.
python-BaseException

hwgao1101

I've seen your work with HoloOcean on your Git. Could you share what Ubuntu version you used?


[Req] implement current node key getter

I recently came along to a problem, which case i needed the current child's key.
Coz, the docs is not full i dig into to code and realized that its much easier if i extend it with the following:
get rawPair():Observable<any> {
        return this.valueRaw.map((data) => {
            return {
                key:data[0].key(),
                value:data[0].val()
            }
        });
 }

So its not a good way to handle this problem, but it would be nice to have a way to access the key and not just the value.
regards, david

Just use valueRaw and use the key() and val() functions. It will work exactly the same as you expect.


update packages

:white_check_mark: Build TheIdServer 7.4.7-fix-dependencies1-0241 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/52f56f2069 by @invalid-email-address)


update to 1.0.0rc0

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

OK so the builds are failing because it can't find the package medpy, which is not available in conda-forge but only in bioconda.
I can reproduce this error locally with default channel settings, but once I manually add the simpleitk and bioconda channel in my build environment, the build succeeds.
This, however, should be handled by changing the channels settings in conda-forge.yml, as documented here, but apparently it's not working as expected.
Any ideas?

Hey @mariusvniekerk just want to see if you have any expert insight about this? Please let me know what you think!

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Non noarch packages should have python requirement without any version constraints.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

so I make sure everything can be installed from conda-forge except medpy. I gave up conda-installing that and fall-back to pip post-link scripts.
There is also this: https://github.com/bioconda/bioconda-recipes/pull/28229 that would make things much easier, but we'll see whether that happens in time.

@zsinnema any idea why the windows build keeps failing?
I also noticed same behavior when you pushed that "empty" commit: ce254816b3ee5cda5e8417ee2a4b97830a1c8924
any idea what that failed?

@zsinnema any idea why the windows build keeps failing?
I also noticed same behavior when you pushed that "empty" commit: ce25481
any idea why that failed?

@phildong I see the last win build are okay. I assume this is an "old" question and that this is solved

@zsinnema  well I'd still like to know exactly which dependency is causing the conflicts in windows build so we can keep an eye on it in the future, but I guess now we know it's one of the packages changed in 3ea2307.
Looking good to merge?

lgtm


Add note about 3.7-3.9 PV resizing

Description
Check each of the following when appropriate to help reviewers verify work is complete.
Modifying an existing version

[ ] I modified operator permissions in the OLM CSV and operator.yml
[ ] I modified the operator deployment in the OLM CSV and operator.yml
[ ] I modified operand permissions in the OLM CSV and ansible role
[ ] I modified CRDS in the OLM CSV and ansible role

Adding a new release version

[ ] I created a new z release directory in deploy/olm-catalog/crane-operator
[ ] I updated channels in the crane-operator.package.yaml
[ ] I created a new release directory in deploy/non-olm
[ ] I created or updated the major.minor link in deploy/non-olm
[ ] I updated the spec.skips parameter in the CSV

@djwhatle @jmontleon Addressed your feedback and added the command for restarting Restic Pods.


Cleaning up a weird statement in the statement executor

The statement used a variable from outside of the function and redefined
that variable on the same line when it was unnecessary. Cleaning up the
code so it's easier to understand.

This can be simplified further to: err = e.normalizeMeasurement(node, defaultDatabase). There is no need for an if check or an explicit return.
While you're there can you swap out return for return err at the bottom of the NormalizeStatement method. Naked returns equals no-no.

I'm not sure why people hate naked returns so much, but sure. I didn't realize it was unnecessary anyway.


Fix zarrmscale DataProcess metadata

Added pipeline suffix output to n5tozarr and zarrmscale tasks for easier identification of standalone runs of the capsules.


Remove process.env usage from the core

If we try to use this package in Vite (SPA) project, it will throw an error Uncaught ReferenceError: process is not defined on client-side, as Vite is using import.meta.env instead of process.env.
So, the fix is to remove all the existing process.env usage.

Note that Astro is an exception, as most of the code are run/build in Node runtime, which the process.env is always available.

You just need to define the skipValidate option and this wont be hit. This is also stated in the docs.
Atleast thats how my tests have been concluded. Do you see other behavior?

@juliusmarminge Just notice that side note in the docs, but the explanation wasn't clear enough why the library reference process.env, even though the doc kinda mention about SKIP_ENV_VALIDATION a bit, but it shows as an example instead of mentioning that the library will use it internally.

IMO having to specify the skipValidation option in order to workaround the problem doesn't feel framework agnostic to me😕


ADDING new SECTION for USER advices and  informing bugs

I would like to create a seperate page or section for  advices and other suggestions section which is more admirable for websites like these so that if any developer finds any bug or improvements in your website ,then he or she can directly contact to you , as I will link a  api to your email account ,if you provide me ur email details after assigning me the project.ONCE IF HE OR SHE CLICK ON SUBMIT THEN YOU WILL GET AN EMAIL SHOWING ALL THESE INFORMATIONS.(SHOWIN IN 3rD IMAGE)

THERE in the description the website users can share some suggestions and share their email address to connect with you and also I could PROVIDE A LITTLE MORE IMPROVEMENTS .

THIS WOULD LOOK LIKE THE SCREENSHOT ABOVE  AND I WILL MAKE SOME CHANGES ACCORDING TO THE NEEDS OF YOUR WEBSITE
IF YOU LIKE MY NEW FEATURE ,KINDLY ASSIGN IT TO ME UNDER  GSSOC'2024 .waiting for your response

Can you assign me

@gitshanmukh123 if u visit the live website and see carefully the feature u want to implement  is already there but because of css properties its button shifted as   i have two devices and when i give a look through both of my devices of different screen size then the button is appear on

small screen (upto 14' ) but
partially visible on large screen (>14') as it get shifted towards bottom

so may it matter of css
I created a new Issue for this please have a look on that issue #32

sorry for it , can you assign me that issue under #32 and close this issue

This feature is already there in the website under "Facing an issue?" button. So, I'm closing it.


Mosn add support for OpenSSL

The New Feature
mosn add support for OpenSSL
Your scenes

the version of mosn crypto package is go-1.9, still not support tls1.3
openssl have more powerful feature than go tls
mosn need to support GM cipher, but most of GM implements are in openssl
use openssl can easier get the ability of hardware speedup

Your advice
mosn could use cgo to implement the ability of supportting openssl
Environment
linux, darwin(macos)

MOSN Version
v1.10 and later

golang 1.13 enabled TLS 1.3 default, maybe upgrade golang version can resolve this problem.

golang 1.13 enabled TLS 1.3 default, maybe upgrade golang version can resolve this problem.

actually we need more powerful control of TLS，such as some speed up of ciphersuites , and we also need China SM cipher support. Thoose features are difficult to implement in golang. So we choose cgo-openssl

Will it be any perf issue to use cgo to implement the ability of supportting openssl? will it possible to support both golang TLS and openssl?
Thanks,

Will it be any perf issue to use cgo to implement the ability of supportting openssl? will it possible to support both golang TLS and openssl?
Thanks,

Yeah... cgo do have some performance problem, but it depends on the situation, cgo call would be a regardless cost, but most algorithm have a better performance in C. In our practice, algorithm like SM4, RSA would get a lot acceleration when use cgo.
In real tls handshake scene, cipher like ECDHE-RSA-AES128-SHA would get a better performance when use cgo, cipher like ECDHE-ECDSA-AES128-SHA only get half performance of native go tls
In mosn scene, sidecar would hold  a continuous link between each other, cgo call happens frequently in symmetric algorithm, cgo call would get a better performance in SM4 related cipher, but worse than AES related cipher.
Actually what we need is to get the powerful ability of openssl, go native tls is too slow to follow up various of new TLS feature.

Will it be any perf issue to use cgo to implement the ability of supportting openssl? will it possible to support both golang TLS and openssl?
Thanks,

Sure we would provide a Switch to you for choosing whether use this feature

Moreover，we find that using cgo-openssl to deal with whole tls process would cause serious performance problem, So we choose use cgo-openssl to take over some cipher calculate process only

@william-zk Thanks for sharing this kind of info. From my view, main concert is TLS1.3 supporting and performance. Currently envoy proxy (using BoringSsl instead of openSSL) still has problem to support TLS 1.3 in client side, please refer https://github.com/envoyproxy/envoy/issues/9300, which is blocking issue for my case.


fix(ui5-proxy-middleware): support usage inside connect servers

When using the dev-approuter (https://www.npmjs.com/package/dev-approuter) to run UI5 and CAP applications inside the @sap/router from a monorepo then the server is using connect and not express. In those scenarios, similar like with livereload only the basic http response object from Node.js is available and the status function is not available which leads to an INTERNAL SERVER ERROR. By using the writeHead, write and end function of the response object the function is agnostic to the used server and works in both scenarios.

Hi @zdravko-georgiev ,
please get in touch with @nicoschoenteich - he has the project setup for this new dev-approuter with which you can also validate the fix. I tested it locally by manually fixing it in the node_modules.
BTW: when you search for res.status in this repo, you can find additional places which may have issues in such connect scenarios: adp-tooling, preview-middleware. They are not required to be fixed for now - but just FYI. It would be great to get this one fixed, so that the proxy-middleware can be used with the dev-approuter.


Integrate caching to improve image fetching performance

What are the Django built-in caching options?
Image pre-fetch in QuerySet?
Does MinIO have any caching capabilities?


Quagga: Ospf6d #124

Hi,
first of all, thanks to @fabianfrz for the new easy to read (copy) code in the OSPF module!
I copied it and renamed to ospf6. Quagga itself uses ospf6 (and ipv6), so I choosed ospf6.
Only the menu uses OSPFv3, since this is the name of the protocol itself. I think this is quite consistent.
The networks tab was removed since it's not available in ospf6. Also authentication is not available!
I added the router-id and make it required Y. This could be changed to N but it's quite hard to debug when you have a IPv6-only network.
I already installed the branch to my test environment and it looks good:
Please review @fabianfrz and @fichtner

exactly 600 lines ;)

You probably need to extend this file:
https://github.com/opnsense/plugins/blob/master/net/quagga/src/opnsense/service/templates/OPNsense/Quagga/quagga
I made it only for IPv4 - probably also add it for ripng so it will be automatically picked up if a module is created.

Hm, for me it looks fine, but perhaps we have to revert redistribution with
ospf6d when there's no other service serving IPv6
2017-05-03 13:27 GMT+02:00 Fabian Franz<EMAIL_ADDRESS>
You probably need to extend this file:
https://github.com/opnsense/plugins/blob/master/net/
quagga/src/opnsense/service/templates/OPNsense/Quagga/quagga
I made it only for IPv4 - probably also add it for ripng so it will be
automatically picked up if a module is created.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/opnsense/plugins/pull/143#issuecomment-298885317, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ATfeoX_gI_JbafTkcTKtGqeDSpu3m7duks5r2GSFgaJpZM4NPK3x
.

I'll update the redistribute since it's not completely supported:
http://www.nongnu.org/quagga/docs/docs-info.html#Redistribute-routes-to-OSPF6

@fichtner I have added your requested changes and will merge it.

@mimugmail Thanks I have merged it now.


BUG: Docker for Mac stable or beta locks up (beachball)

Description
After downloading either Docker for Mac stable or beta, running the Docker app appears to fail; no app starts, no Docker whale appears in the toolbar. Docker does not appear to be installed (e.g.: no links appear in /usr/local/bin). Running a ps ax|grep Docker reveals:
599 zbeckman:bin$ ps ax|grep Docker
 4312   ??  S      0:00.11 /Applications/Docker.app/Contents/MacOS/Docker -psn_0_2105858

Steps to reproduce the issue:

Download the latest release (stable) or beta release
Drag Docker.app to /Applications
Double-click on Docker.app

Describe the results you received:
Docker.app appears to beachball. No icon appears in the toolbar.
Describe the results you expected:
I expected to see the Docker whale in my toolbar and have an operational Docker system.
Additional information you deem important (e.g. issue happens only occasionally):
Running /Applications/Docker.app/Contents/Resources/bin/docker-diagnose generates the following output:
OS X: version 10.12.1 (build: 16B2657)
Docker.app: version: 1.12.3 (583d1b8)
Local time: Wed Nov 16 10:06:46 EST 2016
UTC:        Wed Nov 16 15:06:46 UTC 2016
Timestamp:  20161116-100646
Running diagnostic tests:
[ERROR]   docker-cli       cannot find docker
Error docker -v: timeout after 10.00s
[OK]      Moby booted
[ERROR]   driver.amd64-linux com.docker.driver.amd64-linux -db is not running
[ERROR]   vmnetd           /private/tmp/vmnetd/com.docker.vmnetd is not running
[ERROR]   osxfs            com.docker.osxfs is not running
[ERROR]   db               Connection refused (ECONNREFUSED) connecting to /Users/zbeckman/Library/Containers/com.docker.docker/Data/s40: check if service is running
[ERROR]   db               com.docker.db is not running
[ERROR]   slirp            Connection refused (ECONNREFUSED) connecting to /Users/zbeckman/Library/Containers/com.docker.docker/Data/s51: check if service is running
[ERROR]   slirp            com.docker.slirp is not running
[OK]      disk
[OK]      menubar
[OK]      environment
[OK]      Docker
[OK]      VT-x
Error docker -v: got timeout (docker -v: exit 127)
[OK]      kern.hv_support
Error exec: echo "00000003.0000f3a6" | nc -U /Users/zbeckman/Library/Containers/com.docker.docker/Data/@connect > /tmp/2A7766C2-0B78-4EB6-ABB8-53EF34A03F8A/20161116-100646/diagnostics.tar: exit 1

Output of docker version:
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      darwin/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Output of docker info:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Additional environment details (AWS, VirtualBox, physical, etc.):

More info (and a fix, but I think this is still a legit bug):
Resolution
After reading up on #8 and #107, I tried a lot of hacking. Finally... after many attempts, doing this:
sudo launchctl remove com.docker.vmnetd

And running Docker.app seems to have solved the problem. Docker is now functioning correctly as far as I can tell.
Seems there should be some kind of check in the app so a dead process and a beachball is not the only result.

Please can you open docker for mac specific issues in https://github.com/docker/for-mac/issues and include a diagnostic ID. This repo is for docker engine specific issues, so I am closing this here.

Issue opened: https://github.com/docker/for-mac/issues/961


'MacOS 19.6.0' is not supported by the plugin Homebridge Apple TV Enhanced.

Current Situation
When plugin/childbridge starts on Mac OS Catalina latest i have this WARNING
Logs
'MacOS 19.6.0' is not supported by the plugin Homebridge Apple TV Enhanced. You will likely experience problems. However, you may get the plugin to work on your system.

Configuration
{
            "mediaTypes": [],
            "deviceStates": [],
            "remoteKeysAsSwitch": [
                "turn_off",
                "turn_on"
            ],
            "customInputURIs": [],
            "discover": {
                "unicast": [
                    "192.168.xx.xx",
                    "192.168.xx.xx"
                ],
                "blacklist": [],
                "multicast": false
            },
            "name": "Apple TV Enhanced",
            "avadaKedavraAppAmount": 15,
            "disableVolumeControlRemote": false,
            "forceVenvRecreate": false,
            "logLevel": 4,
            "_bridge": {
                "username": "0E:34:62:xx:xx:xx",
                "port": 39061
            },
            "platform": "AppleTVEnhanced"
        }

Environment

OS: Mac OS Catalina 10.15.7
Homebridge: 1.7.0
Apple TV Enhanced: v0.7.1-1
Node: v20.10.0
npm: 10.2.3
Python: 3.9.4

Additional Context
No response

This is expected. Like the Warning says, I do not officially support MacOS. Though, it might run alright since Unix is similar to Linux.

This is expected. Like the Warning says, I do not officially support MacOS. Though, it might run alright since Unix is similar to Linux.
Generally speaking, I wouldn't recommend to host any server application on a Mac.

I see your point. My question is about the displayed os version from future ;)
BTW homebridge has been working on my 12 y.o. mac mini for 3 years, but not only hb. node-red, mosquitto, z2m, influxdb, grafana - all works fine.
thanks for you hard work!

This is what node is returning. It's probably the kernel version, though I am not a Mac expert or have used a Mac ever 😉. Would be nice if you could confirm if this is the kernel version.
https://github.com/maxileith/homebridge-appletv-enhanced/blob/f132856df54ee2db3a76a709b78454b89eb5b474/src/checkOS.ts#L13

This is what node is returning. It's probably the kernel version, though I am not a Mac expert nor have I ever used a Mac 😉. Would be nice if you could confirm if this is the kernel version.
https://github.com/maxileith/homebridge-appletv-enhanced/blob/f132856df54ee2db3a76a709b78454b89eb5b474/src/checkOS.ts#L13

y're rignt :-)
uname -a
Darwin NVR.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 21 21:18:39 PDT 2022; root:xnu-6153.141.66~1/RELEASE_X86_64 x86_64

@maxileith sorry to ask here. how about a fix release  with a mac address issue? https://github.com/maxileith/homebridge-appletv-enhanced/issues/20

As described in #20 I currently wait for the next release of pyatv, which will include postlund/pyatv#2282.

in your experience, how long can it take?

Is there no other way to add the MAC addresses of apple tvs that I know?

in your experience, how long can it take?

I have written everything I know so far in issue #20. Everything else would be speculation. However, it is very likely that this issue will be fixed until the end of the year.
These projects are maintained by passionate people in their free time. Sometimes the private life just does not allow to review a PR on the same day. It may take it's time. So never stress any FOSS developer nor stress anybody else in their freetime.
Other people are waiting since November 6th for a fix of this issue.


glfw window not showing when not creating OpenGL context

 Issue by karroffel
Tuesday Apr 18, 2017 at 23:45 GMT
Originally opened as https://github.com/Cloudef/wlc/issues/260

When trying to create a glfw windows without using a client API (aka not creating an OpenGL context) then the window doesn't display.
#include <stdio.h>

#include <GLFW/glfw3.h>

int main()
{
        if (glfwInit() != GLFW_TRUE) {
                fprintf(stderr, "Couldn't initialize glfw\n");
                return 1;
        }

        glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);

        // if you comment out this line then it works just fine.
        glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);

        GLFWwindow *window = glfwCreateWindow(1280, 720, "sway test", NULL, NULL);

        while (!glfwWindowShouldClose(window)) {
                glfwPollEvents();
        }

        glfwTerminate();

        return 0;
}

(compile with clang/gcc filename.c -lglfw)
Neither the wayland or the x11 build of glfw work.
Works on:

weston
plasma wayland
GNOME wayland

Doesn't work on:

sway
orbment

Both sway and orbment use wlc, so the problem might lie here somewhere.

@karroffel doesn't work on weston for me though

@Enerccio the glfw-x11 or glfw-wayland doesn't work on weston?

I tried with glfw-wayland

What exactly doesn't work though? Can't initialize? Does the window just not show? It shows but shows crap?
Because if you use glfw without an OpenGL context it doesn't have a proper framebuffer assigned, so it's expected to show random stuff from VRAM.
Does it work with the x11 version though? I don't really care which one works as long as I can develop applications using Vulkan 😄

window does not show, cpu spins like crazy

x11 version opens window (not in xwayland, outside in normal x windows)

Do you have the line commented out? Because if you have it commented out then it creates an OpenGL context.
If you don't have it commented out then I'm clueless and it's probably something with my machine or so

I do not have it commented out. FWIW when I do comment it out, no window gets created (tested with wayland version) and it fails on assert


Just released my own fantasy console: DreamBox

Would like to suggest my own fantasy console for this list, which I just released the very first alpha build of: DreamBox.
It's NYOP on itch.io, heavily inspired by the 2nd-gen consoles of the 2000s (completely fixed-function 3D pipeline, no multi-texturing, no hardware T&L, displays at 640x480, PCM sample playback support, MIDI playback support), and runs WASM games! :)
https://dreambox3d.dev/
https://crit-chance-studios.itch.io/dreambox

Hi, your console looks great and it has a potential, it is well made and has good documents. However I could not add the current version to the list, because it is lack of "easy to start with", in particular, it requires too many external installations before get started. One important attraction of fantasy consoles is that as a user, I can get everything ready to use within one or two clicks.

Thanks for the feedback!
As of now, DreamBox has a brand new Rust SDK and everything needed to create a new project is published on Cargo, so the setup process has been significantly simplified and can be performed in just a few commands, relying on only a single external installation (the Rust toolchain):
cargo install dbsdk-cli
dbsdk-cli new hello-dreambox
cargo add dbsdk-rs
dbsdk-cli build .

Was this more in line with what you were thinking?

Added, thanks for the info! Feel free to update it with future changes.


Concurrency in parallel runs.

Use a concurrent dictionary for managing the proxy managers and handlers
for parallel runs. It is possible that the child runs end up at the same
time. It is necessary for ParallelProxyOperationManager to be thread safe.
Remove MemoryTraceWriter for data serializer since it is not thread safe.
Enabled the parallel integration tests.
Fixes #292 #836

@dotnet-bot test Windows_NT / Debug Build please


Update NEWTON logo

I would like to update the logo on our token because the original one was incorrect.
The PR is #17434
Thank you!

I'm submitting a ...
[ ] bug report
[x] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

Summary

Other information (e.g. detailed explanation, stack traces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

...Just to be clear, the original asset that was uploaded is ok, but the URL in solana.tokenlist.json was pointing to the wrong place.
Fixed in this PR.


Add capability to load tweakers from plugin jars

That title wasn't me stuttering.
I thought about this for a long time but big servers ultimately make sweeping changes to the server to fulfill their unique needs. Many of times these changes are basically their intellectual property; they'll keep it in house.
To attract these servers, I want to give them front and center first class support in their endeavors by enabling tweakers. For those who have no idea what tweakers are, basically you'll be able to use Mixin from a plugin.

[x] Be able to load Mixins from plugin jars
[ ] Load tweakers from plugin jars

@Mumfrey @gabizou
Tagging you two on this one.

We would need some form of annotation of sorts or addition to the mcmod.info file that SV can pre-scan and class load beforehand. My thoughts would be that it'd require a very specific "API" to use to just reside as a "core mod" of sorts as we do not want to instantiate the main plugin objects. Normal class loading issues that coremods tend to cause comes to mind, but that's besides the point ;)

You cannot "load a tweaker from a plugin", however you could package a tweaker with a plugin. This is basically already supported in FML so it's hardly controversial.

We would need some form of annotation of sorts or addition to the mcmod.info file that SV can pre-scan and class load beforehand. My thoughts would be that it'd require a very specific "API" to use to just reside as a "core mod" of sorts as we do not want to instantiate the main plugin objects. Normal class loading issues that coremods tend to cause comes to mind, but that's besides the point ;)

The contract for tweakers is already established. Tweakers are specified in the manifest using the TweakClass key. Having spongevanilla parse this key would be pretty trivial, however I strongly suggest that if this is done, then support for the ModType key is added as well, since the current systems which load tweakers (FML and liteloader) will respect this key with respect to injection. I suggest that SpongeVanilla should honour this contract as well.
Generally I'm in favour of this, but if it's done then personally I think it should be done in line with the way existing systems do it in order to maintain consistency. Respecting ModType is a very important part of this, since a plugin jar containing a tweaker is more likely to be version-specific (unless the author is very clever indeed).

@Mumfrey
You're well aware what I meant. Plugin in this context is the artifact that SV would load.
Its controversial because SV is meant to be a very Vanilla server with plugins being contained to a point. Tweakers mean its anyone's game.

You're well aware what I meant. Plugin in this context is the artifact that SV would load.

Updated title to reflect that.

Its controversial because SV is meant to be a very Vanilla server with plugins being contained to a point. Tweakers mean its anyone's game.

Since it's using launchwrapper haven't they been able to do this all along (through a roundabout route) by just passing in a tweak class on the command line though? This seems to be just an enhancement in that it will parse the tweaker from the manifest.
As I said, I'm basically in favour of this because if you try to restrict people then they'll just find hacky ways to do what they want, and so adding first class support for something means you can handle it more gracefully. In the first instance, this certainly means that (unlike if they use the command line) SV will be able to report (and warn of) plugins which bundle tweakers when crashes occur for example. SV can say "hey, remove this plugin first if you're having issues".
Literally the only downside that I see is that via the command line makes it very clear to the end user that their server is being messed with (since they're the ones doing the messing! :smile: Silently loading a tweaker from a jar is less obvious but could be mitigated for example by requiring the load-tweakers-from-jars functionality to be explicitly turned on by the server admin (allowing plugins to have basic functionality without their tweakers but "enhanced" functionality if it's turned on, for example) or maybe just have a first-time prompt where the admin has to issue a command or type yes to enable the functionality after acknowledging a disclaimer. It's all good UX in terms of allowing the functionality but being able to make admins aware of the pitfalls.
For example in liteloader I add loaded tweaks to the mods list, but provide a little tooltip which effectively says "here be dragons, if shit breaks then remove this first".

Oh yes, another good idea might be to use the same system I enforce with liteloader. Which is that since tweakers can't be explicitly versioned (the contract doesn't provide for it), insist that tweakers can only be loaded from the versioned subfolder under mods.
Basically LL will read mods from mods but LL's loading behaviour stipulates that versioning is specified in the metadata, what I do for tweaks is only ever parse them from mods/{version} in order to provide a level of protection against loading tweakers which are incorrectly versioned. This puts the responsibility for ensuring stuff doesn't break on the user rather than it being liteloader's fault.

@Mumfrey Looking at the Liteloader source code it seems like you also support a MixinConfigs manifest option. Is that something that would be also useful to implement for SpongeVanilla so plugins wouldn't even need to include a tweaker but rather just the entry in the manifest when using Mixin?

@Minecrell It would certainly be better from a "blast radius limitation" point of view to just support mixins in plugin jars rather than providing wholesale support for tweakers. LiteLoader doesn't really have a concept of "core mods" vs. "normal mods" per se, everything is basically just boiled down to enumerated containers which contain "stuff" are are handled appropriately based on their actual contents (eg. things which could contain a tweaker (or transformer) are TweakContainer and such).
MixinConfigs is actually a mixin-supported annotation, and will be parsed accordingly by the mixin launch handler. LiteLoader takes over enumeration procedure because it's better than doing it twice. LL also supports mixinConfigs in the litemod.json which similarly elevates container to tweak-level (injected into ACL rather than LCL, injected early startup rather than late).
LL delegates injection to the container object as well, this prevents duplicate injections.

@Mumfrey
Would it be better to just load Mixin configs? Its a lot easier to pin point issues from a Mixin vs. some plugin's arbitrary ASM code they are invoking via a tweaker.

Would it be better to just load Mixin configs? Its a lot easier to pin point issues from a Mixin vs. some plugin's arbitrary ASM code they are invoking via a tweaker.

Almost certainly yes! Not only that, tweakers get pretty much free reign in terms of their access to the game, not just transformers but other functionality too. They really are the top of the food chain when it comes to interacting with the game.
If the end goal is just to support mixins in plugin jars, then this is basically like using a hydraulic press to crack a cheeto. In all honesty the best approach for that would be to support a custom manifest key (eg. SpongePluginContainsMixins or something like that :smile_cat:), inject the jar early and feed it to mixin for consumption :cake:.

I heavily support this change. As someone who's done a lot of in house development for large servers, it is often a massive pain to implement their features - specifically with pets etc, that require reimplementing an entire Entity subclass.

@Mumfrey It is likely people would want the same functionality for mixins for both SpongeVanilla and SpongeForge. Is there any easy way we could also make it work for SpongeForge? Although in this case people would often also want a separation of common/Vanilla/Forge mixins, similar to the way we need them in SpongeVanilla and SpongeForge.

@Minecrell yes, you could achieve this by just supporting TweakClass but only actually doing anything if the mixin tweaker is specified.

@Mumfrey I see! Though we would still need a way to only enable a specific Mixin config if we're either in Vanilla or Forge environment so plugins could easily support both platforms.

Could likely introduce a Sponge specific annotation for the tweaker class to signify what type of tweaker environment it is? Since the tweaker is already mixin dependent and (for some obvious reasons SpongeCommon at least) dependent, could very easily load the tweaker as appropriate.

@Mumfrey I see! Though we would still need a way to only enable a specific Mixin config if we're either in Vanilla or Forge environment so plugins could easily support both platforms.

That's up to the mixin to handle.

Could likely introduce a Sponge specific annotation for the tweaker class to signify what type of tweaker environment it is? Since the tweaker is already mixin dependent and (for some obvious reasons SpongeCommon at least) dependent, could very easily load the tweaker as appropriate.

The tweaker would never actually be loaded.

That's up to the mixin to handle.

In what way can this be controlled by the mixin itself?

In what way can this be controlled by the mixin itself?

By using a config companion plugin

@Mumfrey
You mean like we could for example add the config classes in SpongeCommon so plugins would only need to reference them?

You mean like we could for example add the config classes in SpongeCommon so plugins would only need to reference them?

No, I mean that any mixin set can supply a companion plugin. For example in sponge each of our mixin sets has a related plugin which determines whether all mixins in the set get applied by querying a configuration value.
If mixins require environment-specific application behaviour this is exactly what the plugin is for, the plugin determines which mixins can be applied. We could probably provide a static helper which saves plugins having to detect the environment themselves, the plugin can then figure the rest out. For example consider this snippet for a plugin in one of my litemods:
@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName)
{
    if (mixinClassName.contains("fml"))
    {
        return ObfuscationUtilities.fmlIsPresent();
    }
    return true;
}

@Mumfrey
Yeah, I was referring to pre-defined config classes so there would be a simple way for Plugins to detect that, of course a static helper would also work.

@Minecrell
I have no desire in enabling tweakers. With Mixin, they are not necessary. Consider this closed.

@Zidane even with mixins, there are other things that you fundamentally cannot do with mixins, such as the superclass transformer et al.

@gabizou
Our goal is to support only Mixins. If a large server approaches us with a worthwhile use case, it'll be reconsidered. Not devoting time to a feature for the <1%


Feat: Add decorator function to register custom components

Description
Closes #1360.
I am opening this PR in draft mode to get early feedback on the idea. (cc @hwchase17, if you are unavailable, can you please tag someone else to check this out? thanks!)
Note: There are still some bugs related to setting up the registry while importing langchain but if others find this idea worth working on, I will continue.
Changelog

✨ added base register decorator function
✨ added register_tool and register_llm_tool decorator functions to register tools for agents
⚡ updated load_tools to use registry dictionaries created by the above register decorator functions

That's great to hear!
I don't think there are any downsides right now because my changes are meant to be backwards compatible. But I do think I'm limiting the potential of this feature. Right now, I am targeting tools and agents. Can you please suggest other components (if any) which can benefit from this register feature?

i think tools and agents are teh main ones - those are the ones that we "load from a string reference" the most/only

alright! I will focus on them for now.

@hwchase17 I will need some guidance to update the docs. Where do you suggest I add documentation for this feature?

@hwchase17 I will need some guidance to update the docs. Where do you suggest I add documentation for this feature?

i can help with docs! fair warning, it may be a bit before i have cycles to review and get this in properly (we'll probably want to do in typescript at the same time)

i can help with docs! fair warning, it may be a bit before i have cycles to review and get this in properly (we'll probably want to do in typescript at the same time)

That's alright. In the meantime, I can work on implementing this feature for typescript. I am mainly a python user but this can be a good exercise for me to learn typescript.

stale, closing for now. let me know if there's anything in here we still want


Skipping unsupported runtime layer: name: "base"

When starting up Envoy, it will log:
[2019-08-14 17:54:50.092][1][info][main] [source/server/server.cc:438] runtime: layers:
  - name: base
    static_layer:
      {}
  - name: admin
    admin_layer:
      {}
[2019-08-14 17:54:50.092][1][warning][runtime] [source/common/runtime/runtime_impl.cc:497] Skipping unsupported runtime layer: name: "base"
static_layer {
}

This is causing some confusion. What does this mean?
It seems like Envoy is trying to create some runtime layer "base" that it doesn't even support?
It seems to me, having no knowledge of runtime layers, that either

Envoy shouldn't create this "base" layer
Envoy should "support" this "base" layer
Envoy should not warn about not supporting the base layer

Reproduce by running docker run --rm -p 10000:10000 envoyproxy/envoy-dev:e1d713efc1342790208a86b7ba795d692b47f443

cc @htuch and @asraa who has been looking at this recently. Can we make this more clear and/or fix if there is a default issue?

I believe this was just caused by #7251 and the case is missing because nothing needed to be done in LoaderImpl for that layer specifier case. Envoy shouldn't be logging a warning since this base layer is being used. Snapshots pull this static layer directly from the config_. I'll defer to @htuch to confirm (and I can take care of it if that seems right).

@asraa correct, if you want to take care of the fix that SGTM. Thanks.

Confirmed fixed. Thanks @asraa!


Add Servers autostart

Could you please add options for servers to autostart on boot?
For TeamSpeak is a very good option.
Also it would be nice if user can batch delete ports from allocation in node, when i added 100 of them i got to remove them one by one.
Thx for your support.

duplicate of #136


NPM still lists WTFPL license

The NPM registry still lists this package as falling under the WTFPL license even though it's changed to MIT.  Can you publish the last update so it reflects on the npm registry?

Good catch 👍
I'll see if I can update in the next few days unless someone beats me to it

Should be fixed by 8.0.1

Thanks for the quick turnaround!  Was doing a license audit for work and noticed this discrepancy.  Appreciate it!


Add lightweight alternative to MongoDB in core-data

The actual databases in core-data are MongoDB, which doesn't work in arm 32 bits devices and also uses 1GB hard disk only to create all needed collections, and InfluxDB, which have a very low performance compared to MongoDB, specially in a device with few resources. So should be fine to add a lightweight alternative for devices with few resources.
After analyze and test different options (MongoDB, InfluxDB, MariaDB, PostgreSQL, SQLite, Badger, tiedot...), seems BoltDB is a good lightweight alternative to MongoDB. The main points do decide BoltDB over other alternatives are:

Works in arm 32 bits devices
Use low RAM, CPU and storage
It's an embedded go database, so no need to use CGO or install anything

If it's fine and there are no suggestions to use another lightweight database, I will add the option to use BoltDB in core-data.
Finally I want to share some benchmarks results comparing BoltDB with MongoDB, InfluxDB and MariaDB. The values are in microseconds, and the lower, the best:

In general, MongoDB have the best performance adding entries, and BoltDB have the best performance getting entries.

@jduranf - it was decided at this past week's face-to-face TSC meeting that EdgeX will indeed find a replacement for the current reference implementation using Mongo.  Work is ongoing to help provide more loose coupling in the Go code around resources like the database.  This will be done for Delhi.  We also made plans to  complete a research on options and alternatives with a decision to be made by next TSC F2F in the fall and target the actual replacement by Edinburgh.

@jpwhitemn thank you for your feedback!
My idea isn't to replace Mongo, I think Mongo is a valid option for a device with normal resources (although in the benchmarks I performed doesn't seems to have good results in some tests). I think should be fine to have two databases options, Mongo and another lightweight alternative.
Also my company can't wait for Edinburgh to have a Mongo replacement, so I will start working with Bolt, if there isn't any other lightweight suggestion. Anyway, if in the next TSC F2F it's decided to use a key-value database, almost all key-value go databases have similar interface, so most of the code will be reused, and I will be glad to help replacing Mongo (and Bolt) with this new database.

@jduranf a few questions:

What made you discard PostgreSQL?
Bolt vs Badger?
Redis?

@drasko

I also tried PostgreSQL, but have worst results compared with MariaDB, except when adding an event or reading:

Badger is very similar to Bolt, and some benchmarks say it's faster when adding values, but Badger doesn't have buckets (is a kind of collections), and Badger doesn't work in arm 32 bits (I tried it).
I didn't thought about Redis, and maybe it's a good option. But my idea was to reduce the resources requirements, and after trying MongoDB, MariaDB, PostgreSQL and InfluxDB, I reach the conclusion the best option it's to use an embedded go database. Using an embedded go database you can reduce a lot the requirements, so that's why I choose Bolt, because is one of the most popular embedded go databases.

w/r/t Redis, members of their tech staff were at the F2F last week. They are interested in contributing a provider to the project. They plan to  start on that after the California release is out.

@tsconn23 @jduranf this is exactly why I mentioned Redis :)
@jduranf maybe I understand something on your diagram, but Postgres show pretty good performance here, better than MariaDB and better than BoltDB.
I'd say that SQLite also shows pretty good performance.
Benefits of having Postgres comparing to Bolt is that Postgres is full SQL DB that can work in variety of deployments, and can do complex SQL constructs, JOINs and other stuff that we'll need when we start grouping users and devices into organizations. i am not sure how Bolt can handle these.
Also, using Go's sql package we can abstract many SQL DBs and achieve support for all of them with the same code. This way in fog/cloud scenario Postgres can be used. On more constrained devices, SQLite can be used.

@tsconn23 @jduranf this is exactly why I mentioned Redis :)
@jduranf maybe I understand something on your diagram, but Postgres show pretty good performance here, better than MariaDB and better than BoltDB.
I'd say that SQLite also shows pretty good performance.
Benefits of having Postgres comparing to Bolt is that Postgres is full SQL DB that can work in variety of deployments, and can do complex SQL constructs, JOINs and other stuff that we'll need when we start grouping users and devices into organizations. i am not sure how Bolt can handle these.
Also, using Go's sql package we can abstract many SQL DBs and achieve support for all of them with the same code. This way in fog/cloud scenario Postgres can be used. On more constrained devices, SQLite can be used.

@drasko I think you understand wrong my diagram (or I didn't explain correctly), in the diagram you see the time to perform the operations (1000 times each one) in microseconds, so less time is better Also take in account is a logarithmic diagram. This are the values used to create the diagram:
| MongoDB | InfluxDB | BoltDB | MariaDB | SQLite | PostgreeSQL
-- | -- | -- | -- | -- | -- | --
AddReading | 71 | 3592 | 1167 | 2054 | 4441 | 1509
Readings | 65026 | 18861 | 3573 | 1510 | 4570 | 1642
ReadingCount | 39 | 15499 | 25 | 22 | 20 | 129
ReadingById | 44 | 521 | 4 | 29 | 81 | 155
ReadingsByDevice | 5591 | 643 | 283 | 39 | 114 | 183
AddEvent | 191 | 4786 | 1274 | 7022 | 4440 | 2432
Events | 5584210 | 2734619 | 29949 | 2483144 | 1358123 | 2481175
EventCount | 38 | 23663 | 28 | 24 | 20 | 135
EventById | 274 | 3227 | 31 |   |   |
EventsForDevice | 58722 | 27349 | 523 | 1716 | 13250 | 24751
MariaDB have much better results than PostgreeSQL. For example, to retrieve 1000 events with 5 readings each one, MongoDB takes 5.5 seconds, MariaDB 2.4 seconds and BoltDB 29 milliseconds, so in this case BoltDB is much faster.
Regarding sql package, you can't use the same code using MariaDB and PostgreSQL, they use different semantics when using variables, so although the code is very similar, it isn' the same. I don't know what will happen with other sql databases.
Finally, the main problem with SQLite is it requires CGO, and this is an important problem if you have to cross compile.

@jduranf thanks a lot for these clarifications and benchmarks - extremely useful.
Regarding Postgres - not everything is in pure performance, there is a lot in database functionality, as I said. It should be also noted that Cockroach DB uses Postgres pq driver, so it can be in-place replacement when some more scalable deployments are needed (in the cloud). It is also worth examining SQLite support via the same code if Go's sql package can support it - maybe here not so much change is needed as for MariaDB.
Bolt is definitely great choice for gateway deployments (note: bbolt should be used, as original Bolt repo is not maintained any more), but we need to understand can it satisfy all the requirements regarding the functionality - as I described (JOINs, organizations, etc). Also - it should be noted that Redis Labs will become (or already is) EdgeX Foundry member, and I think that Redis can provide similar functionality as Bolt.
In general - I think that Bolt can cover gateway use-case, but I think  that it would be safer to go with DB that can scale-up to fog/cloud scenarios (Popstgres/Cockroach) and scale down to gateway with exactly the same code (Postgres/SQLite).
There will be a big discussion open on this topic soon I think, as it has been mentioned on recent F2F meeting in California.

@jduranf Great stuff.
Would also be good to know image size and memory usage for each of the alternatives.

@drasko As you said, not everything is performance, and I'm sure lots of the benchmarks results can be improved (i.e. which is the point to read 1000 events, if there is a limit of 100 and everything is discarded?)
Also I confirm to you that MariaDB and SQLite have the same interface, and maybe SQLite is a good option for gateways, but SQLite requires CGO, and I think this should be avoided.
@SteveOss In general adding any database (MongoDB, InfluxDB, BoltDB, MariaDB or PostgreeSQL) increases the final size by about 0.5 MB. The exception is with SQLite, which increases the image size by more than 6 MBytes. Also take in account using any database except BoltDB and SQLite you must install the database, which usually is more than 30 MB.

@jduranf If the database image uses another base image (not Alpine) then this can add a fair bit of image size overhead.

@jduranf amazing stuff :)
How can we go about adding Redis to your diagram and measurements? I'd be happy to implement the thing if you'll point me in the right direction.

@itamarhaber Might be worth holding on this as I think the Redis guys themselves are planning to contribute a Redis port.

@SteveOss actually @itamarhaber looks like Redis guy ;).
And I guess he demanded access to benchkmarking code from @jduranf so he can add Redis metrics.

Exactly what @drasko said, but demanded is too strong of a word IMO - I asked for help :)
My plan is to:

Get edgex-go up and running locally - done.
Implement redis-client - in progress.
Add it to @jduranf benchmark somehow.

Would appreciate any pointers WRT 2 and 3.

@itamarhaber should be great to add Redis in the benchmark!
In order to add Redis you should create an interface for Redis in /core/data/clients, like it's done with Mongo, Influx or Memory. You don't have to implement all functions, only the used for the benchmark.
Finally, add the Redis benchmark file, like it's done with Mongo, and run the benchmark! (something like go test -bench=Redis -tags redisRunning).
If you want, I can run the benchmark in my computer, so all the results will be comparable. Also, if you need more help, maybe should be better if you write an email directly to me.

@jduranf thanks!
I'm working along this path (i.e. I think I have createNewClient and maaaybe closeSession ;)) - I'll try to complete the musts based on the benchmark and share with you asap.
I'm itamar at redislabs dot com - can't seem to find yours.

@itamarhaber Before you start in earnest on this, I request that you review the work done in PR #298. This PR will go in after the California release. @feclare reorganized the package structure w/r/t database providers, clarified interface definitions and reworked how package-specific factories initialized DB providers. You will want your Redis client to fit into this structure. Core-data and core-metadata each have their own interface and we currently have one Mongo type that satisfies them both. Redis could probably do the same.

@tsconn23 thanks for the tip - I'm working with the current unstable just so we can do a quick benchmark. Once things are sort-of-working, I'll refactor according to the new structure.

Here are the methodology and benchmark results for my experimentations with Redis: https://gist.github.com/itamarhaber/086dcb35692745ad0f1ff492676b47c7
Summary of results

Benchmark
MongoDB (micro/op)
RedisDB_Embedded (micro/op)
RedisDB_TCP (micro/op)
RedisDB_UDS (micro/op)

AddEvent
352
193
201
189

AddReading
146
35
76
69

EventById
553
15
146
99

EventCount
94
3
45
31

Events
475,972
12,713
100,022
67,734

EventsForDevice
47,433
1,216
10,039
6,801

ReadingById
111
4
48
32

ReadingCount
103
3
45
31

Readings
3,658
1,681
1,466
1,429

ReadingsByDevice
725
162
230
216

@jduranf it would be awesome if you can test your implementations with this as well

@itamarhaber I will not be able to test Redis implementation until end of August (I will be on vacations).
Anyway, I'm curious to know it there is persistence using Redis or not (I'm not a Redis expert), specially with embedded implementation.

@jduranf enjoy your vacations (plural, I envy you :))!
I installed both Mongo and Redis using the defaults. I don't know about Mongo, but Redis' defaults are such that the data is persisted to disk so it is durable and survives failures. Redis can be configured as a pure in-memory database (and thus provide even better performance in some cases), but I don't think that's appropriate in this use case.

Closing this issue as there is the Data Persistence Group working on it.


PR template

I did not see our template yet from .github/PULL_REQUEST_TEMPLATE.md. Do you know if it appears after this is merged in master @aberonni ?

Do you know if it appears after this is merged in master @aberonni ?

@RubenGeo yup

AB#31460


A few issues with SpongeEventFactory

The following events are unable to be created with the factory:
achievement.GrantAchievementEvent
data.ChangeDataHolderEvent
entity.ExpireEntityEvent
entity.HarvestEntityEvent
statistic.ChangeStatisticEvent
The following events have createX() methods but shouldn't (these are 'base' events):
action.InteractEvent
action.CollideEvent.Impact
block.TargetBlockEvent
entity.AffectEntityEvent
entity.TargetEntityEvent
entity.explosive.TargetExplosiveEvent
entity.explosive.TargetFusedExplosiveEvent
entity.item.TargetItemEvent
entity.living.TargetAgentEvent
entity.living.TargetLivingEvent
entity.living.humanoid.HandInteractEvent
entity.living.humanoid.TargetHumanoidEvent
entity.living.humanoid.player.TargetPlayerEvent
entity.projectile.TargetProjectileEvent
game.state.GameStateEvent
item.inventory.AffectItemStackEvent
item.inventory.AffectSlotEvent
item.inventory.TargetContainerEvent
item.inventory.TargetInventoryEvent
server.ClientPingServerEvent.Response
server.ClientPingServerEvent.Response.Players
user.TargetUserEvent
world.TargetWorldEvent
world.chunk.TargetChunkEvent

Which ones are still valid? GrantAchievementEvent, for example, no longer exists.

Given server.ClientPingServerEvent.Response and server.ClientPingServerEvent.Response.Players are not even events, are they still created by the factory?

PR merged


feat: awaitable connect

You can now await for the transport client to connect.  This makes it a lot easier to capture errors and know when the connection is established
BREAKING CHANGE: ConnectClient has been replaced by ConnectClientAsync

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1

Complexity decreasing per file
==============================
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1

Complexity decreasing per file
==============================
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3

Complexity decreasing per file
==============================
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3

Complexity decreasing per file
==============================
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3

Complexity decreasing per file
==============================
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 27

Complexity increasing per file
==============================
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3
- Assets/Mirror/Runtime/Transport/Tcp/Server.cs  1
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1

Complexity decreasing per file
==============================
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 26

Complexity increasing per file
==============================
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3
- Assets/Mirror/Runtime/Transport/Tcp/Server.cs  1
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1

Complexity decreasing per file
==============================
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1

Clones added
============
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4

Clones removed
==============
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 6
- Added 25

Complexity increasing per file
==============================
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  3
- Assets/Mirror/Runtime/Transport/Tcp/Server.cs  1
- Assets/Mirror/Runtime/Transport/Telepathy/Client.cs  1

Complexity decreasing per file
==============================
+ Assets/Mirror/Runtime/Transport/Tcp/Client.cs  -1
+ Assets/Mirror/Examples/ListServer/ListServer.cs  -1

Clones added
============
- Assets/Mirror/Runtime/Transport/Tcp/TcpTransport.cs  1
- Assets/Mirror/Tests/Editor/Tcp/TcpTest.cs  8
- Assets/Mirror/Tests/Editor/Telepathy/TransportTest.cs  4
- Assets/Mirror/Runtime/Transport/TelepathyTransport.cs  1

Clones removed
==============
+ Assets/Mirror/Tests/Editor/FallbackTransportTest.cs  -1
+ Assets/Mirror/Tests/Editor/MultiplexTest.cs  -1
+ Assets/Mirror/Tests/Editor/FallbackTest.cs  -1

See the complete overview on Codacy


Render traffic lights in camera observations

Closes #1994.

Scenario used for testing:
4lane_t_signals.zip

Good work! My only question now is if we should change the RGB colour of the ego vehicle.
@Adaickalavan

Then everything regards ego agent color in SMARTS has to be changed, like pictures and etc, and maybe the models have to be retrained as well.
Maybe we could consider to change the color of red light instead, like adding a color in RGB like trafficlight_red=(254,255,255), visually there shouldnt be much difference compared to (255,255,255), but code-wise there's difference and we dont have to touch all the current ego-agent-related stuff at all.

Vision based policies will have difficulty distinguishing between similarly coloured objects, such as the red-coloured ego and red traffic light.
All existing documents and example gifs uses red to represent the ego. Therefore, to minimise any change needed, we may consider changing the red traffic light colour to a different shade of red such as maroon (128, 0, 0) which has non-negligible difference in rgb value compared to that of red (210, 30, 30).

If the red traffic light colour is changed in the rgb image, similar change will be needed in Envision.

I have changed the color of the stop signal to burgundy.

Internet search claims the following rgb values:

Maroon = (128, 0, 0)
Burgundy = (128, 0, 32)

I had preferred Maroon since it is further away from our current Red = (210, 30, 30).
Our current "Burgundy" = (127, 0, 1) seems to be actually closer to Maroon and thus probably mislabelled. Our current "Burgundy" does not seem to be used anywhere in the code. Hence, we could consider rectifying the label and value.


bau: fix firefox instances starting up for all tests

The check to force firefox in the feature tests had caused FF to start
on every test. This is super annoying, so we think we should just remove
the check for now.
Authors: @richardtowers @datamineruk
@chrisholmes @tunylund - discussion / premature merges welcome :trollface:

I don't think this error will occur often enough that it requires its own check that will impact the speed of tests therefore I am happy to remove it.


Update webjob packages

A few questions:

Why are you updating these manually? In general these fields get updated based on the release items in our DevOps and I suspect these items are currently missing there. So we should be running the Prepare-Release on these packages to get the correct data.
Is this a problem for other languages as well? Can we normalize the display and service names for these packages across languages.
When you mark a library New=true then the RepoPath cannot be NA, it should be the service directory assuming it is in the mono repo and follows the conventions and if it doesn't follow the conventions I'd like to understand as all the new libraries should.

A few questions:

Why are you updating these manually? In general these fields get updated based on the release items in our DevOps and I suspect these items are currently missing there. So we should be running the Prepare-Release on these packages to get the correct data.

I wasn't sure what drove the automation. I just ran:
.\Prepare-Release.ps1 Microsoft.Azure.WebJobs.Extensions.ServiceBus
and I do not see a corresponding Devops work item.

Is this a problem for other languages as well? Can we normalize the display and service names for these packages across languages.

These packages are .NET only.

When you mark a library New=true then the RepoPath cannot be NA, it should be the service directory assuming it is in the mono repo and follows the conventions and if it doesn't follow the conventions I'd like to understand as all the new libraries should.

So it should be blank rather than NA, right?

https://dev.azure.com/azure-sdk/Release/_workitems/edit/7854/ that is the release item that was created/updated when you ran the Prepare-Release. I see that it is currently marked as "new library"= false in that release item. We should be sure we actually want to treat these extensions libraries as new libraries by default our script doesn't set that to true unless the package starts with "Azure" see. And in which case our automation doesn't update the csv for libraries that aren't new.

We might not have webjobs for other languages but we do have WebPubSub, which you seem to be updating here.

For the doc links they are usually NA or blank but for the repo link we need the servicedirectory there in order to produce the correct path.

https://dev.azure.com/azure-sdk/Release/_workitems/edit/7854/ that is the release item that was created/updated when you ran the Prepare-Release. I see that it is currently marked as "new library"= false in that release item. We should be sure we actually want to treat these extensions libraries as new libraries by default our script doesn't set that to true unless the package starts with "Azure" see. And in which case our automation doesn't update the csv for libraries that aren't new.

Ah I didn't see that in the all-up query, but I see that the work item number it is output from the script itself. It should be New because we are updating these packages to follow T2 guidelines and use Azure.Core. The naming is staying the same as it currently is, so that is probably tripping up a lot of the automation.

We might not have webjobs for other languages but we do have WebPubSub, which you seem to be updating here.

Yes, WebPubSub should have an SDK for all languages. I assume this should be updated through the same process of running the release script, so I think will close this PR.

For the doc links they are usually NA or blank but for the repo link we need the servicedirectory there in order to produce the correct path.

This should be handled through the workitem automatically as well I think.

Yes my recommendation is to close this issue and make sure the workitems are updated correctly and then the automation should fix these entries.

Closing.. will update work items instead.


Specify Server Fn Paths

Add an option to specify the full server fn paths, so that one could define an API for external consumption with Leptos server Fns. Should close #1061

Looks good to me! Thanks, Ben.


Setting to disable automatic message collapse

By default Zulip client will collapse large messages. While this may be helpful in many situations, when you only want to skim through, it obstructs the reading experience in a channel with many substantially sized messages which you want to read through.
They don't even have to be that large, as the collapse logic depends on the viewport size.
I'd wish to add a setting to disable the automatic collapse of the messages. As was pointed out to me in the corresponding topic in Zulip's chat, one may want to have a per-organisation rules on whether to collapse the long messages or not (e.g., collapse in large orgs with lots of messages, and avoid collapsing in smaller ones), so I assume the org-settings is the best fit for it.
If this feature request is accepted, I could work on it to get it in as soon as possible.
In case someone has a better alternative in mind, to solve the issue without introducing a setting, I would be interested to discuss that too.

Let's finish the discussion in https://chat.zulip.org/#narrow/stream/137-feedback/topic/Disabling.20show.20more/near/1624808; I think some version of this feature will be accepted but we should consider its structure.
https://zulip.readthedocs.io/en/latest/tutorials/new-feature-tutorial.html will be helpful if you choose to contribute this!


Update verifiable-credentials-configure-tenant.md

Add clarity on granting admin consent for the API Permissions. I dont see option to add file so the URL to granted-admin-consent-app-api-permissions-verifiable-credentials.png will need to be changed to media/verifiable-credentials-configure-tenant/granted-admin-consent-app-api-permissions-verifiable-credentials.png from https://user-images.githubusercontent.com/28261714/148814197-c5e581a4-51c4-4347-a157-6d8d9bf65029.PNG

@premgan : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

#please-close


Refactor/update deps

:tada: This PR is included in version 1.10.4-rc.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

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


Dev: Message button briefly show with current user profile after logging in from profile deeplink

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Login with any account, copy url to your profile (Setting => Share code => Copy url to clip board)
Logout of current user, paste the link to the browser and press enter.
Login with that user again.
Notice that the ProfilePage of current user has Message button for a while then disappears.

Expected Result:
Message button shouldn't appear with current user profile.
Actual Result:
Message button briefly show with current user profile after logging in from profile deeplink.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: Dev 1.3.36-4
Reproducible in staging?: n/a
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/619c76b7-b58d-4e1f-96b8-0a0133ba4d32
Expensify/Expensify Issue URL:
Issue reported by: @hungvu193
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1688527891566419
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Message button briefly shows with current user profile after logging in from profile deeplink.
What is the root cause of that problem?
We're checking in here, if current user email is included inside loginList to hide the message button:
https://github.com/Expensify/App/blob/7e908b17565e7bf659309f4b4d95141e70094ab9/src/pages/ProfilePage.js#L126
When user is logged in from deeplink, loginList will be empty for a while, so the condition above will be false and made the Message button visible until loginList is loaded.
What changes do you think we should make in order to solve the problem?
We should wait until loginList is loaded (isLoadingReportData: false) then show the button.
    {!props.isLoadingReportData && !isCurrentUser && !Session.isAnonymousUser() && (
        <MenuItem
            title={`${props.translate('common.message')}${displayName}`}
            icon={Expensicons.ChatBubble}
            onPress={() => Report.navigateToAndOpenReportWithAccountIDs([accountID])}
            wrapperStyle={styles.breakAll}
            shouldShowRightIcon
        />
    )}

        isLoadingReportData: {
            key: ONYXKEYS.IS_LOADING_REPORT_DATA,
        },

What alternative solutions did you explore? (Optional)
N/A

Very close to https://github.com/Expensify/App/issues/19994 closing as dupe


Spring Cloud Stream Kafka 4.0.0 Tombstone: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "result" is null

When upgrading to Spring Cloud Stream Kafka 4.0.0 tombstone messages no longer work and result in a
java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "result" is null
	at org.springframework.cloud.function.cloudevent.CloudEventsFunctionInvocationHelper.doPostProcessResult(CloudEventsFunctionInvocationHelper.java:138)
	at org.springframework.cloud.function.cloudevent.CloudEventsFunctionInvocationHelper.postProcessResult(CloudEventsFunctionInvocationHelper.java:114)
	at org.springframework.cloud.function.cloudevent.CloudEventsFunctionInvocationHelper.postProcessResult(CloudEventsFunctionInvocationHelper.java:48)
	at org.springframework.cloud.stream.function.StreamBridge.send(StreamBridge.java:175)
	at org.springframework.cloud.stream.function.StreamBridge.send(StreamBridge.java:143)
	at org.springframework.cloud.stream.function.StreamBridge.send(StreamBridge.java:139)

I have distilled the problem down into the following test which works fine in previous releases but breaks in Spring Cloud Stream Kafka 4.0.0
@SpringBootApplication
@SpringBootTest
@TestPropertySource(properties = {
    "spring.cloud.stream.bindings.test-out-0.destination=test"
    ,"spring.cloud.stream.kafka.bindings.test-out-0.producer.configuration.key.serializer=org.apache.kafka.common.serialization.StringSerializer"
    ,"spring.cloud.stream.kafka.bindings.test-out-0.producer.configuration.value.serializer=org.springframework.kafka.support.serializer.JsonSerializer"

})
public class KafkaNullTest {

  @Autowired
  private StreamBridge streamBridge;

  @Test
  void testName() throws Exception {
    String id = UUID.randomUUID().toString();
    Message<KafkaNull> kafkaEvent = MessageBuilder
            .withPayload(KafkaNull.INSTANCE)
            .setHeader(KafkaHeaders.KEY, id).build();
    streamBridge.send("test-out-0", kafkaEvent);
  }

}

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.0.1</version>
		<!--version>2.7.5</version-->
	</parent>
	<groupId>uk.co.ii</groupId>
	<artifactId>spring-cloud-fucntion-zipkin</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>spring-cloud-fucntion-zipkin</name>
	<description>Demo project for Spring Boot</description>
	<properties>
	    <sonar.projectKey>${project.artifactId}</sonar.projectKey>
		<java.version>17</java.version>
		<spring-cloud.version>2022.0.0</spring-cloud.version>
		<!--spring-cloud.version>2021.0.5</spring-cloud.version-->
	</properties>
	<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-stream-kafka</artifactId>
        </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
        <finalName>${project.artifactId}</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
</project>

if you downgrade to spring boot 2.7.5 and cloud 2021.0.5 then the tombstone message works as expected

i am facing issue with my code. how to fix this?

I am facing the same issue in this project https://github.com/ivangfr/spring-cloud-stream-event-sourcing-testcontainers when using Avro. I am using spring-boot 3.0.2 and spring-cloud 2002.0.1

any update?

I am facing the same problem in a Kotlin project with latest version of Spring Cloud Stream.
Converting KafkaNull to null makes the consumer invocation to fail with a null pointer.

In previous versions, the consumer receives a message with the headers that I use to identify the message key. With the latest version this is no longer possible as the whole message is converted to null (not the payload).
What's the reason for the null conversion?

With this change in place, how do we handle deletion use-case where you need to delete a record on the database based on the key of the Message?

We introduced a regression with this commit. It is now addressed. See this issue for more details: https://github.com/spring-cloud/spring-cloud-function/issues/1060.

@sobychacko how can we update to latest version , do not see 4.1.0 in maven central and neither does the 4.0.4 version has any updates after July 27th, can you help here and point me to the artifact for 4.0.x version where it is fixed

4.1.0 is not GA yet. The RC1 is in the week of 10/23. GA is next month. I'm not sure when we will do the next GA for 4.0.x yet.

I am using spring-cloud-function-context 4.0.5 but getting same error

@akibandali This is released as part of Spring Cloud Stream 4.1.0 which is available via spring cloud 2023.0.0.

Thanks, @sobychacko, can you confirm if it is fixed in 4.0.x?

4.0.x versions of both Spring Cloud Stream (4.0.5) and Spring Cloud Function (4.0.6), where the regression is addressed, are going to be part of Spring Cloud 2022.0.5, which is getting released [this week], (https://calendar.spring.io/). Please watch the announcements on spring.io for updates on the release.

@sobychacko I tried with the version 4.1.0 and 4.0.5 and still facing the issue, can you please help with the version where this is fixed?

@sambhav8695 Could you tell me what is not working? The original issue or the regression that was introduced from the fix. The changes are part of both of those versions. If you give us more details or a sample app where we can quickly reproduce the issue, we would be happy to take a look further. Also, this is a closed issue. Rather than commenting on this one, I suggest creating a new issue and then linking this one to the new one.


geo, embouchment (logical-conflict)

This pull request was generated by the 'mq' tool

/trunk merge


migration模块不支持

Q
A

Bug report?
no

Feature request?
yes

Swoft version
v.2.0.1

Swoole version
x.y.z (by php --ri swoole)

PHP version
v7.1.27

Runtime environment
Mac

Details

Describe what you are trying to achieve and what goes wrong.

// paste output here
migration模块并为完善，只是创建了migration表

Provide minimal script to reproduce the issue

// paste code

2.0.3 会支持迁移脚本

下下周哈


Jesse: Watch georgewizardrecoveryhome.com

Jesse requests the watch of the watch_keyword georgewizardrecoveryhome\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

Approved by Jeff Schaller in Charcoal HQ


pick_node returns slave node for write commands

when enableSlaveRead = true, pick_node sometimes returns a readonly slave, for commands that is not readonly. e.g. set, sadd, etc.

Hi
Yes enableSlaveRead shall always be used at readonly scenario for redis cluster slave node is readonly.
Update document for this case.

close as of now


[Class 003] - Fix code

Description:
in the c++ hello example we are returning 1 instead of 0, it won't make any difference for this case but may confuse some students.
Goals:

Fix hello.cpp main function return

Adding a new class, so moving this 1 up

Fix was made on issue #11 .


AWS S3 Source Storage not displaying images

Describe the bug
I have a LabelStudio project where I had successfully synced an AWS S3 source cloud storage. However, after a while the images just stopped displaying, instead just the following error message:
There was an issue loading URL from $image value
Things to look out for:
    URL is valid
    URL scheme matches the service scheme, i.e. https and https
    The static server has wide-open CORS, [more on that here](https://labelstud.io/guide/storage.html#Troubleshoot-CORS-and-access-problems)
Technical description:
URL: XXX

Surprisingly, this phenomenon also occurs with any newly created project with new buckets, even though.

"Check connection" during setup results in a "successfully connected",
the correct number of images is displayed during the first synchronization and
the corresponding set of tasks is created with the correct file names and paths.

So only the display doesn't seem to work anymore.
To Reproduce
Steps to reproduce the behavior:

In a new project go to "Settings - Cloud Storage - Add Source Storage".
Select "Storage Type: AWS S3". Enter Bucket Name, Region Name, Access Key ID and Secret Access Key ID and click "Treat every bucket object as a source file".
Test the connection, save and synchronize.
View the project and find out if the images or an error message are visible in the tasks.

Expected behavior
The synchronized images should be displayed.
Environment (please complete the following information):

Label Studio Version 1.6.0rc5

There seems to have been a temporary communication problem between LabelStudio and Amazon - all images are back today...

bump, intermittent cors issues displaying images in hosted in S3 with all actually correct cors headers and huggingface spaces deployment `
FROM heartexlabs/label-studio:hf-latest ...

I'm getting CORS errors as well when I turn on pre-signed URLs. CORS policies are correct and if I try to hit the pre-signed url directly I get this error:
SignatureDoesNotMatch
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

@saskra did you get any resolution? i am also facing same issue

Hi @saskra
I am facing the same kind of error but with audio.
The connection to my source S3 bucket is successful and I sync the correct number of objects (only 2 audio in my bucket for test).
My label-studio is deployed in an EC2 instance with appropriate role and policies.
I also added the following CORS configuration to my S3 source bucket, which I found in label-studio doc:

Is it the correct configuration or are there things to add or modify?
Have you seen some improvements on your side?