deploy-heketi  fails with "Can't open /dev/sdb exclusively.  Mounted filesystem?"

Im trying to deploy on k8s running on GCE and I always fail with:
Found node gke-cluster-1-default-pool-73ffc114-4d15 on cluster a1bf3b01c904cc190de6ca334dac0d60
Adding device /dev/sdb ... Unable to add device: Unable to execute command on glusterfs-38rmj:   Can't open /dev/sdb exclusively.  Mounted filesystem?
If I manually ssh into the container and execute the same command I get the same error:
kubectl exec -it glusterfs-38rmj bash
[root@gke-cluster-1-default-pool-73ffc114-4d15 /]#  pvcreate -vvvvv --metadatasize=128M --dataalignment=256K /dev/sdb
...
#toollib.c:3194       Processing device /dev/sdb.
#toollib.c:4142         Checking pvcreate arg /dev/sdb which has existing PVID: .
#device/dev-io.c:524         /dev/sdb: open failed: Device or resource busy
#toollib.c:4150   Can't open /dev/sdb exclusively.  Mounted filesystem?
I have 3 cluster nodes, each one has external ssd disk mounted on /dev/sdb. My topology.json is configured to only this disk.
Output of: df -h
/dev/sdb        369G   69M  350G   1% /mnt/disks/ssd0
I also tried to wipe out these but I get an error.:
sudo wipefs  -a /dev/sdb
wipefs: error: /dev/sdb: probing initialization failed: Device or resource busy
I have a dev background so any help with this issue is appreciated . thx!

At a glance, it looks like your devices are not actually empty. You can use tools like lsblk to see if there is anything form sdb mounted. Also verify that vgs and pvs show no LVM volume groups or physical volumes (respectively) using those devices.

this is what I thought too. However I was unable to find out who is using it
[root@gke-cluster-1-default-pool-424627dc-15kx /]# lsblk
lsblk: dm-0: failed to get device path
lsblk: dm-0: failed to get device path
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0  100G  0 disk
|-sda1    8:1    0 95.9G  0 part /var/lib/misc/glusterfsd
|-sda2    8:2    0   16M  0 part
|-sda3    8:3    0    2G  0 part
|-sda4    8:4    0   16M  0 part
|-sda5    8:5    0    2G  0 part
|-sda6    8:6    0  512B  0 part
|-sda7    8:7    0  512B  0 part
|-sda8    8:8    0   16M  0 part
|-sda9    8:9    0  512B  0 part
|-sda10   8:10   0  512B  0 part
|-sda11   8:11   0    8M  0 part
`-sda12   8:12   0   16M  0 part
sdb       8:16   0  375G  0 disk
[root@gke-cluster-1-default-pool-424627dc-15kx /]# vgs
[root@gke-cluster-1-default-pool-424627dc-15kx /]# pvs
This is a brand new cluster, I only run ./gk-deploy -gvy multiple times on it ( as it failed at different stages)

Edited your comment for clarity. :) Please try to use ``` to surround terminal output.
Hmm... I saw you posted this earlier:
/dev/sdb 369G 69M 350G 1% /mnt/disks/ssd0

That would indicated that /dev/sdb is mounted somewhere, right? Can you try something like umount /mnt/disks/ssd0 and then try wipefs?

thx! sry for the formatting .
I managed to moved fwd and now it seems that the topology load attempts to execute on the same pod:
/usr/local/bin/kubectl -n default exec -i deploy-heketi-3019752013-xn69z -- heketi-cli -s http://localhost:8080 --user admin --secret '' topology load --json=/etc/heketi/topology.json 2>&1
Found node gke-cluster-1-default-pool-424627dc-15kx on cluster 4340d69b402e3ee0eaddf4e650162926
Found device /dev/sdb
Creating node gke-cluster-1-default-pool-424627dc-84d7 ... Unable to create node: Unable to execute command on glusterfs-g22sj:
Creating node gke-cluster-1-default-pool-424627dc-rq8h ... Unable to create node: Unable to execute command on glusterfs-g22sj:
Error loading the cluster topology.
Please check the failed node or device and rerun this script.

On the node that has succeed I see these in the logs:
[2017-09-19 21:59:29.901999] I [MSGID: 106004] [glusterd-handler.c:5882:__glusterd_peer_rpc_notify] 0-management: Peer <<IP_ADDRESS>> (<00000000-0000-0000-0000-000000000000>), in state <Establishing Connection>, has disconnected from glusterd.
[2017-09-19 21:59:29.902119] I [socket.c:3581:socket_submit_reply] 0-socket.management: not connected (priv->connected = -1)
[2017-09-19 21:59:29.902125] E [rpcsvc.c:1348:rpcsvc_submit_generic] 0-rpc-service: failed to submit message (XID: 0x1, Program: GlusterD svc cli, ProgVers: 2, Proc: 1) to rpc-transport (socket.management

However my initial issue is fixed so I am closing this. thx

Just to clarify what the issue was in case anyone else runs into this: the disk was suppose to be attached but not mounted and formatted and this happens by default  when creating a brand new k8s cluster on GCE with local disk attached to nodes.


Create links and text changes

This PR

adds links to Accessible Web Services
edits the content of the A11y Statement page to provide additional, relevant content

Do not merge until the A11y site officially goes live.

Updates not currently in v2.


Optionally Implement Zeroize on exported types

Implements the zeroize::Zeroize on exported types, this is guarded by a zeroize feature.
This doesn't zeroize on drop, it just let's the user derive themselves / zeroize when needed

@oconnor663 Replaced the unsafe with the implementation from https://github.com/bluss/arrayvec/pull/240 and added a test that checks everything is actually zero (the cv_stack is truncated to 0 length, I could add a check that all it's content is also 0 but that will require some unsafe and assumes the underlying memory is not uninitialized(which it shouldn't be))
Also removed the digest/std from the std feature and added no-default-features to zeroize

This is looking really good. I'm also working on a big refactoring that'll probably get rid of the platform members that have to be skipped here, and that'll clean things up even more when it lands.

but that will require some unsafe and assumes the underlying memory is not uninitialized

I think the robust way to do this is to use std::mem::zeroed or similar to create the object. I'm totally fine with unsafe code in tests if you'd like to do this. We could even cast the whole thing to [u8; mem::size_of::<Hasher>()] afterwards and assert each byte :)

I think the robust way to do this is to use std::mem::zeroed or similar to create the object. I'm totally fine with unsafe code in tests if you'd like to do this. We could even cast the whole thing to [u8; mem::size_of::<Hasher>()] afterwards and assert each byte :)

I'm concerned this might be UB if Hasher contains padding bytes, even if we wrote into them (which Zeroize doesn't promise to zero out padding) they might not be preserved

Hmm that's an interesting point. (I'm definitely going down a rabit hole here but I do love this rabbit hole :-D) The assignment of the return value of mem::zeroed isn't guaranteed to be semantically a memcpy of the whole thing; it could be a field-by-field copy instead. We can reason that Hasher isn't going to contain any padding bytes, so in all likelihood this is a distinction without a difference, but it's not a #[repr(C)] struct so we're not supposed to do that. Any even if we use MaybeUninit to create a place that definitely starts as all-zeros, we might copy uninitialized bytes into it if assignment is a memcpy (the opposite case). Maybe there isn't a sound way to do this, without the standard library providing some sort of mem::freeze API.

