Sending files to Amazon Cloud Drive

Hi, there is a problem. When sending big files, 28GB, 20GB or 12GB with copy command rclone sends them (they appear on web ui). But when it runs again, rclone deletes random files and send them again ;/ Files are huge so it takes very long time to send them again. Any ideas?

rclone 1.32
OS X El Capitan
Amazon Cloud Drive
rclone --max-size=50G --stats=1s copy /Backup/Folder/Path/ amazon:Temp

I've fixed this already hopefully!  See the comments in #605 and the beta I posted at the end.
http://pub.rclone.org/v1.32-20-g2ebeed6β/

This fix is now in the v1.33 release.


Redundant Deadline assertions.

Having Deadline installed is not a requirement for remote workers since they will connect over the webserver. The assertions will error the collector out causing confusion for the user.
The assertitions have been replaced with logging messages at error level.

This plugins result are unused anyway, see #151

Ahh, didnt see that.


Set lower bound and upper bound for client session timeout

Which issues of this PR fixes ：

This PR try to fix #5
Change log

Add maximum session timeout ms and minimum session timeout ms for client connection.

What if user sets minimum session timeout to be greater than the maximum timeout in the config.xml? Some checks should be performed and corresponding logs should be added as well.

There are 3 timeout durations in the system and their size should be in the order of operation timeout < min session timeout < max session timeout.
If out of order we should log a warning and set a default value base on max session timeout (t)

min session timeout = 1/2 t
operation timeout = 1/4 t

@Hooollin what do you think?

It's a good idea. But

There are 3 timeout durations in the system and their size should be in the order of operation timeout < min session timeout < max session timeout.
If out of order we should log a warning and set a default value base on max session timeout (t)

min session timeout = 1/2 t
operation timeout = 1/4 t

@Hooollin what do you think?

It's a good idea. Considering t might be a relative large number, we can set min_session_timeout_ms to 1/10 t and operation_timeout_ms to 1/20 t. If max_session_timeout_ms is set to 40s, then we have min_session_timeout_ms to be 4s and operation_timeout_ms to be 2s. Even if all the three values are in order, I think minimum_session_timeout_ms should at least be 2 times the operation_timeout_ms to make sure the session is alive before operation finishes.
And Maybe we can set up a tickTime as the basic unit, set min_session_timeout_ms to 2 times tickTime and set max_session_timeout_ms to 20 times tickTime just like what ZooKeeper have done.

You can refer to the operation timeout algorithm of the KazooClient: negotiated_session_timeout * 2.0 / 3.0.
ClickHouse ZooKeeper Client default operation timeout is 10000ms, default session timeout is 30000ms.
I think a slightly larger default timeout would be better. Because our snapshot will take a long time.

You can refer to the operation timeout algorithm of the KazooClient: negotiated_session_timeout * 2.0 / 3.0. ClickHouse ZooKeeper Client default operation timeout is 10000ms, default session timeout is 30000ms.
I think a slightly larger default timeout would be better. Because our snapshot will take a long time.

I leave operation_timeout_ms as it is, only do check on the value of minimum_session_timeout_ms and maximum_session_timeout_ms. Please review my latest commit.

Generally LGTM

Found a test failure https://github.com/JDRaftKeeper/RaftKeeper/actions/runs/4967136485/jobs/8888956494?pr=38 =========================== short test summary info ============================ FAILED test_session_fake_client/test.py::test_session_max_min_session_timeout ============ 1 failed, 81 passed, 2 warnings in 1057.00s (0:17:37) =============

I'll check it ASAP.

Found a test failure https://github.com/JDRaftKeeper/RaftKeeper/actions/runs/4967136485/jobs/8888956494?pr=38 =========================== short test summary info ============================ FAILED test_session_fake_client/test.py::test_session_max_min_session_timeout ============ 1 failed, 81 passed, 2 warnings in 1057.00s (0:17:37) =============

I run it several times on my machine, no failure is found. I suppose it's not a reproducible error caused by CI(I didn't look into that error message so I'm not sure what kind of failure it is). I've correct the log level and pushed a new commit, let's it'll fail again or not.

Found a test failure https://github.com/JDRaftKeeper/RaftKeeper/actions/runs/4967136485/jobs/8888956494?pr=38 =========================== short test summary info ============================ FAILED test_session_fake_client/test.py::test_session_max_min_session_timeout ============ 1 failed, 81 passed, 2 warnings in 1057.00s (0:17:37) =============

I run it several times on my machine, no failure is found. I suppose it's not a reproducible error caused by CI(Connection Refused). I've correct the log level and pushed a new commit, let's it'll fail again or not.

Found a test failure https://github.com/JDRaftKeeper/RaftKeeper/actions/runs/4967136485/jobs/8888956494?pr=38 =========================== short test summary info ============================ FAILED test_session_fake_client/test.py::test_session_max_min_session_timeout ============ 1 failed, 81 passed, 2 warnings in 1057.00s (0:17:37) =============

I run it several times on my machine, no failure is found. I suppose it's not a reproducible error caused by CI(Connection Refused). I've correct the log level and pushed a new commit, let's it'll fail again or not.

Maybe it takes longer to start raftkeeper in CI environment. I've update max session timeout in config.xml to avoid restart raftkeeper.

Should I squash the commit history into one?


Resize Mirror Normalize - HOST Tensor AVX2 and HIP support

Adds Tensor AVX2 and HIP implementations for RMN (fused Resize-Mirror-Normalize)
Adds relevant unit and perf tests

@r-abishek @asalmanp @kiritigowda This PR passes all of the relevant unit tests.

@r-abishek -- can you fix the merge conflict?

@kiritigowda Fixed conflict and removed codacy warnings.


merge from template-arlac77-github

package.json

chore(deps): add ^8.0.0 remove ^7.14.0 (devDependencies.c8)

.github/dependabot.yml

chore: (updates)

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


metrics: Decouple endpoint_propagation_delay_seconds metric

Decouple endpoint_propagation_delay_seconds metric from CiliumEndpointSlice feature flag
Fixes: #18387
Signed-off-by: zhang he<EMAIL_ADDRESS>Please ensure your pull request adheres to the following guidelines:

[ ] For first time contributors, read Submitting a pull request
[ ] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Thanks for contributing!

Fixes: #18387

@zhanghe9702 I removed the release note section from the description, because it didn't make sense. If there is such a section in the description of the PR, it needs to describe the change in terms that the user understands. It's not the label we assign on the PR. If you just remove it, then the release notes will take the title of the PR instead which seems fine in this case.

I removed myself from the reviewers list because of lack of cycles, but I see that Tam has been reviewing the changes.
@zhanghe9702 Do you need any help in moving this PR forward?

I removed myself from the reviewers list because of lack of cycles, but I see that Tam has been reviewing the changes. @zhanghe9702 Thanks for the PR. Do you need any help in moving it forward?

sry, in fact, i had try to do some modify, but i thought it's not include all update endpoint cases, and i add an identity-->timestamp map for record the update timestamp, if anyone have time to help me , i think i coud continue to solve this issue.

/cc @Weil0ng as the metric was added for the CES feature. Could you take a look as well?

@Weil0ng , when CES disabled,  CEP create event also call this function for calculate this metirc.
https://github.com/cilium/cilium/blob/5c23ed43c58353bf9942bc10e8a858b84e913097/pkg/k8s/watchers/cilium_endpoint.go#L44-L50, very strange, my commit now has remove the comment, but looks like you can show it

/test

@zhanghe9702 Thanks for the PR. Looks like all the reviews are in. Do you mind rebasing the PR so that we can trigger the CI tests?

@Weil0ng @zhanghe9702 I'm a bit confused about the implementation. Per Weilong's comment, the field name was changed from identityChangedTime to lastUpdatedTime to keep it generic and account for Endpoint updates including the identity ones. But the field is updated only in the identityLabelsChanged function that handles identity updates. Moreover, lastUpdatedTime is defined as a map with key set to Endpoint ID. I don't follow the comment about why this is defined as a map when the field is defined as part of an Endpoint struct. Why would an Endpoint struct store update times for other Endpoints?
Maybe the intention was to define it as a map so that it can store update times for different kinds of update like identity, labels, etc?

@Weil0ng @zhanghe9702 I'm a bit confused about the implementation. Per Weilong's comment, the field name was changed from identityChangedTime to lastUpdatedTime to keep it generic and account for Endpoint updates including the identity ones. But the field is updated only in the identityLabelsChanged function that handles identity updates.

I think the idea is that let's keep this variable generic so in the future we could extend it to include "reasons" for update not just identity change. It would be ideal if in this PR, the metric field is added and hence the logic under identity change only increment that particular field, but I don't see that being a blocker for this PR. Maybe adding a comment of the intention would be good.

Moreover, lastUpdatedTime is defined as a map with key set to Endpoint ID. I don't follow the comment about why this is defined as a map when the field is defined as part of an Endpoint struct. Why would an Endpoint struct store update times for other Endpoints? Also, for a given Endpoint, the ID remains the same for different kinds of updates. Maybe the intention was to define it as a map so that it can store update times for different kinds of update like identity, labels, etc?

I don't think I'm following this. IIUC, it is a map just so that when we get an event for an endpoint, we can look up the lastUpdateTime for it.

@Weil0ng @zhanghe9702 I'm a bit confused about the implementation. Per Weilong's comment, the field name was changed from identityChangedTime to lastUpdatedTime to keep it generic and account for Endpoint updates including the identity ones. But the field is updated only in the identityLabelsChanged function that handles identity updates.

I think the idea is that let's keep this variable generic so in the future we could extend it to include "reasons" for update not just identity change. It would be ideal if in this PR, the metric field is added and hence the logic under identity change only increment that particular field, but I don't see that being a blocker for this PR. Maybe adding a comment of the intention would be good.

