Cargo trains (or the cargo) should choose destination station dynamically

The Problem
In the screenshots below, you can see that all trains are going to one station. However, the two stations are actually load balanced. Just that it is like a consecutive of 5 trains going to one, and then a consecutive of 5 trains going to another one. In fact, there are more trains that are pending to go to the empty one, but they are just blocked by the trains going to the busy one.
I think this is because the choice is determined by the cargo trucks instead of the trains. The cargo trucks choose whichever destination station that is more free at the time when it enters the drop-off station, and the choice will not change later even if dynamic lane selection is used. At the time I took the first 3 screenshots, the north station is free, so all trucks are choosing the north one as destination (compare the 2nd and 3rd screenshots). Later, since all trains carrying the cargo from these trucks go to the north station, it will congest and the south one will be free (i.e., the opposite of the original situation), as shwon in the 4th screenshot. The amount of traffic in the two station will just flip periodically, with one of them being almost free.
EDIT
I realize that the situation is more general than that. For example, the road traffic on the drop-off station also shows a similar flipping effect. Also, even warehouse has a similar effect: if there are two warehouses that take the same resource (say, Paper), the trucks dropping off paper will all choose one, and then all choose another one.
All these effects are caused by the fact that all vehicles (train, trucks, or whatever) will never change destination dynamically even if there is a different destination that can serve the exact same purpose.
A simple but weird solution
The easy way is to just allow trains to choose destination station dynamically, regardless of the requested station of the cargo. The dynamic choice takes into account of the time it takes to transport the cargo to the station through train track, and to transport the cargo from the station to the final destination. However, that is weird because, think about if you are a customer, and the train does not transfer your cargo to your designated station. But I think that will work.
However, I think this simple solution should work perfectly well for drop-off traffic and for warehouse traffic.
A more sophisticated solution
TMPE can add a feature to allow us to group stations. So, when a cargo truck drops cargo, it should not designate the exact destination station, but instead should designate which group of stations it is going to. Then, the train will destinate to the group of stations, and dynamically choose which exact one to go to at track junctions.
Similarly, when a cargo truck chooses which station to drop-off, it can also designate the group of stations first, and then choose the exact one at road junctions.
The same mechanism also work for warehouses or even other buildings.
Screenshots?
My setup:

Among of cargo going to the south station:

Among of cargo going to the north station:

After the situation flips:

It's not a new idea, I already thought about that and I've already implemented similar, still experimental feature for Cargo Airplanes in #1458 draft so... doable but only for destination stations (due to how cargo transfers and pathfinding works).
Basically when cargo airplane is waiting too long either in front of the destination stand(other aircraft is still loading) or blocked because of other airplane is also waiting it will try to find better cargo aircraft stand (moving forward down the taxiways, taking into account traffic flow, vehicle restrictions etc.). Once better aircraft stand has been found then hopefully the vehicle will start moving so all transported cargo (attached invisible cargo trucks) starts redirecting their original route taking new aircraft stand as a new, future start position once aircraft finally reach the stand building. It works surprisingly well, can handle a ton of aircraft if taxiways are built correctly (many intersections == multiple points for re-routing/DLS-similar behavior)
Speaking of DLS(dynamic lane selection) - it can only change lanes, cannot the segment and here, as in experimental dynamic Cargo airplane selection it needs to traverse network going forward and as you noticed require something to mark stations as a logical group. In #1458 it was fairly simple. Aircraft stand needs to be built in the Airport park so I can easily find all stands or match if they belong to the same area/park or not (kind of wishful thinking that redirected cargo trucks can still reach their original target building). I think that district paint will be the easiest and most flexibly way to do something like grouping.
Obviously it won't be limited to station buildings but will also support swapping station track so if one is occupied then it could use other free if reachable, assuming multi-track stations.
Anyways, it will be slightly less weird if you'll think about cargo train as a train loaded with vehicles with cargo, not just that cargo alone 😄

Maybe instead of dynamic pathfinding, the demand/spawn/routing mechanism could be modified: Destination selection might take into account how many vehicles are sent to the alternative destinations and not having reached their destination, yet. This way, the simulation would notice if it jams a destination just because it always forgets that it already sent vehicles that way...

Oh ok, you're right about cargo train stations.  (Sorry, I had the ship harbors in mind)

Steam Workshop::Adjust Pathfinding
https://steamcommunity.com/sharedfiles/filedetails/?id=1829496988
is this mod for your need?
(I have not used it) (I wish some of its functions getting added to TMPE)

@lokpro
I tried Adjust Pathfinding and it somehow works. If you start with no traffic (clear traffic using TMPE), then at the beginning the traffic to the two stations are strictly balanced. But if there is any temporal unbalance, it will take a long time to balance out due to its static nature. So, a dynamic solution is still very helpful.

@krzychu124
Do you think it is easy to port the logic for finding another aircraft stand to finding another cargo station / hub? I know programming but this is the first time I look into CS mods and your pull request is too big...
To mark stations as a group, instead of using districts, maybe using names of the stations is also a good idea. The problem of district is that, a district may be too large and have two stations that are far away and that you don't want to group. You can definitely remove the station from an existing district and make one specifically for the stations, but that sounds weird.
To use names to mark a group, we can specify the names to be things like "Group Name | Specific Name". All stations with the same Group Name are considered as one group. On the menu of a station, we can add a button to enable/disable grouping, to avoid messing up the existing stations that we are not going to group.

It shouldn't be too hard but I'm not 100% sure yet.
The main reason to use district/park area is I can query district manager to get district ID based on building position and then search for other buildings using that id (district id, as many other things is not stored in the building data).
Using names requires custom solution for tracking buildings. If building is built in a district it will register itself as service building but if not then.. how can I find it? Area search? How far? There might be thousands buildings in vicinity and no guarantee there is another one with the same name.
I was thinking about alternative tool similar to areas (just create new virtual park type) as a helper for tracking parking spaces/buildings. I could reuse area tool but that tool is available only when you own at least one DLC that use "park" areas (Parklife/Industries/Campus/Airports)

@aubergine10 I've updated PR description with short example how dynamic cargo airplane selection: works https://github.com/CitiesSkylinesMods/TMPE/pull/1458

Another simple idea is mark a node as a "load balancing node" to attach an atomic counter to it. If the counter has value 0 then only the first path is allowed. If the counter is 1 then only the second path is allowed, etc. Every time a vehicle is successfully routed through it the counter increments.


Implement translation invariance transform

Adds a --translate argument to train.py that inserts a feature transform that translates all positions to be centered at a reference entity.
Example usage: --translate='{"reference_entity": "Vehicle", "position_features": ["x_pos", "y_pos"]}'
This allows solving the Minefield task without manually implemented translation:
https://wandb.ai/entity-neural-network/enn-ppo/reports/Translation-invariance-layer--VmlldzoxMzk2NzY0
Resolves #104

Does this support multiple reference entities?

It does not, it just applies a transformation to the features of each entity which only allows for a single reference point. I do plan to implement a version of relative positional encoding for grids, which is applied to every pair of entities and which I'm hoping will give similar performance to this translation layer.


one

Superseded by https://api.github.com/repos/nils-a/cake-test/issues/1

Superseded by https://github.com/nils-a/cake-test/issues/1

Removed from milestone, because a newer version is present in the milestone at https://github.com/nils-a/cake-test/issues/3


Weird behaviour after terminating instance

On win32, if I terminate the node instance, the Chrome instance persists. Executing a wright script in another location (from the same shell instance) seemed to lock onto the old instance from the new location, complaining that it couldn't find files pertinent to the previous instance.
After terminating the terminal and the chrome instance, attempting to invoke a wright script again waits for chrome to launch for 30 seconds, finally complaining that it couldn't resolve http://localhost:3001/json/list.
19:41:15.810 Starting wright...
19:41:16.879 Server started on http://localhost:3000
19:41:16.892 Debug: Watching index.html
19:41:16.923 Debug: Watching src/**/*.js
19:41:20.111 Debug: Waiting for chrome to launch
19:41:50.114 Error: Could not connect to http://localhost:3001/json/list

My wright file, which worked in a previous session with no code changes or dependency updates in the interim:
const wright      = require( 'wright' )
const rollup      = require( 'rollup' )
const nodeResolve = require( 'rollup-plugin-node-resolve' )
const commonJs    = require( 'rollup-plugin-commonjs' )

wright( {
  main  : 'index.html',
  debug : true,
  run   : 'm.redraw()',
  js   : {
    watch   : 'src/**/*.js',
    compile : () =>
      rollup.rollup( {
        entry   : 'src/index.js',
        plugins : [ nodeResolve(), commonJs() ]
      } )
      .then( x =>
        x.generate( { format : 'iife' } ).code
      )
  }
} )

This isn't a blocking problem BTW - resolves itself if I reboot.

Could you check if there's a ghost process of chrome running in task manager?
I'll just answer more thoroughly meanwhile ;)

The desired behavior is to not close chrome if the wright process terminates. The reason is that I usually end up opening other tabs in the same window, I'm still not sure it's worth it taking the edge cases reattaching brings into account, but so far it looked possible :)
It should also be possible to run multiple projects at the same time.
There's a specific user-data-dir set for each project depending on the name in config which currently is either a name specified in options or the name of the containing folder.
I wanted to change that by putting a hash of the absolute path on the end of the chrome user-data-dir to resolve name conflicts as there is probably a lot of cases where the containing folder is named "web" or "www".
I imagine it is something like this you bump into together with a stuck chrome instance.. I'll just try it out on windows myself as it might behave a bit differently than on mac.