Hmm that's an interesting point. (I'm definitely going down a rabit hole here but I do love this rabbit hole :-D) The assignment of the return value of mem::zeroed isn't guaranteed to be semantically a memcpy of the whole thing; it could be a field-by-field copy instead. We can reason that Hasher isn't going to contain any padding bytes, so in all likelihood this is a distinction without a difference, but it's not a #[repr(C)] struct so we're not supposed to do that. Any even if we use MaybeUninit to create a place that definitely starts as all-zeros (is that even true? under the covers it's an assignment of a union...), we might copy uninitialized bytes into it if assignment is a memcpy (the opposite case). Maybe there isn't a sound way to do this, without the language either specifying the exact semantics of assignment (undesirable from an optimization perspective probably) or providing some sort of mem::freeze API.

Yeah I don't see how this can be done soundly, even with mem::freeze we'd need to distinguish padding(might be non-zero) bytes from non-padding(has to be zero) bytes. unless we manually make sure there are no padding bytes on any architecture and then we can transmute and check

Ok theory aside, this looks great. Landed. Thank you!


Set current node version as environment variable because nvm is slow to load

When nvm use is run, set NVM_NODE_VERSION=x.x.x.
nvm is super slow to load, and when autoloading from .nvmrc it dramatically slows down opening a new shell. So I want to avoid running nvm version.
Currently only NVM_BIN=/Users/xxx/nvm/versions/node/v8.9.0/bin is set so to get the version it must be parsed.
It would be a nice convenience.

node -v is pretty quick though. This is fine.

Hey did you find a way to load node in a faster way?

NVM_CURRENT=$(echo $NVM_BIN | sed 's/.*\(v[0-9\.]*\).*/\1/')

if NVM_BIN is set, node -v works and is plenty fast enough.


Multi-select load in project browser is a feature that could easily be added Oscar

Rowan is capable of loading multiple project in one go, so having multi-select load would be an easy feature to provide

Will be in Jadeite 3.0.18


Sending a Sharing Invitation Problem

Hi all,
I am sending an invitation for a folder to a specific user using this url "https://api.onedrive.com/v1.0/drive/items/" + itemId + "/action.invite"
and posting the following parameters
{
"requireSignIn": true,
"sendInvitation": false,
"roles": [ "write"],
"recipients": [{'email'<EMAIL_ADDRESS>}
The url returned seems to be a public url since I open it from a browser that I am not logged in to OneDrive and I can see the contents of the folder.
What parameters should I use in order a folder to be available only to specific recipients?
Is it an acceptable behavior the link of the shared folder to be a public link considering that another person cannot find the link?
Thank you in advance.

As part of a repository clean up effort we are closing older issues. If this issue remains, please: open a new issue, reference this issue, and provide any additional details that may help in resolution. Thank you for your understanding as we work to improve our responsiveness.


Schedule#exception_rules behavior is incorrect

it should be:
    # Get the exception rules
    def exception_rules
      @all_exception_rules.select { |r| r.is_a?(SingleOccurrenceRule) }
    end

Though it would be better if there is an ExceptionRule class or something alike.

"Exception Rules" and "Exception Times" are different.
Both are handled internally as types of "Rules", but different types go into each category:

add_recurrence_rule: add all except single times (Daily, etc.) to @all_recurrence_rules
add_recurrence_time: add single times only to @all_recurrence_rules
add_exception_rule: add all except single times (Daily, etc.) to @all_exception_rules
add_exception_time: add single times only to @all_exception_rules

Reading exception_rules and exception_times should only give the different types back, so I don't think this is a bug: there are different methods for accessing these.
Exception Rules are deprecated in the newer iCalendar RFC 5545, (see the older iCalendar  RFC 2445 for reference). For now we continue to support them.
We can discuss what you're looking for, if there's an underlying reason for this issue, but let's close the PR #428 for now.

Thanks a lot for your explanations!!
I'm not familiar with iCal specifications, thanks for the references,
I'll check it out.
I'm using ice-cube for scheduling recurrent event in a project I'm
working on.
The original issue that got me into this was like this:

Create a schedule with recurrent rule (say daily)
Add a exception time
Update =schedule.start_time=
The exception rule is no longer effective now (Because it's a
SingleOccurrenceRule for a specific time and =schedule.start_time= was
changed)

The script to reproduce this:
    schedule = IceCube::Schedule.new(Time.parse('12:00'))
    schedule.add_recurrence_rule(IceCube::Rule.daily)

    schedule.next_occurrence
    # => 2017-10-17 12:00:00 +0800

    schedule.add_exception_time(schedule.next_occurrence)
    # => 2017-10-17 12:00:00 +0800
    schedule.next_occurrence
    # => 2017-10-18 12:00:00 +0800

    schedule.start_time = Time.parse('13:00')
    # => 2017-10-17 13:00:00 +0800
    schedule.next_occurrence
    # => 2017-10-17 13:00:00 +0800
    # But I want the exception_rule to be synced with schedule.start_time
    # So the next_occurrence will be 2017-10-18 13:00:00 +0800

The solution I came up with was to get all exception time and update
their times one by one, which is not very efficient but we can take it
for now.
So for this solution, I tried to use @exception_rules@ to get all the
exception rules but it didn't work (since I was using
@add_exception_time@ to add rule)
(Maybe you can suggest some better solutions for my requirement?)
Then I submitted this issue and the PR.
I think the problem here is about naming, I thought:

@exception_rules@ was about getting all exception rules instead of
all except single times
@exception_times@ was using @exception_rules@ to get all rules and
convert them into times

And I double checked SingleOccurrenceRule, it inherits Rule but it
doesn't implement to_ical method, which is a bit odd to me.
Maybe we can come up with better names to distinguish these methods and
classes better? (Or is there any background I'm missing here?)
Andrew Vit writes:

"Exception Rules" and "Exception Times" are different.
Both are handled internally as types of "Rules", but different types go into each category:

add_recurrence_rule: add all except single times (Daily, etc.) to @all_recurrence_rules
add_recurrence_time: add single times only to @all_recurrence_rules
add_exception_rule: add all except single times (Daily, etc.) to @all_exception_rules
add_exception_time: add single times only to @all_exception_rules

Reading exception_rules and exception_times should only give the different types back, so I don't think this is a bug: there are different methods for accessing these.
Exception Rules are deprecated in the newer iCalendar RFC 5545, (see the older iCalendar  RFC 2445 for reference). For now we continue to support them.
We can discuss what you're looking for, if there's an underlying reason for this issue, but let's close the PR #428 for now.

Aha, I see... everything is a static time, so you could write your own change_schedule_time(new_start_time) method, and loop over the exception_times & recurrence_times to add the difference.
It might be possible for us to have a schedule.change(days: 7, hours: -8) for example, which would move everything... but I'm not sure how other rules that are set up (e.g. day_of_month) should interact with this so maybe it's better left up to you.

Yes, I've implemented a similar solution like what you said.
I think a better solution could be excluding occurrences in order
(like excluding first occurrence, second occurrence, etc.) instead of
excluding a specific time.
But I don't have any background knowledge of iCal specs. This solution
might not be iCal compatible.


Fix travis: Concurrent.map does not expose default_proc

bf58182cc350a697b3eed67d8d1c41e32b8d27b2 changed underlying implementation from Hash to Concurrent::Map which removes the ability to test this way.

Thanks!


Separate column for android subversions

Experimenting with moving the Android subversions (e.g. 12, 12L) into a separate subcolumn of the "Versions" column.

What do we need to get this in?

Bump ;)


Error with 1.8.1 “Error importing Bitcoin Core descriptor wallet”

After upgrading to 1.8.1 on starting sparrow (which connects to a remote pruned node), I get an error that says:
The connected node is pruned at 2023/11/27, but the wallet birthday for XXX - Postmix is set to 2023/10/19.
Downgrading back to 1.8.0 I get no such error starting up.

[macOS intel]

thanks @craigraw,
so change this?:

to ??? - i notice that all the other wallets I have in there seem to have that defaulted to 20.

You can try reducing it to 20.
That said, I'd like to understand this better. Can you tell me

What is the result of running the command above? I'm looking for the range field for the receive descriptor, as in

{
      "desc": "wpkh(redacted/0/*)#9zjvaeq2",
      "timestamp":<PHONE_NUMBER>,
      "active": false,
      "range": [
        0,
        5034
      ],
      "next": 1035
    },

You should redact the xpub as I have done above.

In Sparrow, what is the highest used receive address index in this wallet? You can find it by hovering over the last used address in the Addresses tab, or looking at the index in the Receive tab.

The highest used receive address index plus the gap limit should be well below the top of the range in Bitcoin Core.

    {
      "desc": "wpkh(redacted/0/*)#m97e06gx",
      "timestamp":<PHONE_NUMBER>,
      "active": false,
      "range": [
        0,
        4000
      ],
      "next": 8,
      "next_index": 8
    },

If I understand what index I am looking for, it’s number 7 (when i hover over the last used receive address I see a tooltip with ../0/7)

Thanks for the info. It doesn't appear to be https://github.com/sparrowwallet/sparrow/commit/eecb90e9b277c35e7aa7b0f8484d454675b5ad62 that is causing this then.
I'll consider this further to try understand what's going on.

OK. fwiw, I tried changing the gap limit in that advanced dialog in Sparrow from 40 to 20 and then ran v. 1.8.1 again and still get the same error on starting up. I’ll downgrade again back to 1.8.0 for now just because I don’t like seeing error messages 😄.

Ok - I've found and fixed an issue in 6ee3755c.
Can you try the beta release at https://github.com/craigraw/beta/releases/tag/1.8.2-cormorant-range and report back?

That seems to have fixed it. No error on starting Sparrow with that beta.


Detect crops/plants/vegetation with the laser scanner

hi,
I would like to detect the edge of the crop.
i tried to modifyed the modROS.lua to make the lidar look down by changing line 309:
https://github.com/tud-cor/FS19_modROS/blob/642ddf9c7fbbcb6ad53aea7ad8f8e52b80050c29/modROS.lua#L308-L309
to:
localDirectionToWorld(self.instance_veh.cameraNode, i_laser_dx, delta_y * i -0.15, i_laser_dz)

and line 340:
https://github.com/tud-cor/FS19_modROS/blob/642ddf9c7fbbcb6ad53aea7ad8f8e52b80050c29/modROS.lua#L339-L340
to:
local scanning_plane_pitch = -math.atan2((delta_y * i-0.15) , radius)

instead of getting the ground i get the output that you can see in the image.
Any ideas what is causing this?

I don't immediately recognise what we're seeing here. The scale of the markers is also difficult to figure out from your screenshot.
The virtual laser scanner is attached to a node in the FarmSim19 model itself. Changing the orientation of the scanner would perhaps be easier / more transparent by either adding a new node with the desired orientation instead of directly editing the lines responsible for emitting the scans.
@tckarenchiang: what do you think?

@Sagexs: I believe this might be caused by:
https://github.com/tud-cor/FS19_modROS/blob/642ddf9c7fbbcb6ad53aea7ad8f8e52b80050c29/lua/mod_config.lua#L32
by default, the laser scanner ignores returns caused by the terrain. We do this to make the simple demos in fs_mod_ros work.
The circular patterns you see could be lines at the maximum scanning distance of the laser, but I'm not sure.
If you set that to false and reload FarmSim, the terrain should start showing up.

ignore_terrain

Unfortunately, I want to recognise exactly the ground or the edge of the crop, which is why I have set the parameter to true.
can you give me a hint how to change the "node in the FarmSim19"?
I changed the maximum range of the scanner, but nothing in the data changed.
it looks like, that directly in front of the scanner the data are correct, and only gets wrong if the y-Value is increasing.
Ps: i also updated the question with a second image

First: I believe it would be good to remember Farming Simulator is a game, not a purpose-built simulator for agricultural scenarios.
modROS tries to see how far we can take that game and use it for something it was not created for (ie: as a simulator for use with ROS).
This will inevitably mean there will be things which we cannot do. Whether what you describe (detect crops) is possible will be something to figure out.
Having written that:

I want to recognise exactly the ground or the edge of the crop

I'm not sure whether plants/crops show up on raycast results. @tckarenchiang: would you happen to know?
It could be the raycast mask needs to be changed for that:
https://github.com/tud-cor/FS19_modROS/blob/642ddf9c7fbbcb6ad53aea7ad8f8e52b80050c29/modROS.lua#L93-L99
right now we limit it pretty severely.
@tckarenchiang: could you add a reference to where we found those bits defined? Perhaps plants/crops have a bit that could cause them to show up.

can you give me a hint how to change the "node in the FarmSim19"?

I actually wrote:

The virtual laser scanner is attached to a node in the FarmSim19 model itself.

FarmSim vehicle models consist of many so called nodes, similar to TF frames in ROS. You can see those if you open the vehicle in the Giants Editor (you can download it at gdn.giants-software.com).
One of those nodes is used to attach the virtual laser scanner to in modROS. My suggestion was to see whether it would be 'cleaner' to change the base transform instead of changing the scanning planes directly.

1 Tilt laser scanner downwards issue
If you want to tilt the laser downwards, you can tune this parameter to a negative number. The larger the number is the more tilted the laser scanners are

@tckarenchiang: would you suggest to change the direction vectors of each individual ray (as @Sagexs is doing IIUC), or would it be better to change the orientation of the "entire laser scanner", such that the fov will point downwards automatically?

Here you can see that there is something fundamentally wrong with the calculation of the lidar beams. In real life, lidar beams can never cross because they are at an angle to each other and then rotate. In the picture I have positioned myself sideways against a wall. The beams seem to be calculated in a plane.
The error must be here but I can't see something wrong
https://github.com/tud-cor/FS19_modROS/blob/642ddf9c7fbbcb6ad53aea7ad8f8e52b80050c29/modROS.lua#L306-L310

It would help if you could show a screenshot of the situation in FarmSim as well.
And steps to reproduce it (ie: which level, which vehicle, any local changes to the .lua you've made, etc).

to reproduce it, you can use the original version of the script. Place the vehicle in an alley where you can see a wall on all sides. Set a Decay time > 0 of the scan msgs in Rviz.
It seems like for each layer a new scan msg is produce. If you now plot this scan msg directly into the frame you will get a wrong position of the points cause only the first layer is in a plane. Thats way in driver of mutli layer lidars they use own msgs par example http://docs.ros.org/en/noetic/api/velodyne_msgs/html/msg/VelodyneScan.html . Another way to get around this problem would be to use a pointcloud as message type.
What do you thing? Do i have a thinking error here?

what we are trying to simulate is not a multi-ring lidar but a multiple single ring laserscanners using sensor_msgs/LaserScan.
So we basically have 5 laser scanners which share the same origin but oriented slightly differently. Because the LS_FOV is set as 360 degrees (angle_max- angle_min, the beams cross each other.

I believe what @tckarenchiang writes is the cause of the confusion here @Sagexs.
The 5 planes of the 5 virtual laserscanners are not parallel, but all contain the same origin. This causes them to 'cross' if you wheel at the point of the origin, causing the scan which is 'lowest' in front of the vehicle to become the 'highest' at the back.
Does that correspond to what you observe?
An alternative arrangement could be to keep all laserscan planes parallel to each other by not changing the pitch of the planes, but their Z value. That should not be too difficult I believe @tckarenchiang ?

An alternative arrangement could be to keep all laser scan planes parallel to each other by not changing the pitch of the planes, but their Z value. That should not be too difficult I believe @tckarenchiang ?

No, it shouldn't be. I'll create a PR for this later.

@Sagexs I've created a PR regarding your issue. If you are interested, you could test that and see if it solves your problem.

@Sagexs: with #20 and #23 merged, we're now in a better position wrt the virtual laser scanner I believe.
The remaining issue appears to be detecting crops.
I've updated the title of your issue to reflect that.

Discussion about the collision mask we're currently using for the laser scanner in #35.

As discussed in #35, the laser scanner can't be used for detection of crops/vegetation. I'll close this issue.

This seems to be one area where the limitations of using a game engine (designed for real-time graphics and limited physics) become apparent.
raycastClosest(..) is really for collision detection and for 'occasional' detection of closest objects. @tckarenchiang found a way to use it to implement a virtual laser scanner, but it doesn't appear to work for all objects in the game (lack of collision geometry is likely the cause).


Find a way to make common defaults more visible

We should have a way to suggest changing certain component defaults per View.
Certain components are much more common candidates for overrides:

The tricky part is that we can't show a "current value" in all cases since generally, the current value is dependent on the exact dataresult (e.g. color fallback is implemented per visualizer and typically entity path dependent).
-> Either we limit ourself to components where we rely strictly on the placeholder (how to enforce?) or we somehow indicate that the default was not yet set.
The later is generally preferable since we want to be able to express what data is actually in the blueprint store, i.e. what blueprint has been sent from the code. If we were to show properties as-if a default was set, this makes the blueprint-code to viewer relationship quickly confusing!
I believe we want a ui that has the effect of “hey, hey! I'm a component that's cool to set as a default!" with neither showing the value nor indicating that it was already set 🤔

This is addressed by the new override UI: #6605

closing until we think it's not visible enough


Add support for rcl events

This is going to be a big PR ....
I don't want to send something massive, this at least compiles though it's not yet usable.
@jacobperron I would like some early feedback, does the proposed abstractions look good?

@jacobperron I would like to have a feature branch in this repo (e.g. feature/event_handlers_support).
I prefer merging this yet unusable (but compiling) code there, than update this PR repeatedly. Reviewing massive PRs is painful.
When that branch reaches an usable state, we should merge it into master (and delete it).

@ivanpauno I've given you maintainer access. You should be able to create branches now.

@ivanpauno Also, you should base your changes on the foxy-devel branch. Sorry the confusion with all the branches.

@ivanpauno Also, you should base your changes on the foxy-devel branch. Sorry the confusion with all the branches.

Ups, fixed.

@jacobperron if you think this approach is fine. I will merge this in a feature branch and continue working on a few follow ups:

Add methods in publisher/subscription to actually create an event handlers.
Make the executor collect event handlers and execute them.
Create one event status, and start writing up tests.
Add support to the other event statuses.

@jacobperron I have merged this into the feature branch, so I can continue with one of the other tasks listed here https://github.com/osrf/ros2_java/pull/4#issuecomment-672292148.
Let me know if there are any further comments here.


Initialize scripting support [add Rocket.Plugins.ScriptBase]

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Changes for asynchronous workflow execution using a run id and state files

Mega PR to:

Refactor FastAPI to use asynchronous execution of main application tasks and writing status files instead of blocking the http response.
Add a new workflow.py, Dockerfile-workflow-py, and workflow-py.docker.cloudbuild.yaml for running the workflow steps as a single python file instead of http requests. Add a deploy-job.sh and execute-job.sh to misc/bin/ which I've been using to fully tear down and rebuild a Cloud Run Job that executes workflow.py
Related to the above, fix the issue with the /copy endpoint silently failing to actually finish copying large files.

Switch to using requests.get (and added an option for curl) to download instead of urllib.requests.urlopen.
Do the download and upload of the file as two discrete steps to/from the local filesystem instead of streaming in-memory.

Turn off all info logging from model.py
Add helper function for logging the progress of some integer value on a time period. (e.g. <N> VCVs processed in <T> seconds). Switched logging in file download functions to use this. Added this to the main parse.parse_and_write_files function, logging the processed byte count and VCV count every 10 seconds.
Add reader wrapper CountReader to add a .tell method to readable things like google.cloud.storage.fileio.BlobReader that do not report where they are in the file.
Add partition_testing.py which is just a script that splits one ClinVar XML file into N of equal size.

Quick run on an GCP VM ran through in ~15m

Added a build-job.sh and execute-job.sh to misc/bin. Right now it deploys and runs a cloud run job with a name auto generated from the current git branch you're on. This can be adapted to individual dev environments. And maybe with a couple changes integrated into a github action.

Will include #81 in this PR


[Feature Request]: Ability to define up config inside package.json

Prerequisites

[x] I am running the latest version. (up upgrade)
[x] I searched to see if the issue already exists.
[ ] I inspected the verbose debug output with the -v, --verbose flag.
[x] Are you an Up Pro subscriber?

Description
This is not the end of the world or anything but I have mostly of my config inside package.json, it'd be nice to have up config there too instead of a dedicated up.json. 😄

fewer files is definitely nice buttttt I'm not sure it's worth having language-specific changes like that haha :D

😂 Yeah I'm just gonna close this, tsconfig and tslint json can't be defined in package.json either.


package alias in monorepo structure

Affected Packages
I get into a situation where I forked a monorepo repo and change one of its packages name and want to generate a changelog and handle versioning
Problem
Some other packages depend on that changed package but I use yarn/npm aliasing to keep referencing to the old name of the package, so the problem now when use changeset version it won't update package.json of other packages which use that package since the package name is not the same.
Proposed solution
a way to define if a package has an alias to be used if found and define that in config.json

Could you illustrate this with package.json contents of the packages involved in this?

package.json of a package which its name changed
{
"name": "renamed_package1",
"version": "1.2.3"
}
package.json of a package that depends on package1
{
"name": "package2",
"version": "1.2.1",
"dependencies": {
"package1"<EMAIL_ADDRESS>// package1 old name of renamed_package1 package
}
}
if you use changeset version package2 dependencies won't get update if package1 changed as it now called renamed_package1 the reason why I do this instead of just specify the new name is package2 has many files already referenced to the old name of package1 and keep backward compatibility with parent repo for any upcoming updated

I see - it makes sense to support this. I would accept a PR implementing this but I'm afraid that I won't have time right now to implement this myself.


Update server config instructions

Updated the README.md file:

removed the warning about passphrase-protected SSH keys being unsupported from the example mup.json file
added a link to the Table of Contents (under Server Configuration) that jumps to the instructions for configuring and using Meteor Up with passphrase-protected ssh keys

Thanks.

Anything I can do to help


chore(package): update ws to version 7.2.0

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Source Control

Issue Type: Bug
After last update, the source control panel doesn´t work
VS Code version: Code 1.64.2 (f80445acd5a3dadef24aa209168452a3d97cc326, 2022-02-09T22:02:28.252Z)
OS version: Windows_NT x64 10.0.22000
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz (8 x 3600)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.91GB (7.93GB free)

Process Argv
--crash-reporter-id 9dfb5e93-8631-40cb-8f8b-16d889e86875

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

simple-react-snippets
bur
1.2.6

bracket-pair-colorizer
Coe
1.0.62

react-redux-react-router-snippets
dis
0.4.29

es7-react-js-snippets
dsz
4.3.2

prettier-vscode
esb
9.2.0

vs-code-xml-format
fab
0.1.5

styled-snippets
fer
1.0.3

vscode-react-typescript
inf
1.3.1

styled-components-snippets
jon
0.10.0

vscode-styled-components
jpo
1.7.0

format-html-in-php
rif
1.7.0

LiveServer
rit
5.7.4

bootstrap4-vscode
the
6.1.0

vscode-icons
vsc
11.9.0

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvspyl392:30425749
pythontb:30283811
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscod805cf:30301675
pythonvspyt200:30340761
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593cf:30376535
vsc1dst:30433059
pythonvs932:30410667
wslgetstartedc:30433508
vsclayoutctrt:30437039
vsrem710:30416614
dsvsc008:30436278
pythonvsnew555:30436484
vsbas813:30436447
vscscmwlcmt:30436993

Please explain "doesn't work".
/needsMoreInfo

I am experiencing this same issue. "Doesn't work" honestly is a reasonable description, but to provide more exact details, the only thing that shows up is the "Initialize Repository" stuff.
The button is grayed out, but still clickable, however, clicking does nothing.
This was tested on multiple Repo's, and having restarted multiple times.

I just went through and disabled/enabled all of my extensions until it worked again, vscode-Icons was the one that, when disabled, allowed it to work again.

@JosueSO it looks like you are also using the extension which caused a problem for @deefdragon
When investigating VS Code problems the Start Extension Bisect command is often useful.

@deefdragon, very interesting. Could you please share the contents of the contents of the Log (Extension Host) output channel. I would really like to track down the reason why an extension (vscode-icons) interferes with the SCM viewlet. Thank you very much.

I'm actually no longer able to get the issue to trigger, even on the old version of the extension.

I had the same issue, but in my case it was caused by the Peakcock extension.
There is nothing suspicious in the extension host log AFAICS:
[2022-02-25 12:26:16.998] [exthost] [info] Extension host with pid 19455 started
[2022-02-25 12:26:17.540] [exthost] [info] ExtensionService#_doActivateExtension vscode.typescript-language-features, startup: false, activationEvent: 'onLanguage:typescriptreact'
[2022-02-25 12:26:17.551] [exthost] [info] ExtensionService#_doActivateExtension clinyong.vscode-css-modules, startup: false, activationEvent: 'onLanguage:typescriptreact'
[2022-02-25 12:26:17.613] [exthost] [info] ExtensionService#_doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft'
[2022-02-25 12:26:17.628] [exthost] [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: true, activationEvent: '*'
[2022-02-25 12:26:17.640] [exthost] [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.github
[2022-02-25 12:26:17.659] [exthost] [info] ExtensionService#_doActivateExtension redhat.vscode-yaml, startup: true, activationEvent: '*', root cause: 42Crunch.vscode-openapi
[2022-02-25 12:26:17.713] [exthost] [info] ExtensionService#_doActivateExtension johnpapa.vscode-peacock, startup: true, activationEvent: '*'
[2022-02-25 12:26:17.750] [exthost] [info] ExtensionService#_doActivateExtension KnisterPeter.vscode-github, startup: true, activationEvent: '*'
[2022-02-25 12:26:17.869] [exthost] [info] ExtensionService#_doActivateExtension ms-vsliveshare.vsliveshare, startup: true, activationEvent: '*', root cause: ms-vsliveshare.vsliveshare-audio
[2022-02-25 12:26:18.062] [exthost] [info] ExtensionService#_doActivateExtension RobbOwen.synthwave-vscode, startup: true, activationEvent: '*'
[2022-02-25 12:26:18.221] [exthost] [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github'
[2022-02-25 12:26:18.668] [exthost] [warning] [redhat.vscode-yaml] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '[yaml]', provide the URI of a resource or 'null' for any resource.
[2022-02-25 12:26:18.874] [exthost] [warning] [redhat.vscode-yaml] Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '[yaml]', provide the URI of a resource or 'null' for any resource.
[2022-02-25 12:26:27.516] [exthost] [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onStartupFinished'
[2022-02-25 12:26:27.521] [exthost] [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished'
[2022-02-25 12:26:27.526] [exthost] [info] ExtensionService#_doActivateExtension esbenp.prettier-vscode, startup: false, activationEvent: 'onStartupFinished'

We have tracked down a problem with the extension activation code (https://github.com/microsoft/vscode/issues/144518) that has been fixed yesterday. Tomorrow's (2022-03-11) Insiders release should contain the fix to the extension activation code.

Closing as duplicate of #144518

I am having a similar but different problem. When running VS Code on our Linux cluster my source control panel looks like this:

The source control panel works correctly on my local laptop with the same repo. I have disabled all extensions and the problem persists.
The only pertinent information I can think of is that the particular server I am running VS Code on cannot talk to github (due to credentials problems). To push/pull to github I have to use the command-line on a different server. However, it used to work for showing the local repo changes.
What other information can I provide?

@spinicist, are you running the same version of VS Code on all the machines?
Could you please open dev tools (Developer: Toggle Developer Tools command) and see if there are any errors?

On both Linux servers the VS Code version is 1.63.2
There is an error, but this seems to be present on both remote servers:
ERR [Extension Host] (node:117619) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use code --trace-deprecation ... to show where the warning was created)
workbench.desktop.main.js:77 [Extension Host] (node:117619) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use code --trace-deprecation ... to show where the warning was created)

@spinicist, could you please file a separate issue to track this problem? Thank you!

Hi @lszomoru, sorry for the delayed response.
Today I was trying to diagnose a different problem, and during that I deleted the ~/.config/Code directory. I restarted Code after doing that, and source-control appears to work again. So consider this closed again for now!


fix nextjs-mf page loading

Fixes related to nextjs-mf pages loading
Document with issues:
https://docs.google.com/spreadsheets/d/1RPJxmf22_5jnB7UmWRfKSKcw-bI6awMl5EpDiw0Ktqs/edit#gid=319639235

ahh.
im hoping to move the demo off route stitching and use the more traditional pattern of import/export the page
But not ready yet :P
Thanks for fixing this!


deps: bump sigs.k8s.io/karpenter to v0.36.7

Fixes #N/A
Description
Pin sigs.k8s.io/karpenter to v0.36.7
How was this change tested?
make presubmit
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.273%

Totals

Change from base Build<PHONE_NUMBER>1:
0.0%

Covered Lines:
5685

Relevant Lines:
7263

💛  - Coveralls


Joins not supported?

I'm getting errors when I try to join 2 rest api get request / responses on some common property.
For example:
SELECT
  *
FROM
  "openapi"."default"."get_api_foo" as F
WHERE
  F."some_json_prop" IN (
    SELECT
      B."some_json_prop"
    FROM
      "openapi"."default"."get_api_bar" as B
    WHERE
      B."some_json_prop" IS NOT NULL
    LIMIT
      5
  )

Seems to always give me an invalid response code for getRows. Feels like it's trying to construct an invalid request but not entirely sure. Just wondering if this kind of usage should work or if I'm barking up the wrong tree.

What error are you getting?

The error message states, "Missing required constraint for "join field name""

Ah yes, this is expected because the connector doesn't implement dynamic filtering. It also currently only supports single values in predicates. I'll eventually implement this, but can give any estimates when.

There's a lot of groundwork required for this done in #103, but to properly support dynamic filtering in joins, the connector would need to provide statistics. It might be simpler to implement once #93 is done.


Get BACI notebook working with Python3 and Seaborn

Need to resolve:

virtualenv + pip + install seaborn
Python3 requirements

Section 1 working hurrah, needed to deal with print statements and additional issues
Cell [84] changed %matplotlib inline from  %matplotlib notebook
Python 3 issue xrange is now range

Section 2 all working apart from SyntaxError: import * only allowed at module level.  However, suspect the problem is we are missing a file called grid_lines.py
if os.path.isfile('grid_lines.py'):
    Import some additional functions
    #from grid_lines import *
    print("found file")

I put an else statement which unsurprising indicates no file.
Apart from no gridlines, everything else seems to work and the Good News !!!!! is that the GeoTiff generated writes successfully to my home directory.  GDAL and other libraries are successfully imported

also having a few problems upating ceda notebooks from JASMIN
(gnome-ssh-askpass:55111): Gtk-WARNING **: cannot open display:
error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass'

@EstherConway , firstly, great work getting the python 3 port done 👍
Regarding the error above:

it is a combination of issues:

You don't seem to have "-X" forwarded (or set up correctly) so it is failing to open a graphical window
The tool gnome-ssh-askpass is trying to open a graphical window to allow you to type your password in.

I think the easiest fix is to get it to prompt for your password without opening a graphical window. You can make that happen by typing:
unset SSH_ASKPASS

I actually have this line included in my ~/.bashrc file so that it is always unset in my sessions. I'd recommend doing that.


Library is incompatible with Server-Side Rendering (SSR)

I'm using this library with server side rendering (SvelteKit in my case, but it shouldn't matter) and when importing the library on the server side, I am getting a Node error window is not defined
It looks like there is a top-level reference to window since support for CSS layers was added a few months back (https://github.com/oddbird/popover-polyfill/pull/178/files#diff-69e41edf30fc514f48f42b118e1a634d01e739c8c5b5981a35f545cdf645903eR37)
var hasLayerSupport = typeof window.CSSLayerBlockRule === "function";

Could this either be checked at usage time instead of at the top level like this? Or check for window being defined before accessing properties on it?
Sorry, I would submit a PR myself but I have a three week old child and am totally exhausted for picking up new tasks at the moment :)
Thank you!! I am happy to use modern APIs when possible and so this polyfill makes that possible

Thank you @jgerigmeyer, works great now :)

For any future visitors to this issue who might be struggling with SSR:
Make sure you are using the /fn import and checking for support before applying the polyfill
	import { isSupported, apply } from '@oddbird/popover-polyfill/fn';

	// ...

	if (typeof window !== 'undefined' && !isSupported) {
		apply();
	}

Importing the main import will automatically apply it, which happens on the server as well and will not work if window / document are not present.

Hm, I wonder if isSupported should check for that. @keithamus What do you think?

Sounds like a reasonable thing to do. No point applying if some base classes don’t exist.

@fzembow Starting in v0.4.3 the polyfill will check for typeof window !== 'undefined' before running, so you should be able to use the default build in SSR contexts.


Make parallax required in the Parallax table

The parallax field should be required in the Parallax table.
Also update the docs to add little * to the fields to indicate that they are required.

Actually, all key values should be required in the various tables.


allow losers to guess after game ends before board shows

Created by sdhar (サミア ダー)

What happens if the losing team guesses the remaining clues?  Is it a tie?

What happens to the in-game timer?  (Reset, set to specific value, unchanged?)

Closed by eric (Eric Fields)


Missing Mock Server Feature

I have checked the following:

[X] I've searched existing issues and found nothing related to my issue.

Describe the feature you want to add
The missing Mock Server feature in Bruno limits the ability to simulate API responses for testing. Without it, developers face challenges in isolating and testing applications without real backend services. Adding this feature would significantly enhance testing and development capabilities.
Mockups or Images of the feature
The missing Mock Server feature in Bruno limits the ability to simulate API responses for testing. Without it, developers face challenges in isolating and testing applications without real backend services. Adding this feature would significantly enhance testing and development capabilities.

Hey @kapvas !
Support for Mock Sever on our long-term roadmap, but we don’t have an estimate for when it will be implemented.
It may take some time before we get to this.


How can I combine drag by the handle with custom drag preview?

The problem is that I have the same problem as here. Here is the main insight from that issue:

Make sure ItemDragPreview isnt also a DragSource

But how can I implement it, cause I need a DragPreview as a dnd handler?
This is how dnd handlers are implemented:
function collectSource(connect, monitor) {
  return {
    connectDragPreview: connect.dragPreview(),
    connectDragSource: connect.dragSource(),
    isDragging: monitor.isDragging(),
  };
}

function collectTarget(connect, monitor) {
  return {
    connectDropTarget: connect.dropTarget(),
    isOver: monitor.isOver(),
  };
}
const taskSource = {...}
const taskTarget = {...}

class NormalRow extends Component {
  componentDidMount() {
    const { connectDragPreview } = this.props;
    if (connectDragPreview) {
      // Use empty image as a drag preview so browsers don't draw it
      // and we can draw whatever we want on the custom drag layer instead.
      connectDragPreview(getEmptyImage(), {
        // IE fallback: specify that we'd rather screenshot the node
        // when it already knows it's being dragged so we can hide it with CSS.
        captureDraggingState: true,
      });
    }
  }
render() {
  const element = (

        {columns.map(this.renderCell)}

     );

 return connectDropTarget(connectDragPreview(

          {connectDragSource(
)}
          {element}

,
      ));
 }
}

export default flow(
  DragSource('entity', taskSource, collectSource),
  DropTarget('entity', taskTarget, collectTarget),
)(NormalRow);

This is how I trying to create a custom dragLayer:
class CustomDragLayer extends React.Component {
  renderItem = (type, item) => {
    switch (type) {
      case 'entity':
        return <EntityDragPreview item={item} />;
      default:
        return null;
    }
  };

  render() {
    const { item, itemType, isDragging } = this.props;

    if (!isDragging) return null;

    return (

          {this.renderItem(itemType, item)}

    );
  }
}

export default DragLayer(collect)(CustomDragLayer);

class EntityDragPreview extends React.Component {
  render() {
    const { item: { renderRow, row, draggingRowNumber } } = this.props;

    return (

        <dsiv style={{ backgroundColor: 'red', position: 'absolute', left: '-20px' }}>
          {renderRow(row, 3, true, draggingRowNumber)}
        </dsiv>

    );
  }
}

export default EntityDragPreview;

Here is screenshot:
https://ibb.co/X4P7JgD
grey background - shadow from draggable element,
white background - HTML styles, which I want to remove,
red background - custom drag preview.

I met the same problem, if your has solved the problem ,could tell me

I met the same problem, if your has solved the problem ,could tell me

I still haven't found any solution for this

Have you looked at this example? http://react-dnd.github.io/react-dnd/examples/customize/handles-and-previews

If you're looking to combine a drag-handle with a drag preview image, here's a sandbox I made to demonstrate mixing those two things: https://codesandbox.io/s/nmrp33p2m

如果你想把拖拽手柄和拖拽预览图像结合起来，这里有一个沙盒我用来展示混合这两件事：https：//codesandbox.io/s/nmrp33p2m

i want to use handles to drag and sort list

https://codesandbox.io/s/9jl8mz3x6y

@darthtrevino how to implement custom drag layer to this code ?

I managed to combine drag source + drop target with drag preview by repeating
this.props.connectDragPreview(getEmptyImage()); at componentDidUpdate method of drag source component like so


Missing documentation for Intrinsic Functions

This page is missing documentation for some functions defined in https://github.com/dotnet/msbuild/blob/master/src/Build/Evaluation/IntrinsicFunctions.cs

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 82a1a083-bea0-e53e-dc9e-78f201ac1314
Version Independent ID: 904dae68-65cb-ec55-2fb3-1075ceaf6f1c
Content: Property Functions - Visual Studio
Content Source: docs/msbuild/property-functions.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @ghogen
Microsoft Alias: ghogen

I'll take a crack at this @ghogen.


FIPS: replace MD5 with SHA1

rubocop fails when host has enabled FIPS mode because MD5 will
be disabled. Replaced MD5 with SHA1 which my benchmark is also
shown to be faster at least on SkyLake + Red Hat Enterprise Linux
7 across Ruby 2.0.0, Ruby 2.3.8, Ruby 2.4.5, Ruby 2.5.3, and
Ruby 2.6.1.

Replace this text with a summary of the changes in your PR.
The more detailed you are, the better.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[ ] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

What impact do we expect for users? The caching mechanism will "miss" all lookups on the next run after upgrade, right? Anything else?

Correct. The change will cause cache "misses" on the next run. That could be avoided by including MD5 within rubocop or at least not use digest/md5 which relies on openssl.
Granted this probably does not impact too many users but we hit this as soon as we rolled out required FIPS mode on all of servers in production and development.

FIPA is mentioned in the “Digest algorithms” section of the Digest documentation: https://ruby-doc.org/stdlib-2.5.3/libdoc/digest/rdoc/Digest.html#module-Digest-label-Digest+algorithms
I cannot measure any performance difference between Digest::MD5 and Digest::SHA1. For our purposes, I think cryptographic strength and collision guarantees aren’t that important, as long as the hashing is fast and deterministic.
This change will invalidate the all users’ RuboCop caches, but I’m not sure that is enough of an inconvenience that it should stop this PR.

Rather than changing the default algorithm, it is better to provide some option that can be changed to another algorithm. I think that impact should not be given to users by measurement of implementation-dependent.

I also considered making it user configurable whether to use Digest::MD5 or Digest::SHA1. But since all we really want is a reliable, fast hash function, our users shouldn’t care which digest algorithm is used internally – as long as it works.

But since all we really want is a reliable, fast hash function, our users shouldn’t care which digest algorithm is used internally – as long as it works.

Ah, sure. I agree!

I agree with the proposed change. The impact on the end users is acceptable IMO.

@dirtyharrycallahan Could you write the change log entry to ### Changes section of CHANGELOG.md?
https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md#changes
Change log entry format is as follows.
https://github.com/rubocop-hq/rubocop/blob/master/CONTRIBUTING.md#changelog-entry-format

Working on it.

I wrote some review comments. Please squash your commits into one when these are done :-)

Been out of pocket. I messed up the PR by including some internal changes. Let me try to fix this up tonight.

@dirtyharrycallahan Ping :-)

My github/git foo is not strong. Let me see if I can figure how to fix this up without create a new PR.

My github/git foo is not strong.

Feel free to post specific questions. I can help. I'm sure others here would love to help too.

I've committed this myself.


Moved list object to individual objects

What does this PR do?
Affects the Helm template for the Service objects: This PR removes the List object for Services in favor of using the two  individual Service objects.
Why? For better compatibility with Kubernetes linters, generators and operators.
Motivation
The kind: List object is typically convenience type used by kubectl for lists of mixed types. In this specific case it contains two Service object. The use of List objects still is a bit opague. Since it is the only List object used in the Helm chart, and it does not add functionality, I opt to remove the LIst object and move the two nested Service objects to the top level.
Context on the List object:

https://github.com/kubernetes/website/issues/25944
https://github.com/kubernetes/kubectl/issues/984

More

[x] Yes, I updated the chart version

Additional Notes
Tests pass

Resolved merge conflict and updated affected tests

Hello @mpepping
Thanks for your PR. I rebased and updated it with the last changes.
I'm also thinking about making a template shared for both services, since the diff between them is quite small:
--- udp	2022-10-10 17:53:15.985501715 +0200
+++ tcp	2022-10-10 17:53:58.841614989 +0200
@@ -1,7 +1,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ template "traefik.fullname" . }}-udp
+  name: {{ template "traefik.fullname" . }}
   labels:
     app.kubernetes.io/name: {{ template "traefik.name" . }}
     helm.sh/chart: {{ template "traefik.chart" . }}
@@ -11,25 +11,25 @@
   {{- toYaml . | nindent 4 }}
   {{- end }}
   annotations:
-  {{- with (merge .Values.service.annotationsUDP .Values.service.annotations) }}
+  {{- with (merge .Values.service.annotationsTCP .Values.service.annotations) }}
   {{- toYaml . | nindent 4 }}
   {{- end }}
 spec:
   {{- $type := default "LoadBalancer" .Values.service.type }}
   type: {{ $type }}
   {{- with .Values.service.spec }}
-  {{- toYaml . | nindent 4 }}
+  {{- toYaml . | nindent 2 }}
   {{- end }}
   selector:
     app.kubernetes.io/name: {{ template "traefik.name" . }}
     app.kubernetes.io/instance: {{ .Release.Name }}
   ports:
-  {{- range $name, $config := $udpPorts }}
+  {{- range $name, $config := $tcpPorts }}
   {{- if $config.expose }}
   - port: {{ default $config.port $config.exposedPort }}
     name: {{ $name }}
-    targetPort: {{ if $config.http3 }}{{ $config.port }}{{ else }}{{ $name | quote }}{{ end }}
-    protocol: UDP
+    targetPort: {{ $name | quote }}
+    protocol: TCP
     {{- if $config.nodePort }}
     nodePort: {{ $config.nodePort }}
     {{- end }}

Wdyt ?

I'm also thinking about making a template shared for both services, since the diff between them is quite small:
[..]
Wdyt ?

Even better! Both objects are quite similar. Nice work!


OpenAI Chat Service classes should support function calling and other API updates

OpenAI just released new features to the chat completion API.
https://openai.com/blog/function-calling-and-other-api-updates
Our chat services objects should accommodate these updates.

Do you have some plan on how to implement this ?
The sk has a dependency with azure sdk, the current implementation rely on Azure SDK event for abstract chat concepts,  for example on the Azure.AI.OpenAI.ChatRole class, are you thinking to wait for this  https://github.com/Azure/azure-sdk-for-net/issues/37013 ?
I think that should be better to have the model for chatting without dependencies with any other external library, so that different services provider (OpenAI, Azure Open AI or any other provider) can evolve at their own rythm.

The latest release of the Azure.AI.OpenAI already supports Chat Functions. Can someone please share the plans on how this feature will be accommodated to Semantic Kernel (especially, the planner)?

Just saw that too. Here is the blog post announcing this yesterday: https://techcommunity.microsoft.com/t5/azure-ai-services-blog/function-calling-is-now-available-in-azure-openai-service/ba-p/3879241
This would greatly improve the reliability of planners in SK in generating JSON.

What's the difference between SK's planner + custom skills and function calling?

Just created a first implementation for this #2356

What's the status on the dotnet implementation? I've done my own and if there isn't any plan on for this on the teams end I can submit a PR

@eavanvalkenburg and @Kevdome3000, can both of you please give a summary on how you are leveraging the function calling in your implementation? Like, what improvement does it bring to semantic kernel in your minds?
IMHO, the function calling, to some extent, makes semantic functions less necessary. As a user, I'd like to use native functions with function calling, and having semantic kernel to handle all the argument validation and invocation behind the scene (custom validation is optional and should be allowed). Of course, API should be exposed to let the user choose whether to run a function during the chat completion.

This is the LangChain issue thread about supporting function calling: https://github.com/langchain-ai/langchain/issues/6196
This is an example of using function calling in a LangChain agent: https://python.langchain.com/docs/modules/agents/agent_types/openai_functions_agent

I reference them here in the hope that they can inspire the design in Semantic Kernel to incorporate the OpenAI function calling feature.
LangChain get the function calling integrated soon after the feature was announced. I think the Semantic Kernel team should move faster on this work.

@awharrison-28 is there a specific branch to track the development of this feature for C# / .NET?

@daxian-dbw here is a rough implementation: https://github.com/microsoft/semantic-kernel/pull/2597. Happy to collab on improvements

Hi all -- I'm the SK engineer working on the .NET implementation. Sorry for the silence here, it's been a crazy busy couple of weeks, so I hadn't made a lot of traction on it yet. Thanks @Kevdome3000 for kickstarting the .NET effort with your PR! I will take a look through in a bit and see how it aligns with what we were thinking.
From the SK team's perspective, it's important we maintain a consistent architecture between the Python and .NET implementations (and any future language implementations as well), so I am working to capture design decisions in an ADR over the next few days, as we align the implementations and get them closer to check-in ready.

Java will revisit this post-beta (October).

Just wanting to jump in here and add another scenario to where function calling is useful.
I'm building a demo app where we're indexing video transcripts for searching (via vectors) and then using the results in chat completions.
If we start with a user-provided prompt like:

Find me sessions on leadership

We could get back a list of say five but there could be more, and the completion alludes to that. So the user would want to do a new prompt like:

Give me the next 5

Now we've got a branch in our logic, we're wanting to re-execute the original prompt but when we query the memory store we use an offset of five so that we can give more results. And this is where functions would be useful. We'd have two functions, get_sessions and get_more_sessions, then when we do the initial completion we'd get back a function name that tells us which to call and then we execute the right pipeline.
I've got some working demos of this app (both in .NET and Python) to demonstrate if that'd be of help.

Hi all, thank you again for your perspectives and the explorations/implementations for this feature!
We on the SK team have been having in-depth design discussions to determine how this capability fits into the greater architectural vision for SK. These conversations are still ongoing, and we are evaluating several different approaches and design questions (including those presented through the PRs linked here).
I hope to have more clarity on the architectural direction we want to take within the next week, so until then I am marking both PRs as draft and will follow up. Thanks again for the great conversations here.

@Kevdome3000 very nice work! Thanks.

Hello everyone, thanks for your patience with this! I've got a draft PR for an alternative .NET approach here: https://github.com/microsoft/semantic-kernel/pull/2842. Feel free to take a look!
Since this feature is only supported for OpenAI, we are trying to contain changes to the OpenAI connector as much as possible. This approach keeps the door open to add planners around this feature in the future. I am still working to tie up some loose ends, capture all our design decisions, and add validation/tests.

Anxiously awaiting the new preview package to be pushed out. I saw the nightly builds included this update but none of those packages are actually available on nuget. I'm hoping to demo this functionality for a presentation I am doing in 9 days! Seems like the weekly pre-release skipped a week so really hoping one is created this week and soon. Thanks for your hard work!

Thanks @bgbbmm for your interest in this new feature. The Semantic Kernel team is prepping for its v1.0.0 release which will include many breaking changes as we improve the interface. Because of the number of breaking changes, we'll be skipping one additional week before providing our v1.0.0.RC1 release on Monday (10/9).
If you are interested in using the nightly build in your existing project, I'd recommend pulling it down with the following command dotnet add package Microsoft.SemanticKernel --version 0.26.231003.1-nightly. Thank you for your patience as we prep for v1.0.0.

@matthewbolanos Thanks for responding Matthew. I had actually tried to add the nightly build package a few days ago, but I got an error stating the package didn't exist/could not be found. When I looked in nuget I also didn't see any of the nightly packages either.

I just realized my mistake with this. I was only looking in nuget.org.

Hi @bgbbmm !
We created draft PR with instructions how to access nightly builds: https://github.com/microsoft/semantic-kernel/pull/3061
Please let us know if that helps. Thank you!

Thank you both. I was able to add this package yesterday with the same style of command.
I was surprised to see the number of breaking changes between the previous release and the nightly build, so I now understand why you've held off. Thanks and I can't wait to build something really useful with these functions!

Using today's nightly build I was looking at the example Example59_OpenAIFunctionCalling.
Locally I tried to copy and run this to see how it worked, however the method "ImportPluginFunctionsAsync" doesn't appear to exist. There is a function "ImportAIPluginAsync" which seems similar, but if I try to use that then I see a compile error stating: "Reference to type 'ISKFunction' claims it is defined in 'Microsoft.SemanticKernel.Abstractions', but it could not be found"
Anyone have thoughts on this?

@bgbbmm This sample takes a dependency on Microsoft.SemanticKernel.Functions.OpenAPI since it imports the Klarna plugin to use in the example. In the latest package, ImportPluginFunctionsAsync replaces ImportAIPluginAsync, as the latter is being deprecated to align to our new naming scheme. It seems like you might not have the latest version of that package.
To fix this, you have a few options:

Replace ImportPluginFunctionsAsync with ImportAIPluginAsync in the example code (the functionality is the same)
Get the latest nightly build of Microsoft.SemanticKernel.Functions.OpenAPI
Remove the dependency on Microsoft.SemanticKernel.Functions.OpenAPI by commenting out the line that imports the Klarna plugin

Hope that helps.

@bgbbmm This sample takes a dependency on the Microsoft.SemanticKernel.Functions.OpenAPI package since it imports the Klarna plugin to use in the example. In the latest package, ImportPluginFunctionsAsync replaces ImportAIPluginAsync, as the latter is being deprecated to align to our new naming scheme. It seems like you might not have the latest version of that package.
To fix this, you have a few options:

Get the latest nightly build of Microsoft.SemanticKernel.Functions.OpenAPI
Keep the version you have, and replace ImportPluginFunctionsAsync with ImportAIPluginAsync in the example code (the functionality is the same)
Remove the dependency on Microsoft.SemanticKernel.Functions.OpenAPI by commenting out the line that imports the Klarna plugin

Hope that helps.

Yes thank you, I did not realize there was a missing dependency. Thank you for the explanation and clarification on the updated naming conventions.


Fix ProjectRootElement.SdkReference

The logic around whether or not to mark the project dirty when changing one of the three properties for an SDK on an import was not taking into account that a new value might be coming from a setter.  The code now accepts these values and calculates whether or not the set operation affects the import element.
I also renamed the property to make it more clear what it represents.
I added a unit test before fixing the code to verify that this is correctly verified.
Fixes #5320

I need to check out the scenario when you set the value to null, don't merge until I've replied about that please 😄

I have updated the logic to allow setting Version and MinimumVersion to null.  Ready for final review!


update ksonnet lib printer with array comprehensions

Signed-off-by: bryanl<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 833

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 4.567%

Totals

Change from base Build 831:
0.0%

Covered Lines:
19

Relevant Lines:
416

💛  - Coveralls


Slider duplicating on rerender

When I use the Slider component and a rerender happens (state or props change), then the slider will be duplicated.
Might possibly be the same error source as #7? (A problem with the remounting by mdl)
Minimal setup:
class SliderTest extends Component {
  updateState = e => {
    this.setState({
      value: e.target.valueAsNumber
    })
  }

  render(_, { value }) {
    return (
      <div>
        <Slider name='test' min={0} max={100} value={value} onChange={this.updateState} />
      </div>
    )
  }
}

After some changes will render this:

For an example see here:
https://codesandbox.io/s/6wx9r52lw
I will try to tackle this myself as well, but I do not know if my prect / mdl knowledge is enough for that 😅 .

Maybe this is why the onInput callback doesn't seem to work for me? You can drag it a bit but then it hangs.


Issue when updating an Enum which is already in used by another table

Hey - kudos on developing this !!
I ran against some trouble when trying to apply a migration when I altered an enum which was already in use in some existing table.
sqlalchemy.exc.InternalError: (psycopg2.errors.DependentObjectsStillExist) cannot drop type statusenum_old because other objects depend on it
DETAIL:  column status of table tenant_default.gaussian_splatting_modelzoo depends on type statusenum_old
column status of table tenant_default.pipeline_tasks depends on type statusenum_old
column status of table tenant_default.ci_jobs depends on type statusenum_old
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

Is there a way to pass this CASCADE argument to the query?

Please provide generated migration for more context


Xcorner 8 hero slider

Changes:

Create the hero slider widget
Implement the widget on the homepage

@mgbelegu also please use kebab case for the folder names like hero-slider instead of Hero Slider

@marcinkrzeminski Hi, can you please check again?


Fix for issue #159 findAnchoringEvent rename to findAnchoringSealEvent

Fix for issue https://github.com/WebOfTrust/keria/issues/159

Closing as a duplicate of https://github.com/WebOfTrust/keria/pull/157


why force env continue even though it returns done?

in tree/UCT.py 185 line, force done to False

Hi Zixin,
Thanks for the feedback. I think you're right. The code should use the done signal provided in line 179. However, I think this will not change the actual behavior of the agent since it will only perform one extra step with reward 0 (generated in line 192) before the while loop in line 189 terminates.

another question,  tree/UCT.py 185 line the loop seems to be loop running trajectory with out env.reset and your loop_name is simulate_single_step. "simulation" starts on a new expand node , right?

Each call to simulate_single_step does one rollout (i.e., selection, expansion, simulation, and backdrop). Those calls to simulate_single_step iteratively grow the search tree and accumulate the information collected by the simulations.
Simulation not necessarily starts from a newly expanded node, in certain cases (e.g., the width and depth threshold of the search tree are met), simulations could begin with an existing node.

so , you simulate a node args.max_step times, and didn't reset the env to the raw state after one simulation?

Unfortunately, I don't fully get your question but no node will be simulated max_step number of times. Each time simulate_single_step is called a different node is selected for simulation based on the tree policy (the selection step).
checkpoint_data_manager is used to store checkpoints of the environment. Every time a different state is being simulated, its checkpoint will first be loaded by load_checkpoint_env.

thanks, I understand.

One more question, why we need simulate_trajectory ,can we just call self.simulate_single_move(init_state) ?

This is the classic way of using MCTS for planning, which is the methods used in AlphaGo, AlphaZero, MuZero, etc. In a typical MCTS planning setup, we have a state that we want to decide which action to choose. The MCTS is initiated with a single root node corresponding to that state. After performing several rollouts and building a search tree, the MCTS agent hopes to use the information in the tree to decide which action it wants to take. Then we take that action and arrives in the next state, where we again use MCTS to decide which action to choose.

thanks


Typo in README?

You say to
conda env create --name pygdf_dev --file conda_environments/testing_py35.yml, but it seems to produce a conflict (Mac OSX) since in the name field in the yaml file there's another string.
Using
conda env create  --file conda_environments/testing_py35.yml just goes fine.

The --name option is to specify an alternative name.  The name in the yaml file is the default if --name ... is not given.  The rest of the readme refer "pygdf_dev".

If you see something like CondaValueError: prefix already exists: /Users/me/miniconda3/envs/pygdf_dev, it is just that you already have an environment named "pygdf_dev".  You can use any other name you like in --name <envname>.


runtime_config_linux: Fix 'LinuxSpec' -> 'LinuxRuntimeSpec' in comment

Fix a copy-paste error from 7232e4b1 (specs: introduce the concept of
a runtime.json, #88).

LGTM

LGTM, merging.


Envoy proxy with GRPC server streaming support getting UNAVAILABLE: upstream request timeout

If you are reporting any crash or any potential security issue, do not
open an issue in this repo. Please report the issue via emailing
<EMAIL_ADDRESS>where the issue will be triaged appropriately.
Title: One line description
Envoy proxy with GRPC server streaming support getting UNAVAILABLE: upstream request timeout
Description:

What issue is being seen? Describe what should be happening instead of
the bug, for example: Envoy should not crash, the expected value isn't
returned, etc.
Envoy proxy with GRPC server streaming support getting UNAVAILABLE: upstream request timeout

I am using the GRPC server side streaming as shown below.
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);
When i am giving a call from GRPC client . I am getting the upstream request time out error on GRPC client side.
io.grpc.StatusRuntimeException: UNAVAILABLE: upstream request timeout 	at io.grpc.Status.asRuntimeException(Status.java:535) 	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:478) 	at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:553) 	at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:68) 	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:739) 	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:718) 	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) 	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 	at java.lang.Thread.run(Thread.java:748)
Repro steps:

Include sample requests, environment, etc. All data and inputs
required to reproduce the bug.

Note: The Envoy_collect tool
gathers a tarball with debug logs, config and the following admin
endpoints: /stats, /clusters and /server_info. Please note if there are
privacy concerns, sanitize the data prior to sharing the tarball/pasting.

The header information of the request.
[2021-08-12 12:44:53.593][26766][debug][router] [source/common/router/router.cc:581] [C11][S13407685441847057315] router decoding headers: ':authority', 'X.X.X.X:443' ':path', '/api.ApiService/initiate' ':method', 'POST' ':scheme', 'http' 'content-type', 'application/grpc' 'te', 'trailers' 'user-agent', 'grpc-java-netty/1.39.0' 'grpc-accept-encoding', 'gzip' 'x-forwarded-proto', 'https' 'x-request-id', 'eaa1f0de-b66c-4d4f-93a5-7de277dfb7ef' 'x-envoy-expected-rq-timeout-ms', '15000'
Admin and Stats Output:

Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the
admin endpoint documentation.

Note: If there are privacy concerns, sanitize the data prior to
sharing.

Config:

Include the config used to configure Envoy.

`Envoy.yaml file configuration as mention below.
`static_resources:
listeners:
- name: listener_0
address:
socket_address:
address: <IP_ADDRESS>
port_value: 443
ipv4Compat: true
filter_chains:
- filter_chain_match: {}
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
common_tls_context:
tls_params:
cipher_suites:
- ECDHE-ECDSA-AES128-GCM-SHA256
- ECDHE-RSA-AES128-GCM-SHA256
- ECDHE-ECDSA-AES128-SHA
- ECDHE-RSA-AES128-SHA
- AES128-GCM-SHA256
- AES128-SHA
- ECDHE-ECDSA-AES256-GCM-SHA384
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-ECDSA-AES256-SHA
- ECDHE-RSA-AES256-SHA
- AES256-GCM-SHA384
- AES256-SHA
ecdh_curves:
- P-256
tls_certificates:
- certificate_chain:
filename: "/home/secureall/secureall/.store/.tomcat_cert.pem"
private_key:
filename: "/home/secureall/secureall/.store/.tomcat_key.pem"
validation_context:
trust_chain_verification: ACCEPT_UNTRUSTED
alpn_protocols:
- h2
require_client_certificate: false
filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
http_filters:
- name: envoy.filters.http.router
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/api.ApiService"
route:
cluster: grpc-server
idle_timeout: 0s
max_stream_duration:
grpc_timeout_header_max: 35s
- match:
prefix: "/policy"
route:
cluster: site_router
clusters:
- name: site_router
type: static
# Comment out the following line to test on v6 networks
lb_policy: round_robin
connect_timeout: 25s
http2_protocol_options: {}
load_assignment:
cluster_name: site_router
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: <IP_ADDRESS>
port_value: 7880
- name: grpc-server
type: static
# Comment out the following line to test on v6 networks
lb_policy: round_robin
connect_timeout: 25s
http2_protocol_options: {}
load_assignment:
cluster_name: grpc-server
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: <IP_ADDRESS>
port_value: 7879``
Logs:

