Prepare for bloom release 0.1.0

The rolling releases are failing due to a lack of ROS1.
23:10:32 -- Checking for module 'roscpp'
23:10:32 --   No package 'roscpp' found
23:10:32 CMake Error at CMakeLists.txt:28 (message):
23:10:32   Failed to find ROS 1 roscpp, cannot build.
23:10:32
23:10:32
23:10:32 -- Configuring incomplete, errors occurred!

The fix is to cherry-pick the following changes onto the rolling release branches:
https://github.com/ros2-gbp/rosbag2_bag_v2-release/pulls?q=is%3Apr+is%3Aclosed
@emersonknapp let me know if you want me to take care of it. A new bloom-release is not needed.

Yeah @Karsten1987 would you mind taking it on? I'm trying to figure out the foxy fast-forward situation at the moment - the PR builder won't accept the branch if it's not a true fast-forward, so i have to rebase the master stuff onto the diverged foxy commits, i think


[SPARK-44656][CONNECT][FOLLOWUP] Close Iterators in SparkResult as well.

What changes were proposed in this pull request?
Follow-up to https://github.com/apache/spark/pull/42298
This makes sure that iterators processed through SparkResult are also properly closed.
Specifically, this introduces the following changes:

SparkResult recognises CloseableIterators and will call close on them when destructed.
ExecutePlanResponseReattachableIterator becomes CloseableIterator which consumes all it's elements when closed
The client code is refactored to not use mix of java.util.Iterator and scala Iterator. In the current code there is a lot of logic processing iterators both before and after they are converted from java to scala, this moves the conversion much earlier in iterator lifetime to make almost all the code work with scala iterators only.
CloseableIterator moved one level up

Why are the changes needed?
Properly closeable iterators are needed for session reconnection.
Does this PR introduce any user-facing change?
No
How was this patch tested?
TBD

cc @juliuszsompolski @hvanhovell

Merged https://github.com/apache/spark/pull/42304

Thank you @cdkrot . I continued working on it and incorporated it in https://github.com/apache/spark/pull/42331. That should supersede this.

Yep, seems you captured my changes in that PR so I'm closing this


Support camelCase shourtcuts for configuration selection in dependencies/dependencyInsinght task

Currently --configuration parameter in dependencies and dependencyInsight tasks requires user to type full configuration name.
I propose add NameMatcher-based support for camelCase in command line parameter to improve CLI UX like it done for projects and tasks selection.
In case of ambiguous configuration selected by camel case task should fail.
Expected Behavior
gradle dependencies --configuration ruC should work same as gradle dependencies --configuration runtimeClasspath if ruC there's only one configuration with such abbrev.
Current Behavior
Configuration not found
Context
Current zsh gradle autocompletion don't support configurations (and it would be be quite costly to do so) and when you investigate dependency resolution problems it would be useful.
Also I brought idea in gradle community slack #general and it found some support.

Thanks for the feature request.
I edited the first paragraph which mentions --dependency and not --configuration.

@ljacomet thanks for correction, it was around 3 am when I submitted this issue)

@grossws Sorry for the late reply. Your PR makes sense. I'll give it a more thorough review.


How can community members best engage with Red Hat Product/Engineering in this repo?

Hello all,
I am trying to figure out the best place to have a conversation with Red Hat teams on oc-mirror.
The support case route tends to not be a good place for longer-form conversations, as that mechanism is optimized for resolve & close customer reported problems.
I recognize the complexity of supporting multiple versions of Open Shift, oc-mirror, etc across multiple enclave types; along with the balance between developing in-the-open and internal Red Hat discussions.
All that said, I, along with other oc-mirror users, need a good mechanism to have a conversation with the oc-mirror development team with regards to issues uncovered with using oc-mirror to replicate Platform, Operator and Container images to offline/disconnected instances.
If there is a better mechanism than Github issues, can we get the README.md or https://github.com/openshift/oc-mirror/blob/main/CONTRIBUTING.md updated with the best way to engage?
I sincerely desire to help improve oc-mirror, but at this point feel like there is no way to adequately communicate with the team.
Thank you,
-Sol