Unfortunately it seems like an issue with how chrome on windows is reattaching to a running process. With this issue chrome was actually meant to launch two seperate instances, but somehow locks up to the previous one causing it to leave a hanging process that can't be revived (only visible in task manager).
This commit fixes it temporarily on windows but with the downside that chrome will exit when wright exits. (ok as long as you don't have interesting stuff open in other tabs.)


Temporarily remove the apiVersions API for 0.11

Thanks for the PR. Maybe we should remove ApiVersionsOptions and ApiVersionsResult as well?


Force-set platform type to managed targets.

In some environments mono defaults building managed targets in architecture different from the host (like AnyCPU or x86 on x64 host). For example on x64 host (linux) build system would produce i686 architecture managed executables while native libraries are built as amd64. In such case managed executables are unable to load native libraries because they target different native architectures. This change ensures architecture consistency between all built binaries.

@rokups thank you for this code. I would just like to wait until our macOS build has passed too since this is a change to the build itself and I'll merge.

It fails on Mac for some reason. It is not clear to me why. Maybe i should just have this option active on linux/windows and call it a day?

@rokups how can you tell it does? Our CI build hasn't finished yet (macOS builds on Travis can sometimes take very long to start).

I restarted the build, it seemed a spurious failure to me, all tests were passing.


Access to AVS responses from SDK in parse-able format

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:

It's not a bug but wanted to know if there's a way to access responses provided by AVS, in say a text or some s/w parse-able format? I am trying to automate some basic testing and access to responses, if available, can be parsed for validation. I can see it printed in the history log on developer website but needed access to something like that from SDK.
What is the expected behavior?

What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?
  <1.7.1>

Tell us what hardware you're using:

[ ] Desktop / Laptop
[x] Raspberry Pi
[ ] Other - tell us more:

Tell us about your OS (Type & version):

[ ] Linux
[ ] MacOS
[x] Raspbian Stretch
[ ] Raspbian Jessy
[ ] Other - tell us more:

Hi az2022,
The device only receives audio attachments from AVS currently and not the text corresponding to the audio.
Thanks
PS

If you want to look at your utterances you could you go to alexa.amazon.com and log in with your user account. A history of your utterances (as Alexa understood them) should be present to you on the home screen.

It would be nice to add this capability in future releases to get text responses if requested, something similar to Google.

Hello az2022,
I do not know if it would help for your use case, but you may want to look at Amazon Lex.
Thanks,
-SWH

I am closing this issue due to inactivity. Please feel free to re-open it if it has been closed in error.


Feature/subnodenames

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

91 of 103 (88.35%)  changed or added relevant lines in 8 files are covered.
287 unchanged lines in 9 files lost coverage.
Overall coverage decreased (-4.1%) to 71.766%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

csly-cli-decompiler/Decompiler.cs
0
2
0.0%

csly-cli-extractor/ParserSpecificationExtractor.cs
20
22
90.91%

csly-cli-api/CslyProcessor.cs
2
10
20.0%

Files with Coverage Reduction
New Missed Lines
%

csly-cli-decompiler/LexerDecompiler.cs
1
69.62%

csly-cli-model/lexer/RangeTransition.cs
2
46.15%

csly-cli-model/lexer/TokenModel.cs
3
83.72%

csly-cli-model/lexer/CharacterTransition.cs
3
55.56%

csly-cli-decompiler/Decompiler.cs
4
68.42%

csly-cli-builder/checker/ExtensionTokensVisitor.cs
6
52.08%

csly-cli-parser/CLIParser.cs
12
90.08%

csly-cli-builder/LexerBuilder.cs
126
51.82%

csly-cli-builder/LexerGenerator.cs
130
47.06%

Totals

Change from base Build<PHONE_NUMBER>9:
-4.1%

Covered Lines:
3627

Relevant Lines:
4995

💛  - Coveralls


$locale service should expose info about locale

The $locale service seems to keep track of some nice stuff like the locale id, currency, and date format. It would be nice if those values were exposed in a public API so I could find out very easily what the currency code is for each user and do things like that.

It is available via the $locale service:
Default locale: http://plnkr.co/edit/emuqiC3MfgPKrMmDgwum?p=preview
ar-ma locale: http://plnkr.co/edit/Yqr79YAxJJoNSw8U44Da?p=preview

Then shouldn't the docs be updated?

Each locale is free to provide whatever information it likes. We don't really have control over that.
The only thing we specify is the id. See https://docs.angularjs.org/api/ng/service/$locale

@petebacondarwin maybe I'm confused, but how do locales work exactly? Each locale is a separate angular file, right? Shouldn't each locale expose at least the id, currency symbol and abbreviation, and locale?

Each locale exists in its own file. These files are generated, with very little human intervention from the Google Closure Library i18n files.
At a minimum they must expose an id. In general they expose a load of other stuff such as number and date information. But Angular does not guarantee that this is the case.
If you look through the locale files you will see they all contain the same general information. If you would like to check that they all contain certain properties and that future regeneration of these files would also contain these properties then I would be happy to merge a PR that updated our documentation.

Thanks for the info!


Move from CircleCI to GitHub Actions

GitHub Actions is fairly easy to set up and would display the checks directly on PRs which has been unreliable with CircleCI. For open source projects, Actions are free and we can lock PRs until certain checks are completed.
The implemented GitHub Actions should do the same thing as the current CircleCI one: clone, install deps (npm), lint, fail if formatting changes
It should also include a cache for the node dependencies so the job is sped up.

Closed in https://github.com/Yes-Theory-Fam/yesbot-ts/commit/56cb4b55c722bb4c46b5ec006aaebfea8e3e3c05


Manageable list train

All tests pass:
http://jenkins.daterainc.com/jenkins/view/Openstack Jobs/job/OS_Tempest_Internal/134/console

Reworking, will push a new patch


[Bug] SteamVR Overlay Crash

I had an issue when i was in vr the steamvr overlay would cause vrcx to crash i was able to solve the issue by making it run off of my gpu but i still had an issue where if it runs on integrated graphics the overlay would continuously crash but vrcx would still be running
it doesn't show up in the logs either

Could you try the latest nightly build? https://github.com/vrcx-team/VRCX/issues/957

im on the nightly build. im still having the same issue with the overlay not showing when i run vrcx off of integrated graphics. it shows like its trying to but it closes the very second it opens and continuously goes on and off.

Ah the change in the nightly build forces the use of your "high performance" GPU maybe stable will work for you instead.

alright well it works when i have it set to let windows decide on nightly build

Okay thanks good to know, we'll have to take a different approach when deciding what GPU to use.

alright well good luck and i hope i was helpful.


[RFC]: ci: Rename systemd var for runtime

The setup of Clear Containers uses a systemd var in order to
include the path of the runtime, the metrics tests do not work
due to they expect “cc-runtime” as name. This commits rename
cc30 var by cc-runtime.
Signed-off-by: Mario Alfredo Carrillo Arevalo<EMAIL_ADDRESS>

lgtm

(marking as DNM to re-enforce the RFC status).
This:
lgtm
as long as there was not a deliberate reason we were using cc30 - I believe it is just historical before we settled on the name cc-runtime, but just want to check with @chavafg that we did not choose cc30 so that we could, say, have multiple CC3 runtimes installed in parallel without clashing or similar.
Fundamentally, I think we should use the default installation name (cc-runtime), so that tests could be hand-run on a pre-installed production system without major modifications if need be for instance.

lgtm
I reviewed the tests of this repository and none of those rely on the name of that docker variable, so this works for us.


Propper auto tiling / priority window selection. / Costum Templates

Summary of the new feature/enhancement
Make the WM tile automatically and properly.
Allow key binding for mode select (priority  or other or grid)
Allow you to group custom presets into a custom template which you can then switch to using the binding describer above.
(When opening the custom template there is an option for what template you want to use for missing descriptors.)
ps. i wasn't sure if I should create 3 Feature request or 1.
Proposed technical implementation details (optional)
Simply read the amount of apps running on the desktop - floating windows.
Allow user to set windows at floating windows with a keyboard shortcut.
Have a list ways to do the sorting. Examples Below.

@NicTanghe
the tracker for this feature is https://github.com/microsoft/PowerToys/issues/2694
Feel free to add your comments there.
Closing as duplicate.
Thanks.


No device selected in some cases

Select which package(s) are affected
@livekit/components-react
Describe the bug
On some devices, LiveKit doesn't select audio device in PreJoin (nor inside call) even though LiveKit sees several audio devices. Camera is selected correctly. After joining call, the sound is transmitted correctly, but in MediaSelectDevice there is still nothing selected

const audioDevices = useMediaDevices({ kind: 'audioinput' })
console.log('audioDevices length:', audioDevices.length) // audioDevices length: 2

console.log(userChoices.audioDeviceId) // ''
console.log(userChoices.videoDeviceId) // 'abc123def...'

it happens on https://meet.livekit.io as well
Logs:

Reproduction
This happens in meet.livekit.io as well. It can be reproduced there. You can see a camera is selected correctly, but not the microphone
Devices where it happens:

Chrome, Linux: Ubuntu 22.04.4 LTS
Chrome, Android 13

Devices where it works correctly:

any browser on MacOS & iOS

Logs
No response
System Info
Devices where we reproduced it:
* Chrome, Linux: Ubuntu 22.04.4 LTS
* Chrome, Android 13

Worked correctly on:
* multiple browsers, MacOS
* multiple browsers, iOS

Severity
blocking all usage of LiveKit
Additional Information
No response

would it be possible for you to check whether https://github.com/livekit/components-js/pull/952 fixes the issue for you?

@lukasIO same issue with latest build, audio device is showing as selected but its not really selected and require a re-selection for audio to be transmitted. I'm on iPhone 13pro iOS 18


Support completely unreliable datachannels

It appears that DataChannel parameters: id maxRetransmits & maxPacketLifetime were not translated completely from https://github.com/pion/webrtc/blob/master/datachannel.go#L26
These parameters are able to have a value of nil in Pion, which allows for setup of datachannels which are completely unordered & unreliable. There's a big difference between an id or maxRetransmits of nil vs 0, which webrtc-rs currently conflates.
Also, this PR allows a remote connection to pass a ForwardTsnSupported param in via the InitAck to enable Forward TSN , rather than just the previous SupportedExtensions parameter .. looks like it's an older param but this is for backwards compatibility.
This will allow interop with https://github.com/triplehex/webrtc-unreliable .
This PR requires the usage of the following PRs to function correctly:
https://github.com/webrtc-rs/data/pull/5
https://github.com/webrtc-rs/webrtc/pull/186

We have migrated this crate to the monorepo(webrtc-rs/webrtc) please re-open this pull request over there.


Double type argument for to_timestamp function

Which issue does this PR close?

Closes #7868.
Rationale for this change
Supports double type argument for to_timestamp function to align with Postgres.

What changes are included in this PR?
This PR adds double type argument for the to_timestamp function, however this function still returns a timestamp type and not a timestamp with time zone type as it does in Postgres because timezone support for to_timestamp*() functions in DataFusion is still an open issue.

Are these changes tested?
Yes, there are sqllogictests for this change

Are there any user-facing changes?
Yes, an additional type is added to the to_timestamp function signature. This change has been added to the User Guide documentation.

How can I resolve the one failed check Rust / cargo test datafusion-cli (amd64) (pull_request)? Seems like it failed with a one-off container init issue

How can I resolve the one failed check Rust / cargo test datafusion-cli (amd64) (pull_request)? Seems like it failed with a
one-off container init issue

One trick is to close/reopen the PR
Anther is to merge up to latest master (which will retrigger the PR)

Marking as draft to signify this isn't waiting on feedback anymore. Please mark it as ready for review when it is

Filed https://github.com/apache/arrow-datafusion/issues/8370 I'll pick it up when arrow-rs has released

Thank you @comphead  and @spaydar 🦾 Great work


SL: Front-end form content changes

As a business owner, I want to have the content updated to reflect required changes need to make the for accurate and clear.
A/C
Complete/approve the following 7 changes as described in the comments below

two change required for the "Intro" section

First bullet: remove the work "recent "
4th bullet: replace "will" occur every two years with "SLR process "is expected" to occur every two years

One change required in the "Current Role section

Expand this sentence to read: "Briefly describe the key accountabilities of the senior leader in their current role. You can add a maximum of three accountabilities:

One change required in the "Accomplishments" section
Expand this sentence to read as follows:
"Briefly describe the senior leader’s key most recent accomplishments over the last year or two. You can add a maximum of three accomplishments.”

In the "Expertise and Skills section

Remove "Executive Presence" check box in the "leading category"
Replace "Communication" with "Communicating effectively"

IN the "Learning and Development" category:

Remove "Executive presence" in the "Leading" category
Replace “Communication” with “Communicating effectively”

In the readiness section:

add a small amount of text as follows:
“Based on your assessment of the senior leader’s responsibilities, achievements, expertise, skills, areas for learning and development, and any other inputs you deem relevant, select the most suitable description to indicate their readiness to compete for an executive role:”

In the "Readiness validation and completed form submission" section

remove the words "on the system"

All edits have been updated in the SL Form - Dev Environment.

Thanks, Chris. We will test these with Jodi tomorrow

Add this link to ministry SLR Contact >
https://teams.microsoft.com/l/entity/2a527703-1f6f-4559-a332-d8a7d288cd88/_djb2_msteams_prefix_3511159541?context={"subEntityId"%3Anull%2C"channelId"%3A"19%3Aoq2N-dqcy0Eb3NwXOKLaWUCSWJo16MSDl5jE9yg1P5c1%40thread.tacv2"}&groupId=b79854d2-f88d-464e-bd31-c6cc2a3612fc&tenantId=6fdb5200-3d0d-4a8a-b036-d3685e359adc&allowXTenantAccess=false

Expertise and Skill section Updates looks great

learning & Development section Updates are also perfect!

Readiness Section Updates complete :)

