Refactor Concatenate&SparseTensorSlice&TensorSlice&Zip DatasetOpTests

This PR refactors Concatenate&SparseTensorSlice&TensorSlice&Zip DatasetOpTests and also adds the tests for the new node_name() and type_string() APIs.
cc: @jsimsa

It looks like the internal checks failed. Could you please help share the log here?

It looks like a memory leak in the ConcatenateDatasetOpTest::DatasetSave method. Do you see an obvious problem there?

@jsimsa Thanks for sharing the log. The failure is caused by my bad: miss the release of the allocated concatenate_dataset. Now it is fixed by this commit. Could you have a look at the change and run the test again?

@jsimsa This is a kindly reminder that the memory leak is fixed by this commit. Could you have a look and re-trigger the test when you have time?


Localization rapidly gets worse while sliding through the low-friction area.

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I'm convinced that this is not my fault but a bug.

Description
Hi team,
I'm currently running Autoware with Carla, and I found a situation that the localization gets worse while sliding through the low-friction area.
Here's the frontview video:
https://github.com/autowarefoundation/autoware.universe/assets/50267797/ca703681-c3cb-445b-9cc1-fe9a76eabc16
From 0:06 of the video, the ego vehicle starts to slide through, since there's a blue box that indicates the low-friction area.
After the sliding, the vehicle fails to drive again and stops forever.
Here's the corresponding RViz video: [rviz]
At the RViz video, while the ego vehicle is sliding, the localization rapidly goes bad, and it eventually thinks itself crossed the centerline, but the car is actually close to the sidewalk, not the centerline.
Expected behavior
I thought that, even though the ego vehicle slides through, the localization should not make any error.
Actual behavior
But the localization rapidly goes bad while sliding through.
Steps to reproduce
Here's a ros2bag file for the reproduction: [ros2bag]
Versions

Autoware: 20240115, prebuilt docker
Carla: 0.9.13
OS (host): Ubuntu 20.04
OS (docker): Ubuntu 22.04

Possible causes
No response
Additional context
No response

@Kim-mins
I think there might be an issue with setting up the tf between base_link and velodyne_top correctly.
Could you please comfirm it?

Thank you for the response @YamatoAndo!
Actually, my current version is before this PR, and it seems I can't check velodyne_top since there's no component managing it individually.
Could you please tell me the way to confirm my setting?
Thanks!

You can check the TF between velodyne_top and base_link using the following command:
$ ros2 run tf2_ros tf2_echo base_link velodyne_top

and this is the result in your rosbag
At time 0.0
- Translation: [0.000, 0.000, 2.466]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
- Rotation: in RPY (radian) [0.000, -0.000, 0.000]
- Rotation: in RPY (degree) [0.000, -0.000, 0.000]
- Matrix:
  1.000  0.000  0.000  0.000
  0.000  1.000  0.000  0.000
  0.000  0.000  1.000  2.466
  0.000  0.000  0.000  1.000

Does this match the placement of the LiDAR in the simulator?

Thank you for the investigation @YamatoAndo!
According to the setting of the bridge I'm using now, it is 2.4. [link]
But I cannot know about the offset 0.066.

When checking the TF tree, it seems to have the structure of base_link <-> sensor_kit_base_link <-> velodyne_top_base_link <-> velodyne_top.
$ ros2 run tf2_tools view_frames

And velodyne_top_base_link <-> velodyne_top looked like this.
$ ros2 run tf2_ros tf2_echo velodyne_top_base_link velodyne_top
At time 0.0
- Translation: [0.000, 0.000, 0.066]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
- Rotation: in RPY (radian) [0.000, -0.000, 0.000]
- Rotation: in RPY (degree) [0.000, -0.000, 0.000]
- Matrix:
  1.000  0.000  0.000  0.000
  0.000  1.000  0.000  0.000
  0.000  0.000  1.000  0.066
  0.000  0.000  0.000  1.000

From my tests, it seems that the LiDAR is correctly positioned approximately +1.5 m along the x-axis from the base_link.
Could you adjust the TF to achieve the display results as follows?
$ ros2 run tf2_ros tf2_echo base_link velodyne_top

At time 0.0
- Translation: [1.500, 0.000, 2.466]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]

Alternatively, this line modify to x=-1.5 might also work.

Thank you for the details @YamatoAndo!
To my understanding, my current setting is as below:

base_link <-> sensor_kit_base_link: [link]: z += 1.6
sensor_kit_base_link <-> velodyne_top_base_link: [link]: z += 0.8

I cannot find the calibration for velodyne_top_base_link <-> velodyne_top, sorry for that. But there seems no translation, since the values match to what you provided.
So.. I think I can make x to be +1.5 by modifying the calibration of one of those two above.
Then, do you mean to run the scenario again after the modification, and check if still there's the issue?

By the way, I have a question for the value 1.5. Could you please tell me the reason for adding 1.5 to the translation on x-axis?

When I tested with your rosbag, adjusting x to +1.5 resulted in stable localization.
My speculation is that in the Carla simulator, the LiDAR is correctly positioned at the center of the vehicle body, not at the base_link (rear axle center).

It seems like you're using the tesla.model3 vehicle, but did you get it from this repository?
This vehicle has a wheel_base of 3.0046, so I think 1.5023 would be appropriate for the center of the vehicle.

Thank you @YamatoAndo!
I've tried to check the issue with the modification for here (0 to 1.5), but the ego vehicle does not move as it considers the vehicle itself as an obstacle.

I also checked that the result from ros2 run tf2_ros tf2_echo base_link velodyne_top is as below:
At time 0.0
- Translation: [1.500, 0.000, 2.466]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
- Rotation: in RPY (radian) [0.000, -0.000, 0.000]
- Rotation: in RPY (degree) [0.000, -0.000, 0.000]
- Matrix:
  1.000  0.000  0.000  1.500
  0.000  1.000  0.000  0.000
  0.000  0.000  1.000  2.466
  0.000  0.000  0.000  1.000

Well, right. I'm using tesla model3, but the bridge I'm using now is this.
I think I should check if this bridge also referencing 3.0046 for wheel_base.
Thank you!

I thought changing here (0 to 1.5) wouldn't affect the acquired point cloud.
You didn't change this line, right?

Oh, my mistake.. sorry I modified both..
I tested again with the only modification on here, and the result is as below:
https://github.com/autowarefoundation/autoware.universe/assets/50267797/dcc0415f-db26-4609-8851-fe6a9d00bf91
The vehicle repeats driving and stopping, and it just stops at all.
I also confirmed that the result from ros2 run tf2_ros tf2_echo base_link velodyne_top is as below:
At time 0.0
- Translation: [1.500, 0.000, 2.466]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
- Rotation: in RPY (radian) [0.000, -0.000, 0.000]
- Rotation: in RPY (degree) [0.000, -0.000, 0.000]
- Matrix:
  1.000  0.000  0.000  1.500
  0.000  1.000  0.000  0.000
  0.000  0.000  1.000  2.466
  0.000  0.000  0.000  1.000

The vehicle repeats driving and stopping, and it just stops at all.

I think it's because the LiDAR point cloud is hitting the back of the vehicle.

Please crop the LiDAR point cloud.
Alternatively, consider placing the LiDAR in a position where it doesn't hit the vehicle body.It might be better to set it at a higher position.

Thank you for the response @YamatoAndo!
I'll try your suggestion soon.
Maybe I should adjust here and here both. Could you please confirm it?
By the way, I have a question that, is this issue caused by my sensor calibrations?
I thought that this calibration is ok since it have worked well for most of the situation.
If my calibration is the problem, I think I should ask to the bridge maintainer.
Thank you!

Maybe I should adjust here and here both. Could you please confirm it?

Please configure the sensor placement in ROS to match the sensor placement in the simulator.
Probably, it would be correct to do as follows:
  velodyne_top_base_link:
    x: 1.5023  #  wheel_base(3.0046) / 2.0
    y: 0.0
    z: 0.734  # {sensor_height(2.4)} - {base_link <-> sensor_kit_base_link (1.6)} - {velodyne_top_base_link <-> velodyne_top (0.066)}
    roll: 0.0
    pitch: 0.0
    yaw: 0.0

  trans = Transform(Location(x=0.0, y=0.0, z=2.4),
    Rotation(pitch=0.0, roll=0.0, yaw=270.0))

You may also consider making fine adjustments to ensure that LiDAR points do not hit the vehicle body.
For example,
  velodyne_top_base_link:
    x: 1.5023  #  wheel_base(3.0046) / 2.0
    y: 0.0
    z: 1.034  # {sensor_height(2.7)} - {base_link <-> sensor_kit_base_link (1.6)} - {velodyne_top_base_link <-> velodyne_top (0.066)}
    roll: 0.0
    pitch: 0.0
    yaw: 0.0

  trans = Transform(Location(x=0.0, y=0.0, z=2.7),
    Rotation(pitch=0.0, roll=0.0, yaw=270.0))

is this issue caused by my sensor calibrations?

I don't think it's just a sensor calibration issue.
However, since the calibration error seemed critical, I pointed it out.

Sorry for late reply @YamatoAndo..
I tested the scenario with your sensor calibration(the latter one), and it seems the issue remains.
Here's the ros2bag file and video: [ros2bag] [video]
From 0:20 of the video, when the vehicle slides through the low-friction area, the localization grows bad either..
Should I tune the sensor calibration more? I think your calibration is correct, but I cannot know what to do more.
Thank you!

I checked the rosbag.
It seems that the vehicle is drifting significantly, because of the low-friction area.
The motion model implemented in the ekf_localizer may not be able to handle such large drifts effectively.
Unfortunately, it's difficult for the current version of Autoware to run in this location.

Thank you for checking @YamatoAndo!
I got your point. It seems really challenging to handle the case for low-friction area..


Following Issue #2

Added helpers.js file for testing modules and assertRevert testing function from Zeppelin.

@CPerezz can we import the helper from openzeppelin instead of copying it?

@tyleryasaka Yes, for sure! I've noticed that asserRevert was replaced for shouldFail. So I've updated it on the tests.

@CPerezz can we remove that helpers directory entirely, and all the files in it? right now this is adding a bunch of files.

what I mean is, we should be importing openzeppelin-solidity as a dependency in package.json, not copying over the files.

@tyleryasaka My bad, I didn't understand you. I'm on it. Excuse me.

@CPerezz no problem, thank you for fixing this! I wasn't aware of these test helpers - makes life easier and the code cleaner.


getting 'session ended by server' on re-connecting a Sender

Similar usage-scenario to #109
Scenario:

Connecting, creating Session and Sender
Send some messages
Do some long work
To gracefully handle long idle-periods we call Sender.Close after 4 minutes idle (on sending)

Option 1 - as long as work-time is < 10 min
NewSender (with same LinkTargetAddress as only opts) works just fine
Option 2 - whenever work-time is > 10 min
We get "session ended by server: *Error(nil)" as error from NewSender
If we hadn't closed the Sender we'd have gotten the following error:

link detached,
reason: *Error{Condition: amqp : link : detach-forced,
Description: The link 'XXXXXXXXXXX' is force detached by the broker due to errors occurred in publisher(link217).
Detach origin: AmqpMessagePublisher.IdleTimerExpired: Idle timeout: 00:10:00.
TrackingId:XXXXXXXXX

I have been trying to get my head around all that frames and channels in the code to see if there might be a caching of some sort on the re-conneting link but haven't found one.
Could the "caching" be done on Azure's side?
If so, Is there any kind of option/flag to change the "signature" of the NewSender to get Azure to interpret the new sender as a different one, or forget it somehow?
Currently the only option I have left is to actually create a new connection every time i've passed the idle-timeout threshold
best regards, Hans
*Edit -Workaround:
Since we control both sender and receiver we're sending a ping message (empty message with ContentType = "ping") from every Sender-link, then just silently ignoring those messages on the Receivers

Thanks for writing up a detailed description :+1:
If the broker detaches the link, the lib will process it and store it. Since there's currently no way to proactively notify the user of the lib you'll only get it when you perform a link operation. This is something #109 should help with.
To summarize my understanding and my thoughts (please correct me if I've got this wrong):

If you simply attempt to keep using the same Sender, the link will eventually timeout during processing and you'll get a "detach-forced" message.

At this point, you should be able to use Session.NewSender to create a new link on the same session. Assuming the session hasn't also been closed.

If you do close the link (the Sender) the session will eventually timeout and you'll get the "session eded by server" message.

Since the session has been ended, no new links can be created on it. Conceivably you could create a new session and sender on the existing connection. Assuming the connection hasn't also been closed.

@devigned Do you have any suggestions on how best to handle this situation given the current limitations?

We handle this by creating a struct which contains the connection, session and link. Upon an error, we rebuild each entity and attempt to complete the send or receive again. For example, this is the recovery function for a sender.
This is definitely not the most efficient way of handling session and link level errors, but it is effective.
@vcabbage what do you think about exposing Err() on connections, sessions and links? It might make it a bit easier for consumers to determine if the entity needs to be recovered.

@devigned How do envision consumers interacting with the Err() API? I'm assuming it would be a non-blocking method that either returns an error or nil if the link is still connected?
How would this compare in usability to a callback API to notify on errors? Does this overlap with the functionality proposed in #109 or do you think it would be good to have both?

Yep, I was thinking a non-block method to return error or nil.
I think it's a less ambitious way to deal with errors than #109 that would make errors a bit more transparent. As in #109, having a function to automatically recover an error'd conn, session or link would probably obviate the need for exposing Err(), but I'm a bit concerned about nailing the abstraction level of the recovery func. By exposing Err(), it's less prescriptive and a consumer can decide the level at which they need to recover (conn, session, link). idk, just my 2¢

I think I'd do something like the following. That way I can be a bit more selective about what I recover.
err = sender.Send(ctx, msg)
if err == nil {
    return nil // success
}

if conn.Err() != nil {
    // recover conn
}

if sender.Err() != nil {
    // recover sender
}

// try sending again

Makes sense. What do you think about adding some functions that would allow you to determine where the error originated?
Example:
switch {
case amqp.IsConnError(err):
    // recover conn
case amqp.IsSessionError(err):
    // recover session
case amqp.IsLinkError(err):
    // recover link
}

This isn't necessarily better than your suggestion, it's just an alternative that came to mind. The one nice property of this approach would be that you don't necessarily have to check conn, session, link in order.
A rather tricky caveat to all of this is that there's no guarantee that a lower level error won't occur after receiving a link error. To be robust the recovery logic will have to handle that case.


chatplugin cannot send messasges with the wrong resume_token

If the resume_token does not match the channel_id given to the plugin, the plugin cannot send any message.
We might want to change the code so that the resume_token is set per channel_id. If the user uses two pages that use airy, it should still work and resume the correct message for the page.

Already fixed in #1007


Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.
Atom.Object.defineProperty.get (/Applications/Atom.app/Contents/Resources/app/src/atom.js:54:11)
updateStatusbar (/Users/rmachado/.atom/packages/jshint/index.js:86:11)

https://github.com/sindresorhus/atom-jshint/issues/71#issuecomment-77728141


New version: CondaForge.Miniforge3.PyPy3 version 24.7.1-0

Created by 🥟 Dumplings in workflow run #7836.

Log
Updated: 24.3.0-0 → 24.7.1-0
Submitting WinGet manifests
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

@wingetbot run

@wingetbot run

This package installs and launches normally in a Windows 10 VM.

This package installs and launches normally in a Windows 10 VM.


Moving selection box on zoomed picture in ImageBoxEx not pan image

When I move selection box on zoomed picture in ImageBox or ImageBoxEx over viewport border image not auto scroll to this direction.

Hello,
Yes, I agree it's annoying behaviour. Thanks for the report, I'll try and get that one fixed sooner rather than later.
Regards;
Richard Moss


Fix link

The original link:
https://docs.microsoft.com/en-us/ef/core/cli/dotnet#resetting-all-migrations
doesn't seem to lead to a particular section.
I've updated it to the following one:
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/managing?tabs=dotnet-core-cli#resetting-all-migrations

@dharmatech  thanks!


subscribe to sendgrid

in footer

it should submit to the server
server example code:
  "gateways": {
    sendGridApiKey: process.env.SENDGRID_API_KEY
  }

import process from 'global/process';
import client from '@sendgrid/client';
import config from 'config';

export function getSendGrid(opts) {

  client.setApiKey(config.gateways.sendGridApiKey);
  const sendgrid = {
    ...opts,
    apiKey: process.env.SENDGRID_API_KEY,
    client,
  };
  const request = {
    method: sendgrid.method,
    url: sendgrid.url,
    body: [],
  };
  sendgrid.addSubscription = email => {
    request.body = [{email}];
    return client.request(request);
  };
  return sendgrid;
}

in gateways
        server.gateways.sendgrid = getSendGrid(config.gateways.sendgrid);

in resolver
    const [response, body] = await server.gateways.sendgrid.addSubscription(email);

please try with a sendgrid api key by yourself

The response of this implementation currently is authentication error. Continue with #602


[WIP] Design System Components

Includes:

AppBar
Button
Card
Chip
Pagination
TextField
Typography
Dialog

I have read the CLA Document and I hereby sign the CLA

recheck

GM @brightiron ! Starting review this morning.
Does it make sense to add a section to the frontend readme on Custom MUI Theme?

how to use
how to manually test
how to contribute
how to write regression tests

GM @brightiron ! Starting review this morning.
Does it make sense to add a section to the frontend readme on Custom MUI Theme?

how to use
how to manually test
how to contribute
how to write regression tests

i can add some docs around how to spin up the storybook server locally, and general guide for contributing new styles.
In terms of use, you'll just use the existing MUI components, and import those directly from mui. I didn't go the custom component route for this iteration.
The storybook itself would serve as a reference for usage/implementation/docs.
For regression tests, since these are really just css styles, there's not a ton to test. You could use something like chromatic though, if that's what your thinking.. but there's nothing to really to write for tests, as it just relies on storybook stories.

All sounds good. Please drop an update to README.md so anyone can follow along the same process and tools for styling.
I will tinker with yarn test fixes in a separate PR. No need to hold this one.

@brightiron are you able to use the app on this branch? I am getting wallet connectivity errors:

These metamask errors turned out to be a problem with metamask. The chrome extension crashed after a few more tries and after restarting it in the browser, it works again as expected. I experienced the same issue with a different version of the app.

I've spent some time testing the look and feel of the new styles. Noticing some visible changes that I am not sure are by design. For example accents disappeared from some pages. Tribute buttons are usually the primary color (blue in the default MUI app) and Active are usually in an accented green color. With the new theme all seem to show monochromatic for the most part.
Also the font sizes do not seem proportional as compared to the default look and feel. See screenshots.
How do we go about testing look and feel, fixing any open issues and preventing regression in a reliable way?

@ivelin, font sizes are implemented by the design system. I did not go through and update the app. There are several cases where MUI typography tags are not being used.. For example, MUI recommends using  for an h6.
Buttons are implemented via the design system specification. For example:

Text buttons are implemented using the text button variant (see above). Which is monochromatic by netbees design.
if you run yarn storybook locally, you will spin up a storybook instance where you can see all the different states implemented.
If a style is off, i.e. you previously had a 'text' button implemented, but it should be a 'contained' button instead, you'll need to implement a different variant.
Again, the scope of this PR was purely css changes and implementing styling over existing components to align with the future design system. In a couple limited cases i adjusted the main layout to show a simple implementation example, but adjustments to the site will still need to be made to align properly with material UI usage and Netbee's new designs.
Hope that clears things up. Anything else around issues w/ functionality of the site (wallet connection) wouldn't have been touched with this PR

running yarn storybook locally will allow you to independently verify mui styling. as well as how to implement specific styles:

OK. Merging this PR. Let's discuss separately how to polish the app so it matches netbee's figma work.


Branch names containing HTML tags are incorrectly formatted

Examples from Slide In action scope

Branch names containing HTML tags (which is surprisingly legal) are incorrectly formatted (which is not a surprise).
The provided examples come from the Slide In action scope, but there are others to be defined and fixed (e.g. Override Fork Point dialog).
Suggested solution:
org.apache.commons.text.StringEscapeUtils.escapeHtml4

Lemme assign to @MaciejG604 as a filler-up task for while he might be blocked in his new project

Within the scope of this task, let's also use the existing @Tainted/@Untainted mechanism to detect such places automatically (as much as possible... we're limited by using Kotlin (where Checker doesn't operate) for dialogs, alas)

org.apache.commons.text.StringEscapeUtils.escapeHtml4

We've somehow already got that on classpath... probably as dependency of IntelliJ itself

Already done by @mkondratek :p

No! See the comment there 😆

Worth mentioning:
Things that are managed by git4idea will keep being displayed wrong and I don't really see any good solution to that. It is because some git4idea functions require you to pass the name of the branch which they later validate against the repo.
So we could either accept this or name all branches in the repo with html-escaped strings, but this has a major drawback - when a user switches back to using git from CLI all their branches will have unexpected names.
Examples:

Branch seen here as <html><b>TEST_33</b></html> could be created by a user as TEST_33, we can then display it always as the user requested, but undearneath its name in git needs to be <html><b>TEST_33</b></html> for git4idea to work properly.
Changing the underlaying branch name is unacceptable and definitely not worth the HTML tag support.


Add progress bar to run_inference_loop

We now have a run_inference_loop implemented in here, adding a progress bar would be nice and quite straightforward (see eg: https://github.com/pymc-devs/pymc/commit/c3f93bad3db7c34c12e4c51e1e7fb88f62c97020)

@junpenglao sure!


Create Concept Art For Icarasia

https://github.com/Team-Awkward-Smile/Epilogue/wiki/Story-Bible#icarasia

@Skaers remove the half-skull mask from this version of the concept.


feature(endpoints): Add a slew of endpoints to People

Household
HouseholdMembership
Message
MessageGroup
Organization
PhoneNumber

And with that, we are essentially done.

looks good 👍


Keep the bot online

Hey all,
I'm a newbie there and trying to find a way to keep the bot online and available always.
For now I need to run my Terminal and send the command npm start everytime I want the bot to work.
How can I do ?
Thanks for your tips,
Vicvic91

To keep the bot online, you'll need a machine that's online 24/7. Usually this means renting a server from a provider such as DigitalOcean.

Political, but I'd recommend Linode over DigitalOcean (DO has taken to shutting down customers based on ideology, even if the content itself isn't illegal).
Directly, you'd also want to use something like GNU Screen or TMUX, otherwise disconnecting from the server will kill it.  Easiest and cheapest would be a US$5/mo VPS running Debian.  Slap node.js and tmux on it and you're good to go.

@Vicvic91 were you able to get something set up to meet your needs?

Closing this issue for inactivity. Feel free to reopen if you still need help.


Binding of nullable enum properties has been added.

When this.Bind<MyModel>() was invoked in a module and model had nullable enum property (e.g. public MyEnum? { get; set; }) there was an exception System.InvalidCastExceptionInvalid cast from 'System.Int32' to 'MyApp.MyEnum'.

Apart from a single typo this looks good.
Thx :+1:

typo has been fixed

Thanks. I'll let somebody else review too, but looks ready to merge to me.

Thanks! :grin:


Traefik Version

Any schedule to update Traefik to v2.3?
——
Thanks for helping us to improve k3s! We welcome all feature requests. Please fill out each area of the template so we can better understand the request. You can delete this message portion of the bug report.
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

is this basically a dupe of #1141 ?

@SvenDowideit yes


NSM should wait reasonable amount of time for dataplane to come up

NSM should wait reasonable amount of time for dataplane to come up if there are no dataplanes registered

Close in favor of #493


auto_yaml doesn't merge .yaml function tags properly

When auto_yaml (beet.contrib.auto_yaml) is enabled, .yaml function tags aren't merged properly and are instead replaced by one another.
Replacing the .yaml tags with .json equivalents solves the problem and the tags are merged as expected, hence why it is suspected that this has something to do with auto_yaml.

Looks like this is an oversight in beet.contrib.auto_yaml, it's simply overwriting files instead of merging. This is fixed in v0.50.5.


ARROW-15455: [C++] Cast between fixed size list type and variable size list

12517

 Quality gate: Failed
2 Issues

 2 Code issues

Details

 Quality gate: Passed
 Everything looks good
Details


Add Plesk and SolusIO Certification

thanks @JeromeTanOfficial . Are those exams actually free? Couldn't find it information about it anywhere on the pages.

thanks and congrats @JeromeTanOfficial


[appveyor] Test Boost 1.61+ only

Drops support for versions of Boost older than two years. Boost 1.61+ or
newer is now required. (Bond will likely continue to work with older
versions of Boost, but we'll no longer actively test against them.)
This is the AppVeyor-side fix for:

https://github.com/Microsoft/bond/issues/771

Should we remove the check at appveyor.yml#L97?

I did a force push, as I needed to update the commit message.
Changes since most recent reviews:

Rewrote Boost selection to be more table-driven.
Switched to 1.62 as there is no 1.61.

I need to so some debugging of this...

AppVeyor only has Boost 1.56 and 1.58 binaries for MSVC12...

https://www.nuget.org/packages/boost-vc120

Closing this PR. I'll need to rework how we build with AppVeyor and MSVC 2013 and 2017...


License Confusion

At work, there's confusion around the license.  It looks like it's open source BSD license, but the website says the it's BSD only for open source projects.  I believed that's been fixed in the repo, but not the website.
I believe two things will solve this.

Remove the commercial license from the repo and move it to the website or clarify the license is for commercial support only.
Clarify that all projects may use the BSD license, but that purchased support will follow the commercial license.

It's a great library.  I'd hate to not use it because of this.

I know developers don't always control the purse strings, but IMHO if your company is making money using free software, you should just pony up for a commercial license to support the authors of that software. Getting cheap about this stuff is how you wind up with two part-time devs maintaining core infrastructure out of the goodness of their hearts.

@bjmc
I think you're absolutely spot on here.  And that's a conversation that needs to happen with managers, not typically the devs -- because as you say, we don't hold the purse strings -- and I certainly don't here.
But as I understand the license terms of this project, purchasing of commercial support is not required for commercial use.  And that's what I want clarified.

As said on readme:

If your company is creating a closed source OAuth provider, it is strongly suggested that your company purchasing a commercial license.

No confusion from readme.

We're not creating our own closed source OAuth provider.   We're using the client functionality.    For an oauthlib client $1000/yr is too much.

The website says this:

Authlib Licenses
Authlib offers two licenses, one is BSD for open source projects, one is a commercial license for closed source projects.
https://docs.authlib.org/en/latest/community/licenses.html
So license lawyers read that and it's pretty clear that if true, then your software really isn't OSS.

Then , if i start a startup project using authlib , just for Social Login do i have to pay? I won't even know if i would make money or not.

@v3ss0n You don't have to. Just choose the BSD license.

Oh , then thats great , we have cnfusion in opensource community with permissive licensing , should we use yours or not.
Better clear it up somwhere in which cases , it is not eligible for this lib to be used.  Like for example Building A competing Close Source Product like Auth0 that uses your library and sell. (I think thats the case?)


Adding support for the new investments JSON and adding command-line support

Addressing #227.
NOTE: This is still in draft format because I need to explore writing a test for this method.

@mrooney let me know your thoughts on this one!

Note: need to explore further linter issues.

@jaron-l back to you for review.

@jaron-l ready for you!


Can I use std::env::args in lazy-static?

I use cassandra to query the data, and I want all the query to use same cluster and session, so I used the following method:
lazy_static! {
    static ref SESSION: Session = {
        Cluster::default()
            .set_contact_points("<IP_ADDRESS>") //
                .expect("Failed to set_contact_points")
            .set_port(9042)
                .expect("Failed to set_port")
            .set_num_threads_io(8)
                .expect("Failed to set_num_threads_io")
            .connect()
                .expect("Failed to connect to the cluster")
    };
}

However, because the contact points are changing, different environments have different ipAddr,
So I want to use std::env::args. Is this achievable? or similar usage that allows me to specify contact points when I execute the program?

Hi @pili2026 :wave:
So assuming you don’t want to try abstract away the source of your configuration from actual environment variables, or abstract the storage of your long-lived session from a static variable, you shouldn’t have any problem using std::env::args in a lazy_static. Your program will attempt to access that environment the first time you use your session, so assuming those variables won’t change during runtime everything should work ok.

Hi @KodrAus
Thanks for reply, I didn’t expect this to be easy to use, I tested successfully, thanks

No problem! Please feel free to create new issues if you run into any troubles.


Examples are not rendered on docs.microsoft.com

This https://docs.microsoft.com/en-us/visualstudio/msbuild/removeduplicates-task#example doesn't show any example at all (Edge browser), while github page has corresponding section.
Changing language or theme doesn't help.

This issue has been fixed.


Issue/132/links in new tab

Aims to solve #132 by modifying the DOM

@mxxbe I really don't think the client is where we want to do such transformations. What do you think?

@marvinseith @JamieArmstrongArndt how much work would it be for you to implement this in the ETL process?

should be no big of a deal, will get right to it

We would fix this for the crawled link under the 'organization' entry, since we are already manipulating the link to match the 'ehrenatmssuche-hessen' internal link. Every other link probably needs to be handled by the frontend.

Im not sure if doing this only for organization while the other links are being handled by the frontend would be a good approach. Imo, modification links for the fields task, contact and organization should be handled completely from the backend or the frontend. Mixing responsibilities like that would just cause confusion and drifts

Like I stated above, the links of contact and organization are getting fixed by us. Are there any links in the field task?

I thought ive seen posts with links in the task field, but i cant find them anymore. I think however doing this for every field with the default behaviour being that if no link exists you dont do anything would be a good approach. Especially considering that if the crawling range gets expanded (not just ehrenamtssuche-hessen) links might be in yet unexpected fields. Or does that increase the processing time in the ETL process by too much?

Since we are doing a unique crawling and unique enhancement for every domain, it only affects the ehrenatmsuche-hessen right now. Nevertheless we can do a check for links in the task section also.

Closing this then


fix: allow the use of Mexican

Allows the use of Mexican instead of recommending Latinx.
Ref: Discord conversation
Note: This will also stop flagging Latino and Latina - take into consideration before merging.
Signed-off-by: nhcarrigan<EMAIL_ADDRESS>

Thank you very much.
I appreciate the EddieBot modifications.

Thank you very much.
I appreciate the EddieBot modifications.


File/Folder restructure.

A lot has changed since I put solid thought into this. With the recent change to single file publishing, the directory is much easier to traverse, and the need for a couple of folders is pretty well depreciated. If you fellas want to chime in and give your thoughts on this, your more than welcome to!

Moving .\Service\Globals.conf to .\Service.conf. Removing Service directory.
Moving .\Client\Config.conf to .\Client.conf. Removing Client directory.
Renaming .\Server to .\BmsConfig.
Removing all config backup directories. These were more a debug feature, If they were useful, I can bring them back.
Renaming .\Server\Configs to .\BmsConfig\ServerConfigs.
Renaming .\Server\MCSFiles to .\BmsConfig\BDSUpdates.
Renaming default server backup path to .\ServerBackups.
Player database folders merged to one PlayerRecords folder.

Will there be a migration from the old structure to the new one?  Or will I need to manually save a copy and rebuild my server configuration via the client UI?  Perhaps a simple power shell script to move the files around so people don’t have to “start over”?

@crowbarmaster This would be a good time for changing the naming scheme of backups. Currently you can only know the the time of the backup from backup manager, or through filesystem timestamps which are volatile.
backup_yyyymmdd_hhmmss would be great, sortable and and you can easily glance and know when it was made.

Version your backups and export files, so you know exactly what format it was written in to be able to import it later.

Will there be a migration from the old structure to the new one? Or will I need to manually save a copy and rebuild my server configuration via the client UI? Perhaps a simple power shell script to move the files around so people don’t have to “start over”?
As more people use this app, you will have to start getting into these sorts of versioning issues. The suggestion about export and importing things like player data will help you, but users won’t want to start over for each version. And then they will tend to leave an old version running forever, missing new features and bug fixes. And the longer they don’t upgrade, the harder the migration. People may have to step up multiple times, or your migration code will be very complex dealing with multiple old-to-new upgrade paths.

Oh yes, absolutely! Not expecting anyone to tackle that on their own. First thing to load is the globals.conf file, if it still exists in its old location, I will programatically move everything. I will leave this code around for a few releases, should be long enough that everyone is up to speed!

@crowbarmaster This would be a good time for changing the naming scheme of backups. Currently you can only know the the time of the backup from backup manager, or through filesystem timestamps which are volatile.
backup_yyyymmdd_hhmmss would be great, sortable and and you can easily glance and know when it was made.
I have a couple other suggestions regarding backups but they'll need a separate issue.

I am aware of the difficulty facing the folder naming scheme for backups. The challenge for me is that DateTime.Now(string format) does not have a default format that is path-friendly. Simple enough to date the folders in the way that it appears in log filenames, but parsing the filenames back into dates again was painful. What you see now is the datetime in Ticks. Going along with what @tiamat2012 mentions above, backups will soon be shipped with not only versions, but also this same Tick value, backup size, and any other info I should keep with. With the backups containing such info in a BackupInfo.json file, the path can be named easily, since the folders name no longer contains actual information. Export packages will also receive the same treatment.

I am aware of the difficulty facing the folder naming scheme for backups. The challenge for me is that DateTime.Now(string format) does not have a default format that is path-friendly. Simple enough to date the folders in the way that it appears in log filenames, but parsing the filenames back into dates again was painful. What you see now is the datetime in Ticks. Going along with what @tiamat2012 mentions above, backups will soon be shipped with not only versions, but also this same Tick value, backup size, and any other info I should keep with. With the backups containing such info in a BackupInfo.json file, the path can be named easily, since the folders name no longer contains actual information. Export packages will also receive the same treatment.

A timestamp is very user-friendly. Ticks don't mean anything to me. Forgive my ignorance, here. I don't know enough to appreciate the challenge in adding the current system time to the backup path.  Are you not able to grab the current time from the system?

Yes I can, and do! However the different arrangements available as a string
are not path friendly, often containing the ":" character, which is illegal
to use in a path. To make haste, I chose to run with Ticks, a long integer
defining the number of ticks from I believe starting from some date in
1970. Datetime provides an easy way to pull the exact date out of this from
a string, and since it's all numbers, it is path friendly. Soon, this info
will be in a file shipped with the backup, meaning the folder can be named
anything, eliminating the need for this worry. I will be free to date the
backup folders in the same manner as the logs then.
On Wed, Feb 2, 2022, 10:52 PM Mark Hensler @.***> wrote:

I am aware of the difficulty facing the folder naming scheme for backups.
The challenge for me is that DateTime.Now(string format) does not have a
default format that is path-friendly. Simple enough to date the folders in
the way that it appears in log filenames, but parsing the filenames back
into dates again was painful. What you see now is the datetime in Ticks.
Going along with what @tiamat2012 https://github.com/tiamat2012
mentions above, backups will soon be shipped with not only versions, but
also this same Tick value, backup size, and any other info I should keep
with. With the backups containing such info in a BackupInfo.json file,
the path can be named easily, since the folders name no longer contains
actual information. Export packages will also receive the same treatment.
A timestamp is very user-friendly. Ticks don't mean anything to me.
Forgive my ignorance, here. I don't know enough to appreciate the challenge
in adding the current system time to the backup path. Are you not able to
grab the current time from the system?
—
Reply to this email directly, view it on GitHub
https://github.com/crowbarmaster/BedrockManagementService/issues/66#issuecomment-1028576704,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQRHTFIIHIJ5UZTX7LF6ACTUZH3XRANCNFSM5NLAERZQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Since we're already talking about backups...

How about tagging/differentiating scheduled backups and manual backups? This way the backup limit would only apply to scheduled backups and backups created manually by pressing the button would be exempt from it. You can delete the manual backups from backup manager if you want.

What are your thoughts on zipping the backups? The reason for doing this would be to reduce the large number of small files to one big file. I have my backup folder synced to a cloud service and dealing with large number of files is much slower and inefficient than one big file. Since this isn't about file size you could limit the compression level to very low or even zero to avoid straining the cpu. This is merely a suggestion ofc, absolutely not a necessity.

Try

DateTime.Now.ToString("yyyyMMdd_HHmmss")

or:
$"{DateTime.Now:yyyyMMdd_HHmmss}"
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
I think this would be better than ticks as well.
I also like the idea of ZIP files, because databases do tend to compress decently.  Early on I thought the backups were Zip'd, and had mentioned the ZipFile class (in error).
https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile?view=net-6.0
You could pause the server, make the copy of the files with truncation, then release the server for updates (because ZIP'ing could take a little bit of time) like you do today, and finally create the ZIP file and delete the copied files afterward.  Restore would be to unzip the file into the right folder.  BTW - when you do a restore, do you clear the target folder first?  Because there could be new database files for chunks that were not visited in the backed up world being restored, and those should not be present after the world is restored.

Try

DateTime.Now.ToString("yyyyMMdd_HHmmss")

or:

$"{DateTime.Now:yyyyMMdd_HHmmss}"

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
I think this would be better than ticks as well.
I also like the idea of ZIP files, because databases do tend to compress decently. Early on I thought the backups were Zip'd, and had mentioned the ZipFile class (in error).
https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile?view=net-6.0
You could pause the server, make the copy of the files with truncation, then release the server for updates (because ZIP'ing could take a little bit of time) like you do today, and finally create the ZIP file and delete the copied files afterward. Restore would be to unzip the file into the right folder. BTW - when you do a restore, do you clear the target folder first? Because there could be new database files for chunks that were not visited in the backed up world being restored, and those should not be present after the world is restored.
You can also use ParseExact to read the date back from the filename:
https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parseexact?view=net-6.0

It's not a problem these days to adjust the backups to use a custom format. I set the backup system up quite a while ago when this was but a small server launcher, I had much less knowledge of .NET, and limited time. My former green self simply used what I could find built-in to get the job done, instead of taking the time to find something nicer.
I would assume your okay with the custom format MM-dd-yy_hh.mm.ss.ffff used for the logs? This is written the same way as the second example above. It's really only a few short steps to make this happen, and you guys should see this effective in the next update.
Oh, fear not, ZipFile and ZipArchive are good friends of mind these days 😄 If the goal is to make everything exportable via the client, some zipping will have to happen anyways. Since zipping a folder and sending a file takes longer than simply sending a pre-existing archive, it only makes sense to make this happen. The whole process is actually easier than you detailed - Currently, I read the files detailed in the query to a MemoryStream, which I dump the contents to a byte array, BlockCopy to exact length detailed by the query into a new array to be written to file. Should be easy enough to use ZipArchive here instead! Actually, because the contents are stored in RAM, the action of zipping takes little time more than writing the file.
You will be happy to hear that I purge the directory before restoring a backup!

Year, month, day with leading zeros allows you to sort the file names in the right order so you can do things like delete oldest in windows explorer.  Tradition US dates with Month first will not do an alphabetical sort in chronological order.  So it might be helpful to change up the format.  Eventually you need to think about log retention and setting limits.  Servers tend to run out of disk space because no one ever cleans up old logs.

I'm also a fan of the "yyyyMMdd_HHmmss" format.
I would prune scheduled and manual backups according to a common retention schedule, which you can set at the server instance level (as opposed to the host).
If I fire off a manual backup that I want to hold longer, I'll move the file out of the folder that BMS manages.

Year, month, day with leading zeros allows you to sort the file names in the right order so you can do things like delete oldest in windows explorer.  Tradition US dates with Month first will not do an alphabetical sort in chronological order.  So it might be helpful to change up the format.  Eventually you need to think about log retention and setting limits.  Servers tend to run out of disk space because no one ever cleans up old logs.

Well you've made a good point with the sorting issue. I will include this change for both backups and logs in the future release. Log retention can be had easily enough!
At one point in time, the max backup count belonged to the server. However, it was the only property attached to the server, and for simplicity sake in getting things working, it went to the service. If you guys would appreciate having the backup system setup as part of the server instead of service wide, it can be so. I also had future plans to one day restrict server updates to a server level, in the event that a server should be "Frozen" to a particular version.

There is also the cron schedule, full or world only backups, and destination folder settings to think about.  I don’t have an opinion since I only run 1 server, but I can see people asking for backup settings per server based on what sort of world and activity is running on each one, how much disk space they have, etc.  They may have some that are more read-only parkour and don’t need backups and others that are survivor worlds that need them more frequently.  Maybe you should wait on this until the next big release?

There is also the cron schedule, full or world only backups, and destination folder settings to think about. I don’t have an opinion since I only run 1 server, but I can see people asking for backup settings per server based on what sort of world and activity is running on each one, how much disk space they have, etc. They may have some that are more read-only parkour and don’t need backups and others that are survivor worlds that need them more frequently. Maybe you should wait on this until the next big release?

Yeah, I would be giving those to the server as well, wouldn't make much sense otherwise. I agree, waiting until the active issues are closed and a new release candidate ships is a must. I think we have a pretty decent list that will make for a nice update to the public. I am going write up what core issues we have, we will get 'em tested and working well, and open a new batch of features to work on! Still, these discussions have been very informative, and many will serve as the basis for aforementioned issues to open!

Moving .\Service\Globals.conf to .\Service.conf. Removing Service directory.
Moving .\Client\Config.conf to .\Client.conf. Removing Client directory.
Renaming .\Server to .\BmsConfig.
Removing all config backup directories. These were more a debug feature, If they were useful, I can bring them back.
Renaming .\Server\Configs to .\BmsConfig\ServerConfigs.
Renaming .\Server\MCSFiles to .\BmsConfig\BDSUpdates.
Renaming default server backup path to .\ServerBackups.
Player database folders merged to one PlayerRecords folder.

Additions to list:

Logs naming changed: {logType}_MM-dd-yy_hh.mm.ss.ffff to (ServerLog\ServiceLog\ClientLog)-yyyyMMdd_HHmmss.
Backup naming changed: Backup_TickCount to Backup_yyyyMMdd_HHmmss

A test will be performed at service or client startup to automatically relocate files, as well as fixing names on existing backups and logs. Test simply checks for Globals.conf to trigger the move. Almost written now, should be debugging shortly!

Currently, The name of the logs are what they are to make sure a new logger runs a new file on startup. Would you guys appreciate it if the logs of past instances were appended to a zip file? Because they are text and usually not too large, they can be added to a zip file with ZipArchive fairly easily and without adding a load of time to startup.

This morning while testing the upgrade assistant, I ran into an issue fixing file names. I have to extend the current time format to yyyyMMdd_HHmmssff in lieu that two or more backups or logs where made within the same minute. Failed service launches or the event that someone fired off a series of backup events back-to-back will cause errors and leave old names behind. I can assert that adding 2 digits of milliseconds works well!

Backups are successfully writing to a zip archive today!

Many changes need to be made yet when it comes to rollback, but we are close!

Rollbacks are working! I can't justify doing work on the backend of the backup system without a little frontend work 😉 The backup manager is getting a refresh:

I am going to give some thought tonight on menu strip layouts!

Most all of what has been talked about here has been verified working on my end! Probably a few bugs here, so be vigilant! Feel free to open issues on anything that looks out of order! Thanks guys!


feat(tls): add cert-manager toggle to Cryostat CRD

This PR adds an API field to the Cryostat CRD to allow the user to more easily adjust whether cert-manager should be enabled. This also has the benefit of making the default requirement on cert-manager more visible to the user.
The IsCertManagerEnabled function now takes the Cryostat CR and checks for the spec.certManagerEnabled property. If absent, the check falls back to the DISABLE_SERVICE_TLS environment variable for backward compatibility. Because this allows cert-manager enablement to be adjusted at runtime, some adjustments had to be made to allow the deployment to swap between enabled/disabled cert-manager configurations.
The deployment now uses CreateOrUpdate to update the whole pod template to add/remove various TLS-related volumes, mounts, environment variables. Likewise for Routes to change their TLS termination and destination CA cert. When the CA cert mounted under /truststore was removed when transitioning from enabled to disabled cert-manager, an empty file for the mount point was left behind. Cryostat attempted to add this empty file to its trust store and crashed. To avoid this, I combined the CA cert and any user-supplied certs into a single projected volume [1]. This volume then gets mounted under /truststore/operator/. This works because Cryostat looks for certs within subdirectories as well.
Screenshot from Cryostat CR creation page:

Relates to: #239
Fixes: #236
[1] https://kubernetes.io/docs/concepts/storage/volumes/#projected

To test this, I would recommend toggling enableCertManager off and then back on again, and ensuring nothing breaks.


我这里有很小的数据库，能不能通过wenet框架训练出来进行语音识别

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

多大的数据库？

特别小，训练出来效果是不是很差

太小的活性能会不好。可以考虑使用开源的wenetspeech模型，在此基础上进行finetune

n reopen this issue if there are still problems


Separate wh download

Now Instance.details doesn't have workflowHistory, we can download it from router.get_instance_workflowhistory

@storgashov @vasichkin please review

So, there won't be field 'workflowHistory' in instance details, right?
There are lots of dependencies on this field in tests. (https://github.com/qubell/vermilion/search?l=Python&q=workflowHistory&utf8=✓)

I got it.
I suggest add this workaround here and please comment it.
Also it must be backward-compatible.
Modifying cache is bad idea.

@vasichkin, the main idea was to make Instance behaving exactly as before. Retrieving "workflowInfo" within the Instance.json and adding it into the cache method does the work. If we move this operation into the getattr, the Instance won't be backward compatible because there're places in tests which get access to the instance's JSON directly and then extracting required fields, including "workflowInfo", from that JSON. The getattr is not called in such the places at all.

Looks good to me, but should be tested.
Move client submodule in your PR to vermilion and pass tests. When passed - could be merged.


[WIP][QT][RPC] 2FA Integration

This pull request is considered a work in progress due to feedback and possible design/logic refactoring as testing is expanded.
Implemented:

Seed Generation
Qr Code Generation
Lock/Unlock/Lock for Staking only 2FA in Qt
RPC walletpassphrase 2FA integration
RPC generate2faseed
Ability to copy seed with a button
seed.dat file creation

Pictures:

That is the current ongoing progress.
Idea/TODO:
Adding a 2FA notification on the TopBar
Enabled:

Disabled:

Font taken from:
https://fonts.google.com/icons
I am unsure if this is the best option, maybe we can find some elsewhere, that is the reason for not incorporating at the start of this PR.

More tests are needed in RPC OTP verification as well as maybe changing the current setup using wider testing to find better user experience.

RPC walletpassphrase should be used as the following
walletpassphrase "pass" time stakingonly(true/false) otpCode

Upon more testing, we will take the next step of securing the seed for 2FA by writing it into the wallet.dat but that will take more time and research in comparing output/parsing of the .dat to not break key dumps

Possible to update wallet version for these checks to separate out the keys from seed so no interference with older etc

Binaries:
91fec650626bb99289b019601174207e81fc0915aa7ef4314aa7eb3a4e60bc1b decenomy-3.0.0-aarch64-linux-gnu-debug.tar.gz
0002d1eefe1778bc75d8a7ff0b1e784d729f58659da14cbee47c4d26d8d33353 decenomy-3.0.0-aarch64-linux-gnu.tar.gz
dcb3311fbbc6e01be091cdebcca362a8ca58f0e71af24c1ac1e7a1059d2f957c decenomy-3.0.0-arm-linux-gnueabihf-debug.tar.gz
ed6710766caeb16b16a59adbba5c5e5a07faaa6dff12e0c7f47e224ddd288d65 decenomy-3.0.0-arm-linux-gnueabihf.tar.gz
80068ca8b5855fee44085fc01ad68ead737d53b91c9e618fb84b3dd39a007666 decenomy-3.0.0-i686-pc-linux-gnu-debug.tar.gz
a3a63641d362cc4ab1d23f630ce4fc4a4b94bbc4489d0d815010948cf020b436 decenomy-3.0.0-i686-pc-linux-gnu.tar.gz
a1ab965bd86fbae392cfce2d73b0cfdc5a2d4323103ee53413d4a9af4458f03e decenomy-3.0.0-x86_64-linux-gnu-debug.tar.gz
b5a2fa58f9639faa7f81299978f2bf7e0ea0363df015bc04de840dc043c37021 decenomy-3.0.0-x86_64-linux-gnu.tar.gz
d1713c0af9601ecaa623043c2a083a8026830c3d1bdb3a583fa6113a8255c9e3 decenomy-3.0.0-osx-unsigned.dmg
8dfe07207a9f2778d7209f8b1ef1d7e4c2354f41bd7b50aaec5bf7273c9e376e decenomy-3.0.0-osx-unsigned.tar.gz
afa4c13a19050b7acc3f70aa17edae83ccb73ade762ef9e8942e3889be5ab67f decenomy-3.0.0-osx64.tar.gz
Binaries were too big to upload with the PR, will upload shortly somewhere else.
If you would like to match these hashes the compile was done from https://github.com/LiquidsLabs/dsw.git
In order to keep this PR clean I had forked and setup gitian there so none of those modifications would muddy up the PR review. So for consistency, if you would like to match hashes please compile from that github on the gitian-init branch.
https://transfer.sh/daiY7A/__decenomy__-3.0.0-aarch64-linux-gnu.tar.gz
https://transfer.sh/vIsswE/__decenomy__-3.0.0-aarch64-linux-gnu-debug.tar.gz
https://transfer.sh/JFNTku/__decenomy__-3.0.0-arm-linux-gnueabihf.tar.gz
https://transfer.sh/TH2YQp/__decenomy__-3.0.0-arm-linux-gnueabihf-debug.tar.gz
https://transfer.sh/aIgY2r/__decenomy__-3.0.0-i686-pc-linux-gnu-debug.tar.gz
https://transfer.sh/y2JsTw/__decenomy__-3.0.0-i686-pc-linux-gnu.tar.gz
https://transfer.sh/rtC4p6/__decenomy__-3.0.0-osx-unsigned.dmg
https://transfer.sh/4AiUI4/__decenomy__-3.0.0-osx64.tar.gz
https://transfer.sh/Lqep3W/__decenomy__-3.0.0-x86_64-linux-gnu-debug.tar.gz
https://transfer.sh/F3tYkB/__decenomy__-3.0.0-x86_64-linux-gnu.tar.gz
https://transfer.sh/sUUdcY/__decenomy__-3.0.0.tar.gz
Windows needed a modification to google auth code to compile properly for some reason, so thats going to throw off hashes. Will recompile if preferred to get all matching hashes again.
7c61886ec67dd786ad1e7140bc538206dc19ac4147c1fbe54190ce90d845d559 decenomy-3.0.0-win64-debug.zip
75588a57f7927b57293263f1a6ef7d729dfcd7915f890d86d7fd88c9cdd8dedd decenomy-3.0.0-win64-setup-unsigned.exe
eca6ba5de898f48417e27cfa99eacd2f9a5a262122662822d027f85d39e90824 decenomy-3.0.0-win64.zip
https://transfer.sh/ltDcp2/__decenomy__-3.0.0-win64-setup-unsigned.exe
https://transfer.sh/b5z0aO/__decenomy__-3.0.0-win64.zip
https://transfer.sh/PYQxnI/__decenomy__-3.0.0-win64-debug.zip

Is this still on the table?
If so, let us test this pull request and if all is ok and nothing against it had surfeced, merge it.

the work will be continued on another PR


Fix mingw-w64 build errors

Fixes building with mingw-w64's headers on a case-sensitive filesystem.

Added a 2nd commit which fixes hello_xr build on mingw-w64.

Awesome, thanks! Can you add a changelog fragment to changes/sdk/ - see the readme in there for instructions? You might also consider rebasing on the latest main branch since I fixed the CI failure

@rpavlik OK, branch is updated. Take another look?

Looks great, thanks!


cannot receive notification from Bluetooth device

When we try to get the notification we receive the following error. When using the same command in the NRF command it gives the data correctly.
(node:4511) UnhandledPromiseRejectionWarning: DBusError: Operation failed with ATT error: 0xff
at methodReturnHandlers.(anonymous function) (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:339:27)
at handleMessage (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:98:11)
at EventEmitter.MessageBus.conn.on (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:147:9)
at EventEmitter.emit (events.js:198:13)
at /home/pi/.node-red/node_modules/dbus-next/lib/connection.js:112:14
at Socket. (/home/pi/.node-red/node_modules/dbus-next/lib/message.js:63:9)
at Socket.emit (events.js:198:13)
at emitReadable (_stream_readable.js:555:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
(node:4511) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
(node:4511) UnhandledPromiseRejectionWarning: DBusError: No notify session started
at methodReturnHandlers.(anonymous function) (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:339:27)
at handleMessage (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:98:11)
at EventEmitter.MessageBus.conn.on (/home/pi/.node-red/node_modules/dbus-next/lib/bus.js:147:9)
at EventEmitter.emit (events.js:198:13)
at /home/pi/.node-red/node_modules/dbus-next/lib/connection.js:112:14
at Socket. (/home/pi/.node-red/node_modules/dbus-next/lib/message.js:63:9)
at Socket.emit (events.js:198:13)
at emitReadable (_stream_readable.js:555:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
(node:4511) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 5)
Does anyone have any suggestions?
Thank you

The error was thrown by BlueZ's gatt_client.c module, which means the issue is related to raw packet problem and out of Node-RED/Node.js process scope.
So you may want to check the connection between your BLE device and your Node-RED host device by using BlueZ CLI commands such as bluetoothctl, or other dbus CLI tools to test the packets and commands.


Added errorMessageVisible at updateErrorMsg

Boolean variable to allow bootstrap decorator to monitor when the input is showing an error message.
#142

is there a particular reason why you set it to undefined instead of false when not showing?

I think that setting to undefined is better because as the value is not initialized at the constructor or so, the only possible values are "true" and "undefined". If you set to false, during the object lifecycle the possible values would be "true", "false" and "undefined" (before the updateErrorMsg is called)
But at the end, it is a matter of personal preference :)

Do you have to do a check if that property exist before looking at the true flag? I mean, do you need to do something like self.ctrl.hasOwnProperty('errorMessageVisible') because looking at the boolean value?


Mute commands and opt-in/out for spectating in general.

Current coverage is 38.57%

Merging #12 into master will increase coverage by +0.90% as of 1a4305d

@@            master     #12   diff @@
======================================
  Files           34      34
  Stmts         1091    1133    +42
  Branches       155     165    +10
  Methods          0       0
======================================
+ Hit            411     437    +26
- Partial         40      42     +2
- Missed         640     654    +14

Review entire Coverage Diff as of 1a4305d

Powered by Codecov. Updated on successful CI builds.


Fix jQuery version in package.json

Updated "jquery" in package.json to be more flexible, allowing a version range between 1.7.2 and latest 2.x. This is needed because yarn install errors out otherwise. Also, npm install produces this warning: "…Versions of the jquery npm package older than 1.9.0 are patched versions that don't work in web browsers"

Thanks!

Thank you for merging it in! Any chance you could bump the version and publish to npm?
thanks agin.


Should use std::env::args_os()

Use std::env::args_os() and immediately convert to PathBuf for non-standard strings.

updated in new release


BUG when building a project with junctions in non-strict mode

See original issue on GitLab
In GitLab by [Gitlab user @abderrahimk] on Apr 11, 2019, 21:37
Summary
A stack trace when loading the project with a junction in non-strict mode.
Steps to reproduce
Use gnome-build-meta branch juerg/strip-variables (or any project with junction), and try bst --no-strict build core.bst.
What is the current bug behavior?
I get the following stack trace:
BUG     join() argument must be str or bytes, not 'NoneType'

    Traceback (most recent call last):
      File "/home/abderrahim/.virtualenvs/bst-master/bin/bst", line 8, in <module>
        sys.exit(cli())
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/core.py", line 764, in __call__
        return self.main(*args, **kwargs)
      File "/home/abderrahim/dev/bst-master/buildstream/_frontend/cli.py", line 195, in override_main
        standalone_mode=standalone_mode, **extra)
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/core.py", line 956, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/core.py", line 555, in invoke
        return callback(*args, **kwargs)
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/site-packages/click/decorators.py", line 27, in new_func
        return f(get_current_context().obj, *args, **kwargs)
      File "/home/abderrahim/dev/bst-master/buildstream/_frontend/cli.py", line 387, in build
        remote=remote)
      File "/home/abderrahim/dev/bst-master/buildstream/_stream.py", line 242, in build
        dynamic_plan=True)
      File "/home/abderrahim/dev/bst-master/buildstream/utils.py", line 1303, in _gc_disabled
        return func(*args, **kwargs)
      File "/home/abderrahim/dev/bst-master/buildstream/_stream.py", line 1041, in _load
        fetch_subprojects=fetch_subprojects)
      File "/home/abderrahim/dev/bst-master/buildstream/_pipeline.py", line 113, in load
        fetch_subprojects=fetch_subprojects)
      File "/home/abderrahim/dev/bst-master/buildstream/_project.py", line 456, in load_elements
        fetch_subprojects=fetch_subprojects)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 114, in load
        element = loader._load_file(name, rewritable, ticker, fetch_subprojects)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 263, in _load_file
        fetch_subprojects, dep.provenance)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 263, in _load_file
        fetch_subprojects, dep.provenance)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 263, in _load_file
        fetch_subprojects, dep.provenance)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 258, in _load_file
        fetch_subprojects=fetch_subprojects, provenance=dep.provenance)
      File "/home/abderrahim/dev/bst-master/buildstream/_loader/loader.py", line 559, in _get_loader
        filename, element._get_cache_key())
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/posixpath.py", line 94, in join
        genericpath._check_arg_types('join', a, *p)
      File "/home/abderrahim/.virtualenvs/bst-master/lib/python3.7/genericpath.py", line 149, in _check_arg_types
        (funcname, s.__class__.__name__)) from None
    TypeError: join() argument must be str or bytes, not 'NoneType'