Include the access logs and the Envoy logs.

Note: If there are privacy concerns, sanitize the data prior to
sharing.

Call Stack:

If the Envoy binary is crashing, a call stack is required.
Please refer to the Bazel Stack trace documentation.

Is the timeout coming immediately, or after 15 seconds, or some other period of time?

Adding timeout:0s solve my problem.


Yslow with phantomjs result not matched with yslow via firefox plugin

platform: Win 7 professional 32 bit
Previously i faced issue on certain url where upon executing yslow with phantomjs via Jenkins getting error "fail to load, undefine".
Upon further investigation found it's due to PhantomJS defaults  using SSLv3 to open HTTPS connections.
Issue resolve by issuing this command along "--ssl-protocol=any"
Now when i evaluate yslow tap result vs yslow via firefox, the result not matched, where on yslow tap result via jenkins shows all item fine except yCDN fail and result from firefox yslow gives yCDN result fail along with Add Expires headers rating "B" and yminify (minify js and css) rating "E" (note: in yslow tap result both these achieved rating "A".
Pls assist to clarify.

Note: may ignore the Add Expires headers rating "B"  as the it referring to third party url. running it via command prompt in jenkins shows expires headers item fine.
However pls assist on yminify (minify js and css). looks like phantomjs rule of minification with yslow js breaks the rule..


[WIP] Start implementing a more complete Type::join.

This just refactors the existing code into a TypeVisitor with no new
functionality added.
The intent is that for cases where two different TypeKinds have a
join, the lower-numbered type kind will contain the implementation and
the other will dispatch to that case. I'm not far enough along to know
how well this is going to work out yet.

@slavapestov @DougGregor @xedin This is just the first baby-step towards something more complete.
Thoughts?
I'm still thinking through how precisely how I want to deal with some of the implicit conversion logic we have in CSSimplify.cpp. My inclination at the moment is to support the join of any two types that are convertible and then weed out the things that only make sense in certain contexts (e.g. general argument vs. operator argument).

@swift-ci Please smoke test

@swift-ci Please smoke test

Yeah, I've been thinking a bit about unit testing. So far just trying to get something in place that matches existing behavior and that seems like a reasonable direction to head in for a full implementation.

A framework for testing most kinds of joins was merged in https://github.com/apple/swift/commit/7e37ac2cf9a854e28d5ad2692bfd286541d71d0e.

@swift-ci Please smoke test

If you actually want to write gtests for this it's probably not too bad. I have some for TypeBase::matches.

I was planning on writing some gtests for any cases that cannot be expressed directly in Swift. It seemed like it was going to be much easier for the other cases to use builtins in this way for testing as long as we can make sure that other parts of the constraint solver do not interfere with the results.


feat: Added get_public_url method to KeyValueStore

Description

Implement get_public_url method in KeyValueStore

Issues

Closes: #514

Testing

Unit tests added

Checklist

[ ] CI passed

This looks like the right approach. You should use the storage_dir attribute of the configuration object instead of the current directory though.

This looks like the right approach. You should use the storage_dir attribute of the configuration object instead of the current directory though.

@janbuchar Thanks for the review and hint :) I have updated the PR with storage_dir