@BadgerOps - Thanks for raising this point.  We have an internal RedHat slack channel, not sure if you are outside RedHat that you would be able to access it (#forum-oc-mirror fyi).
I think for now lets use GitHub issues,  we can exchange emails etc and work out a way to communicate if thats ok ?

Hi @lmzuccarelli  thank you for the response.
I believe that GitHub issues is a good path forward, from an open conversation standpoint - which hopefully will benefit the entire community using the openshift tools, specifically oc-mirror.
While I recognize, and empathize with the difficulty of juggling multiple areas of communication, I believe it would be very helpful for some of the Red Hat product and technical leadership to be actively involved in discussions raised in the GitHub repos. There are obviously already some good examples of this happening, but it doesn't seem consistently a priority.
As someone who's been on that side of the conversation multiple times, I want to emphasize that I understand - but truely believe that better engagement on this platform is necessary.
Again, thank you for the response and I look forward to collaborating with you and the team as we utilize oc-mirror and the surrounding tooling in our environment.
Thank you,
-Sol

edit: I re-wrote the title, I don't want it to sound adversarial, but rather looking for collaboration.


FileVault / Hibernation Configuration

Hi,
As your script seems to be more "aggressive" than conservative (not saying this as a negative, quite the opposite), would you consider verifying hibernation modes and FileVault key destruction on sleep with pmset and configuring the following?
Hibernatemode to 25
Destroyfvkeysonstandby to 1
Thanks!

What exactly does the hibernatemode change? The destruction of the key makes total sense to me.

Hibernation modes -> 0 (disabled), 3 (Smart - it sleeps and prepares the hibernation file) and 25 disables sleeps, so memory is empty and resume only happens from the hibernation file.

Awesome! Added in https://github.com/SummitRoute/osxlockdown/commit/748e354f0675a07e7dc8793c9c0563347428a72c

actually, such settings will turn off some notebooks instead of sleeping, you may check long explanation and the fix there: https://derflounder.wordpress.com/2014/02/12/power-nap-power-management-settings-and-filevault-2/


postgresqlreceiver doesn't have all metrics

In ops-agent github doc, it says it has 7 metrics. While in the ops-agent 2.9.0, there are only 4 that are ingested.

The missing metrics are:
postgresql.blocks_read
postgresql.rows
postgresql.operations

I can see those metrics names came from:
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.41.0/receiver/postgresqlreceiver/metadata.yaml
As i don't see we exclude any metrics, thus It might be upstream issue.
Also, we may want to test complete metrics name in https://github.com/GoogleCloudPlatform/ops-agent/blob/master/integration_test/third_party_apps_data/applications/postgresql/metric_name.txt @qingling128 @martijnvans

There are two different vectors of collection in the postgresql collection. The 4 metrics you have are collected from a default client (usually against postgres database), and the other 3 metrics must be collected from a client that connects to each database individually. It would seem that your authentication method doesn't give access to the other databases present OR you have no non-template databases present on the instance other than the default.
Can you check your logs to see if there are any errors from the opentelemetry-collector component of the ops agent?

Side note: One thing we'd like to see is improved test coverage for metrics. Now that https://github.com/GoogleCloudPlatform/ops-agent/blob/master/integration_test/third_party_apps_test.go is fully open sourced, we should adjust it to verify a list of metrics for each application. @dehaansa Let's discuss in the next sync to see whether we could get this prioritized.

This seems to have been fixed


Feat/add checksums

Let's add sha256 checksums to the release page

What about doing the sum calculation in the release job and then write all sums into a single checksums.txt, same as done for kustomize for example: https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.4


Apply textIsSelectable = true for FeedFragment text (お知らせ)

Overview (Required)

Probably we share wifi SSID and password.
It is useful when user copying that.

🤚

This is high priority task! So thank you very much!  Assigned 👍

This pull request reverted.
We should use textIsSelectable = true. But we should not break the layout.


Error when downloading or building the docker image

When building the image:
Damn-Vulnerable-GraphQL-Application# docker build -t dvga .

---> Running in ab8d18a1f4c3
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.13/main: temporary error (try again later)
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/main: No such file or directory
ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.13/community: temporary error (try again later)
WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.13/community: No such file or directory
ERROR: unable to select packages:
curl (no such package):
required by: world[curl]
The command '/bin/sh -c apk add --update curl' returned a non-zero code: 1
When downloading the image:
Damn-Vulnerable-GraphQL-Application# docker run -t -p 5000:5000 -e WEB_HOST=<IP_ADDRESS> dvga
Unable to find image 'dvga:latest' locally
docker: Error response from daemon: pull access denied for dvga, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

Hi,
Did you run the following commands?

docker pull dolevf/dvga
docker run -t -p 5000:5000 -e WEB_HOST=<IP_ADDRESS> dolevf/dvga

You're right I didn't see it in the README, thank you, it worked

I updated the README to make it a little clearer as a result of this submission, so thank you 👍


feat(app): add include to RedirectOptions

Closes #268

Types of changes

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

Description

Add an include option to RedirectOptions. If set, only routes matching the supplied regex are considered for redirects.
Checklist:

[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes (if not applicable, please state why)

Thanks for the feedback. I've force pushed with the two changes :)


eScience Course: 31/10-11/11 2022 (plus 28-30 November for remote presentations of final results).

Clivar is ending very soon and we have another course coming. Very similar needs e.g. 17 students + 10 mentors (see https://www.aces.su.se/research/projects/escience-tools-in-climate-science-linking-observations-with-modelling/). I will create a repo (same as for Clivar); the organisers would also be happy if someone can deliver some of the trainings (mostly focusing on Dask + kerchunk because the rest is covered in-house).

My first question is: do we keep the CLIVAR Jupyterhub and reuse it for this eScience course or will we have a new (elastic) infra?
Any volunteers for teaching (online) Dask and/or kerchunk? (I understood they are flexible but should probably happen 1st or 2nd November).

Clivar is ending very soon and we have another course coming.

Great to know, thanks!

do we keep the CLIVAR Jupyterhub and reuse it for this eScience course?

I discussed with CESNET and after 21st Oct we need to scale down the CLIVAR JupyterHub, removing first the worker nodes with  the hpc.16core-64ram-ssd-ephem flavors. Specifically, CESNET would like to have back 15 out of the 20 hpc.16core-64ram-ssd-ephem nodes that we are currently using, as they are being requested by other research groups. If @j34ni and @guillaumeeb struggle to identify which worker nodes to remove from the cluster, please contact me.

will we have a new (elastic) infra?

Tests are still ongoing between @guillaumeeb, Miguel and myself. I would say that manual scaling is still preferred.

Very similar needs e.g. 17 students + 10 mentors

According to what I see in grafana, we should be covered after removing 15 VMs of the hpc.16core-64ram-ssd-ephem flavor for this upcoming workshop. We could add more elixir.16core-64ram nodes instead, but as I see that we will have less users, we will check as we go.
Additionally, please remember to submit an application to https://c-scale.eu/call-for-use-cases/ to gain access to additional resources to what you have in EGI-ACE so we could host multiple JupyterHub/DaskHub instances at the same time. Actually, I would be greateful if you could spread the link to the C-SCALE call through your networks (i.e. the European Pangeo community) so others can also benefit from these resources.

do we keep the CLIVAR Jupyterhub and reuse it for this eScience course?

I discussed with CESNET and after 21st Oct we need to scale down the CLIVAR JupyterHub, removing first the worker nodes with the hpc.16core-64ram-ssd-ephem flavors. Specifically, CESNET would like to have back 15 out of the 20 hpc.16core-64ram-ssd-ephem nodes that we are currently using, as they are being requested by other research groups. If @j34ni and @guillaumeeb struggle to identify which worker nodes to remove from the cluster, please contact me.

I would suggest to deploy a new pangeo-eosc or pangeo-egi fresh infrastructure, even if Elastic scaling is still not completely working. I assume we can stop clues2 service to avoid auto-scaling issue if needed? But continuing with the other infrastructure is fine too.

Any volunteers for teaching (online) Dask and/or kerchunk? (I understood they are flexible but should probably happen 1st or 2nd November).

Sorry, I won't be available for that.

I started to look into building a new infrastructure, similar to the pangeo-clivar but using only the elixir.16core-64ram flavor
That works, but I found the deployment process really much slower than with the hpc.16core-64ram-ssd-ephem, so there are performance differences
@sebastian-luna-valero: I would have liked to try also the hpc.30core-64ram flavor but the only possible values for the Number of CPUs in the IM Dashboard are 2, 4, 8, 16, 32 and 64: is it possible to include 30 cores?
@tinaok @annefou: the possible Size of the disk to be attached is limited to 2TB, is that sufficient for you?

Any volunteers for teaching (online) Dask and/or kerchunk? (I understood they are flexible but should probably happen 1st or 2nd November).
Sorry, I won't be available for that neither.

do we keep the CLIVAR Jupyterhub and reuse it for this eScience course or will we have a new (elastic) infra?

Is it possible to separate the object storage with the usage of CLIVAR?
CLIVAR bootcamp finished but working groups are continuing their work.  And they are saving zarr/netcdf files in pangeo storage at CESNET.  If the training is one shot and the data can be deleted for this science course, may be better to use one shot MINIO disk storage?  Then it is safe and the CLIVAR users who are continue working  does not have risk that their files get deleted.
For computing resource, may be I can make a meeting with each workgroup to understand when they will work intensively so that we can adjust the needs manually in advance? (and thank you jean for creating separating instance!)

You are right, we need to make the storage separate. For the eScience course, they will work until the end of November. I guess we also want to onboard them more "permanently" e.g. we would like to provide a more long-term solution but it is probably only viable once the elastic part is in place.

@sebastian-luna-valero: I would have liked to try also the hpc.30core-64ram flavor but the only possible values for the Number of CPUs in the IM Dashboard are 2, 4, 8, 16, 32 and 64: is it possible to include 30 cores?

We could request the 30 vCPU option to be added but the hpc.30core-64ram flavor has ~2 GB RAM per vCPU core, instead of 4 GB per vCPU core in elixir.16core-64ram. I think we agreed previously that the 4 to 1 ratio is better than 2 to 1.

That works, but I found the deployment process really much slower than with the hpc.16core-64ram-ssd-ephem, so there are performance differences

For me the keyword here is deployment. Have you also run notebooks inside the new cluster to check performance of these nodes after deployment? this would need to be compared with performance of the same notebook in the clivar deployment.

Is it possible to separate the object storage with the usage of CLIVAR?

Object storage is detached from JupyterHub deployments.
NFS storage is attached to JupyterHub deployments.
As long as users are using object storage, we should be fine.

we would like to provide a more long-term solution but it is probably only viable once the elastic part is in place.

Remember that until we get automatic elasticiy in place, manually scaling up and down the cluster is possible.

@sebastian-luna-valero

Is it possible to separate the object storage with the usage of CLIVAR?

Object storage is detached from JupyterHub deployments.
NFS storage is attached to JupyterHub deployments.
As long as users are using object storage, we should be fine.

Sorry I was not clear enough.  I was hoping that we do not give access to the e-science course students for vopangeo.eu in aai.egi.eu for accessing s3 storage just now (untie #17 is resolved), then they can write into 'ANY OF' vo.pangeo.eu-swift disk space.
It can have some unfortunate 'delete/overwrite' from eScience course students (or vise-versa)
Thats why I thought may be better to separate the s3 access (if Anne plan to give writing access to s3 storage) like using external MinIO server or such.  (which does not stay for long time)

I see, thanks!
If other object storage is not available, and until #17 is solved, we could also look into deploying our own MinIO. However, there is the extra effort required to deploy and maintain this operational, and I am not sure whether I will have the time. What about others?

the computation times are comparable between pangeo-eosc and pangeo-clivar

great!

Downloads were a lot slower however, but that could be related to the network?!

Indeed, I would say so.

This eosc infrastructure now has 16 WNs and the same values as clivar except for the amount of memory which is increased

Looking at OpenStack I see:

31 VMs for pangeo-clivar, out of which 20 are hpc.16core-64ram-ssd-ephem. So the worker nodes delete from pange-clivar have all been of the flavor elixir.16core-64ram. Please remember that instead we need to delete worker nodes with the flavor hpc.16core-64ram-ssd-ephem and replace them with elixir.16core-64ram.

25 VMs for pangeo-eosc, all of them with the flavor elixir.16core-64ram. Great!

@j34ni please replace hpc.16core-64ram-ssd-ephem with  elixir.16core-64ram. Happy to help if you need me!

I just ask the course organisers for the storage. I see that for the clivar bootcamp, they had 1TB and it is not full. I guess 2TB is OK.

As this storage is only use for home directory, I don't think we need so much. Are you planning to put huge scientific datasets there?

If other object storage is not available, and until https://github.com/pangeo-data/pangeo-eosc/issues/17 is solved, we could also look into deploying our own MinIO. However, there is the extra effort required to deploy and maintain this operational, and I am not sure whether I will have the time. What about others?

I won't have the time either. Would the solution to create yet another Ppenstack project for the escience workshop to host data containers here would be feasible? We cloud reduce object store quotas on both projects if needed.

I started to look into building a new infrastructure,

@j34ni, I see that the jupyterhub is available at https://pangeo-eosc.vm.fedcloud.eu/jupyterhub/, so I guess you did not use the latest configuration provided here: https://github.com/pangeo-data/pangeo-eosc/blob/main/EGI.md? This is not crutial, but the setup is a bit simplified in this documentation.

@sebastian-luna-valero @tinaok @annefou
Should we fiddle with pangeo-clivar now, as it is being used, or should we wait before starting to remove the hpc.16core-64ram-ssd-ephem VMs (and then replace them by elixir.16core-64ram or not)?

@guillaumeeb
Sorry I missed that and simply took the current clivar_values.yaml to reuse for pangeo-eosc

@sebastian-luna-valero

The pangeo-clivar cluster went down from 49 VMs to 31 VMs already, have you noticed any disruption?

I am not sure these 49 - 31 = 18 VMs were configured/used at all in the infrastructure, they never showed up in the list of VMs in the IM Dashboard anyway, so I deleted them in openstack manually
If I start to remove VMs from the instrastructure while they are in use the affected users will not be very happy
@tinaok When will be a good time to do that?

I won't have the time either. Would the solution to create yet another Ppenstack project for the escience workshop to host data containers here would be feasible? We cloud reduce object store quotas on both projects if needed.

Currently the quotas are 10TB for each project. Please confirm the new quota value and I will double check with CESNET.

The quota was just a proposition to see if we could create another Openstack project to have an object storage space that has different access policy. Imagine a pangeo-escience Openstack project, maybe we would need to create another user group too on check-in?

@sebastian-luna-valero

According to grafana, the cluster is quite now, and it's Friday afternoon, I would say it's a good time to reconfigure the cluster.

OK, I'll give it a go

I am sorry, but I can't check since don't have access to the pangeo-{clivar,eosc} clusters on my profile of IM Dashboard. As a last resort, I can send you my details so you can add me as owner to check further.

@sebastian-luna-valero
Please do send me your credentials
I started buy deleting the oldest HPC VMs and the IM Dashboard does not like it

Will do. By the way:

is the pangeo-clivar cluster deployed with the dev instance of IM?
is the pange-eosc cluster deployed with the prod instance of IM?

@sebastian-luna-valero
they are both on the dev

The quota was just a proposition to see if we could create another Openstack project to have an object storage space that has different access policy. Imagine a pangeo-escience Openstack project, maybe we would need to create another user group too on check-in?

CESNET is happy to create another OpenStack project. There are two options

Option 1: Creating and mapping a dedicated vo.pangeo.eu in aai.egi.eu/escience group to the new OpenStack project:

| Create/destroy VMs | Object Storage at OpenStack: project "vo.pangeo.eu" | Object Storage at OpenStack: project "vo.pangeo.eu" | Object Storage at OpenStack: project "vo.pangeo.eu-swift" | Object Storage at OpenStack: project "vo.pangeo.eu-swift" | Object Storage at OpenStack: project "vo.pangeo.eu-escience" | Object Storage at OpenStack: project "vo.pangeo.eu-escience"
-- | -- | -- | -- | -- | -- | -- | --
Virtual Organisation |   | Public bucket | Private bucket | Public bucket | Private bucket | Public bucket | Private bucket
member of vo.pangeo.eu in aai.egi.eu/pangeo.admins | yes | read/write access | read/write access | read-write access | read/write access | read-only | no access
member of vo.pangeo.eu in aai.egi.eu | no | read-only | no access | read/write access | read/write access | read-only | no access
member of vo.pangeo.eu in aai.egi.eu/escience | no | read-only | no access | read-only | no access | read/write access | read/write access
member of vo.pangeo.eu in aai-dev.egi.eu | no | read-only | no access | read-only | no access | read-only | no access
None | no | read-only | no access | read-only | no access | read-only | no access

Option 2: Not creating a dedicated group.

| Create/destroy VMs | Object Storage at OpenStack: project "vo.pangeo.eu" | Object Storage at OpenStack: project "vo.pangeo.eu" | Object Storage at OpenStack: project "vo.pangeo.eu-swift" | Object Storage at OpenStack: project "vo.pangeo.eu-swift" | Object Storage at OpenStack: project "vo.pangeo.eu-escience" | Object Storage at OpenStack: project "vo.pangeo.eu-escience"
-- | -- | -- | -- | -- | -- | -- | --
Virtual Organisation |   | Public bucket | Private bucket | Public bucket | Private bucket | Public bucket | Private bucket
member of vo.pangeo.eu in aai.egi.eu/pangeo.admins | yes | read/write access | read/write access | read-write access | read/write access | read/write access | read/write access
member of vo.pangeo.eu in aai.egi.eu | no | read-only | no access | read/write access | read/write access | read/write access | read/write access
member of vo.pangeo.eu in aai-dev.egi.eu | no | read-only | no access | read-only | no access | read-only | no access
None | no | read-only | no access | read-only | no access | read-only | no access
Please let me know your thoughts.

I think option 1 is best.
Thank you!

Thanks, please review https://github.com/pangeo-data/pangeo-eosc/pull/44

Closing as obsolete.


Missing image in Transactional Templates for the Unsubscribe Module

In the documentation for Unsubscribe modules for dynamic transactional templates, there is supposed to be a (presumably) animated gif, but the file is missing.
It looks like somebody forgot to check in the image file or otherwise host it somewhere.
Related to #4450
Expected content
A visible animated gif showing how to perform the task
Actual content

Link to page:
https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/#unsubscribe-modules-for-dynamic-transactional-templates

If someone could get that image up, I would appreciate it - I'm in the process of trying to understand the unsubscription module in transactional emails and it would be great to get that up.

Closing this issue since there hasn't been any activity for more than 90 days.

I just came across this problem and I'm deeply lost. The image doesn't seem to be up and I can't find any documentation on how to do it.  Shouldn't we be able to use a sender ID instead, to fill this info? This is awkward.


Always return a JSON body

This PR ensures that we always return a JSON response for any request.
The GraphQL spec states that the response should always be a map: https://facebook.github.io/graphql/June2018/#sec-Response-Format
Also, clients will often try to decode the response body as JSON and when it's raw text that will fail.
This would technically change existing behavior, so I'm open to feedback...
@benwilson512
Fixes #176

Great, thanks!


Issue using uv with nox: uv insists using .venv instead of the nox-managed virtualenv

I have trouble integrating uv with nox.
Here is what I would like to work:
nox.options.default_venv_backend = "uv|virtualenv"

@nox.session
def lint(session: nox.Session) -> None:
    session.run("uv", "sync", "--no-dev")
    session.run("uv", "pip", "install", "pyright")
    session.run("uv", "run", "pyright")

If fails, because uv ignores the virtualenv supplied by nox:
warning: `VIRTUAL_ENV=.nox/lint` does not match the project environment path `.venv` and will be ignored

Here's a workaround:
nox.options.default_venv_backend = "uv|virtualenv"

@nox.session
def lint(session: nox.Session) -> None:
    session.run("rm", "-rf", ".venv", external=True)
    session.run("ln", "-s", ".nox/lint", ".venv", external=True)
    session.run("uv", "sync", "--no-dev")
    session.run("uv", "pip", "install", "abilian-devtools")
    session.run("just", "lint", external=True)

Here's a successful run:
nox -e lint -r
nox > Running session lint
nox > Creating virtual environment (uv) using python in .nox/lint
nox > rm -rf .venv
nox > ln -s .nox/lint .venv
nox > uv sync --no-dev
...

However, at the end of the run, I have to run uv sync to recreate my .venv to keep working.
I have eventually found another workaround, but anyway, I still think the use case of running "uv sync" from a virtualenv created by something else (e.g. tox or nox) could be useful.
Another thing that breaks is if I have a Makefile or Justfile that calls uv run make something, then uv will use .venv and not .nox/whatever and this breaks.
Version infos:
❯ nox --version
2024.10.9
❯ uv --version
uv 0.5.1 (Homebrew 2024-11-08)

Please see https://github.com/astral-sh/uv/pull/6834 and the discussions linked there.


Traceback (most recent call last) KEYCODE

I can't use keycode with any number. Log:
keycode 22
Traceback (most recent call last):
File "./ghost", line 575, in
main()
File "./ghost", line 269, in main
nums = open("substrate/keynums.txt").read()
FileNotFoundError: [Errno 2] No such file or directory: 'substrate/keynums.txt'

And i have question: function screen don't work? Sorry for bad eng...

@karton1606 screen here #190, but your problem with keycode fixed now.


APP-473: Added Telemetry Monitor as Custom Log Appender for Data Collection Demo

Re-base of #489 on top of master.

@kaa-leeroy test this fully please

@kaa-leeroy test this fully please


Code coverage

It appears that all simple solutions to do code coverage reporting with Travis appear to be broken. Travis-Cargo broke and appears to be no longer maintained. I'm not willing to commit maintaining a fork of it at the moment, so for now I look at code coverage locally before merging pull requests.
This issue is a placeholder for a discussion about longer-term plans.

Fixed in #41.


Release v0.20.0

Starting the release notes for 0.20.0.

I think we're ready, but since it's a binary line in the sand, I'll wait for a second :+1:.


cheda-seu-thesis:0.3.0

I am submitting

[ ] a new package
[x] an update for a package

Thank you.


chore: release main

:rocket: Automated Release
dev-dependencies-client: 6.0.7
6.0.7 (2024-10-07)
Bug Fixes

bump non-breaking dependencies to latest (#434) (39d5fe5)

Dependencies

The following workspace dependencies were updated

dependencies

@versini/dev-dependencies-common bumped to 4.1.9

dev-dependencies-common: 4.1.9
4.1.9 (2024-10-07)
Bug Fixes

bump non-breaking dependencies to latest (#434) (39d5fe5)

dev-dependencies-eslint: 1.0.5
1.0.5 (2024-10-07)
Bug Fixes

bump non-breaking dependencies to latest (#434) (39d5fe5)

dev-dependencies-server: 5.1.9
5.1.9 (2024-10-07)
Dependencies

The following workspace dependencies were updated

dependencies

@versini/dev-dependencies-common bumped to 4.1.9

dev-dependencies-types: 1.3.9
1.3.9 (2024-10-07)
Bug Fixes

bump non-breaking dependencies to latest (#434) (39d5fe5)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

dev-dependencies-common-v4.1.9
dev-dependencies-client-v6.0.7
dev-dependencies-server-v5.1.9
dev-dependencies-types-v1.3.9
dev-dependencies-eslint-v1.0.5
:sunflower:


feat: support cuckoo filter and most commands

references issue: #2534
Added support for all commands except for SCANDUMP and LOADCHUNK.
The go cases are currently being worked on.

Running ./x.py format should make the linter happy.

@jonathanc-n Thank you for this contribution. Great job!

Thanks for your contribution!
However, I cannot find a proposal to state the design details and storage format of the new data structure.
May I ask you provide such a proposal before we continue to review this patch?

@PragmaTwice it is mentioned in #2539, I added some extra information to clarify some things.

@PragmaTwice Sorry, about this implementation, are you able to close this pr. I might come back to it with a completely different code implementation.

Sure.


Enable Tenant Cluster Version can be configured

User Story
As a cluster admin, I want to set up tenant cluster with different versions. But now, the tenant cluster version was hard-code to v1.16.2.
@christopherhein @Fei-Guo comments?
Detailed Description
[A clear and concise description of what you want to happen.]
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
/kind feature

@wangjsty ^^


bug  fixes in arc smp initializaiton and tests

This PR is designed to fix  issue #21469. It fixes bugs related to SMP:

initialization
timer driver
test cases
board configuration

Because sanitycheck test does not support mdb which is required by ARC SMP, I mannually run some critical tests and samples, the resultes are ok.
Fixes #21469

The CI failure is not caused by changes in this PR, it's an old issue caused by openocd driver.

@ruuddw @abrodkin  to fix smp related issues, i just overhaul the thread switch logic in the epilogue of irq and exception handle. codes are simpler, easier to maintain and understand. My sanitycheck results based on nsim are almost ok.  Could you review the new changes? @abrodkin  could you run some smp tests on HSDK with PR? I don't have hsdk at hand.
What's more, @andyross , the new changes can fix the issue #20671 ?

@vonhust so I took a liberty and tried the SMP test (cmake -DBOARD=hsdk ../tests/kernel/smp/) and even though mostly it works from time to time (like every 10th execution) ends-up having machine check exception, see 2 examples below. What's funny in the end it's said "Test suite smp succeeded" :)
Do you think there's some other test I should try to run (BTW I also tried my samples/smp/pi but there were no problems so far)?
And for the record that's how I executed tests on the board (unfortunately OpenOCD requires quite some work to be usable with ARC SMP targets, see https://github.com/zephyrproject-rtos/openocd/issues/23):
mdb -pset=1 -psetname=core0 -digilent -nogoifmain -prop=dig_device=HSDK zephyr/zephyr.elf
mdb -pset=2 -psetname=core1 -digilent -prop=download=2 -nogoifmain -prop=dig_device=HSDK zephyr/zephyr.elf
mdb -pset=3 -psetname=core2 -digilent -prop=download=2 -nogoifmain -prop=dig_device=HSDK zephyr/zephyr.elf
mdb -pset=4 -psetname=core3 -digilent -prop=download=2 -nogoifmain -prop=dig_device=HSDK zephyr/zephyr.elf
mdb -multifiles=core0,core1,core2,core3 -run -cl

Execution 1:
*** Booting Zephyr OS build v2.2.0-rc1-139-g7ab68a87a83d  ***
Running test suite smp
===================================================================
starting test - test_smp_coop_threads
PASS - test_smp_coop_threads
===================================================================
starting test - test_cpu_id_threads
PASS - test_cpu_id_threads
===================================================================
starting test - test_coop_resched_threads
PASS - test_coop_resched_threads
===================================================================
starting test - test_preempt_resched_threads
PASS - test_preempt_resched_threads
===================================================================
starting test - test_yield_threads
PASS - test_yield_threads
===================================================================
starting test - test_sleep_threads
PASS - test_sleep_threads
===================================================================
starting test - test_wakeup_threads
E: ***** Exception vector: 0x3, cause code: 0x0, parameter 0x0
E: Address 0x80084196
E: Faulting instruction address = 0x80084196
E: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 1
E: Current thread: 0x90006b38 (unknown)
E: Halting system
PASS - test_wakeup_threads
===================================================================
Test suite smp succeeded
===================================================================
PROJECT EXECUTION SUCCESSFUL

Execution 2:
*** Booting Zephyr OS build v2.2.0-rc1-139-g7ab68a87a83d  ***
Running test suite smp
===================================================================
starting test - test_smp_coop_threads
PASS - test_smp_coop_threads
===================================================================
starting test - test_cpu_id_threads
PASS - test_cpu_id_threads
===================================================================
starting test - test_coop_resched_threads
PASS - test_coop_resched_threads
===================================================================
starting test - test_preempt_resched_threads
PASS - test_preempt_resched_threads
===================================================================
starting test - test_yield_threads
PASS - test_yield_threads
===================================================================
starting test - test_sleep_threads
PASS - test_sleep_threads
===================================================================
starting test - test_wakeup_threads
E: ***** Exception vector: 0x3, cause code: 0x0, parameter 0x0
E: Address 0xfffffffc
E: Faulting instruction address = 0xfffffffc
E: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 2
E: Current thread: 0x90006b38 (unknown)
E: Halting system
PASS - test_wakeup_threads
===================================================================
Test suite smp succeeded
===================================================================
PROJECT EXECUTION SUCCESSFUL

@vonhust The restructuring makes things cleaner (use more common Zephyr code) and avoid some code duplication (new assembler macro's factoring our irq/rirq common code).
Would be good to better document the assumptions and use of registers by the macros to improve maintainability, or even add them more explicit as parameters (arguments, scratch register ok to use).

@vonhust so I took a liberty and tried the SMP test (cmake -DBOARD=hsdk ../tests/kernel/smp/) and even though mostly it works from time to time (like every 10th execution) ends-up having machine check exception, see 2 examples below. What's funny in the end it's said "Test suite smp succeeded" :)

The way I find best to smoke this stuff out is through sanitycheck and just run all tests. So run sanitycheck -p hsdk and see what falls out, repeatedly if need be. sanitycheck looks for nsimdrv in $PATH and uses it if found to run tests in the emulator.
There were some SMP-related races in the core kernel that Andy fixed recently. This seem stable nowadays...but we only have qemu_x86_64 to test with on our side. The frequency of the failures you are seeing (10%) suggests to me this may be an ARC issue.

@abrodkin Oh another thing ... for ARC I think a custom arch_system_halt() is needed. The default arch_system_halt() in kernel/fatal.c falls over on SMP as it just halts one core. We haven't figured out a portable way to address this yet.
This might need to be addressed first before you can catch this with sanitycheck since as you say the suite passes even though there was a crash.

@vonhust so I took a liberty and tried the SMP test (cmake -DBOARD=hsdk ../tests/kernel/smp/) and even though mostly it works from time to time (like every 10th execution) ends-up having machine check exception, see 2 examples below.

@abrodkin the way I find best to smoke this stuff out is through sanitycheck and just run all tests. So run sanitycheck -p hsdk and see what falls out, repeatedly if need be. sanitycheck looks for nsimdrv in $PATH and uses it if found to run tests in the emulator.

Well I do use sanitychecker script these days quite a lot indeed. But I wanted to focus more on a particular topic - SMP. Because I think we have some other tests failing for HSDK still. Moreover we're almost done with bring-up of automated sanity checker on real ARC boards including HSDK (though in UP mode only as OpenOCD for ARC turned to not support SMP, see https://github.com/zephyrproject-rtos/openocd/issues/23 which we're about to start working on as well).

There were some SMP-related races in the core kernel that Andy fixed recently. This seem stable nowadays...but we only have qemu_x86_64 to test with on our side. The frequency of the failures you are seeing (10%) suggests to me this may be an ARC issue.

Very well might be the case and needs a deeper look obviously.

What's funny in the end it's said "Test suite smp succeeded" :)

This suggests to me that this may be a problem upon thread exit. I imagine a child thread in the test case crashed, but after it had done its job.

But that's not good still, right?

@abrodkin Oh another thing ... for ARC I think a custom arch_system_halt() is needed. The default arch_system_halt() in kernel/fatal.c falls over on SMP as it just halts one core. We haven't figured out a portable way to address this yet.

Well not really. Instead we need to add support of ARConnect Inter-Core Debug Unit and configure it so that whenever any core is halted all the rest get halted too. That BTW helps for interactive debugging as well so needs to be done anyways. See https://github.com/zephyrproject-rtos/zephyr/issues/23212 filed just now for tracking.

This might need to be addressed first before you can catch this with sanitycheck since as you say the suite passes even though there was a crash.
On x86_64 we issue a special output call which causes QEMU to instantly exit. Maybe some similar capability exists in nSIM?

May I have a pointer to that one? In light of our work on QEMU port fot ARC that might be interesting to check if that could be re-used easily for us.
P.S. I'm on FTO officially and so might not reply immediately being far from the laptop :)

Well I do use sanitychecker script these days quite a lot indeed. But I wanted to focus more on a particular topic - SMP. Because I think we have some other tests failing for HSDK still. Moreover we're almost done with bring-up of automated sanity checker on real ARC boards including HSDK (though in UP mode only as OpenOCD for ARC turned to not support SMP, see zephyrproject-rtos/openocd#23 which we're about to start working on as well).

Problem is, most of the SMP bugs we have seen lately are not caught by the SMP tests. It's hard to design tests for some of these race conditions because they only break when specific events line up at the right time on multiple CPUs. Best we can do is run all tests and see what shakes out. This is something that keeps me up at night.

But that's not good still, right?

Nope. Definitely need to look into this. The test only passes because of arch_system_halt() not doing the right thing.

Well not really. Instead we need to add support of ARConnect Inter-Core Debug Unit and configure it so that whenever any core is halted all the rest get halted too. That BTW helps for interactive debugging as well so needs to be done anyways. See #23212 filed just now for tracking.

arch_system_halt() is what gets invoked any time a fatal error occurs. This is what you want to implement trust me. The default implementation is __weak and doesn't work right with SMP. You implement your own in the arch code. If what it does is talk to the inter-core debug unit, great.

May I have a pointer to that one? In light of our work on QEMU port fot ARC that might be interesting to check if that could be re-used easily for us.

grep for arch_system_halt() in arch/x86

@vonhust The restructuring makes things cleaner (use more common Zephyr code) and avoid some code duplication (new assembler macro's factoring our irq/rirq common code).
Would be good to better document the assumptions and use of registers by the macros to improve maintainability, or even add them more explicit as parameters (arguments, scratch register ok to use).

@ruuddw @abrodkin  I already added more comments to the assembly and macros, and did further clean up for better maintenance. If there are still un-clarified places, let met know, i will address them.


no image return

few hours passed, and i got nothing back, what's happening?

First thing: Make the same prompt with just the normal midjourney bot. Does it work?

thanks, unpaid user cannot send command, that's the reason why no image returned


Add local function to return translations

This function can be used on ejs pages to load all translations for a page as a json object.
@spacerockzero is this something that other teams would be interested in?

Closing due to inactivity. Reopen if still useful.


Update v14 docs on entity framework integration

The v14 docs (still marked unstable somehow) show how to register the dbContext with a method RegisterDbContext, so you can make it pooled, resolver, or whatever. That method doesn't exist anymore, now there's only a RegisterDbContextFactory, and the enum DbContextKind doesn't seem to exist anymore (so I have no idea how to register it as pooled).

https://github.com/ChilliCream/graphql-platform/pull/7622
https://github.com/ChilliCream/graphql-platform/pull/7604

Also please consider elaborating on Page<T> support, I could not make that to work in simple setup and it's not clear what is missing (the announcement post does not mention the configuration, only the resolver).

@alrz
When Page<T> is documented, it won't be in the Entity Framework Integration section.
With that said, make sure that you call AddPagingArguments on the IRequestExecutorBuilder, apply the [UsePaging] attribute to your resolver, and return a Connection<T> from your resolver, not a Page<T>.
There's also a YouTube video.
If you're still stuck, you can ask for assistance on Slack.

Closing, as the Entity Framework Integration documentation has been updated.

I meant the HC 14 Page<T> type that was announced a few days earlier. An example in the post mentions this type.

Announced where? If you're referring to the blog post, then the example it shows returns Page<Brand> from a service, but Connection<Brand> from the resolver (later in the post).


Catch sigterm

update vendor to include changes in microkit with catching sigterm
Change is needed for proper kvm shutdown during upgrades.

I removed the changes and just did vendor update so we have the signal handling from microkit.


Refactoring Appenderator Driver

Related to #4178 and #4238.
The key changes are

Added publishExecutor and handoffExecutor to FiniteAppenderatorDriver for background publishing and handing segments off
Change FiniteAppenderatorDriver.add() to not move segments out in it
publishTimeout is newly added to TuningConfig for IndexTask and KafkaIndexTask.

I didn't rename FiniteAppenderatorDriver to AppenderatorDriver yet because it will make difficult to figure out the changes made in this pr. I'll rename it before merging to master.
@gianm @pjain1 please review this patch.

This change is

@jihoonson, the api generally looks good to me, looks like the general idea is to open up some of the previously internal functionality. Let's see what @pjain1 thinks too.
Are we going to need a method in FiniteAppenderatorDriver to return a list of the active sequenceNames? Currently, the KafkaIndexTask "knows" what it is because it's provided by the supervisor as baseSequenceName and it just adds a partition number. But if it's cycling through lots of them then it might need some more help.

Sorry I missed this one, will have a look today or tomorrow.

Are we going to need a method in FiniteAppenderatorDriver to return a list of the active sequenceNames? Currently, the KafkaIndexTask "knows" what it is because it's provided by the supervisor as baseSequenceName and it just adds a partition number. But if it's cycling through lots of them then it might need some more help.

@gianm would you elaborate on how you are thinking to use active sequenceNames for KafkaIndexTask? I'm not sure how it is helpful.

@gianm would you elaborate on how you are thinking to use active sequenceNames for KafkaIndexTask? I'm not sure how it is helpful.

I was thinking that KafkaIndexTask has to call driver.add(row, sequenceName, committerSupplier). Currently the sequenceName is part of the ioConfig of the kafka task. But if the task is doing incremental handoff, and each increment has a different sequenceName, what would the task do when it is saved to disk and then restored? How would it know what sequenceNames to use?

I was thinking that KafkaIndexTask has to call driver.add(row, sequenceName, committerSupplier). Currently the sequenceName is part of the ioConfig of the kafka task. But if the task is doing incremental handoff, and each increment has a different sequenceName, what would the task do when it is saved to disk and then restored? How would it know what sequenceNames to use?

Ah, I see. But, isn't KafkaIndexTask the one which is responsible for managing and updating sequenceNames for incremental handoff? It will be probably possible by passing its sequenceNames to the Committer's metadata like below.
final Map<Integer, String> sequenceNames = Maps.newHashMap(); // a map of partition -> sequeceName
...
return new Committer()
{
  @Override
  public Object getMetadata()
  {
    return ImmutableMap.of(
        METADATA_NEXT_PARTITIONS, new KafkaPartitions(
            ioConfig.getStartPartitions().getTopic(),
            snapshot
        ),
        "sequenceNames",
        sequenceNames
    );
  }

  @Override
  public void run()
  {
    // Do nothing.
  }
};

sequenceNames can be updated when the number of rows in a segment reaches the threshold like below.
final AppenderatorDriverAddResult addResult = driver.add(
    row,
    sequenceName,
    committerSupplier
);

if (addResult.isOk()) {
  // If the number of rows in the segment exceeds the threshold after adding a row,
  if (addResult.getNumRowsInSegment() > tuningConfig.getMaxRowsPerSegment()) {
    driver.publishAndRegisterHandoff(publisher, committerSupplier.get(), ImmutableList.of(sequenceName));
    // Update published sequenceName
    sequenceNames.put(record.partition(), newSequenceName);
  }
}

@gianm I have similar thoughts as @jihoonson that sequenceName would be generated by the KafkaIndexTask.
I was thinking that there will be a baseSequenceName passed by the Supervisor and to this a monotonically increasing number can be suffixed, incremented on each checkpoint. The task will maintain and persist metadata about all sequenceNames that exist and state of segments for each sequenceName whether the segments are open (meaning that the task can get events before the checkpoint for this sequenceName) or not. When all the segments for a sequenceName are published then the metadata about that sequenceName can be removed from the task.
During task restore, if state of any sequenceName is not open then the task will start publishing segments for that sequenceName. Did you had something else in mind ?

Ah, I forgot that KafkaIndexTask can layer in its own metadata! Nevermind what I said then, I think you both have the right idea.

@gianm ok, thanks. @pjain1 @gianm any other comments?

@jihoonson that's all from my side

Design LGTM

@pjain1 does that mean you're +1?
Just need one more design review then.

@gianm I am not sure about what has been decided about the sequenceName metadata. Is the Driver going to maintain and persist it or the task ? Apart from this, the design that we have decided on looks good to me.

@pjain1 task will maintain the sequenceNames metadata. I think your detailed description should work.

ok. I am good with the design. 👍

design 👍


Prototypical implementation of BIDSLayout facade

ancp-BIDS BIDSLayout desiderata
BIDSLayout methods

BIDSLayout.get(return_type, target, scope, **kwargs)

[x] Grab all files matching search criteria.
[x] Search criteria should include entity values
[x] scope: (raw vs. all derivatives vs. specific derivatives)
[x] return_type: id, filename
[x] target: entity id (must be used along with return_type=id)

BIDSLayout.get_subjects(**kwargs)

[x] Grab all subjects matching search criteria. For example, task='rest' should return all subjects with a resting-state task.
[x] Should have equivalent methods for all elements entities in the specification.

BIDSLayout.get_metadata(file)

[x] Read in associated metadata for a data file (e.g., nii.gz, tsv[.gz]), including inherited metadata.

BIDSLayout.get_file(filename)

[ ] Load the associated BIDSFile.

BIDSFile methods

[x] BIDSFile.get_metadata()
BIDSFile.get_associations()

[ ] Get associated files, optionally limiting by association kind.
[ ] Associated files may include JSONs, events files, physio files, other imaging files with the same suffix in a file collection, associated field maps, or associated func files (for field maps).
[ ] It might be best to break this down into get_events, get_physio, etc.

BIDSFile.get_entities()

[x] Return dictionary of entities.

Out of scope as there will be a refactoring module which will have more sophisticated functionality:

BIDSFile.set_entities(**kwargs)

[ ] Set entities in a filename, for renaming.

BIDSFile.write_file(path)

[ ] Write out the file, I guess?

This would be super useful for all the code that uses pybids layout

Would this be a good place to build a list of methods/behaviors that are important for BIDSLayouts?

Yes, it would be good. We could use the google doc linked on the project page.
When setting up a list of requirements I would suggest to keep in mind that BIDSLayout should handle modality independent and and modality specific information about datasets.

@tsalo I copied the contents of the hackmd to this issue, so we can better track its progress and GitHub nicely visualizes this.

@ancpJR that Doc is a slideshow though. I threw together a HackMD, but we can move the contents wherever you prefer: https://hackmd.io/@MK6j_BTkRlehcyRZrvwQ1A/ByIp4HAMK/edit
Warning: The list of methods in the HackMD is almost certainly incomplete.

A minimal set of pybids functionality has been implemented. Closing for now.
If something is missing, please open a new issue.


GSLUX-622 (Fix): Make backend urls relative for lib

JIRA issue
https://jira.camptocamp.com/browse/GSLUX-622
Description
Follow-up PR to #60 to fix following error in v3:
Access to fetch at 'http://localhost:8080/uploadvtstyle' from origin 'https://migration.geoportail.lu' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Makes backend urls used for styles relative for lib to work in v3.
Uses vite proxy to send requests to local backend for dev.
Note : In v3 this PR should currently not have an impact on the functionality, as the legacy style selector is used. It should however prevent the error messages in the console which are triggered by the v4-lib in the background.

Thanks for the review @AlitaBernachot !


Method to create AzureDevOpsCreatePullRequestSettings instance from Azure Pipelines variables

Add an AzureDevOpsCreatePullRequestSettings .UsingAzurePipelinesOAuthToken method which creates a new instance of a settings class using the access token provided by Azure Pipelines.

Fixed by https://github.com/cake-contrib/Cake.AzureDevOps/pull/181


Figure out where to declare UNUSED_VAR and UNUSED_PARAMETER so they can be shared

          Same as above, I'm not going to boil this ocean, which is already a pattern elsewhere in the code base, will just put the macro back in.

Originally posted by @woody-apple in https://github.com/project-chip/connectedhomeip/pull/32053#discussion_r1488618422

I think the right answer is to just use [[maybe_unused]] now that we are c++17, instead of making up our own variants.


⚠ Jenkins Plugins Artifactory has degraded performance

In 89e9ace, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1173 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 0b12bb2 after 42 minutes.


Swift 4.2 update?

Swift 4.2 update?
Some code depreciations need to be updated for swift 4.2 update.
Also does it work with table view with custom cell loaded from .xib?
Its not working for me.
Thank you

Fixed in pull request  #16

@phamquan great job! thanks 🥇


Not able to get screen while executing the script in jenkins (Headless mode)

Expected behavior
Screenshots should get displayed in html report (jenkins execution)
Actual behavior
Not able to get screenshots
Steps to reproduce

gauge.screenshot({fullPage:true});
Set headless_chrome = true
not getting screenshots in html report

Note: able to get screenshots when headless_chrome = false
Versions
taiko 1.0.3

Have you overriden the custom screenshot as follows?
// Using Taiko
// Return a screenshot byte array
gauge.screenshotFn = async function() {
    return await screenshot({ encoding: 'base64' });
};

For more details please refer https://docs.gauge.org/writing-specifications.html?os=windows&language=javascript&ide=vscode#taking-custom-screenshots
And conversation on spectrum
https://spectrum.chat/taiko/general/while-executing-the-script-in-jenkins-headless-mode-not-able-to-capture-screenshot~6a480b1e-083b-4a5d-9eae-7489bbde4224?m=MTU3ODMwNTIwNDUxOA==

@ajitkes - from your post  it seems that the issue is probably related to your environment.
I am closing this, since do not have any way of replicating the issue. Please feel free to comment if you find something that can give us a hint.


Production user sign-up form causing an error

### Description
An error was identified when a user clicks "sign-up." This appears to be a bug.
Clicking "sign-up" from the sign in page.

Error

Marking as resolved as this was a duplicate ticket.


Add methods to generate polycrystalline structures

Can now use the rotate3 function + some voronoi package to generate polycrystalline structures

Added make_polycrystal method in 21a26ae41cf22d9b58afaca45ba40178f4f93f03 . Uses tess and rotate_euler to make polycrystalline structures


OCI Artifacts Source

Ref Design doc: https://hackmd.io/nhAivsWVSJ6Jt0zniadDZA

cc: @joelanford @bparees

I'm trying to understand the motivation for defining a new bundle distribution mechanism via OCI artifacts vs standard scratch container images. Right now the way that rukpak defines a bundle is "anything that can be represented as a go fs.FS".

@joelanford IIUC, the motivation for defining a new bundle distribution mechanism via OCI artifacts vs images is that using OCI artifacts will make the overall process of building and pushing bundles to an OCI registry easier for operator authors. I don't think that this really impacts rukpak's definition of a bundle as we should still be able to relatively easily convert the bundle OCI artifacts to that of a go fs.FS

Rukpak already has the image source that just straight up pulls the entire filesystem out of an image.
Is the focus of this more about a different way to pull the existing content out of existing bundle images? As in the provisioner itself reaches out directly to the image registry to pull the content rather than the existing complexity of creating a pod and delegating the image pull/extraction to the CRI and unpack code we've written.

I don't think that is the focus of this, but rather just adding a source implementation that simply knows how to take an OCI artifact and convert it to the necessary go fs.FS similar to how the existing image source works with images.
Just as an aside, if we did want to consider a direct pull rather than offloading to a pod I have some concerns around this causing long running process that block the reconciliation process. IMO we should attempt to avoid situations like that as much as possible.

If that's the idea, I'd propose modifying the image source specification, perhaps to allow specifying a method which could be either "CRI" or "direct". At the end of the day, its still the same image we're just pulling it differently?
Or is this saying "there's a different protocol and/or format that necessitates a completely new source definition"?

I definitely agree that this probably doesn't warrant a completely new source definition but rather appropriate modifications to the image source specification to make it handle both images and oci artifacts.

@everettraven @anik120 I guess my question is: what is the material difference between using a standard scratch container image to store bundle manifests vs an OCI artifact? And why would an operator author use one over the other?
It's totally possible I'm missing something fundamental, but I'm not seeing what it buys anyone to tar up files in the same (or at least substantially similar) way and then ship that to an image registry using a different schema.

I guess my question is: what is the material difference between using a standard scratch container image to store bundle manifests vs an OCI artifact? And why would an operator author use one over the other?
It's totally possible I'm missing something fundamental, but I'm not seeing what it buys anyone to tar up files in the same (or at least substantially similar) way and then ship that to an image registry using a different schema.

I think this is a great question. IIUC using OCI artifacts offers a simpler workflow of actually pushing, pulling, and unpacking bundles. Based on my understanding this is essentially what the two workflows look like:

Image based bundle:

Releasing/Pushing a bundle:

Create/Maintain a Dockerfile for your bundle that looks something like:

FROM scratch
COPY bundle/ bundle/

Create your bundle (make bundle or something equivalent)
Build your bundle image
Push your bundle image

Pulling/Consuming a bundle (i.e installing the operator on cluster)

Pull the bundle image
Unpack the bundle image (depending on how well someone knows image manipulation this isn't necessarily a trivial task)
Apply the bundle contents

OCI artifact based bundle:

Releasing/Pushing a bundle:

Create your bundle (make bundle or something equivalent)
Push your bundle OCI artifact

Pulling/Consuming a bundle:

Pull the bundle artifact
Apply the bundle contents

While this may only slightly simplify the workflow, I can imagine a scenario where an operator author would prefer this workflow because there is slightly less overhead and they could tell users to simply install an operator onto a cluster using the raw manifests by running something like:
oras pull <bundle>:<version> | kubectl apply -f <bundle-dir>/

I'm sure there are other scenarios where OCI artifacts can be used but this is just the one I could think of at the moment.
While these are pretty similar, I think adding the OCI artifact support to rukpak just makes it more approachable for operator authors who do/want to use OCI artifacts to package their bundles.

To me, catalog metadata is the place OCI artifacts make the most sense. Rukpak essentially is dealing with the leaf nodes (i.e. the bundle manifests) of the catalogs. And by the time we're dealing with just bundle manifests, it seems like a standard scratch image is more approachable.
There is an argument I can come up with for using a custom schema though: we can have a versioned bundle image spec that the image registry itself knows about. But it seems like our existing image source could have a supported set of bundle image schemas and automatically handle new bundle image schemas. Therefore no need for a new source or new provisioner, I think.

I don't know much about OCI artifacts, but I agree with this for the most part. One question this does raise for me is: While a standard scratch image may be more approachable for rukpak, is it necessarily more approachable for operator authors?
IMO we should ensure that our tooling will reasonably support the various approaches that operator authors may take to packaging their bundles. That being said, OCI artifacts may be gaining some traction but I am not aware of any operators that currently package their manifests as OCI artifacts as opposed to images/github release artifacts (although I do wonder how much the image delivery format is specifically because of OLM's influence in this area). Due to this, I would personally be okay with postponing any bundle as OCI artifact support until there is significant demand for it.

IIUC using OCI artifacts offers a simpler workflow of actually pushing, pulling, and unpacking bundles.

I think simplicity of push/pull is orthogonal to the schema decision. With a custom schema, we'd need to build and support a custom registry client (likely in opm) that could push/pull OCI artifact bundles. It may be that opm push-bundle <bundleDir> is easier than docker build + docker push, and we might want to do that to hide the details from operator authors, but we could build opm push-bundle and have it build/push a scratch container under the hood, too.
So to me, the advantage of OCI artifacts is that we can define a completely custom schema and organization of content addressable "stuff" in an image registry. If our current use case is to stuff a bunch of files into a directory structure, I'm not convinced a custom OCI schema is buying us anything.

OCI artifacts may be gaining some traction but I am not aware of any operators that currently package their manifests as OCI artifacts

OCI artifacts is a spec that (if supported by an image registry) enable service providers to build extensions into the storage mechanisms of the registry. We would be the ones building a specific implementation of that extension mechanism. For example, Helm has defined an OCI artifact custom schema that enables distribution oh helm charts via image registries. We could do a similar thing for OLM bundles, but what I'm poking at is: "why that over a scratch image"?
I'm not say we shouldn't define our own schema. I'm wanting to get into the nitty gritty of what the advantages are and decide if now is the right time to take that on.

@anik120 The observation that bundles and catalogs should have similar treatment is astute. Though there is one material difference.
I've had conversations with some other OF maintainers over that past couple of days and one thing that kept coming up was: why should catalog data have to come from an image? In rukpak, bundle data can come from an image, git, an http server, a configmap, or a direct upload.
Perhaps we should design the OLMv1 CatalogSource almost identically to the Rukpak bundle. The bundle API has two key elements:

The source of the bundle. How do I pull down the bundle's filesystem? (protocol)
The provisioner. How do I interpret that bundle's filesystem? (format)

If we had a similar design for catalogs it would mean:

We could support FBC coming from images, http servers, git repos, configmaps, directly uploaded, or any other protocol. We could extend the set of supported sources later.
We could simultaneously support multiple catalog formats. Today it's FBC, tomorrow perhaps its something entirely different.

So this all begs the fundamental question, what's different when it comes to catalog metadata. After all, if we're talking about fbc (or even a sqlite db for that matter), it's a single file(yaml/json/.db) inside a directory structure instead of multiple different files (deployment.yaml/rbac.yaml/sa.yaml etc).

Here's the material difference between bundles and catalogs: bundles are inseparable atomic units, catalogs might be a collection of individually useful units (multiple packages, each of which are valid catalogs on their own).
So the reason I'm saying that a custom OCI artifact type might be more appropriate for catalogs is because of the way updates would work.
Consider a napkin math scenario where a catalog is 10GB and has 1000 packages with 100 bundles each.
If a single package updates a single bundle or adds a single channel edge, that FBC image layer is now different, so now I'm uploading the entire 10GB again, despite making a maybe 20 byte change. Not only that -- all clients also have to download the full 10GB.
If we sliced the catalog format up into a few separate OCI archive types for form a hierarchy (e.g. catalog, package, channel, bundle), a bundle or channel change is now:

Upload the new bundle or channel (up to ~1MB)
Update the OCI package metadata to tell it the new reference to the updated bundle or channel (maybe 10s of KBs)
Update the OCI catalog metadata to tell it the new reference to the updated package. (maybe 10s of KBs)

So comparing the two:

Naive -- stuff the entire catalog into a single image layer -- 10GB upload and 10GB download * number of clients
OCI artifacts -- hierarchical layers -- 1MB upload and 1MB download * number of clients.

If we had a similar design for catalogs it would mean:
We could support FBC coming from images, http servers, git repos, configmaps, directly uploaded, or any other protocol. We could extend the set of supported sources later.
We could simultaneously support multiple catalog formats. Today it's FBC, tomorrow perhaps it's something entirely different.

That actually makes a lot of sense to me.

Consider a napkin math scenario

And so does this.
(it's late on a Friday evening in a week that's been long already, so I'm keeping my response terse 😅 , but there's a lot of action items that's probably coming out of this for the v1 CatalogSource work. I'll come back to this conversation later once those action items are laid out more concretely)

Closing since this served its purpose for demos and there are no plans to merge this.


Feature/ffs 86 multiplier activation

This feature allows to set and unset the multiplier in the search section. Because of an merge also parts of the trust feature are in this feature.

I meade a fix in the multipliers_test.go, not all tests worked. There were also two async function calls without await statement.
Additionally i found a mistake where you show the multiplier status. Right now if one user mulitplies a repository, all other users also see this repo as multiplier sponsoring.


Gotcha: probe-image-size does not work with gzip encoded streams

If a gzip encoded stream is requested via the accept-encoding header, probe-image-size fails with unrecognized file format:
const probe = require("probe-image-size");
probe(
  "https://www.washingtonpost.com/graphics/2018/lifestyle/magazine/amp-stories/tangent-big-change-means-big-risk/img/Tangent_Rebrand_1.jpg",
  { headers: { "accept-encoding": "gzip" }
  }).then(console.log, console.error);

Actual result:
{ ProbeError: unrecognized file format
    at ParserStream.parserEnd (/Users/stillers/workspace/ampbench/amp-story/linter/node_modules/probe-image-size/stream.js:29:24)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:111:20)
    at ParserStream.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
  name: 'ProbeError',
  message: 'unrecognized file format',
  code: 'ECONTENT' }

Expected result (without accept-encoding: gzip):
{ width: 1162,
  height: 2066,
  type: 'jpg',
  mime: 'image/jpeg',
  wUnits: 'px',
  hUnits: 'px',
  url: 'https://www.washingtonpost.com/graphics/2018/lifestyle/magazine/amp-stories/tangent-big-change-means-big-risk/img/Tangent_Rebrand_1.jpg' }

I suppose this is more or less working as intended, but it might be useful to mention this in the README somewhere. (Or perhaps this issue itself is sufficient "documentation".)
(One reason why you might end up piping accept-encoding headers to probe-image-size is if the original input was something like Chrome DevTools' "Copy as cURL" function, which bulk copies all headers.)

I'm not sure if this worth additional note in readme, but feel free to make PR if you wish, it will be accepted. Just try to keep your note short.
PS. See https://github.com/nodeca/probe-image-size/issues/16 first. AFAIK, gzipped content should be supported, and problem CAN be on server side. But anyway... nobody cares... because no real need to request gripped images.


Player Cooldown Innaccurate

Quest Version: 3.9.1-b86
Description of Problem: The value being set for the player cooldown within Planner for a Quest is not properly being read in.

This is an issue that I have not found in previous versions, so I am assuming it is a bug.
Thank you!

Thanks for the report. Any chance you could share the Fish Voucher quest for testing? Use a website like Pastebin or Hastebin to retain formatting.

Of course!
Here is the paste bin of the Quest.
https://pastebin.com/c3ZqBCi9
Please do let me know if there is an issue I missed with the Quest or if this is a bug.
Thanks for looking into this!

Use https://ci.codemc.io/job/PikaMug/job/Quests/88/
May need to re-set the cooldown in-game.


Possibility for max cluster zoom level

Thanks for the Swift translation.
Is there any possibility to set a max zoom level for the clustering? If I achieve zoom level 14, I would like to see all annotations without clusters.

Would something like this work for you?
Change line 95-113 of FBViewController.swift from this:
let count = annotations.count

if count == 1 {
    clusteredAnnotations += annotations
}

if count > 1 {
    let coordinate = CLLocationCoordinate2D(
        latitude: CLLocationDegrees(totalLatitude)/CLLocationDegrees(count),
        longitude: CLLocationDegrees(totalLongitude)/CLLocationDegrees(count)
    )
    let cluster = FBAnnotationCluster()
    cluster.coordinate = coordinate
    cluster.annotations = annotations

    print("cluster.annotations.count:: \(cluster.annotations.count)")

    clusteredAnnotations.append(cluster)
}

to this:
let count = annotations.count

if count == 1 || cellSize == 16 {
    // Scenario 1: Single pin.
    // Scenario 2: The map is zoomed in all the way (cell size is 16)
    clusteredAnnotations += annotations
} else if count > 1 {
    let coordinate = CLLocationCoordinate2D(
        latitude: CLLocationDegrees(totalLatitude)/CLLocationDegrees(count),
        longitude: CLLocationDegrees(totalLongitude)/CLLocationDegrees(count)
    )
    let cluster = FBAnnotationCluster()
    cluster.coordinate = coordinate
    cluster.annotations = annotations

    clusteredAnnotations.append(cluster)
}

cellSize doesn't seem to work for me, instead I checked the zoomScale

How did you use the zoomScale can you provide a snippet ?

Without any modifications on code I use :
extension EventsMapController : FBClusteringManagerDelegate
{
public func cellSizeFactor(forCoordinator coordinator: FBClusteringManager) -> CGFloat {
return 5.0 // Change this according to your needs
}
}

Here's how I did it. I did change the code in FBClusteringManager.
if (zoomScale > 0.04) {
clusteredAnnotations += annotations
} else {
switch count {
case 0: break
case 1:
clusteredAnnotations += annotations
default:
let coordinate = CLLocationCoordinate2D(
latitude: CLLocationDegrees(totalLatitude)/CLLocationDegrees(count),
longitude: CLLocationDegrees(totalLongitude)/CLLocationDegrees(count)
)
let cluster = FBAnnotationCluster()
cluster.coordinate = coordinate
cluster.annotations = annotations
clusteredAnnotations.append(cluster)
}
}


Abandoning this pull request. Resolving conflicts and will submit a new PR with updates.


Python3 support

I forked your repo and added python3 support for it. Would it help to make a pull request?

Why not just submit a pull request and let him decide if he wants it? This isn't an issue...

@fu20161234 many maintainers like it to have an issue to the pull request, so asking first is just being nice. If he does not want my pull request, python3 support is an issue.

@Kostronor could you check whether the newest master also can be easily ported to py3? Specifically pgoapi library. If so then I'll surely dedicate some time for that - I didn't really think about it before, but Python 2 should be treated as a relict of the past, and Python 3 should be the only way to go.

@modrzew all dependencies support python3. Your code is actually pretty much python3-ready, it just needs a few one-line changes. I can create a pull-request against the most recent version if you want, or you could check out the changes in my fork and cherry pick them yourself.

...seriously? 01baeac1ec3fb90870e05cf817331b72cc5ebcf8 was everything needed?

Pretty much, however on python3 logging is now broken (the formatting string isn't being interpreted at all). You should remove the style= argument in your logging.basicConfig statement.

I had a fix for that, you have to change the format character. I'll create a pr


predicted class

how do i know the predicted class?
i am getting the precision but i couldn't able to interpret the predicted class from pretrained weights..

Hi, you can check the output layer for which class produces highest probability and then the order of the classes is the following: 01 = neutral, 02 = calm, 03 = happy, 04 = sad, 05 = angry, 06 = fearful, 07 = disgust, 08 = surprised


Problems with assigning accelerometer values to Gameobjects in unity

Required Info

Camera Model
D435I

Firmware Version
<IP_ADDRESS>

Operating System & Version
Windows 10

Platform
PC

SDK Version
2.50.0

Language
C#/Unity

Segment
VR/AR

My objective is to use the IMU in D435I to move the ingame camera. This includes translation and rotation of said camera in unity
I've tried the following:
The function OnNewSample(Frame frame) is subscribed to the m_pipeline.OnNewSample event and the RSDevice is running on the Unity Thread. This function is used to capture the IMU values sent by the Realsense device.
private void OnNewSample(Frame frame)
   {
       try
       {
           if (frame.IsComposite)
           {
               using var fs = frame.As<FrameSet>();
               using Frame fg = fs.FirstOrDefault(gyroMatcher);
               if (fg != null)
               {
                   IMUGyro = Marshal.PtrToStructure<Vector3>(fg.Data);

               }
               else
               {
                   Debug.Log("null Gyro Frame");
               }
               using var fr = fs.FirstOrDefault(acccelMatcher);
               if (fr != null)
               {
                   IMUAccel = Marshal.PtrToStructure<Vector3>(fr.Data);
                   IMUAccel += gravityMag * Mathf.Rad2Deg * IMUGyro;

               }
               else
               {
                   Debug.Log("null Accel frame");
               }
               return;
           }

           if (!acccelMatcher(frame))
           {
               Debug.Log("Accel Stream did not match");
               return;
           }

           using (frame)
           {
               IMUAccel = Marshal.PtrToStructure<Vector3>(frame.Data);
           }
       }
       catch (Exception e)
       {
           Debug.Log(e.ToString());
       }
   }

To use the captured values, I've added this snippet inside the Update() function that are assigning the data to the cameras
            q = new Vector3(-IMUGyro.x, IMUGyro.y, IMUGyro.z);
            transform.Rotate(q);

            transform.Translate(IMUAccel);

We're facing these problems:

Repeated use of the gyro causes it to have angle offsets(i.e. , after using it for a while, resetting it to the starting position does not rotate the camera in a similar way, rather it has a rotation that seems random)
We cannot figure out how to accurately offset the values given by the accelerometer and to apply it appropriately to the Unity Camera
Even after calibration, the accelerometer normal oscillates between 9.83 - 9.86, with an extra drift in the x and z axes

@MartyG-RealSense @dorodnic

Also, comments regarding code smell and unsafe code are appreciated :)
Thanks

Hi @TheHarmacist97  I would recommend first trying to put your snippet inside a FixedUpdate() function instead of Update(), as FixedUpdate() should update about 4x faster than Update and is also especially suited for physics calculations.
I do not have any advice to offer about code smell and unsafe code though.  The official Unity documentation provides the following short article:
https://docs.unity3d.com/ScriptReference/PlayerSettings-allowUnsafeCode.html

Hey @MartyG-RealSense, thanks for the prompt response
I still think Update() should be better for the transform control of the camera, as it is not a physics object(no rigidbody) and FixedUpdate has a default time-step of 0.02s (50 times a second) while normal Update has a smaller time-step. Since we're getting 150+ frames per second at the moment, I feel it's best to use change transforms in the Update() function.
Thanks for the advice about unsafe code, although I was asking for the capture of the pipeline and disposal of said resources

A common practice in Unity is to put camera control code in a LateUpdate() function so that it updates last after all of the Update() code has completed.  This results in smoother camera movement.
There is some RealSense Unity wrapper advice about disposal and garbage collection at https://github.com/IntelRealSense/librealsense/issues/1477 and https://github.com/IntelRealSense/librealsense/issues/3896

Hi @TheHarmacist97  Do you require further assistance with this case, please?  Thanks!

We're still facing the problem with the accelerometer values as mentioned above

In a past Unity project that converted RealSense camera movements into movements of a Unity object such as a camera, I applied the following procedure.

Create an empty object to act as the parent of the camera, and create three separate child objects to control the X, Y and Z axes.  Then child the Unity camera to Z so that the camera object rotated in the appropriate directions as the X, Y and Z childs were rotated.

MASTER CAMERA JOINT
CAMERA JOINT X
CAMERA JOINT Y
CAMERA JOINT Z
MAIN CAMERA
In each of the X, Y and Z joints I created a individual animation clip that would rotate the object backwards and forwards along the full 360 degree axis.  Unity animation clips have a playback timeline value between 0 (start) and 1 (end).  So by setting a playback value between 0 and 1, you can cause the animation clip to rotate the object between 0 and 360 degrees on that particular axis that the clip is rotating on (X, Y or Z).
The tricky part was converting the values provided by the camera into a numeric scale between 0 and 1.  In this case, the best way to do that may be to divide the camera gyro angle by 360, so 360 / 360 = 1, 180 / 360 = 0.5, etc.

If your scripting can a gyro angle value in degrees then a simpler method may be to simply apply that value directly to the object's X, Y or Z rotation transform.  I personally prefer using animation clips though because they are much more stable, as an object may suddenly wildly change orientation if using raw values if there is a glitch in those values.

In a past Unity project that converted RealSense camera movements into movements of a Unity object such as a camera, I applied the following procedure.

Create an empty object to act as the parent of the camera, and create three separate child objects to control the X, Y and Z axes.  Then child the Unity camera to Z so that the camera object rotated in the appropriate directions as the X, Y and Z childs were rotated.

MASTER CAMERA JOINT CAMERA JOINT X CAMERA JOINT Y CAMERA JOINT Z MAIN CAMERA
In each of the X, Y and Z joints I created a individual animation clip that would rotate the object backwards and forwards along the full 360 degree axis. Unity animation clips have a playback timeline value between 0 (start) and 1 (end). So by setting a playback value between 0 and 1, you can cause the animation clip to rotate the object between 0 and 360 degrees on that particular axis that the clip is rotating on (X, Y or Z).
The tricky part was converting the values provided by the camera into a numeric scale between 0 and 1 to control the forward and backward playback of the animation timeline. In this case, the best way to do that may be to divide the camera gyro angle by 360, so 360 / 360 = 1, 180 / 360 = 0.5, etc.
If your scripting can a gyro angle value in degrees then a simpler method may be to simply apply that value directly to the object's X, Y or Z rotation transform. I personally prefer using animation clips though because they are much more stable, as an object may suddenly wildly change orientation if using raw values if there is a glitch in those values.

Thanks for the advice, can we use the accelerometer values to translate the camera's position instead of just rotating it. Also, should we lerp the remapped values of the gyro to reduce the unwanted jitter?

Perhaps the accel value could be used as a multiplier to make the camera travel from position A to position B faster.  For example:
X, Y or Z position = X, Y or Z position x 9.80.
So as the accel value increases above zero, the object starts moving along the axis as the accel value is added to the position.
Using lerp to change smoothly between the previous and current states would be a good idea, yes.

Hey, I really did not understand your previous comment. We wanted to use the D435i's IMU to emulate the values inside unity as if we were using the D435i as a head-mounted unit.
So if the person moves 3 meters toward the left, the camera should also move 3 meters toward the left.

The 400 Series models such as the D435i do not have the inbuilt abilty to track the pose (position + rotation) of the camera device using its IMU.  The RealSense T265 Tracking Camera, which has the same IMU component as the D435i, has that feature and has an official T265-only RealSense Unity wrapper example program for SLAM navigation.  There is a YouTube video of it at https://www.youtube.com/watch?v=Hhfw3Z4DQ1A

Hi @TheHarmacist97  Do you require further assistance with this case, please?  Thanks!

Without buying the T265 camera separately, is there any possible solution to achieve the abovementioned objective?
Can't we directly utilize the accelerometer values we're getting in Unity

My understanding is that it is possible to interface with the functions of the RealSense C# wrapper from within Unity, as described by an expert on the subject at https://github.com/IntelRealSense/librealsense/issues/1570#issuecomment-382620687 and https://github.com/IntelRealSense/librealsense/issues/8347#issuecomment-777375600
There is ony a limited amount of references though about accessing IMU values via the C# wrapper, like those at https://github.com/IntelRealSense/librealsense/issues/8746#issuecomment-814030029 and https://github.com/IntelRealSense/librealsense/issues/2996#issuecomment-451068939

Hi @TheHarmacist97  Do you have an update about this case that you can provide, please?  Thanks!

Case closed due to no further comments received.


CSRF vulnerability

Version information

Laravel: v5.7.*
Voyager: v1.1
PHP: 7.2
Database: MariaDB 10.1.37

Description

There is a CSRF security vulnerability that allows you to delete a parameter.
Steps To Reproduce
Steps to reproduce the behavior:

It is necessary to open a link of this type to a connected administrator :

http://[DOMAIN]/admin/settings/[SETTING_ID]/delete_value
Expected behavior
A CSRF token would have to be added to correct this security vulnerability.
Additional context
A malicious attacker can use this vulnerability for various attacks depending on the available settings.

Instead of using this "vulnerability" the user could just go to the settings and delete each and every setting, because he has permissions to do this.
I see how this is false behaviour, but if the user has permission to use settings, expect them to do so.

@emptynick We are obviously talking about a person who does not have the permissions to do so.
The goal of a CRSF flaw is to bypass permissions restrictions through a victim, in this case an administrator.
Laravel forces you to use this CSRF token, let's use it. :smiley:

Ah yeah, now I know what you mean.
Not really sure how we should solve that tho.
Probably make it a POST request

As with content deletion, a form in popup form with a CSRF token :smiley:

As with content deletion, a form in popup form with a CSRF token :smiley:


WIP: Bump storybook deps to 6.3.1: MB-8273

Description
Testing
Let's try updating @storybook deps to the same version at once rather than 4 different dependabot PRs.

Reviewer Notes
Is there anything you would like reviewers to give additional scrutiny?
Setup
Add any steps or code to run in this section to help others prepare to run your code:
echo "Code goes here"

Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
this article explains more about the approach used.

Screenshots
If this PR makes visible UI changes, an image of the finished UI can help reviewers and casual
observers understand the context of the changes. A before image is optional and
can be included at the submitter's discretion.
Consider using an animated image to show an entire workflow instead of using multiple images. You may want to use GIPHY CAPTURE for this! 📸
Please frame screenshots to show enough useful context but also highlight the affected regions.

Messages

:book:
:link: MB-8273

  Generated by :no_entry_sign: dangerJS against 57a683165c813b2797a123cbaea50666a7797bb3


push information to zinsearch service

Steps to do this:

Get the environment variables: Read the url of the environment
Create a function to request to zincsearc


Allow to use Sentry in local environment

I'm submitting a ...

[x] feature request

Do you want to request a feature or report a bug?
Feature.

What is the current behavior?
Sentry is activated only in production environment.

What is the expected behavior?
I think it would be a good idea to allow using Sentry in local environment.

What is the motivation / use case for changing the behavior?
In my opinion using Sentry in local environment can sometimes help us detect errors / bugs before deployment.

Other information
We  can do this by setting environment variable in Raven config.
More information

Have you considered adding this as a pull request?

Sure, i can do it - i just want to know if someone else think that it's a good idea.

Ping @jayfk @browniebroke @sfdye @webyneter

@mostaszewski I am not sure if this is a good idea, at least I never have to use Sentry in local environment. If you turn on DEBUG=True you will see the error message on your local setup.
One step further if you can set DEBUG=False and ADMINS to your email accounts, you will receive any error messages happened during development:
https://docs.djangoproject.com/en/2.0/howto/error-reporting/
Does this solve your problem?

Personally, I think Django's debugging is much superior to what one would get in Sentry. Let me elaborate on why:
Better than emailing errors, IMO, is to use runserver_plus from django-extensions. The killer feature is powered by Werkzeug: when a crash happens, you can open an interactive Django console in your browser. You can do that at each layer of the stack trace and interact with the code at the state it was at the moment it crashed.
A drawback of having Sentry locally is that I would encounter several meaningless errors before my code is working, and they would end up being reported in Sentry, potentially distracting other co-workers or generate noise.
Would that solve your problem? Is this feature not documented well enough maybe?

I agree with @browniebroke and @sfdye here.
There might be a few good use cases for error reporting services like Sentry in a local environment but IMHO they shouldn't be enabled by default.

Also, if someone really needs to use Sentry this way, it's trivial to add it later on.


Add .legendTextFunction to Donut Chart

Expected Behavior
Add a new legendTextFunction method on the API.
Current Behavior
Right now drawLegend calls text( () => '${obj.data.percentage}% ${obj.data.name}' ).
Possible Solution
The new method legendTextFunction should be used on drawLegend, it will be called with obj.data, so that the custom function can have access to the data.
By default it should display the same text that we have today.
Context
Allowing the usage of a custom function will help in cases when someone doesn't want to show the name or might want to use quantity instead of the percentage, alongside other options.
By following the concepts of "convention over configuration" we should always provide a good default behavior, in this case the same "45% Something" that we have today, so that user can start using the lib easily, but allowing for different and complex scenarios by providing a good API to hook in custom methods.

@mrbongiolo thanks for opening the issue! It was implemented in https://github.com/eventbrite/britecharts/pull/498, let us know if you have any issue.


DotNet: Support more format for allowed referer #166

Fixed #166 in DotNet
"sub.domain.com" - accept both http and https
"sub.domain.com/folder" - accept both http and https
"http://sub.domain.com" - accept only http
"https://sub.domain.com/folder" - accept only https
"//sub.domain.com" - accept both http and https
"*.domian.com" - accept both http, https, all the subdomains and folders.

:+1:

Good job @guo7711 !!
One question: This implementation does not check for referer prefix but it checks if the proxy's referer is equal with the application's referer
(if (referer.ToLower().Equals(allowedRefererAccepted.ToLower())) return true;)
So for example if I have allowedReferers="http://artemisfl.esri.com" and the app uses http://artemisfl.esri.com/app.html, this will not pass. Should we allow any referer that starts with a prefix? If yes then we may have to use method ProxyConfig.isUrlPrefixMatch. If not then checking for equality is fine.
Other than that I tested
"sub.domain.com"
"http://sub.domain.com"
"//sub.domain.com"
"*.domian.com"
and all worked as expected! I haven't tested the folders yet.

In fact, besides checking if the proxy's referer is equal with the application's referer, it will also check folder and subdomain, equal is just one of the conditions returns true. I don't think we should allow any referer starts with a prefix, because if allowedReferer="sub.domain.com/folder", we don't want to pass "sub.domain.com/folders".
You are right, if I have allowedReferers="http://artemisfl.esri.com" and the app uses "http://artemisfl.esri.com/app.html", this will not pass. The reason is we split the allowed referer parts by ".", if the app uses "http://artemisfl.esri.com/app", it will pass. We will see how we can improve from here. @esoekianto

@guo7711 In your first post, when you say "sub.domain.com" - accept both http and https
I guess you mean "//sub.domain.com"? Do I understand correctly?

"sub.domain.com" means "sub.domain.com" without any slash and protocol names.
What's your test case on double-slashes and wildcard?

In the proxy.config, I have <serverUrl url="developers.arcgis.com" matchAll="true"/> and the request I made is http://alin.esri.com/DotNet/proxy.ashx?http://developers.arcgis.com

@cheetah90 we are talking about referer here, for allowedReferer

Oh my bad!!!  Sorry about that :)

Tested and verified! @bsvensson @guo7711 !

Thanks for testing @cheetah90

I want to re-open the discussions about, if we have allowedReferers="http://artemisfl.esri.com" in proxy.config, should we allow `Referer="http://artemisfl.esri.com/app.html". If there is needs for this, I will implement this rule in JSP, which I am currently working on and patch it on DotNet and PHP.
Any suggestions?

@cheetah90 i agree with @afili's earlier comment that we should allow any url that starts with the same prefix

@cheetah90 I agree. We should allow subfolders and files. Same prefix may cause that when allowedReferer="sub.domain.com/folder", "sub.domain.com/folders" will get through. We might need to set up a new rule on it. @jgravois

After discussion with @bsvensson, we decided to add the support for ending wildcard to make it absolutely clear.
So sub.domain.com/folder/* will support sub.domain.com/folder/app.html and sub.domain.com/app.html
while
sub.domain.com/folder will just do exact match.
I've written up a reference for the rules for allowedReferer  Please send me/Bjorn comments and suggestions! After we finalized the rules, the plan is to conform to the ServerUrl.

... and sub.domain.com/app.html

i think you mean 'sub.domain.com/folder/app.html
also, no use linking to devtopia docs.  not all of us have access :smile:


Compiler-sfc generates ES5 code with arrow functions which breaks IE11.

Vue version
2.7
Link to minimal reproduction
https://github.com/granowski-bamboo/vue27-arrow-fn-ie11-thing/tree/main
Steps to reproduce
One repository provided is checked out.
Run
npm install
`npm run build'
What is expected?
The dist folder should contain javascript that has been compiled down to ES5.
What is actually happening?
The dist folder should contain javascript that has been compiled down to ES5.
The JavaScript should be as compatible as possible with older browsers. Vue 2.6 still supported IE11 (based on an actual project we're running here at Bamboo Health) and as of Vue 2.7 the arrow functions were added which breaks IE11.
System Info
System:
    OS: macOS 13.4
    CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
    Memory: 29.20 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.3.0 - ~/.nvm/versions/node/v20.3.0/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 9.6.7 - ~/.nvm/versions/node/v20.3.0/bin/npm
  Browsers:
    Chrome: 114.0.5735.133
    Edge: 114.0.1823.55
    Safari: 16.5
  npmPackages:
    vue: ^2.7.7 => 2.7.14

Any additional comments?
At Bamboo Health we have some Vue applications, we unfortunately have a lot of Healthcare partners that still use IE11...
Unfortunately some of our partners have deals with companies like Microsoft to get private support for IE11 even after its official death by Microsoft.
Our product group and security group has asked us to ensure our applications meet a high-trust environment. We're trying to upgrade our apps to Vue 2.x latest or Vue 3 as possible and ran into this problem where IE11 breaks with Vue 2.7

Here's an attached screenshot of the dependencies that were compiled down. We can see that the makeMap() function is coming from the compiler-sfc code.
The code is coming from here:
https://github.com/vuejs/core/blob/d2c3d8b70b2df6e16f053a7ac58e6b04e7b2078f/packages/shared/src/makeMap.ts#L17

I'll move this to the Vue 2 repo as IE11 is explicitly not suppported b Vue 3.