and Finally the "Readiness validation and completed form submission" edit is perfect
this tix is PO Approved & I'm closing it !


EPSG:3857 and urn:x-ogc:def:crs:EPSG:3857 can't have different axis order

Hi,
In ol/proj/projections.js the method for returning projections is defined as.
export function get(code) {
  return (
    cache[code] ||
    cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\w+)$/, 'EPSG:$3')] ||
    null
  );
}

This code treats EPSG: xxxx in the same way as urn:x-ogc:def:crs:EPSG:xxxx which is not always the case. At least GeoServer define urn:x-ogc:def:crs:EPSG:xxxx as strict latitude/longitude while EPSG: xxxx is dependent on the projection, see https://docs.geoserver.org/latest/en/user/services/wfs/axis_order.html
So ol.proj.get("EPSG:3857").getAxisOrientation() and ol.proj.get("urn:x-ogc:def:crs:EPSG:3857").getAxisOrientation() will return the same value even if I register them with different axis order in proj4.
Regards
/Krister

This is because both the codes you used are included in OpenLayers by default. You could use the non-API function clearAllProjections() from the ol/proj module to get rid of the built in projections, and then re-define them using proj4.
But why would you want to use EPSG:3857 with neu axis orientation? Also note that OpenLayers always uses x/y, regardless of the projection. The axis orientation provided by projections is only used by ol/format readers for reading coordinates from data sources.

EPSG:3857 was just an example. It is the same regardless off projection. The problem is that we define both variants in proj4 but OL6 treats them as they were the same.
We use this for reading GML3 returned from web services using ol.format.GML3.
We resolved this issue bu using ol.proj.addProjection instead of ol.proj4.register.


Replace links with networks in docker compose

Describe your changes
Links are deprecated in docker and not supported in podman. This commit replaces them with networks.
Issue number and link
Checklist before requesting a review

[x] I have properly bumped all version refs by running ./scripts/version-bump.sh v<new> from project root - for example ./scripts/version-bump.sh v1.9.3

@Fedosin thanks for the fix.


Add StrokeCap parameter on CircularProgressIndicator

Use case
This would allow circular progress indicators to have rounded tips, which is a useful addition in certain designs
Proposal
The Paint() method already has a StrokeCap property which determinds how the end of drawn lines/arcs look, so I propose the CircularProgressIndicator have a parameter that ultimately passes this down to the paint method inside _CircularProgressIndicatorPainter.

Would it make more sense to expose the entire Paint? For example, what if someone wants to adjust the gradient rather than the end cap? Or the stroke width? cc @HansMuller

That kind of problem exists for most widgets, exposing the paint would allow for a lot more customisation, but afaik every widget takes in a whole lot of parameters like color, gradient, width etc which ultimately end up on its paint, so isn't this the pattern that's used everywhere currently?
And as for gradient, if the color is set to white, we can have a gradient using a Shader mask

Well, generally when we expose a color, gradient, or width we don't do it in a way that directly translates to a paint, but I agree that exposing a paint is a bit weird...

For a determinate CircularProgressIndicator, it might be problematic to allow stroke cap customization. For instance, allowing StrokeCap.square will make the indicator start with a value that seems to be negative (due to the extension added by drawArc when strokeCap is not StrokeCap.butt).
Screenshots of a big CircularProgressIndicator with StrokeCap.square and StrokeCap.butt:

Related code sample
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: StatefulBuilder(
        builder: (context, setState) {
          return Scaffold(
            appBar: AppBar(title: const Text("StrokeCap.butt")),
            body: Stack(
              children: [
                Row(children: [
                  Expanded(child: Container(color: Colors.white)),
                  Container(width: 1, color: Colors.grey),
                  Expanded(child: Container(color: Colors.white)),
                ]),
                const Center(
                  child: SizedBox(
                    width: 300,
                    height: 300,
                    child: CircularProgressIndicator(
                      value: 0.5,
                      strokeWidth: 50.0,
                    ),
                  ),
                ),
              ],
            ),
          );
        },
      ),
    );
  }
}

So setting stroke cap should be ignored for a determinate CircularProgressIndicator or the starting angle should be computed accordingly (if possible, but it might be difficult to get the right result with StrokeCap.square).

So should I change the default to be StrokeCap.butt instead of StrokeCap.square

So should I change the default to be StrokeCap.butt instead of StrokeCap.square

I think it would be better to keep the current logic which is to use StrokeCap.butt for any determinate CircularProgressIndicator.

That certainly does seem easier, but what if you want a circular ended determinate progress indicator
IMO it's a flaw in the design if the type of the end determines where the drawing would end, instead the drawing should be offset as per the the end design
Also is there a way to do custom ends rather than use the inbuilt strokecaps?

Re-opening as this is unresolved.
There are a lot of widgets in the material library that match the material spec, and offer customizations beyond the spec. I think this is a fair feature request.

I actually had a PR up for this but the CI was failing and wasn't able to figure out why, I can try rebasing it and force push if thats okay

Hey @Hari-07! I was just looking at that and wondering if you would be interested in returning to it. I'd be happy to help and review if you are interested in contributing. Would you like to re-open it in a new PR?

Yeah sure I'll do it as soon as I can

@Hari-07 I only saw the discussion now, I took your PR and fixed it (while keeping your name in the contributor list).

There is a frustrating issue I'm going to need your help.
Right now:
if (indeterminate) strokeCap = square
else strokeCap = butt

What is the default value? Butt? I'm going to override it in indeterminate mode, I guess...

I don't think StrokeCap works that well for what we are doing. It has 3 options, butt, square and round, but 99% of the time you want two of them, and you never know which two you want. CircularProgressIndicator uses square for indeterminate (paints a bit more, so it is always visible, even on 0), butt for determinate (paints exactly). CircularProgressIndicator doesn't use it.
Something like isIndicatorRound would be better, since all we want is true/false. Do you agree?

Something like isIndicatorRound would be better, since all we want is true/false. Do you agree?