@akshay11298 sorry for the broken CI. I confirm that code quality checks are passing on my machine.

@akshay11298 looks like there is an error on windows.

We probably need to make sure that the storage path is absolute in get_public_url and that it includes the drive letter and whatnot on windows.

@akshay11298 looks like there is an error on windows.
We probably need to make sure that the storage path is absolute in get_public_url and that it includes the drive letter and whatnot on windows.

Wouldnt the self._memory_storage_client.storage_dir have drive letter as well? I am currently checking existing_store_by_id.resource_directory and self._memory_storage_client.key_value_stores_directory for drive letter

Edit: @janbuchar @vdusek After using existing_store_by_id.resource_directory, the error has changed to
FAILED tests/unit/storages/test_key_value_store.py::test_static_get_public_url - FileNotFoundError: [Errno 2] No such file or directory: '\\test-static.txt'

I am guessing the error is due to extension and not the drive letter. Can we somehow check what the file name is in case of windows?

The extension is correct - key value store still adds it, we just don't do it manually anymore. The problem is that it's missing the path to the storage dir.
Do you have access to a windows machine?

Edit: @janbuchar @vdusek After using existing_store_by_id.resource_directory, the error has changed to
FAILED tests/unit/storages/test_key_value_store.py::test_static_get_public_url - FileNotFoundError: [Errno 2] No such file or directory: '\\test-static.txt'

