python38Packages.dnachisel: 3.2.7 -> 3.2.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.dnachisel is: "Optimize DNA sequences under constraints"
meta.homepage for python38Packages.dnachisel is: "https://github.com/Edinburgh-Genome-Foundry/DnaChisel"
meta.changelog for python38Packages.dnachisel is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

/nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8/bin/dnachisel passed the binary check.

/nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8/bin/.dnachisel-wrapped passed the binary check.

2 of 2 passed binary check by having a zero exit code.

0 of 2 passed binary check by having the new version present in output.

found 3.2.8 with grep in /nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8

found 3.2.8 in filename of file in /nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8

directory tree listing: https://gist.github.com/3aafbe16e93caceace6111dd8e145d1b

du listing: https://gist.github.com/2da590f876e1dce17e9d945be3157eba

Rebuild report (if merged into master) (click to expand)

8 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 i686-linux rebuild(s)
2 x86_64-darwin rebuild(s)
2 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
python38Packages.dnachisel
python39Packages.dnachisel

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.dnachisel https://github.com/r-ryantm/nixpkgs/archive/696ec0dc6f9738c90a1db9b42115e60ada2df1df.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8
ls -la /nix/store/56rnwh5wx59n40ik72myg9fygp1vx308-python3.8-dnachisel-3.2.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python38Packages.dnachisel
python39Packages.dnachisel

Maintainer pings
cc @prusnak for testing.

Result of nixpkgs-review pr 137062 at 696ec0dc run on aarch64-linux 1

2 packages built successfully:

python38Packages.dnachisel
python39Packages.dnachisel


[RFC] coap: negation in tcp check in coap_receive()

When using tcp protocol responses are not handled. Removed negation from
protocol check in handling responses.

When using application bleprph_oic I noticed that coap messages with response codes ( method code = 225, 226 and 228) were not handled. When using build from Nimble 1.8 this problem hasn't occured. I see that the fragment of code impacting handling of these messages was altered in commit 9064dbafc0fab24833c1bae77c52755e02108ea6. Previously there was no check here; although there was Fix this in comment. I don't fully understand what the issue was - the responses should be handled only for tcp, all protocols, or all beside tcp?

When using application bleprph_oic I noticed that coap messages with response codes ( method code = 225, 226 and 228) were not handled. When using build from Nimble 1.8 this problem hasn't occured. I see that the fragment of code impacting handling of these messages was altered in commit 9064dbafc0fab24833c1bae77c52755e02108ea6. Previously there was no check here; although there was Fix this in comment. I don't fully understand what the issue was - the responses should be handled only for tcp, all protocols, or all beside tcp?

See https://tools.ietf.org/html/rfc8323#section-3. Coap over TCP does not do confirmed messages, acknowledgments etc.
I'll have to say no to this PR, I suspect the issue you're after is somewhere else.

See https://tools.ietf.org/html/rfc8323#section-3. Coap over TCP does not do confirmed messages, acknowledgments etc.
I'll have to say no to this PR, I suspect the issue you're after is somewhere else.

@mkiiskila Thank you for your response, it was very helpful! If I understand correctly, message types matter only for non-reliable transports such as UDP. As a result, only message codes between 1 through 4 should be handled properly (COAP_GET - COAP_DELETE). For TCP message types don't matter. What I can see is that for TCP message codes outside 1-4 range are not handled at all. Shouldn't they met with SERVICE_UNAVAILABLE_5_03 response? I pushed the code that redirects this case here: https://github.com/apache/mynewt-core/blob/433b35e380296d375d5f250f11ad92f90c3e2057/net/oic/src/messaging/coap/engine.c#L295
without it handling ends up here:
https://github.com/apache/mynewt-core/blob/433b35e380296d375d5f250f11ad92f90c3e2057/net/oic/src/messaging/coap/engine.c#L273
but there is no transaction to be sent.

@mkiiskila Thank you for your response, it was very helpful! If I understand correctly, message types matter only for non-reliable transports such as UDP. As a result, only message codes between 1 through 4 should be handled properly (COAP_GET - COAP_DELETE). For TCP message types don't matter. What I can see is that for TCP message codes outside 1-4 range are not handled at all. Shouldn't they met with SERVICE_UNAVAILABLE_5_03 response? I pushed the code that redirects this case here: https://github.com/apache/mynewt-core/blob/433b35e380296d375d5f250f11ad92f90c3e2057/net/oic/src/messaging/coap/engine.c#L295
without it handling ends up here:
https://github.com/apache/mynewt-core/blob/433b35e380296d375d5f250f11ad92f90c3e2057/net/oic/src/messaging/coap/engine.c#L273
but there is no transaction to be sent.

 We have CoAP ported from ContikiOS, which follows RFC 7959 and received messages came from system following RFC 8323. Between these versions were introduced new message type - CSM, which is sent at the beginning of every connection. If device following newer spec doesn't receive response for CSM message (and it doesn't, because we do not handle these), it disconnects.


Version 1.4.2

Bottleneck 1.4.2
Destination channel: defaults
Links

PKG-5963
Upstream repository
Upstream changelog/diff
Relevant dependency PRs:

...

Explanation of changes:

change numpy version and update sha and version

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_62ncam8fn0/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:56: invalid_url: https://bottleneck.readthedocs.io : Not reachable: 403
clone/recipe/meta.yaml:26: host_section_needs_exact_pinnings: Linked libraries host should have exact version pinnings.
===== Final Report: =====
0 Errors and 2 Warnings were found


Updating interfaces to include sparse arrays

Description
Please include a short summary of the change.
This PR attempts to add support for scipy.arrays in cvxpy's interface for constant values.
This PR also deletes any code related to np.matrix since it is officially deprecated.
The steps I took were to clone the existing sparse_matrix_interface and replace any instance of sp.*_matrix with sp.*_array, using custom array creation APIs provided by SciPy (example: eye_array).
Note: I have a feeling like the interfaces code can have some updates. But I am still trying to figure out what exactly is being done. I will work on adding more tests to see if my minimal proof of concept truly works.
Issue link (if applicable):
#2660, #2635 (actually a WiP PR)
Type of change

[x] New feature (backwards compatible)
[ ] New feature (breaking API changes)
[ ] Bug fix
[ ] Other (Documentation, CI, ...)

Contribution checklist

[x] Add our license to new files.
[x] Check that your code adheres to our coding style.
[x] Write unittests.
[x] Run the unittests and check that they’re passing.
[x] Run the benchmarks to make sure your change doesn’t introduce a regression.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.William Zijie Zhang seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[release-1.10] Deflake sync timeout test

This is an automated cherry-pick of #32319

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio_release-1.10
64ec559c90f4a72d6b2654474d25347f976e3727
link
/test unit-tests_istio_release-1.10

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-security-multicluster-tests_istio_release-1.10
64ec559c90f4a72d6b2654474d25347f976e3727
link
/test integ-security-multicluster-tests_istio_release-1.10

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Protractor / E2E - How to address ngReact components?

Hello,
I've been working on a project with ngReact glueing angular, React and some more together.
A new challenge I've faced now is how is a good practice to address React Component display / input fields when writing the specs.
May I have your advice?
Regards,
Lourenzo Ferreira

@lourenzo I haven't done any E2E with ngReact, so I wouldn't know what to advise ? I have written unit tests for components using karma that was fairly straight forward.
Have you any experience setting up E2E tests you can share or any concrete issues ?

@kasperp , actually I decided to move out AngularJS and use react-router and reflux, and the QA team is creating the E2E tests with Selenium.
But I appreciate the help and the gateway that ngReact created to me, from Angular to React + *Flux

nice


ADO -> GitHub Migration Guidance

Docs/whitepaper helping customers understand the planning/preparation/migration process, and all the considerations they need to take into account.
Similar to the ADO On-Prem -> Cloud migration whitepaper: https://azure.microsoft.com/en-us/services/devops/migrate/
DRI: @dylan-smith
Batches

[ ] TBD

This is being covered by the public facing docs. IMO they can be improved alot, but closing this issue in favor of all the other docs issues we have.


[NFC] llvm-all-the-optionals!

This is phase-1 of switching from llvm::Optional to std::optional in the next rebranch. llvm::Optional was removed from upstream LLVM, so we need to migrate off rather soon. On Darwin, std::optional, and llvm::Optional have the same layout, so we don't need to be as concerned about ABI beyond the name mangling. llvm::Optional is only returned from one function in
getStandardTypeSubst(StringRef TypeName,
                     bool allowConcurrencyManglings);

It's the return value, so it should not impact the mangling of the function, and the layout is the same as std::optional, so it should be mostly okay. This function doesn't appear to have users, and the ABI was already broken 2 years ago for concurrency and no one seemed to notice so this should be "okay".
I'm doing the migration incrementally so that folks working on main can cherry-pick back to the release/5.9 branch. Once 5.9 is done and locked away, then we can go through and finish the replacement. Since None and Optional show up in contexts where they are not llvm::None and llvm::Optional, I'm preparing the work now by going through and removing the namespace unwrapping and making the llvm namespace explicit. This should make it fairly mechanical to go through and replace llvm::Optional with std::optional, and llvm::None with std::nullopt. It's also a change that can be brought onto the release/5.9 with minimal impact. This should be an NFC change.

@swift-ci please test

@swift-ci please test

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

@etcwilde asked me to force merge this to prevent some merge conflict train wrecks.


Drawing HTML on top of a UIView is possible