Possible fixes
Bisecting this gives it started happening in 352f4ad9a360ca4f8f3a0b7a68106d0131eeb374. It seems element._get_cache_key() is returning None for some reason.
Other relevant information

BuildStream version affected: current master 887461a584613c304064a636cbda8f4c863f35f9

In GitLab by [Gitlab user @tpollard] on Apr 12, 2019, 11:59
It is possible for get_cache_key() to return None if the current context (if we're in strict mode or not) returns a key that has not yet been assigned. In this case from a brief look it should be returning the value of the strong cache key.

In GitLab by [Gitlab user @tristanvb] on May 8, 2019, 13:09
Closing this as duplicate of #1018, since it already has a regression test and fix which is about to close it.
I will carry this useful information forward thanks.

In GitLab by [Gitlab user @tristanvb] on May 8, 2019, 13:09
marked this issue as a duplicate of #1018

In GitLab by [Gitlab user @tristanvb] on May 8, 2019, 13:09
closed

In GitLab by [Gitlab user @tristanvb] on May 8, 2019, 13:10
mentioned in merge request !1333


OpenCore cannot boot windows

Hi there, first of all thanks for you repo, it is amazing.
Then, the problem I'm experiencing is that I cannot boot into Windows 11 through OpenCore. I can normally boot windows without OpenCore, through boot selection by F12.
When I try to boot through OpenCore I get a Blue Screen Of Death that says ACPI BIOS ERROR. I think it has something to do with the ACPI patches, but I'm not really sure. I'd love to get OpenCore to boot windows, so I could use NVRAM to switch OS like a native Mac with BootCamp.
I'm using your release 3.2 and my bios is 1.29
Do you have any suggestion on how to solve ?
BTW Cheers for the new year ✨

Not a solution but just a note: I'm dual-booting through OpenCore with Windows 11 successfully with release 3.2, although it was upgraded from Windows 10 after I already had a working OpenCore setup.

Found the culprit. The patches and SSDT-TB* related to get thunderbolt support on MacOS were causing an issue with them. Disabling them allowed me to boot fine.

I was able to pin down the problem to specifically the hot-patches in OpenCore.
enable TB3: _GPE.NTFY,1,S to XTFY binary patch

enable TB3: RP9._INI,0,N to XINI binary patch

I was wondering if it was possible move these patches to SSDTs and adding a if (_osi ( darwin )) condition so the patches won't apply to Windows.
Regardless, thanks for the help ✨ 👍

Unfortunately not, a binary patch could only rely on OC's config.plist and just as unfortunately binary patches are applied to ALL OSes (i.e. there is no if statement we could rely on...) since it is an OC's "feature"... (OC developers say so...)


session_active

I'd like a single call to check whether I'm logged in to an active session. Right now the most concise I've found is is.null(current_session()) || !session_validate() - not awful, but a single function call would be nicer. Something like
session_active <- function(session=current_session()) {
  !is.null(session) && session_validate(session)
}

It's possible something like this already exists in the package under a name I didn't recognize - if so, someone please chime in.

:+1: from me

Now I think the above strategy might not be sufficient. I logged in more than an hour ago, let my R session sit for a while, then came back and ran an SB query. The query returned 673 results the first time and 0 just now, without any error resulting from if(is.null(current_session()) || !session_validate()) stop(). I logged in again and then got 673 back. I really would like to be able to send  an error or warning when the session goes inactive, but I clearly don't have the right code yet.

Hmm, is this the definitive docs on authentication for Sciencebase? https://my.usgs.gov/confluence/display/sciencebase/Authenticating
What about this:
is_session <- function(..., session = current_session()) {
	x <- GET(paste0(pkg.env$url_base, "jossoHelper/sessionInfo"),
					 handle = session, ...)
	stop_for_status(x)
	content(x)$isLoggedIn
}

is_session(config=verbose())
#> -> GET /catalog/jossoHelper/sessionInfo HTTP/1.1
#> -> Host: www.sciencebase.gov
#> -> User-Agent: libcurl/7.43.0 r-curl/0.9.4 httr/1.0.0
#> -> Accept-Encoding: gzip, deflate
#> -> Cookie: BNES_JSESSIONID=qktoyF7oOHGxDUjwUQjeUexHoMuSZC23r2WNwOa829BGb6HypEmkoaVLP8xZ7sNYgCpYPcUHhor+8y+lhnAjEvUmK2G4IAB6bwW5numm1JdO9zwwzW+vkw==; JSESSIONID=A6A1EFE89BCC3C840E0F14E9D75459A4
#> -> Accept: application/json, text/xml, application/xml, */*
#> ->
#> <- HTTP/1.1 200 OK
#> <- Date: Wed, 23 Dec 2015 00:41:33 GMT
#> <- X-Frame-Options: DENY
#> <- X-UA-Compatible: IE=edge
#> <- Content-Type: application/json;charset=UTF-8
#> <- Transfer-Encoding: chunked
#> <-
#> [1] TRUE

After restarting R session, and not re-authing:
is_session()
#> [1] FALSE

thoughts?


Fix name with spaces

Currently, giving a slice a name with spaces braks the code

Transferred to sonata-nfv/tng-slice-mngr#61


[C++] Why is arrow mmap marked MAP_PRIVATE (during read)?

Describe the usage question you have. Please include as many useful details as  possible.
Why is it marked MAP_PRIVATE here?
Is there a reason why you've explicitly chosen to not (also) use MAP_SHARED similar to write?
We are trying to evaluate if this causes multiple workers (in a distributed training) to mmap multiple times instead of reusing the same mmap'ed file and reduce memory usage?
Component(s)
C++

Seems that RocksDB use MAP_PRIVATE and badger uses MAP_SHARED. Is there any differences between MAP_PRIVATE and  MAP_SHARED when not defined PROM_WRITE? Seems that it's cow, it shares the underlying memory if you didn't write to that buffer? And if there is something different, would you mind provide some benchmark data between them?

Since we are not doing any rights there shouldn't be any difference.  I suspect we picked MAP_PRIVATE just because it was more foolproof.
This seems unrelated to how many times something might call mmap.

Let's just consult the Linux mmap man page:
       MAP_PRIVATE
              Create  a  private copy-on-write mapping.  Updates to the mapping are not
              visible to other processes mapping the same file,  and  are  not  carried
              through  to  the underlying file.  It is unspecified whether changes made
              to the file after the mmap() call are visible in the mapped region.

Since it's a copy-on-write mapping, there would only be any duplication if the user writes into the mapped area.


docs: Add example values for REST api

Area of Improvement
For the REST API documentation, all of the examples only contain required fields, but not examples for values. As someone who is not intimately familiar with all the terms used throughout the rest of the documentation, it would make it simpler to see an example value eg:
POST deleteFiles. What is files? Is it an array of urls? What are customIds?
Link to related docs
https://docs.uploadthing.com/api-reference/openapi-spec
Additional information
No response
👨👧👦 Contributing

[ ] 🙋♂ Yes, I'd be down to file a PR implementing the suggested changes!

Good callout, will need to check if the tool we use for generating those docs supports this or if we will need to build something to support it.

Any updates?

I'm having hard time integrating the REST API on my application, I'll just use UTApi at the mean time...


BS4 popover dynamic content (image)

I tried doing a codepen for this problem, but I can't reproduce it there (likely because of how it needs to work in our system vs a simple example).
I have a table with a list of stuff in it, the first column in the table is a camera which when you hover over is supposed to show the image for the product.
I have the data-toggle set to "popover" and data-content for each camera set to basically do: img src="get_image.p?serial_no=1234"
I then have a $('[data-toggle="popover"]).popover({ html: true, trigger: 'hover' }), however when I hover over the camera, the popover is all screwed up, it isn't aligned properly with the arrow or the popover itself, and the popover isn't wide enough to fit the image.
If I move the mouse away and then back onto the same camera, the popover is aligned perfectly however it still isn't wide enough for the image.
Normally I use tooltipster, I find it better than popper.js (more configurable, etc...) and to fix it there I would set a 'width' on the image since the image isn't loaded until the moment you hover over the camera.
Wish I could do up a codepen, but as said, I'm guessing my case is very unique and I can't recreate it easily enough (I tried, but it doesn't have the same issue, likely because all the images I tried to use are regular files and not stored in a database).

ok, managed to get a working example. Not sure if i'm doing this codepen thing properly or not, but:
https://codepen.io/anon/pen/EQqwMQ
It's the black camera you want to hover over.

OK, never mind, I should learn to look closer (having a cold doesn't help I guess), in my older BS3 ones I used the class 'img-responsive' on the image tag, looks like I just had to change 'img-responsive' to 'img-fluid' and it all works.

Though it still has an alignment issue on first showing it, if I mouse away and back over the alignment issue is resolved.
I may just give up and go back to tooltipster, would rather not but i'm just not liking popper at this present stage.

Hi I would like to give a look at your CodePen but no Popover is shown on hover because you didn't set any content, can you update your CodePen ?

I did have earlier, but I removed the image because it pointed to a sensitive area, will have to update it later with a better example.
For now I have gone back to tooltipster where all I had to do to make it work there was set a CSS width.

Ok but can you update you codepen with a random image ? It'll allow us to work on your issue

Replacement codepen (Apparently I don't know how to codepen...).
I just chose a random image off of Google Images, unfortunately it doesn't exhibit the same behaviour that I am seeing.
https://codepen.io/anon/pen/aqeQgr

Hmm ok, but it doesn't help us 😟
Maybe you can add a delay to let time to your browser to download your image.
See: https://getbootstrap.com/docs/4.0/components/popovers/#options

Ok, done a new codepen, created a test file on our server that only pulls up that one image.
https://codepen.io/anon/pen/NyQoLP
When you hover over the bottom camera, the image appears too low with the arrow at the top of the popover, when you mouse away and then back on it again, it all works fine.
Have also added the class="img-fluid" to each one which fixes the width problem.

a solution for your issue would be to bind the load of your image and when it's done calling the update method of our popover plugin see: https://getbootstrap.com/docs/4.0/components/popovers/#popoverupdate


Promises

Hi all,
Some days ago I implemented async calls with promises. So the calls change from this:
Older version, sync and blocking method:
// GetRecords
var results = csw.GetRecords(1,10,filter);
console.log(results);

to this:
New version, async and no-blocking method:
// GetRecords
csw.GetRecords(1,10,filter).then(function(result){
        console.log(result)
    });

The code can by re-viewed at https://github.com/juanmav/ows.js/tree/promises
any comments?
Regards
JM

@juanmav: nice.  Is this in master yet?  Are there any drawbacks to having async as the default pattern?

@tomkralidis It isn't in the master yet.
I think there are drawbacks with sync calls because these ones block the execution until the remote call is resolved. In a browser environment it will get the web app unresponsive until the call will be resolved.

@juanmav thanks for the info.  I'm +1 for async to be added to the codebase.


sidebar background images (fixed in middle and above and below graphics) and fit line spacing

mostly fixed, downgrading to "nice to have" (still looks very static on mobile)


Mergeback release to development

What it solves
Merge back release versioning back to development

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
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 77.534%

Totals

Change from base Build<PHONE_NUMBER>2:
0.0%

Covered Lines:
978

Relevant Lines:
1188

💛  - Coveralls


DAM Generator partially wired to the dashboard

This allows the step 4 to autogenerate the DAM based on the selected ADP. Currently it doesn't feature the automatic generation of the SLA  Agreements and the Monitoring Rules.
Please notice that the Planner it's not wired properly in the catalog, please use an external planner IP in order to test it. (Same as #140  http://<IP_ADDRESS>:1234)
@rosogon  could you take a look?
Thank you!

+1


License check for 0.5.1 Gravitino release

Check if LICENSE and NOTICE files need to be updated due to added 3rd party software or changed dependancies. Need to check java dependencies, python client and Web UI.

LICENSE paths need updating See #3576

We're missing origin/license for two SVG files #3579

Checked source and binary LICENSE and NOTICE files and there's no need for any changes, other than #3576 and #3579  above, so everything is fine from a Java point of view. Still need to check WebUI and Python client.

Looking at the WebUI about 80 licenses have changed.

There's one very minor issue with @swc/counter as it doesn't have a license. However, it also contains no code and is used to count usage of the swc package so we don't need to include it in the LICENSE file.

There's an issue with font license in Web UI - see #3593

Review complete. Action is needed on #3593 and #3579.


Change to simplify endpoint behavior w.r.t. generating ceil conditions

In pyk, we use the simplify endpoint to generate initial ceil conditions to feed to the backends on proofs (https://github.com/runtimeverification/pyk/blob/b970e0cbc6c0df6872e6552af76239478a831b9b/src/pyk/kcfg/explore.py#L276).
In th elatest K update to pyk (https://github.com/runtimeverification/pyk/pull/913), we have a test failing because the cterm_assume_defined ends up computing different definedness constraints on the old backend on the version before vs. version in that PR.
Attached are bug reports of th einteraction collect on master (ceil-gen-simplify-good.tar.gz), and on the update-deps branch (ceil-gen-simplify-bad.tar.gz). The first request/response pair is what differs, in the master version we have 2 #Ceil conditions generated for the initial state, and in the update-deps version we only have 1.
I've also made a PR which isolates a more specific test of this: https://github.com/runtimeverification/pyk/pull/914. The K spec in question is this one: https://github.com/runtimeverification/pyk/blob/master/src/tests/integration/k-files/mini-kevm-spec.k, against this definition: https://github.com/runtimeverification/pyk/blob/master/src/tests/integration/k-files/mini-kevm.k.

The commit that breaks the pyk test in question: https://github.com/runtimeverification/haskell-backend/commit/fa0d3b2809154e4c01c0ab62660f757a8fc31dfb.

I have discovered  something very interesting: if I reorder the element in the storage when formulating the claim:
         <account>
           <acctID> ACCT_ID </acctID>
           <storage>
-            #hashedLocation("Solidity", 4, .IntList)          |-> STOPPED
             #hashedLocation("Solidity", 1, FROM_ID)           |-> STOPPED
             #hashedLocation("Solidity", 2, FROM_ID CALLER_ID) |-> STOPPED
+            #hashedLocation("Solidity", 4, .IntList)          |-> STOPPED
             _:Map
           </storage>
           <origStorage>
-            #hashedLocation("Solidity", 4, .IntList)          |-> STOPPED
             #hashedLocation("Solidity", 1, FROM_ID)           |-> STOPPED
             #hashedLocation("Solidity", 2, FROM_ID CALLER_ID) |-> STOPPED
+            #hashedLocation("Solidity", 4, .IntList)          |-> STOPPED
             _:Map
           </origStorage>

the proof passes.


IDistributedCache should include StringSet/SetString

Right now IDistributedCache is a generic interface that's presumably meant to support lots of distributed caches. It's pretty clear, though, that Redis is going to be 80% or more of the usage. Not to mention Azure has a Redis As A Service.
IDistributedCache has SetAsync which just takes bytes...as it is there's no easy way to add overloads/extensions to get at the underlying Redis implementation and set strings.
As we are today, you can't set from ASP.NET Core and GET from the CLI. redis-cli supports SET and GET with strings. This makes debugging with the CLI a hassle.
GetString and SetString are atomic enough that they should be added to IDistributedCache.
/cc @nickcraver @mgravell @DamianEdwards @rustd

It's worth noting that we don't just store the bytes, we store our own complex object containing the expiration information: https://github.com/aspnet/Caching/blob/dev/src/Microsoft.Extensions.Caching.Redis/RedisCache.cs#L81-L88
So even if we added a string version, I don't know if you'd be able to view it from the CLI. Have you tried to hack it in yet?

Hacky but possibly workable:
static Task SetAsync(this IDistributedCache cache, string key, string value) {
    return cache.SetAsync(key, Encoding.UTF8.GetBytes(value));
}

On the CLI front: looking at that script, as long as the caller knows to use HGETALL {key} rather than GET {key}, that should actually be usable and readable. Unlike our even hackier in-house middleware that is actually a single blob of a protobuf-encoded object that (like you) has optional sliding expiration and may or may not have the payload gzip compressed!
As a side note, I so want to C#6-ify that RedisCache.cs linked above...
    private const string SetScript = $@"
            redis.call('HMSET', KEYS[1], '{AbsoluteExpirationKey}', ARGV[1], '{SlidingExpirationKey}', ARGV[2], '{DataKey }', ARGV[4])
            if ARGV[3] ~= '{NotPresent }' then
              redis.call('EXPIRE', KEYS[1], ARGV[3])
            end
            return 1";

;p

Thanks Marc...I guess after "the basics" everyone starts piggybacking
metadata on top or putting it in the serialization format, don't they?
HGETALL works for my basic learning/teaching scenario, thanks!
On Tue, Mar 22, 2016 at 2:51 PM, Marc Gravell<EMAIL_ADDRESS>wrote:

Hacky but possibly workable:
static Task SetAsync(this IDistributedCache cache, string key, string value) {
return cache.SetAsync(key, Encoding.UTF8.GetBytes(value));
}
On the CLI front: looking at that script, as long as the caller knows to
use HGETALL {key} rather than GET {key}, that should actually be usable
and readable. Unlike our even hackier in-house middleware that is actually
a single blob of a protobuf-encoded object that (like you) has optional
sliding expiration and may or may not have the payload gzip compressed!
As a side note, I so want to C#6-ify that RedisCache.cs linked above...
private const string SetScript = $@"
        redis.call('HMSET', KEYS[1], '{AbsoluteExpirationKey}', ARGV[1], '{SlidingExpirationKey}', ARGV[2], '{DataKey }', ARGV[4])
        if ARGV[3] ~= '{NotPresent }' then
          redis.call('EXPIRE', KEYS[1], ARGV[3])
        end
        return 1";

;p
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/aspnet/Caching/issues/169#issuecomment-200046760

--
Scott Hanselman
Donate to fight diabetes: http://hnsl.mn/fightdiabetes

Putting to 1.0.0 so that we can reconsider after RC2 ships

I wrote a full set of extension methods for IDistributedCache which includes Get/Set String, as well as Get/Set anything of type T (Serializes/Deserializes T to/from JSON and stores it as a string). It can be found:

Here on GitHub
In the Boilerplate.Web.Mvc6 NuGet package.
Included when creating a new project using the ASP.NET MVC Boilerplate project template.

If think this should just be an extension method as Marc is suggesting and not at the interface level. The result is the same in the end for the end user. Having a set of primitive conversions like Rehan has done would be nice too.

If it is at the interface level, the cache provider can control how serialization works. For example, the cache may prefer to represent the data in XML or JSON format instead of binary.

Redis is going to be 80% or more of the usage
While this maybe true at the moment but nobody can predict the future. For a specific use case we can't/shouldn't change an interface which is an abstraction.

Just by curiosity, why IDistributedCache has no extensions methods for storing objects ? Something like Get(string key) or Set(string key, Type value) ?

@ChrisProlls just because we haven't needed them yet. Session is one of the only consumers at the moment and it uses it's own serialization logic.

Another use case is two-level caching.
Some caches may want to keep a subset of your object in a local cache so that it can quickly give it back to you.
The current design requires a potentially expensive deserialization process even if the object doesn't need to be fetched over the wire.

I don't see this interface as an abstraction at all, and that's the problem.
Instead it is specifically written for caches that use binary as their communication protocol and for cache consumers that want to control serialization.
We need a generic contract for distributed caches that can be used beyond that very narrow scenario and this isn't it.

@Grauenwolf This specific interface is not designed to support your scenario obviously, and that's fine. I suggest you create a custom service that could reuse IDistributedCache and IMemoryCache to fulfill what you need. The implementation would only have the fallback logic you are mentioning, so it should be pretty simple. Having a service that does all the things anyone could require would be a bigger problem IMO.

I agree to @Grauenwolf and sort of with @shanselman as well
void Set(string key, byte[] value, DistributedCacheEntryOptions options);
is very specific. While I would suggest the value should not be string but would also agree that it should be something other than a byte array. Would the type object suffice here ?
The better implementation IMHO would be to create a custom object and make it an implicit. A similar implementation to RedisValue. https://github.com/StackExchange/StackExchange.Redis/blob/master/StackExchange.Redis/StackExchange/Redis/RedisValue.cs

@basitanwer How would the recommended method serialize a random object?

If this interface isn't meant to be a generic caching abstraction then it shouldn't be called "Microsoft.Extensions.Caching". Call it "Microsoft.Extensions.CachingForAspOnly" so that its purpose is clear.
And then start a project so that we have a real generic caching framework.

As for serializing generic objects, that would be adapter specific. But in general, it should default to using DataContract attributes and the associated SOAP or JSON serializer.
And that's part of my point. Serialization should be an infrastructure concern and not bleed into the application code. Otherwise it isn't really an abstraction.

I suggest you create a custom service that could reuse  IDistributedCache  and  IMemoryCache  to fulfill what you need.

That's not really possible. Once the object is a binary array it becomes a black box. So implementing the interface won't work.
I could layer my own interfaces above those two, but then we're back to everyone making up their own, incompatible interface. And the whole point of having an interface is that everyone follows the same contract.

@muratg : @Grauenwolf cleared my point. In case of objects either the default .NET serialize should be called or any custom. Under any circumstance the serialization should be part of the implementation/adapter not the application.
ASP.NET Caching if provides a caching framework where you can easily plug in different distributed caches then the framework should be generic not specific to Redis or SQL or NCache or another for that matter.

@basitanwer What do you mean by "default .NET serialize"?  You can't serialize arbitrary objects. Object itself and all the objects in its graph has to be have Serializable attribute, or you have to provide a custom serializer.

Nobody uses the Serializable attribute anymore. The DataContract serializer can use DataContract/DataMember attributes, but it isn't required. You just need a clear tree structure without loops.
Other serializers such as JSON use the same patterns and optional attributes.

@Grauenwolf You also need a parameterless constructor. And if you don't use the attributes, only public surface would be serialized.

While that is true, it is also a well-known limitation. Anyone who uses WCF or ASP.NET WebAPI should already be very familiar with those rules and their implications.

@BrennanConroy looks like we just need to add Get/SetString.

BTW these should be extension methods on IDistributedCache, not methods on the interface.

@BrennanConroy These can be copied from Session and go in Caching.Abstractions.

https://github.com/aspnet/Caching/commit/4e750c65d6d2b86bdf339cdf50ba815787e4c312


isContainer example not working

Mixed scenario with models and not models containers is broken now, I will fix it ASAP, thanks for understanding ;)
To see bug, try this example:
http://luckylooke.github.io/dragular/#/docs/exampleIsContainerWithModel

fixed


Import the plugin by using submodule

Hello, I've just added your plugin into my project using submodule, there is no problem.
But I have to manually ignore the submodule content to not to be detected in my local changes, because of Unreal Engine compile result.
Could you please add a .gitignore in your repository to make us easier if we want to import the plugin by using submodule ways? Thank you so much before.

Thank you so much, sorry for the late reply


puzzles about action scaling

Hi,thanks for your pytorch implementation of SAC,it's really readable.
I have a question about action scaling when i read your code.
https://github.com/pranz24/pytorch-soft-actor-critic/blob/cc42a1f31c0a5764548641ccbffe1561ba00622a/model.py#L100
What is its function if action_scale equals 1.0 and action_bias equals 0.And why can that make a big improment upon performence?

In practice, I don't think it ever made any difference in the performance. (at least on mujoco tasks).
Stability-wise, I think, the performance should be more stable. (intuition :neutral_face:)
You can go through this pull request to understand why we are doing action re-scaling: Fix bugs of action re-scaling

Thanks,i will check it out.


Mountpoint ignored?

I'm stuck on the  mountpoint opt in my docker swarm - I'd like to mount /mnt/app/volumes/data but as docker inspect shows the source dir sticks to the stacks yml file directory...

Expected: mount /mnt/app/volumes/data to /data
Happening: mounted  /mnt/app to /data
Docker version 17.10.0-ce (f4ffd25) on Debian Stretch
md5sum /usr/bin/docker-volume-local-persist 815b4b931c92af3eb5417a74bf07fd35

cat /mnt/app/compose-stack.yml
version: "3"

services:

  app:
    volumes:
      - appdata:/data
...

volumes:
  appdata:
    driver: local-persist
    driver_opts:
      mountpoint: /mnt/app/volumes/data

docker stack deploy -c /mnt/app/compose-stack.yml app
docker inspect ID
...
            {
                "Type": "volume",
                "Name": "app_appdata",
                "Source": "/mnt/app",
                "Destination": "/data",
                "Driver": "local-persist",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
...

I'm not sure how this could happen. Did you figure anything out about it?
Possibilities on the top of my head: other volumes trying to use the same space that causes an issue? Are any symlinks involved? I think it should work with symlinks, but I haven't really tested. Just throwing out ideas here.


Doesn't count words with no-latin letters

There is a bug:
If word not contains a latin letter it doesn't counts.

Thanks @dadyarri  for riasing the issue.
I don't have time to look into at the moment. You're welcome to submit a PR if you are interested?

@robole, i don't know JS, so can't do anything with it

@robole, what if I include third-party regexp engine to support Unicode?

@dadyarri What might be better is if you can find an extension that works with cryllic, did you find another extension already?
For example, does word count work?
Changing the regex might be sufficient. If you can find a working example, I can make the change.

@robole, as far as i understand (https://stackoverflow.com/questions/18471159/regular-expression-with-the-cyrillic-alphabet), default js's regexp engine works pretty bad with Unicode.
Sure, easiest way is to change regexp to something like /[\wа-яё]+/ig, but i think it's not so good, because of non-latin and non-cyrrilic languages i. e. Chinese or Czech.
In conclusion, I don't know how to implement this without dependencies
I'll try the extension, you've sent later.