Ok, adding a comment sounds good.

Moreover, lastUpdatedTime is defined as a map with key set to Endpoint ID. I don't follow the comment about why this is defined as a map when the field is defined as part of an Endpoint struct. Why would an Endpoint struct store update times for other Endpoints? Also, for a given Endpoint, the ID remains the same for different kinds of updates. Maybe the intention was to define it as a map so that it can store update times for different kinds of update like identity, labels, etc?

I don't think I'm following this. IIUC, it is a map just so that when we get an event for an endpoint, we can look up the lastUpdateTime for it.

What will be the different values stored in the map? Why do you need to look up in the map when you already have the Endpoint struct while processing an update?

:-), @aditighag , i also haven't fully understood why using endpoint id as key for storing changed timestamp, at first, i found CEP only carry identity info could be used for the decoupled metric, so i'm using identity id as key for an very simple distributed tracing implementation, but i think @Weil0ng  must have more reasonable consideration than me

What will be the different values stored in the map? Why do you need to look up in the map when you already have the Endpoint struct while processing an update?

As @zhanghe9702 pointed out, the initial implementation was to use security id as the key, which I had concerns with, from my understanding, the updateTime is a "per endpoint" var so I suggested to use EndpointID as key instead, but I think you are right, if you could simply keep the lastUpdatedTime in the Endpoint struct itself, then there's no need for such a map. WDYT? @zhanghe9702

@Weil0ng , in fact, that is what i do in the first commit, and @sayboras don't think that's correct, because every  update will override timestamp of previous operation, and lead to wrong calculation

:-), i think  we can close this PR


mjContact.vert bugs for flexcomp-geom collisions

Intro
Hi!
I am an Australian PhD researcher at the University of Queensland, and I use MuJoCo for my robotics research.
My setup
MuJoCo version: 3.2.3
API: Python
Architecture: x86_64
OS: Ubuntu 22.04.1 LTS
What's happening? What did you expect?
I'm trying to use MuJoCo's elasticity plugin to accurately simulate contact forces on soft, deformable robots. However, I've noticed that mjContact.vert returns incorrect flex vertex ids when simulating a simple flexcomp soft cube colliding with a plane geom.
Note that the cube that I have considered in my tests was meshed in gmsh. The picture below shows the vertex ids of the meshed cube in GMSH. In particular, note that the base of the cube has vertex ids 1, 2, 3, 4 and 9. From personal experiments, I've noticed that MuJoCo uses the same vertex id labelling scheme as GMSH, however all ids are based from 0 in MuJoCo (i.e., each id in GMSH is subtracted by 1 for zero-indexing).

When I set the value of euler of my flexcomp cube to non-trivial values, bugs arise.
Steps for reproduction

Download the contents of softbox.zip.
In the same directory create a new empty Python file called minimal.py and copy and paste the Python code below into your script. Make sure you adjust the xml_filepath variable in line 4 accordingly!
Set euler in line 25 of softbox.xml to the following values: "euler = 1 0 0", "euler = 2 0 0", "euler = 45 0 0", "euler = 0 1 0". For each case, run minimal.py. In each case, the box is dropped from a height and ultimately lands on flex vertex ids 0, 1, 2, 3 and 8 (or 1, 2, 3, 4 and 9 are the GMSH ids as mentioned earlier). However, if you inspect the terminal output, there are some flex vertex ids that are repeated, and we get the incorrect flex vertex ids involved in the contact between the flexcomp and plane in each case.
Confusingly, if you uncomment the if condition in line 14 of minimal.py and repeat step 3 for all cases, we get the correct output/flex vertex ids for all cases. What is causing this!?
Repeat step 3 for the following values: "euler = 90 0 0", "euler = 90 90 0", "euler = 90 0 90" and "euler = 90 0 180". You will get the correct flex vertex ids regardless of whether the if statement in line 14 of minimal.py is commented out or not. So it seems 90-degree rotations are handled correctly, but anything else produces erroneous bugs?

Minimal model for reproduction
The following zip folder contains the mesh of my soft cube - softbox.msh - and a minimal MJCF file called softbox.xml:
softbox.zip.
Please run the Python code below following the instructions above to reproduce the bugs.
Code required for reproduction
import mujoco
import os

xml_filepath = "path/to/softbox.xml"
model = mujoco.MjModel.from_xml_path(xml_filepath)
data = mujoco.MjData(model)
duration = 3.0
n_steps = int(duration/model.opt.timestep) #timestep = 0.0005

for i in range(n_steps):

    mujoco.mj_step(model, data)

    # if i == n_steps - 1:
    print("t = ", data.time, "\n")
    for con_id, con in enumerate(data.contact):
        print("Contact #", con_id+1)
        print("con.vert = ", con.vert, "\n")

Confirmations

[X] I searched the latest documentation thoroughly before posting.
[X] I searched previous Issues and Discussions, I am certain this has not been raised before.

Hi @quagla and @nimrod-gileadi, were you able to reproduce this bug? I am eager to resolve this issue because in my work, I need to accurately retrieve: (a) contact points i.e. (x,y,z) coordinates in the local frame of a simulated soft object and (b) contact forces with correct direction and magnitude in the local frame of soft objects. I've been able to achieve this with rigid bodies in MuJoCo. For example, the video below shows a falling rigid dodecahedron, and a corresponding animation of the contact forces rotated into the local frame of the rigid object.
rigidbody_contacts.webm
With rigid bodies, one only needs access to something like xmat or geom_xmat to rotate both contact points con.pos and contact forces into the local frame of the rigid body. But because something like flexcomp_xmat doesn't exist, I cannot do either of these things with a simulated soft object in MuJoCo.
As a result, I've attempted to use mjContact.vert to retrieve the vertex ids of nodes in my soft flexcomp objects (and map these ids to their correct (x,y,z) coordinates in the local frame of my soft object), but as mentioned above, this approach currently fails due to bugs. Is there a solution to this issue that I'm not seeing?

Hi have you checked that when the vert are repeated, the elem are also repeated? In principle, I don't see anything wrong with repeated vertices since the collisions are element-wise.

Also, you don't need a flexcomp_mat, because each vertex is a body, so you can retrieve his Cartesian position and orientation in xpos and xquat using flex_vertbodyid from mjModel.

I've noticed that elem for each flex-geom collision is [-1,-1] regardless of whether the vert are repeated or not. I believe this is a bug, as we're expecting a -1 for geoms and the element id for flexes right? I haven't been able to print out element ids that are not -1 for this simple soft box example for any of the above mentioned euler settings. Also, the documentation for the relevant mjContact attributes is currently the wrong way around:

  int     elem[2];                 // element ids; -1 for geom or flex vertex
  int     vert[2];                 // vertex ids;  -1 for geom or flex element

i.e. flex vertex and flex element should be swapped around for the relevant attributes.

Even though each vertex is a body and its position and orientation relative to its local body frame can be obtained via xpos and xquat or xmat, I've noticed that the orientation of each flex's Cartesian coordinate system/body frame doesn't rotate in the way that I need. This can be best understood by comparing a falling rigid geom box to a falling soft flexcomp box.