Q: Can I place HTML elements (buttons and so on) on top of active  elements?
R: Unfortunately not. The native UIView rendering the video stream is placed on top of the HTML view. :(

Is this really accurate?
Not sure if it'll work with a video layer, but for the Google Maps phonegap plugin drawing HTML on top of a native UIView is not a problem. Actually it works wonders...
Here's the trick.
So just passing by and putting this on your radar guys.
Hope it helps!

The aim of the cordova-plugin-iosrtc is to provide the WebRTC API without requiring custom stuff. If the video element is placed behind the Cordova HTML UIView and the background of the HTML view is not transparent, then the video would not be shown. How would that work if a <body> background is desired (for example a bitmap texture or a gradient)?
Said that, I may add an option to set this behavior per <video> element. Any suggestion? Perhaps a custom CSS field? a custom data-xxxx="true" attribute?

Not sure if it'll work with a video layer

Yes, sure.

Users can still set a desired backgound. Here's how the gmaps plugin solves the issue:
Map.setBackgroundColor()

Yes, sure.

That's great news then. Might be worth exploring more in depth this option...

How about?
z-index: -1;
El 3/8/2015 21:09, "Iñaki Baz Castillo"<EMAIL_ADDRESS>escribió:

The aim of the cordova-plugin-iosrtc is to provide the WebRTC API
without requiring custom stuff. If the video element is placed behind the
Cordova HTML UIView and the background of the HTML view is not
transparent, then the video would not be shown. How would that work if a
 background is desired (for example a bitmap texture or a gradient)?
Said that, I may add an option to set this behavior per  element.
Any suggestion? Perhaps a custom CSS field? a custom data-xxxx="true"
attribute?
—
Reply to this email directly or view it on GitHub
https://github.com/eface2face/cordova-plugin-iosrtc/issues/38#issuecomment-127374313
.

Using "z-index: -1" is what I consider a non appropriate usage of the CSS property. This is, setting "z-index: -1" may have very different results when in a web browser with native WebRTC support and when in an iOS Cordova device.
I would prefer having a custom data-xxxx attribute that would be ignored in the desktop browser or Android browser:
<video data-iosrtc-rear="true" autoplay></video>

Thoughts?

We are already using the z-index in a non-appropriate way to place the videos relative to other videos, so " may have very different results when in a web browser with native WebRTC" is already happening.

Also, that way we ensure that the app has to put a transparent background in order the video to be seen.. ;)

The issue targeting CSS to only iOS (or web or Android) has several solutions. Ionic uses classes like…
.platform-browser video_div { z-index: x; }
.platform-android video_div { z-index: y; }
.platform-ios video_div { z-index: z; }

and also allows you to use dynamic targeted CSS using platform and ng-class (this is for angular but can be done with vanilla js).
The main issue here is abstracting everything and letting the users easily draw custom controls. I think this could be a very valuable differentiation feature for iosrtc. I’ve thought that an interesting option could be providing default CSS controls with the plugin (like the HTML5 video tag does) and allow the users to enable/customise them via a JSON object and overriding CSS properties… something like
{
  "enableDefaultControls": true,
  "controls": {
    "startCall": true,
    "stopCall": true,
    "holdCall": true,
    "fullScreen": true,
    "switchCamera": false,
    "mute": true,
    etc...
  }
}

Then provide default CSS classes (.stopCall, .startCall, .fullScreen, etc) for both iOS and Android (xwalk):
SCSS:
.fullScreen {
	position: absolute;
	bottom: 0;
	float: right;

	/* PNG Icon */
	background-image: url('path/to/fullScreen.png');
	background-repeat: no-repeat;
	background-position: 25px 0px;

	/* Scalable Vector Icon */
	i {
		font-size: 25px;
		color: white;
		vertical-align: middle;
	}

	/* Platform Specifics */
	.platform-android {
		// Android Stuff
	}

	.platform-ios {
		// iOS Stuff
	}

	/*  Modify appearance depending on the resolution */
	@media (max-width: $screen-sm-max) {
  		display: none;
		etc…
  	}
}

The defaults could result in a badass UI like:

This way the users would have a straightforward out-of-the-box way to use controls on top of the video, and also a starting point with simple logic in case they want to go further customising their UI’s.
Just an idea...

I’ve thought that an interesting option could be providing default CSS controls with the plugin (like the HTML5 video tag does) and allow the users to enable/customise them via a JSON object and overriding CSS properties… [...]
Then provide default CSS classes (.stopCallButton, .startCallButton, .fullScreen, .fullScreenButton, etc) for both iOS and Android

There are no start/stop/hold/fullscreen "buttons" in the WebRTC spec, and there shouldn't be. That assumes "softphone vision" and WebRTC is beyond that.
I agree that rear video UIView is useful, but just that. It's up to the app/developer to place "control" buttons on top of the video view when needed.
Regarding the usage of CSS classes to tell the plugin whether to put the video UIView in front/rear, I don't like that approach. CSS classes are up to the application and they are supposed to provide custom style/design to the app. I'd rather custom data-xxxxx attributes as suggested above, as that is exactly the purpose of data-xxxx attributes: to add custom properties to the HTML element.

Said that, I will implement the feature this morning XD

There are no start/stop/hold/fullscreen "buttons" in the WebRTC spec, and there shouldn't be. That assumes "softphone vision" and WebRTC is beyond that.

Yeah I know, I was just trying to get around the UI problem and the question of placing HTML on top. My suggestion was just an idea for convenience.

Said that, I will implement the feature this morning XD

Fair enough... :grin:

Hi, first thanks for the wonderful work @ibc (and eface2face for supporting it), where's the BUY_ME_BEER.md in the repo? ;)
To shime on this issue (if I may):

The "rear" video UIView was the first thing I personally looked for when reading through the docs yesterday. A gazillion +1 from me on this one I believe it's a fundemental thing to have.

I feel everything-CSS that is otherwise for the purpose of demonstration (and you already have a an external demo repo) should remain outside the scope of this project. Sorry @Telemakhos, nice screenshot though :)

I personally perfer data-xxxx, but that's just taste imho. If you already rely on z-index:-1 kind-of-thingie then might just as well stick to that, both approaches are equally fine, as long as the functionality is there :)

Gload to see someone did actually nail project for a change :)

I feel everything-CSS that is otherwise for the purpose of demonstration (and you already have a an external demo repo) should remain outside the scope of this project. Sorry @Telemakhos, nice screenshot though :)

I didn't know about the demo app!... I guess that would be definitely a better option for the reference client with controls that I was suggesting.

https://github.com/eface2face/iOSRTCApp :)

Guys, I tried yesterday with zero success. Don't know why but I was not be able to place the video UIView behind the web view and make the web view transparent. I also had issues when using the zPosition attribute of the layer video layer.
I will try it again next week.

No worries. Are you trying to replicate the gmaps technique stacking the subviews programatically or are you trying to come up with a custom solution?

Let's say I must expend more time looking into phonegap-googlemaps-plugin...

This would be super useful. Right now I've had to manually hide the video view when using the phonertc plugin whenever I wanted to render anything over the video.

It would be really useful, but my time is limited. PR are welcome.

@ibc I could try to help on that issue. This is one of the few issues I have to fix before using your project. Did you actually create a branch and started working on it?
Thanks

I started working on it with no success. I will upload a branch on Monday and notify it here.
Thanks a lot.

I've upload a new branch "rear-video" to implement this feature. For now it has the same content as master since nothing that I tried did work so I've removed it (it was useless).
Notes and problems I remember:

My idea is that a negative z-index makes the video element UIView to be placed behind the HTML view (the Cordova UIView).
Stuff must be done in src/MediaStreamRenderer.swift.
Note that I use two UIView:

elementView: It has same size as its corresponding HTML <video> element.
videoView: It is placed over the elementView. Its purpose is to have a different size (which is cropped by the parent view) so CSS object-fit can be implemented (already done).

So we must work on the elementView leaving the videoView untouched.
In my attempts I was not able to place the elementView behind the Cordova view (it became invisible even if the HTML has no background color, not sure if something else must be done in the HTML UIView).
I expect issues due the usage of self.elementView.layer.zPosition = CGFloat(zIndex) since it seems that zPosition may alter how different layers are rendered. Currently if a negative z-index is set for the video element, the elementView just disappears.

Hope somebody can help on this :)
If so, please fork the "rear-video" branch and let work on it.

This is the last outstanding issue preventing us from being able to use this in production. If you need anything at all, I'm down to help.

How to help is explained in my previous comment.

Hi IBC, in previous projects, we implemented an RTMP (flash) Video component for iOS as a native video element (without Cordova though), which runs in the background of a WebView component.
With transparent body settings it was possible to use it in the background and it worked pretty well vor us.
We want to move away from flash now by using WebRTC for future projects. I don't know if I can help you with this, but all we had to do in our project was this:
- (void)viewDidLoad
{
  /*** other stuff ***/

// set WebView Transparent
 webView.opaque = NO;
 webView.backgroundColor = [UIColor clearColor];
}

In the HTML, i used
body {
  background-color: transparent
}

maybe a bit of off-topic, but can video with src = URL.createObjectURL(stream) be used with gl.texImage2D as here? seeing all these UIView refs I guess it can't, correct?

@derMani thanks a lot for pointing that out. I will check it soon.
@makc sorry, I don't know what that is about. Anyhow please feel free to comment about it in another issue.

@ibc Did you ever get the chance to look into derMani's workaround?

Not yet, sorry.

Maybe this can work:  Include a local HTTP server in the webRTC plugin to serve the video content to the video tag - this can hopefully allow both overlayed HTML elements along with full CSS styling control.     We used this technique when we created an RTMP plugin...

@acylum That would produce a really uncomfortable delay. Video player in browsers (including Safari) do cache.

This is in the works, so far the video successfully playing the background (HTML body must have transparent background), z-index support with negative support will be completed this week so that multiple videos (UIViews) are stacked on top of each other in order. Anyone that wishes to help testing this prior to sending a PR please feel free to PM me.

Sweet!  I'd like to test it.  Currently, my work around is to launch a wizviewmanager child window over the main view - so basically the webrtc video is "sandwiched" in-between.  You have to use the window messaging to allow button interaction from wizview back to your main view.

@acylum awesome thanks! just replied you :)

+1

+1 are good, but pull requests are even better :)

@ibc I have this working in my fork, see my last commit here: https://github.com/1N50MN14/cordova-plugin-iosrtc/commit/30ccdaa583b1f33f790bb8db3a5789fcdd8088e4 I'm not able to send a PR just yet, but feel free to take it for a spin in the meantime