I am guessing the error is due to extension and not the drive letter. Can we somehow check what the file name is in case of windows?

The extension is correct - key value store still adds it, we just don't do it manually anymore. The problem is that it's missing the path to the storage dir.
Do you have access to a windows machine?

Unfortunately I don't have access to a windows machine. I'll try to get access to one of it and let you know if it's possible

Unfortunately I don't have access to a windows machine. I'll try to get access to one of it and let you know if it's possible

If you don't have one, I believe we can troubleshoot this on Windows next week.

@janbuchar @vdusek found the cause of the error. It was the slash used when creating the path manually. Used os.path.join to fix the error

Now the test passes. urllib was returning netloc in windows and path in mac/linux
Windows -

Mac -


How to use Sqlalchemy in factories

Factors is a very useful function, which is used to generate flask with different configuration files in different environments
Look at the example, it is well integrated with flask SQL alchemy
Flask Sqlalchemy only needs db.init app (APP)
Sqlalchemy needs more information to set up
engine = create_engine('sqlite:////tmp/test.db', convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,autoflush=False,bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()
How to combine the two effectively?
I'm sorry for my poor English.

Also, this is not the correct place to ask usage questions; they belong on Stack Overflow, IRC or Discord.


Create pom

Resolved / Related Issues
Items resolved / related issues by this PR.

Closes #issue...

Validation
How did you test these changes?

[ ] Built and ran the app
[ ] Tested the changes for accessibility

Screenshots (optional)
Add screenshots here.

master


Do we have portal to maintain the configurations for ocelot?

Currently we use the ocelot.json to config the api routes in ocelot, but if you have lot of apis in your application(more than 100), it's hard to maintain the json file in ocelot , so do we have portal to maintain the configuration file in ocelot ? or do we have a plan to build it ?

@KenWang007 at the moment the only help for this is using multiple configuration files. There is also the administration API that might be useful to you.
I don't personally intent to build a UI over the configuration at the moment however you could build one yourself and I would be happy to accept a PR. If you do I suggest using the administration concept so it is under that section.

@KenWang007 thank you for your kind words :)
I will keep this issue open as I might get time to build the feature in the future :)

