score() function not setting search options

The QueryBuilder score() function should be able to specify the scoring method, which should be implemented by setting the search options when the request is made.
Currently, the scoring method is emitted as textual content for the score, which is invalid for the schema.
The workaround is to set the score in the search options instead using the withOptions() clause

qb.score('logtfidf' | 'logtf' | 'simple' | 'random' | 'zero') should set the score method (prepending 'score-') in the search:search-options.
Unit tests are in test-basic/query-builder.js and test-basic/documents-query.js

qb.score('logtfidf' | 'logtf' | 'simple' | 'random' | 'zero') is working as expected with every argument.
I have added test in nodejs-documents-query-facet.js and they are running fine, hence shipping this issue.
https://github.com/marklogic/node-client-api/commit/dd4e887bed24ec1b2289633d166ea8e7e18c51f1


Contact us section

I would like to add a contract form on a separate page

Cool, @arpit456jain. Also, post the response to the backend dashboard.

Cool, @arpit456jain. Also, post the response to the backend dashboard.

@vigneshshettyin i am not getting what do you mean by back-end dashboard.
You mean to say database or something else ??

Yup, to the DB and create a table to view all the responses @arpit456jain

Yup, to the DB and create a table to view all the responses @arpit456jain

Ok but can i work on creating table to view all responses in another issue ?

Okay, cool @arpit456jain

@vigneshshettyin  i am getting this error
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: contact
what command i have to run to make the table in database ?

@vigneshshettyin  is there any way to check data is stored or not although i am 99% sure the data is saved in the database successfully

Yup using DB browser. @arpit456jain

@vigneshshettyin  is there any way to check data is stored or not although i am 99% sure the data is saved in the database successfully

Yup using DB browser. @arpit456jain
https://sqlitebrowser.org/

thanks @vigneshshettyin kindly review my PR

Done @arpit456jain


Allow selecting more testJavaVendors

by using a matching spec if we don't have a pre-defined spec.
This also enforces Adoptium JDK 11 for building Gradle on M1 macs, given that Temurin has been released now.

@bot-gradle test and merge

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


Issues with sounddevice from inside a virtualenv

OS: Windows 10
System language: Russian
Python: 3.8.8
Running inside a virtualenv (this is important) from Pipenv
I've had an issue with the most basic use of sounddevice on a certain Windows laptop (I couldn't reproduce it on any other Windows laptop I've got my hands on):
Traceback (most recent call last):
  File "threading.py", line 932, in _bootstrap_inner
  File "threading.py", line 870, in run
  File "vpt\sources\device_audio_source.py", line 38, in run_threaded
  File "sounddevice.py", line 274, in rec
  File "sounddevice.py", line 2573, in start_stream
  File "sounddevice.py", line 1415, in _init__
  File "sounddevice.py", line 892, in __init__
  File "sounddevice.py", line 2734, in _check
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd1 in position 0: invalid continuation byte

The above is a traceback from my program, bundled with PyInstaller, but the same issue persists even without threading or PyInstaller, if I just simply run the following line in the Pipenv-created virtualenv Python interpreter:
PS> pip install pipenv
PS> pipenv --three
PS> pipenv install sounddevice
PS> pipenv run python

>>> import sounddevice as sd
>>> sd.rec(44100, samplerate=44100, channels=2, device=1, blocking=True)

What's particularly notable is that if I install sounddevice system-wide, outside of Pipenv, the same code works just fine. This leads me to believe that there is some issue with sounddevice running inside a virtualenv.
After studying the issues of this repository, I came across https://github.com/jaakkopasanen/Impulcifer/issues/53, where the OP seems to have a similar problem, and they are also running sounddevice inside a virtualenv. They have resolved their issue using some setting in Windows, but I wonder if there's a fix on the library side.

Update: In the issue that I linked, they suggest ticking a box that enables UTF-8 for applications. I did that, and now the error message is different, but unfortunately, the error is still there.
The updated traceback is:
Traceback (most recent call last):
  File "threading.py", line 932, in _bootstrap_inner
  File "threading.py", line 870, in run
  File "vpt\sources\device_audio_source.py", line 38, in run_threaded
  File "sounddevice.py", line 274, in rec
  File "sounddevice.py", line 2573, in start_stream
  File "sounddevice.py", line 1415, in _init__
  File "sounddevice.py", line 892, in __init__
  File "sounddevice.py", line 2734, in _check
sounddevice.PortAudioError: Error opening InputStream: Unanticipated host error [PaErrorCode -9999]: 'Системной функции передан неправильный параметр.' [MME error 11]

To translate the Russian sentence in the traceback: "A system function received an invalid parameter". What could be causing this?

Okay, I've uncovered the cause of the issue, it is outside of this library – that laptop was running a corporate version of Windows which was imposing security restrictions and the library couldn't open the audio device. The reason why it worked outside of a virtualenv is because I was launching python from Powershell, supposedly a trusted program which had access to hardware.
What have we learned?

When an error message contains non-ASCII characters, it can't be decoded and the library dies with an unhelpful error message
Windows security policies can be causing MME error 11, there's no way around that, supposedly


Customize service module

Ticket
N/A
Changes

What was added, updated, or removed in this PR.

Add ability to pass in container environment variables to the service module
Add ability to pass in container secrets from Parameter Store to the service module
Add ability VPC security group ingress rule allow inbound requests to VPC endpoints from the app (needed for access to Parameter Store)
Add ability to run non-custom docker images
Add ability to customize healthcheck
Add ability to disable read-only containers

Context for reviewers

Testing instructions, background context, more in-depth details of the implementation, and anything else you'd like to call out or ask reviewers.

On a number of my recent projects, I've needed the ability to run non-custom docker images (e.g. flowable. This means I've needed the service module to be a little bit more flexible.
Specifically, I've needed to be able to:

Pass in a different docker image (such as from docker hub)
Pass in environment variables I can use to configure the container
Pass in secrets that are stored in AWS Parameter Store to the container
Modify the healthcheck settings (for instance /health doesn't exist, but /healthcheck does or /homepage does)
Modify the container to not be read-only (some containers will fail if run in read-only mode)

Testing

Provide evidence that the code works as expected. Explain what was done for testing and the results of the test plan. Include screenshots, GIF demos, shell commands or output to help show the changes working as expected. ProTip: you can drag and drop or paste images into this textbox.

I've created a matching test PR in the platform-test repo that demonstrates how to test these changes: https://github.com/navapbc/platform-test/pull/65

Nice. This PR looks meaty so it'll take me more time to review it. But some initial thoughts:

customizing environment variables has been on my wishlist / backlog for a bit so i'm excited to see what you did with that
customizing the healthcheck has also been a painpoint, we've had issues with some base images not having wget (so they would use curl or something else instead) so forcing apps to have wget seemed limiting. not sure if your solution addresses that but looking forward to seeing if it does
i'm kind of a networking newb but i was a little surprised to see that we needed the vpc endpoint rule. i thought that the subnet that the app service was in had access to the public internet so i thought it would be able to access all of aws services.

Update: @lorenyu Thank you for the feedback on this PR! I haven't had time to address it yet, but have it on my radar.

This PR is probably too old to be able to merge easily as is, but I created a follow up ticket to review this PR for valuable things that we can pull into future PRs https://github.com/navapbc/template-infra/issues/772


redirect distribution-specific docs to external websites

closes https://github.com/kubeflow/website/issues/3074
This PR is the final part of https://github.com/kubeflow/website/issues/3074, and does the following:

redirects the pages for distributions (which previously had a place on the sidebar) to their respective external websites
replaces the Distributions section from the sidebar with a link to the "Installing Kubeflow" page

@zijianjoy @jbottum I would appreciate a review on this one, so we can finally get https://github.com/kubeflow/website/issues/3074 closed!

We need to improve our website.  There is a lot of changes in this PR.   We probably need a call to walk through this.   Can it be done in 15 minutes during a Community call ?

@jbottum This is a very small change in the scheme of things, as we are just implementing the plan we have been working towards for over a year in https://github.com/kubeflow/website/issues/3074.
Without this change, it gives unnecessary preference to the small number of distributions which retain their single-page entry on the sidebar (which is the whole idea behind https://github.com/kubeflow/website/issues/3074).
For the redirect links, I have used the same ones which the distribution owners provided in their table entry the installing kubeflow page, so they are definitely correct.

@zijianjoy as discussed, I have updated the PR to only redirect the distribution-specific docs to their websites, but leave the Distributions section on the sidebar, with a link to the Installing Kubeflow page.
This will also let us include conformance testing docs under the Distributions section in the future, if we want.

/lgtm
/approve
Thank you @thesuperzapper !


Add examples of using the modifyInMap function

Continues the process of adding examples for each function in the library.

:tada: This PR is included in version 1.11.9 :tada:
The release is available on:

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Fix IP address calculation error

There is the example of calculating the required IP address space for an AKS cluster with 50 nodes, 30 pods and 10 nodes for scaling. The correct output is 1,891 IP addresses and not 2,440 as in the docs.

Hi @neumanndaniel:
You should join MSFT / GitHub accounts and make PRs in the private repo, so the content can be staged and validated by the current validation rules.
Follow the instructions in Set up Git repository locally for documentation to link your GitHub alias with your Microsoft account.
Then, make content contributions through the private repository so the content can be staged and validated by the current validation rules.
Read about working in the public repo for more information.
Thank you.
Trisha

Thanks, @neumanndaniel. You're correct, but wouldn't that also mean you can use a /21 subnet mask then?

Sure /21 subnet mask provide 2046 IP addresses.

Thanks, @neumanndaniel. I've pulled over your commit, and updated the subnet mask. This update should publish this morning.
#please-close


New option to sos execute for multi-node task execution

#1276
sos execute needs to know what executor to use. Giving that most tasks are submitted by the sos-pbs module  with a template-generated bash file similar to
%PBS ..

sos execute {tasks}

it is most natural to change the template to something like
%PBS...

sos execute -e pbs {tasks}

So that sos execute can look for an executor called pbs and use it to execute specified tasks.
It is possible to let the pbs task engine to do some magic but making the option explicit seems to be better and allows easier testing.

Option -e executor is added to command sos execute. However, it could have the following uses:

sos execute task_id -e executor can execute a single master task with id task_id on multiple nodes.
sos execute task1 task2 task3 -e executor can execute multiple tasks on multiple nodes. In this case tasks do not have to be master tasks.

Since 2 is more general, I think the interface should allow for both cases, in which case task_id itself should not know the number of nodes (so the trunk_workers=(2,4) idea should be discarded).
However, the PBS job submitter currently submit one job for each task, with a template in the format of
%PBS -l nodes={nodes}:ppn={cores}

sos execute {task} -v {verbosity} -s {sig_mode} -m {run_mode} -e pbs

We should relax it to allow the submission of multiple tasks in one shell script, something like
%PBS -l nodes={nodes}:ppn={cores}

sos execute {' '.join(tasks)} -v {verbosity} -s {sig_mode} -m {run_mode} -e pbs

However, it is unclear how to control how many tasks should go into one PBS job. Should we add another option to control that? Perhaps a batch_size option can be used in addition to trunk_size?
In the end, there are several scenarios:

Existing one. One task per job, running in one node.
Existing one. One master task per job, running in one node. (trunk_size=0)
New one? Multiple tasks per job, running in one node. (batch_size=10)
New one? One master task per job, running in multiple nodes (trunk_size=0, nodes=5)
New one? Multiple tasks per job, running in multiple nodes. (nodes=5)
New one? Multiple master tasks per job, running in multiple nodes (trunk_size=10, nodes=5)

There could be more options so I am worried that it could really confuse users.

Sorry I'm traveling until the end of this week ... also sorry I want to clarify some basic stuff:

sos execute needs to know what executor to use.

How is this relevant to multi-node task execution?

t is possible to let the pbs task engine to do some magic

What magic -- could you give an example?

Option -e executor is added to command sos execute.

Cool! I'll now try to digest the new proposed interface and see if I can understand them easily.

trunk_size = 0

This is awkward ...  trunk_size = None is a bit better?
I'm trying to simply the interface from a user's prospective. The previous interface with trunk_size and trunk_works are already a bit too much in my view. I'm not sure why a user have to understand difference between subtask and master task. The smallest unit of execution, to an SoS user, should be substeps. cores and mem specifies resources needed to run each substep. With that taken care of, users will ask the question of how to run substeps on a job queue system. trunk_size essentially controls how many substeps to group into one job script, trunk_workers controls the extend of parallelization for substeps in each trunk. All of this happens in one node.
Now to a user, the only difference is that the above can happen on multiple nodes. That is, by changing from trunk_workers = n_threads to trunk_workers = (n_nodes, n_threads) (or, maybe trunk_workers = 2x3 instead of (2,3)) users will be able to increase trunk_size thus reducing the number of jobs submitted. These are more complicated, but still intuitive to me; and is well motivated. I'm not seeing a place for distinguishing subtask with master task -- that sounds like a technical detail we can somehow hide?

I'll now try to digest the new proposed interface and see if I can understand them easily.

Basically right now the task executor inside sos executes on one node, with optional multiprocessing (trunk_workers). If we define another task executor inside the sos-pbs package, or something else in the sos-kubernetes package, we need someway for command
sos execute

to know which executor to use. Currently the solution is to use
sos execute -e pbs

which as an entry point refers to sos_pbs.task_executor:PBSTaskExecutor.
As I said, we could be more clever to say sos executor uses task engine specific task executor, but -e is a bit more straightforward.
Anyway, none of these is fixed, and the entire batch_size, nodes stuff are up to discussion. Personally I sometimes want to avoid master tasks because it can be tricky to figure out what went wrong with a particular subtask, but perhaps we should address that problem directly instead of introducing batch_size.

cores and mem specifies resources needed to run each substep.

The problem here is right now all substeps are single-node jobs and cores are not used. It is possible for us to allow for multi-node single-task later (#476), but we are not there yet, and this could conflict with trunk_workers=(n_node, n_proc).
I do agree with your single-task concept. That is to say, we can remove the concept of master task (not showing any subtask ID), so basically a task can have "work" for one or more (trunk_size) substeps, and the work can be spread to multiple workers in one or more nodes (trunk_workers).

I see. So -e executor is more like an internal or intermediate feature at least at this point when we are experimenting new execution models. I was confused earlier because I thought the current execution model is a subset, or special case at least from user's prospective, of multi-node task execution so I was not expecting a separate user interface even though under the hood they are quite different for now. sos-kubernetes is a different story which justifies the -e option better. Still, the whole sos execute stuff is somewhat an intermediate feature and eventually I think the interface to switch to kubernetes will have to end up in either sos run command, or some templates such as config.yml or a job script template where sos execute will become relevant (i say it is intermediate feature because it seems to mostly appear in job templates).

right now all substeps are single-node jobs and cores are not used

I understand all substeps are now single-node jobs. But cores are used to specify number of CPU used per substep -- is that right? Then cores are directly used to reserve CPU for a substep. Not sure what it is meant by "cores are not used".

It is possible for us to allow for multi-node single-task later

I think I now understand what you meant -- similar to using cores directly to specify CPU requested, we can also use something like nodes to specify nodes used. But cores can be confused with trunk_works = n_proc because then the actual number of CPUs used in a single node would be cores * n_proc, right? So it is not so much a conflict as it is just harder to interpret, in the single node multiple threads case. I'm not sure if the problem for multiple nodes is of similar nature, or there actually will be some conflict for that case.

So with #1278, let us clarify that

nodes, similar to cores, mem, walltime specify the resources used by one task. That is to say, until #1278 is resolved, nodes will continue to be left unimplemented.

trunk_workers=[n_proc]*n_nodes will be used to specify number of nodes. The advantage of this format is not to allow different number of processes in different nodes, but to avoid confusing between (n_proc, n_nodes), or (n_nodes, n_proc).

If one of these two options are specified, {nodes} in the template file will be correctly determined.

If both of these two options are specified, things will become complicated so it makes sense to disallow it. There should be rarely a need to use trunk_size for multi-node jobs.

nodes, similar to cores, mem, walltime specify the resources used by one task. That is to say, until #1278 is resolved, nodes will continue to be left unimplemented.

node, if similar to cores etc, should goes directly into the job template without impacting behavior of sos execute. It specifies the computational requirement of a substep. In most cases for daily computations we do not use mpi applications, and thats makes nodes=1 most of the time. Is that true? My point is that unless users have an mpi application, nodes will not do any magic. It is just a parameter in template. This is why I'm not sure I understand #1278 -- for a single task (or, substep), SoS should not have done anything to execute on multiple nodes; the substep determines if the job is multi-nodes or single-node.

trunk_workers=[n_proc]*n_nodes

what does [ ] mean?, for different number of processes in different nodes? Not sure why that is needed ... except that the syntax does (awkwardly) help avoid confusion.

it makes sense to disallow it. There should be rarely a need to use trunk_worker for multi-node jobs.

So this seems to confirm my first response in this post that node is simply specifying number of nodes for a multi-node substep. ..?

Implementation wise ...

I think we are on the same page but I just want to confirm. The use of terminology task is a bit confusing because I keep thinking of sos execute implementation details. Would be nice to focus on the concept of "substep"&"job" and hide the notion of "task", when we introduce this to users on the documentation? All they need to worry about is how substeps are scheduled executed in a job queue system.

This is why I'm not sure I understand #1278

#1278 implements parameter nodes that allows the execution of multi-node tasks, which would  essentially allow the execution of
task: nodes=5
mpirun mpi_job

through a template
%PBS -l {nodes}:{cores}

sos execute {task_id}

Here is the proposed interface: Make trunk_workers equivalent to -j from command line so that it accepts,

trunk_workers=4 means localhost 4 processes.

trunk_workers=None or by default, gets -j on cluster. That is to say, if a user creates a shell script with

#PBS nodes=2:ppn=4
sos execute task_id

It will be translated to
sos execute task_id -j node1:4 node2:4

and the task will be processed by 8 processes on two nodes.

A more common usage, is however the use of templates. In this case, trunk_worker=[4, 4, 4] means three nodes each with 4 processes. In theory it could accept trunk_worker=['node1:4', 'node2:4', 'node3:4']. However, SoS will only derive {nodes} and {ppn} from this parameter, and treat other values (e.g. trunk_worker=[4, 3]) as error, and this is why the trunk_worker=[4]*3 expression makes more sense here.

In this case, our template
#PBS nodes={nodes}:ppn={cores}

sos execute task_id -e pbs

would generate -j that matches trunk_worker.

An error will be created for non-matching -j and trunk_worker, regardless if -j is specified from command line or derived from $PBS_NODEFILE.

All these are assuming nodes=1, meaning that all tasks are single-node tasks. In case of multi-node single task (#1278), nodes will populate {nodes} in the template, which will lead to correct -j. However, because such tasks do not have trunk_worker, we will execute the task in the master worker, and the task will spawn itself to multiple nodes by itself.

Make trunk_workers equivalent to -j from command line

Previously, -j controls how many processes to use on the machine that manages tasks, when -J is also used. That usage was more or less an administrative feature not related to job specifications. I wonder what happens to that (resource to manage jobs) when we make -j = trunk_workers.

A more common usage, is however the use of templates.

I"m still confused in this case. Yes either ['node1:4', 'node2:4', 'node3:4'] or [4]*3 makes sense. The latter perhaps more so, because typically we do not specify explicitly what core to use on which node . So why [4] * 3 not 4 * 3 (which is cleaner)?

why [4] * 3 not 4 * 3 (which is cleaner)?

[4]*3 in Python is just [4, 4, 4], which is what we would get from -j 4 4 4. 4*3 will be evaluated to 12 if we do task: trunk_workers=4*3.

I mean we should write a function to parse 4*3 to [4] * 3, to make it easier for users.

Previously, -j controls how many processes to use on the machine that manages tasks,

-j specifies number of workers for steps, substeps, and subworkflows for the execution of sos workflows, NOT tasks as tasks are executed outside of sos instances. In the case of sos execute task_id -j we are specifying the number of workers for (sub)tasks.

Yes I was aware -j is not for tasks. But I thought when used with -J (for tasks) in sos run, it controls how many processes used to communicate and manage tasks. That is why previously by default having -j max_cpu/2 means -j 14 on my computer and thus using too much memory. We fixed that by setting -j 4 -- do you recall that? Then I was left with the impression that we need to set this "admin" parameter, until this proposed new usage.

I mean we should write a function to parse 4*3 to [4] * 3, to make it easier for users.

I see, that has to be
trunk_workers='4*3'

not
trunk_workers=4*3

However, because we support
trunk_workers=4

(not string) and we are technically speaking allowing
trunk_workers=['node1:4', 'node2:4']

I felt that extending from
trunk_workers=4

to
trunk_workers=[4, 4, 4]

and then to
trunk_workers=['node1:4', 'node2:4', 'node3:4']

makes more sense.

But I thought when used with -J (for tasks) in sos run, it controls how many processes used to communicate and manage tasks.

-J controls number of active tasks in a queue, basically only used for -J 1 to override max_running_jobs setting of a queue for debugging usages. I would remove it if I can find an alternative method to achieve this particular usage.

Okay, I agree using numeric values consistently for trunk_workers is good idea. Maybe I've got a misconception on -j but the new interface makes sense. I'll reserve my doubts on resource usage in "admin" threads to later after we have the new interface implemented and I'll test on that.


报错 ndex.tsx: Identifier 't' has already been declared.

ndex.tsx: Identifier 't' has already been declared.
import { Select, Spin } from 'antd'
| import { SelectSkuProps } from '../data'
import { t } from "@/utils/i18n"

你这个文件里是不是有其他地方定义了t? 需要自己处理下变量名冲突

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
此 issue 已被自动锁定，因为关闭后没有任何近期活动。如果有相关 bug，请重新创建一个新 issue。

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
此 issue 已被自动锁定，因为关闭后没有任何近期活动。如果有相关 bug，请重新创建一个新 issue。

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
此 issue 已被自动锁定，因为关闭后没有任何近期活动。如果有相关 bug，请重新创建一个新 issue。

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
此 issue 已被自动锁定，因为关闭后没有任何近期活动。如果有相关 bug，请重新创建一个新 issue。

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
此 issue 已被自动锁定，因为关闭后没有任何近期活动。如果有相关 bug，请重新创建一个新 issue。


Adding Cassandra landing page

What changed, and why it matters
We don't have a section on the devportal for Apache Cassandra yet, so this fixes #80 and gives us a place to add more Cassandra-related things under.
I took the liberty of declaring that "performant" is a word. My search engine results described it as "engineering jargon" which sounds perfect for this site ;)

hey, in the Aiven developer on devportal there is a section for Cassandra. Do you think it makes sense to link to the landing page like the others?
File path: /devportal/index.rst

LGTM from product. Thanks.


Error rendering depth image

Dear tsattler and v-pnk,
When I use the ply model and camera pose file you shared to render depth images with Open3D, I'm having trouble getting depth images that match yours in scale. I think there might be something off with my camera position calculations or other parts of the process, but since I'm just starting out, I can't figure it out on my own. Could you help me spot where things might be going wrong in the code below? Thanks a lot!
import open3d as o3d
import numpy as np
import re
mesh = o3d.io.read_triangle_mesh("akitchen.ply")
mesh.compute_vertex_normals()
def load_camera_intrinsics(file_path):
with open(file_path, 'r') as f:
lines = f.readlines()
camera_params_line = None
for line in lines:
    if not line.startswith('#'):
        camera_params_line = line.strip()
        break

if camera_params_line is None:
    raise ValueError("No camera parameters found in the file.")

params = camera_params_line.split()
camera_id = int(params[0])  # CAMERA_ID
model = params[1]            # MODEL
width = int(params[2])       # WIDTH
height = int(params[3])      # HEIGHT
fx = float(params[4])        # fx
fy = float(params[5])        # fy
cx = float(params[6])        # cx
cy = float(params[7])        # cy

# print(f"fx: {fx}, fy: {fy}, cx: {cx}, cy: {cy}")

intrinsic = o3d.camera.PinholeCameraIntrinsic()
intrinsic.set_intrinsics(width, height, fx, fy, cx, cy)
return intrinsic, width, height

intrinsic, width, height = load_camera_intrinsics("cameras.txt")
camera_params = o3d.camera.PinholeCameraParameters()
camera_params.intrinsic = intrinsic
file_name = "frame-000357.pose.txt"
frame_number = re.search(r'frame-(\d+)', file_name).group(1)
poses = []
with open(file_name, 'r') as f:
lines = f.readlines()
for i in range(0, len(lines), 4):
pose_block = []
for j in range(4):
if i + j < len(lines):
pose_row = np.fromstring(lines[i + j], dtype=float, sep=' ')
pose_block.append(pose_row)
if len(pose_block) == 4:
pose = np.vstack(pose_block)
poses.append(pose)
vis = o3d.visualization.Visualizer()
vis.create_window(width=width, height=height, visible=True)
vis.add_geometry(mesh)
for i, pose in enumerate(poses):
extrinsic = pose
R_T = pose[:3, :3]
t = pose[:3, 3]

print(f"Extrinsic matrix for pose {i}: \n{extrinsic}")

camera_position = pose[:3, 3]

bounding_box = mesh.get_axis_aligned_bounding_box()
object_center = bounding_box.get_center()

distance = np.linalg.norm(camera_position - object_center)
print("Camera to Object Center Distance:", distance)

print(f"Camera Position for pose {i}: {camera_position}")

R= R_T
lookat = camera_position + R[:, 2]
up = -R[:, 1]
front = -R[:, 2]

ctr = vis.get_view_control()
ctr.set_lookat(lookat)
ctr.set_up(up)
ctr.set_front(front)
ctr.set_zoom(1)

image = vis.capture_screen_float_buffer(do_render=True)
image = np.asarray(image)

from PIL import Image

image = (image * 255).astype(np.uint8)
Image.fromarray(image).save("rendered_image.png")

depth = vis.capture_depth_float_buffer(do_render=True)

vis.poll_events()
vis.update_renderer()

depth_image = np.asarray(depth)

depth_image_min = np.min(depth_image)
depth_image_max = np.max(depth_image)

if depth_image_max > depth_image_min:
    depth_image = (depth_image - depth_image_min) / (depth_image_max - depth_image_min) * 255
else:
    depth_image.fill(0)

depth_image = depth_image.astype(np.uint8)

depth_image_path = f"depth_{frame_number}_{i:04d}.png"

depth_array = np.asarray(depth_image)

depth_height, depth_width = depth_image.shape
print(f"Depth image resolution: {depth_width}x{depth_height}")

o3d.io.write_image(depth_image_path, o3d.geometry.Image(depth_image))
print(f"Saved depth image: {depth_image_path}")

vis.destroy_window()

Hi @alpha571,
At first sight, there will be issues with depth units and quantization.
The following line normalizes your depths into the range between 0 and 255, and you lose the original units of the rendered depths. Our depth maps are stored in the original units of the rendered mesh (e.g., meters).
depth_image = (depth_image - depth_image_min) / (depth_image_max - depth_image_min) * 255

Another issue might be storing the depth maps in uint8. That gives you only 256 different values, which might look OK if you look at the depth map as an image but will look very bad when you try to back-project it into 3D space (create a point cloud). I usually store depth maps in 16-bit floats.
depth_image = depth_image.astype(np.uint8)

I implemented an Open3D renderer some time ago. You can use that one, or use it to debug your own rendering pipeline. It uses Open3D OffscreenRenderer, so the overall structure is a bit different.
https://github.com/v-pnk/3dv-tools/blob/main/scripts/renderer_o3d.py

Dear v-pnk ,
Thank you very much for your reply. When I tried to use the rendering pipeline you provided, there were some problems related to pycolmap version, so I would like to know which version of pycolmap you used. Thank you very much for your help.

pycolmap 0.3.0 or 0.4.0 should work.


Change jquery source url to https

When there is an unsecure import over http SSL enabled sites won't work properly. Small change

Thanks, Martijn 👍


add by manual error

hi,I add it manual,and i use swift 3,there is the error module libPhoneNumber not found

Check "libPhoneNumber-SwiftDemo" in this repo and tell me more info to solve problem.


Botcamp/hedged xemm with arbitrage

Before submitting this PR, please make sure:

[ ] Your code builds clean without any errors or warnings
[ ] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:
Description: The bot will place 1 limit order on both sides of the price_source of low liquidity exchange. Every time an order is filled on the low liquidity exchange, the bot will place a hedge order on the high liquidity exchange. The bot will calculate the volatility on the high liquidity exchange based on the volume and the bid and ask spread. In case of high volatility the hedge will be a limit order and when the volatility is low the hedge will be a market order.
Notion design template: https://hummingbot-foundation.notion.site/Cross-Exchange-Market-Making-With-Arbitrage-d8de079658114140a21cf2220b4b6ae8
Tests performed by the developer:
Tips for QA testing:

Added branch to Notion Design Template


Destroy after BS Modal close - doesn't seem to destroy completely

Hi,
I'm loading cropper in Bootstrap modal, on button click.
To destroy it when the modal is closed, I added:
    $('#crop-modal').on('hidden.bs.modal', function () {
        $("#crop-modal .bootstrap-modal-cropper img").cropper("destroy");
        console.log('modal-closed');
    })

When I click on the crop button again, the modal with the cropper loads correctly, but in the console I can see the build and built events are fired twice. When I close it again and open again, they are fired 3 times etc.
Any idea how to fix this?

It seems it was the problem of your jquery selector:
  $("#crop-modal .bootstrap-modal-cropper img")

Before build:

After built:

    ...

So, when you run $("#crop-modal .bootstrap-modal-cropper img").cropper("destroy"), you would get three image elements:

Image 1: Already had a cropper instance, so can be destroy.
Image 2: Didn't have a cropper instance, would build first, as it is an asynchronous process, you couldn't destroy it before it was built.
Image 3: The same as image 2.

A solution:
$("#crop-modal .bootstrap-modal-cropper > img").cropper("destroy"); // Add a child selector: ">"


gitGood - React app for people to start learning the git CLI

I want to add a react app which will be useful for people who are new to git and github. It'll help them gert familiar with the basics of the git command line interface.

Kindly add the Hacktoberfest label, please.


LeoJS icon in sidebar missing in vsc but not vscodium

I no longer see the LeoJS icon in the icon strip at the left of the VSC window.  It's there in VSCodium.  Without this icon, when I closed the last LeoJS window I could no longer use it until I restarted VSC.  I didn't see a setting to restore the icon, and I don't know what if anything I did to cause the situation.

There is no code that shows/hide the icon nor any conditional logic on that. So its probably a misclick/right click issue. Those can also be dragged out to the other sidebar, etc.
Try right-clicking on the sidebar. It's probably just hidden (you can check/uncheck which ones are shown with the checkmark beside them.)

Right-clicking did the trick.  Thanks!


Add strict-single-hooks experiment

This is a partial revival of #1135 (successor to #1055), rolled back in #1161. It attempted to fix the discrepancy between only running one of plugin/local/global command/checkout hook, but allowing multiple plugins to define a command/checkout hook (and running all of them).
Sadly both #1055 and #1135 broke enough pipelines that it had to be rolled back, but the dangers associated with letting multiple different things override checkouts and commands remain. ("Rock and a hard place")
This PR does two things differently to #1135:

Wrap the enforcement of single hook types in an experiment, just log a warning and carry on otherwise.
Do the check after testing the plugin for containing the hook - not doing this was a bug in the previous attempt (fixed in #1156).

Adding @pda specifically because of #1161.

I can't remember exactly why we decided multiple hooks was Bad, but I can imagine some reasons. E.g. perhaps two plugins each wrap the underlying step's command, so it ends up being run twice.

I think for command it's not so bad, and useful for some people even. But for checkout, it sure seems unnecessary to check out in two different ways twice.


Implement and document $anyDirty and $anyError flag

closes #84

Applause for this anyDirty and anyError feature! Thanks!
🥇


SAC and AC identity: set assigned SAC as default reader of identities

Otherwise they can not see their assigned papers and assigned AC in their consoles:
https://github.com/openreview/openreview-py/blob/master/openreview/venue_request/venue_request.py#L809
https://github.com/openreview/openreview-py/blob/master/openreview/venue_request/venue_request.py#L825
Make sure there is a test that verifies the SAC is not empty or the paper SAC groups are readable by the SAC user

Should I also raise an exception if the assigned SAC is not set as a reader like it's being raised for review identity right now?

No, adding the assigned SAC as part of the default array is enough:  'default': ['Program Chairs'],
Before making the change you can reproduce the bug, checking the members of the paper SAC groups can not reader their own groups.


refactor: Extract GeneratorOptions into a separate module

The fact that the module was in the core meant that it got executed
even when a project was only including the apt versions of annotations

Sounds good, change commit right up


Error

Traceback (most recent call last):
  File "~\solo-6dof-motion-platform\src\start_program.py", line 322, in <module>
    StartProgramClass()
  File "~\solo-6dof-motion-platform\src\start_program.py", line 48, in __init__
    self.get_user_input()
  File "~\solo-6dof-motion-platform\src\start_program.py", line 118, in get_user_input
    PybulletProgram(
  File "~\solo-6dof-motion-platform\src\pybullet_program.py", line 58, in __init__
    PybulletIKClass(robot_environment="pybullet")
  File "~\solo-6dof-motion-platform\src\inverse_kinematics\pybullet_IK.py", line 21, in __init__
    self.data = np.array(self.data)
                ^^^^^^^^^^^^^^^^^^^
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (15361,) + inhomogeneous part.

It reports an error like this when I run the "start_project.py" in pycharm.

Choice: 2-->1-->1.
No robot.

Hi! I am unable to recreate this issue. Can you try from your terminal? You can run the bash script from the/src directory:
bash start_program.sh

Thanks！
It runs normally from linux terminal.


Setting up Ice on Mac?

Noob here, is there something that I  am missing in terms of setting up Ice on MAC?  Any help would be awesome!

What exactly are you having trouble with? I do all of my development on a Mac, so it should work without much issue.

Hi Scott - I came across this looking for the same guidance, and I am not sure if this was ever resolved for Snipes040. The issue is that I really don't know how to get Ice working in Mac OS X at all. I see the EXE file in the main download, but should I use a Wine container to run that? Or am I supposed to get the source files that then do stuff with Python and the Terminal - and if that is the case, I literally have no idea what I am doing and there is no tutorial to show me how. I was able to get Ice working on a Bootcamp partition so that I could run ROMs through Steam Link, because the Windows install is easy, but that still makes me reboot my computer just to get at it. I really want to get it working under OS X, and I think a clear step-by-step guide on the main site would be really helpful.

Hi, I also really like to have a small guide to get myself going on the mac! I'm am stuck on the pysteam section, installed PIP and Python. A step-by-step guide will be nice.
my error log:
Traceback (most recent call last):
File "/Users/Slip7000/Emulators/Ice/ice/main.py", line 7, in
from cli import CommandLineRunner
File "ice/cli/init.py", line 2, in
from runner import CommandLineRunner
File "ice/cli/runner.py", line 10, in
from pysteam.steam import get_steam, Steam
ImportError: No module named pysteam.steam


podmanv2 version format variable name change

change the name of the variable for version to avoid collision with other commands.
Signed-off-by: Brent Baude<EMAIL_ADDRESS>

@baude Did you see @vrothberg wrapper struct to prevent name collisions?

yeah but for one variable .... meh

/lgtm
/hold

/hold cancel


fix(app): Fix the sign up not working issue

Fix the sign up not working issue

[x] Have you renamed the PR Title in a meaningful way?

Related Issue

Closes: #102
Description
This pull request addresses the sign-up functionality issue in the application. The problem was caused by validation errors not being properly communicated to the user.
How Has This Been Tested? ⚙
Manually tested the sign-up flow with valid and invalid inputs.
Screenshots 📷

Type of change
What sort of changes have you made:

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist

[x] My code follows the code style of this project.
[x] I have followed the contribution guidelines
[x] I have performed a self-review of my own code.
[ ] I have ensured my changes don't generate any new warnings or errors.
[ ] I have updated the documentation (if necessary).
[ ] I have resolved all merge conflicts.

one suggestion also...this pr template is way to big for anyone...please modify it

@Ayushjhawar8 Resolve conflicts

its already fixed in the new merge so no worries =)


dice<10

I ran it on brats2018 with the code you provided, but dice was less than 10.

Could you provide detailed results of your experiment?

+1，I had the same problem with dice coefficients of around 20 on t1 and a few tenths on flair.  Is there something wrong with the code you uploaded?


Feature Request: Add light/dark mode

Description
Looking for the addition of the option to switch from dark mode to light mode in the website.

that's a great idea @You-now-Who! lemme work on this

@unnatijp24 Go for it! Design the UI and also add this feature.

@unnatijp24 lol.png is missing!


[WIP] Additional offboard setpoints

a couple more sets of offboard-setpoints. The added sets are as follow:
position-yaw, position-velocity-yaw, velocity-climbrate-yaw, velocity-climbrate-yawspeed,
Note that the firmware does not support it yet. However, once this PR gets in together with some changes of this branch, any kind of mixing of setpoints should be allowed.
~You don't have to review it yet.~

To write proper integration tests, the telemetry PR for local position is required. Other than that ready for review.
Please note again: Px4 master does not yet support the mixing of setpoints yet (but this branch does)

@Stifael when you correct issues from the review, please add additional commits instead of rewriting the existing ones. That way it's easier to see what has been addressed.

@Stifael make sure to rebase. There have been some changes :smile:

the Autopilot changes are/will be in this PR https://github.com/PX4/Firmware/pull/10031#issuecomment-407798323

There is demand for this :)
https://github.com/Dronecode/DronecodeSDK/pull/434

As an aside, it still frustrates me that we don't have or publish a clear picture on what is supported PX4 side with respect to MAVLink messages/frames. I'm hoping the test suite will eventually allow some sort of automated testing to verify that different behaviour is supported/not supported.


Clarification on Updating the Container

Hi there,
Thanks so much for the guide on setting up Stable Diffusion Web UI - it’s been incredibly helpful and worked perfectly! Definitely the easiest guide I’ve come across.
I just had a quick question about updating the container.  Does this mean I need to create a new notebook and reinstall the WebUI from scratch?
Thanks again for all your hard work!

Does this mean I need to create a new notebook and reinstall the WebUI from scratch?

The short answer is yes, but I'll try to explain it further. It would be better if you read this first.
For example, currently Forge uses pytorch 2.3.1. Let's say next month the maintainer decides to update pytorch to version 2.4.0. We can still use pytorch 2.3.1, but it might not perform as well as 2.4.0. Because of that, I have no choice but to build a new container.

Okay :D Thanks a lot for your quick and thorough answer!


Fix usage of wrong type instead of resolution details

Evaluation details and flag evaluation names usages for resolution details type were fixed.
Signed-off-by: Nikita Bishonen<EMAIL_ADDRESS>

This PR

In documentation regarding Provider different names were used instead of resolution details. This PR removes wrong or out of date names.
Related Issues

Notes

Follow-up Tasks

How to test

@humb1t could you run make parse as well?

Hi @humb1t, thanks for the PR. Would you be able update the JSON by running make parse? It would be great to get this change into the spec.

@humb1t I've pushed a commit to your branch that updates the JSON. I hope you don't mind.

Thank you a lot @toddbaert - had a really tough times and glad that you helped with merging this PR 💜


RelativeUrlResolver doesn't consider application context path

Before reporting any issue, please use the mailing lists: http://www.pac4j.org/mailing-lists.html

The RelativeUrlResolver assumes you have provided the right path. By design.

Agree with Jérôme. Not every web framework is tightly coupled to the concept of an application context path. If you want that approach, it shouldn't be part of core. No reason why there couldn't be a RelativeUrlResolverWithContextPath exposed for frameworks where context path is important.

Guys, it is not a big deal to write own resolver, but from my point of view "relative" means an attempt to avoid hardcoding and context can't be a part of right path.

And from my point of view, relative is not relative to context path, it's relative to the server/port combination. This also would appear to be Jérôme's view too.

Feel free to submit a PR for one which is context-path based and not in core, but in the appropriate framework implementation.

at least in jax-rs-pac4j, I implemented something like that I think: https://github.com/pac4j/jax-rs-pac4j/blob/master/src/main/java/org/pac4j/jax/rs/pac4j/JaxRsUrlResolver.java

Yes, "relative" here means server/port, nothing more. We could easily add the path to the generated URL, please submit a PR for further discussion.


Peer dependencies in npm 3+

Getting these warnings:
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from eslint-config-standard-react will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from eslint-config-standard will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from eslint-plugin-standard will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

Indeed, seems a bit explicit?

@feross I don't think removing the peer dependencies is a good idea, they are here to express the compatibility of the configs with specific versions of ESLint. However, what should be done is adding eslint as a dependency to standard.

A good way to remove the peerDependency is to check for versions explicitly when we require those modules. An example on how this can be done is in levelup's codebase: https://github.com/Level/levelup/blob/master/lib/util.js#L28-L56
I would say that it is the best possible solution, peerdependencies do not really work in complex cases anyway.

Hmmm, it seems like a bad idea doing this by hand when npm has a support for it.
And the use case here is far for complex: standard just requires eslint and eslint-config-*.

LevelUp does it manually because it can works with other backends than LevelDown.

I'm just saying that either:

we add each peerDependency as dependency
or we require and check those manually if they are needed.

The warning is quite annoying.

These warnings are gone in the latest versions of standard. :+1:
@julien-f It would be confusing to add eslint as a dependency to standard since the version that actually gets used is installed by standard-engine.
We want these shared configs to work with standard-engine and well as eslint directly. In this way, it's actually similar to the the leveldown backend situation.


Modify to 3D filter

I'd like to modify this code to 3D bilateral filter. So could you tell me where I should modify.

It currently supports 3D bilateral filter if you reshape your array to NCHWZ or NCZHW, where the last 3 dimensions are (height, width, spatial-depth) or (spatial-depth, height, width). The code initializes a 3D spatial grid for the last 3 dimensions (see here) in addition to the color dimensions.
However for now it will use the same filter width for the 3 spatial dimensions. If you want to have different filter widths for the 3 spatial dimensions, you would need to modify the arguments to the functions from just the 2 "stdv_color" and "stdv_space" and add another "stdv_Z" for the 3rd dimension.


Ipython console not starting with interpreter from another environment

Issue Report Checklist

[X] Searched the issues page for similar reports
[X] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[X] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[ ] Tried basic troubleshooting (if a bug/error)

[X] Restarted Spyder
[X] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[X] Tried the other applicable steps from the Troubleshooting Guide

[X] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
Following the modular approach of #Working with packages and environments in Spyder#, the Ipython console fails to start with this message (installing just spyder on the environment):
"Your Python environment or installation doesn't have the spyder‑kernels ..."
On the virtual env ** with Python version 3.6** doing $pip list | grep spyder you can see that the spyder-kernels 0.5.2 is installed, I have also tried with the last version spyder-kernels 1.8 but I have read that this is for Spyder version 4, just to trhoubleshooting, the same problem.
I have updated spyder in the spyder_env conda environemt ($conda update spyder).
What steps reproduce the problem?

Create a conda environment with just spyder: $conda create --name spyder_env spyder This environtment has Python version 3.7
Within a virtualenv, install using pip the spyder-kernels 0.5.2 package: (env) $ pip install spyder-kernels==0.*  Note: This environtment has Python version 3.6
Run the command to copy the python interpreter path: $ python -c "import sys; print(sys.executable)"
Deactivate the virtualenv: (env) $ deactivate
Activate the spyder_env: $ conda activate spyder_env
Launch Spyder: $ spyder &
Go to preferences > Python Interpreter > Use the following interpreter: Paste the path
/Users/gonzalopolo/Projects/semantic-analyser/env/bin/python

What is the expected output? What do you see instead?
Now, once I apply this interpreter of the virtualenv where spyder-kernels has been installed, the IPython console says in a Red box "An error ocurred while starting the kernel" and telling theat the spyder-kernels module is not installed or the version is not correct.
Paste Traceback/Error Below (if applicable)

NO ERROR TRACEBACK APPEARS on the console

Versions

Spyder version: 3.3.6
Python version: Python 3.7.0 64-bit
Qt version: Qt 5.9.6
PyQt version: PyQt5 5.9.2
Operating System name/version: macOS Mojave version 10.14.6

Dependencies

IPython >=4.0     :  7.9.0 (OK)
cython >=0.21     :  None (NOK)
jedi >=0.9.0      :  0.15.1 (OK)
matplotlib >=2.0.0:  None (NOK)
nbconvert >=4.0   :  5.6.1 (OK)
numpy >=1.7       :  None (NOK)
pandas >=0.13.1   :  None (NOK)
psutil >=0.3      :  5.6.5 (OK)
pycodestyle >=2.3 :  2.5.0 (OK)
pyflakes >=0.6.0  :  2.1.1 (OK)
pygments >=2.0    :  2.4.2 (OK)
pylint >=0.25     :  2.4.4 (OK)
qtconsole >=4.2.0 :  4.5.5 (OK)
rope >=0.9.4      :  0.14.0 (OK)
sphinx >=0.6.6    :  2.2.1 (OK)
sympy >=0.7.3     :  None (NOK)

Within a virtualenv, install using pip the spyder-kernels 0.5.2 package

This is the problem (I think): You can't mix conda and pip packages.

I dont think this is the only problem.
Just to give more information, if you create an environment with the same version of the one you want Spyder to use its interpreter everithing works fine:
$conda create --name spyder_env python=3.6 spyder
So now, bot environments (the conda one and the virtualenv one) have the Python version 3.6. Doing so everything works fine and Spyder is running like within the virtualenv environment, but only if the python version is the same.


No completion for aliased imports at class level

Originally raised at https://github.com/Dart-Code/Dart-Code/issues/2211 by @Tokenyet.This looks a bit like https://github.com/dart-lang/sdk/issues/7898, but that was marked fixed a long time ago.

Use alias to prevent nameing conflict, but not working in this specified scenario.
[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18362.535], locale zh-TW)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.3)
[√] VS Code, 64-bit edition (version 1.41.1)
[√] Connected device (1 available)

• No issues found!

If there is something info not provided, I'll provide It asap.

A simpler repro:
import 'dart:async' as alias;

class Foo {
  // no completion here
  // alias.

  foo() {
    // completion here
    // alias.
  }
}

@jwren @pq

The prefix is now being suggested in both places, so I believe that this has been fixed.

The prefix is now being suggested in both places, so I believe that this has been fixed.


misc/cgo/testcshared failure, linking to wrong libgo.so

TL;DR: I needed to change libgo.so to ./libgo.so on one line in test.bash to make misc/cgo/testcshared pass and am looking for feedback.
Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
Building 1.7.3 with a go built from release-branch.go1.4
What operating system and processor architecture are you using (go env)?
go env output from the successful build mentioned below:
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/rss/spack-20161101/opt/spack/linux-centos7-x86_64/gcc-5.4.0/go-1.7.3-wzhabet756id3kyoqr6v6hnrwopfkpic"
GOTOOLDIR="/rss/spack-20161101/opt/spack/linux-centos7-x86_64/gcc-5.4.0/go-1.7.3-wzhabet756id3kyoqr6v6hnrwopfkpic/pkg/tool/linux_amd64"
CC="/rss/spack-20161101/lib/spack/env/gcc/gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="/rss/spack-20161101/lib/spack/env/gcc/g++"
CGO_ENABLED="1"

I'm working in a DigitalOcean droplet based on their CentOS7 image with a minimal set of packages added.  I've worked through the problem described in #16283 by adding the kernel boot flag.  I also had to add glibc-static to my "minimal" set of packages so that the cgo static linking tests pass.
What did you do?
I'm updating go packaging in the spack package manager.
I've updated their go-bootstrap package to use release-branch.go1.4 instead of 1.4.2 to pick up Brad's timezone fix.  I have not yet submitted a pull request to the spack project for this change (but will).
I'm using that go-bootstrap package to build 1.7.3.
I've updated their go package  to include an entry for the 1.7.3 tag.
The testing step has been failing in misc/cgo/testcshared with this message:

./testp: symbol lookup error: ./testp: undefined symbol: DidInitRun

After drilling down into the tests to the point where I was able to build the test itself and replicate the failure, I noticed that testp was linking against the "wrong" libgo.so.  When I added a "./" to the shared library name, it linked against the "right" libgo.so the test passed.
[hartzelg@spack-0 testcshared]$ $(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext
[hartzelg@spack-0 testcshared]$ ./testp
./testp: symbol lookup error: ./testp: undefined symbol: DidInitRun
[hartzelg@spack-0 testcshared]$ ldd testp
	linux-vdso.so.1 =>  (0x00007ffcd83c1000)
	libgo.so => /rss/spack-20161101/opt/spack/linux-centos7-x86_64/gcc-4.8.5/gcc-5.4.0-5ugmutg4tsvybv3zsrhfa5h67ltzrc5i/lib64/libgo.so (0x00007fdffe6aa000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdffe487000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fdffe0c5000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fdffddc3000)
	libgcc_s.so.1 => /rss/spack-20161101/opt/spack/linux-centos7-x86_64/gcc-4.8.5/gcc-5.4.0-5ugmutg4tsvybv3zsrhfa5h67ltzrc5i/lib64/libgcc_s.so.1 (0x00007fdffdbab000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fdfff8ea000)
[hartzelg@spack-0 testcshared]$ pwd
/rss/spack-20161101/var/spack/stage/go-1.7.3-wzhabet756id3kyoqr6v6hnrwopfkpic/go/misc/cgo/testcshared
[hartzelg@spack-0 testcshared]$ $(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c ./libgo.$libext
[hartzelg@spack-0 testcshared]$ ldd testp
	linux-vdso.so.1 =>  (0x00007fffa87d8000)
	./libgo.so (0x00007f520d4d3000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f520d2b0000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f520ceee000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f520d7da000)
[hartzelg@spack-0 testcshared]$ ./testp
PASS

If I patch the test.bash script like so:
--- misc/cgo/testcshared/test.bash.orig	2016-11-19 00:00:11.917000000 +0000
+++ misc/cgo/testcshared/test.bash	2016-11-19 00:00:22.081000000 +0000
@@ -107,7 +107,7 @@

 # test0: exported symbols in shared lib are accessible.
 # TODO(iant): using _shared here shouldn't really be necessary.
-$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c libgo.$libext
+$(go env CC) ${GOGCCFLAGS} -I ${installdir} -o testp main0.c ./libgo.$libext
 binpush testp

 output=$(run LD_LIBRARY_PATH=. ./testp)

then I can build 1.7.3 successfully.
Since the 1.7.3 release has been in the wild for a while and I don't see any other issues about this I suspect it's related to the gymanstics that Spack does to support multiple installations of compilers and libraries and etc....
I'm inclined to add a patch to test.bash to Spack's install step (as above) but I'd like to get feedback from more experienced gophers first.
Comments?

It seems to be caused by naming conflict with libgo.so provided by gccgo.
However, why is libgo.so from gccgo lacks a version in the file name?

It's normal to install a file named libgo.so, since the linker will look for an extension of ".so" when resolving a -lgo option.  It will be a symlink to the real file with the version number.
I'll add the ./, it's the right thing to do anyhow.


correcting umis

Hello,
Thanks for developing CITE-seq-Count.
I have been trying to run this for some time. However, i always get the error:root: no local minima was accepted...--plot-prefix etc error which I am ignoring since no cell barcode correction is done which is okay. But then i leave the pc for 1 or 2 days while the package is "correcting UMIs" only to find the process killed. I am running this on a linux OS with 64 Gb RAM.
To note, I am running this on my HTO library and using the filtered whitelist provided by cell ranger.
Please advise.
Thank you.

Hello @DrKAD1
Other users had the same issue as you have.
Could you try the develop branch? I've changed which cells should get UMI corrected.
If this still fails, I added a new option: --no_umi_correction, which will skip the UMI correction.
I'm working on a better fix for next week.

Hello  @DrKAD1
Haven't heard back from you. Did the develop branch help?

Fixed in 1.4.2. Closing this


Fix some small typos

Fix some small typos

Rebased to squash the commits into one typo-fix commit, and to add developer signoff on the changes (git commit -s).

Thanks @awwad


FancyZone looses it zones when I update PowerToys

ℹ Computer information

PowerToys version: 3.31.2
PowerToy Utility: FancyZones
Running PowerToys as Admin: No
Windows build number: Version 20H2 (OS Build 19042.746

📝 Provide detailed reproduction steps (if any)

… Update PowerToys
… All my FancyZones has been reset to default.
… Annoyed

✔ Expected result

Existing FancyZones not reset to default.
Delighted.

❌ Actual result

… All my FancyZones has been reset to default.
… Annoyed

📷 Screenshots

I met similar issue. This modal is shown after I launch FancyZones layout editor.

@kompiro
open a new issue since this one is tracking a different problem.

@Sorennnn
how do you update PowerToys? Using the auto-update feature?

Yes. I use the auto update in PowerToys setting.

I believe the same issue is happening to me. I have lost my saved custom layouts on a few occasions and I am not sure why. It may be every time PowerToys updates like the OP.

Confirming that all fancy zones settings are lost and reset to default on a regular basis.

+1 same issue here, updates have consistently purged all custom layouts.
Same issue reported in #10680

Can confirm as well, updated to 0.41.3, all fancy zones are back to default.
But I just updates from 0.41.3 to 0.41.4, all fancy zones remained intact. Might be during a crash?

Does this happen with 0.47?  We just fixed a bug with .45

why we ask, a lot of things could affect this so just because at the top level they look to be the same, they may not be.  Also this issue is a bit on the older side so chances are we fixed the root cause of this bug

I did have a lot of issues with 0.45, when I closed an opened powertoys the custom fancyzones were still there but it was not selected. With 0.47 it takes a few seconds before fancyzones is working, but the correct custom fancyzone layout is there and selected.


ctest & meson test should be directly called in setup hooks instead of make check / ninja test

Issue description
The make check and ninja test targets generated by CMake & Meson are just wrappers around ctest & meson test. If we instead called these executables directly in the setup hooks, that would allow us to pass arguments to selectively disable tests, set timeout multipliers, etc... like we can with  pytestCheckHook.
Examples:
CMake:
{
  ctestFlagsArray = [ "--timeout" "30" ];
  disabledTests = [ "bad-test" ];
}

Meson:
{
  mesonTestFlagsArray = [ "--timeout-multiplier" "10" ];
  disabledTests = [ "bad-test" ];
}

Still very relevant.

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/building-only-specific-targets-with-cmake/31545/4


keep having problems initializing procurement application.

here is the debuginfo log below.
it will stop at random points, sometimes get only a few tabs, sometimes many, sometimes all and then get stuck on another character in the same league. ive got no idea whats wrong.
i thought i might of had an outdated version, so i uninstalled procurement and installed current version but same thing continues.
i dont think its the sessid, cause it will load nearly all of the stash tabs before giving an error message.
please someone help me.
debunginfo log:
(i couldnt get it to attach for some reason)
[31-08-2017 16:28] Error in ProxyMapper.GetCharges: System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'System.Object[]'.
at POEApi.Model.ProxyMapper.GetCharges(List1 list) [31-08-2017 16:43] Error downloading stash for Standard, exception details: System.Net.WebException: The remote server returned an error: (429) Too Many Requests.    at System.Net.HttpWebRequest.GetResponse()    at POEApi.Transport.HttpTransport.GetStash(Int32 index, String league, String accountName, Boolean refresh)    at POEApi.Transport.HttpTransport.GetStash(Int32 index, String league, String accountName)    at POEApi.Transport.CachedTransport.GetStash(Int32 index, String league, String accountName, Boolean refresh)    at POEApi.Model.POEModel.GetStash(Int32 index, String league, String accountName, Boolean forceRefresh)    at POEApi.Model.POEModel.getAllTabs(String league, String accountName, Stash stash)    at POEApi.Model.POEModel.GetStash(String league, String accountName) [31-08-2017 16:43] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues and include your DebugInfo.log    at POEApi.Model.POEModel.GetStash(String league, String accountName)    at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)    at Procurement.ViewModel.LoginWindowViewModel.<LoadItems>d__24.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass23_0.b__0()
at System.Threading.Tasks.Task.Execute()
[31-08-2017 16:46] Error downloading stash for Standard, exception details: System.Net.WebException: The remote server returned an error: (429) Too Many Requests.
at System.Net.HttpWebRequest.GetResponse()
at POEApi.Transport.HttpTransport.GetStash(Int32 index, String league, String accountName, Boolean refresh)
at POEApi.Transport.HttpTransport.GetStash(Int32 index, String league, String accountName)
at POEApi.Transport.CachedTransport.GetStash(Int32 index, String league, String accountName, Boolean refresh)
at POEApi.Model.POEModel.GetStash(Int32 index, String league, String accountName, Boolean forceRefresh)
at POEApi.Model.POEModel.getAllTabs(String league, String accountName, Stash stash)
at POEApi.Model.POEModel.GetStash(String league, String accountName)
[31-08-2017 16:46] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues and include your DebugInfo.log
at POEApi.Model.POEModel.GetStash(String league, String accountName)
at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)
at Procurement.ViewModel.LoginWindowViewModel.d__24.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass23_0.<Login>b__0()    at System.Threading.Tasks.Task.Execute() [31-08-2017 17:12] Error in ProxyMapper.GetCharges: System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'System.Object[]'.    at POEApi.Model.ProxyMapper.GetCharges(List1 list)
[31-08-2017 17:33] Error reading character data for character 'Galirakath', Exception info:
[31-08-2017 17:33] System.Exception: Error reading character data for Galirakath, if you are in offline mode you will need to login and update. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.
at POEApi.Model.POEModel.GetInventory(String characterName, Boolean forceRefresh, String accountName)
at Procurement.ViewModel.LoginWindowViewModel.LoadCharacterInventoryItems(Character character, Boolean offline)
at Procurement.ViewModel.LoginWindowViewModel.d__24.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass23_0.<Login>b__0()    at System.Threading.Tasks.Task.Execute() [31-08-2017 20:42] Error reading character data for character 'JoelPizzaDelivery', Exception info:  [31-08-2017 20:42] System.Exception: Error reading character data for JoelPizzaDelivery, if you are in offline mode you will need to login and update. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.    at POEApi.Model.POEModel.GetInventory(String characterName, Boolean forceRefresh, String accountName)    at Procurement.ViewModel.LoginWindowViewModel.LoadCharacterInventoryItems(Character character, Boolean offline)    at Procurement.ViewModel.LoginWindowViewModel.<LoadItems>d__24.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass23_0.b__0()
at System.Threading.Tasks.Task.Execute()
[31-08-2017 21:19] Error in ProxyMapper.GetCharges: System.InvalidCastException: Unable to cast object of type 'Newtonsoft.Json.Linq.JArray' to type 'System.Object[]'.
at POEApi.Model.ProxyMapper.GetCharges(List1 list) [31-08-2017 21:44] Error reading character data for character 'JoelPizzaDelivery', Exception info:  [31-08-2017 21:44] System.Exception: Error reading character data for JoelPizzaDelivery, if you are in offline mode you will need to login and update. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.    at POEApi.Model.POEModel.GetInventory(String characterName, Boolean forceRefresh, String accountName)    at Procurement.ViewModel.LoginWindowViewModel.LoadCharacterInventoryItems(Character character, Boolean offline)    at Procurement.ViewModel.LoginWindowViewModel.<LoadItems>d__24.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass23_0.b__0()
at System.Threading.Tasks.Task.Execute()

think ive figured it out.
i had acquisition running at the same time as procurement, i think that was the issue.

ive got the original error message:
[Error] Error reading character data for Galirakath, if you are in offline mode you will need to login and update. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.
Does anyone know why this is caused? it appears every time and will not let me load into procurement.

i finally loaded into procurement successfully, i had to change the settings to not load any of my characters inventories, then i closed procurement, deleted my current pathofexile cookies, open pathofexile again to get new cookies, and launched procurement with a new sessid, went to sleep, and woke up to find it finally working!!

but regardless i believe that this is the same issue that everyone else is having:
-error downloading name #730
-error reading character data #725
-error downloading account name #724
-error reading character data for DianWei , stash is ok #720
-error reading character data #709
-expired name error #704
and many many more of the same nature, please fix this or at least add it to an faq or ssomething

How did you disable the characters inventories loading?

I set a favoritecharacter and set DownloadOnlyMyCharacters to true and it loaded for me. Not sure what is causing the main issue, but hey, it's working.

In the application installation folder there will be a folder with your profile name on it.  Can you please zip up the bin files for me and I will try and replicate and resolve this issue.

This should be fixed in Procurement 1.19.0


Improve filter input styling

Adds similar styling to the log viewer filter input as the new process form text inputs have, as an improvement over the (inconsistent) browser defaults.

This uses Svelte's --style-props to allow overriding of the default 300px <Textbox /> input width without complicating the code for the actual components.

This also simplifies the styling for the dev footer (note that the footer is going away / being replaced somewhere else in ~1 day or so as we swap to a left-sidebar-only layout with no global footer or header)

Instead of styling the input, change the code to use the Textbox component we already have.
I think that className props and the {...somehow pass ALL props...} stuff is a bit of a code smell. It can be done, but it really should be an allow-list, otherwise you can have a conflict/breaking-change when somebody adds a property, which should never happen. Better is to make a narrow interface with just the props you need. This can unfortunately be difficult for layout but if you have specific issues, we can walk through various approaches together.

Okay, I think I figured out an approach that works fairly well for this, using Svelte's --style-props.
However, I am now running into a few issues with this filter input in general - please have a look @kendru
(a) I am getting this Typescript issue: Property 'value' does not exist on type 'EventTarget'.ts(2339) at this code
    <Textbox
      placeholder="Filter..."
      value={state.filterStr || ''}
      on:input={(e) => {
>>      const text = e.currentTarget?.value.trim();    <<
        setFilterStrDebounced(text);
      }}
      --input-width="100%"
    />

tried to fix it but to no avail. My simplest attempt which I hoped would work would be to do a messy type cast thing like (e.currentTarget as any) or something like that, but that doesn't seem to work in these Svelte event handler script blocks.
(b) There is a lot of flickering/strange behavior around the contents of the input here and I think it has to do with the way Svelte is handling value on the input element in combination with the debounced state.filterStr. Instead I can imagine it might be good to have an instantly bound input value variable which is 100% reactive and never flickers/debounces, and then debounce a second underlying variable which is used in the filtering itself. Maybe we could pair on this change @kendru ?

I'm still not caught up on all of the best practices in Svelte components so I may be missing a few things here

--style-props

I was unaware of both that, and it's underlying browser mechanism display: contents. Both seem very useful! Glad you found that.

My simplest attempt which I hoped would work would be to do a messy type cast thing like (e.currentTarget as any)

I think that TypeScript syntax is not allowed in the HTML portion of a svelte file. The simple work around is to make a handleWhatever function in the <script lang="ts"> section, though I imagine this is a common complaint. Can look to see if their is a solution somewhere.
You should be able to ignore the typescript error for now, as we have various typescript errors leftover from when we didn't have strict=true enabled. We'll fix them in time.
I'll let @kendru respond regarding binding & debouncing. The UI state should not be debounced, but the filter state can be. Though it might be better to have an explicit state machine rather than encoding the debouncing state in to callbacks and timeouts. My experience is that implicit state in UI leads to subtle timing bugs.

I think that TypeScript syntax is not allowed in the HTML portion of a svelte file. The simple work around is to make a handleWhatever function in the

The UI state should not be debounced, but the filter state can be. Though it might be better to have an explicit state machine rather than encoding the debouncing state in to callbacks and timeouts. My experience is that implicit state in UI leads to subtle timing bugs.

I agree w/ this
For now, I'll merge this PR as it specifically addresses styling, and hopefully @kendru and I can work together tomorrow or soon this week on a follow-up regarding the state/debouncing.


Bring GHEtool up to date with new ScenarioGUI version

The new version of ScenarioGUI (v0.3.0) has a lot of new features and bug fixes. This issue has the goal of bringing it up to date once this new ScenarioGUI version is released.
Normally, this should not be that much of a challenge, for the current version in the issue45-restructure-gui branch is already based on a development version of ScenarioGUI v0.3.0.

First try with testpypi of ScenarioGUI v0.3.0 doesn't work.

TypeErrors while loading
Calculations do not finish

Hi @tblanke
I am almost finished with bringing the gui tests up to date with ScenarioGUI v0.3.0, but there are some tests that stopped working, due to for example the way the list_ds is handled.
Can you please take a look at the tests that do give errors?
Best,
@wouterpeere

Done and merged into branch issue45


removed unused (duplicate) ProcessDescriptor.resolveUnqualifiedClasses method

See org.jbpm.kie.services.impl.xml.ServicesProcessDataEventListener.resolveUnqualifiedClasses()
Github link to original method
which is called here
@mswiderski Would you mind taking a look?

+1 to merge


Add a CrudMoreActionsMenu component

Used to simplify implementing more actions menus in grids.

PR Checklist

[x] Verify if the change requires a changeset. See CONTRIBUTING.md
[x] Link to the respective task if one exists: COM-711
[x] Provide screenshots/screencasts if the change contains visual changes

Screen recording
https://github.com/user-attachments/assets/948fed39-4928-430a-a514-606ceccc9ce9

@jamesricky please review. Your feedback on Admin components is very valuable

@thomasdax98 @nsams @johnnyomair @jamesricky
I reworked the components like we discussed. Pls have a look!

One thing we didn't talk about is the possibility to add a divider within the overall and selective groups. For that I added a type property similarly to the menu which defines whether it is an action or divider.

One thing we didn't talk about is the possibility to add a divider within the overall and selective groups. For that I added a type property similarly to the comet menu data which defines whether it is an action or divider. An example can be seen in the updated changeset

Alternatively, you could add divider: true to the actions, which would be like it's for MUI's ListItem: https://mui.com/material-ui/api/list-item/#list-item-prop-divider

0451fc7

https://github.com/vivid-planet/comet/pull/2115/commits/0451fc7f26543b10f5a4a7b786960ed23f7c9fc1

Docs would be nice

Docs or a story?

Docs or a story?

Docs. Maybe add it here? https://github.com/vivid-planet/comet/blob/improve-pull-request-template/storybook/src/docs/components/DataGrid/DataGrid.stories.mdx?plain=1#L114-L126

@jomunker please resolve conflicts (by merging main).


undo/redo buttons

have the possibility to revert back to previous and next valid visualizations

@bjdmeest, how do you see that with autosync?
I can imagine if you don't use this feature, you 'store' your config every time you click 'convert' (and config is valid). Then you can navigate between your converts with two buttons.
But I don't think there would be a reason to turn autosync off.
Imagine when I want to create just a node with the label 'label'.
Valid config 1
{"graph":{},"node":{},"edge":{}}

[{}]

[]

Valid config 2
{"graph":{},"node":{},"edge":{}}

[{"label": ""}]

[]

Valid config 3
{"graph":{},"node":{},"edge":{}}

[{"label": "l"}]

[]

....
Valid config 7 (!)
{"graph":{},"node":{},"edge":{}}

[{"label": "label"}]

[]

It would be a bit ridiculous to store 7 states, just for that.
So what do you suggest? When has a config enough changed to be stored? And how do we expect a user not to be confused by why his/her config has or has not been saved? Perhaps a third button 'store'?

Typically a 'debounce' function is used for this: https://www.freecodecamp.org/news/debounce-explained-how-to-make-your-javascript-wait-for-your-user-to-finish-typing-2/, where saving is done asynchronously (so no delay on the autosync updates)


Added the formalization overview

@disassembler, @michaelpj, any idea why the CI can't perform the checks for more than half a day already?

It has done them, the notifications are just dodgy if you get a cached build result.

I've made it so admins can force-merge in this sort of circumstance, but @disassembler it would be great if we could get to the bottom of this.


Update to current ecl library

Includes the following functional fixes and updates:

Efficiency improvements to sensor data buffering that reduce memory and number of data copy operations.
https://github.com/PX4/ecl/pull/358
https://github.com/PX4/ecl/pull/359

Adds control interface and internal functions fora Baro ground effect disturbance compensation model that can be activated externally.
https://github.com/PX4/ecl/pull/351

Adds an interface and internal functionality for fusion of  landing target velocity observations.
https://github.com/PX4/ecl/pull/362

Provides external accessor for FW attitude control integrator state
https://github.com/PX4/ecl/pull/366

Adds missing initialisation of ekf class variables.
https://github.com/PX4/ecl/pull/364

Fixes https://github.com/PX4/Firmware/issues/8401 loss of navigation message being printed on startup.
https://github.com/PX4/ecl/pull/367

Requires flight test on RW and FW.

@LorenzMeier Out of all the ecl changes pulled in by this PR, only the fix for https://github.com/PX4/Firmware/issues/8401 is a bug fix. If you want bug fixes for Release 1.7, but not the added features, I can create a branch of ecl for the 1.7 release that only adds https://github.com/PX4/ecl/pull/364 and https://github.com/PX4/ecl/pull/367

I guess a separate branch makes sense. Please keep this PR open as we want to focus on v1.8 on master here soon.

Here's the update for the v1.7.0 release https://github.com/PX4/Firmware/pull/8406

Rebased and ready for flight testing. @santiago3dr @r0gelion


Minor accessibility fixes to new slim sidebar menu items

Fixes for a few minor accessibility issues in the new sidebar menu

use type=button instead of prevent default for button behaviour in the onClick handler - this means the on click handler is simpler and less prone to mistakes when we want to ensure things like 'enter'/'space' work consistently
use consistent aria-haspopup="menu" instead of aria-haspopup="true" - some buttons that expanded sub-menus were using this some were using 'true' and some were using 'dialog'.
for page explorer item, use raw button instead of Button component as it is a link under the hood which means behaviour is inconsistent and focus state is inconsistent with other buttons. This one caused a few issues;

Pressing 'space' on the Pages menu would not work as expected as it was a link not a button and instead it would partially scroll menu container down.
There is a lot of nuance here but the main issue is when we want a button we should try to use an actual button element - see https://ux.stackexchange.com/questions/53110/why-does-the-space-bar-do-page-down-in-browsers
Sometimes that is not ideal but in this case it seemed that the button was more appropriate than the Button (component) as it renders an a tag under the hood because it handles a few different cases.
This has the added benefit that it fixes a small styling issue on firefox where the button's focus state was not fully visible
This also has the benefit of the element will be tabbable by default in Firefox on macOS (there is a bit of a history here also but basically links do not get to be tabbable by default on macOS without changing a firefox setting, so again, where buttons make more semantic sense they should be used instead of a tag)

Checks

Does the code comply with the style guide? (Run make lint from the Wagtail root)
For front-end changes: Tested on Firefox 97, Chrome 100, Safari 15 on macOS, voiceover on macOS and Firefox accessibility checker

Screenshots - BEFORE

Screenshots - AFTER

Ahh. Didn't see the integration tests - will fix a bit later

Unfortunately the Squash.io preview link doesn't work (static assets do not load), but I would like to let you know: make sure that you set the font of the buttons explicitly.
I saw that normalize.css contains
button, html, input, select, textarea {
  font-family: sans-serif;
}

which takes precedence over the font definition of the body (Open Sans,Arial,sans-serif). Take a look at this screenshot:

(Taken on Firefox 97.0 on MacoS Monterey 12.2)
The upper Pages is a button, the lower Pages is the old a tag.
Just a friendly reminder :-)

Thanks. I did notice the difference in line height/ size and it looked like it matched the other buttons below but I'll take another look. Maybe I missed adding a class.
Appreciate the heads up. Still trying to fix the integration tests haha.

@thijskramer upon further investigation the font family issue is not related to this change and is actually an inconsistency already present likely since we adopted the new font stack - thanks for flagging though.
While I could fix this for this specific button usage I think we are better to fix this globally as it will cause issues with other elements also, not just the sidebar.
I have raised a separate bug for this here https://github.com/wagtail/wagtail/issues/8016

Just updated this PR to include unit tests and found a few more potential issues with inconsistent aria-expanded declarations which have now all aligned to be strings (while existing code worked, it is easy to make mistakes if props come in different or are not supplied)

Thank you both! This is looking excellent, just need to spend more time testing this and I’ll approve & merge a bit later today.


#785 Fix exceptions at startup

Fix exceptions at startup

HI
I use OzCode, where you can enable clr exceptioons to break. And the changes i have made here are because excptions actually are being triggered at startup.
So all your comments are corret, but these are things actually happening.
It is mostly because of this in global.asax at @line  183:
container.RegisterInstance(
                new GitServiceExecutorParams()
                {
                    GitPath = GetRootPath(ConfigurationManager.AppSettings["GitPath"]),
                    GitHomePath = GetRootPath(ConfigurationManager.AppSettings["GitHomePath"]),
                    RepositoriesDirPath = UserConfiguration.Current.Repositories,
                });

IoC is used but the static UserConfiguration.Current.Repositories is used before the initialize @lin 82

I.e. "container.RegisterInstance(new GitServiceExecutorParam" calls before UserConfiguration.Current.Repositories is registered.
This throws.

Sorry, I wasn't arguing that the exceptions were happening (you can see them in VS even without OzCode, actually).
I would like us to get the best possible fix for them, though - the best fix for a null reference exception is not always if(x != null) {  ... } - it might be to find where the null is coming from.
Can you suggest a change to the initialisation order to prevent the UserConfiguration.Current problem?

Yes it would 👍
The only thing is, i hope within a month or so to provide a feature. To change to autofac.
Autofac is not my favourite IoC but, the code is easily portable. Making the Autofac become IoC will be the first step to a aspnetcore applicaiton.
Should we leave this merge for now, and fix the registration later?


Using native pipe but DESCRIPTION says R >= 3.5 is supported

In two places in attributes-concept Capr uses the native pipe |> which is only supported in R >= 4.1.  However the DESCRIPTION file says R >= 3.5 is supported.
Probably you should change the pipe to %>% like elsewhere in the package?

hey @egillax thanks for your issue! yes that needs to be changed. I have gotten into the habit of using the native pipe now.
i will add this as a change....if you have time feel free to make a PR targeting develop to update this


Replace CourtFormsOnline w/ AL_ORGANIZATION_TITLE

Also replaced https://courtformsonline.org with AL_ORGANIZATION_HOMEPAGE
Decided to just use CourtFormsOnline everywhere to be consistent. Open to trying to edit things if we think that Court Forms Online (with spaces) is still useful.
Note also that prod doesn't have the variable "app hompage" in the config yet, so we're still depending on that default value.
Fixes #346.

Going to keep working on this. default screen parts takes priority over metadata. We have a bunch of interviews that use metadata: title for various things. So I think we can't override title or short title with the default screen parts unless we also copy in the value from metadata: title as a starting point.


Click Event for bar chart

Hi,
I have a simple bar chart where i want to add a click event when the user clicks on one of the bars.
For example it should for now print "console.log('click received')".
Do you know a simple way to do this?

This issue is related. Unfortunately I am currently not able to implement something more robust. But I left a comment which should help you in accessing the rest of the ECharts API.

implemented in v1.0.0-rc1

how can I implement a click on a element, I cannot figure out

I ended up adding an on:click attribute to determine which bar was clicked:
<Chart {init} {options} on:click={handleBarClick} />

function handleBarClick(params: any) {
  console.log(params.detail.name);
}


Sensor cannot be added by navigating via network search

While linking a sensor via the '+' button on the 'my sensors' page works fine, doing the same thing from the network search does not work correctly. We're working on a fix for this.

sorry to raise this, but rhe bug is still there. even on the same LAN, no sensors are discovered. any progress on this?


groupmode argument is unsusable

Hi! Thanks for a very useful script! I use it in conjuction with Tvheadend to only get the groups that are of interest to me. Also I use it for the Kodi PVR IPTV Simple Client for VOD and TV-Series.
I am using the Latest commit ff974d6 on May 4.

GOAL: Test the argument "groupmode": "keep"

{
"m3uurl": "file:///home//m3u-epg-editor/big.m3u8",
"epgurl": "file:///home//m3u-epg-editor/big.xml",
"groups": [
"Sweden",
"\-\ Music Package \-\",
"United States",
"United Kingdom"
],
"groupmode": "keep",
"outdirectory": "/home/user/m3u-epg-editor",
"outfilename": "test"
}
RESULT:
###############################################################################
user@server:~$ /usr/bin/python3 /home/user/m3u-epg-editor/m3u-epg-editor-py3.py --json_cfg /home/user/m3u-epg-editor/args_test.json
2020-07-03T13:18:32.706156 m3u-epg-editor-py3.py process started with Python v3.7.3 (default, Dec 20 2019, 18:57:59)
[GCC 8.3.0]
2020-07-03T13:18:32.706211 performing HTTP GET request to file:///home/user/m3u-epg-editor/big.m3u8
2020-07-03T13:18:32.739438 saving retrieved m3u file: /home/user/m3u-epg-editor/original.m3u8
2020-07-03T13:18:32.748955 parsing m3u into a list of objects
2020-07-03T13:18:33.550053 m3u contains 3096 items
2020-07-03T13:18:33.551272 keeping channel groups in this list ['Sweden', '\-\ Music Package \-\', 'United States', 'United Kingdom']
2020-07-03T13:18:33.577094 filtered m3u contains 0 items
2020-07-03T13:18:33.577717 process completed
###############################################################################
ERROR:

missing test.m3u8 and test.xml.

GOAL: Test the argument "groupmode": "discard" - same config as above but changed "keep" for "discard".
RESULT:

Exactly the same console output as in first test.
Still missing test.m3u8 and test.xml.
CONCLUSION: groupmode argument is unusable. The only way to use the script is to remove the argument completely and settle for the default, which is "keep", when the argument is not added at all.

One more thing I've noticed also, not having to do with the above, there seem to be no way to sort the group order in the output m3u8? In my case I want Sweden first, then the other ones, but no matter what I try in the config, the order remains the same with - Music Package - first. This has no consequence when used with Tvheadend but for the Kodi plugin, it would be easier if the group list order could be changed at least for an alphabetical order. As it is now, different VOD-groups does not follow the order I put them in under the groups argument, but more likely follow the original order from the provider.
There are too many channels to put in the sortchannels argument when using it in the VOD and TV-series context so this is not a solution for me.
BTW, am I correct there is no way to keep comments in the json-config?
Also, the "range" argument, is that an hours value to cut down the epg to?
xml_sort_type as I get it, is to either do not sort at all (with argument missing), "alpha" as in alphabetical order in the epg.xml, and m3u as in order taken from the m3u (input or output m3u?).
Thanks again! Will check back if you need logs or anything.

You found a bug in the json parse bit

You found a bug in the json args parse bit - fixed in https://github.com/jjssoftware/m3u-epg-editor/commit/11dd78fceec542096fd00f0ccf92c869b3d08611
Please pull the latest and give it another try, thanks.

Thank you! "keep" now works as expected. "discard" discarded the group "Sweden" (I used only this group in this test) in the "groups" list plus a no-named group with 42 channels. Should there be a way to keep even the no-named group or a search and replace for 'group-title=""' with 'group-title="no-group"' within your script?
Logfile bugs when using "discard":
2020-07-05T14:02:34.905893 keeping channel groups in this list ['Sweden'] <-- shouldn't it say "discarding channel groups in this list"?
2020-07-05T14:02:34.923333 desired channel sort order: ['Sweden'] <-- Sorting by a group discarded?

Should there be a way to keep even the no-named group or a search and replace for 'group-title=""' with 'group-title="no-group"' within your script?

m3u entries that have no populated group-title attribute are treated as invalid at source data processing time so these entries don't make it into the newly generated target m3u file at the moment. Since group transforms are applied after m3u source parsing   there's no way to convert an empty group name into some named group. I guess that there is an argument to say that something should / could happen but it is what it is at the moment.

2020-07-05T14:02:34.905893 keeping channel groups in this list ['Sweden'] <-- shouldn't it say "discarding channel groups in this list"?
2020-07-05T14:02:34.923333 desired channel sort order: ['Sweden'] <-- Sorting by a group discarded?

Fair comment I'll take a look, these are likely to be minor output logic bugs.

The log output issues that you mentioned should be fixed in https://github.com/jjssoftware/m3u-epg-editor/commit/e38e50230997509f51b055734d03ad413100bf23
A tweak has been applied to item sorting too -> if you don't supply a specific channel sort order and rely on script default sort behaviour, you might find that this behaves in a slightly more sane way now, sorting alphabetically by group and channel.
Please pull the latest and give it another try, thanks.

Great work! =) Thank you very much! I love this script! The sorting seem to be after the eventual group_transforms which is just the way I like it!
You can close this issue! Thanks again!
Also, to give other people answers to my own questions above;

From what I can find out there is no way to comment in json config files if you don't program the python script that uses it to ignore certain tags that the comments could reside within.
The range argument seem to be in hours.
xml_sort_type I'm not sure about as I don't use it.

Thank you for the feedback, it is much appreciated and issues like this help to improve things for future users.
I didn't address your questions and comments earlier because I was keen to focus on the issues you had raised rather than to try and engage in a Q+A at the same time as attempting to address the bugs. To address your points:

Comments are generally not supported in vanilla json, this feature was never introduced into the json spec by its creator Douglas Crockford. Some efforts have been made since to introduce support for comments in json and there are some flavours of json and json parsers in existence today that have support for comments. The default python json parser doesn't support comments at this time.
You are correct about the range argument, this parameter is an a hour value that can be used to reduce the volume of data output into the generated xml epg data file. When this argument is not specified, the value defaults to 168 hours (7 days). https://github.com/jjssoftware/m3u-epg-editor/blob/master/m3u-epg-editor-py3.py#L811
The xml_sort_type argument was an option introduced due to a suggestion / request made by somebody in this issue, there are some comments in that issue that describe rationale for the feature: https://github.com/jjssoftware/m3u-epg-editor/issues/36

Thanks again, closing.