I too think that it would be better to have such a boolean flag because StrokeCap.square is problematic (see https://github.com/flutter/flutter/issues/109137#issuecomment-1209391300).

Using boolean now, fell free to review the PR @bleroux. Thanks for the input!


Add PyPI and versioning automation scripts and workflows

Add license tests and automation

Requires changes in setup.py file


check for update every time app opened!

I suggest to add check for updates every time app opened
I was have version 1.7 and it didn't work correct and I thought that app support stopped or terminated but I checked the github to discover that the current version is 2.1 and i miss the update.
Please make a check for update option it will be great!

Thanks! Will be in the next version (Which you will have to check manually 😀)

Published. Thanks! https://github.com/moshfeu/y2mp3/releases/tag/v2.1.0


Replace old APIs with explicit addTransceivers

Issue https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/issues/49
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Also, another comment: in the README there is a section demonstrating creating an offer/answer. Please update that part too.

The changes themselves look good, but my concern is around browser compatibility.
addTransceiver is not as well supported (FF 59, Chrome 69, Edge 79) as createAnswer is (FF 22, Chrome 51, Edge 15). What can we do about this? Does adaptor.js handle this?

That's a good point. AFAIK, adapter.js doesn't handle this. I'll spend some time to see if there's a good solution for this. I think this should be a common issue.

Looking here:  https://webrtchacks.github.io/adapter/adapter-latest.js I do see addTransceiver here, is there anything else we need or is this ready to merge now, @MixMasterMitch ?

addTransceiver is not as well supported (FF 59, Chrome 69, Edge 79) as createAnswer is (FF 22, Chrome 51, Edge 15). What can we do about this? Does adaptor.js handle this?

As of today, addTransceiver is supported by all except opera, and createAnswer is supported by all.

I tried this locally.. it causes the ICE candidate pairs to not get printed correctly (tested on Chrome). I tried the regular P2P and also WebRTC ingestion, both with the same result.
Current JS test page:
[2023-12-05T23:29:22.522Z] [DEBUG] Chosen candidate pair (video): {
  "local": {
    "candidate": "candidate:55146457 1 udp<PHONE_NUMBER> 76.146.x.x 53818 typ srflx raddr 192.168.x.x rport 53818 generation 0 ufrag Zkze network-id 1 network-cost 10",
    "sdpMid": "",
    "sdpMLineIndex": 0,
    "usernameFragment": "Zkze"
  },
  "remote": {
    "candidate": "candidate:7 1 udp 503316991 34.221.x.x 53685 typ relay raddr 10.0.x.x rport 36972 generation 0 ufrag TLaJSljd2IHYAwZbqcaDxD3L5xK0EWfN",
    "sdpMid": "",
    "sdpMLineIndex": 0,
    "usernameFragment": "TLaJSljd2IHYAwZbqcaDxD3L5xK0EWfN"
  }
}

Changes from this PR:
[2023-12-05T23:30:29.422Z] [ERROR] Failed to fetch the candidate pair!

Looks like the way the candidate pair gets logged needs to change as well to go with this approach.


Found them when I read the code.

Fixed a typo: higlighting -> highlighting
Removed some useless clippy lints.

Additional information
None
r? @weihanglo

Thank you!
@bors r+

:pushpin: Commit 0b6c229e9ded5fb85d4422fd1628153133585b90 has been approved by weihanglo
It is now in the queue for this repository.

:hourglass: Testing commit 0b6c229e9ded5fb85d4422fd1628153133585b90 with merge a8a432fadcf4d3176105632349a405801499a81d...

:sunny: Test successful - checks-actions
Approved by: weihanglo
Pushing a8a432fadcf4d3176105632349a405801499a81d to master...


Empty messages and the messages following them will not be imported

Storage Explorer Version: 1.33.0-dev (96)
Build Number: 20240128.2
Branch: main
Platform/OS: Windows 10/Linux Ubuntu 22.04
Architecture: x64/x64
How Found: From running test cases
Regression From: Not a regression
Steps to Reproduce

Expand one storage account -> Queues.
Create a queue -> Click 'Import' -> Select one .csv file.
The import messages dialog shows below, three messages are previewed.

4. Click 'Import'.
5. Check whether three messages are imported.
Expected Experience
Three messages are imported.
Actual Experience
Only one message is imported.

Additional Context
Here is the imported .csv file.
atest.csv

Verified this issue on the main build 20240201.4. Fixed. So, we are going to close it.


Looking forward to Gradio demo

Are you already doing it? If not maybe I can help. Just need to provide me with some basic ideas. If you encounter problems in the implementation, maybe I can help too


Deposit bug with ETH and ETC

Hi there,
we have created in coinapi other one file for ETC like ETH name etc.rb and with this config. We have copy ETH conf and added ETC and rpc call id 1.
we did this because when you install both wallets with 2 different rpc servers, we have noticed that neither of them receives deposits, but in blockchain they are present. If we only activate the ETC rpc and disable ETH, then the deposit works. Is there any way to make them work together?
encoding: UTF-8
frozen_string_literal: true
module CoinAPI
class ETC < BaseAPI
def initialize(*)
super
@json_rpc_call_id  = 1
@json_rpc_endpoint = URI.parse(currency.json_rpc_endpoint!)
end

I don't understand what you are trying to get. Everything works fine with multiple JSON RPC nodes. It doesn't matter.

If work ETH only yes without problem, if i install ETC and i give API Coin ETH, both take wallet address succesfuly but dont take deposit.

I have installed 10 time with different method, same problem

Problem issue fixed. The problem is in the file eth.rb that going in conflict with other coins

@coinlisting Do you have a fix ?

@mod no Louis. practically if eth is alone as an ethash algorithm it works perfectly. The moment I add a new coin with the same algorithm, the wallets are both generated perfectly but both of them do not see the deposits anymore. Since I only see eth.rb in coinapi, do I have to add another .rb file with a different rpc id? Because I did this too but the problem was not solved. Basically coming back to the fact that ETH alone works, as soon as I find myself adding, for example, ETC, PIRL or another always as fork ethereum, I'm in conflict. What client api should I choose?
under you see screenshot of etherscan that funds are in balance, i have also checked blockchain eth in server and balance is present, but in peatio i dont see it. If i disable other coin i see deposit. What happening?

@mod no answer about this bug?

???

Having multiple currencies connected to the same Go Ethereum is well supported and we use it in production longer than month. Unless you give any specific code, environment, configurations and other stuff I can't help you. If you want to get free premium support this is not right place.  You can always contact http://peatio.tech/ for paid support.

we have contacted a lot of time them, but no answer about it. no way, support very low. How you can request payment withous support?

@coinlisting hello!
Please feel free to contact me at<EMAIL_ADDRESS>I don't see any contacts under your github name Mark Weir. Cheers!

contact for what, for a bug of code and payed 16k € ?

i have re-installed all with same issue

if i have more coins that use same ETH coinapi
this value "json_rpc_call_id = 0" need to be ever 0 ?


Fails to open files with unicode characters in filename

PhantomJS is not able to open files with unicode characters in filename, for example output of following code is fail:
require('webpage')
  .create()
  .open("📖.svg", function(status) {
    console.log(status);
    phantom.exit();
});

This issue was initially reported here.

What OS, and what is the character encoding of your test file?

I'm using Ubuntu, I have not tried it with other OS. The issues is with unicode character in filename.

Thanks.  I think you might have misunderstood my second question.  I need to know the character encoding of the script that tries to open the file, not the file that can't be opened.  ("Unicode" is a character set, not a character encoding.)
Another piece of information that would be helpful is the result of running
LC_ALL=C ls -1fb

in the directory containing the file that can't be opened.  Type that command at a shell prompt exactly as shown, and post the output unedited.

I can reproduce the bug myself, but I still need to know the answers to the questions I asked, because that will help me figure out how complicated the bug is.

With UTF-8 it prints "fail", if I save file as UTF-16 it prints "SyntaxError: Parse error" (contents are not corrupted) and if I replace file name with \360\237\223\226.svg which is result of running your second command it prints success.

@zackw Do you know any cross-platform way to encode/escape filenames in either phantomjs or nodejs? I guess it can help me fix the issue in my own code.

I'm also get this error when trying to capture local html page with japanese character in filename.
Please help me to figure out the way to avoid it.
Thanks you.


PM-3063: View synchronisation

Added a ViewSynchronizer component that asks all federation members for their current Status and determines the best values to adopt: it picks the highest Prepare and Commit Quorum Certificates, and the median View Number. The former have signatures to prove their validity, but the latter could be games by adversarial actors, hence not using the highest value. Multiple rounds of peers trying to sync with each other and picking the median should make them converge in the end.
TODO:

[x] Validate signature
[x] Tests
[x] Wire into the SyncService
[ ] ConsensusService to determine when to kick off view synchronisation
[x] ConsensusService to adopt the new view

Split this up into https://github.com/input-output-hk/metronome/pull/35 and https://github.com/input-output-hk/metronome/pull/36


Deployment

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

with multiple errors solved, finally done!


Feat(eos_cli_config_gen): Add schema for management_interfaces

Add schema for data model

Checklist
Contributor Checklist

[x] Create schema fragment matching data model described in README.md and README_v4.0.md

README.md is most complete with all keys. README_v4.0 includes partial data models after conversion to lists.
Schema fragment path is roles/eos_cli_config_gen/schemas/schema_fragments/<data_model_key>.schema.yml.
Copy line 1-5 from another schema (comments and outer type:dict).
Refer to schema documentation for syntax and/or use YAML Lint plugin from Redhat in VSCode.
Use convert_types on value that could be mixed type or misinterpreted like integers and numeric strings.

[x] If the data model has been converted from wildcard dicts:

Add convert_types: ['dict'] to the schema.
Remove convert_dicts from the templates/eos/<>.j2 and templates/documentation/<>.j2 templates.

[x] Run molecule converge -s build_schemas_and_docs to update schema and documentation.
[x] Test by running molecule converge -s eos_cli_config_gen and verify no errors or changes to generated configs/docs.

Reviewer Checklist

Reviewer 1: jonxstill

[x] Verify that data model is fully covered in the described schema. Easiest by looking at the generated documentation.
[x] Verify that convert_dicts has been removed from templates as applicable.
[x] Verify no changes to configs/docs on any molecule scenario
[x] Verify that CI pass

Reviewer 2: Carl

[x] Verify that data model is fully covered in the described schema. Easiest by looking at the generated documentation.
[x] Verify that convert_dicts has been removed from templates as applicable.
[x] Verify no changes to configs/docs on any molecule scenario
[ ] Verify that CI pass

Adding support for mtu, see PR #2080 - I will make the updates to the schema.


feat: add startup probe

Added startup probe kubernetes docs. I changed the default initialDelaySeconds to 4 seconds instead of 1. I feel like the 1 second is a little short?
I also changed the timeoutSeconds to 5 seconds.
The config should now wait 2 seconds before trying, wait at least 5 seconds before failing and trying 5 times.

@stianfro or @nkzk, do you agree with my startup probe, or should I use the default values for the template?

lgtm


Fix for #206  Settings: running out of memory

Added benefit: "< Back" now restores your position in the main menu.
Duplicates a bunch of code from E_showMenu.js, maybe restoreMenu could be added as l.restore in there?

Thanks - but I feel like I really need to fix this inside E.showMenu/Espruino if at all possible...
The whole idea is E.showMenu should be nice and easy to use - folks shouldn't have to worry about this

Yeah, I expected as much, but didn't really feel up to messing with the Espruino code.
Maybe you could add this to E_showMenu.js:
restore : function() {
  g.clear(1);g.flip();
  Bangle.drawWidgets();
  l.draw();
  if (Bangle.btnWatches) {
    Bangle.btnWatches.forEach(clearWatch);
  }
  Bangle.btnWatches = [
    setWatch(function() { l.move(-1); }, BTN1, {repeat:1}),
    setWatch(function() { l.move(1); }, BTN3, {repeat:1}),
    setWatch(function() { l.select(); }, BTN2, {repeat:1}),
  ];
}

And then settings could do something like
let menus = {}
function showMainMenu() {
  if (menus.main) {menus.main.restore(); return}
  const mainmenu = {
    '': { 'title': 'Settings' },
    'Locale': showLocaleMenu,
  };
  menus.main = E.showMenu(mainmenu);
}

function showLocaleMenu() {
  if (menus.locale) {menus.locale.restore(); return}
  const localemenu = {
    '': { 'title': 'Locale' },
    '< Back': showMainMenu,
  };
  menus.locale = E.showMenu(localemenu);
}

showMainMenu();

Hmm, I guess keeping more references around to all menus isn't really a great solution actually...


Hour Glass Pattern

Created Hour Glass Pattern using join, center, and strip string functions

CODE IS ALREADY ADDED


Fix clippy errors in current build

Given the large number of clippy warnings present in master, I'm assuming there's not a general intention for rust-analyzer to be clippy-clean, however the fixes in this branch deal with things clippy considers an error and which therefore cause vscode to light up red if using clippy by default.
I don't believe the changes to be particularly controversial, and I stopped short of trying to clean up all the clippy warnings and lints.
The only commit I'm not 100% certain on is the proc_macro_srv change since that's obviously delicate stuff.  I believe it to be right, but I'm unsure where to insert tests to confirm compatibility hasn't been disrupted.

@kinnison our Clippy policy is documented here, btw: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/style.md#clippy

@kinnison our Clippy policy is documented here, btw: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/style.md#clippy

I managed to miss that when I went looking, thanks for the pointer.
I think I only "corrected" things which were actively wrong, but if others don't agree then I'm happy to just close this PR now that I know the intent is to not worry overly about clippy.

Based on #7112 going in, which would fail another of my commits out, I'll just close this off for now and maybe look at cleaning bits up another time, thanks anyway. :+1:


[ibex/ml] add CSR/mem_error tests to ml_testlist

Signed-off-by: Udi<EMAIL_ADDRESS>

@udinator @taoliug is this PR still relevant? (I don't understand enough of the code to really review it, but I'd rubber-stamp it if so.)

yes, this PR is still relevant (just extremely low priority).
if you approve it I'd be happy to merge it to clear up one pending item in the repo (this PR doesn't affect the 'main' Ibex regressions whatsoever).