Great! Let me handle that on next week.

Take your time

Hey guys, just wanted to know if you have an update on this.

@derMani I submitted a PR for this one, waiting for ibc to look into it and eventually approve it, otherwise you can use my fork for now.

Guys, I won't be able to merge the PR until the second week of the new year.

@ibc No worries, Merry Christmas! ;)

Same! :)

Happy new year everyone! @1N50MN14 your PR works superb :+1:  Thx :)

@derMani  Du bist willkommen und Frohes Neues Jahr :)

Glad to see this is finally coming to fruition. Great job @1N50MN14 . I guess next goal is supporting the trick on both UIWebView and the new WKWebView...
https://github.com/eface2face/cordova-plugin-iosrtc/issues/90

@Telemakhos Yup I can make that work once @saghul submits his PR for WKWebView support

I used @1N50MN14 branch but the video doesn't work.
@ibc there is any fix planned for this version ?

Hi, I'm sorry I couldn't properly check the status of the PR #98. I commented some issues regarding the PR (for example: /lib/libWebRTC-LATEST-Universal-Release.a can NOT be removed from the repo) and I'm not sure whether that PR handles all the required use cases without breaking working code (in fact I've read some users reporting wrong behavior).
So, if somebody can spend time to test #98 and provide proper conclusions I will merge it.

Sorry to bother you again @ibc, but are there any news regarding this issue?

Not directly related to this repo, but a plugin I work on just released support for rendering the camera preview layer behind a transparent UIWebView or WKWebView: bitpay/cordova-plugin-qrscanner
It's just a simple plugin, but might help if someone is trying to implement the same thing here: https://github.com/bitpay/cordova-plugin-qrscanner/blob/master/src/ios/QRScanner.swift

Hi @ibc I join m'y voici to @xpluscal in order to have an idea when it can be fixed.
Thx.

I think the status regarding this PR is already explained in comments above, but I'll try to summarize here:

The author has already said that he's working in his own project so it's expected that he's no longer maintaining the code in this PR.
There are also comments from some users that tested the PR and they reported some issues in some cases.
I don't have time to test all the required use-cases nor to look at how other projects implement a similar feature.

So, if someone wants to contribute, take this PR, apply it into a fork of the official master branch of the plugin, check all the use-cases and document them, then I'll be very happy accepting a new PR.

Just upgraded to 3.0.0 of the Plugin and the PR still works for me.
The steps are basically the same as before (and suggest in the PR)

Hide Video Controls for video element in Javascript
Edit PluginMediaStreamRenderer.swift to make sure the webview is transparent.

I think I could provide a small example project, if you wish.
@ibc What exactly are "all use cases" ? :-)
I just created a web page, made sure everything had the correct CSS and after that I was able to see the video through my transparent elements.
Maybe that's the problem for some people here, you have to make everything transparent on your page, if you want to look through it. It's easy to forget about a few elements, which might still have a background-color.

Actually is not working for me.
Using 3.0.0;
Having all transparant. (verified several times).
body {
background-color: transparent;
}
html {
background-color: transparent;
}
.pane, .view {
background-color: transparent;
}
[nav-view-transition="ios"][nav-view-direction="forward"], [nav-view-transition="ios"][nav-view-direction="back"] {
background-color: transparent;
}

#myMiniVideo {
width:30%;
height:30%;
position:absolute;
right:0;
bottom:0;
z-index:0;

}
#videoscreen .video_controls {
position:absolute;
right:50px;
bottom:50px;
z-index:15;

}
Video overlays the .video_controls... :(
no matter what z-index the myMiniVideo have. When setting -1 z-index to myMiniVideo, the video is not visible.
Changes in PluginMediaStreamRenderer.swift :
// The browser HTML view.
self.webView = webView
self.eventListener = eventListener
self.webView.opaque = false
self.webView.backgroundColor = UIColor.clearColor()
// The video element view.
self.elementView = UIView()
// The effective video view in which the the video stream is shown.
// It's placed over the elementView.
self.videoView = RTCEAGLVideoView()
    self.webView.superview?.addSubview(self.elementView)

    self.elementView.userInteractionEnabled = false
    self.elementView.hidden = true
    self.elementView.backgroundColor = UIColor.clearColor()
    self.elementView.addSubview(self.videoView)
    self.elementView.layer.masksToBounds = true

    self.videoView.userInteractionEnabled = false

@derMani

What exactly are "all use cases" ? :-)
I just created a web page, made sure everything had the correct CSS and after that I was able to see the video through my transparent elements.

I mean how it works. Which values do z-index accept and what happens if z-index is negative. And what happens if a <video> is placed on top of another <video> with different z-index, etc.
To be clear: I don't have an iOS device so I won't check all the cases, that's why I need complete documentation regarding how this PR works.
BTW as you can see, a comment after your says that it fails. If I accept this PR as it is, I'll become responsible of such a problem.

Done in #179

So...how can we, DEFINITELY, place other HTML elements on top of the UIView? I am currently trying to redraw it onto a HTML canvas to no avail understandably so maybe because the primary HTML5 video is not receiving the HTML video stream. So please...how can we place other HTML items on top of the view?

I can't seem to be able to redraw the stream from the video element to a HTML5 canvas element. Any ideas why?

Is it possible to hide the video tag from view?


Avoid out-of-bounds read

Fixes CVE 2017-3735
Reviewed-by: Kurt Roeckx<EMAIL_ADDRESS>

Merged to all three, closing.


select system.public.tables will return error

Describe this problem
SELECT
    `timestamp`,
    `catalog`,
    `schema`,
    `table_name`,
    `engine`
FROM
    system.public.tables
WHERE
    table_name = '01_system_table1';

Currently, execute SQL above will cause an error

Failed to execute query, err: Server(ServerError { code: 500, msg: "Failed to execute interpreter, query: SELECT     `timestamp`,     `catalog`,     `schema`,     `table_name`,     `engine` FROM     system.public.tables WHERE     table_name = '01_system_table1';. Caused by: Failed to execute select, err:Failed to execute logical plan, err:Failed to collect record batch stream, err:Stream error, msg:Convert from arrow record batch, err:External error: Execution error: Failed to read table, partition:3, err:Failed to scan table, table:tables, err:Failed to append datum, err:Data type conflict, expect:UInt64, given:String." })

Steps to reproduce
Execute SQL above

Expected behavior
No error

Additional Information
https://github.com/CeresDB/ceresdb/blob/334bc6ce13aac2e72a0771419b4aefe2164255e9/tests/cases/01_system/system_tables.result#L11

ref #154

hello, can assign me?


[DPR2-000] Fix security issue

The overnight security check was flagging an issue with one of the spring dependencies.
To fix this, I upgraded the HMPPS Kotlin plugin, but it failed due to a dependency on Java 21.
To fix this, I upgraded the Java version, but it failed due to not being supported by the Gradle plugin.
To fix this, I upgraded the Gradle plugin version in IDEA and the wrapper, but this would fail in CircleCI due to the image version.
To fix this, I  upgraded the image to the correct Java version in the CircleCI builds.
I also implemented use of the HMPPS starter dependency (like the current template version). No issues.

Nice work upgrading Java and fixing this security warning.
Maybe add these changes to the Changelog as a new major release?


[APIM 2.5.0] API store walkthrough doesn't work properly

Description:
APIM store walkthrough get stuck without going to the swagger console. Image is attached indicating the last step before freezing.

Suggested Labels:

Suggested Assignees:

Affected Product Version:
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

API walkthroughs / guided tours are not available in 3.x series, Feature implementation for API developer portal walkthroughs are tracked though this #7787 issue, Will close this issue and address this when implementing the new feature on next releases.


Metrics related to HTTP and transport connections

Looks like with the current version, there is no way to see what is the current open connections on port 9200 and 9300. These metrics are very important when analysing issues specially with the sudden increase in load or number of connections.
Is it possible to include these metrics? or I'm missing these metrics somewhere in the list.
Thanks in advance!

#314

The http_total_open metrics would be a great addition for us.


transforms

FlowRouterSSR now fails when I try to access a helper function on a Mongo document. the helper was added using the dburles:collection-helpers package, which itself uses transforms to add the functions, so it seems that FlowRouterSSR no longer applies transforms.
This use to work. I can't narrow it down to the version of FlowRouterSSR that broke it due to the sheer number of code changes between my working 1.2 and 1.3-based versions. (It's taken me a couple of months to get my app working on Meteor 1.3, mainly since I've had to wait for several bug fixes to be addressed).
Tim

@timothyarmes We're having the same issue, realise we posted a duplicate in #592. I also posted a workaround there. You want to close this and we'll track it in #592, or should I close it and we can track the issue here? You were here first! :-)


添加繁体中文翻译

添加繁体中文翻译
Update tw.json

Sorry, I completely missed this. Thank you for the contribution!


bugfix: bound subtyping depth to avoid reliance on unpredictable stack overflow

The idea is to fail fast and deterministically, especially in VSCode extension. OCaml stack overflow detection is unreliable and sometimes issues OOM, sometimes stack overflow.
Fixes #3057.

[x] turn failure into compiler error

LGTM, but can you check whether it catches #3057?

Yeah, it does. Added test.


please turn on travis CI for node.js 8

The current stable version of node.js is 8.11.1 - it could be worth updating the .travis.yml to test on node-js 8 ?

Node 8 and 10 were added to the Linux and Windows matrix in https://github.com/js-cli/js-liftoff/commit/7853fd33d6f97c2abb5f81b7197736f0e0a1d971
OSX tests were also enabled in that commit.


Can't install Ruby 2.4.2 on my machine on macOS Sierra version 10.12.6 (16G29)

My machine version: macOS Sierra 10.12.6 (16G29).
I had uninstalled openssl, ruby-build properly then reinstalled those and I'm still getting the same error.
openssl version:
12:40 $ brew info openssl
openssl: stable 1.0.2l (bottled) [keg-only]
SSL/TLS cryptography library