@KenWang007 you could use this: https://github.com/dbarkwell/Ocelot.ConfigEditor

@TomPallister Thanks a lot


Refactor cache - Cache Path API

New Pull Request Checklist

[x] I have read and understood the CONTRIBUTING guide

[x] I have read the Documentation

[x] I have searched for a similar pull request in the project and found none

[x] I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

[x] I have added the required tests to prove the fix/feature I am adding

[x] I have updated the documentation (if necessary)

[x] I have run the tests and they pass

[x] I have run the lint and it passes (pod lib lint)

This merge request fixes / reffers to the following issues: #1355
Pull Request Description
This PR is original from #2195, which seems to be a seperate part for cache refactory. So I seperate it to this one.
Cache Paths API
Some of current API like cache paths is really counter-intuitive.  It's looks like a internal API but should not publish to user.
Why cause this it's may because of the historic issue that we introduce one feature to let user customize the read only cache path. So we need to know both the folder and cache file name after MD5 hash. However, this should be refactor using a more common design.
Design
Cache Paths API
And if we have custom disk cache. Current cache paths API may become a problem because we should not put something like cachePathForKey:inPath to the protocol. It's more like a internal tool function and it let user to provide a arbitrary parent directory. Which may confuse the user to need to write the custom disk cache.
So I think, for cache paths API. We just need to keep the one cachePathForKey:. Which can return the full file path for the cached data. It's simple and enough. For example, If you need the file name, just using NSString's API lastPathComponent .
For that current API of addReadOnlyCachePath:, which is used to allow custom cache path if the disk cache missed. This design may works, but not good at all. User have to add  a list of string and have no choice to rename their bundle resource to the hash function we used. This's is a little frustrating. What if user do not want to rename the images with MD5 hash and just want to use the cache? This problem can also trigger issue if thier custom disk cache's hash function is not the same as the built-in one(We use MD5, but not all user use).
To solve this is really simple, we provide a block to allow custom remapping from the key to the cache path. User can return the actual file path for the key after the query failed. And it's also allow custom disk cache work with this feature.
Implementation
Cache Paths API
We use a custom block to allow user provide the cache path if query failed.
typedef NSString * _Nullable (^SDImageCacheAdditionalCachePathBlock)(NSString * _Nullable key);
/**
 *  The additional disk cache path to check if the query from disk cache not exist;
 *  The `key` param is the image cache key. You should return the specify file path to load image from disk. You can use built-in hash method(See `cacheFileNameForKey:` in SDDiskCache) or your own way to provide mapping between cache key and file path.
 *  Useful if you want to bundle pre-loaded images with your app
 */