Below, we see that for a falling rigid geom box, the body frame/coordinate system rotates with the rotating body as expected.
falling_rigidbox.webm
Hence, it is possible to rotate a contact force measured in the contact frame, f_C, into the body frame via R_B.T @ R_C @ f_C, where R_B.T is the transpose of the relevant body_xmat and R_C = contact.frame.reshape(3,3).T (this formula can be confirmed in #1720). Clearly, from the video above, there is a single rotating coordinate system associated with the entire box geometry.
rigid_forcerotation.webm
Below in the soft case, each coordinate system/body frame associated with each flex vertex always stays aligned with the world frame, despite the non-trivial rotation that the entire flexcomp experiences. Hence, there is no way that I can rotate the forces experienced by the entire flexcomp into the still frame of the flexcomp, as I can in the rigid case (see above). In my case, I need to treat the entire flexcomp as a single "geometry", despite the fact that under-the-hood MuJoCo associates a single body with each flex vertex.
falling_softbox.webm
Why do the body frames associated with each flex vertex always stay aligned with the world frame despite non-trivial rotations? Is there a way I can change this unwanted behaviour?

I will look into 1. because I haven't written the flex collision code myself. But it could be that it's a special vertex-plane case, which is why the elements are -1. The documentation seems correct however?
As for 2., this is correct. A flex is a collection of sliders, so the bodies at the vertices cannot rotate (at least not with respect to their parent, which is the world in your case), and rotations are achieved as a combination of vertex displacements. There is no unique way to define a flex rotation - unless the flex is set to be rigid - so you could e.g. extract a best-fit rotation from the vertex displacements. Once you have that frame, you can rotate the contact forces using it.

The documentation seems correct however?

The current documentation is:
  int     elem[2];                 // element ids; -1 for geom or flex vertex
  int     vert[2];                 // vertex ids;  -1 for geom or flex element

But I'm saying I think it should be the following (?):
  int     elem[2];                 // element ids; -1 for geom or flex **element**
  int     vert[2];                 // vertex ids;  -1 for geom or flex **vertex**

As for 2., ...

Thank you, this is excellent information and very helpful!
Finally, I just want to make sure I understand what you said here:

have you checked that when the vert are repeated, the elem are also repeated? In principle, I don't see anything wrong with repeated vertices since the collisions are element-wise.

In the case of the soft box example, are you saying that since collisions involving flexes are element-wise, repeated vert should be fine so long as the elem for repeated vertices are different? If the elem were the same for a repeated vert, this would suggest that a collision has been wrongly double-counted, whereas if we have a unique elem for a repeated vert, then this is fine?

I'll let @quagla answer the second part, but can explain the comments, which are correct. They mean
  int     elem[2];      // element ids (>=0) if the collision is between two elems; if one of the objects is a geom or a vertex, use -1
  int     vert[2];      // vertex ids (>=0) if the collision is between two verts; if one of the objects is a geom or an element, use -1

Does this make sense?

This is crystal clear and aligns with my observations (barring the case of flex-plane collisions mentioned above, where I continue to observe elem = [-1,-1] for different simulations). Thank you for the clarification!

I have successfully rotated the forces on a soft, deformable box into its rest frame using the method @quagla described (see below).
softbox_rotatedforces.webm
I have tried to do the same thing for the soft-gripper model that was discussed in #2084 i.e. I've tried to rotate the contact forces into the rest frame of the left-finger. However, I get erroneous bugs which are related to that outlined in step 4. of the Steps for reproduction in my first comment in this thread (see comment quote below):

Confusingly, if you uncomment the if condition in line 14 of minimal.py and repeat step 3 for all cases, we get the correct output/flex vertex ids for all cases. What is causing this!?

In the following zip folder (
minimal_gripper.zip) I have included soft_gripper.xml and minimal_gripper.py. If you run minimal_gripper.py (code attached below), a 25 second simulation video will be saved. It is evident that from ~5 seconds onwards, the gripper is grasping the testobject i.e. a yellow box geom. However, when I run the code below, if con.geom[0] == 3 and con.flex[1] == 0 never evaluates to True? Note that by inspection, I've confirmed that the testobject has a geom id of 3, and the flexcomp corresponding to the left finger has a flex id of 0. Hence, this if statement in minimal_gripper.py should always trigger for all times greater than ~5s (but it never does).
But if I uncomment # if data.time > 6.0 and data.time < 6.0005, then if con.geom[0] == 3 and con.flex[1] == 0 evaluates to True as desired. Again, what is causing this inconsistency? Clearly, we would expect that such a simulation should behave the same, whether I include if statements or not. But the inclusion of if statements is clearly impacting the attributes of mjContact.
I have tried storing con.geom and con.flex in separate variables, e.g.:
geom_copy = deepcopy(con.geom)
flex_copy = deepcopy(con.flex)
if con.geom[0] == 3 and con.flex[1] == 0:
     ...

But this does not solve the issue. I've also observed that sometimes (very rarely) the code below can run correctly, with if con.geom[0] == 3 and con.flex[1] == 0 evaluating to true for all times greater than ~5 seconds. This is very confusing behaviour, but very important for me to resolve. Obviously, I need to include these if statements to isolate contact events involving the left-gripper and test object only, as I need to ignore internal flex-flex contacts and all other contacts for my purposes. But doing so via if statements seems to alter the attributes of mjContact class instances in an incorrect manner.
I will continue to play around with this, but I am considering switching to the C API rather than the Python bindings to see if this will solve these issues. I appreciate any feedback in advance!
import mujoco
import os
from mediapy import VideoWriter
from copy import deepcopy

xml_filepath = os.path.join(os.getcwd(), "soft_gripper.xml")

model = mujoco.MjModel.from_xml_path(xml_filepath)
data = mujoco.MjData(model)
duration = 25
n_steps = int(duration/model.opt.timestep) #timestep = 0.0005

framerate = 60
video_shape = (480, 640)

# visualize contact forces, make body transparent
scene_option = mujoco.MjvOption()
mujoco.mjv_defaultOption(scene_option)
scene_option.flags[mujoco.mjtVisFlag.mjVIS_CONTACTPOINT] = True
scene_option.flags[mujoco.mjtVisFlag.mjVIS_CONTACTFORCE] = True
scene_option.flags[mujoco.mjtVisFlag.mjVIS_TRANSPARENT] = True

# tweak scales of contact visualization elements
model.vis.scale.contactwidth = 0.2
model.vis.scale.contactheight = 0.2
model.vis.scale.forcewidth = 0.05
model.vis.map.force = 0.02

# Simulate and save video
frames = []

with mujoco.Renderer(model, video_shape[0], video_shape[1]) as renderer:
  for i in range(n_steps):

    # Print simulation time after each second has passed
    if abs(data.time % 1.0) < model.opt.timestep:
        print(f"Simulation time: {data.time:.3f} seconds")

    # Bang-bang binary control scheme
    if data.time > 0:
        data.ctrl[0] = 0.5  # Closing the gripper instantly/always
    if data.time > 14.0:
        data.ctrl[0] = 0.45 # Relax the grip strength as we lift to avoid penetrating platforms
        data.ctrl[1] = 1    # Lifting gripper

    mujoco.mj_step(model, data)

    # if data.time > 6.0 and data.time < 6.0005:
    for con_id, con in enumerate(data.contact):
        #geom_copy = deepcopy(con.geom)
        #flex_copy = deepcopy(con.flex)
        if con.geom[0] == 3 and con.flex[1] == 0:
            print("Contact #", con_id+1)
            print("con.geom1 = ", con.geom1)
            print("con.geom2 = ", con.geom2)
            print("con.elem = ", con.elem)
            print("con.flex = ", con.flex)
            print("con.geom = ", con.geom)
            print("con.vert = ", con.vert, "\n")

    if len(frames) < data.time * framerate:
        renderer.update_scene(data, "closeup", scene_option=scene_option)
        pixels = renderer.render()
        frames.append(pixels)

renderer.close()

output_file_path = os.path.join(os.getcwd(), "minimal_softgripsim.mp4")
with VideoWriter(output_file_path, video_shape, fps = framerate) as writer:
    for video_frame in frames:
        writer.add_image(video_frame)

Update: I am convinced this issue is related to the bug identified in #1710, which I understand is still unresolved and would occur whether I use the Python bindings or the C API. I can demonstrate that this is the case with the simple minimal example below:
import mujoco
import os
from copy import copy
import numpy as np

model = mujoco.MjModel.from_xml_path("soft_gripper.xml")
data = mujoco.MjData(model)
duration = 7
n_steps = int(duration/model.opt.timestep) #timestep = 0.0005

for i in range(n_steps):

    # Bang-bang binary control scheme
    if data.time > 0:
        data.ctrl[0] = 0.5  # Closing the gripper instantly/always
    if data.time > 14.0:
        data.ctrl[0] = 0.45 # Relax the grip strength as we lift to avoid penetrating platforms
        data.ctrl[1] = 1    # Lifting gripper

    mujoco.mj_step(model, data)

    print("  Original data:")
    print("  n_contacts: ", data.ncon, "\n")
    print("  colliding geoms: ", data.contact.geom, "\n")
    print("  colliding flexes: ", data.contact.flex, "\n")

    con_geom = []
    con_flex = []
    for con_id, con in enumerate(data.contact):
        con_geom.append(copy(con.geom))
        con_flex.append(copy(con.flex))

    print("  Data accessed during for-loop over list of mjContact data structures: ")
    print("  n_contacts: ", data.ncon, "\n")
    print("  colliding geoms: ", np.array(con_geom), "\n")
    print("  colliding flexes: ", np.array(con_flex), "\n")

If you run the above code, it will print out all contacts at all time steps for a total time of 7s. The output below sampled from a particular timestep clearly shows I am getting the wrong contact information during the for-loop over all mjContact instances:
  Original data:
  n_contacts:  24

  colliding geoms:  [[ 0  3]
 [ 0  3]
 [ 0  3]
 [ 0  3]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [ 3 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]]

  colliding flexes:  [[-1 -1]
 [-1 -1]
 [-1 -1]
 [-1 -1]
 [-1  0]
 [-1  0]
 [-1  0]
 [-1  0]
 [-1  0]
 [-1  0]
 [-1  1]
 [-1  1]
 [-1  1]
 [-1  1]
 [-1  1]
 [-1  1]
 [ 0  0]
 [ 0  0]
 [ 0  0]
 [ 0  0]
 [ 1  1]
 [ 1  1]
 [ 1  1]
 [ 1  1]]

  Data accessed during for-loop over list of mjContact data structures:
  n_contacts:  24

  colliding geoms:  [[ 0.  3.]
 [ 0.  3.]
 [ 0.  3.]
 [ 0.  3.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]]

  colliding flexes:  [[-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [-1. -1.]
 [ 0.  0.]
 [ 1.  1.]
 [ 0.  0.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 1.  1.]
 [ 0.  0.]
 [ 0.  0.]]

UPDATE: I believe all the issues I have had with contact information being altered were fixed via #1710. I was accessing the Python bindings via version 3.1.4, but after updating to 3.2.4 my issues have been resolved!


LUPEYALPHA 1171/identity task

Might be easier to review each commit separately.
The main change in this pr is adding the Identity task.
The EY identity task behaves slightly differently to the other tasks.
EY practitioners don't have DQT records so we're only using the information
from one login to check identity, additionally the rules around creating the
task are slightly different to other policies.

If the one login check passes and the name returned from OL matches the name
the provider entered the task is a pass

If the one login check passes and the names are a partial match¹ then we
create task with a partial match (see Admin::ClaimsHelper#task_status_tag)

If the one login check passes and the name from OL is different to the
provider supplied name we create a failed task.

If the one login check fails we create a failed task.

If the task is a partial match we render the task form for admins to update the
task (either passing or failing it).
Another quirk is if the practitioner hasn't completed their portion of the
journey we don't want to render the task form, and instead we want to show some
copy informing admins the practitioner is yet to complete their journey.
As there's a few differences between how other identity tasks work we've
introduced a separate task view for EY identity tasks.
¹ - we'll be changing the rules around what counts as a partial match in a
separate ticket.

Closing to see if that updates the deployment


Darksky Weather Is Accessing the API 984 times a day rather than 480 as it should.

Home Assistant release with the issue:

0.84.6
Last working Home Assistant release (if known):
0.83.2 was the last I tried where it worked, which is not to say that is the very latest where it did because I went straight from there to 0,84.6
Operating environment (Hass.io/Docker/Windows/etc.):

Hassbian on Pi 3+
Component/platform:

https://www.home-assistant.io/components/weather.darksky/
Description of problem:
So, as you can see here,

when using the darksky sensor set to 30 minute update and darksky weather component together, I was consuming only 550 API calls, but when I updated to 0.84.6 it jumped up to 1000+. I then disabled the sensor component completely, and the darksky weather component alone was taking 984 as you can see on the last day here.

This is a problem for people like me that want to use both the weather and sensor component. Can you please put it back to 480 or better yet add an option to change the update frequency>
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
weather:
  - platform: darksky
    api_key: REDACTED
    name: Weather Forecast
    mode: daily

Traceback (if applicable):

Additional information:

Hi,
I've 300 request with this config:
  - platform: darksky
    update_interval:
      minutes: 5

Please check if the amount of request is lower after the config change and restart of HA.

my previous answer was for the sensor.darksky and not for the platform darksky. The platform has hardcoded update cycle of 3 min. You could extend this by setting:
weather:
  - platform: darksky
    api_key: !secret darksky_api_key
    mode: daily
    scan_interval: 300

scan_interval is configured in seconds.
Based on my test in 0.85.dev the minimum update value is 3min.

Yes, this is my issue, the weather platform darksky is supposed to only update once every 3 minutes (480 times a day), but mine is updating at a bit over double that. I will see if I can get scan_interval to force a 3 minute update again and will let you know how it goes.

i'm having the same issue with it.
Im going over the 1000 limit with the default settings in 0.88.0, so i'm getting "daily usage limit exceeded".

Hey, so I recently updated to 0.87.1 and no longer have the problem, it appears to have been fixed between  0.84.6 and 0.87.1. I will close this issue.

i'm having the same issue with it.
Im going over the 1000 limit with the default settings in 0.88.0, so i'm getting "daily usage limit exceeded".

If you are running both components, you will come very close to 1000.. It can go over just by restarting.. Would be good to check your usage at
https://darksky.net/dev/account


OWAFull stopped working

OWAFull worked great with OWA (from Office365) until yesterday--now it doesn't work.  Not sure if Office365 changed or if Chrome OS changed.  Is this project still active/

Sorry, I don't have Office 365 to work with. This was designed for Exchange 2007/2010, but if you're able to find the problem with 365 you can submit a PR or mention the issue here and I'd be happy to take a look at it.

Thanks!  The url from Office365 starts with https://outlook.office.com/owa/, so I expect this to be a problem with any server using owa.
Here are some symptoms--if you tell me how to get better debugging info, I'll get it.
From my Chromebook, I could only use the "light" version of owa, but once I installed the OWAFull extension, I could use the full version, which was great.
A few days ago when I used a bookmark to open what had previously been the full version of owa, I got this error message:
"The server operation timed out.  Please try again later."
If I connect to the owa server a different way (not using the bookmark), I get the "light" version again.
I tried spoofing the server using the "user agent switcher" extension, but I got the same error using either "Firefox for Windows" or "MSIE 10" settings.

Through some basic searching I found some people having similar issues. The fix for them was to use the internal domain name to access OWA, instead of the external DNS. I'm not sure how your network is configured but you may be able to use the IP address of the server if you don't have an internal DNS name for the site.
If this solution doesn't apply to you, you can clone the OWAFull project and install it as side-loaded extension to Chrome. Then you can modify the code to troubleshoot what's going on and report back.
I'm sorry that I can't help further because I don't have an Office 365 account and apparently Microsoft doesn't make it easy for developers to get free accounts.

With a few tweaks I was able to get this working on the OWA setup used by my company. I changed the user-agent string to match IE10 instead of IE9 and I match either /owa/ or /OWA/.
`Index: src/background.js
<+>UTF-8
--- src/background.js	(revision 19d22f00f2616ba4a0c939321c68f7e063712e89)
+++ src/background.js	(revision a516b13cf229aa3f03df174531c376c154990eee)
@@ -1,13 +1,15 @@
var requestFilter = {
urls: [

  "https://*/owa/*"

  "https://*/owa/*",

  "https://*/OWA/*"

]
};

chrome.webRequest.onBeforeSendHeaders.addListener(function(details) {
var headers = details.requestHeaders;
var i;

var ieUserAgent = "Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; Trident/5.0)";

//var ieUserAgent = "Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; Trident/5.0)";
var ieUserAgent = "Mozilla/5.0 (MSIE 10.0; Windows NT 6.1; Trident/5.0)";
var loggedIn = false;
var bkg = chrome.extension.getBackgroundPage();

\ No newline at end of file
Index: src/manifest.json
<+>UTF-8
--- src/manifest.json	(revision 19d22f00f2616ba4a0c939321c68f7e063712e89)
+++ src/manifest.json	(revision a516b13cf229aa3f03df174531c376c154990eee)
@@ -3,13 +3,14 @@
"name": "OWAFull",
"description": "Allows Chrome to use the full version of Outlook Web Access, instead of being stuck in the light version.",

"version": "1.0",

"version": "1.1",
"homepage_url": "https://github.com/ajbogh/OWAFull",
"permissions": [
"activeTab",
"webRequest",
"webRequestBlocking",

"https:///owa/"

"https:///owa/",
"https:///OWA/"
],
"background": {
"scripts": ["background.js"],
\ No newline at end of file`

@briankrug, please create a pull request with your changes and I will review them. It's difficult for me to test this since my current company uses a newer version of OWA which works with Chrome and FX, however I will do my best. Thanks!

My company uses OWA 2007, but the extension is no longer working. Any chance you'd be able to make a fix?

Hi @Ali-Adnan. I've merged a new user agent string for IE from PR #4. I will attempt to build a new release soon. If you're willing to test it, please download the source code and install it in Chrome manually and let me know if it fixed the problem.
I'd be happy to accept a Pull Request from you if you're able to fix it yourself, however I do not have access to OWA 2007 anymore.


#387 exhaust NOOP responses also after 226 Transfer complete

Awesome! One small question, what if there are no responses? Will it block forever at the ReadStaleData call?

Sorry! Just read your comment and you've tested this, which is great. Thanks again.

Yeah no ReadStaleData/Async is effectively a no-op if there is no available data. It does not even poll.
Only reason for available data would be superfluous responses, and new code only bothers if it knows it sent any NOOPs.


Element serialization attempts to write Optional

... which would likely result in runtime exception.
See: io.spine.server.tupe.Element.writeObject().
It would be also good to change the type of the stored value to Serializable.

After refactoring it's better seen that it does not write Optional.
The PR #850 is going to improve the structure of this code.
I'm closing this issue as it's not a bug.


More logging for riff image relocate

Fixes https://github.com/projectriff/riff/issues/851

Merged as 6c5b7469


 vs Hello

The docs and the code uses both <Heading children='Hello' /> and <Heading>Hello</Heading>. I am not sure, but I think the children prop is undocumented.
I am aware of the children prop in React, eg. http://mxstbr.blog/2017/02/react-children-deepdive/
However, I cannot find an explanation when to use the children prop, whether it only allows strings and when it should be used as best practise in the context of Rebass.
Can someone help? Thanks.

The two are interchangeable in React. I tend to use the prop when it seems to aid readability, but often it's better to nest


Feature Request:  Run testthat in parallel

Feature Idea
I just found out that we could run the tests in parallel.
At the moment, it adds some time to the devtools::check() command (1m 24.9s for me).
It looks like it would be really easy to implement, see:
https://testthat.r-lib.org/articles/parallel.html
@pharmaverse/admiral does anyone see any downside?
Relevant Input
No response
Relevant Output
No response
Reproducible Example/Pseudo Code
No response

@StefanThoma Beautiful! I love this stuff! I had a quick look.
The good news: nothing seems to be falling over when using parallel testing. This is good to know regardless, because it gives some confidence that our tests are not impacting the environment.
Results with my quick evaluation of this:

1 process (what we have always been using): ~65 seconds
2 processes (the default for parallel): ~57 seconds
3 processes: ~61 seconds
4 process: ~66 seconds
8 processes: ~77 seconds

Maybe this increase in time with 3 or more processes is due to the large number of quick tests we have in admiral: "This overhead generally means that if you have many test files that take a short amount of time, you’re unlikely to see a huge benefit by using parallel tests."
From this quick evaluation, it looks like we can save some time by using parallel testing with TESTTHAT_CPUS=2.

No need to specify TESTTHAT_CPUS=2; that is the default if we have Config/testthat/parallel: true in the DESCRIPTION file.

Having looked into this a bit more, I think it would not be a good decision to make use of parallel testing.
The benefit seems to be very small (<15% of testing time saved, which is just a few seconds).
Another benefit is that by doing parallel testing, you can surface problems where one test is depending on another and an error occurs because of this; the test could be re-written and improved due to this finding. While this would be a good thing, it is random and I don't think we could evaluate all possibilities. This could mean that a developer with a different number of CPU's assigned for parallel testing could be the first one to see an error.


[AA-1703] - Add SSO support to Admin App

Description
Web and Management Projects

Added OpenIdConnect and Cookies authentication packages.
Added IdentitySettings section to appsettings.json. Added corresponding classes/constants for IdentitySettings.
Added OpenIdConnect specific OpenIdConnectUserMustExistHandler for the user authorization requirement.
Added OpenIdConnectController and corresponding login/logout related actions
Refactored Startup.cs configuration for EntityFramework Identity and brought it out to a separate function. Added configuration for OpenIdConnect.
Added AddUserLoginModel and AddUserLoginCommand to facilitate adding the user and userlogin records into the database on OIDC login. Added OpenIdConnectLoginService to facilitate setting up the user in the Identity tables and assign SuperAdmin role on an OIDC login.
Added an OpenIdConnect specific UserContextFilter to populate the user roles and permissions based on the oidc information available. Separated out the registration for UserContextFilter to only Identity flow. Registered OpenIdConnectUserContextFilter for the OIDC flow.
Added conditional logic to disable Users tab for OIDC flow.Refactored to use UserId from the usercontext to ensure instance registration works with OIDC login flow.

Tests Project

Added IdentitySettings section to the Management.Tests/appsettings.json.Added tests for AddUserLoginCommand and OpenIdConnectLoginService.

Another update: @saa14 discovered the throws happening in the OnSignIn event handler are not picked up by the global error handling, so the setup issues were not apparent to end users. I've adjusted the handling there so:

invalid config or claims do not create a user
the UserMustExist handler returns nice messages again
role claims are required by a default ClaimPolicy for OIDC setup
default AuthorizationFilter is applied globally to prevent invalid users from getting around

I also figured out how to fix the logout! @saa14 can you give another check now?

Another update: @saa14 discovered the throws happening in the OnSignIn event handler are not picked up by the global error handling, so the setup issues were not apparent to end users. I've adjusted the handling there so:

invalid config or claims do not create a user
the UserMustExist handler returns nice messages again
role claims are required by a default ClaimPolicy for OIDC setup
default AuthorizationFilter is applied globally to prevent invalid users from getting around

I also figured out how to fix the logout! @saa14 can you give another check now?

Thanks for the updates and fixes related to role claims and sign out. I have tested out the changes with Google as the login provider (with a hardcoded role claim) and it seems to work as expected. I am still facing a probable configuration-related issue on the logout and will further investigate that. In the meanwhile, this PR seems good to merge.


Fix behavior of SA1009 code fix when non-whitespace trivia is included

[x] Add regression tests for #1206
[x] Fix #1206

@hvanbakel This was surprisingly complicated. The new logic should take good care of you and your trailing comments. :expressionless: :wink:

@pdelvo @Maxwe11 @Noryoko @vweijsters This update allowed the code fix provider to be used for four other code fixes as well. The pull request that implements those is currently blocked on this review.

We should add tests for SA1011, SA1012, SA1013, SA1014, SA1015, SA1019, SA1020, and SA1023 since they use the same code fix.

:+1: Looks good to me, except for the remark of @Noryoko above.

I added issue #1217 for the additional tests.


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

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
f4bc01f -> d6d1d00

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

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


feat: add assetlinks file for android deep links

This file is needed in order to make artsy.net links open in the Android app

LGTM.


Corrupted texture visible when opening a New Window

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.72.1
OS Version: Arch Linux / GNOME / Wayland / RX 5600 XT

Steps to Reproduce:

Open a New Window
A corrupted texture will sometimes flash quickly while the window is initializing.

Note: I'm not sure if this is a VSCode issue or a graphics driver issue. It's been happening for some time. May be related to #163395.

Please try disabling hardware acceleration https://code.visualstudio.com/updates/v1_40#_disable-gpu-acceleration


Teams channel folder renaming not reflected in Sharepoint

We found a bug where if you create a channel in Teams (desktop app), when a corresponding folder is created in Sharepoint and you change the name of a channel in Teams, the folder remains the same in Sharepoint and you have to manually rename the folder there to accurately reflect Teams. It is not automatically synced/updated like the rest of the files within that folder. Please advise. Thank you!

We could repro the issue on our side raised a bug


401 Unauthorized Exception, Docker

Hello,
I am using this package in a .net 7.0 worker service, which I host in a Docker container. Basically it works, but unfortunately now I always sporadically get an exception "Request [POST: https://connect.garmin.com/modern/di-oauth/exchange] return code 401 (Unauthorized)" and the Docker container stops. First it works yes and then suddenly not anymore. Sometimes 4-5 requests in 10-30 minute intervals work and sometimes only 1-2.
Does anyone possibly have a tip on what it could be or is the problem known? Would like to use the library, but I know slowly unfortunately no more further.

So I think I was able to figure out a problem now. In the GarminConnectContext class, the MakeHttpRequest method queries on HttpStatusCode.Forbidden. I think it should rather query on HttpStatusCode.Unauthorized to force a ReLogin. Whereas I was wondering why not Refresh of the token is triggered? Does the Garmin interface offer that at all?
Because in the meantime I had implemented it a little differently and since I was also sporadically prompted by garmin to reset my password, do not know if it had to do with too many logins. Although these were then successful, but maybe there is still a security mechanism.
I will test it in any case now times with the said adjustment and see how it behaves.

I also had the issue with the password resets, I solved it by just run the docker container via a cron job (and terminating after a run), instead of running it as a service (on a schedule inside the container itself). Since then Garmin never prompted a password reset.
If you ever figure out a better solution, could you post it here?

Ok, that's a bit questionable why the approach works, though, or can you explain it?
I do not really understand where the difference is there !??
I had it implemented differently for me before, so that I performed a new login for each query.
I have a WorkerService that periodically retrieves data. Initially I had used a short periodic cycle, though I suspect that quickly resulted in a password reset being forced.
Now I have changed the service so that after each fetch a new random data fetch is set between 10 and 30 minutes. In addition, I now only perform a login when I receive an error with the error code 401, which is why I also performed the above-mentioned error correction.
Currently, the service has been running for 1.5 days - even with a successful re-login - let's see how it goes.

Hi, guys!
If you have the solution to your problem I would be glad to review a PR
Could you add some samples with this problem for a fast start?
I will try to research how to help you

I have now created a PR for my customization. Since then my service has been running under Docker without receiving any password change request from Garmin so far. But before that, it would sometimes run for a few days without any problems, until I would get a password reset prompt again.
So the way the problem presents itself, it's also difficult to provide examples.
As mentioned before, in my first attempt for using this library, I probably still used it incorrectly and therefore implemented my logic incorrectly. Then the next problem was that (apparently) whenever the token from Garmin expired, my service stopped with an exception. I have now been able to solve this error for the time being through the customization, for which I have now also created a PR.
Now I have to wait and see if the problem with the password reset occurs again.
But I still have one open question:
As I understand it, a new login is performed in the library when the token has expired. Is there not the possibility to perform a refresh of the token?
That would probably improve the occurrence of the password reset problem again and make it less likely to occur, since the logins would be reduced again.
Or is there no possibility of a token refresh at all?

I made fast research and yes it looks like missed an expired refresh token handler.
I try to gather little more cases and then will release the fix
Thanks!


Missing license file

Can you please add a license?

Done.

Thanks, but it doesn't say which license it is. E.g., GPL, MIT, BSD... Please clarify. Thanks!


FATAL:  role "postgres" does not exist

I try docker-compose up and I get the fatal error: FATAL:  role "postgres" does not exist
I'm using Docker version 18.06.1-ce, build e68fc7a on a Mac.
In case it's pertinent I installed Kong initially using the instruction here. Then deleted the images after getting the above error. I did also run a docker-compose build before docker-compose up.
Any ideas?

Try
docker-compose up -d ; sleep 10 ; docker start kong


Errors disappear after saving any changes to file

Errors from mypy disappear after saving any change to a file. It doesn't matter if the change fixes an error, introduces a new error or is not related at all. Only reloading VS Code window fixes it until you make a change once again. This basically makes this extension unusable.
mypy-related settings in my settings.json:
{
  "python.linting.mypyEnabled": false
}

When set to false:

Errors only reported by Python extension.
When set to true:

Errors reported by this and Python extension.
After having saved changes when set to true:

Error from this extension disappears while the one from Python extension stays.
Logs of this extension after saving changes which cause errors to disappear:
2023-07-14 14:12:20.364 [info] /Users/levrik/code/<REDACTED>/.venv/bin/python -m mypy.dmypy --status-file /var/folders/y5/_yxr_tgx3xggc344718g4fp00000gn/T/.vscode.dmypy_status/status-f7231085-f699-494e-93e9-916f03e88602.json run -- --no-color-output --no-error-summary --show-absolute-path --show-column-numbers --show-error-code --no-pretty --follow-imports=normal --show-error-end /Users/levrik/code/<REDACTED>.py
2023-07-14 14:12:20.364 [info] [Trace - 2:12:20 PM] Received notification 'window/logMessage'.
2023-07-14 14:12:20.364 [info] CWD Server: /Users/levrik/code/<REDACTED>
2023-07-14 14:12:20.437 [info] [Trace - 2:12:20 PM] Received notification 'window/logMessage'.
2023-07-14 14:12:20.437 [info] file:///Users/levrik/code/<REDACTED>.py :

2023-07-14 14:12:20.439 [info] [Trace - 2:12:20 PM] Received notification 'textDocument/publishDiagnostics'.

@levrik This might be a bug in mypy itself. We don't specifically cache any result or do anything special here. You can try installing mypy in your environment and set "mypy-type-checker.path": ["${workspaceFolder}/.venv/bin/mypy"]. This will run mypy directly instead of using dmypy.

See https://github.com/python/mypy/issues/15677

@karthiknadig Thanks. Keeping an eye on the linked issue.


Fix Deployment API Version & Typo

Signed-off-by: Bo0km4n<EMAIL_ADDRESS>

Going to close this PR for now, since #25 was merged and seems to include the items mentioned here. If there is something specific that still needs addressing, feel free to open another PR. Thank you for your submission


Error creating index for Memory-Optimized Table in schema different from [dbo] (or current)

There is no chance to create index for memory-optimized table with schema different from [dbo] using migrations. Command does not use schema name to identify db object.
Exception message: Cannot find the object "UserInfo" because it does not exist or you do not have permissions

Stack trace:
      Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (88ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      ALTER TABLE [UserInfo] ADD INDEX [IX_NameIndex] NONCLUSTERED ([NameIndex]);
System.Data.SqlClient.SqlException (0x80131904): Cannot find the object "UserInfo" because it does not exist or you do not have permissions.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
...

            migrationBuilder.EnsureSchema(
                name: "Users");

            migrationBuilder.AlterDatabase()
                .Annotation("SqlServer:MemoryOptimized", true);

            migrationBuilder.CreateTable(
                name: "UserInfo",
                schema: "Users",
                columns: table => new
                {
                    ...
                })
                .Annotation("SqlServer:MemoryOptimized", true);

            ...

            migrationBuilder.CreateIndex(
                name: "IX_NameIndex",
                schema: "Users",
                table: "UserInfo",
                column: "NameIndex")
                .Annotation("SqlServer:Clustered", false);

Further technical details
EF Core version: 2.1.0-preview1-27654 and earlier
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE: No matter (Rider 2017.2.1)

https://github.com/aspnet/EntityFrameworkCore/blob/9daecfd5b915336c2242ab11de471ac6f3d151ad/src/EFCore.SqlServer/Migrations/SqlServerMigrationsSqlGenerator.cs#L530-L532
It ignores schema right now. Thanks for reporting bug @DenisKolpakov


[ARCTIC-941][WIP]Improve unit test cases in module core

Why are the changes needed?

To resolve #941, improve unit test cases in module core and hive
Brief change log

Add TestAms and TestHMS external resource implementation
Add CatalogTestBase and TableTestBase implementation
Improve test cases and add tests for exception scenarios

How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before making a pull request

Documentation

Does this pull request introduces a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@zhoujinsong  Maybe we should consider abstracting the common logic to make HMS/Kafka Service/AMS resources to be singleton resources.

@zhoujinsong Maybe we should consider abstracting the common logic to make HMS/Kafka Service/AMS resources to be singleton resources.

The singleton resource logic is static code now, it seems to be hard to abstract this logic.
Do you have a good idea about that?

@zhoujinsong  Below HMS service demo code abstract singleton test service.
public class HiveBase {

  public static void setup() {
    System.out.println("================== setup HiveBase env ==================");
  }

  public static void clean() {
    System.out.println("================== clean HiveBase env ==================");
  }
}

The abstract singleton service test class:
public abstract class SingletonServiceTest {
  private static boolean serviceSetUpIsDone = false;
  private static final Object lock = new Object();

  public abstract void serviceSetup();

  public abstract void serviceShutdown();

  public void setUp() {
    synchronized (lock) {
      if (!serviceSetUpIsDone) {
        System.out.println("================== setup service env ==================");
        serviceSetup();
        serviceSetUpIsDone = true;
        System.out.println("================== setup service env completed ==================");
      }
    }
  }

  public void shutdown() {
    synchronized (lock) {
      if (serviceSetUpIsDone) {
        System.out.println("================== clean service env ===================");
        serviceShutdown();
        serviceSetUpIsDone = false;
        System.out.println("================== clean service env completed ===================");
      }
    }
  }
}

The HMS singleton test service implementation:
public class HiveMetastoreTestMain extends SingletonServiceTest {

  @Override
  public void serviceSetup() {
    HiveBase.setup();
  }

  @Override
  public void serviceShutdown() {
    HiveBase.clean();
  }
}

There are two different test Cases, about hive read and write UTs:
public class HiveReadTest {

  private final static SingletonServiceTest HMS = new HiveMetastoreTestMain();

  @BeforeClass
  public static void test() {
    HMS.setUp();
  }

  @Test
  public void test1() {
    System.out.println("hive read test1");
  }

  @Test
  public void test2() {
    System.out.println("hive read test2");
  }
}

public class HiveWriteTest {
  private final static SingletonServiceTest HMS = new HiveMetastoreTestMain();

  @BeforeClass
  public static void test() {
    HMS.setUp();
  }

  @Test
  public void test1() {
    System.out.println("hive write test1");
  }

  @Test
  public void test2() {
    System.out.println("hive write test2");
  }
}

Run the two test cases(HiveReadTest, HiveWriteTest) together and get the below result:
================== setup service env ==================
================== setup HiveBase env ==================
================== setup service env completed ==================
hive write test1
hive write test2
hive read test1
hive read test2


sac 在LunarLander-v2上的使用有问题，

This problem is correlated with gradient backward and I've fixed that at commit ab5fffc

feel free to reopen this.


Shell starts from windows user home when launching from windows terminal

IMPORTANT
Please read README and Known issues before creating the issue.
Please fill out the below information:
Describe the issue
Shell starts from windows user home /mnt/c/users/$whoami instead of linux user home ~ when launching from windows terminal's tab bar. The later one is the default behavior when launching from arch.exe.
To Reproduce
Install with appx image. From windows terminal, click on the "V" icon of tab bar and choose Arch.
Expected behavior
$PWD eq /home/$whoami
Enviroment:

Windows build number: 10.0.18363.535
Security Software: Huorong
WSL version 1/2: WSL1
ArchWSL version: <IP_ADDRESS>
ArchWSL Installer type: appx clean
Launcher version: 19111602

Please use run argument.
Arch.exe run.

You probably didn't get me.
When launching from this entry:

$PWD points to /mnt/c/users/$whoami, but the expected path should be ~

Yea, that a Windows Terminal thing.
This is what you want
"commandline": "wsl ~ -d Arch",
This is an issue with windows terminal not with Arch, as seen here

Thanks, a bit tricky but it works!

Yea, that a Windows Terminal thing.
This is what you want
"commandline": "wsl ~ -d Arch",
This is an issue with windows terminal not with Arch, as seen here

@yuk7 can we add the solution from @arlllk above to the wiki?
Thanks.


Addon not starting up!

Select Add-On (place a lowercase x for the relevant add-on)

[ ] Xiaomi Mi Scale

Describe the bug
Addon not starting, with the error
File "/opt/miscale/Xiaomi_Scale.py", line 196
   message+= '"state_topic": "' + MQTT_PREFIX + '/' + MQTTUser + '/weight","value_template": "{{ value_json['weight'] }}",'
                                                                                ^
SyntaxError: invalid syntax

To Reproduce
After updating the configuration file, that error is all I get
Scale (please complete the following information):

Xiaomi Mi Scale Body Composition 2

Device running Home Assistant (please complete the following information):

HassOS

Thanks. I just pushed 0.1.16 which should fix it. Give it a few minutes for the image to be available on Docker

Thanks. I just pushed 0.1.16 which should fix it. Give it a few minutes for the image to be available on Docker

New version installed, same error

That's odd. It's definitely working for me.
Can you try and uninstall / reinstall pls?

Installed on a testing setup with an old Pi 3 and it works great! Thanks a lot!


macOS: /usr/local/miniconda/envs/sage-build/etc/gdb/.messages.txt: No such file or directory

Solution to issue cannot be found in the documentation.

[X] I checked the documentation.

Issue
Installing gdb on macOS leads to an error:
Warning: ERROR conda.core.link:_execute(699): An error occurred while installing package 'conda-forge::gdb-11.1-py38h36b043a_3'.

  ERROR conda.core.link:_execute(699): An error occurred while installing package 'conda-forge::gdb-11.1-py38h36b043a_3'.
  Rolling back transaction: ...working... done
  Warning:
  LinkError: post-link script failed for package conda-forge::gdb-11.1-py38h36b043a_3
  location of failed script: /usr/local/miniconda/envs/sage-build/bin/.gdb-post-link.sh
  ==> script messages <==
  <None>
  ==> script output <==
  stdout: Warning: GDB is not codesigned.
  Generating and installing gdb_codesign certificate

  stderr: cat: /usr/local/miniconda/envs/sage-build/etc/gdb/.messages.txt: No such file or directory
  error: Something went wrong when installing the certificate

  return code: 1

  ()

  LinkError: post-link script failed for package conda-forge::gdb-11.1-py38h36b043a_3
  location of failed script: /usr/local/miniconda/envs/sage-build/bin/.gdb-post-link.sh
  ==> script messages <==
  <None>
  ==> script output <==
  stdout: Warning: GDB is not codesigned.
  Generating and installing gdb_codesign certificate

  stderr: cat: /usr/local/miniconda/envs/sage-build/etc/gdb/.messages.txt: No such file or directory
  error: Something went wrong when installing the certificate

  return code: 1

Observed on a GH Actions runner, https://github.com/mkoeppe/sage/runs/5586815094?check_suite_focus=true via conda-incubator/setup-miniconda@v2
Installed packages
2022-03-17T13:47:01.6473270Z   Package                                                      Version  Build                   Channel                   Size
2022-03-17T13:47:01.6477250Z ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2022-03-17T13:47:01.6478440Z   Install:
2022-03-17T13:47:01.6482290Z ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2022-03-17T13:47:01.6487600Z
2022-03-17T13:47:01.6557680Z   + gdb                                                           11.1  py38h36b043a_3          conda-forge/osx-64        5 MB

Environment info
2022-03-17T13:45:44.3545280Z ##[group]Run conda-incubator/setup-miniconda@v2
2022-03-17T13:45:44.3545580Z with:
2022-03-17T13:45:44.3545810Z   python-version: 3.8
2022-03-17T13:45:44.3545990Z   mamba-version: *
2022-03-17T13:45:44.3546230Z   channels: conda-forge,defaults
2022-03-17T13:45:44.3546490Z   channel-priority: true
2022-03-17T13:45:44.3546730Z   activate-environment: sage-build
2022-03-17T13:45:44.3547530Z   environment-file: src/environment-optional.yml
2022-03-17T13:45:44.3547760Z   auto-activate-base: true
2022-03-17T13:45:44.3548030Z   auto-update-conda: false
2022-03-17T13:45:44.3548250Z   remove-profiles: true
2022-03-17T13:45:44.3548470Z   architecture: x64
2022-03-17T13:45:44.3548750Z   clean-patched-environment-file: true

(previously reported at https://trac.sagemath.org/ticket/30845#comment:269)

Hi! I think the real error is error: Something went wrong when installing the certificate.
GDB needs to be codesigned to work on macOS, so the post-link script either

instructs users on how to do that, if installing on a user machine
codesigns GDB, if running in CI.

The way we determine if we are running in CI is pretty basic, i.e. we check if we can run sudo without a password:
https://github.com/conda-forge/gdb-feedstock/blob/5a426c4e873991f22f8510060322ac093b22f6e2/recipe/post-link.sh#L5-L9
https://github.com/conda-forge/gdb-feedstock/blob/5a426c4e873991f22f8510060322ac093b22f6e2/recipe/post-link.sh#L26-L30
The message " error: Something went wrong when installing the certificate. " is coming from the macos-codesign-gdb.sh script, which does not currently work on macOS 11 (i.e. macos-latest on GHA) which your build is using.
I was holding on fixing the script since anyway GDB does not work reliably on recent macOS (see discussion in #51 ).
I'm assuming you don't intend to actually run GDB in your GHA run ? I see in the track ticket you "disabled" it, is that a good solution for you ? If needed I could upgrade the script so it the codesigning works on macOS 11 (GDB itself, even if properly signed, might not work though)...


bug: The namespace (downstream object) in the pcluster is getting terminated after creating the APIBinding

Describe the bug
To facilitate the synchronization of Kubernetes objects from the KCP namespace to its corresponding synctarget (in turn in a namespace in the pcluster), I have created placement policies mapping each sync target/location to a KCP namespace.
However, I have encountered an inconsistency in KCP's behavior when creating the API binding on a Macbook (Darwin ARM64, M1 Pro) compared to a Linux VM (AMD64).
On the Linux VM, creating an API binding for the Kubernetes API export results in the termination of the namespace in the provisioned cluster that corresponds to the KCP namespace. Yet, this does not occur on the Macbook (Darwin ARM64) - creating an API binding for Kubernetes resources does not affect the namespace in the provisioned cluster.
Here is the sequence of steps I follow to establish KCP wiring:

4-ws-sync.sh: Create a workspace and deploy a sync target in each target cluster.
5-labelsyncer.sh: Label the sync targets.
6-ns-loc-pp.sh: Create the KCP namespace, location, and placement policy.
7a-APIBINDING.sh: Create the API binding.

env_variables.sh: It has the environment variables for cluster name, workspace, etc.
The inconsistency appears with KCP's behavior during step 4 on the Linux VM (ARM64).
If anyone has encountered a similar issue or has insights to share, your input would be greatly appreciated.
Steps To Reproduce

Simple steps to reproduce the issue:
Deploy a kind cluster on an amd64 linux machine
Run the KCP v0.11 on the amd64 Linux machine
Create a KCP workspace
kubectl workspace create $WORKSPACE_NAME --enter
Deploy the syncer in the kind cluster
Label the syncer
Create a KCP namespace,
Create a  location with instanceSelector pointing to the label of the syncer as defined in the 6* script
Create a placement policy to map the location with the KCP namespace
After step 8, you can see the namespace created in the pcluster
Create an API binding in the current workspace e.g. 7a-* script
Check the namespace in the pcluster (on amd64: it terminates, on Darwin Amd64: no impact)

Expected Behaviour
With KCP v0.11.0 for  AMD64 arch. : The namespace (downstream object) in the pcluster that is getting terminated is corresponding to the KCP namespace (upstream object).
With KCP v0.11.0 for  Darwin ARM64 arch. : The namespace (downstream object) in the pcluster is not terminated.
Additional Context
The namespace state after creating the API binding
irl@hub:~/pankaj/octopus$ k get ns edge-1 -o yaml
apiVersion: v1
kind: Namespace
metadata:
annotations:
kcp.io/cluster: 2rdefjxpbx1yb9rx
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"labels":{"name":"edge-1"},"name":"edge-1"}}
scheduling.kcp.io/placement: ""
creationTimestamp: "2023-06-08T15:10:58Z"
labels:
kubernetes.io/metadata.name: edge-1
name: edge-1
name: edge-1
resourceVersion: "1972"
uid: 92f0dd0b-b1fa-45ef-8d20-5bafd1d11e28
spec:
finalizers:

kubernetes
status:
conditions:
lastTransitionTime: "2023-06-08T15:38:03Z"
message: No available sync targets
reason: Unschedulable
status: "False"
type: NamespaceScheduled
phase: Active

The namespace state before creating the API binding
irl@hub:~/pankaj/octopus$ k get ns edge-1 -o yaml
apiVersion: v1
kind: Namespace
metadata:
annotations:
kcp.io/cluster: 2rdefjxpbx1yb9rx
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"labels":{"name":"edge-1"},"name":"edge-1"}}
scheduling.kcp.io/placement: ""
creationTimestamp: "2023-06-08T15:10:58Z"
labels:
kubernetes.io/metadata.name: edge-1
name: edge-1
state.workload.kcp.io/6YKBsgxBSSW1XYFm3wkHf97QZEkLyTHV4Pqguq: Sync
name: edge-1
resourceVersion: "2033"
uid: 92f0dd0b-b1fa-45ef-8d20-5bafd1d11e28
spec:
finalizers:

kubernetes
status:
conditions:
lastTransitionTime: "2023-06-08T15:40:02Z"
status: "True"
type: NamespaceScheduled
phase: Active

pankajthorat@Pankajs-MacBook-Pro octopus % cat env_variables.sh
#!/bin/bash
export HUB_CLUSTER_NAME="hub-operator-system"
export CORE_CLUSTER_NAME="core-1"
export EDGE1_CLUSTER_NAME="edge-1"
export EDGE2_CLUSTER_NAME="edge-2"
#export CLUSTER_NAMES=("$HUB_CLUSTER_NAME" "$CORE_CLUSTER_NAME")
export CLUSTER_NAMES=("$HUB_CLUSTER_NAME" "$CORE_CLUSTER_NAME" "$EDGE1_CLUSTER_NAME" "$EDGE2_CLUSTER_NAME")
export WORKSPACE_NAME="octopus"
pankajthorat@Pankajs-MacBook-Pro octopus % cat 4-ws-sync.sh
#!/bin/bash
source env_variables.sh
export KUBECONFIG=.kcp/admin.kubeconfig
kubectl workspace create $WORKSPACE_NAME --enter
#kubectl workspace create-context
for cluster_name in "${CLUSTER_NAMES[@]}"; do
if [[ $cluster_name =~ "hub" ]]; then
	kubectl kcp workload sync "$cluster_name" --syncer-image ghcr.io/kcp-dev/kcp/syncer:v0.11.0 --resources=atomgraphlets.edge.operator.com -o "$cluster_name".yaml
fi

if [[ ! $cluster_name =~ "hub" ]]; then
	kubectl kcp workload sync "$cluster_name" --syncer-image ghcr.io/kcp-dev/kcp/syncer:v0.11.0 --resources=atomgraphlets.edge.operator.com -o "$cluster_name".yaml
	#kubectl kcp workload sync "$cluster_name" --syncer-image ghcr.io/kcp-dev/kcp/syncer:v0.10.0 --resources=serviceaccounts --resources=rolebindings.rbac.authorization.k8s.io --resources=roles.rbac.authorization.k8s.io  --resources=clusterrolebindings.rbac.authorization.k8s.io --resources=clusterroles.rbac.authorization.k8s.io -o "$cluster_name".yaml
fi

done
for cluster_name in "${CLUSTER_NAMES[@]}"; do
KUBECONFIG=~/.kube/config kubectl config use-context kind-"$cluster_name"
KUBECONFIG=~/.kube/config kubectl apply -f "$cluster_name".yaml
done
echo "Sleeping for 30 seconds..."
sleep 30
pankajthorat@Pankajs-MacBook-Pro octopus % cat 5-labelsyncer.sh
#!/bin/bash
source env_variables.sh
export KUBECONFIG=.kcp/admin.kubeconfig
for cluster_name in "${CLUSTER_NAMES[@]}"; do
kubectl label synctarget/"$cluster_name" name=st-"$cluster_name" --overwrite
done
pankajthorat@Pankajs-MacBook-Pro octopus % cat 6-ns-loc-pp.sh
#!/bin/bash
source env_variables.sh
export KUBECONFIG=.kcp/admin.kubeconfig
create namespaces
for cluster_name in "${CLUSTER_NAMES[@]}"; do
kubectl apply -f - <<EOF
apiVersion: v1
kind: Namespace
metadata:
name: ${cluster_name}
labels:
name: ${cluster_name}
EOF
done
create new locations
for cluster_name in "${CLUSTER_NAMES[@]}"; do
kubectl apply -f - <<EOF
apiVersion: scheduling.kcp.io/v1alpha1
kind: Location
metadata:
name: location-$cluster_name
labels:
name: location-$cluster_name
spec:
instanceSelector:
matchLabels:
name: st-$cluster_name
resource:
group: workload.kcp.io
resource: synctargets
version: v1alpha1
EOF
done
Delete the default location
kubectl delete location default
create placement policies
for cluster_name in "${CLUSTER_NAMES[@]}"; do
kubectl apply -f - <<EOF
apiVersion: scheduling.kcp.io/v1alpha1
kind: Placement
metadata:
name: pp-$cluster_name
spec:
locationResource:
group: workload.kcp.io
resource: synctargets
version: v1alpha1
locationSelectors:

matchLabels:
name: location-$cluster_name
namespaceSelector:
matchLabels:
name: $cluster_name
locationWorkspace: root:$WORKSPACE_NAME
#locationWorkspace: root
EOF
done

#kubectl kcp bind compute root
#kubectl kcp bind compute root:$WORKSPACE_NAME --apiexports=root:$WORKSPACE_NAME:kubernetes
#kubectl delete placements placement-1cgav5jo
pankajthorat@Pankajs-MacBook-Pro octopus % cat 7a-APIBINDING.sh
#!/bin/bash
#kubectl ws .
#kubectl kcp bind compute root:octopus --apiexports=root:octopus:kubernetes
export KUBECONFIG=.kcp/admin.kubeconfig
kubectl ws .
kubectl apply -f - <<EOF
apiVersion: apis.kcp.io/v1alpha1
kind: APIBinding
metadata:
name: bind-kube
spec:
reference:
export:
path: "root:compute"
name: kubernetes
EOF

@pankajskku as mentioned in the Slack chat, any chance to get a smaller replicable for this? Im just being realistic, as this would require somebody to recreate your setup on two different architectures with the code which is already removed from the main branch.
Or is there any change you can try looking yourself at the code and finding which part is responsible for deleting the resources and why?

/transfer-issue contrib-tmc

/transfer-issue contrib-tmc


Issue with ESM imports

Really loving all the new features! I have a node project that uses ESM modules and typescript with dynamodb-toolbox, and I made some changes to my backend stack that meant it went from being bundled to not. It seems like the bundler was covering up some ESM/CommonJS issues — if I don't make any modifications to dynamodb-toolbox's dist in node_modules, my project compiles but I get this error on every import at runtime:
import { Table } from 'dynamodb-toolbox/table';
         ^^^^^
SyntaxError: Named export 'Table' not found. The requested module 'dynamodb-toolbox/table' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from 'dynamodb-toolbox/table';
const { Table } = pkg;

    at ModuleJob._instantiate (node:internal/modules/esm/module_job:123:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:191:5)
    at async ModuleLoader.import (node:internal/modules/esm/loader:336:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:106:12)

I was able to verify that Node really was resolving the import to dist/esm/*.js files, the issue seems to be that it's still interpreting them as commonjs modules for some reason. Adding a package.json at dist/esm that sets the module type explicitly fixes this problem. But as soon as I add it, I run into a really small issue in dist/esm/table/actions/spy.js. One of its imports is missing a ".js" extension:
import { TableActionInspector } from './actionInspector';

I think this might be getting covered up for some people because if your environment manages to import dist/esm modules as commonjs (like ours used to), then the missing extension isn't an issue.
This could all definitely be an issue with my project config, not an expert at commonjs vs. esm at all. When I tried with a new, very simple one-file project and (afaik) a pretty standard/boring tsconfig and package.json I still got the issue though.

My bad, didn't notice that this is the same issue in https://github.com/dynamodb-toolbox/dynamodb-toolbox/issues/899.

My bad, didn't notice this is the same issue as https://github.com/dynamodb-toolbox/dynamodb-toolbox/issues/899. Will add a comment there instead


Backport 1-1: Update docs for new consensus settings

Updates documentation to include information about the new consensus
engine settings, sawtooth.consensus.algorithm.name and
sawtooth.consensus.algorithm.version, and remove erroneous
information.
Signed-off-by: danintel<EMAIL_ADDRESS>

Background notes
The nightly documentation was updated with the new consensus engine settings on 2018-10-10 with this push:
https://github.com/hyperledger/sawtooth-core/commit/6a1d3bf2653a3660ec4b016b75e94a789f89dbed#diff-cd6bf86169fbdf3de3325c36e1640deb
Some, but not all, of these changes were backported to the 1-1 latest docs with this push on 2019-10-23 with this push:
https://github.com/hyperledger/sawtooth-core/commit/f4649ccb3ba6bab4055be06334811912d2a8fd73#diff-65a6136e31afa8b3258bb88c56f6dd40
That is, these two files were updated:
docs/source/sysadmin_guide/creating_genesis_block.rst
docs/source/sysadmin_guide/setting_allowed_txns.rst
However, three files were not backported:
docs/source/app_developers_guide/creating_sawtooth_network.rst
docs/source/architecture/journal.rst
docs/source/sysadmin_guide/configure_sgx.rst
This PR completes the backport by updating these three missing files.

This PR was motivated by a plea on Rocket.Chat on 2019-03-08 that the documentation "simply doesn't work":

This PR was motivated by a plea on Rocket.Chat that the documentation "simply doesn't work":
Daniele 35 6:03 AM
Hello, I'm a newbie in sawtooth. I started with the basic example, with single validator node, experimenting with the "tuna" demo (for example) but now I would like to work with a "real" blockchain network or at least, let's say, a multi-node network to run with docker-compose on my laptop. I followed the instruction on the official site:
https://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/creating_sawtooth_network.html#about-the-sawtooth-network-environment
but there's a problem with the provided docker-compose yaml.... it simply doesn't work: you can start the network and see the nodes exchanging peers information and register one to each other, even exchanging a first block, but few seconds afterwards all nodes were disconnecting from the "validator-0" (with log messages like "Removed send_message function for connection..." for each node). So the network is not working (tried intkey processor for example).
Any Idea about the reason? The docker-compose yaml I used is the official one:
https://sawtooth.hyperledger.org/docs/core/releases/latest/app_developers_guide/sawtooth-default-poet.yaml
Does anyone have a working example of a real multi-node network with PoET consensus? I couldn't find anything...

Please review. It's a backport of missing documentation corrections.


Error: Cannot find module

Current Behavior

Steps to Reproduce (for bugs)

npm install iohook --save and npm install<EMAIL_ADDRESS>--save
Create main.js:

const { BrowserWindow, app } = require('electron')
const iohook = require('iohook')

app.on('ready', () => {
	mainWindow = new BrowserWindow();
});

Configure package.json:

"scripts": {
    "start": "electron ."
  }

Run  npm start

Your Environment

Version used: 0.2.3
Environment name and version (e.g. Chrome 39, node.js 5.4): Node 8.12.0
Electron version: 2.13.0
Operating System and version (desktop or mobile): Windows 7

Hello ! Did you add the "iohook" key in your package.json ?

Be sure to follow the doc, you are missing an important part of the
configuration ;)
--
Julien
Le jeu. 1 nov. 2018 à 21:26, Kraysh<EMAIL_ADDRESS>a écrit :

My package.json
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "electron ."
},
"author": "",
"license": "ISC",
"dependencies": {
"electron": "^2.0.13",
"iohook": "^0.2.3"
}
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/WilixLead/iohook/issues/117#issuecomment-435175140,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHZtDVI_7UsYA1uojf3c3U2fL5qUjanks5uq1jhgaJpZM4YI4G8
.

Oh, now working fine, but I made that mistake because in this link: https://github.com/WilixLead/iohook/tree/master/examples/electron-example
Does not say anything about it.
Thank you anyway

Good to know, we will update this example ! Thanks !
--
Julien
Le jeu. 1 nov. 2018 à 22:40, Kraysh<EMAIL_ADDRESS>a écrit :

Oh, now working fine, but I made that mistake because in this link:
https://github.com/WilixLead/iohook/tree/master/examples/electron-example
http://url
Does not say anything about it.
Thank you anyway
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/WilixLead/iohook/issues/117#issuecomment-435196780,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABHZtGtjzn3cODNPVD_GmHVPZ2KAel8Dks5uq2pHgaJpZM4YI4G8
.


Trade XP stop levelling up

No XP gained when making a profitable trade.

AFAIK this is because the game does not save what price you bought items at. If you sell something profitable during the same game as you bought it, you should gain XP as normal. If you load a game the buying price of items bought will not be present, and no XP will be added.

Yep, it's pretty annoying. Can't level trade at any reasonably rate.

There is a fix for this: https://www.nexusmods.com/mountandblade2bannerlord/mods/747

For me it doesn't fix it's problem. 1.2 Beta branch.

Is this something we need to address too?

@Tyler-IN I'm not sure, but they fixed it in 1.4 Beta
Need to re-read the patch notes for 1.3 stable release and 1.4 Beta


oracle unicode characters

Hello,
I noticed some different issues with the handling of special characters with oracle.
First of all using utf8 chars in query leads to errors like ''ascii' codec can't encode character '\u2013' in position 42: ordinal not in range(128)' During select there is just a '?' displayed.
There is a similar issue for characters like 'â' that are displayed as plain 'a' (using within query yields a similar error to the above case).
All the best
pgaro

Hello, how is going this bug ? I recently installed the latest Omnidb and still this error and in Oracle when i query a table with accents, the table shows bad characters.
Very thanks and keep up the good work !!!


Filter using array indices

Looks like a duplicate of #466 to me, but with a simpler minimal (not) working example.
I want to filter arrays depending on some of their array elements at given positions.
JSON:
{
	"foo": ["a", "b", "c"],
	"bar": ["x", "y", "z"]
}

I'm interested in those elements with 'b' as the second entry of the array. But this JSONPath returns no result:
$..[?(@[1]=='b')]

If I modify the json such that it's an object with the elements indices as key, it works:
JSON:
{
	"foo": {
		"0": "a",
		"1": "b",
		"2": "c"
	},
	"bar": {
		"0": "x",
		"1": "y",
		"2": "z"
	}
}

JSONPath
$..[?(@['1']=='b')]

returns
[
   "$['foo']"
]

as excepted.
Why isn't the first approch working? Is there a better workaround, than rewriting all arrays as objects?
By the way: You can try both versions in the online test environment. If you switch to the Goessner implementation, the first one works, as opposed to the jayway implementation.

Limited workaround: Check all object keys one after another:
$.[?(@.foo[1]=='b')].foo

=> result as expected
$.[?(@.bar[1]=='b')].bar

=> no path found, as expected.