ruby-build version:
12:40 $ brew info ruby-build
ruby-build: stable 20170914, HEAD
Install various Ruby versions and implementations
https://github.com/rbenv/ruby-build
/usr/local/Cellar/ruby-build/20170914 (363 files, 187.9KB) *
  Built from source on 2017-10-04 at 12:24:54
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ruby-build.rb
==> Dependencies
Recommended: autoconf ✔, pkg-config ✔, openssl ✔

Actual error:
12:32 $ rbenv install 2.4.2
ruby-build: use openssl from homebrew
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
ruby-build: use readline from homebrew

BUILD FAILED (OS X 10.12.6 using ruby-build 20170914)

Inspect or clean up the working tree at /var/folders/d3/47n9tc717v90xcxzwdyctrhm0000gn/T/ruby-build.20171004123302.53617
Results logged to /var/folders/d3/47n9tc717v90xcxzwdyctrhm0000gn/T/ruby-build.20171004123302.53617.log

Last 10 log lines:
ossl_ssl.c:2612:21: error: invalid application of 'sizeof' to an incomplete type 'const struct (anonymous struct at ossl_ssl.c:52:14) []'
    for (i = 0; i < numberof(ossl_ssl_method_tab); i++) {
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ossl_ssl.c:14:35: note: expanded from macro 'numberof'
#define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
                                  ^~~~~
62 warnings and 9 errors generated.
make[2]: *** [ossl_ssl.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2

@mechanicles Remember that Homebrew's openssl is keg only which means that the headers and library are likely not provided to rbenv and subsequently system openssl would be used.
Check out the steps recommended when you install openssl (or run brew info), You should be able to pass the LDFLAGS and CPPFLAGS to rbenv.
$ brew info openssl
This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have this software first in your PATH run:
  echo 'set -g fish_user_paths "/usr/local/opt/openssl/bin" $fish_user_paths' >> ~/.config/fish/config.fish

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

The detection logic is at https://github.com/rbenv/ruby-build/blob/master/bin/ruby-build#L987, which checks if the system openssl is "broken" (version 0.9.8) and you are on a Mac.
Would probably be good to include the system version (output of the following commands) to help debug the problem:
$ /usr/bin/openssl version
OpenSSL 0.9.8zh 14 Jan 2016

@kylef My system openssl version
14:01 $ /usr/bin/openssl version
OpenSSL 0.9.8zh 14 Jan 2016

@kylef Thanks for your help,
After adding these settings to my /.bash_profile file, I was able to install Ruby 2.4.2.
export PATH=$(brew --prefix)/opt/openssl/bin:$PATH
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig

I am using Fish Shell is there a way to rewrite these two lines for config.fish
export PATH=$(brew --prefix)/opt/openssl/bin:$PATH
export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig

Thanks @kylef & @mechanicles
After adding these settings to my ~/.config/fish/config.fish file, I was able to install Ruby 2.4.2.
set -g fish_user_paths "/usr/local/opt/openssl/bin" $fish_user_paths
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

@mechanicles suggestion worked in .zsrhrc


Separate loading of application configurations and secrets into more than one file

The goal of this request is to have the loading of basic configurations and secrets split up to provide a separation of concerns.
An example usage where this would be required would be running Trino Gateway in Kubernetes using the provided Helm chart. Currently, all of the configurations/secrets are merged and mounted to the container as a single YAML file. In order to follow this strategy that means:

In a secured K8s cluster, you are unable to introspect the configuration being mounted to the pod unless you have elevated permissions to view Secret objects. Usually, ConfigMap resources are R/O to majority of users.
Your deployment strategy requires elevated permissions to view Secret objects so that a lookup can be done on pre-existing secrets which will be merged into the standalone secret

A widely used deployment tool ArgoCD does not support the lookup strategy.

Opening this issue to spur conversations on better strategies for configuring the application.
An initial suggestion could be leveraging Jackson's ObjectMapper with YAMLFactory and the readerForUpdating functionality. This could support loading of multiple configurations by the following strategy:

Update the application to allow > 1 configuration file paths through arguments.
Leverage Jackson's ObjectMapper with YAMLFactory and initialize/update the application config using the mapper's readerForUpdating method.

I'm not 100% sure how Trino is handling this in their Kubernetes deployment but it would be interesting to see if we can follow suit.

We currently have it all in one to keep it simple. Once the airlift refactor is in we plan to work with Trino and airlift projects to figure out good approach. Our need is kinda different since we use yaml for nested configs quite a bit and Trino/airlift currently dont (yet). So maybe we do something like

config.properties like in trino for global config
log.properties for logging package config
jvm.config for JVM start configuration
maybe node.properties but ideally not since all TGW nodes should be the same and stateless
some way to get more yaml config in
some better way for secrets .. similar to how in trino we can use env.* and maybe more stuff

We can discuss more in the next sync for starters

I think env variable is a good way.
We can use env: secretKeyRef to set env. variable from secret in K8S YAML.
After migrate to Airlift, settings in httpConfig section are allowed to use env variable (impl. by Airlift).
We might want to add the same function to other sections.
httpConfig:
  http-server.https.keystore.path: cert.jks
  http-server.https.keystore.key: ${ENV:KEYSTORE_KEY}

Also, the plain text password in presetUsers section should be gone.
We could use something similar to password file in Trino.
If we decide to pull in io.trino.spi.*, we could reuse FileAuthenticator from Trino.

To revisit this topic now that Airlift is in, would the easiest path forward be to leverage the env variables as suggested by star?
My preference would be volume mounted files as filesystem ACLs can limit access to the secret, whereas any user with R/O access to the container would be able to output the environment variables. But it feels like environment variables would be free?

whereas any user with R/O access to the container would be able to output the environment variables.

Is it common to allow several users to access container?

With #483 secrets can be set using ${ENV:PASSWORD}. I think it's common practice to pass secrets using environment variables, which is supported by K8S by default. https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data

whereas any user with R/O access to the container would be able to output the environment variables.

Is it common to allow several users to access container?

Depends on the org and environment I suppose, as an example we lock down our production and pre-production type environments to ensure no secrets are accessible. For some levels of folks we permit R/O access to both servers themselves and pods but the latter is less frequent and on a case by case basis (and environment by environment). If not levering the file ACLs these people would be able to grab the secrets by printing the env.
Or put differently, random unexpected access by a user has 1 more hurdle to jump prior to having secret access.

With #483 secrets can be set using ${ENV:PASSWORD}. I think it's common practice to pass secrets using environment variables, which is supported by K8S by default. https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data

Agreed that it’s the simplest path forward and any security improvements could be a separate ask. This way there becomes alignment with Trino as well


Warning: file_exists(): open_basedir restriction in effect. File(/tmp/Google_Client/xx/xxx...) is not within the allowed path(s)

I'm developing a web application in php and i downloaded the API from here and followed the guides but when i try to run it it gave me this error:
Warning: file_exists(): open_basedir restriction in effect. File(/tmp/Google_Client/9d/9dac732490e227eb6b11f1cbf0e36d47) is not within the allowed path(s): (/www) in /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php on line 52 Warning: is_dir(): open_basedir restriction in effect. File(/tmp/Google_Client/9d) is not within the allowed path(s): (/www) in /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php on line 148 Warning: mkdir(): open_basedir restriction in effect. File(/tmp/Google_Client) is not within the allowed path(s): (/www) in /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php on line 149 Fatal error: Uncaught exception 'Google_Cache_Exception' with message 'Could not create storage directory: /tmp/Google_Client/9d' in /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php:154 Stack trace: #0 /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php(139): Google_Cache_File->getCacheDir('ba077eabce470c1...', true) #1 /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php(134): Google_Cache_File->getCacheFile('ba077eabce470c1...', true) #2 /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php(95): Google_Cache_File->getWriteableCacheFile('ba077eabce470c1...') #3 /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Auth/OAuth2.php(322): Google_Cache_File->set('ba077eabce470c1...', '{"access_token"...') #4 /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/index in /www/MW_qPRcycRIG/massimopiccioni.it/Test/AnalyticsAPITest/google-api-php-client/src/Google/Cache/File.php on line 154
Can anyone help me?
http://www.massimopiccioni.it/Test/AnalyticsAPITest/

The 7th parameter to Google_Auth_AssertionCredentials is $useCache. This defaults to true. Try setting it to false, and the library will stop writing to a file.
I imagine this is because you're running in a shared hosting environment, and the php.ini setting open_basedir is set, and the cache file is attempting to write outside the allowed path.  If you have access, you could also just disable open_basedir in your php.ini so that it is not in effect.

I got (nearly) the same problem.
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/tmp/Google_Client/19/19431c28c9844f253b7493fd88125111) is not within the allowed path(s): (/users/dmanstrator/www:/users/_temp/dmanstrator) in /users/dmanstrator/www/vendor/google/apiclient/src/Google/Cache/File.php on line 45
I went into the AssertionCredentials.php and changed the $useCache variable to be false as default (    $this->useCache = false;) but it doesn't change a thing.
I can't access my php.ini because I get hosted by bplaced.net, any tips for me?
Thanks in advance.


docker watcher - dependent on publicly exposed ports to the parent host.

The current implementation is quite restricting. For example using synapse within a docker container, it uses the host IP within @discovery["servers"].
This means you need to publicly expose all containers in the parent host, rather than just using the private ips of the containers themselves. So rather than having discovery, you end up with a fixed mapping based on ports.
When not using publicly exposed ports you end up with this invalid configuration, with a broken port.
	server <IP_ADDRESS>:_basket-service <IP_ADDRESS>: cookie <IP_ADDRESS>:_basket-service check inter 2s rise 3 fall 2

        "Ports": {
            "8080/tcp": null,
            "8081/tcp": null
        }

Error with a little debugging...
[ root@52cc33d73359:~ ]$ /usr/bin/ruby1.9.1 /usr/local/bin/synapse -c /synapse.conf.json
I, [2015-01-25T18:22:20.776251 #1971]  INFO -- Synapse::Synapse: synapse: starting...
I, [2015-01-25T18:22:20.781601 #1971]  INFO -- Synapse::Synapse: synapse: regenerating haproxy config
I, [2015-01-25T18:22:20.781990 #1971]  INFO -- Synapse::DnsWatcher: synapse: discovered 1 backends for service http-webservices-member
W, [2015-01-25T18:22:20.782539 #1971]  WARN -- Synapse::Haproxy: synapse: no backends found for watcher http-webservices-basket
I, [2015-01-25T18:22:20.783647 #1971]  INFO -- Synapse::Haproxy: synapse: could not open haproxy config file at /etc/haproxy/haproxy.cfg
Docker::Container { :id => b8589347f04c9e3a811bf78f49149d645cba9b48afccdd52f64308e039ca3106, :connection => Docker::Connection { :url => http://<IP_ADDRESS>:4243, :options => {} } }
8080
{"8080"=>"8080", "8081"=>""}
{"8080"=>"", "8081"=>""}
[{"name"=>"basket-service", "host"=>"<IP_ADDRESS>", "port"=>"8080"},
 {"name"=>"basket-service", "host"=>"<IP_ADDRESS>", "port"=>""}]
I, [2015-01-25T18:22:20.819391 #1971]  INFO -- Synapse::DockerWatcher: synapse: discovered 2 backends for service http-webservices-basket
I, [2015-01-25T18:22:20.821997 #1971]  INFO -- Synapse::Haproxy: synapse: restarted haproxy
I, [2015-01-25T18:22:20.823559 #1971]  INFO -- Synapse::Synapse: synapse: regenerating haproxy config
[ALERT] 024/182222 (2005) : parsing [/etc/haproxy/haproxy.cfg:107] : server <IP_ADDRESS>:_basket-service has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 024/182222 (2005) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 024/182222 (2005) : Fatal errors found in configuration.
E, [2015-01-25T18:22:22.844902 #1971] ERROR -- Synapse::Synapse: synapse: encountered unexpected exception #<RuntimeError: failed to reload haproxy via service haproxy reload:  * Reloading haproxy haproxy
   ...fail!> in main thread
W, [2015-01-25T18:22:22.845050 #1971]  WARN -- Synapse::Synapse: synapse: exiting; sending stop signal to all watchers
I, [2015-01-25T18:22:22.845184 #1971]  INFO -- Synapse::DockerWatcher: synapse: stopping watcher http-webservices-basket using default stop handler
I, [2015-01-25T18:22:22.845321 #1971]  INFO -- Synapse::DnsWatcher: synapse: stopping watcher http-webservices-member using default stop handler
/var/lib/gems/1.9.1/gems/synapse-0.11.1/lib/synapse/haproxy.rb:780:in `restart': failed to reload haproxy via service haproxy reload:  * Reloading haproxy haproxy (RuntimeError)
   ...fail!
	from /var/lib/gems/1.9.1/gems/synapse-0.11.1/lib/synapse/haproxy.rb:550:in `update_config'
	from /var/lib/gems/1.9.1/gems/synapse-0.11.1/lib/synapse.rb:51:in `block in run'
	from /var/lib/gems/1.9.1/gems/synapse-0.11.1/lib/synapse.rb:43:in `loop'
	from /var/lib/gems/1.9.1/gems/synapse-0.11.1/lib/synapse.rb:43:in `run'
	from /var/lib/gems/1.9.1/gems/synapse-0.11.1/bin/synapse:60:in `<top (required)>'
	from /usr/local/bin/synapse:23:in `load'
	from /usr/local/bin/synapse:23:in `<main>'

+1
exposing ports to the host should be unnecessary


[Suggestion] Port features from HEC

In-game mechanics:

[ ] Gel effects on enemies/entities - bridges, cubes and custom enemies alike;
[ ] More indicator lights - Possibly include an easy-to-customize entity for toggleable textures;
[ ] More logic gates.

Customization:

[ ] Customizable variables;
[ ] Multiple skins for entities - Include input text for custom texture suffix per entity placement.;
[ ] Custom sound effects for entities/enemies, per mappack.

Better Editor improvements:

[ ] Tile scrolling with middle-click-and-drag;
[ ] Entity/enemies placement visualization in real size;
[ ] Tile groups saving;
[ ] Renaming objects.

Features that might be implemented, but are unlikely (read: don't expect these):

[ ] Commanders and Environmental triggers as animations;
[ ] Region entities (collider and underwater);
[ ] Pixel collision for tiles;
[ ] Custom overlays.

Does this include laser relays?

Laser relays are just retextured laser catchers, which will already be possible with the Texture Suffix option

A mod I made for Mari0 1.6 that, besides trying to mimick some SE features, also added some new ones: http://forum.stabyourself.net/viewtopic.php?f=13&t=3477

Thanks.


Fixed issues with certain tooltips being failed to display

and in some edge cases crashing the game. Example: Using Alchemistry and JEI integrations, if you create potassium cyanide in a chemical dissolver and hover over it in that GUI, the client crashed.
How to reproduce: Install Alchemistry (plus dependencies Chem Lib and A Lib) and JEI integrations, put a pufferfish in a chemical dissolver and hover over the results.
This change has been tested and fixes that.

Already fixed, thanks though! 😃


Simple find() without delimiters for recursive rm

Fixes #273
Fixes #279
(needs rerecording)
This method is efficient and works in general. In the case that you recursive-delete a directory (i.e., within a bucket) with content, but where a key of the same name as the directory does not exist, you will get an exception for that path (but process succeeds)

I would appreciate trials here, before bothering rerecording the tests

Quick test regarding #279 : It manages to work way faster then it used to be (large recursive listing was very slow before). However it still fails to delete:

it first deletes everything
then it either raises an exception OSError: {"Invalid bucket name: 'gs:'"} if you passed in something prepended with 'gs://' or OSError: {'No such object: <fullname you passed in>'}

The "no such object" is mentioned in the description above. I wonder if we should silently ignore these, since the "root" of the delete tree may or may not exist as a key.
https://github.com/intake/filesystem_spec/pull/391 will solve the "gs://" thing

Not sure how it supposed to work. Remove usually works unless the specified inputs don't exists. So I think as long as the input paths exists every other not found should be catched?

Right, but "exists" is a little subtle a meaning here. If we find any paths, then the root path exists, but doesn't necessarily need to be deleted (because if it only an implied prefix, it disappears when all the contents are gone).

What I mean: as long as the paths exists before deleting anything it's fine. Any "not found" during deleting is a success as the goal is successfull

OK, that makes sense! So raise NotFound in the case that no paths were retrieved, ignore any no-such errors. I'll make that happen.

That makes sense to me at least, in the case the app doesn't care if the path existed before they can always  catch that initial not found.

Will this also work for other recursive listings?

It will affect things that call find. Note that the code here does not populate the directory cache, so if you then go to open/list/etc on the files, you will not have gained anything.

In my case that's actually good. I use it currently in combination with pyspark, so the cache won't be up-to-date anyway

@pvanderlinden , would you mind testing again?

@martindurant this works good when passing in without protocol, expand_path will add the original path with protocol to the list though, which causes the error (line 737 in core.py).
Also, it doesn't give an error when the path doesn't exist before delete, although that is fine by me.

The expand_path issue is fixed in fsspec master

@mariusvniekerk , do you think this should be ported to s3fs too?

The expand_path issue is fixed in fsspec master

Sorry, I missed that. It works fine with master indeed.

Yeah it would be handy in s3fs.


CARP link from dashboard not valid in 23.1

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
After upgrade to 23.1 the CARP link from the dahboard does not work anymore. I get a page not found for /carp_status.php
I used that link right before upgrading the opnsense master.
To Reproduce
Steps to reproduce the behavior:

Go to Lobby, Dashboard
Add CARP widget
Click on CARP link
Page not found

Expected behavior
I get to the CARP status page and enable/disable maintenance mode
Describe alternatives you considered
I can do what I want via interfaces/virtual ips/status
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 23.1 (amd64, OpenSSL).
AMD GX-412TC SOC (4 cores, 4 threads)
Network Intel® I210-AT

Thanks! If @AdSchellevis doesn’t steal this I’ll do it on Monday.

I already did, yesterday :) https://github.com/opnsense/core/commit/ed12696f122a65241afb5f87d4f3dcc450eb10f7

👍

Perfect, thanks! :)


mknichel/dedupe strings in module layers

What kind of change does this PR introduce?
This pull request adds a layer of caching for strings that could be duplicated in modules across multiple layers. This change was motivated by an observation that there were many strings in the heap duplicated in a Next.js application that uses App Router, which uses layers in the implementation. After this pull request, these strings were deduplicated saving the memory for any file that appears in multiple layers.
The cache here is associated with the compilation in a weak map so it can be garbage collected after the compilation finishes.
There should be no visible behavior difference after this pull request.
Did you add tests for your changes?
New tests were not added since the behavior should be covered by existing integration tests that use layers.
Does this PR introduce a breaking change?
No, this PR is not a breaking change. No user visible behavior is affected.
What needs to be documented once your changes are merged?
No changes would need to be documented after this pull request. This pull request only affects internal implementation details.

FYI @alexander-akait, @sokra and I met to discuss a path forward. Instead of this approach, we want to add a generic string and Buffer interning logic inside https://github.com/webpack/webpack-sources. In Webpack, we can enable + disable interning via an experiment and at the start and end of a compilation so that users can opt in to this behavior and no memory is leaked beyond the compilation. I'm going to start prototyping that solution. @sokra will be unavailable starting in 2 days, so let me know if this plans sounds good to you and whether you might be able to review that while @sokra is OOO.


Non-printables..

Non-printable characters..
I was thinking of creating a lookup table of aliases e.g:
key_aliases = {
    '\r': 0x24,
    '\t': 0x30,
    '\n': 0x24,
    'return' : 0x24,
    'tab' : 0x30,
    'space' : 0x31,
    'delete' : 0x33,
    'escape' : 0x35,
    'command' : 0x37,
    'shift' : 0x38,
    'capslock' : 0x39,
    'option' : 0x3A,
    'alternate' : 0x3A,
    'control' : 0x3B,
    'rightshift' : 0x3C,
    'rightoption' : 0x3D,
    'rightcontrol' : 0x3E,
    'function' : 0x3F,
    'home': 0x73,

which could then be used in tostring..
my thought though is whether this would work across different keyboard layouts.i.e. is it only the main letter keys that are fixed? Do you know at all?
Also - why is it pykeycode always gives 65535  for (some?) shifted forms e.g:
>>> keycode.tokeycode('!')
65535
>>> keycode.tokeycode('^')
65535

thanks again
will

Hey @abarnert,
Not sure if you still care too much about this project, but I'm looking for some guidance as I'm planning on using it as a base for a fix on a project called Plover. This issue might not be the best place to have this discussion, but here you get very close to what I need.
So, I'll give you the brief. I'm working on Plover, stenography software. Part of the stenography process is emulating a keyboard, so that given a string, like "Katz are awesome!" , we'll get the simulated keypresses no matter the user's layout. Right now, we just send key code 0, and set the Unicode string. This proves to be problematic on software that ignores the Unicode string, like VNC.
What I need is the ability to read in the user's layout, then be able to process a string, and if the character is available to write on the layout, then output it (I'm assuming using only key codes, no Unicode string), and if the letter is not on the current layout (other locales, or special symbols like 🐱), then fall back to the Unicode string method.
I'm all right with doing the work, just wondering if there's a place I can start. I realize you guys had a lot of issues with the extended key presses, I'm trying to consider at what point to cut off and just fall back to Unicode.
Any guidance would be thoroughly appreciated, cheers,
Ted

Hm, actually looking into your code on PyUserInput, I think I could work off of that branch. The only bit that concerns me is the use of Carbon APIs instead of Cocoa. That, and I guess I'd try to port it over to PyObjc in the process.

Hey @morinted - sorry for the lack of interest from me.. I have to admit its taking me a little while to get my head around that code again! @abarnert was the true author - I simply bundled it together for https://github.com/SavinaRoja/PyUserInput  It's not the nicest but its the best I have found to do this in python. (Doesn't help that Pythons unicode handling is a headache..).. Ive actually since wondered about other alternatives e.g. NodeJS but not sure. Will watch how your plover stuff comes along :)

Yeah, the narrow unicode in Python 2.7 kind of sucks, but luckily we've managed to get around most of these issues. I played with the code and got something nice going, now in a pull request, so thanks for the code. It works a lot better than just setting the string on every stroke, so thanks, guys!

@willwade @morinted : I haven't looked at this code in a couple years (since Will opened this bug), but…

What I need is the ability to read in the user's layout, then be able to process a string, and if the character is available to write on the layout, then output it (I'm assuming using only key codes, no Unicode string), and if the letter is not on the current layout (other locales, or special symbols like 🐱), then fall back to the Unicode string method.

That's exactly what the layout-parsing code does. IIRC, I never merged that to master (because I never wrote the code to use the dict that it creates, but I think Will used it somewhere else?), but it's checked in on some other branch?
Anyway, layout.mapping[ch] should be a sequence of (keycode, keymod) pairs for any key that can be typed with the current keyboard layout, and a KeyError otherwise.  :)

The only bit that concerns me is the use of Carbon APIs instead of Cocoa.

IIRC, it's only using Text Input Services from Carbon, which (a) is still supported, and available in 64-bit/El Capitan land (and even has Swift bindings), and (b) has no more modern equivalent (at least in public userland).

That, and I guess I'd try to port it over to PyObjc in the process.

I'm pretty sure the original person who wanted this 4 years ago wanted a pure C extension with no dependencies. The stuff I added later for Will uses PyObjC, but still only partly. Most of what we're accessing is Carbon/CoreFoundation stuff—and, while PyObjC has nice wrappers for parts of CoreFoundation, they don't include most of the stuff I'm calling here. The right thing to do is to write your own PyObjC wrappers for those bits (and submit them upstream to Ronald Oussoren), but I was lazy and did it the quick&dirty way instead.

Doesn't help that Pythons unicode handling is a headache.

There's a dead-easy solution there: stop using Python 2. Python 3's Unicode handling is great (at least in 3.3 and later, but I doubt 3.2 is a problem for anyone nowadays).

Ive actually since wondered about other alternatives e.g. NodeJS but not sure.

JavaScript defines strings as sequences of UTF-16 code units, not code points or characters or anything else sensible. So Node.JS is effectively stuck with the equivalent of narrow-build Python 2 forever, and all the headaches you're trying to escape will never go away, while in Python they're already solved.
Also, of course, porting from Python 2 to Python 3 is a much smaller job than porting to Node, and doesn't require you to use a language with horrible syntax. And NodObjC is nowhere near as mature as PyObjC—last I checked, there was no way to use it with Cocoa classes with missing/incomplete/incorrect BridgeSupport, much less with CoreFoundation types, while PyObjC not only gives you hooks for such types, but comes with 90% of what you want pre-hooked (although, unfortunately, this project falls in the remaining 10%).

Thanks Andrew. I did get the code working for my use case in the PR I
linked, and I really appreciate the detailed explanation, especially about
the APIs. The code has been working very well as I used it for all my text
output today. Is there any particular way you'd like attribution for your
code if it lands in Plover?
On Feb 24, 2016 9:18 PM, "Andrew Barnert"<EMAIL_ADDRESS>wrote:

@willwade https://github.com/willwade @morinted
https://github.com/morinted : I haven't looked at this code in a couple
years (since Will opened this bug), but…
What I need is the ability to read in the user's layout, then be able to
process a string, and if the character is available to write on the layout,
then output it (I'm assuming using only key codes, no Unicode string), and
if the letter is not on the current layout (other locales, or special
symbols like 🐱), then fall back to the Unicode string method.
That's exactly what the layout-parsing code does. IIRC, I never merged
that to master (because I never wrote the code to use the dict that it
creates, but I think Will used it somewhere else?), but it's checked in on
some other branch?
Anyway, layout.mapping[ch] should be a sequence of (keycode, keymod)
pairs for any key that can be typed with the current keyboard layout, and a
KeyError otherwise.  :)
The only bit that concerns me is the use of Carbon APIs instead of Cocoa.
IIRC, it's only using Text Input Services from Carbon, which (a) is still
supported, and available in 64-bit/El Capitan land (and even has Swift
bindings), and (b) has no more modern equivalent (at least in public
userland).
That, and I guess I'd try to port it over to PyObjc in the process.
I'm pretty sure the original person who wanted this 4 years ago wanted a
pure C extension with no dependencies. The stuff I added later for Will
uses PyObjC, but still only partly. Most of what we're accessing is
Carbon/CoreFoundation stuff—and, while PyObjC has nice wrappers for parts
of CoreFoundation, they don't include most of the stuff I'm calling here.
The right thing to do is to write your own PyObjC wrappers for those bits
(and submit them upstream to Ronald Oussoren), but I was lazy and did it
the quick&dirty way instead.
Doesn't help that Pythons unicode handling is a headache.
There's a dead-easy solution there: stop using Python 2. Python 3's
Unicode handling is great (at least in 3.3 and later, but I doubt 3.2 is a
problem for anyone nowadays).
Ive actually since wondered about other alternatives e.g. NodeJS but not
sure.
JavaScript defines strings as sequences of UTF-16 code units, not code
points or characters or anything else sensible. So Node.JS is effectively
stuck with the equivalent of narrow-build Python 2 forever, and all the
headaches you're trying to escape will never go away, while in Python
they're already solved.
Also, of course, porting from Python 2 to Python 3 is a much smaller job
than porting to Node, and doesn't require you to use a language with
horrible syntax. And NodObjC is nowhere near as mature as PyObjC—last I
checked, there was no way to use it with Cocoa classes with
missing/incomplete/incorrect BridgeSupport, much less with CoreFoundation
types, while PyObjC not only gives you hooks for such types, but comes with
90% of what you want pre-hooked (although, unfortunately, this project
falls in the remaining 10%).
—
Reply to this email directly or view it on GitHub
https://github.com/abarnert/pykeycode/issues/3#issuecomment-188568084.

Hey again,
This past week I took some time to fix some bugs in the code and at the same time turned it into a class and added a thread that watches for layout changes (then reloads the keyboard layout accordingly). There is a little bit of Plover-specific stuff in there, but it should be easy to pull out. The list of changes:

Add a listening thread to detect keyboard layout changes
Add the ability to "get" a dead key by its symbol
Test print code Unicode support is fixed, and layout comes out in a tabular format
Favor keys that are likely to be real (favor option and shift over other modifiers, favor fewer modifiers)

https://github.com/openstenoproject/plover/blob/master/plover/oslayer/osxkeyboardlayout.py
This might be useful for anyone who needs to do similar work.
Here's a sample of the beginning of the test code output:
┌───────────────────Layout of Apple Extended Keyboard II───────────────────────┐
│ 53  122 120 99 118  96 97 98 100  101 109 103 111   105 107 113              │
│                                                                              │
│ 50─── 18 19 20 21 23 22 26 28 25 29 27 24 ─────51   114 115 116  71 81 75 67 │
│ 48──── 12 13 14 15 17 16 32 34 31 35 33 30 ────42   117 119 121  89 91 92 78 │
│ 57───── 0  1  2  3  5  4  38 40 37 41 39 ──────36                86 87 88 69 │
│ 56────── 6  7  8  9  11 45 46  43 47 44 ───────56       126      83 84 85 76 │
│ 59── 58─ 55─ ──────────49───────── ─55 ──58 ───59   123 125 124  82─── 65 76 │
└──────────────────────────────────────────────────────────────────────────────┘
Valid keycodes not visible on layout:
  10, 52, 54, 60-64, 66, 68, 70, 72-74, 77, 79, 80,
  90, 93-95, 102, 104, 106, 108, 110, 112, 127

Keycode	|       | ⇧     | ⇪     | ⌥     | ⌥⌘    | ⌥⇧    | ⌥⇪    | ⌃
--------|-------|-------|-------|-------|-------|-------|-------|-------
0       | a     | A     | A     | å     | å     | Å     | Å     | Home
1       | s     | S     | S     | ß     | ß     | Í     | Í     | \x13
2       | d     | D     | D     | ∂     | ∂     | Î     | Î     | End
3       | f     | F     | F     | ƒ     | ƒ     | Ï     | Ï     | \x06
4       | h     | H     | H     | ˙     | ˙     | Ó     | Ó     | Bksp
5       | g     | G     | G     | ©     | ©     | ˝     | ©     | \x07
6       | z     | Z     | Z     | Ω     | Ω     | ¸     | Ω     | \x1a
7       | x     | X     | X     | ≈     | ≈     | ˛     | ≈     | \x18
8       | c     | C     | C     | ç     | ç     | Ç     | Ç     | \x03
9       | v     | V     | V     | √     | √     | ◊     | √     | \x16
10      | §     | ±     | §     | §     | §     | ±     | §     | 0
11      | b     | B     | B     | ∫     | ∫     | ı     | ı     | \x02
12      | q     | Q     | Q     | œ     | œ     | Œ     | Œ     | \x11
13      | w     | W     | W     | ∑     | ∑     | „     | ∑     | \x17
14      | e     | E     | E     | dk´   | ´     | ´     | ´     | Help
15      | r     | R     | R     | ®     | ®     | ‰     | ®     | \x12
16      | y     | Y     | Y     | ¥     | ¥     | Á     | Á     | \x19
17      | t     | T     | T     | †     | †     | ˇ     | †     | \x14
18      | 1     | !     | 1     | ¡     | ¡     | ⁄     | ¡     | 1
19      | 2     | @     | 2     | ™     | ™     | €     | ™     | 2
20      | 3     | #     | 3     | £     | £     | ‹     | £     | 3

I haven't had time to properly look at this but it looks neat..  nice one


livedata: temp is now packed int16

reminder that we have scaled_channel available from shared lib

@mck1117 fair point but at the moment looks like zero usages in WB FW and I am just trying to bring fork and upstream together. Any chance to merge this PR and ask you to refactor this and similar cases in upstream?


Transform module changes

I am just starting to really play with new bindings, & I think Transform need some changes:

Transform.translateY(~translateY=VALUE, ()) is really verbose (same for others). Why are we using named args when the name of the function make it obvious ?
I didn't find how to use an animated value with Transform. I am converting some old code & it seems that all Transform.{method} only accept specific types. So we should create abstract types or add new animated method so we can pass animated values (or make unsafe magic method).
Also, Transform module should be Style_Transform & aliased in Style.Transform

I may add other comments or directly open PR to improve the situation.
Comments/ideas welcome :)

Transform.translateY(~translateY=VALUE, ()) is really verbose (same for others). Why are we using named args when the name of the function make it obvious ?

Got it, that's because RN expect object with a single key. I wish we could find something better for the API. Maybe a not so zero-cost solution?

I didn't find how to use an animated value with Transform. I am converting some old code & it seems that all Transform.{method} only accept specific types. So we should create abstract types or add new animated method so we can pass animated values (or make unsafe magic method).

Would this be ok?
external animatedFloat: Animated.value('a) => float = "%identity";
external animatedAngle: Animated.value('a) => angle = "%identity";

(to add in Transform module or in Animated?)

We already have the animatedStyle super magic method that converts value('a) to any type, to be able to pass an animated value to any style prop. We could be more precise and add regular magic methods to convert to float, size, margin, etc.
On the other hand, it is not recommended to get the current value of an animation directly over JS
From RN documentation on Animations:

Responding to the current animation value

You may notice that there is no obvious way to read the current value while animating. This is because the value may only be known in the native runtime due to optimizations. If you need to run JavaScript in response to the current value, there are two approaches:
spring.stopAnimation(callback) will stop the animation and invoke callback with the final value. This is useful when making gesture transitions.
spring.addListener(callback) will invoke callback asynchronously while the animation is running, providing a recent value. This is useful for triggering state changes, for example snapping a bobble to a new option as the user drags it closer, because these larger state changes are less sensitive to a few frames of lag compared to continuous gestures like panning which need to run at 60 fps.
Animated is designed to be fully serializable so that animations can be run in a high performance way, independent of the normal JavaScript event loop. This does influence the API, so keep that in mind when it seems a little trickier to do something compared to a fully synchronous system. Check out Animated.Value.addListener as a way to work around some of these limitations, but use it sparingly since it might have performance implications in the future.

On the other hand, it is not recommended to get the current value of an animation directly over JS

This doesn't seems relevant in the case I have in mind.
If you have a transformation with a translateY interpolated & something else (eg: scale) static, you NEED this helpers to say "this is an animatedFloat, just take it as a float".
Here is what I am doing here (a Sticky component)
open ReactNative;

external animatedFloat: Animated.value('a) => float = "%identity";

let make = (~scrollYAnimatedValue, ~children) => {
  <Animated.View
    style=Style.(
      style(
        ~zIndex=1,
        ~transform=
          Transform.(
            [|
              translateY(
                ~translateY=
                  Animated.Interpolation.(
                    scrollYAnimatedValue->interpolate(
                      config(
                        ~inputRange=[|0., 1.|],
                        ~outputRange=[|0., 1.|]->fromFloatArray,
                        ~extrapolateLeft=`clamp,
                        ~extrapolate=`identity,
                        ~extrapolateRight=`identity,
                        (),
                      ),
                    )
                  )
                  ->animatedFloat,
              ),
            |]
          ),
        (),
      )
    )>
    ...children
  </Animated.View>;
};

If I need (I won't here but...) another static value, like I said scale or whatever, animatedStyle isn't enough.

Btw, I think I would also just move Transform method into Style directly, for commodity.
All transform method only make sense in styles definition anyway, so having to open Transform or Transform.( is just an unnecessary extra step imo.

On the other hand, it is not recommended to get the current value of an animation directly over JS

This doesn't seems relevant in the case I have in mind.
If you have a transformation with a translateY interpolated & something else (eg: scale) static, you NEED this helpers to say "this is an animatedFloat, just take it as a float".

Sure, I realise that your intended use case poses no risk, but a disclaimer in documentation would be useful in case people saw Animated.value('a) => float and got ideas.

If I need (I won't here but...) another static value, like I said scale or whatever, animatedStyle isn't enough.

I haven't run into problems using animatedStyle to pass Animated values as Style.size and float within the same style definition, but I have nothing against more precise functions.

so I presume
your suggestion is to move all functions out of Transform, directly into Style, then

Yes :)
Going to make a PR for that & that would be more clear for everyone.
note: animatedStyle works if you have opacity or whatever is a style. But for transform properties (transform is a style by itself & accept Transform.t, not Style.t) we need those additional magic method otherwise it's just impossible to make the compilation pass.

In the new bindings, we don't really have methods returning Style.t, I use animatedStyle to pass the animated value as a float, just as you do with animatedFloat. My code is pretty much the same as what you have,
~transform= [|
                Transform.scale(
                  ~scale=Animated.animatedStyle(
                    Animated.Interpolation.interpolate(
                      cardAnimation,
                      Animated.Interpolation.config(
                        ~inputRange=[|0., 1.|],
                        ~outputRange=Animated.Interpolation.fromFloatArray([|0.5, 1.|]),
                        ()
                      )
                    )
                  )
                )
              |],

(maybe I should make use of local opens a bit more)

Oh I see. Didn't saw that animatedStyle returned 'b I was thinking it was Style.t...
Maybe we should have
external animatedStyle: value('a) => Style.t = "%identity";
external animatedFloat: value('a) => float = "%identity";
external animatedAngle: value('a) => angle = "%identity";

?

Oh I see. Didn't saw that animatedStyle returned 'b I was thinking it was Style.t...
Maybe we should have
external animatedStyle: value('a) => Style.t = "%identity";
external animatedFloat: value('a) => float = "%identity";
external animatedAngle: value('a) => angle = "%identity";

?

I'd add
external animatedSize: value('a) => size = "%identity";
external animatedMargin: value('a) => margin = "%identity";
external animatedColor: value('a) => Color.t = "%identity";

(perhaps animatedMargin is not necessary as type margin=size) and exclude
external animatedStyle: value('a) => Style.t = "%identity";

because that would cause errors wherever Style.t can be passed, or at least I can't think of any scenario where it would work.

Yeah right!

@MoOx I realized that Color.t and angle require appropriate interpolations with string arrays to define outputRange', such as [|"0deg", "360deg"|]. For some added type safety, I figured animatedColorandanimatedAngleshould only acceptvalue(calculated)` and prepared #508 to capture this.


Add more detail to the show profile command

This pull request addresses enhancement issue #70.
I've added host, workload type and workload ID to the table.

LGTM


更新新代码

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

更新最新代码


'&' !== ("")"link"[10]

Expression ("")"link"[10] error : Uncaught SyntaxError: Invalid or unexpected token

Looks like it was introduced here:
https://github.com/aemkei/jsfuck/commit/b618bf470c21ed3f76dc267c1feefe7e4d684490
cc @subzey

@aemkei, @jserNc.  What are the evidences of that '&' !== ("")["link"](0+")[10]? Which browser?
The repository has tests, and according to these tests all ASCII7 characters are generated correctly and produce correct results.
Because of the peculiarity of how the substitutions work in the JSFuck the " symbol if needed to be substituted by the code should not be enclosed into the quotes ('"') or escaped (\"). The original expression for & is ("")["link"](0+'"')[10] (note the difference between what's in the code and here: the " is not escaped.

You are right. Thanks for the clarification!


Exposing rtc session for callstats integration.

callstats.io is a SaaS service which provides products that measure and manage the performance of real-time media communication.
For callstats.io to expose the RTC statistics, the peer connection should be exposed and this PR will expose the PeerConnection.

@jagadeeshaby PTAL, I have made the changes, added an API under connection to obtain the session.


Removal of the commented out "Desert" building code in the MapBuilder

The map builder code contained a chunk of commented out code for building the "desert" area.
This should either be:
Removed
Reenabled
Parameterised
This PR is the "Remove" option, and also renames the remaining wall to "Surround" due to "Desert" no longer making sense.
However I did leave the desert plane and cube prefabs in the repo, which could arguably be removed.
Do not merge unless we have agreement that this is the desired solution.

Good catch, renamed all remaining references to "Desert" in the script


A problem of the current  DB schema of "Experiment"

Description
The DB schema of "Experiment" cannot allow retrieving detailed information of the running results, because we don't know which dataruns are related to this experiment.
Solution
Current schema:
class Experiment(Document, MongoUtils):
    project = fields.StringField()
    pipeline = fields.ReferenceField(Pipeline)
    dataset = fields.ReferenceField(Dataset)
    created_by = fields.StringField()

Proposed schema:
class Experiment(Document, MongoUtils):
    project = fields.StringField(required=True)
    pipeline = fields.ReferenceField(Pipeline)
    dataset = fields.ReferenceField(Dataset)
    created_by = fields.StringField()
    name = fields.StringField(required=True)
    events = fields.IntField(required=True)
    dataruns = fields.ListField(fields.ReferenceField(Datarun))
    start_time = fields.DateTimeField(required=True)
    end_time = fields.DateTimeField()
    status = fields.StringField()

The most important attribute is dataruns. If we don't store this information, we cannot retrieve any detailed information about this experiment. We can only know which signals are run in this experiment, but know nothing about the running results.

Hi @dyuliu I would like to discourage this.
This solution make a redundant data model, which will lead to problems.
Also, the additional fields that you are setting should not be made static. They should be computed dynamically, as they might change.
Regarding the dataruns, the way to retrieve them is dataruns is by doing an inverse lookup: you don't have to query the experiment and get the dataruns from there, but rather query the dataruns by filtering on the experiment id:
In mongodb syntax:
db.datarun.find({'experiment': <experiment-id>})

or, in python syntax:
Datarun.find(experiment=<experiment-id>)

but rather query the dataruns by filtering on the experiment id:

Oh! I just realize that the schema of Datarun has been changed. There is an new attribute "experiment" that can point to the experiment I want to investigate.
Thanks!  @csala
Now the remaining problem is that shall we add name and creation_time?
Experiment creation time is somehow important, as I can order all the experiments by creation_time. To obtain the "creation_time", one solution is to filter all the related dataruns and then find the earliest start_time. This can compute the time point when the experiment gets to run, but it is not the real creation_time. In this regards, I'm not sure whether creation_time is still needed.

Great! I hope filtering from the Datarun covers the needs :-)
Regarding name, we decided to drop it during the PR reviews, because we thought that it didn't seem relevant or required for the Orion workflow. But if it is something needed from a user point of view, it can be added, for sure!
Regarding the creation time, bear in mind that all the models that inherit from the MongoUtils class automatically have an insert_time field.

@dyuliu let us know if the Datarun filtering and the insert_time cover all the needs!
If so, I think this issue can be closed.

@csala Yes, it covers all the needs.


Support trust certificate self renewal

Testsuite passed

Testsuite passed

Per discussion with @monstermunchkin before. We just need to add a comment to explain what's going on in that block (that for non-admins we only allow updating their own certificate and no other field) and we should be good to go.

Testsuite passed

@monstermunchkin can you add a test using a restricted certificate?
Using that certificate we should confirm that the user can self-update their certificate (through lxc query as we don't have a CLI for this feature) and that they cannot update someone else's certificate.

It's stuck in init-pki.

@monstermunchkin all red

jenkins: test this please

LGTM

jenkins: test this please

Testsuite passed


⚠ DDoS-Relay US-E-ash-4 has degraded performance

In 6c28cba, DDoS-Relay US-E-ash-4 (http://<IP_ADDRESS>:42069/;csv) experienced degraded performance:

HTTP code: 200
Response time: 12 ms

Resolved: DDoS-Relay US-E-ash-4 performance has improved in c6b220f after 11 minutes.


Create POST Endpoint - Paint Entity

Create a POST endpoint to save a new Paint in Database

Endpoint created!


Website SSL issue

Hello,
I don't know if it is the right place to report this, but I noticed SvelteNative's official website SSL certificate has expired on 8/29.
Nice work on the framework anyway ;)

Thanks, I have this going again. it is usually a stuff up with the lets encrypt cron job, but this time it was that the v1 of the lets encrypt API is EOL. Hopefully this gets going automatically again. Thanks for bringing this to my attention :)


NPC Text Box

Closes #147.
Open up the Dialogue Room scene and walk up to the bug! Enjoy 🙃

@BrandonPacewic How hard would it be to change the text style when using story json? For example when two characters are speaking. Can you also add a changeable image so that it can have the speaker's face? Other than that everything is great!

@BrandonPacewic How hard would it be to change the text style when using story json? For example when two characters are speaking. Can you also add a changeable image so that it can have the speaker's face? Other than that everything is great!

You can change the style by editing the .ink file. It's similar to markdown (.md) with how it works. I'll make sure we can have more than one NPC talking at a time, and I will also add the ability to show an image for the NPC talking.
Would you also like a nametag under the picture so we can give the NPC a name?

@BrandonPacewic Yeah that'll be great

@BrandonPacewic Yeah that'll be great

👍

TODO:

[ ] More than one NPC talking at a time
[ ] Talking NPC image
[ ] Talking NPC name

@Galaxy25 Some major problems with merge conflicts. Please review it anyways and see if it's what you wanted. I'll fix the conflicts later.

@BrandonPacewic Can you make a prefab for the dialogue

@BrandonPacewic Can you make a prefab for the dialogue

What are you looking to be put into a prefab? The NPC object? That will be different for each type of dialogue you want to set up because the trigger needs to have a different dialogue file in it.

@BrandonPacewic A prefab doesn't need to have everything assigned to it

I'm getting ready to merge and updating the change log - please @me if any other changes are pushed.


Implement repository accepted/denied patterns

Make it possible to define accepted/denied regex patterns for artifact paths. These should be configurable via the etc/conf/strongbox.xml under the respective repositories' configuration sections.

If no accepted / denied patterns are defined, assume everything is allowed.
If there is an accepted list of patterns and no denied list, assume that only those are allowed.
If a denied list is defined and there is a pattern in the accepted list, then the accepted pattern should take precedence.

I would like to take on this issue

Hey @grantfar and thanks for your interest in this task!
However, I'm not very sure this task is still relevant.
It sounds to me like the description is exactly describing what the Routing already does.
@carlspring did you had something else in mind when you wrote this?

@grantfar : I think we have something more interesting for someone with a background in C# like yourself. Would you like to join our chat channel and discuss it there?

What do you have in mind. I already joined the channel
Sent from Mail for Windows 10
From: Martin Todorov
Sent: Thursday, September 19, 2019 5:33 PM
To: strongbox/strongbox
Cc: grantfar; Mention
Subject: Re: [strongbox/strongbox] Implement repository accepted/deniedpatterns (#650)
@grantfar : I think we have something more interesting for someone with a background in C# like yourself. Would you like to join our chat channel and discuss it there?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


** [osticket] DB - Database installation failed. Errors:

** [osticket] DB - Database installation failed. Errors:
appear this error, can help?

i habe the same error...
username and password are corret

In docker compose, make sure INSTALL_EMAIL and ADMIN_EMAIL are different


⚠ Bofrost.at has degraded performance

In d66d16c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1551 ms

Resolved: Bofrost.at performance has improved in 30b3293 after 9 minutes.


Implements some of the missing match modes

Implements the following missing match modes:

BETWEEN
NOT_CONTAINS
NOT_EQUALS
NOT_STARTS_WITH
NOT_ENDS_WITH
NOT_IN
GLOBAL (this one is expected to implemented by the user using the new .globalFilter(BiConsumer) method, since this wouldn't be possible to implement in a generic manner without having deep knowledge of the model being used)

I think this covers all the cases for this datamodel to be used in any scenario when morphia is used, making it unnecessary to ever need to create a custom morphia DataModel.
For cases when a complex field filter is needed which is not covered by the match modes on this datamodel, use:

overrideFieldQuery(field, BiConsumer<Query, FilterMeta>)

For cases where you need to add more stuff to the query that doesn't depend on filters use:

prependQuery(Consumer)

For cases where you want to implment a globalFiter use:

globalFilter(BiConsumer<Query, FilterMeta>)

Don't forget to run 'mvn spotless:apply' before checking in the build is failing

I am going to merge this and then make Thomas's recommended changes


x/telemetry/godev: set up autodeployment and push test

Since Jan, my telemetry uploads were all rejected with 400 (Bad Request)
Looking at the server, I noticed many upload reports are indeed rejected with errors like
unknown program build golang.org/x/tools/gopls@devel go1.22rc1 darwin/amd64
unknown program build<EMAIL_ADDRESS>go1.21.4 darwin/arm64

Looking into the codebase further,
the server program reads configuration from a file (./config/config.json)
that is copied when the container was built https://github.com/golang/telemetry/blob/88e2d1c7f9a20e3476dd2cca5112e374c8911eed/godev/cmd/telemetrygodev/Dockerfile#L55
And, this configuration is being used until the next production release
https://github.com/golang/telemetry/blob/88e2d1c7f9a20e3476dd2cca5112e374c8911eed/godev/cmd/telemetrygodev/main.go#L40
https://github.com/golang/telemetry/blob/88e2d1c7f9a20e3476dd2cca5112e374c8911eed/godev/cmd/telemetrygodev/main.go#L51
I think the workers also share this setup.
It looks like the production service wasn't rebuilt/restarted for a while.
cc @findleyr @pjweinb

I think we had discussed a deployment trigger. Let's set that up, along with a push test.

This is now done: the telemetry frontend is auto-deployed to production, following a push test, on any merge to master.