@property (nonatomic, copy, nullable) SDImageCacheAdditionalCachePathBlock additionalCachePathBlock;

Current break change (Need change code)
SDImageCache.h

addReadOnlyCachePath: RMOVED, use additionalCachePathBlock instead.
cachePathForKey:inPath: REMOVED, use cachePathForKey: with NSString's path API instead.
defaultCachePathForKey: REMOVED, use cachePathForKey: instead.

Codecov Report

Merging #2276 into 5.x will increase coverage by 0.11%.
The diff coverage is 81.81%.

@@            Coverage Diff            @@
##              5.x   #2276      +/-   ##
=========================================
+ Coverage   43.18%   43.3%   +0.11%
=========================================
  Files          51      51
  Lines        6092    6083       -9
=========================================
+ Hits         2631    2634       +3
+ Misses       3461    3449      -12

Impacted Files
Coverage Δ

SDWebImage/SDImageCache.m
53.65% <78.57%> (+1.96%)
:arrow_up:

Tests/Tests/SDImageCacheTests.m
73.59% <87.5%> (ø)
:arrow_up:

SDWebImage/SDWebImageManager.m
80.5% <0%> (-0.85%)
:arrow_down:

Tests/Tests/SDWebImagePrefetcherTests.m
98.97% <0%> (ø)
: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 e829637...f8e9dd3. Read the comment docs.

Since this PR is part of #2195 and is approved. So merge it now.


Gradle JVM should use the java.import.gradle.java.home from vscode-java

Hi guys!
I have updated my vscode-java extension and now I am not able to run Gradle Daemon so good. I am using some older Gradle versions that requires JVM 8 and vscode-gradle is using the JVM set at "java.home", but now, in version 0.65 from vscode-java, there is an optional called "java.import.gradle.java.home" when I set which VM will be used to run the Gradle Daemon.
Is it possible to be corrected?
https://github.com/redhat-developer/vscode-java/issues/1536

Thanks for the report. Ok I will adjust the behaviour so that the java.import.gradle.java.home takes precedence over java.home when launching the Gradle server.

Released with 3.4.0. Can you update the extension and test this change? Thanks.

3.4.0 and 3.4.1 is perfect! Thank you very much!

Great, thanks for verifying.


How to paginate results?

Hi! How to paginate a results?
Any method ->paginate() ?
Thanks

in AmazonECS.php
Add param 'ItemPage' and get page with function
$params 	= $this->params(['ItemPage' => $page, 'Keywords' => $query, 'SearchIndex' => 'All', 'ResponseGroup' => 'Images,ItemAttributes']);

Hey @esedArk,
This seems like a logical feature to implement - I'll try and implement it this weekend.

Just keeping you in the loop @esedArk, although you may have moved on by now. Would still like to implement this, but struggling to find the time to fit in. Will close for now, you can keep an eye out for new releases.


Missing setup.py?

Hello, thanks for writing this library! The README mentions setup.py but I can't find this file anywhere. Was it removed at some point?

Yeah that was removed when switching to poetry for builds. I'll get the README updated.

Thank you! I didn't recognize poetry as an installer :)


CommandParameter not passing when using Hotkey

When using Command and CommandParameter for Button the command paramter will pass only if I click the button, when I use HotKey the command triggers without the parameter. (Tried both ReactiveCommand and function)
       <Button Name="SettingsBtn"                                Content="Settings"                                                                 HotKey="ALT+ENTER"                                 CommandParameter="5"                                 Background="Transparent" Width="65"                                 Command="{Binding OpenSettings}" />

Also affect MenuItem.
For now, I hard code parameter into method call.


Add copy support

copy inside the same operator: maybe we need a new method in Accessor?
copy across different operators

Will we create other copy operations? For example, copy multiple files to the target folder, or copy the entire folder.

Will we create other copy operations? For example, copy multiple files to the target folder, or copy the entire folder.

Yes, we can add a similar feature to the copy function as we did for the remove_xxx function. However, implementing those features correctly is complex. Therefore, I will delay their implementation until users request them.
Before we do that, we can add move operation first or add more services support for copy.


console should attempt to report if monitored app exits/panics, if possible

I was staring at a terminal wondering why console was failing to connect.
Then I eventually switched to the other screen, and realized that the app I was monitoring had panicked.
Ideally, we could use a RAII object to send a message to the console when an app quits cleanly or panics cleanly, right?
(Having said that, I don't know off hand if it is generally a bad idea to incur new network traffic in destructors, since that does seem like it could invite a panic from a destructor situation in some circumstances. So if this is just a bad idea, feel free to close this feature request.)

The biggest issue, I think, is that if the program is exiting, and we drop some guard that's held in main, we have almost certainly already dropped the Tonic gRPC server, and closed the connection to the client. So, informing the client that the process is exiting wouldn't be possible in that case, since connections from the console are client initiated.
We could potentially install a panic handler that records panics, though. This would also let us record when tasks panic even if those panics don't take down the whole application, such as when Tokio catches a panic. The biggest problem with that is that it could conflict with user-provided panic handlers, so we'd need to ensure that it was optional (and perhaps opt-in?) in case user code needs to set a panic handler.

At the least it might be nice to have an option to leave the terminated tasks in the console with a short reason for termination (if possible)

@briankung yeah, we can definitely do that --- it should be fairly straightforward to detect when individual tasks panic, when using a runtime where task panicking is captured. When a task panics, we can definitely record that it panicked using a panic hook, and maybe even include the panic message and stuff. Of course, this won't play nice with other user-defined panic hooks, but we can make it optional in cases where the user code also sets a panic hook.
The harder part is specifically handling the case where the entire program exits/aborts; as I mentioned, the gRPC server may have already been shut down by the time that we know the entire program is shutting down, so in that case, we can't easily do anything. We could try to work around this with a drop guard or something that's held in the main function that keeps the server alive until we unwind out of main, but it's still sort of a best-effort thing --- for example, if the program is compiled with panic="abort", there's nothing the console can do.


Not getting 'submissions' variable back on error

Title says it all really, am not able to display errors because of it

+1