Missing background steps in the in the scenarios

I use the command:
behavex -t @tag --parallel-processes 4 --parallel-scheme scenario -D market=DK --output-folder reports/DK
and in HTML or JSON response, I can't find the background steps.

Hi @TomaszKarski, you can see the background steps in HTML report, by clicking on the "(show background)" link inside each feature, in scenarios header:

I hope it helps :)


Loader API

This PR refactores the loader API in order to make it more straightforward and stable. The goal is to start building on these loaders to facilitate "group" of assets to be loaded as one.
A group constitutes a number of individual representations from the same or external assets with some relationship to each other. Such as a model, shaders and rig.
This makes the current level assets "bare" or "low level" in comparison and enabled a rich interface towards integrating various low level assets with each other, such as automatically connecting shaders to meshes, meshes and published curves to the controllers to a rig.
Here's the current "recipe" of a group.
{
    "members": {
        "geometry": [
            "hero:modelDefault.ma",
            "hero:modelLow.ma",
            "hero:rigDefault.ma",
            "shot1:hero01.curves",
            "shot1:hero01.abc"
        ],
        "shader": [
            "hero:lookdevDefault.ma",
            "hero:lookdevAnimation.ma"
        ]
    },
    "presets": {
        "animation": {
            "geometry": "shot1:hero01.curves",
            "shader": "hero:lookdevAnimation.ma"
        },
        "rendering": {
            "geometry": "shot1:hero01.abc",
            "shader": "hero:lookdevDefault.ma"
        },
        "layout": {
            "geometry": "hero:rigDefault.ma",
            "shader": "hero:lookdevAnimation.ma"
        }
    }
}

Where the group maintains a record of all interchangeable assets within a given "category" such as "geometry". A pre-defined combination of assets are separately maintained in a "preset" or "configuration" used to determine in which way an a group is to be loaded.
For example, during shot building, it's important to distinguish a build in lighting from a build in animation. Animators want the latest rigs, lighters want the latest caches.
The asset, subset and representation is included in the definition, but the version number is purposefully left out. The idea is to deduce version numbers from either latest or approved tags.

See #130 (Shot Building) for motivation.

Coverage increased (+0.9%) to 37.353% when pulling aa08828e81782e9b04608f57efc231b342d3f480 on mottosso:loaderAPI into ff028fda33d40b9b4252183b3ce0910cdc234caa on mindbender-studio:master.

Coverage increased (+0.9%) to 37.301% when pulling 3222ffbfc291d4c074f36280d34e100bce6b721e on mottosso:loaderAPI into ff028fda33d40b9b4252183b3ce0910cdc234caa on mindbender-studio:master.

Loader API
The API has changed from..
class ModelLoader(api.Loader):
    def process(self, project, asset, subset, version, representation):
       # Load file into host

To this..
class GroupLoader(api.Loader):
    families = ["mindbender.group"]
    representations = ["group"]

    def process(self, name, namespace, context):
       # Load self.fname into host

Where families is matched against the asset being loaded, such as mindbender.model, and representations are matched against the representation, such as .abc or .group or .gpucache.
name and namespace were previously generated within the loader itself, but are now passed in from the API load() function, that way each loader can strictly generate data - such as Maya nodes - that is later post-processed together, such as being put into a container; something previously done individually in each loader.
self.fname is the filename on disk, based on the current root and asset passed into it. This was previously managed in each Loader, but is now unified into the __init__ of the Loader superclass.

Related #165

Another important change is that this PR also unifies the name and namespace used by the loaders.
This is a BACKWARDS INCOMPATIBLE change
Before, each Loader was responsible for creating their own name and namespace, which resulted in mindbender.model getting a unique namespace based on the asset, and name based on subset whereas mindbender.animation got a common name and namespace based on subset.
Now names are identical across families.
name = name or subset["name"]
namespace = namespace or lib.unique_namespace(asset["name"] + "_")

Where name and namespace is overridden in case an asset is loaded into the same namespace as another, which is the case when e.g. a rig automatically creates an animation instance for animators.
Existing scenes will operate normally, but newly loaded assets will be given this new name.

Next up, #157 followed by #165.


American Express scanned but Done Button not working

After i scan the amreican express card succesfully, and input all the information,Done Button cannot be clicked.
Other card type works fine.
And in all situation, the Cancel Button works fine.

I've seen this with chase sapphire preferred cards, too.


Fix error creating pipeline server when data connection endpoint omits scheme

Closes: #1350
Depends on https://github.com/opendatahub-io/odh-dashboard/pull/1773 for unit tests.
Description

When creating a data connect whose endpoint does not include a scheme in the URL, creating of a pipeline server will fail with a javascript error attempting to access a property of an undefined value. This is because the regex used to parse the data connection endpoint URL assumed a scheme would always be present.
This change does not affect the UI / UX.
How Has This Been Tested?

Create a data connection
set the endpoint to s3.amazonaws.com
Create a pipeline server
Select pre-existing data connection
Click Configure button

Test Impact

Added unit test.
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

Can you rebase this PR? There is a commit from another PR.

@DaoDaoNoCode rebased. The other commit was a dependency on the relocation of unit tests that got merged.

/approve


bounces me away!

There is a flying bug on quest. I touch the ground gently with my hand, but it bounces me away!

Same!

Do you have a solution, please let me know

Maybe. Try to:

Change the XRRig to XROrigin ( https://www.youtube.com/watch?v=-laibFC6Els&ab_channel=CodeSwarmer )
After you did that, set Tracking Options (I dont really remember how its called, just look up the setting: ) from Not Specified to Device.

I didnt try that yet, but this may help

Okay, I'll start trying now. If I can solve the problem, I'll let you know

I just tried and.. it seems to be working! Using Unity 2021 though.

Are you using a URP project? I've heard there might be issues related with that.

Oh yeah, I do. Yes, URP somehow breaks it, downgrading to lower Unity versions wont help too. For example 2020 gives an infinite loading.

I have no clue what is going on and why URP breaks it. Application works fine when testing on PC with linked Quest, but experiences the bouncing issue on Quest standalone. I have tried switching the XROrigin mode to device tracking origin mode but it does not have an impact. If I find a fix for this issue while using URP I will post here.

Okay

It seems that frame rate jitter can cause this bug, so I can solve it by placing update in fixed updateBut with fixed update, the operation may not be as immediate as feedback

Try it out

I tried moving the locomotion code to fixed update which fixed the random bouncing problem, but introduced an insane amount of jittering. Luckily I was able to find a simple solution.
SOLUTION: Keep the locomotion code running in the update loop, but instead of using Time.deltaTime use a constant delta time (to fix bouncing). I have had good results with using 1 / 72 which is 1 / (my applications target frame rate).

@jacksouthard good luck

I am having the same problem, does anyone have a solution for this? @jacksouthard's solution didnt work for me unfortunately.

我遇到了同样的问题，有人有解决方案吗？不幸的是，解决方案对我不起作用。

put the StoreVelocities() to fixedupdate(),or
denormalizedVelocityAverage = Vector3.zero;
for (int i = 0; i < velocityHistory.Length; i++)
{
denormalizedVelocityAverage += velocityHistory[i];
}
denormalizedVelocityAverage /= (float)velocityHistorySize;

Thank you @L0tussss5 for your fast response but neither of your solutions did work for us in Oculus Quest 2 :/ do you have any other suggestions?

impossible，Send me your changes

I would love to, thank you for your helps. Here is my code, first I tried to move StoreVelocities() method call from Update() to FixedUpdate(), this didn't solve my random bounces, then I moved it back to Update and changed my StoreVelocities() method as you described, random bounces still happening.
`
public class Player : MonoBehaviour
{
    private static Player _instance;

    public static Player Instance { get { return _instance; } }

    public SphereCollider headCollider;
    public CapsuleCollider bodyCollider;

    public Transform leftHandFollower;
    public Transform rightHandFollower;

    public Transform rightHandTransform;
    public Transform leftHandTransform;

    private Vector3 lastLeftHandPosition;
    private Vector3 lastRightHandPosition;
    private Vector3 lastHeadPosition;

    private Rigidbody playerRigidBody;

    public int velocityHistorySize;
    public float maxArmLength = 1.5f;
    public float unStickDistance = 1f;

    public float velocityLimit;
    public float maxJumpSpeed;
    public float jumpMultiplier;
    public float minimumRaycastDistance = 0.05f;
    public float defaultSlideFactor = 0.03f;
    public float defaultPrecision = 0.995f;

    private Vector3[] velocityHistory;
    private int velocityIndex;
    private Vector3 currentVelocity;
    private Vector3 denormalizedVelocityAverage;
    private bool jumpHandIsLeft;
    private Vector3 lastPosition;

    public Vector3 rightHandOffset;
    public Vector3 leftHandOffset;

    public LayerMask locomotionEnabledLayers;

    public bool wasLeftHandTouching;
    public bool wasRightHandTouching;

    public bool disableMovement = false;

    private void Awake()
    {
        if (_instance != null && _instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            _instance = this;
        }
        InitializeValues();
    }

    public void InitializeValues()
    {
        playerRigidBody = GetComponent<Rigidbody>();
        velocityHistory = new Vector3[velocityHistorySize];
        lastLeftHandPosition = leftHandFollower.transform.position;
        lastRightHandPosition = rightHandFollower.transform.position;
        lastHeadPosition = headCollider.transform.position;
        velocityIndex = 0;
        lastPosition = transform.position;
    }

    private Vector3 CurrentLeftHandPosition()
    {
        if ((PositionWithOffset(leftHandTransform, leftHandOffset) - headCollider.transform.position).magnitude < maxArmLength)
        {
            return PositionWithOffset(leftHandTransform, leftHandOffset);
        }
        else
        {
            return headCollider.transform.position + (PositionWithOffset(leftHandTransform, leftHandOffset) - headCollider.transform.position).normalized * maxArmLength;
        }
    }

    private Vector3 CurrentRightHandPosition()
    {
        if ((PositionWithOffset(rightHandTransform, rightHandOffset) - headCollider.transform.position).magnitude < maxArmLength)
        {
            return PositionWithOffset(rightHandTransform, rightHandOffset);
        }
        else
        {
            return headCollider.transform.position + (PositionWithOffset(rightHandTransform, rightHandOffset) - headCollider.transform.position).normalized * maxArmLength;
        }
    }

    private Vector3 PositionWithOffset(Transform transformToModify, Vector3 offsetVector)
    {
        return transformToModify.position + transformToModify.rotation * offsetVector;
    }

    // private void FixedUpdate()
    // {
    //     StoreVelocities();
    // }

    private void Update()
    {
        bool leftHandColliding = false;
        bool rightHandColliding = false;
        Vector3 finalPosition;
        Vector3 rigidBodyMovement = Vector3.zero;
        Vector3 firstIterationLeftHand = Vector3.zero;
        Vector3 firstIterationRightHand = Vector3.zero;
        RaycastHit hitInfo;

        bodyCollider.transform.eulerAngles = new Vector3(0, headCollider.transform.eulerAngles.y, 0);

        //left hand

        Vector3 distanceTraveled = CurrentLeftHandPosition() - lastLeftHandPosition + Vector3.down * 2f * 9.8f * Time.deltaTime * Time.deltaTime;

        if (IterativeCollisionSphereCast(lastLeftHandPosition, minimumRaycastDistance, distanceTraveled, defaultPrecision, out finalPosition, true))
        {
            //this lets you stick to the position you touch, as long as you keep touching the surface this will be the zero point for that hand
            if (wasLeftHandTouching)
            {
                firstIterationLeftHand = lastLeftHandPosition - CurrentLeftHandPosition();
            }
            else
            {
                firstIterationLeftHand = finalPosition - CurrentLeftHandPosition();
            }
            playerRigidBody.velocity = Vector3.zero;

            leftHandColliding = true;
        }

        //right hand

        distanceTraveled = CurrentRightHandPosition() - lastRightHandPosition + Vector3.down * 2f * 9.8f * Time.deltaTime * Time.deltaTime;

        if (IterativeCollisionSphereCast(lastRightHandPosition, minimumRaycastDistance, distanceTraveled, defaultPrecision, out finalPosition, true))
        {
            if (wasRightHandTouching)
            {
                firstIterationRightHand = lastRightHandPosition - CurrentRightHandPosition();
            }
            else
            {
                firstIterationRightHand = finalPosition - CurrentRightHandPosition();
            }

            playerRigidBody.velocity = Vector3.zero;

            rightHandColliding = true;
        }

        //average or add

        if ((leftHandColliding || wasLeftHandTouching) && (rightHandColliding || wasRightHandTouching))
        {
            //this lets you grab stuff with both hands at the same time
            rigidBodyMovement = (firstIterationLeftHand + firstIterationRightHand) / 2;
        }
        else
        {
            rigidBodyMovement = firstIterationLeftHand + firstIterationRightHand;
        }

        //check valid head movement

        if (IterativeCollisionSphereCast(lastHeadPosition,
                headCollider.radius,
                headCollider.transform.position + rigidBodyMovement - lastHeadPosition,
                defaultPrecision,
                out finalPosition,
                false))
        {
            rigidBodyMovement = finalPosition - lastHeadPosition;
            //last check to make sure the head won't phase through geometry
            if (Physics.Raycast(lastHeadPosition, headCollider.transform.position - lastHeadPosition + rigidBodyMovement, out hitInfo, (headCollider.transform.position - lastHeadPosition + rigidBodyMovement).magnitude + headCollider.radius * defaultPrecision * 0.999f, locomotionEnabledLayers.value))
            {
                rigidBodyMovement = lastHeadPosition - headCollider.transform.position;
            }
        }

        if (rigidBodyMovement != Vector3.zero)
        {
            transform.position += rigidBodyMovement;
        }

        lastHeadPosition = headCollider.transform.position;

        //do final left hand position

        distanceTraveled = CurrentLeftHandPosition() - lastLeftHandPosition;

        if (IterativeCollisionSphereCast(lastLeftHandPosition,
                minimumRaycastDistance,
                distanceTraveled,
                defaultPrecision,
                out finalPosition,
                !((leftHandColliding || wasLeftHandTouching) && (rightHandColliding || wasRightHandTouching))))
        {
            lastLeftHandPosition = finalPosition;
            leftHandColliding = true;
        }
        else
        {
            lastLeftHandPosition = CurrentLeftHandPosition();
        }

        //do final right hand position

        distanceTraveled = CurrentRightHandPosition() - lastRightHandPosition;

        if (IterativeCollisionSphereCast(lastRightHandPosition,
                minimumRaycastDistance,
                distanceTraveled,
                defaultPrecision,
                out finalPosition,
                !((leftHandColliding || wasLeftHandTouching) && (rightHandColliding || wasRightHandTouching))))
        {
            lastRightHandPosition = finalPosition;
            rightHandColliding = true;
        }
        else
        {
            lastRightHandPosition = CurrentRightHandPosition();
        }

        StoreVelocities();

        if ((rightHandColliding || leftHandColliding) && !disableMovement)
        {
            if (denormalizedVelocityAverage.magnitude > velocityLimit)
            {
                if (denormalizedVelocityAverage.magnitude * jumpMultiplier > maxJumpSpeed)
                {
                    playerRigidBody.velocity = denormalizedVelocityAverage.normalized * maxJumpSpeed;
                }
                else
                {
                    playerRigidBody.velocity = denormalizedVelocityAverage * jumpMultiplier;
                }
            }
        }

        //check to see if left hand is stuck and we should unstick it

        if (leftHandColliding && (CurrentLeftHandPosition() - lastLeftHandPosition).magnitude > unStickDistance
                              && !Physics.SphereCast(headCollider.transform.position, minimumRaycastDistance * defaultPrecision,
                                  CurrentLeftHandPosition() - headCollider.transform.position, out hitInfo,
                                  (CurrentLeftHandPosition() - headCollider.transform.position).magnitude - minimumRaycastDistance, locomotionEnabledLayers.value))
        {
            lastLeftHandPosition = CurrentLeftHandPosition();
            leftHandColliding = false;
        }

        //check to see if right hand is stuck and we should unstick it

        if (rightHandColliding && (CurrentRightHandPosition() - lastRightHandPosition).magnitude > unStickDistance
                               && !Physics.SphereCast(headCollider.transform.position, minimumRaycastDistance * defaultPrecision,
                                   CurrentRightHandPosition() - headCollider.transform.position, out hitInfo,
                                   (CurrentRightHandPosition() - headCollider.transform.position).magnitude - minimumRaycastDistance, locomotionEnabledLayers.value))
        {
            lastRightHandPosition = CurrentRightHandPosition();
            rightHandColliding = false;
        }

        leftHandFollower.position = lastLeftHandPosition;
        rightHandFollower.position = lastRightHandPosition;

        wasLeftHandTouching = leftHandColliding;
        wasRightHandTouching = rightHandColliding;
    }

    private bool IterativeCollisionSphereCast(Vector3 startPosition, float sphereRadius, Vector3 movementVector, float precision, out Vector3 endPosition, bool singleHand)
    {
        RaycastHit hitInfo;
        Vector3 movementToProjectedAboveCollisionPlane;
        Surface gorillaSurface;
        float slipPercentage;
        //first spherecast from the starting position to the final position
        if (CollisionsSphereCast(startPosition, sphereRadius * precision, movementVector, precision, out endPosition, out hitInfo))
        {
            //if we hit a surface, do a bit of a slide. this makes it so if you grab with two hands you don't stick 100%, and if you're pushing along a surface while braced with your head, your hand will slide a bit

            //take the surface normal that we hit, then along that plane, do a spherecast to a position a small distance away to account for moving perpendicular to that surface
            Vector3 firstPosition = endPosition;
            gorillaSurface = hitInfo.collider.GetComponent<Surface>();
            slipPercentage = gorillaSurface != null ? gorillaSurface.slipPercentage : (!singleHand ? defaultSlideFactor : 0.001f);
            movementToProjectedAboveCollisionPlane = Vector3.ProjectOnPlane(startPosition + movementVector - firstPosition, hitInfo.normal) * slipPercentage;
            if (CollisionsSphereCast(endPosition, sphereRadius, movementToProjectedAboveCollisionPlane, precision * precision, out endPosition, out hitInfo))
            {
                //if we hit trying to move perpendicularly, stop there and our end position is the final spot we hit
                return true;
            }
            //if not, try to move closer towards the true point to account for the fact that the movement along the normal of the hit could have moved you away from the surface
            else if (CollisionsSphereCast(movementToProjectedAboveCollisionPlane + firstPosition, sphereRadius, startPosition + movementVector - (movementToProjectedAboveCollisionPlane + firstPosition), precision * precision * precision, out endPosition, out hitInfo))
            {
                //if we hit, then return the spot we hit
                return true;
            }
            else
            {
                //this shouldn't really happe, since this means that the sliding motion got you around some corner or something and let you get to your final point. back off because something strange happened, so just don't do the slide
                endPosition = firstPosition;
                return true;
            }
        }
        //as kind of a sanity check, try a smaller spherecast. this accounts for times when the original spherecast was already touching a surface so it didn't trigger correctly
        else if (CollisionsSphereCast(startPosition, sphereRadius * precision * 0.66f, movementVector.normalized * (movementVector.magnitude + sphereRadius * precision * 0.34f), precision * 0.66f, out endPosition, out hitInfo))
        {
            endPosition = startPosition;
            return true;
        } else
        {
            endPosition = Vector3.zero;
            return false;
        }
    }

    private bool CollisionsSphereCast(Vector3 startPosition, float sphereRadius, Vector3 movementVector, float precision, out Vector3 finalPosition, out RaycastHit hitInfo)
    {
        //kind of like a souped up spherecast. includes checks to make sure that the sphere we're using, if it touches a surface, is pushed away the correct distance (the original sphereradius distance). since you might
        //be pushing into sharp corners, this might not always be valid, so that's what the extra checks are for

        //initial spherecase
        RaycastHit innerHit;
        if (Physics.SphereCast(startPosition, sphereRadius * precision, movementVector, out hitInfo, movementVector.magnitude + sphereRadius * (1 - precision), locomotionEnabledLayers.value))
        {
            //if we hit, we're trying to move to a position a sphereradius distance from the normal
            finalPosition = hitInfo.point + hitInfo.normal * sphereRadius;

            //check a spherecase from the original position to the intended final position
            if (Physics.SphereCast(startPosition, sphereRadius * precision * precision, finalPosition - startPosition, out innerHit, (finalPosition - startPosition).magnitude + sphereRadius * (1 - precision * precision), locomotionEnabledLayers.value))
            {
                finalPosition = startPosition + (finalPosition - startPosition).normalized * Mathf.Max(0, hitInfo.distance - sphereRadius * (1f - precision * precision));
                hitInfo = innerHit;
            }
            //bonus raycast check to make sure that something odd didn't happen with the spherecast. helps prevent clipping through geometry
            else if (Physics.Raycast(startPosition, finalPosition - startPosition, out innerHit, (finalPosition - startPosition).magnitude + sphereRadius * precision * precision * 0.999f, locomotionEnabledLayers.value))
            {
                finalPosition = startPosition;
                hitInfo = innerHit;
                return true;
            }
            return true;
        }
        //anti-clipping through geometry check
        else if (Physics.Raycast(startPosition, movementVector, out hitInfo, movementVector.magnitude + sphereRadius * precision * 0.999f, locomotionEnabledLayers.value))
        {
            finalPosition = startPosition;
            return true;
        }
        else
        {
            finalPosition = Vector3.zero;
            return false;
        }
    }

    public bool IsHandTouching(bool forLeftHand)
    {
        if (forLeftHand)
        {
            return wasLeftHandTouching;
        }
        else
        {
            return wasRightHandTouching;
        }
    }

    public void Turn(float degrees)
    {
        transform.RotateAround(headCollider.transform.position, transform.up, degrees);
        denormalizedVelocityAverage = Quaternion.Euler(0, degrees, 0) * denormalizedVelocityAverage;
        for (int i = 0; i < velocityHistory.Length; i++)
        {
            velocityHistory[i] = Quaternion.Euler(0, degrees, 0) * velocityHistory[i];
        }
    }

    private void StoreVelocities()
    {
        // velocityIndex = (velocityIndex + 1) % velocityHistorySize;
        // Vector3 oldestVelocity = velocityHistory[velocityIndex];
        // currentVelocity = (transform.position - lastPosition) / Time.deltaTime;
        // denormalizedVelocityAverage += (currentVelocity - oldestVelocity) / (float)velocityHistorySize;
        // velocityHistory[velocityIndex] = currentVelocity;
        // lastPosition = transform.position;

        velocityIndex = (velocityIndex + 1) % velocityHistorySize;
        Vector3 oldestVelocity = velocityHistory[velocityIndex];
        currentVelocity = (transform.position - lastPosition) / Time.deltaTime;
        denormalizedVelocityAverage = Vector3.zero;
        for (int i = 0; i < velocityHistory.Length; i++)
        {
            denormalizedVelocityAverage += velocityHistory[i];
        }
        denormalizedVelocityAverage /= (float)velocityHistorySize;
        //denormalizedVelocityAverage += (currentVelocity - oldestVelocity) / (float)velocityHistorySize;
        velocityHistory[velocityIndex] = currentVelocity;
        lastPosition = transform.position;
    }
}

`

@OguzcanMonkeyArchivist
try put StoreVelocities() to fixedupdate,Pay attention to canceling the call to update.
If it still doesn't work, put all the update logic in fixed update

Has anyone made a working script?

I couldn't get a perfect solution with this and at the end, implement Justin's version instead of this one. https://www.youtube.com/watch?v=5D2bN7xL5us&t=513s&ab_channel=JustinPBarnett

@L0tussss5 @OguzcanMonkeyArchivist If one of you guys got the working script can you send it to me?


Header image dimensions

What are the recommended image dimensions for the header/hero banner?

There are  no hard-fast sizes. Something between 1280-1600px wide is a good balance for quality/file size as the same image will be used on mobile and desktop unless you implement some sort of responsive image solution.
Height is up to you and how much of the page you want it to occupy. Here's an example of an image orientated in landscape and another as portrait.


react-router does not update if parent component skips render

Use case: I don't want my components to update willy-nilly, so I use something like React.addons.PureRenderMixin to avoid unnecessary re-renders.
But neither Link nor RouteHandler does anything to trigger a render when their depending state (such as the current route) changes, so nothing actually updates.
The attached code showcases this. Clicking any of the links should change their state and show the appropriate page, but nothing is updated. Either removing the mixin in App or refreshing the browser puts the views in the appropriate state.
javascript
var React = require('react/addons')
var { Link, Route, RouteHandler, ...Router } = require('react-router')

var PageLink = React.createClass({
  render: function() {
    var styles = {color: 'yellow',}
    var activeStyles = {color: 'red'}
    return <Link {...this.props} style={styles} activeStyle={activeStyles} />
  }
})

var App = React.createClass({
  mixins: [React.addons.PureRenderMixin],
  render: function() {
    return

        <PageLink to="page1">First page</PageLink>
        <PageLink to="page2">Second page</PageLink>

      <RouteHandler/>

  },
})

var Page1 = React.createClass({
  render: function() {
    return
First page

  }
})

var Page2 = React.createClass({
  render: function() {
    return
Second page

  }
})

var routes = <Route handler={App}>
  <Route name="page1" handler={Page1}/>
  <Route name="page2" handler={Page2}/>
</Route>

Router.run(routes, Handler => React.render(<Handler/>, document.body))

html
<!doctype html>

To run the example, have webpack or browserify make the javascript into a bundle.js and put it next to the html-file. The only dependencies are react 0.12.2, react-router 0.12.4 and the harmony-enabled JSX transformer.

This seems to be https://github.com/rackt/react-router/issues/470 (also #866 later).
The underlying issue is React's: https://github.com/facebook/react/issues/2517. You can +1 it!

Closing as a duplicate of #470.


update to use non deprecated pluginlib macro

These macros, deprecated for now 8 years, will be removed in the next ROS release (ROS Melodic)
This change will allow the code to keep compiling on future ROS versions
Note: When replacing the macros I noticed you had your own SWRI_NODELET_EXPORT_CLASS macro so I modified all nodelets to use it

Thanks again!


Java binding build error

error info:

I don't understand why the method name is a keyword

Can you provide your Java version and Rust version?

你能提供你的 Java 版本和 Rust 版本吗？

jdk1.8
rustc 1.52.1 (9bc8c42bb 2021-05-09)

你能提供你的 Java 版本和 Rust 版本吗？

hi, @rajivshah3 any progress?

@1106035348 This repository is for wallet.rs, but your issue is for iota.rs.
I have already fixed this in iota.rs if you pull again it should be gone!


Potential Typo in Patch Zip or Patch File Naming

Issue in ./help/troubleshooting/known-issues-patches-attached/security-update-available-for-adobe-commerce-apsb24-73.md
The link to the Zip file in the documentation reads "vuln-26510-composer-patch.zip" but when it's downloaded and unzipped, the file name is actually vuln-25610-composer.patch.

Hi Emily,
Thank you for this and apologies for the delay. We have created a ticket for this which will be assigned at intake. Please note that we may need to copy the PR internally before we work on it.


feat(support-notifications): use notification content type

Use ContentType defined on notification on HTTP header for HTTP channel
and MIME header for SMTP channel.  Also add chunking with newlines for
long SMTP messages.
Signed-off-by: Alex Ullrich<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit subject follows the Conventional Commits spec
[x] The commit message follows the EdgeX Contributor Guide
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[x] make test has completed successfully

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[x] Other... Please describe:

Not sure if a bug per se but current implementation disregards the content type set on the notification, and also runs into problems sending long SMTP messages
What is the current behavior?

Issue Number: #2682
What is the new behavior?
Includes content type specified on the notification in the HTTP header for REST transmission, and in the MIME header for SMTP transmission.  Also introduces chunking of SMTP payloads for messages longer than 1000 characters.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Are there any new imports or modules? If so, what are they used for and why?
No
Are there any specific instructions or things that should be known prior to reviewing?
I mentioned ability to specify character set and general sending service refactoring in the linked issue but not addressing at this time.  Not going to pursue 'smarter' chunking using bytes.Runes until I find a failure case with the current implementation - not sure if this will come with expanding charset support or not.
Other information

I just looked through the docs and the diagrams already mention content type and defaulting to text/plain, I am not sure there is anything to do there.
https://docs.edgexfoundry.org/1.2/microservices/support/notifications/Ch-AlertsNotifications/

Build failure appears to be when trying to build Kong.  Don't think it is related to my change but please let me know if I missed something.

@AlexCuse , code looks good. Please tweak your commit message to follow our new Conventional Commit guidelines here:
https://wiki.edgexfoundry.org/display/FA/Committing+Code+Guidelines#CommittingCodeGuidelines-ConventionalCommits
Specifically. The issue number should be in the body as closes #2699 and I feel the title should include something like  and long line splitting. We are hoping to start using a tool that creates the release notes from these commit messages. THX!

@lenny-intel should be good now thanks.  I wanted to include the line splitting in title but worried it'd be too long.  I rebased the branch again too just in case.


Setting up https nodes.url could not dial ws client resulting in bad handshake

022/08/15 14:20:29 tenderduty |  ⚙ auravaloper1h2ney6qy ... is using consensus key: auravalcons1dnjfhr2vj74fd9vxray3wtvhgjc454sz7dlktw
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://aura-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  euphoria-1 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ⚙ found torivaloper1ykeu0kv4zuz9v74l34c9ca7k2mdpmh5yycr3eh (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ torivaloper1ykeu0kv4 ... is using consensus key: torivalcons1cqry0nd6ayly2adm05p6r3w9a3ktmd5rghqrz8
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://teritori-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  teritori-testnet-v2 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ⚙ found rebusvaloper19y5d84d033f5vcnvcyxzw4zc9chlatkkcnesg9 (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ rebusvaloper19y5d84d ... is using consensus key: rebusvalcons1pckg8f85m86y4j4902n2ucwpdpeu37xlasmdgw
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://rebus-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  reb_3333-1 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ⚙ found palomavaloper13uslh0y22ffnndyr3x30wqd8a6peqh25m8p743 (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ palomavaloper13uslh0 ... is using consensus key: palomavalcons1j5v34hyr9qekezc4cpq0zvmftg568lcymedtw2
2022/08/15 14:20:29 tenderduty |  ⚙ found celestiavaloper13y5d6t28kumgmsr6jhmtj0s8p08yqvel70gyyp (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ celestiavaloper13y5d ... is using consensus key: celestiavalcons14ewk8w79karwka070j8nua27efdgr6l72p6ked
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://paloma-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  paloma-testnet-6 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://celestia-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  mamaki 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ⚙ found dewebvaloper190y0pl94cy3xec3dp7d6h6yy5uagm4t5qthddp (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ dewebvaloper190y0pl9 ... is using consensus key: dewebvalcons1fu45f0wgr5ksrapwqkrgh02y8fpc0mmcwc04pu
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://dws-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  deweb-testnet-1 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ⚙ found ccvaloper1ehad6hausea0qc8t3amxlpqs5rx2c05z4mhnvm (kjnodes) in validator set
2022/08/15 14:20:29 tenderduty |  ⚙ ccvaloper1ehad6hause ... is using consensus key: ccvalcons1ejdqpps56hg87fl8584vrm397ss05q9qexh3a2
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://cardchain-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  Cardchain 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  ❌ seivaloper1828et4w3u52na4h8m3mp8r22vjylxeaa5d36ca (kjnodes) is INACTIVE
2022/08/15 14:20:29 tenderduty |  ⚙ seivaloper1828et4w3u ... is using consensus key: seivalcons1hssfezdle4ajj5e5g0z7g7qejftp24gzla0fe5
2022/08/15 14:20:29 tenderduty |  could not dial ws client to wss://sei-testnet.rpc.kjnodes.com:443/websocket: websocket: bad handshake
2022/08/15 14:20:29 tenderduty |  atlantic-1 🌀 websocket exited! Restarting monitoring
2022/08/15 14:20:29 tenderduty |  🟢 Stride       node https://stride-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Aura         node https://aura-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Teritori     node https://teritori-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Deweb        node https://dws-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Celestia     node https://celestia-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Rebus        node https://rebus-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Sei          node https://sei-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Paloma       node https://paloma-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Uptick       node https://uptick-testnet.rpc.kjnodes.com:443 is healthy
2022/08/15 14:20:29 tenderduty |  🟢 Cardchain    node https://cardchain-testnet.rpc.kjnodes.com:443 is healthy

same here
2022/08/15 17:56:14 tenderduty |  🟢 GenesisL1    node https://26657.genesisl1.org:443 is healthy
2022/08/15 17:56:17 tenderduty |  ⚙ found genesisvaloper1wwxpj2wxnd63h597pwtzmxavyzmrr2kxt7aasj (CryptmasGhost) in validator set
2022/08/15 17:56:17 tenderduty |  ⚙ genesisvaloper1wwxpj ... is using consensus key: genesisvalcons1ms8melhj0pkdvxq3f7jz7g206uuac726rmkl2w
2022/08/15 17:56:17 tenderduty |  could not dial ws client to wss://26657.genesisl1.org:443/websocket: websocket: bad handshake
2022/08/15 17:56:17 tenderduty |  genesis_29-2 🌀 websocket exited! Restarting monitoring


Run history succeeded, but nothing within Teams

I noticed over the last 2 monthly runs that the Logic App run successfully, but does not notify within Microsoft Teams.
Recurrence shows once per month with the HTTP status being 200. If there are specific logs to look at , that would give me a good start to troubleshoot and provide more details when done diagnosing.
See attached for a couple related items.
icebreaker issue 3-1-2022.docx

Hi @bneal1987,
Thank you for raising the query, you can check the Trace in Azure App Insights to check the logs, you can see messages like how many pairs made and notifications sent, refer to below screenshot.

Hi @bneal1987, please let us know if you've any updates on the response provided, if not we'll proceed with closing out the issue.

Please close this issue.
Apologies for delay.
Thanks,
Get Outlook for iOShttps://aka.ms/o0ukef

From: Porkai @.>
Sent: Wednesday, April 6, 2022 7:37:03 PM
To: OfficeDev/microsoft-teams-apps-icebreaker @.>
Cc: Brandon Neal @.>; Mention @.>
Subject: Re: [OfficeDev/microsoft-teams-apps-icebreaker] Run history succeeded, but nothing within Teams (Issue #231)
Hi @bneal1987https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbneal1987&data=04|01|bneal%40pharmacyquality.com|2a4f5e955cde4df7f7a608da18265b5e|34c347476850499a916894851413e442|1|0|637848850295718600|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=1RuLD%2BGbrVmAj9qb8hli5DO3Y08yIYL24b85FCd6q7Y%3D&reserved=0, please let us know if you've any updates on the response provided, if not we'll proceed with closing out the issue.
—
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FOfficeDev%2Fmicrosoft-teams-apps-icebreaker%2Fissues%2F231%23issuecomment-1090927164&data=04|01|bneal%40pharmacyquality.com|2a4f5e955cde4df7f7a608da18265b5e|34c347476850499a916894851413e442|1|0|637848850295718600|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=eKOCaXr47gUi6oDGikyek9ayl25085j%2BsXO8AKTEIBY%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FATX7NRH7UVX2JZ6GR3XEABTVDYNZ7ANCNFSM5PUDQPAA&data=04|01|bneal%40pharmacyquality.com|2a4f5e955cde4df7f7a608da18265b5e|34c347476850499a916894851413e442|1|0|637848850295718600|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=EJjJB%2FiwmsDhIWEf8VeNnRIixmMcboxqhbJJj02YVi8%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>


Fix incorrect formatting in warning message.

Codecov Report

Merging #241 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #241   +/-   ##
=======================================
  Coverage   89.96%   89.96%
=======================================
  Files          45       45
  Lines        2522     2522
=======================================
  Hits         2269     2269
  Misses        253      253

Impacted Files
Coverage Δ

lintreview/tools/golangcilint.py
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 697b660...b53e151. Read the comment docs.


Modify upgrade try expected channel for verification

Summary
Modify the expected channel construction in ChanUpgradeTry to expect the counterparty channel as OPEN.
NOTE: the auxiliary upgrade states (INITUPGRADE, TRYUPGRADE, ACKUPGRADE) will be removed as part of a different issue.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

Closing, lets use #4247 as the expected channel in try + removing state change in init need to happen in same pr


Circular buttons disabled state frame

When I disable a circular button, it's frame is increased by about 5px in two directions. When it is re-enabled, it goes back to its normal size. Is this expected?

Hello!
It is definitely not expected. Do you mind showing your code?  It'll help us check faster since we haven't faced this issue before.
Thanks,

I create my button like this:
func drawPlusButton() {
    let buttonFrame = CGRectMake(0, 0, 70, 70)

    plusButton = HTPressableButton(frame: buttonFrame, buttonStyle: HTPressableButtonStyle.Circular)
    plusButton.buttonColor = FlatGreen()
    plusButton.shadowColor = FlatGreenDark()
    plusButton.disabledButtonColor = FlatGray()

    plusButton.setTitle("MORE", forState: UIControlState.Normal)

    plusButton.addTarget(self, action: "addPlayer", forControlEvents: UIControlEvents.TouchUpInside)

    self.view.addSubview(plusButton)

    plusButton.snp_makeConstraints { (make) -> Void in
        make.centerY.equalTo(self.view)
        make.right.equalTo(self.view).offset(-30)
    }
}

plusButton is declared outside the function. The enabling logic is as follows:
if numberOfPlayers == minNumberOfPlayers {
    minusButton.enabled = true
}

numberOfPlayers++
if numberOfPlayers >= maxNumberOfPlayers {
    numberOfPlayers = maxNumberOfPlayers
    plusButton.enabled = false
}

Here is the button enabled:

And disabled:

Hi!
Thank you for the details info and screenshot.
Could you please try to log out the width and height of the button both before and after you disable the buttons?
Like:
   //Circular mint color button
    frame = CGRectMake(110, 300, 100, 90);
    HTPressableButton *circularButton = [[HTPressableButton alloc] initWithFrame:frame buttonStyle:HTPressableButtonStyleCircular];
    circularButton.buttonColor = [UIColor ht_mintColor];
    circularButton.shadowColor = [UIColor ht_mintDarkColor];
    [circularButton setDisabledButtonColor:[UIColor ht_sunflowerColor]];
    [circularButton setTitle:@"Circular" forState:UIControlStateNormal];
    [self.view addSubview:circularButton];

    // Print out the width and height
    NSLog(@"widith = %f", circularButton.frame.size.width);
    NSLog(@"height = %f", circularButton.frame.size.height);

Then, print them out again after you disable the buttons
    // Print out the width and height
    NSLog(@"widith = %f", circularButton.frame.size.width);
    NSLog(@"height = %f", circularButton.frame.size.height);

Let me know the results.


manifest: mbedtls: bump to 3.6.0

https://github.com/Mbed-TLS/mbedtls/releases/tag/v3.6.0
See details in commit messages.

FYI @ceolin @d3zd3z @dleach02

This is ready for review. @d3zd3z @ceolin @dleach02 @SebastianBoe


not able to NPM install

Good morning,
My build server just logged this error message which is a dependancy of cancan. Just wondered if you could look into it please?
STDOUT: npm ERR! 404 Not Found
npm ERR! 404
npm ERR! 404 'jkroso/type' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 It was specified as a dependency of 'equals'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.
I believe if you lock the version of equals to 1.0.1 (remove the ^), this should fix the issue.
Many thanks.

Hey, I can't reproduce this issue with the latest master or npm published version. Are you using some proxy/npm proxy/etc?

Thanks you for looking, our build server (OpsWorks) was running at node version 0.10.29 which no longer works with recent changes on the equals package.


Integrate greenkeepr

https://greenkeeper.io/

greenkeeper now has support for github integrations but it requires a SAP github org admin to authorize.
@SAP/site-admins
Could anyone please enable greenkeeper for this repository?
It can be enabled in:
https://github.com/integration/greenkeeper.
Thanks.

resolved.


BackgroundColor preference doesn't work

After switching to a new cordova-plugin-wkwebview-engine preference BackgroundColor stopped working. Now it always white.
<preference name="BackgroundColor" value="#222f73"/>
To change the color, I need to edit the source code of this plugin, but it is not very convenient.

We are archiving this repository following Apache Cordova's Deprecation Policy. We will not continue to work on this repository. Therefore all issues and pull requests are being closed. Thanks for your contribution.


[Improvement][api] It takes 5 seconds to visit zookeeper page and needs to be optimized

Which version of DolphinScheduler:
-[dev]

who can fix it?

who can fix it?

1

1

who can fix it?

Environmental problems, I don't see a recurrence in my environment

who can fix it?

Environmental problems, I don't see a recurrence in my environment


‼ Write STRINGTagger in python LocText code

(Note that this task #8 depends on #23 and #19)

[x] Write class STRINGTagger in annotators.py in LocText. This class must inherit Tagger from nalaf.
[x] For the types (class_id) you must use the constants defined in: https://github.com/juanmirocks/LocText/blob/develop/loctext/util/init.py#L3-L11

[x] You must write the normalizations in the Entity class as a python dictionary (see data.py in nalaf, class Entity) like:

new `Entity(class_id=..., offset=..., text=..., norm={UNIPROT_NORM_ID: "P04637,P02340", STRING_NORM_ID: "xxx,yyy"}

[x] at the end of your defined method annotate, call the function dataset.validate_entity_offsets() (to verify offsets & texts of entities are good)

[x] Test the STRINGTagger in a separate LocText (pytest) file.

Note: the simplest way to have a stub dataset for testing is to use the StringReader (defined in readers.py in nalaf). This simply takes a string in the constructor and, once the its method read is called, the dataset object is generated.

[x] The STRINGTagger must react appropriately if the docker server is not running or cannot be reached. That is, you must have an appropriate try/except clause to detect for possible exceptions on http calls (and similar). As a reaction, you must catch and raise the exception, yet with a meaningful message to the user. Something along the lines: "The docker STRING tagger REST server cannot be reached. For installation, please refer to [url to our repository of the string docker]"

[x] This must be tested too. That is, confirm first that the docker image is not running, and then confirm that you catch the exception with the text you wrote above

[x] Have parameter in constructor called send_whole_once (Boolean) with no default parameter

[x] If send_whole_once is False, keep your current behavior of iterating and iterating all the parts' texts

[x] else:

[x] send the whole document's text document.get_text() to the Docker image
[x] read back all annotations and fill them into the individuals parts handling the offsets properly. You can in document.get_text() choose any separation string you want (as in "\n") in case that simplifies your life.

[x] Handle the case where the uniprot normalization id is actually null

[x] From the docker tagger you receive for uniprot ids examples like P02340|P53_MOUSE or P48347|14310_ARATH. You must extract and write the accession number only! That is, examples: P02340 and P48347

Implement tests:

[x] Test that with send_whole_once is True we get either the same amount or more tagged entities:

assert num_annotated_entities(send_whole_once==False) <= num_annotated_entities(send_whole_once==True and doc.get_text(separation='\n')

[ ] Test that the choice of the separation string does not matter (\n vs \n\n):

assert num_annotated_entities(send_whole_once==True and doc.get_text(separation='\n') == num_annotated_entities(send_whole_once==True and doc.get_text(separation='\n\n')

You can use the functions:

corpus = read_corpus("LocText")
def num_annotated_entities(corpus): return len(list(corpus.predicted_entities()))

[ ] Write empty string only if you have NONE normalization, examples:

[ID1,ID2,] --> {UNIPROT_NORM_ID: "ID1,ID2", STRING_NORM_ID: "..."}
[] -> {UNIPROT_NORM_ID: "", STRING_NORM_ID: "..."}

[ ] Annotate ALL THREE: protein, localization, organism see ids constants

[x] Show to Juanmi

[ ] combine this tagger with LocTextAnnotator to create the final combined method

[ ] Write the class which uses Tagger and RelationExtractor. In the constructor, use ner_kw_args and re_kw_args as arguments for name entity recognition and relation extractor. Call annotate method using new and re, use inside "def annotate(dataset)" method.

[ ] Test_LocTextfull and Test_LocTextBaselineFull for testing the ultimately results, that is to do prediction and compare the methods. Inside the method initialize ner with StringTagger and re with Baseline.

In the end, the idea is simple, and it’s just that we want to use the STRING tagger (Lars) as an (Entity) Tagger class as defined in nalaf and to readily use in python
Hence we use Docker to run STRING tagger to get entity details.
Thus, the python tagger that must be implemented, calls the Docker tagger with REST APIs, reads the results, and saves them in a dataset object (nalaf Parts, Entity, ... ) (edited)
And the REST APIs calls are as simple sending strings (text) to the Docker tagger to annotate, and then just read the json response, and understand those to fill in the part.predicted_annotations
Further, that python tagger has already as input dataset objects (without annotations), and therefore with all the parts’ texts to send to the Docker tagger for annotation

Shpend
Check out for example the code;

GnormPlusTagger class in nalaf
TmVarTagger class, in nala (I think)

The task #8 looks complete to us. Just for the case of \n or \n\n, we didn't follow that approach since we had space as delimiter for splitting the parts. The rest of the code is working and  all the test cases (also for the num_annotated_entities) have passed.

We use space separator instead o \n or \n\n


Simplified devcontainer.json

Fixes #170969

@chrmarti you should also update https://github.com/microsoft/vscode/wiki/How-to-Contribute and link to that readme from there too.
Also (may be unrelated but) i cannot get code-oss to launch on Windows now:
https://github.com/microsoft/vscode/issues/171974


[Server Request]: Operation: Harsh Doorstop

Module Request
Note: Please try setting up a configuration yourself before raising an issue to request a configuration:  https://config.getamp.sh/
Game Information:
Steam Appid: 950900
https://docs.google.com/document/d/e/2PACX-1vTGjYAEqM6UTfpST_W-gnA0sDjrddks69vtrd_bkkhcwJppd1CrdQzKQM368WcTkmehIXYSK7w_i4zs/pub
guide is for windows.
Game Title: Operation: Harsh Doorstop [UE4.25]
How to obtain: https://steamdb.info/app/950900/)
Suppoted OSs: windows, linux
Supports RCON/Console input? yes
I confirm:

[x ] that I have searched for an existing module request for this application.
[x ] that the server is an official server distributed by the games publishers/developers.
[x ] that the server is available to the general public.
[x ] that the server can be run headless (without a GUI).
[ ] I have already attempted to create a configuration myself using the configuration tool at https://config.getamp.sh/

https://github.com/CubeCoders/AMPTemplates/pull/462


[opentitantool] Add capability to read lc_ctrl regs

Use the name in snake_case from the enum. For example, to read the first hardware revision reg, supply hw_revision0 as the argument.

Sample output (abridged command invocation, without the openocd config and a pair of warnings):
$ bazel run //sw/host/opentitantool -- --interface hyper310 life-cycle reg-read hw_revision0

{
  value: "0x40010002"
}


footer: update stylings, show agent, show height

Torn between showing height in this or add it as a separate widget altogether.

I think showing it in this is useful, we don't want to have too many similar widgets

yep!


Multi-environment usage

Currently we configuring symmetric-encryption, you can specify each of the environments that you have (e.g., say if you have a demo or staging environment). This works well, but there's an issue: The default way to determine which "environment" symmetric-encryption should use is to look at Rails.env
However, Heroku recommends against multiple "environments" (details), so in order to work nicely with heroku Rails.env has to be just "production"
It seems that it'd be possible to read from something else, given the contents of railties
I'd like to field interest in setting up an ENCRYPTION_ENV variable as an alternative to use Rails.env (i.e., env = ENV['ENCRYPTION_ENV'] || Rails.env).
This way I could still have multiple encryption environments and still play nicely with heroku.

Symmetric Encryption supports both environment variables and Heroku directly. Look for the Heroku option when generating the configuration file:
https://rocketjob.github.io/symmetric-encryption/configuration.html

The problem is with --envs ENVIRONMENTS, say I have a heroku pipeline setup with production and release apps, in order to instruct symmetric-encryption which keys to use for which app, I need to pass RAILS_ENV=production or RAILS_ENV=release, this is problematic because heroku thinks that release isn't a production-like environment. Additionally anything that does optimisations for Rails.env.production? will consequently not be optimised in release but will be optimised in production
Hence wanting a way to have RAILS_ENV=production in both apps, but use different symmetric-encryption keys. As proposed, having a environment variable specifically for symmetric-encryption to use to understand it's environment.

It's where the env at the end of this line comes from which is the problem: https://github.com/rocketjob/symmetric-encryption/blob/6668880e659672a5c724fd2db63c01cfb05590b7/lib/symmetric_encryption/config.rb#L76

@ThisIsMissEm The above PR has been merged, does it sufficiently address the requirements above?


Epic: Sync time series data to a remote InfluxDB Instance

Target Customer / Background data / Context / Market Size

As a user, I have multiple edge deployments of InfluxDB OSS that are collecting data locally. I would like an easy way to analyze this data in aggregate.
As a user, I have multiple edge deployments of InfluxDB OSS that are collecting data locally with limited or no connectivity to the cloud. I would like an easy way to analyze this data in aggregate once network connection is restored.

Goals
The goal of this epic is to provide a way for users to replicate data at the bucket level to one or more remote instances of InfluxDB
Acceptance Crit

as a user, i can configure an existing bucket to replicate all future points to one or more remote influxdb instances (add replication stream)
as a user, i can remove a replication stream from a bucket (delete replication stream)
as a user, i can list the replication streams for a bucket (list replication streams)
as a user, i can see information about how full the queues are when listing replication streams.
as a user, i can get a single replication stream by id for a bucket (get replication stream)
as a user, i can update a single replication stream for a bucket (update replication stream)
as a user, when i delete a bucket, i also delete any replication streams associated with that bucket
as a user, i can validate the connection information is valid before saving the replication streams
as a user, i can see status per replication stream indicating the connection is working
as a user, i can see log messages indicating that points are being dropped if the queue size is too large
as a user, i can see information about how full each queue is per replication stream per bucket (/metrics data)
as an analytics user, i can see information about replication streams in the phone home data
as an analytics user, the user agent should be set to something reasonable such as influxdb-oss/<version>

Release Plan
TBD

Early work goes behind a feature-flag so we can merge to master without fear of releasing?

Notes

the minimum connection details needed for a bucket replication stream are host, token, org (or orgID), bucket name (or bucket id), queue size (bytes), and skip-verify/insecure TLS.

Dan opinion: would prefer to require IDs for both org and bucket; have heard rumors that Cloud APIs will move away from accepting names
Russ: I'm ok with using only IDs for this for the first pass but there are a few issues. Today, the CLI configs file only stores the org name, not the ID, so we should explore adding orgid to that (and auto-populating it from the token if we can). That way the CLI could work with the user only specifying the local and remote bucket ids + queue size (although the user could send a write only token to the command for added security). For the UI, i imagine we could allow the user to browse the remote influxdb instance to select the bucket, in which case, we could use id as well. The only issue is that if the user drops and recreates the remote bucket, you could end up with failures.

Replication is configured at the bucket level via an API, which means a restart is not required
Configuration options for the size of the replication queue should be configurable per replication stream
Assumption: no support for injecting a query to filter/modify data before it's sent to the remote server

If users want that behavior, they can have a task execute the query and write results to a 2nd local bucket, and replicate that 2nd bucket

Assumption: the auth tokens included in stream configuration are write-only (not included in list/GET metadata responses)

We should only require write to the specific bucket. In the experiences we build, they should fail gracefully if the user doesn't have permissions to do things like list buckets.

Assumption(Sam): Only writes are streamed. Other data operations (e.g. deletes, backup restores) do not affect replication. This can cause data in the local bucket to be different than the remote.

Unanswered questions

What token permissions are needed to configuring replication?
Should we require an explicit toggle on buckets to enable/disable using them as a source for replication? Similar to how measurement schemas is enabled/disabled by the bucket-level "schema type" property

Russ: i'm not sure why that would be necessary or desired. If users need the ability to "lock" a bucket so that it's only for replication, that can be added later IMO.

If data is sitting in a replication stream's queue when the stream is deleted, should the data still be flushed to the remote instance? Or deleted?

Russ: Deletes should not be replicated to the remote bucket IMO. If a user needs to delete data from the remote bucket, they should run the same delete command on both instances. The reason a stream might be "full" and need to be deleted would be that the remote connection is misconfigured (or the bucket was recreated). In this case, i think deleting the stream should delete the data in the stream. Attempting a final flush makes sense here, but if the flush fails, the data should just be deleted. Updating the stream should be preferred when connection issues happen.
Russ: This also means that users should validate that the streams are empty using the supplied APIs for viewing the stream size. I've added an acceptance criteria to return that information when listing streams.

Same question as ^^^ but for when the entire source bucket is deleted

Russ: When a source bucket is deleted, the replication streams attached to that bucket should also be deleted. As stated above, deleting a replication stream should also delete the data in the stream.

Should it be possible to "pause" a replication stream without entirely deleting it?

If a stream is paused when there is unflushed data in its queue, should the data still be sent? Or should it stay in the queue until the stream is un-paused / deleted?
Russ: This feels like a follow on feature. Users could accomplish this today by marking the token inactive on the remote influxdb, which would cause the queue to fill up.

Should we confirm that points have been successfully written to the local DB before adding them to the replication queue?

Russ: Since different influxdb instances use different storage engines, it's very possible a write could fail on one and succeed on the other. I need to think more about this, but i'm leaning towards the local instance api having the responsibility of validating the write as much as possible before accepting it. Local writes could still fail for things like disk space i guess, but in that case, it feels like allowing the data to continue to sync to the remote instance would be preferred.

Are there any cases when we would want points to be purged from a replication stream without successfully sync-ing to the remote instance? i.e. if we try sync-ing points and get back an error about conflicting schemas?

Russ: I don't think being able to delete individual points from a replication stream makes sense. I do see a situation where we could continue to retry failed points forever though. I'm leaning towards the remote instance being responsible for anything where the payload was accepted but the write failed. See https://github.com/influxdata/docs-v2/issues/3003 . Different influxdb instances handle this differently though. I believe OSS will reject right away with a status code, while cloud will accept and reject later, storing the data in a log. Storing failed writes in a log might be something we should consider adding to OSS tbh. I'm leaning towards being very strict in what we keep in the queue and limiting it to purely connection, auth, and 500 errors. The reason being that in order to get into the queue in the first place, the write had to be accepted by the original API, so if it is rejected later, it would be due to conflicting types (oss would reject right away, cloud would accept then reject later) or something wrong with the remote server (disk space, etc).
Russ: All this to say, I could envision a reason for wanting to "drop the queue" for a replication stream. This could be added later though, with the work around being delete the stream and recreate.

Apart from the baseline URL/bucket+org IDs, what other info (if any) might we eventually want to display in the UI/CLI view of replication streams? Ex: total request count, queue size, last successful request, last failure, etc.?

Russ: I think queue size, last status code, and optional last message (in case of an error) makes sense.

Team

Anchor / Dev Champion - @danxmoran
Product Manager - @russorat
Design - TBD

Added:
Assumption(Sam): Only writes are streamed. Other data operations (e.g. deletes, backup restores) do not affect replication. This can cause data in the local bucket to be different than the remote.

Most of the work for this feature is now complete. It can be tried out using the latest nightly builds on influxd and the influx CLI for managing replications/remotes.
Warning: Running the latest nightly build of influxd will apply migrations to any existing bolt/sqlite db files it is pointed at specific to replications. If you later start an "older" version of influxd (for example, the latest 2.1.1 release), it will fail to startup since these migrations don't exist in anything we have released yet. You could recover from this using the influxd downgrade command to revert the metadata dbs to the 2.0 version, although this will delete the 2.1 specific migration data...like notebooks and annotations. It probably goes without saying, but I'd strongly recommend not running the nightly with data that you don't want to lose!
Nightly influxd server builds are available here, following the general pattern of these URLs for your desired arch (there is no nightly docker image)

https://dl.influxdata.com/platform/nightlies/influxdb2-nightly-amd64.deb
https://dl.influxdata.com/platform/nightlies/influxdb2-nightly-darwin-amd64.tar.gz
https://dl.influxdata.com/platform/nightlies/influxdb2-nightly-linux-arm64.tar.gz
https://dl.influxdata.com/platform/nightlies/influxdb2-nightly-windows-amd64.zip

Nightly influx CLI builds are available at similar paths:

https://dl.influxdata.com/platform/nightlies/influxdb2-client-nightly-amd64.deb
https://dl.influxdata.com/platform/nightlies/influxdb2-client-nightly-darwin-amd64.tar.gz
https://dl.influxdata.com/platform/nightlies/influxdb2-client-nightly-linux-amd64.tar.gz
https://dl.influxdata.com/platform/nightlies/influxdb2-client-nightly-windows-amd64.zip

The replications system is not activated unless influxd is started with the feature flag, for example:
./influxd --feature-flags replicationStreamBackend=true

For the CLI, the replication and remote subcommands are not shown with a top-level influx -h, but the usage information can be seen using the command-specific -h:
./influx replication -h

&
./influx remote -h

Most notable work in progress still:

If there is a remote write in progress, the server won't shutdown gracefully. Will be fixed by https://github.com/influxdata/influxdb/pull/22958
If you do a very large write to a local OSS instance that would be rejected by cloud due to cloud-specific size limits, the remote write will never succeed. This will be fixed by https://github.com/influxdata/influxdb/compare/replications-batch-large-writes, which will split up large local writes into smaller remote writes.
Most of the metrics/logging is complete, but there are still some improvements to be made, see https://github.com/influxdata/influxdb/issues/22953
When we are ready to release this feature, we will remove the feature flagging on the server and CLI side of course
See open issues in the epic for other remaining work

I've updated my previous post to reflect the fact that all of the in-progress work that was still to be completed is now complete.
Also, we have removed the server and CLI feature flags for remotes/replications, so those flags do not have to be turned on if you are working with the latest nightlies. You should be able to use the CLI normally and see the commands listed in the top-level help, and start the server without the replicationStreamBackend flag (you will actually get an error if you try to use this flag since it doesn't exist anymore).

Is there a rough ETA for this? This is exactly what I was searching for.

It is available now in the nightly release and will be in the next OSS release.


HDFS-16042. DatanodeAdminMonitor scan should be delay based

HDFS-16042 DatanodeAdminMonitor scan should be delay based.
In DatanodeAdminManager.activate(), the Monitor task is scheduled with a fixed rate, ie. the period is from start1 -> start2.
It should be a fixed delay so it's end1 -> start1.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m 34s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
33m 43s

trunk passed

+1 :green_heart:
compile
1m 24s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
1m 16s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m  1s

trunk passed

+1 :green_heart:
mvnsite
1m 22s

trunk passed

+1 :green_heart:
javadoc
0m 55s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 23s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 23s

trunk passed

+1 :green_heart:
shadedclient
19m  4s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 17s

the patch passed

+1 :green_heart:
compile
1m 17s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
1m 17s

the patch passed

+1 :green_heart:
compile
1m  9s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
1m  9s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 56s

the patch passed

+1 :green_heart:
mvnsite
1m 15s

the patch passed

+1 :green_heart:
javadoc
0m 48s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 20s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 19s

the patch passed

+1 :green_heart:
shadedclient
18m 43s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
321m 10s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
0m 37s

The patch does not generate ASF License warnings.

414m 32s

Reason
Tests

Failed junit tests
hadoop.hdfs.server.namenode.TestDecommissioningStatus

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.namenode.TestDecommissioningStatusWithBackoffMonitor

hadoop.hdfs.server.namenode.ha.TestBootstrapStandby

hadoop.hdfs.server.namenode.ha.TestEditLogTailer

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3058

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 37e01b3f8927 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / bd86c2fd17f08428453bf32aa73d5465947a88f4

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/1/testReport/

Max. process+thread count
2670 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

TestDecommissioningStatus and TestDecommissioningStatusWithBackoffMonitor
Please check whether the failures are related to the change.

@amahussein code looks good.  As @kihwal said, please take a look at the unit test failures to see if they are related.

I looked at the unit test failures. Those unit tests seem to be failing every now and then as the number of under-replicated blocks differ than the expected.
Last failure of those tests in the qbt-report was back in May 13th.
I will keep an eye on the unit tests to see of their frequency has increased.
I am rebasing to see if the Yetus failures are persistent.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 50s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  2s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
33m 39s

trunk passed

+1 :green_heart:
compile
1m 24s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
compile
1m 15s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
checkstyle
1m  1s

trunk passed

+1 :green_heart:
mvnsite
1m 22s

trunk passed

+1 :green_heart:
javadoc
0m 56s

trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 26s

trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 16s

trunk passed

+1 :green_heart:
shadedclient
19m  1s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
1m 14s

the patch passed

+1 :green_heart:
compile
1m 18s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javac
1m 18s

the patch passed

+1 :green_heart:
compile
1m 10s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
javac
1m 10s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 53s

the patch passed

+1 :green_heart:
mvnsite
1m 13s

the patch passed

+1 :green_heart:
javadoc
0m 47s

the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04

+1 :green_heart:
javadoc
1m 18s

the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

+1 :green_heart:
spotbugs
3m 21s

the patch passed

+1 :green_heart:
shadedclient
4m 31s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

-1 :x:
unit
314m 47s
/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt
hadoop-hdfs in the patch passed.

+1 :green_heart:
asflicense
0m 34s

The patch does not generate ASF License warnings.

392m 40s

Reason
Tests

Failed junit tests
hadoop.hdfs.server.namenode.TestDecommissioningStatus

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.namenode.TestDecommissioningStatusWithBackoffMonitor

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/3058

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 63104db60265 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 64c066fad5b79a4568d35bb99ab268afa75c1ecc

Default Java
Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/2/testReport/

Max. process+thread count
2305 (vs. ulimit of 5500)

modules
C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3058/2/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@kihwal and @jbrennan333
I have tested the three unit tests  TestDecommissioningStatus, TestDFSShell, TestDecommissioningStatusWithBackoffMonitor in a loop for couple of hours without getting failures in the container image.
I also tested them on OS X and I could not reproduce the failures.


docs(routing-interface): Create README file

Description.
As a potential user of Cactus I want to have documentation of what and how this package is used.
Describe the solution you'd like.
Add a README.md file in the packages/routing-interface folder with this package usage information.
Acceptance criteria.
The README file exists and contains the package information.

Package removed


[UI]Successfully removed the hardcoded edge-edge-latest version

Signed-off-by: Kamal<EMAIL_ADDRESS>Description
[UI]Successfully removed the hardcoded edge-edge-latest version  to edge-latest version
This PR fixes #5914
Notes for Reviewers
Earlier

After

Signed commits
Yes, I signed my commits.

@Chadha93 issue just got closed within 24 hrs🙌  🎉


New VRTK Structure Proposal

For v 4.0.0 I recommend the following structure for the repo:
-RepoRoot/
---Documentation/
-----Getting Started/
-------sub content....
-----Tutorials/
-------sub content....
-----Source API/
-------sub content....
-----FAQ.md
---Demo Scenes/
-----sub content....
---Prefabs/
-----AvatarHands/
-------sub content....
-----CameraRigs/
-------sub content....
-----Resources/
-------sub content....
-----ConsoleViewerCanvas.prefab
-----etc.prefab
---Resources/
-----Materials/
-------sub content....
-----Textures/
-------sub content....
---Source/
-----Editor/
-------sub content....
-----Scripts/
-------sub content....
-----SDK/
-------sub content....

This would also mean that there is no unity project within the repo.

Reference:
https://github.com/thestonefox/VRTK/issues/1422
https://github.com/thestonefox/VRTK/issues/763

For the source API docs make sure to not include HTML files - I think Unity tries to import those for some reason and fails. At least that's what's happening with Entitas.

I don't think we should go with Doxygen as the doc generator anyway. I don't like html, I don't like the mess of files they create, I think their generated docs are very complete but too confusing.


feat(ci): Add option to push images to multiple repos

Resolves #10
Add the option to push images/manifests to multiple image repositories.
Split the build task to building the images and pushing them to image repositories. The built image is shared between workflows using the repository defined in the env variables.
Usernames and passwords are taken from the repository vars and secrets. In order for the build to pass usernames/passwords need to be entered in to repo vars/secrets.

The storage limit for free organizations is 500MB which will get filled up pretty quickly if we use this approach. Going to look for a different approach.

Instead of pushing the images to a local repository that is then shared between workflows, they are pushed to the MAIN repository defined in env variables. They are then pulled from this repo and pushed to any other image repositories in the push-images-and-manifests job.

Add repository to the matrix/main envs.
Also keep in mind:

Please don't merge this until the repo vars/secrets are updated.

Example of a successful build: https://github.com/skopecky-test/janus-backstage-test/actions/runs/4126654604
Resulting images of the test build:

ghcr: https://github.com/skopecky-test/janus-backstage-test/pkgs/container/janus-backstage-test
quay: https://quay.io/repository/skopecky/janus-backstage-test?tab=tags


Subscriber Authentication

I tried to use the subscriber client with a redis instance thats password-protected and found out by #8 that authentication is missing.

@crackthecodeabhi can you review this PR and make a patch release for it? I'm in desperate need for this for my project and Kreds would be perfect (for my current use case) if this feature was added. Thanks in advance :)

@crackthecodeabhi can you review this PR and make a patch release for it? I'm in desperate need for this for my project and Kreds would be perfect (for my current use case) if this feature was added. Thanks in advance :)

You can download my fork and install it in your local maven repository, if you need it urgent. I think the author doesn't maintain it further.

@crackthecodeabhi can you review this PR and make a patch release for it? I'm in desperate need for this for my project and Kreds would be perfect (for my current use case) if this feature was added. Thanks in advance :)

You can download my fork and install it in your local maven repository, if you need it urgent. I think the author doesn't maintain it further.

I have just been in contact with the author and he said the following:
Yes, I will review and add some test cases to it before making a release. Should be done in a week.
But I will probably do what you said until the new release is available

@rexlManu @TomTruyen will be reviewing and merging the issue ASAP. been busy lately. Give me sometime.

@rexlManu @TomTruyen will be reviewing and merging the issue ASAP. been busy lately. Give me sometime.

Is there an ETA on this? The PubSub functionality is almost useless without it... I am stuck on project because of this issue

@rexlManu @TomTruyen will be reviewing and merging the issue ASAP. been busy lately. Give me sometime.

Is there an ETA on this? The PubSub functionality is almost useless without it... I am stuck on project because of this issue

There needs to be some work done on this PR, the current PR will cause a dead lock since the reader coroutine is not pre-empted before writing on the connection.
Will update as soon i fix it and run some tests.

@rexlManu @TomTruyen will be reviewing and merging the issue ASAP. been busy lately. Give me sometime.

Is there an ETA on this? The PubSub functionality is almost useless without it... I am stuck on project because of this issue

There needs to be some work done on this PR, the current PR will cause a dead lock since the reader coroutine is not pre-empted before writing on the connection.
Will update as soon i fix it and run some tests.

I didn't get a dead lock when using @rexlManu his version. Does the dead lock only happen in specific scenario's?

I'm currently using my version pretty much and didn't run in any issues. Maybe share a example where it occurs.

@rexlManu the subscriber coroutine suspends after it locks the mutex on the Konnection.
the Connection command interface which has now been added as implements to Subscriber Client,
will not preempt this corutine, before it takes a lock on the that connection mutex.
if the user subscribes to a channel, and then tries to execute any connection command, it will block indefinitely.
Hence, a clean approach would be to , accept optional auth parameters while building the subscriber client, and authenticate against redis before doing anything else, this ensure all other commands work as usual with no change.

@rexlManu @TomTruyen will be reviewing and merging the issue ASAP. been busy lately. Give me sometime.

Is there an ETA on this? The PubSub functionality is almost useless without it... I am stuck on project because of this issue

There needs to be some work done on this PR, the current PR will cause a dead lock since the reader coroutine is not pre-empted before writing on the connection.
Will update as soon i fix it and run some tests.

I didn't get a dead lock when using @rexlManu his version. Does the dead lock only happen in specific scenario's?

After calling the subscribe command on the  subscriber client, call any other connection command, the coroutine will block


Proposing new formatting for titles/subtitles

Proposed Change/Activity
Extracted all titles from the report, and proposing a new structure more standardized.
Why is this important
Consistency and organization are key!
Additional Context
This update is proposed before @stfinnis starts his editorial magic :mage:

Changes proposed below!
REPRODUCIBLE REPORTING: ABOUT THIS DATA DISCOVERY TOOL
Background
System
Species focus
Disclaimers
Data Access & Quality Tiers

SEARCH RESULTS: ECOLOGICAL DIMENSION
INFORMATION FROM THE NATIONAL AQUATIC SPECIES AT RISK GEODATABASE
DFO Species at Risk distribution (range)
Area-specific SAR distribution search results
Critical Habitat of Species at Risk
Area-specific critical habitat search results
DATASETS INVOLVING MULTIPLE SPECIES
Maritimes Research Vessel (RV) Survey
Area-specific Maritimes Research Vessel (RV) Survey search results
Passamaquoddy Bay Biodiversity Trawls (PBBT)
Area-specific search results for the Passamaquoddy Bay Biodiversity Trawls
Inshore Lobster Trawl Survey (ILTS)
Area-specific search results for the Lobster Trawl Survey
Industry Survey and Maritimes Fishery Databases
Industry Survey Database (ISDB)
The Maritime Fishery Information System (MARFIS)
Area-specific MARFIS & ISDB search results
Atlantic Sturgeon Foraging Areas in the Upper Bay of Fundy
Area-specific Atlantic Sturgeon search results
OCEARCH Shark Tracker
Area-specific OCEARCH Shark Tracker search results
Ocean Biodiversity Information System (OBIS), the Global Biodiversity Information Facility (GBIF) and iNaturalist

Background descriptions for both OBIS and GBIF -- remove this as subtitles
iNaturalist data -- remove this as subtitles
Data searches - remove this as subtitles

Area-specific OBIS search results
Area-specific GBIF search results
Area-specific iNaturalist search results
DATASETS INVOLVING CETACEAN SPECIES
Whale Sightings Database (WSDB)
Area-specific WSDB search results
The Whitehead Lab, Dalhousie University
Area-specific Whitehead Lab search results
North Atlantic Right Whale Consortium (NARWC) Sightings Database
Area-specific NARWC search results
Species Distribution Models (SDM): Priority Areas to Enhance Monitoring of Cetaceans
Area-specific SDM cetacean search results
Blue Whale Important Habitat
Area-specific Blue Whale Important Habitat search results
Northern Bottlenose Whale important habitat in inter-canyon areas on the eastern Scotian Shelf
Area-specific Northern Bottlenose Whale Important Habitat in inter-canyon areas on the eastern Scotian Shelf search results

SEARCH RESULTS: AREAS DESIGNATED FOR SPATIAL PLANNING
Ecologically and Biologically Significant Areas (EBSA)
Area-specific EBSA search results
Draft Conservation Network Design
Area-specific Draft Conservation Network Design search results

SEARCH RESULTS: BENTHIC HABITAT & SUBSTRATE
Intertidal Vegetation and Rockweed
Area-specific Intertidal Vegetation and Rockweed search results

SEARCH RESULTS: HUMAN DIMENSION
SHIPPING
Under-construction
LOADING & DISPOSAL
Estimates of anthropogenic nitrogen loading and eutrophication indicators for the Bay of Fundy and Scotian Shelf
Area-specific nitrogen load results
Man-made solid classification from the Atlantic Shoreline Classification dataset
Area-specific man-made solid results
Active and Inactive Disposal at Sea Sites
Area-specific Active and Inactive Disposal at Sea Sites
Clean power generating stations by type in megawatts (MW)
Area-specific Clean Power Generating Stations
FISHING
Fishing effort within Significant Benthic Areas in Canada's Atlantic and Eastern Arctic marine waters
Area-specific fishing effort search results
Inshore Lobster Landings and Fishing Effort
Area-specific lobster fishing effort results
AQUATIC INVASIVE SPECIES
Under-construction
Area-specific results under-construction
LITERATURE REVIEW: THREATS & MITIGATION FOR SPECIES AT RISK
SARA Recovery Planning Process documents

SEARCH RESULTS: REGIONAL SYNTHESIS
Multi-Threat Synthesis
Threat Classification
Multi-Species Synthesis

CONTRIBUTORS

REFERENCES

NEW COMPLIMENTARY RMARKDOWNS

SUPPLEMENTARY MATERIAL 1: Context about the Ocean Biodiversity Information System (OBIS), the Global Biodiversity Information Facility (GBIF), and iNaturalist
Data structure
Disclaimers
Differing research objectives
Observations over land
Duplicate datasets
Additional data
Basis of Record

SUPPLEMENTARY MATERIAL 2: LITERATURE REVIEW ON THREATS & MITIGATION FOR SPECIES AT RISK
Key terms and descriptions
Overview of the SARA recovery planning process
Committee on the Status of Endangered Wildlife in Canada (COSEWIC) Status Reports
Recovery Potential Assessments (RPA)
RPA timeline
Change in RPA procedure over time
Types of RPAs
Threat Assessment
Competent Minister
Governor in Council
Recovery Strategy
Action Plan
Management Plan
Disclaimers

TITLES TO DELETE
About this Report
Species at Risk distribution and Critical Habitat data -- delete?!
THREATS -- delete?!
Cumulative impact mapping-- delete?!
Interactive Output --- delete?!
Miscellaneous -- delete!?
**Threats Literature Review -- delete!?

OLD FORMAT
REPRODUCIBLE REPORTING
About this Report
Background
System
Species focus
Disclaimers
Data Access & Quality Tiers
SEARCH RESULTS
INFORMATION FROM THE NATIONAL AQUATIC SPECIES AT RISK GEODATABASE
Species at Risk distribution and Critical Habitat data
DFO Species at Risk distribution (range)
Area-specific SAR distribution search results
Critical Habitat of Species at Risk
Area-specific critical habitat search results
Species
Maritimes Research Vessel (RV) Survey
Area-specific Maritimes Research Vessel (RV) Survey search results
Passamaquoddy Bay Biodiversity Trawls (PBBT)
Area-specific search results for the Passamaquoddy Bay Biodiversity Trawls
Inshore Lobster Trawl Survey (ILTS)
Area-specific search results for the Lobster Trawl Survey
Industry Survey and Maritimes Fishery Databases
Industry Survey Database (ISDB)
The Maritime Fishery Information System (MARFIS)
Area-specific MARFIS & ISDB search results
**Atlantic Sturgeon Foraging Areas in the Upper Bay of Fundy **
Area-specific Atlantic Sturgeon search results:
OCEARCH Shark Tracker
Area-specific OCEARCH Shark Tracker search results
CETACEANS
Whale Sightings Database (WSDB)
Area-specific WSDB search results
The Whitehead Lab, Dalhousie University
Area-specific Whitehead Lab search results
North Atlantic Right Whale Consortium (NARWC) Sightings Database
Area-specific NARWC search results
Species Distribution Models (SDM): Priority Areas to Enhance Monitoring of Cetaceans
Area-specific SDM cetacean search results
Blue Whale Important Habitat
Area-specific Blue Whale Important Habitat search results
Northern Bottlenose Whale important habitat in inter-canyon areas on the eastern Scotian Shelf
Area-specific Northern Bottlenose Whale Important Habitat in inter-canyon areas on the eastern Scotian Shelf search results
AREAS DESIGNATED FOR SPATIAL PLANNING
Ecologically and Biologically Significant Areas (EBSA)
Area-specific EBSA search results
Draft Conservation Network Design
Area-specific Draft Conservation Network Design search results
NEW SECTIONS UNDER-DEVELOPMENT OR COMING SOON!
Aquatic Invasive Species
Cumulative impact mapping
Estimates of anthropogenic nitrogen loading and eutrophication indicators for the Bay of Fundy and Scotian Shelf
Area-specific nitrogen load results
Man-made solid classification from the Atlantic Shoreline Classification dataset
Area-specific man-made solid results
Active and Inactive Disposal at Sea Sites
Area-specific  Active and Inactive Disposal at Sea Sites
Clean power generating stations by type in megawatts (MW)
Fishing
Fishing effort within Significant Benthic Areas in Canada's Atlantic and Eastern Arctic marine waters
Area-specific fishing effort search results
Inshore Lobster Landings and Fishing Effort
Area-specific lobster fishing effort results
Threat Classification
REGIONAL SYNTHESIS
Multi-Threat Synthesis
Interactive Output
Multi-Species Synthesis
CONTRIBUTORS
REFERENCES

Thank you all for the feedback earlier today. I updated the table of contents and started a new branch to do these updates on Monday.

OBIS/GBIF are now included, with the proposed new sibling supplementary material
Habitat title updated to be more encompassing
I am still not a fan of the term "Habitat" as the heading for intertidal vegetation/rockweed, since many of the other sections
Formatting issues with asterisks should be solved
Updated to "DATASETS INVOLVING MULTIPLE SPECIES"

@stfinnis: please let me know if you would like to see any more updates in the headers before I start the big updated in the new branch. Thank you!

Used this formatting to update entire report. Changes to this may trigger another issue (https://github.com/dfo-mar-odis/shinySpatialApp/issues/78).


cleaned up code a little, corrected a typo in import and added random question selection for the room creation

😄

LGTM :)


Upload generated doc as artifact for testing/reviewing purpose

Goal: To be able to review changes on online doc without having to make actual releases.
Principle: Use the generated artifact to serve locally the static website that would be published on github pages by releases.
Proposed reviewing process for online doc:

Download the artifact "doc.zip" generated by the triggered action "Build scikit-decide"
Extract the website contained in the artifact in a dedicated directory and serve it locally:

mkdir testdoc
cd testdoc
unzip path/to/doc.zip -d scikit-decide
python -m http.server

Go to http://localhost:8000/scikit-decide/ and review!

Okay with these changes, this PR became really trivial and could be merged ASAP, feel free to tag it.


add ping_computers monitor

fixes https://github.com/mojin-robotics/cob4/issues/939
which is part of https://github.com/mojin-robotics/cob4/issues/875
new source code files added (APACHE license header adjusted to Mojin Robotics was used)

maybe the ping computers monitor could be integrated into wlan_monitor.py or wifi_monitor.py

added functionality to be run on a local pc, specifying various subnets  and publishing a designated topic

not planned


使用什么启动本地服务才能将数据传入wizmap。

使用什么启动本地服务才能将数据传入wizmap。

You can follow the instruction in README: https://github.com/poloclub/wizmap#use-my-own-embeddings
Feel free to re-open the issue if you have any more questions. Thank you!


Task "detail" field is not rendered in the task list

In the API docs for Task, there's a detail field that reads:

A human-readable string which is rendered less prominently on a separate line in places where the task's name is displayed. Supports rendering of theme icons via the $(<name>)-syntax.

However it doesn't appear to be displayed in the main task picker (under the "Run Task") command:
const task = new vs.Task(
	{ type: this.type, cwd: fsPath(projectFolder), command, args } as DartTaskDefinition,
	workspaceFolder,
	[command, ...args].join(" "),
	this.type,
	undefined,
	undefined
);
task.name = "NAME HERE!";
task.detail = "DETAIL HERE"; // SET HERE
return task;

I'm trying to use this for tasks where they may be multiple instances available within a single workspace folder. For example if you open a monorepo that has 5 projects, I would like to display 5 "dart: pub get" tasks, similar to how you would see multiple if they were their own workspace folders:

@DanTup when we fetch the detail can be a bit complicated:

If the task is in your recently used tasks we don't go to the extension for the task at the time that it's displayed and instead use the cached task value for display. The task is fetched from the extension when it's selected from the quick pick. We do this to improve the performance of the task picker.
If the task is in your tasks.json we do the same thing.
Only if you've selected a task "folder" or are showing all tasks have we gone to the extension for the task.
For recently used tasks, once the task has been fetched from the extension with it's new detail value once (i.e., by running) the new detail should show in the task picker.

Is your situation explained by one of the above points?

@alexr00 sorry, this was completely user error. In my resolve method I create a new Task (as advised here) and I wasn't copying the detail over from the stub I'd previously created. I should've debugged that better, sorry for the bother!