Hey @udinator ,
it has been a long time since this PR has been approved. To merge this, a rebase is needed. Would you mind having a look such that we can merge this?


Update server.c

Changed old link.

Simple change, and we've been using GitHub for quite a while; it makes no sense to continue pointing to the defunct Google Code repository. Does it make more sense to point to http://umurmur.net instead?

I don't recommend using the main website since:

No real https
We can loose the domain if the project stop being maintained

Please, this need to get merged!

This makes perfect sense to me. Google Code is defunct and shouldn't be used anymore anyways.


[PRM-393]: added VAT unpaid content and lpp calculation link

With outstanding VAT

No outstanding VAT

Updated message


[V3] No way to unregister callbacks.

Currently I see no way to unregister callbacks. This causes hot reloading to register more and more Notification event handlers during debugging.
It looks like the NativeEventsReceiver handles all the event listeners, but doesn't expose anything for removing these event listeners. Is there a way to unregister these callbacks or does NativeEventsReceiver need to be modified to make this happen?

EventsRegistry functions return react-native's EmitterSubscription, which has a function remove, to remove the event listener

@simonasdev Can you supply an example on how to implement this? Facing the same issue unfortunately

Doesn't this work for you?
componentDidMount() {
    Notifications.registerRemoteNotifications()

    this.notificationReceivedForeground = Notifications.events().registerNotificationReceivedForeground(() => {
      //...
    })
}

componentWillUnmount() {
    this.notificationReceivedForeground.remove()
}

This will not unregister the device from receiving notifications when the app is not running, am I right? I so, how to do that?


Some offset for ARC and circles

First of all, thank you for the great job!
I'm experimenting some troubles while converting models somes elements such as ARC and CIRCLES are shifted to x axis.
test.zip

I've been looking at it now - the bug is that when a horizontal flip is specified on the entity itself (as opposed to the transform), it is not applied.
Working on a fix...

I have a fix, just waiting for Travis to release.
Before:

After:

Fix released in 4.1.1

Whoo, great thank guys.
Regards,
Gwenael Delaleux
On Mon, Jun 24, 2019 at 12:06 PM Ben Nortier<EMAIL_ADDRESS>wrote:

Fix released in 4.1.1
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bjnortier/dxf/issues/42?email_source=notifications&email_token=AFS5VFYSC2TVYRCL5EXDZFTP4CMEDA5CNFSM4H2ZVT42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYMOACY#issuecomment-504946699,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFS5VF2UJYOSRSRVPEZGCGLP4CMEDANCNFSM4H2ZVT4Q
.


Enemies don't shoot on first turn

This may or may not be a LowVis issue. But has been observed in BT 1.6 running the RT Patch 12 alphas and seems like a problem with detection checks.
 This is easily observable when they are dropped mid-contract but may also affect ones that are spawned at start.

Their movement choices seem odd, as if they are blind to the player, often running past player units and turning their backs.

No longer seems to be the case.


Size of magnifying glass and links in chartbox unequal

Size of magnifying glass and links in chartbox is unequal.

For my part, the magnifying glass is 20x16 px

perhaps have a look at freris.de .
hopfully i have overwritten with the latest version?

Indeed, this is a problem with the Family tab (which I don't use, so I didn't notice it)
Thanks, I'll fix it


Fact sheet refactor

@ mention of reviewers
@ckcollab
@gibsonbailey
Screenshots
Edit Form

Submission Upload

Submission Details

Leaderboard

A brief description of the purpose of the changes contained in this PR.
Update to the Fact_Sheet system. Adds metadata for is_required, is_on_leaderboard, and title
is_required for selection questions will create a blank default entry
is_required for text entry does not validate empty strings
is_on_leaderboard will show the answer to a question on the leaderboard
title will be the prompt the user sees on the fact_sheet and on the leaderboard
Issues this PR resolves
Resolves #550
Resolves #538
A checklist for hand testing

[x] Uploading a submission and adding to a leaderboard without a fact_sheet should work as intended
[x] Uploading a submission with a fact_sheet question marked as is_on_leaderboard should show answer on the leaderboard
[x] A selection question not marked  is_required should have a blank option
[x] A text question marked as is_required should not validate when submitting whitespace or nothing

Checklist

[x] Code review by me
[x] Hand tested by me
[x] I'm proud of my work
[ ] Code review by reviewer
[ ] Hand tested by reviewer
[ ] Ready to merge

may be nice to have some kind of tool tip or something explaining why we need a key/such?

ultra nitpick:

Meta-data -> Fact sheet answers?


Accessing addresses to members

Hey, I have some pybinded structs, that have a lot of repeating boilerplate:
struct MyStruct {
  int x;
  char c;
};

py::class_< MyStruct >(module, "MyStruct")
  .def_readonly("x", &MyStruct::x)
  .def_readonly("c", &MyStruct::c);

I was thinking about using boost::pfr to automate this, but I don't think there is currently any way, since boost::pfr doesn't have an interface to access member addresses i.e. something like this:
auto cls = py::class_< MyStruct >(module, "MyStruct");
boost::pfr::for_each_member_address_with_name<MyStruct>([cls](std::string_view name, auto address) {
  cls.def_readonly(name, address);
});

Is there any interest in having such interface? And if so - I think I can make a PR. If you could give me some hints on possible implementation - that would be greatly appreciated.
Thanks!

Looks quite interesting. Please provide a PR.

Gave it some thought and I don't really know how to implement it. Structured bindings won't help here, since essentially:
struct S { char c; };

S s;
auto& [c] = s;
// there is no way to get from ref c to char S::*

If you are aware of maybe compiler specific tricks that can let me do that - please help me.

Maybe something like this? Probably not the safest version, but it works :)
void change_data_without_a_check(Ts& mystruct, const std::string_view column_name, const Us new_data) {
	size_t column_id = 0;
	constexpr auto field_names = pfr::names_as_array<Ts>();
	for (size_t i = 0; i < field_names.size(); i++) {
		if (field_names[i].compare(column_name) == 0) {
			column_id = i;
		}
	}
	size_t i = 0;

	pfr::for_each_field(mystruct, [&](auto& f, auto meta) {
		if (i == column_id) {
			void* voidptr = reinterpret_cast<void*>(&(pfr::get<meta>(mystruct)));
			(*(Us*)(voidptr)) = new_data;
		}
		i++;

		});

}
struct S { char c; uint8_t u; };
int main(int argc, const char* argv[]) {

	auto s2x = S('A');
	uint8_t newvaluex = 100;
	std::string mycolumnx = "c";
	change_data_without_a_check(s2x, mycolumnx, newvaluex);
	char newvaluex2 = 'A';
	std::string mycolumnx2 = "u";
	change_data_without_a_check(s2x, mycolumnx2, newvaluex2);
	std::cout << s2x.c << " " << s2x.u << std::endl; } ```

As far as I understand, in the code above there is no point at which we have pointer of type Us Ts::*.
This reinterpret_cast<void*>(&(pfr::get<meta>(mystruct))); is indeed the memory address, but I don't know of any way to make a hop from memory address to a pointer-to-member.

Got it, I thought your main concern was getting the memory address of each member.


Change repo ACL

Repo to change access: https://github.com/hyperledger/iroha-java
GitHub ID to add: mversic
Role: Admin

Since I've become the team lead for FIL, iroha-java is now under my jurisdiction. Please grant me admin rights to help maintain the repository.
Thanks

done and done


updates to use apache toree instead of spark kernel

need to change pom.xml and js interpreter

fixed by commit e2f740fc0ea5d161cc4e4f252a468923fa0e4f8a


Changes to existing linked text (and for future linked text included)

All linked text must have the following identifiers:

underlined
should be red not blue (please use the UNO red for these links and any other red on the website – RGB 215/25/32 – Hexadecimal #D71920)

These changes are being made as pages are updated.


Constrain AR < 5.1

Rails 5.1 will deprecate the current behavior of AR::Dirty (https://github.com/rails/rails/pull/25337) which is pretty important to PT. I haven't found good instructions yet on how to upgrade, but Sean Griffin described it as easy, on his podcast (http://bikeshed.fm/87).

@sgrif did offer to patch PT (https://twitter.com/sgrif/status/738901870031212544) but I think he was being too generous for his own good. If it's as easy as he describes, I'm sure we can handle it :)

Oh thanks for the reminder. I can send a PR in a few. ;)

Literally all of the deprecation warnings are backwards... I need to fix this upstream.

If you do take this on (much appreciated), the instructions for running the test suite locally are in https://github.com/airblade/paper_trail/blob/master/.github/CONTRIBUTING.md or you can just open a PR and use our CI. Thanks!

Yup, got it running. Thanks!

Got everything updated. Your needs were a bit trickier, since you also call these methods from an after_destroy callback, which didn't persist any changes, so the "before last call to save" set of methods can't be used 100% of the time. The good news is that all of these methods already needed to be pulled out into a conditional to make sure it wasn't using them with AR < 5.1. The bad news is that conditional will continue to stick around after support for 5.0 is dropped.
I've got the rspec test suite passing. The tests run by rake test (your integration tests?) are failing. They were failing before, but I'm seeing one additional failure in those compared to before my changes but still pointing at Rails master. The minitest test runner makes it a pain to see which failure is new (especially if it's surrounded by infinite deprecation warnings), so I'm just going to go ahead and fix all of them.
Would you be ok with me also setting you up to run against Rails master as part of your CI (as an allowed failure)?

@sgrif - Thank you so much for taking a closer look at this, we very much appreciate it.

Would you be ok with me also setting you up to run against Rails master as part of your CI (as an allowed failure)?

Seems reasonable to me if the objective of this work is to set us up for compatibility with newer versions of rails going forward. @jaredbeck is more knowledgable about how to best accomplish this but I believe the easiest approach is to slap a new group into the Appraisals file.
And just for clarification, the ActiveModel::Dirty callbacks are being deprecated in Rails 5.1 but not removed until 6.x or later, correct? rails/rails#25337 seems to indicate that they may not even be removed in 6.x?

The methods themselves aren't deprecated, and they will not be removed. The deprecation is for their current behavior, which will be changing in the next version of Rails (either 5.2 or 6.0) to be the same as if you had run that code after the call to .save (as the name after_save would imply). For example:
class Foo < ActiveRecord::Base
  after_save do
    raise if changed?
  end
end

Foo.create!

would raise in 5.1 and earlier, but will pass in 5.2/6.0 and later. For every method in dirty, there is a new method introduced for the "old" behavior, and another new method introduced for the "new" behavior. In 5.2/6.0 the current methods in dirty will change to behave the same as the "new" behavior.
None of the methods in any of those groups are planned to be removed. Outside of after_(save|create|update) callbacks, the behavior of the existing methods and the behavior of the "new" methods are identical. Outside of callbacks, the "new" behavior methods have the behavior that you would get if you implemented them using previous_changes instead of changes (there are no equivalent methods in 5.0 and earlier).


Bump package tide

Tide 0.13.0 wasn't building properly using the release profile (eg cargo install trunk would fail) - this seems to be due to https://github.com/http-rs/tide/issues/673 (my target is aarch64-apple-darwin aka Apple Silicon), however 0.16.0 no longer has this issue and doesn't seem to break anything :)

Checklist

[ ] Updated CHANGELOG.md describing pertinent changes.

Haven't updated as this seems like a minor / non-user facing change

[ ] Updated README.md with pertinent info (may not always apply).

Hmm, it seems updating the lockfile has broken the build, although just updating Cargo.toml was okay during testing. I'll see if I can find what's wrong and fix the issue

Seems to be okay now after running cargo update rather than cargo update -p tide to limit to tide :)

Just spotted  #105, maybe this is redundant?

Hey there @davidbailey00 thanks for the PR! Yea, have a look at #116 ... same updates there actually :). Planning on getting that merged shortly. Will keep you posted.

@davidbailey00 so, looks like this has been addressed with #116 now. Also, FWIW the older versions of Trunk have already been updated by brew to include aarch64 binaries, and the 0.8.0 release should have those in place as soon as brew finishes their distribution pipeline, so you also have the option to brew install trunk which will take only a few seconds instead of having to build from source :).

Thanks for the info!


open a popup,then scroll to bottom,the opened popup will not disappear

Reproduction link
https://codesandbox.io/s/ng-zorro-antd-ivy-forked-y9b4n?file=/src/app/app.component.ts
Steps to reproduce
1.open a popover modal
2.scroll screen to bottom
3.find popever position wrong,and do not disappear;just float on the top of page
What is expected?
disappear when touch the top,and we do not want ban visitor's scroll,they can scroll the page;this bug can easily show in your basic web
https://ng.ant.design/components/popover/zh
What is actually happening?
float at top,and visitor can not scroll the page.

Environment
Info

ng-zorro-antd
11.4.0

Browser
chrome

https://material.angular.io/components/tooltip/overview#tooltip-manual
Check this out.


BUG: Bad transformer parameters can induce NaN values in the solver

Describe the bug
When bad parameters values are given to TransformerParameters, it can induce NaN values for z2, that will cause singular matrix. This is because of the line :
l2_omega = np.sqrt((self._vsc * self._ulv**2 / self._sn) ** 2 - r2**2)

To Reproduce
from roseau.load_flow import *

parameters = TransformerParameters(
    id="test",
    windings="Dyn11",
    sn=50000.0,
    uhv=20000.0,
    ulv=400.0,
    i0=0.027,
    p0=210.0,
    psc=2150.0,
    vsc=0.04,
)
print(parameters.to_zyk())

Expected behavior
An exception should be raised before running the load flow.
Version details
Please copy/paste here the output of the function show_versions
from roseau.load_flow import show_versions

show_versions()

# Paste here the output of the function `show_versions`

For magnetizing inductance, we prevent the negative sqrt by replacing it by 0 :
# Magnetizing inductance (Henry) * omega (rad/s)
if self._i0 * self._sn > self._p0:
    lm_omega = self._uhv**2 / (np.sqrt((self._i0 * self._sn) ** 2 - self._p0**2))
    ym = 1 / r_iron + 1 / (1j * lm_omega)
else:
    ym = 1 / r_iron

@alihamdan do you think we should do the same here or raise an error ?

I think it should be an error. It is physically impossible to have Z = R+jX where |Z| < R.
If you don't want to raise an error, I think we should at least warn the user when their P_{short-circuit} can lead to negative sqrt.
(I also think we should warn for the lm_omega case)


HDDS-1663. Add datanode to network topology cluster during node regis…

…ter.
https://issues.apache.org/jira/browse/HDDS-1663

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
45
Docker mode activated.

_ Prechecks _

+1
dupname
1
No case conflicting files found.

0
yamllint
0
yamllint was not available.

0
shelldocs
0
Shelldocs was not available.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 4 new or modified test files.

_ trunk Compile Tests _

0
mvndep
79
Maven dependency ordering for branch

+1
mvninstall
545
trunk passed

+1
compile
306
trunk passed

+1
checkstyle
97
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
855
branch has no errors when building and testing our client artifacts.

+1
javadoc
185
trunk passed

0
spotbugs
344
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
544
trunk passed

_ Patch Compile Tests _

0
mvndep
41
Maven dependency ordering for patch

+1
mvninstall
501
the patch passed

+1
compile
345
the patch passed

+1
javac
345
the patch passed

-0
checkstyle
56
hadoop-hdds: The patch generated 6 new + 0 unchanged - 0 fixed = 6 total (was 0)

+1
mvnsite
0
the patch passed

+1
shellcheck
1
There were no new shellcheck issues.

-1
whitespace
0
The patch 6  line(s) with tabs.

+1
shadedclient
784
patch has no errors when building and testing our client artifacts.

+1
javadoc
184
the patch passed

+1
findbugs
573
the patch passed

_ Other Tests _

-1
unit
177
hadoop-hdds in the patch failed.

-1
unit
1384
hadoop-ozone in the patch failed.

+1
asflicense
60
The patch does not generate ASF License warnings.

7149

Reason
Tests

Failed junit tests
hadoop.ozone.container.common.impl.TestHddsDispatcher

hadoop.ozone.client.rpc.TestBCSID

hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis

hadoop.ozone.client.rpc.TestOzoneAtRestEncryption

hadoop.ozone.client.rpc.TestSecureOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneRpcClient

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle yamllint shellcheck shelldocs

uname
Linux f3c75972f758 4.4.0-141-generic #167~14.04.1-Ubuntu SMP Mon Dec 10 13:20:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / fcfe7a3

Default Java
1.8.0_212

checkstyle
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/artifact/out/diff-checkstyle-hadoop-hdds.txt

whitespace
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/artifact/out/whitespace-tabs.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/artifact/out/patch-unit-hadoop-hdds.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/testReport/

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

modules
C: hadoop-hdds/common hadoop-hdds/server-scm hadoop-ozone/dist U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/1/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Whitespaces in network-config are intended to separate two columns.
All failed unit tests are irrevelant.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
71
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

0
shelldocs
1
Shelldocs was not available.

0
yamllint
1
yamllint was not available.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 6 new or modified test files.

_ trunk Compile Tests _

0
mvndep
95
Maven dependency ordering for branch

+1
mvninstall
775
trunk passed

+1
compile
361
trunk passed

+1
checkstyle
105
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
968
branch has no errors when building and testing our client artifacts.

+1
javadoc
215
trunk passed

0
spotbugs
408
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
648
trunk passed

_ Patch Compile Tests _

0
mvndep
48
Maven dependency ordering for patch

+1
mvninstall
571
the patch passed

+1
compile
358
the patch passed

+1
javac
358
the patch passed

+1
checkstyle
104
the patch passed

+1
mvnsite
0
the patch passed

+1
shellcheck
0
There were no new shellcheck issues.

-1
whitespace
0
The patch 6  line(s) with tabs.

+1
xml
1
The patch has no ill-formed XML file.

+1
shadedclient
785
patch has no errors when building and testing our client artifacts.

+1
javadoc
188
the patch passed

+1
findbugs
563
the patch passed

_ Other Tests _

-1
unit
173
hadoop-hdds in the patch failed.

-1
unit
1319
hadoop-ozone in the patch failed.

+1
asflicense
67
The patch does not generate ASF License warnings.

7792

Reason
Tests

Failed junit tests
hadoop.ozone.container.common.impl.TestHddsDispatcher

hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis

hadoop.ozone.client.rpc.TestOzoneAtRestEncryption

hadoop.ozone.client.rpc.TestSecureOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneRpcClient

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle xml shellcheck shelldocs yamllint

uname
Linux 278701bbb853 4.4.0-141-generic #167~14.04.1-Ubuntu SMP Mon Dec 10 13:20:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 101d5b5

Default Java
1.8.0_212

whitespace
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/artifact/out/whitespace-tabs.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/artifact/out/patch-unit-hadoop-hdds.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/testReport/

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

modules
C: hadoop-hdds/common hadoop-hdds/server-scm hadoop-ozone/dist U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/2/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Comments for above build,

whitespaces are intended. Cannot remove them.
all failed unit tests are locally passed. They seem irrelevant.
acceptance test seems take much longer time than other checks.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
48
Docker mode activated.

_ Prechecks _

+1
dupname
1
No case conflicting files found.

0
shelldocs
0
Shelldocs was not available.

0
yamllint
0
yamllint was not available.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 6 new or modified test files.

_ trunk Compile Tests _

0
mvndep
74
Maven dependency ordering for branch

+1
mvninstall
597
trunk passed

+1
compile
353
trunk passed

+1
checkstyle
94
trunk passed

+1
mvnsite
0
trunk passed

+1
shadedclient
860
branch has no errors when building and testing our client artifacts.

+1
javadoc
184
trunk passed

0
spotbugs
347
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
546
trunk passed

_ Patch Compile Tests _

0
mvndep
39
Maven dependency ordering for patch

+1
mvninstall
484
the patch passed

+1
compile
318
the patch passed

+1
javac
318
the patch passed

+1
checkstyle
101
the patch passed

+1
mvnsite
0
the patch passed

+1
shellcheck
0
There were no new shellcheck issues.

-1
whitespace
0
The patch 6  line(s) with tabs.

+1
xml
1
The patch has no ill-formed XML file.

+1
shadedclient
820
patch has no errors when building and testing our client artifacts.

+1
javadoc
191
the patch passed

+1
findbugs
615
the patch passed

_ Other Tests _

-1
unit
194
hadoop-hdds in the patch failed.

-1
unit
1718
hadoop-ozone in the patch failed.

+1
asflicense
65
The patch does not generate ASF License warnings.

7633

Reason
Tests

Failed junit tests
hadoop.ozone.container.common.impl.TestHddsDispatcher

hadoop.ozone.client.rpc.TestOzoneAtRestEncryption

hadoop.ozone.client.rpc.TestWatchForCommit

hadoop.ozone.client.rpc.TestFailureHandlingByClient

hadoop.ozone.client.rpc.TestSecureOzoneRpcClient

hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis

hadoop.ozone.client.rpc.TestBlockOutputStreamWithFailures

hadoop.ozone.client.rpc.TestOzoneRpcClient

hadoop.ozone.client.rpc.TestBCSID

Subsystem
Report/Notes

Docker
Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/artifact/out/Dockerfile

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

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle xml shellcheck shelldocs yamllint

uname
Linux 229d5cf8ecfd 4.4.0-144-generic #170~14.04.1-Ubuntu SMP Mon Mar 18 15:02:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 101d5b5

Default Java
1.8.0_212

whitespace
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/artifact/out/whitespace-tabs.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/artifact/out/patch-unit-hadoop-hdds.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/artifact/out/patch-unit-hadoop-ozone.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/testReport/

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

modules
C: hadoop-hdds/common hadoop-hdds/server-scm hadoop-ozone/dist U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-937/3/console

versions
git=2.7.4 maven=3.3.9 shellcheck=0.4.6 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Comments for the new build,

whitespaces are intended. Cannot remove them.
all failed unit tests are locally passed. They seem irrelevant.
acceptance test seems take much longer time than other checks.

@xiaoyuyao thanks Xiaoyu for the review and commit.

bq. all failed unit tests are locally passed. They seem irrelevant.
Fix me If I am wrong, but TestNodeReportHandler seems to be related. It's failing with NPE after this patch but not without this patch:
https://ci.anzix.net/job/ozone-nightly/141/testReport/org.apache.hadoop.hdds.scm.node/TestNodeReportHandler/testNodeReport/


Issue 313

Adds MIME adapters for text/plain, application/xml / text/xml, and text/html.

I'm definitely -1 on adding nokogiri as a runtime dependency. That seems like something a user could optionally pull in with an explicit require http/mime_type/xml

Thanks for your efforts, but the only adapter I can think of being OK to be available out of the box is JSON. I would extend that list to YAML, but because of of some reasons (e.g. custom types) I think it's not good to be part of the core. XML, text, YAML are pretty specific in my opinion. For example at SensorTower we override default JSON adapter to use different JSON parser/dumper.


Error in benq.json

The command for high altitude mode has a syntax error:
        "high_altitude_mode": {
            "command": "Highaltitude",
                "on": "on",
                "off": "off",
                "status": "?"
            }
        },

This is missing the line
            "actions": {

I don't have a benq so I cant verify but do feel free to create a pull request. =)

It's a syntax error.
Benq is also missing the  brilliant color, BS command.


virtio-fs limitations

Creating an issue for the record, when using virtio-fs:
xattr/setfattr is working and persisted across reboots, but with one big caveat: on linux, security.selinux is special, and can be set even on read-only files (0444 permissions). On macOS, this is not true, if the file is read-only, xattr can't be used to set the security.selinux xattr.
This causes issues with podman-remote run -v /Users/teuf/some-folder:/some/path:Z as this this involves some setfattr calls which failed (Error: error preparing container a1961ae610561be62638aef839ad9f7f2735a16f3fcf15ece95b09865167e415 for attach: setxattr /Users/teuf/dev/crc/.git/objects/00/63a6fe0324d63105a6649c0b46fb27ad767b17: permission denied).
To avoid this, the filesystem in the VM can be mounted with: mount -t virtiofs -o  context=system_u:object_r:container_file_t:s0 and the container started with podman-remote run -v /Users/teuf/dev:/test --rm registry.access.redhat.com/ubi8 ls -alZ /test/crc from macOS

Can the return be changes to ENOSUP rather then EPERM?  Podman and container tools now handle ENOSUP on :Z and :z gracefully.

BTW It seems like the MAC version makes more sense then the Linux one.

virtiofs is simply a passthrough filesystem. If MacOS host does not allow setfattr operation, it will return that error back to the client.
So what you are seeing is not really related to virtiofs. Its just a setfattr behavior difference between macos and linux.
I find it odd that one can set xattr on read-only file. Say I want to change selinux label of a read-only file so that a certain process can 't get access to it. How would I do that?
My understanding of linux read-only mode is that it is about file data. You can't modify file's data. But it does not prohibit you from changing file's metadata.
If you are trying to make metadata also immutable, I think that will be "immutable" file. And one can use "chattr" for that.
So I would argue that tcalling it "virtio-fs limitation" is not the correct title for this issue.

Testing this directly on the mac gives:
% xattr -w security.selinux 'system_u:object_r:var_log_t:s0' ./selinux-test-ro
xattr: [Errno 13] Permission denied: './selinux-test-ro'

errno 13 is EACCES, not EPERM (errno 1)

> So I would argue that tcalling it "virtio-fs limitation" is not the correct title for this issue.

Fair enough, I renamed it to " Bad interactions between selinux and an APFS-backed directory shared over virtiofs" which should be more accurate.

So far I was thinking that for this one we were highly dependent on Apple, but seeing these comments from Dan Walsh:

Can the return be changes to ENOSUP rather then EPERM? Podman and container tools now handle ENOSUP on :Z and :z gracefully.
BTW It seems like the MAC version makes more sense then the Linux one.

maybe podman could be changed to also ignore EACCES when doing these mappings?

Why do you have read-only content in your homedir?

Why do you have read-only content in your homedir?

is it not more than a little likely users will have this kind of thing whether they know it or not ?

Well they have to have a read-only partition on their homedir, and they have to attempt to share it into a container which they want to trigger a relabel.  The issue is there is  not a clear place to say ignore the relabel on ENOACCESS, if the partition is mounted read-only on a virtiofsd.

Why do you have read-only content in your homedir?

Files in .git/objects/ and in go/pkg/mod/ are read-only on my mac system, they were created this way by git/golang.

Could you look at the labels of those files within the VM with a ls -lZ to see what label they had?

These read-only files exist on the macOS side, on the APFS filesystem it uses, they don't have any labels nor xattrs. podman-machine shares the full home directory over virtio-fs, and when the user of podman wants to expose one of these dirs in a container using -v...:Z, the failure occurs.

I understand, the question is if they are not relabeled will they fail to be used within the Container, since SELinux will hit them with a permission denied when a process within a container attempts to read the content,  If I know the label, then I can at least tell if SELinux will block reading.
As far as the Relabel, we could change the code to only warn on failures to relabel, but this could get mighty noisy.
No ideal solution to this issue.

@slp could you check if libkrun has the same problems?

@slp could you check if libkrun has the same problems?

No, it doesn't. In the virtio-fs implementation in libkrun we deliberately exclude macOS from participating in file permission decisions by storing the permission and ownership bits from Linux PoV as extended attributes:
bash-5.2# mkdir /work/ro
bash-5.2# chmod 400 /work/ro
bash-5.2# ls -l /work
total 0
dr-------- 2 root root 64 Jan 18 18:23 ro
bash-5.2# getfattr -m - -d /work/ro
bash-5.2# setfattr -n security.selinux -v "system_u:object_r:var_log_t:s0" /work/ro
bash-5.2# getfattr -m - -d /work/ro
getfattr: Removing leading '/' from absolute path names
# file: work/ro
security.selinux="system_u:object_r:var_log_t:s0"

bash-5.2#
exit
slp@Sergios-MacBook-Air selinux-test % ls -l
total 0
drwx------@ 2 slp  staff  64 Jan 18 19:23 ro
slp@Sergios-MacBook-Air selinux-test % xattr -l ro
security.selinux: system_u:object_r:var_log_t:s0
user.containers.override_stat: 0:0:040400

I'm afraid that if the virtio-fs implementation in vfkit tries to store the permission bits in Linux as actual permission bits in APFS we'll find plenty of corner cases like this, as the filesystem semantics between Linux and macOS aren't 1:1.
Probably with libkrun we simply noticed those issues earlier because the root filesystem is also mounted via virtio-fs, so we already adopted this alternative strategy for storing the permission and ownership bits.


MinosConfig must have the connection data to the broker queue database.

The broker has a queue that is stored in the PostgreSQL database. For this it is necessary to include this configuration in the "events" and "commands". Also in case there are 2 different databases in the future.
This is the original YAML:
service:
    name: Order
rest:
    host: localhost
    port: 8900
    endpoints:
        - name: AddOrder
          route: /order
          method: POST
          controller: minos.services.OrderService
          action: add_order
events:
    broker: localhost
    port: 9092
    database:
        path: ./tests/local_db.lmdb
        name: database_events_test
    items:
        - name: TicketAdded
          controller: minos.services.CQRSService
          action: ticket_added
        - name: TicketDeleted
          controller: minos.services.CQRSService
          action: ticket_deleted
        - name: OrderAdded
          controller: minos.services.CQRSService
          action: order_added
commands:
    broker: localhost
    port: 9092
    database:
        path: ./tests/local_db.lmdb
        name: database_commands_test
    items:
        - name: AddOrder
          controller: minos.services.OrderService
          action: add_order
        - name: DeleteOrder
          controller: minos.services.OrderService
          action: delete_order
        - name: UpdateOrder
          controller: minos.services.OrderService
          action: update_order
        - name: GetOrder
          controller: minos.service.OrderService
          action: get_order

This is what would be added in events/commands:
events:
    ...
    queue:
        database: broker_db
        user: broker
        password: *****
        host: localhost
        port: 5432
commands:
    ...
    queue:
        database: broker_db
        user: broker
        password: *****
        host: localhost
        port: 5432

In the end it would look like this:
service:
    name: Order
rest:
    host: localhost
    port: 8900
    endpoints:
        - name: AddOrder
          route: /order
          method: POST
          controller: minos.services.OrderService
          action: add_order
events:
    broker: localhost
    port: 9092
    database:
        path: ./tests/local_db.lmdb
        name: database_events_test
    items:
        - name: TicketAdded
          controller: minos.services.CQRSService
          action: ticket_added
        - name: TicketDeleted
          controller: minos.services.CQRSService
          action: ticket_deleted
        - name: OrderAdded
          controller: minos.services.CQRSService
          action: order_added
    queue:
        database: broker_db
        user: broker
        password: *****
        host: localhost
        port: 5432
commands:
    broker: localhost
    port: 9092
    database:
        path: ./tests/local_db.lmdb
        name: database_commands_test
    items:
        - name: AddOrder
          controller: minos.services.OrderService
          action: add_order
        - name: DeleteOrder
          controller: minos.services.OrderService
          action: delete_order
        - name: UpdateOrder
          controller: minos.services.OrderService
          action: update_order
        - name: GetOrder
          controller: minos.service.OrderService
          action: get_order
    queue:
        database: broker_db
        user: broker
        password: *****
        host: localhost
        port: 5432

@andrea-mucci please approve this change when you can.
Thank you.

Hi @vladyslav-fenchak, the proposal looks really interesting!  🙂
I have a conceptual question I want to ask you mostly to improve my understanding about this part of the project:
What is the difference between the database and the queue databases? I understood that the first one is the related with the on-progress (or "working" tasks) and the queue will be an historical registry of those task. Am I right with that idea or will those databases store different information? 🤔


merge random-beans-java8 module into random-beans module, now that we…

… require at least java 8 (fixes #88)

Coverage increased (+0.2%) to 75.207% when pulling 04dd522c47164593be3f0bf693a9c2d2fd03b95b on PascalSchumacher:issue_88 into 2eba4a2c1ff54f3cd661928004d29622c7e0b413 on benas:master.

Cool :+1:  I wish I have as much time as you to implement all these improvements!
I think we can still group all JSR 310 randomizer in a registry even though they reside in the core module. They form a logical group together and would best fit in their own registry. What do you think?
Alson the package name "java8" is fine, but would it be more appropriate to be more specific? May be "jsr310" or "threeten" (like here)?

I think we can still group all JSR 310 randomizers in a registry even though they reside in the core module. They form a logical group together and would best fit in their own registry. What do you think?

Makes sense. I will update the pull request.

Also the package name "java8" is fine, but would it be more appropriate to be more specific? May be "jsr310" or "threeten" (like here)?

I agree. As it's only for java.time classes a more specific name is appropriate. I personally find "threeten" confusing. I would prefer "jsr310", or maybe it just "time" (similar to "collection")?

Coverage increased (+0.3%) to 75.268% when pulling 32d7eba992889efa246f1ee91834be3b458fa8e3 on PascalSchumacher:issue_88 into df17980c6dd3c6bdc3ba1d1e51aad9c69725f29c on benas:master.

Coverage increased (+0.3%) to 75.268% when pulling 92b188aeae9fd6aaf15fa3fcd11d29078732cb26 on PascalSchumacher:issue_88 into df17980c6dd3c6bdc3ba1d1e51aad9c69725f29c on benas:master.

Reintroduced the separate registry and change the package name to "time". If you rather have it be "jsr310" or something else I will update the pull request.

Thanks for the update.
package "time" is fine. I think we need to move all (legacy) date and time randomizers inside it too.
I'll refactor randomizers to be grouped in logical packages. Here is a suggestion:

collection: collection types randomizers (as is today)
time: JSR 310 types randomizers (as in this PR) + move java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time and java.sql.Timestamp randomizers in this package
number: numeric types randomizers
text: textual randomizers
misc: for others

Sounds good to me. :smile:

good. done.


Check JSON format storage_config, storage_creds

Fixes #569. This should help with debugging especially when using k8 yaml files for deploying aca py. Previously, there was no easy way to discern between input argument errors and database errors.
Also improve documentation around --wallet-storage-config and --wallet-storage-creds

Will fix up the tests, stand by

Codecov Report

Merging #572 into master will decrease coverage by 0.03%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master     #572      +/-   ##
==========================================
- Coverage   96.75%   96.71%   -0.04%
==========================================
  Files         240      240
  Lines       12753    12763      +10
==========================================
+ Hits        12339    12344       +5
- Misses        414      419       +5

Going to add two more tests for the new behavior

Awesome, thanks @andrewwhitehead


Are there plans for omnipay v3 support

I find myself needing to work with Barclays ePDQ so instead of pulling my hair out, I thought I would check to see if this library was going to supoprt v3 of the league/omnipay library so we can use the latest version?

I'd also love to see support for V3 on this, would be super helpful :)


Bug Fix:  Sorry, looks like your network settings are preventing access to this feature.

Today I found I couldn't use node-chatgpt-api anymore, the server response as:

When I try to use browser to visit , the response as:

I found the solution:

And modify the src/BingAIClient.js and recovery, hope it can help others

Thanks for reporting this! I'll close this in favor of #230, but I'll push out a patch immediately so you guys can test it.


LR_DECAY_STEPS and LR_DECAY_RATE not used

These two variables are declared in the global_config file but not used in the training script:
__C.TRAIN.LR_DECAY_STEPS = 410000
__C.TRAIN.LR_DECAY_RATE = 0.1

@david-bernstein Yep the config file is copied from another task of my own so some of the config options are not used. I will clean it up later. Thanks:)

Ok, no problem, thank you!


Incorrect Hero Required, but is selected

Hi @Mlezivan, I found that after each BTD6 update, the images would somehow be outdated and the bot would not be able to find them on screen. So to fix this, one should take new snippets of the buttons (heroes, maps, skills etc) and store them under ./resources/. As I'm not actively playing this game anymore, I'm not actively updating these. I will mark this in the README.


Feature request: Option to use existing audio files instead of recording new

Would it be possible to have the option to point to an existing audio file, in addition to the existing recording function?  Just a thought that came to me while I was playing with this module.  Thanks!

Hi notrealdan,
Thanks for the feedback!
Please find below a conversation I had with a user on Discord about this today, explaining my current position on this.
There is also a short guide on how to achieve this with the current module.

Redacted at 12:46
Blitz great new version of VoiceActor. Adding it to the journal entry it's very useful.
Did you though of adding an import button? This way the voice could be recorded and manipulated before been put in the journal entry?
BlitzToday at 13:17
Hi, thanks! Yes, I've had a think about this, still deciding whether or not this is out of scope. I want to ensure the module doesn't get too complicated. However, using Foundrys filepicker, I can see an argument for adding it. I'll mull it over a bit more
In the meantime, you could get the actors ID, then drop a {id}.ogg file directly in the VoiceActor directory that gets created
BlitzToday at 13:41
For the sake of completeness:
Select a token, press F12 to open devtools, go to console, type canvas.tokens.controlled[0].actor.data._id
This will print the actors ID to the console. (e.g. "SGt9eiJi12N70wO3")
You can then record some audio outside of foundry, do whatever you want to it, and save it as SGt9eiJi12N70wO3.ogg inside VoiceActor/ in your userdata folder.
Now when you refresh, you should be able to open the actor and playback that clip
Similarly for journals:
Get the id by typing game.journal.getName("Name of your journal entry").id
Same process for the rest of it, except you should save the file in VoiceActor/Journal/

As mentioned in the linked conversation, I'm still deciding whether or not to do this, though with 2 reports now it seems like it would be a useful feature for multiple people, so I'll keep that in mind.
Thanks again for the feedback!

Hi notrealdan,
Thanks for the feedback!
Please find below a conversation I had with a user on Discord about this today, explaining my current position on this.
There is also a short guide on how to achieve this with the current module.

Redacted at 12:46
Blitz great new version of VoiceActor. Adding it to the journal entry it's very useful.
Did you though of adding an import button? This way the voice could be recorded and manipulated before been put in the journal entry?
BlitzToday at 13:17
Hi, thanks! Yes, I've had a think about this, still deciding whether or not this is out of scope. I want to ensure the module doesn't get too complicated. However, using Foundrys filepicker, I can see an argument for adding it. I'll mull it over a bit more
In the meantime, you could get the actors ID, then drop a {id}.ogg file directly in the VoiceActor directory that gets created
BlitzToday at 13:41
For the sake of completeness:
Select a token, press F12 to open devtools, go to console, type canvas.tokens.controlled[0].actor.data._id
This will print the actors ID to the console. (e.g. "SGt9eiJi12N70wO3")
You can then record some audio outside of foundry, do whatever you want to it, and save it as SGt9eiJi12N70wO3.ogg inside VoiceActor/ in your userdata folder.
Now when you refresh, you should be able to open the actor and playback that clip
Similarly for journals:
Get the id by typing game.journal.getName("Name of your journal entry").id
Same process for the rest of it, except you should save the file in VoiceActor/Journal/

As mentioned in the linked conversation, I'm still deciding whether or not to do this, though with 2 reports now it seems like it would be a useful feature for multiple people, so I'll keep that in mind.
Thanks again for the feedback!

Thanks for the detailed response!  I was thinking about this some more, and I suppose that if this other feature request of your other module were implemented, I wouldn't have as much desire for this request anymore, especially if I could put such sound links say, in an NPC's description text:
https://github.com/BlitzKraig/fvtt-SoundBoard/issues/25
If I had to vote for one of these features to get attention, it would be that one for SoundBoard, in case it matters.  It would make the SoundBoard quite a bit more useful in my eyes.  Thanks again!

Thanks for the detailed response!  I was thinking about this some more, and I suppose that if this other feature request of your other module were implemented, I wouldn't have as much desire for this request anymore, especially if I could put such sound links say, in an NPC's description text:
https://github.com/BlitzKraig/fvtt-SoundBoard/issues/25
If I had to vote for one of these features to get attention, it would be that one for SoundBoard, in case it matters.  It would make the SoundBoard quite a bit more useful in my eyes.  Thanks again!