scene.proto: add shadow_caster_material_name

🎉 New feature
Motivated by osrf/gazebo#3048.
Summary
We added a custom SDFormat parameter in osrf/gazebo#3048 to allow specifying the name of a custom shadow caster material for a scene. Given that gazebo classic communicates scene information from the server to the client over a transport interface, it would have been convenient to add this field to the scene.proto message, but this would have broken ABI. As such, we added a separate ignition-transport service for this parameter.
Before ABI freezes for fortress, I thought I would submit this change, in case we decide to use the parameter in ignition in the future.
cc @iche033 @WilliamLewww
Test it
It's not used yet; this is just in anticipation of a future use of this parameter.
Checklist

[X] Signed all commits for DCO
[ ] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

one suggestion is to use a script for shadow caster:
  message Script
  {
    repeated string uri = 1;
    string name = 2;
  }

...

  Script shadow_caster_script = 13;

This allows users to specify a path to the material script in case it's not in the resource paths already.

one suggestion is to use a script for shadow caster:
  message Script
  {
    repeated string uri = 1;
    string name = 2;
  }

...

  Script shadow_caster_script = 13;

This allows users to specify a path to the material script in case it's not in the resource paths already.

@WilliamLewww does that make sense to you?

one suggestion is to use a script for shadow caster:
  message Script
  {
    repeated string uri = 1;
    string name = 2;
  }

...

  Script shadow_caster_script = 13;

This allows users to specify a path to the material script in case it's not in the resource paths already.

@WilliamLewww does that make sense to you?

I think in this case, the string name would refer to the shadow caster material name and the string url would refer to the file that contains the material right?

one suggestion is to use a script for shadow caster:
  message Script
  {
    repeated string uri = 1;
    string name = 2;
  }

...

  Script shadow_caster_script = 13;

This allows users to specify a path to the material script in case it's not in the resource paths already.

@WilliamLewww does that make sense to you?

I think in this case, the string name would refer to the shadow caster material name and the string url would refer to the file that contains the material (just in case the material file is not in a default path) right?

yeah, perhaps we should rename name to material_name?

one suggestion is to use a script for shadow caster:
  message Script
  {
    repeated string uri = 1;
    string name = 2;
  }

...

  Script shadow_caster_script = 13;

This allows users to specify a path to the material script in case it's not in the resource paths already.

@WilliamLewww does that make sense to you?

I think in this case, the string name would refer to the shadow caster material name and the string url would refer to the file that contains the material (just in case the material file is not in a default path) right?

yeah, perhaps we should rename name to material_name?

added the Script sub-message in https://github.com/ignitionrobotics/ign-msgs/pull/179/commits/6addaa4080a621914c341d03d28b5ed6a585f311

I don't know if it would be a good idea to use it here, but I'll just point out that we already have a Material::Script message here:
https://github.com/ignitionrobotics/ign-msgs/blob/2f2d86edbcbeec3e66a553608787f5792858c76e/proto/ignition/msgs/material.proto#L40-L44

I've switched to using the existing Material.Script message in https://github.com/scpeters/ign-msgs/commit/e418f2f2d3b62e45b9bcc4f2cd5c5825f8108ab4

The suggested changes have been made, I think that everyone is onboard with the current implementation. I'll merge this but speak up if you don't agree, we still have until the end of code freeze to revert it if needed.


gnome3.four-in-a-row: 3.36.3 -> 3.36.4

Semi-automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/four-in-a-row/versions.
meta.description for gnome3.four-in-a-row is: "Make lines of the same color to win"
meta.homepage for gnome3.four-in-a-row is: "https://wiki.gnome.org/Apps/Four-in-a-row"
meta.changelog for gnome3.four-in-a-row is: ""
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

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

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

found 3.36.4 with grep in /nix/store/ni9p7r8zyjhl5mskdfdmdjpm4m0ffh04-four-in-a-row-3.36.4

directory tree listing: https://gist.github.com/65d1dcc4485f11df45d9b3511f37ce28

du listing: https://gist.github.com/04ead138f93a7a98bb488a98db35ef0a

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

3 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
gnome3.four-in-a-row

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ni9p7r8zyjhl5mskdfdmdjpm4m0ffh04-four-in-a-row-3.36.4 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's 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 gnome3.four-in-a-row https://github.com/r-ryantm/nixpkgs/archive/217b2ffec18df13fb51b697f019fa962a62d8844.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/ni9p7r8zyjhl5mskdfdmdjpm4m0ffh04-four-in-a-row-3.36.4
ls -la /nix/store/ni9p7r8zyjhl5mskdfdmdjpm4m0ffh04-four-in-a-row-3.36.4/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 1

1 package built:
- gnome3.four-in-a-row

Maintainer pings
cc @hedning @jtojnar @worldofpeace for testing.

Tested with nix-shell -p nixpkgs-review --run "nixpkgs-review pr 92779" everything works as expected

Changes look okay:

3.36.4 – July 5, 2020
Just a translations release, except
for a typo fix in the appdata file.
Translations updated:
Kazakh: Baurzhan Muftakhidinov
Slovenian: Matej Urbančič


fix: update to eye v5.0.6

fix: update to eye v5.0.6

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

npm package (@latest dist-tag)
GitHub release
v7.0.5

Your semantic-release bot :package::rocket:


Ignore missing library entries

I've some troubles supporting both Java 8 and Java 9+ with the same plugin configuration. For example to build with Java 8 I use this:
  <libs>
    <lib>${java.home}/lib/rt.jar</lib>
  </libs>

and for Java 9+ I use this:
  <libs>
    <lib>${java.home}/jmods/java.base.jmod</lib>
    <lib>${java.home}/jmods/java.logging.jmod</lib>
    <lib>${java.home}/jmods/java.sql.jmod</lib>
  </libs>

But I can't use a mixed configuration:
  <libs>
    <lib>${java.home}/lib/rt.jar</lib>
    <lib>${java.home}/jmods/java.base.jmod</lib>
    <lib>${java.home}/jmods/java.logging.jmod</lib>
    <lib>${java.home}/jmods/java.sql.jmod</lib>
  </libs>

In this case Proguard complains about missing files.
The workaround is to duplicate the whole plugin configuration in two different profiles, but I'd like to avoid adding 50 lines of plugin declaration for this.
Would it be possible to modify the plugin to check if the libraries listed exist before using them and ignore those that are missing?

I will not be adding anything to support Java 8 or earlier. It is time to move on.

The same situation may arise in later JDKs when new modules are introduced though. Would you object to a 10 line PR addressing this issue?

If it fixes issues between using 11, 17 and 21 and so on, then it should be fixed yes. I would merge such a PR.

It is time to move on.

Agreed, that's why it would be nice if there was a nice migration path that allows legacy system to switch (we can't just do this in one day, first we need testing, then a time when we probably need to be able to build with both java 8 and modern java, and finally only modern jave).

You are right and I would be happy to merge and release any new contributions to examples. They are quite outdated. You (or anyone else) can target gh-pages branch: https://github.com/wvengen/proguard-maven-plugin/tree/gh-pages
If you need very long-lived support for many Java versions there are some, for example https://github.com/wvengen/proguard-maven-plugin/issues/355#issuecomment-2296167468
Other possibilites are of course difference development branches, profiles or environmental variables.


SW-4691 Disallow detailed planting site creation in mobile view

show message asking user to switch to desktop app

@chudo76 thoughts

I think we need a way for them to go back.. Maybe something like:

Feature Unavailable
This feature is only available from the desktop application.
[Back to Planting Sites]

Updated with this feedback, thanks 🙏


Update the README.CN.MD

Please review @colachg

Sorry, I have made some mistakes..I will start another pr soon.


Manually instrument 10 functions with high CC

The function should have a CC > 10 and have bad test coverage.
Write 2 tests each, preferably for 2 different functions (among these 10!).

I'm gonna call dibs on the function index 0 (instrumentation point indexes 0-99) for Matrix.add to test instrumentation on!

I will do one test for Matrix.compare() line:27 if no one have called dibs on that one.

I'm taking FenwickTree::combined and FenwickTree::separate.

Ill do BinarySearchTree:getDFS with indexes 300-399!

I will take BinaryHeapArray::validateNode (index 400->499) and BinaryHeapTree::validateNode (index 500->599).

Ok @hanzhsun @ChangGabriel I'll do instrumentation for your functions now! As well as for two

Ill call indexes 6 (600-699) and 7 (700-799) for @ChangGabriel's functions and 8 and 9 for @pandaseal's functions

@pandaseal gets KdTree.searchNode and SuffixTree:TreePrinter:getString!

I'm trying to write a test on Matrix.equals(), so I call dibs on that..


avoid iterating a live nodelist

This step is still surprisingly slow but this makes it take 5 seconds instead of 10 on my machine.

It occurs to me that even more time could be saved by skipping this step entirely and instead updating the print CSS to use relevant attribute-value-starts-with selectors:
+/* Render non-mailto external link targets, cf. https://url.spec.whatwg.org/#special-scheme */
-a[data-print-href]::after {
+a:is([href^='ftp:' i], [href^='sftp:' i], [href^='http:' i], [href^='https:' i], [href^='ws:' i], [href^='wss:' i])::after {
   content: ' <' attr(href) '>';
   color: initial;
 }

This would miss new schemes until added to the CSS (which is lintable) and would be redundant for links whose text matches their target (which we should probably not have anyway—it's more accessible to name links and let user agents handle URIs).

also if you're going for speed, you should avoid for..of aggressively.

and would be redundant for links whose text matches their target (which we should probably not have anyway—it's more accessible to name links and let user agents handle URIs)

Yes but we do and that's why we can't use this CSS-only strategy.

also if you're going for speed, you should avoid for..of aggressively.

The for-of is only iterating 94 elements. It's not the slow part. The slow part, for some unexplainable reason, is setting an attribute.

The for-of is only iterating 94 elements.

(Well, no, it's iterating 30k elements, but it's still true that the iteration itself is now ~instant.)

and would be redundant for links whose text matches their target (which we should probably not have anyway—it's more accessible to name links and let user agents handle URIs)

Yes but we do and that's why we can't use this CSS-only strategy.

Having them doesn't preclude a CSS-only approach, it just means that such an approach would duplicate URLs. But to address the larger point, would you object to fixing such links by giving them non-URL text?

ecma262 PR: https://github.com/tc39/ecma262/pull/3301


v5.1.0 losing correct rotation

Hi
When resizing an image it doesn't keep the correct rotation, seems the rotate function does not take affect. As soon as the resize is taken away the rotate is honoured.
Thanks
JP

@jamieparr66 Thanks for your feedback, and can you provide more details?

@jamieparr66 Thanks for your feedback, and can you provide more details?

@beomseoklee on further inspection it seems this is caused by changing the file format, this applies to any photo you take on a mobile device and upload as they handle the exif differently. Example below
https://d3td59rg4udzv8.cloudfront.net/fit-in/2000x500/20210120_080653.jpg - only changing size, picture correct way up
https://d3td59rg4udzv8.cloudfront.net/fit-in/2000x500/filters:format(webp)/20210120_080653.jpg - changing size and format, picture no longer being auto rotated
I resolved the issue on my server side by checking and rotating images before upload, for anyone not manipulating images before upload this becomes an issue.
Hope this helps explain

@beomseoklee on further inspection it seems this is caused by changing the file format, this applies to any photo you take on a mobile device and upload as they handle the exif differently. Example below
https://d3td59rg4udzv8.cloudfront.net/fit-in/2000x500/20210120_080653.jpg - only changing size, picture correct way up
https://d3td59rg4udzv8.cloudfront.net/fit-in/2000x500/filters:format(webp)/20210120_080653.jpg - changing size and format, picture no longer being auto rotated
I resolved the issue on my server side by checking and rotating images before upload, for anyone not manipulating images before upload this becomes an issue.
Hope this helps explain

@jamieparr66 Thanks for your information. I can definitely see that if the image format is changed, it rotates the image. I'll research this one.

@jamieparr66 Thanks for your information. I can definitely see that if the image format is changed, it rotates the image. I'll research this one.

For this issue, I use rotate:null to resolve it.
It can be a hint for you in source code. @beomseoklee

For this issue, I use rotate:null to resolve it.
It can be a hint for you in source code. @beomseoklee

@ild-nucleusstudio Thanks for your input. rotate: null will remove the all EXIF data from the image. Since the original image has the EXIF data, we preserve the EXIF data, but I think it causes an issue, so I need to investigate the issue deeper.

@ild-nucleusstudio Thanks for your input. rotate: null will remove the all EXIF data from the image. Since the original image has the EXIF data, we preserve the EXIF data, but I think it causes an issue, so I need to investigate the issue deeper.

Please refer to Rotating images manually


nob controller: daemonset test - refactor helpers

Make test daemon set builder more practical which results into less chatty test cases.

/assign @thejasn

Thanks, this seems slightly more specific by much more readable.
/lgtm

/lgtm

/label docs-approved
/label px-approved
/label qe-approved
Unit test helpers updates only: no need to any approvals by peer review


Add appveyor support

Current coverage is 92.92% (diff: 100%)

Merging #256 into master will not change coverage

@@             master       #256   diff @@
==========================================
  Files            31         31
  Lines          2486       2486
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           2310       2310
  Misses          176        176
  Partials          0          0

Powered by Codecov. Last update 5a13308...6961d0c

@StephenVavasis, sorted container test don't work on win32: https://ci.appveyor.com/project/kmsquire/datastructures-jl/build/1.0.7/job/4xefot3o9471k3h3#L39
Can you take a look?
Note that I'm going to merge #168 soon, so it would be great if any changes you introduce can be easily integrated there.


extension: User space io socket

Commit Message:
Userspace io socket, cont
Introduce user space io socket handle on top of user space event at https://github.com/envoyproxy/envoy/pull/14712
Userspace Io socket handles are always created with a peering handle.
The write() methods populate the buffer in the peer handle.
The read() methods consume the owned buffer.
Extracted from https://github.com/envoyproxy/envoy/pull/13418
Signed-off-by: Yuchen Dai<EMAIL_ADDRESS>Additional Description:
Risk Level: LOW, extension
Testing: Unit test
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @antoniovicente

@antoniovicente  All comments resolved.
Recent updates include using Factory to create pair of handles, and not throwing exception in local/remote address methods

/retest
Windows CI looks like an unrelated flaky issue.  These new libraries are not linked into the failing test.

merging main

Thank you!


Breakpoints move on after a restart server

Hi, I have a issue with breakpoints that jump on above lines after a server is restarting. For example I picked breakpoint on line 20, then everything working correct until server is not restarting then that breakpoint move on line above, for example line: 14. Does anyone idea why this is happening and how can i fix it ? Thank you for help
env:
Win 10 Pro
VS code: 1.28.0
ts-node: 7.0.1
nodemon: 1.18.4
node: 8.12.0

Here is my config:
start script:
"debug": "cross-env NODE_ENV=development nodemon -r --watch src dotenv/config --inspect -r ts-node/register src/index.js"

launch.json config:
{
    "version": "0.2.0",
    "configurations": [{
    	"type": "node",
	"request": "attach",
	"name": "Node: Nodemon",
	"processId": "${command:PickProcess}",
	"restart": true,
	"protocol": "inspector"
    }]
}

and ts config:
{
    "compilerOptions": {
	"module": "commonjs",
	"noImplicitAny": true,
	"allowJs": true,
	"target": "es2015",
	"noUnusedLocals": true,
	"noUnusedParameters": true,
	"moduleResolution": "node",
	"inlineSourceMap": true,
	"typeRoots" : [
		"node_modules/@types",
		"./types"
	]
},
"include": [
	"./src/**/*"
],
"exclude": [
	"node_modules"
]
}

Closing as the last comment has provided a solution.


self hosted etcd: checkpoint iptables on master nodes

self hosted etcd relies on service IP to work correctly. Kuberetes API server contact etcd pod by service IP (load balancing + hide the actual etcd pod IP which is subject to change).
Service IP relies on API server to be restored after a machine reboot. If we restart all API servers at the same time, service IP is not recoverable.
To solve this chicken and egg issue, we have to checkpoint the iptables (which do all the heavy-lifting for service IP).
I have tried the IP table checkpoint approach, it works well at least for the hack/multi-node example.
/cc @aaronlevy

FWIW, checkpointing iptables would also enable the api server to become a deployment instead of a daemonset. This would enable it to move around.
@xiang90 it would seem to me that there is a chance that the iptables restored after a checkpoint might be stale. I think that would lead to cluster not coming back up in some cases.

@bassam

it would seem to me that there is a chance that the iptables restored after a checkpoint might be stale

Yes, I am aware. We are not trying to solve this problem at 100%.
The problem we are trying to solve here is a full API components down case. This is usually caused by a power failure of one DC or a rack. Or someone is playing around with selfhosted to see its recovery ability. So the chance to hit it is already pretty low.
Moreover, the stale iptable can be an issue for etcd case only if ALL etcd members are moved. In another word, the service IP in the iptable points to no valid etcd members.
Assume that we checkpoint iptable every 1 minutes. The chance of moving all etcd members around in 1 minute is VERY low.
Combining the two very low event, I would not worry about it. If it does happen, we need a full backup/recovery. Maybe I am missing something you concern about?

@xiang90 the case I'm considering (for our own scenarios) is a full power off and power on of a self-hosted cluster.
I think you are making a good point -- if the interval of checkpointing is small and you're running HA then its a low probability event for the cluster to not come back up after a power failure.
What I'm trying to get my head around is if the cluster comes back up, but the checkpoint information is stale, will it converge on the correct authoritative state in time.
For example, if one (out of three) etcd member moved from <IP_ADDRESS> to <IP_ADDRESS> but we did not checkpoint the iptables (and pod manifest) in time and a power off happened. The cluster comes back up, the etcd member will still run on <IP_ADDRESS> (thats where the last checkpoint manifest and iptables had it), but etcd state has it at <IP_ADDRESS>. So its effectively a lost member (yet it still running). How does this cluster converge and cleanup?

Let's assume the other members are <IP_ADDRESS> and <IP_ADDRESS> besides <IP_ADDRESS> (which moved to <IP_ADDRESS> later on)

but etcd state has it at <IP_ADDRESS>. So its effectively a lost member (yet it still running). How does this cluster converge and cleanup?

The API server should be able to serve request since it still can reach <IP_ADDRESS>, <IP_ADDRESS>. The kube proxy should be able to pull the latest service IP mapping from the running API server (<IP_ADDRESS>, <IP_ADDRESS> and <IP_ADDRESS>). The kube proxy will set the service mapping and take over the control.
kube proxy will do so since it has no idea about the ip table restore we just did. It assumes the ip table is empty and will do the initial recovery.
This is my understanding of how kube proxy should work. I might be wrong. But based on my limited experiments, it works this way.
/cc @aaronlevy might know more details than me.

/cc @bassam

What is the service IP used for? Can we make the service IP static as it is for DNS? Would that help?
Also, can we remove the service IP requirement somehow to just side-step this whole issue? What is service IP fixing?

What is the service IP used for

load balancing + hide the actual etcd pod IP which is subject to change
Or you will have to restart API server to track etcd member changes.

Can we make the service IP static as it is for DNS?

The service IP is static. The mapping is dynamic

What is service IP fixing?

Same as question 1.

@xiang90 sounds like you're saying kube-proxy would overwrite the stale routes and things would converge.
@philips I think a service for etcd enables the members to float. I was hoping we can do the same with the api server as well. I experimented with a bit (https://github.com/bassam/bootkube/commit/52c0499430bede92e3a1a1cde35ed06302c2558d) but didn't get far.

@bassam

@xiang90 sounds like you're saying kube-proxy would overwrite the stale routes and things would converge.

Yes. After it starts, it should. @aaronlevy right?

I would assume thats it's behavior, but I have not personally verified this. E.g. does it behave differently if there happens to be existing state? I'd be surprised if it did change its behavior, but not something I've looked at directly.
@philips is checkpointing the iptables rules concern you? Operationally, this isn't something I've had much experience with -- so if this seems like a bad idea -- we can revisit more closely.
The options we've discussed so far were just using the systemd units that already ship with the OS (CoreOS specific, but easy enough to add elsewhere),. Then validating that this works as expected. Then maybe even checkpointing the routes ourselves in the pod-checkpointer code (and restoring on reboot).

The options we've discussed so far were just using the systemd units that already ship with the OS

From ux perspective, I feel it is better to do it in pod-checkpointer. systemd unit is an extra step for the user.

After a few rounds of internal (CoreOS) discussion, we decided to try out iptable checkpoint with a user program first.
We wrote a small tool (kenc) that can checkpoint/recovery iptables to/from a given file.
It can help self hosted etcd Kubernetes deployment to recover from a full API components down case.
I propose to have the kenc running as recovery mode as an init container. Then add the kenc running in checkpointing mode into the API server pod.
@aaronlevy opinion?

link to kenc project: https://github.com/coreos/kenc/

From a previous offline discussion the general architecture discussed:

Build a iptables checkpointer which has two modes of execution: checkpoint (long running), and restore (run-once).

Init-container in kube-proxy(?) pod which runs the restore process:

Check if existing iptables rules exist (TBD what this means, could be as simple as KUBE-SERVICES chain exists).

If existing services rules exist, exit (assume we have good state)

(maybe/maybe not) attempt to contact api-server given a fixed timeout.

If api-server is contacted, exit (assume we can retrieve good state)

Does a checkpoint file exist via host-mount

If exists, restore iptables rules and exit

Side-car container (or potentially separate daemonset) runs the checkpoint process:
-Watch all services which contain the checkpointer.alpha.coreos.com/checkpoint: "true" annotation.

Periodically read / walk the NAT table KUBE-SERVICES chain, and track all KUBE-SVC and KUBE-SEP chains / rules for the watched services. Write these to disk.
TBD:

in what other cases do we need to watch filter/other tables (in my simple tests they were unused),
in what other cases do we care about other kubernetes chains (firewalls, etc).

Regarding the above unknowns, all we really need is enough to allow addressability of etcd.  We are assuming that the kube-proxy will resolve full state once it can run.

Can we expand on this / write up a design document so we can make sure we're all on same page in terms of implementation?

For example, I would prefer that the "checkpointing" aspect of this tool is run as a separate daemonset (not as part of api-server). Similarly - I would initially think it makes more sense for the "restore" init-container to be run as part of the kube-proxy, not the api-server (enforces our restore occurs prior to kube-proxy starting - and they will have less chance of conflict when operating on same rules).

I would initially think it makes more sense for the "restore" init-container to be run as part of the kube-proxy, not the api-server (enforces our restore occurs prior to kube-proxy starting - and they will have less chance of conflict when operating on same rules).

I do not want this tool to run on non-master nodes. Can you explain the conflict part? I think if we run the init phase before the API server gets started, there should not be any conflict. kube-proxy should do nothing until it reaches the API server.

I do not want this tool to run on non-master nodes

The restore or checkpoint or both?

Can you explain the conflict part? I think if we run the init phase before the API server gets started, there should not be any conflict. kube-proxy should do nothing until it reaches the API server.

There could be multiple api-servers, there's no guarantee that the local kube-proxy will not speak to a different api-server before the local api-server is started.

The restore or checkpoint or both?

both.

There could be multiple api-servers

OK. Fair. I want to avoid the initial unnecessary timeouts: components -> local-api server -> etcd vip -> times out.
Even in this case, there should be no conflicts. Kube-proxy never tries to interpret the existing rules. It will simply flush the KUBE chain atomically. The worst case is the iptables got rewrote by a stale checkpoint table, but it should be OK since kube-proxy will eventually update it back. I can double check this.

Watch all services which contain

What are the benefits to only checkpoint parts of the services. Why not checkpoint the entire NAT table initially? The later is significantly simpler to get started.

both.

If you want to restrict where this runs, this depends on how we deploy the tools.
If the "checkpoint" process is deployed as its own daemonset, this is as simple as adding the nodeSelector to the manifest.
For the restore process - this depends on where/how its deployed. If we just have it run along-side the kube-proxy and only continue down the restore path if that file exists, we're not really adding any overhead or additional risk of timeout - and we shouldn't assume there would be a locally available api-server.
My concern with this approach is that we would need to be careful to protect that checkpoint file location and/or only allow validated https traffic, so a bad actor couldn't just put in a checkpoint for their own backend.
I'm a bit open on what we do here - not immediately sure best option

The worst case is the iptables got rewrote by a stale checkpoint table, but it should be OK since kube-proxy will eventually update it back.

Given the option, I would much prefer that we don't risk the conflict and just enforce the ordering if we can.

What are the benefits to only checkpoint parts of the services. Why not checkpoint the entire NAT table initially?

This greatly reduces the risk / footprint of what we are checkpointing. My initial thinking is that this would be worth the effort to only checkpoint the rules which we really care about.

If you want to restrict where this runs, this depends on how we deploy the tools.

One of the reason I want this tool to co-located with API server is to ease the deployment.
Conceptually, this tool is a complementary for the API server, not for the kube-proxy. Kube proxy should not rely on this tool to operate.

Given the option, I would much prefer that we don't risk the conflict and just enforce the ordering if we can.

OK. I can add logic into the tool to not overwrite iptable rules in the restore path. So if kube-proxy already populated the table, it wont restore at all. (The initial detecting logic might still allow a super tight window when kube-proxy flushes out table right after the checking. But I guess it is OK for n)

This greatly reduces the risk / footprint of what we are checkpointing. My initial thinking is that this would be worth the effort to only checkpoint the rules which we really care about.

As long as we checkpoint less frequently than kube-proxy, we will not impose a huge overhead from performance stand point.
I

Can you write-up a design doc PR? - I feel like we need to have a pretty well defined process prior to committing to code.
While this is complementary to the api-server - it does not function nor is it useful in the absence of the proxy. And it is much easier to enforce ordering with init-container in the proxy. If we add this to the api-server - we risk much easier conflict with the kube-proxy. I could be convinced otherwise - but I don't see really any benefit to tying this to the api-server, but I do see benefit to tying it to kube-proxy.

As long as we checkpoint less frequently than kube-proxy, we will not impose a huge overhead from performance stand point.

We discussed the risk of the api changing - by only checkpointing services we explicitly outline for this - we greatly reduce risk. I would highly recommend we implement this and not just checkpoint everything blindly.
I think we need to have a solid design / process that is agreed upon before moving forward with code.

Can you write-up a design doc PR?

OK. Sure. Will do.

This should be closed by https://github.com/kubernetes-incubator/bootkube/pull/380


[SCRIPTS] Replace finetune_lm.py and sentiment_analysis_cnn.py using Estimator

Description
convert https://github.com/dmlc/gluon-nlp/blob/master/scripts/sentiment_analysis/finetune_lm.py by using Estimator.
Checklist
Essentials

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage
[x] Code is well-documented

Changes

[ ] Feature1, tests, (and when applicable, API doc)
[ ] Feature2, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

cc @dmlc/gluon-nlp-team

Job PR-1070/1 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/1/index.html

Thanks @gongel. Please replace the exiting file with the updated file, instead of introducing a new one. Please ask @liuzh91 or @zburning if you're unsure how to do it with git.

You should move MyBatchProcessor to gluonnlp api with a more appropriate name
You can also create a class SentimentAnalysisEstimator class in api.

All, I got it.

Job PR-1070/2 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/2/index.html

Job PR-1070/3 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/3/index.html

Job PR-1070/4 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/4/index.html

@gongel  Please complete the checklist

Essentials
PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
Changes are complete (i.e. I finished coding on this PR)
All changes have test coverage
Code is well-documented

@gongel Please complete the checklist

Essentials
PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
Changes are complete (i.e. I finished coding on this PR)
All changes have test coverage
Code is well-documented

Ok, finished

Ping @gongel

Ping @gongel

Done.

@gongel Thanks. Please see above comments.

Job PR-1070/12 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/12/index.html

what is the status of this?

Job PR-1070/14 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/14/index.html

Job PR-1070/15 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-1070/15/index.html

@eric-haibin-lin @sxjscience  Should this be updated in any aspect? Anything should be fixed to merge this pull request?


Use training framework package

Removed MAX training framework code
Updated training README
Closes #22

Completed tests without any issues.


[Layer] 'func call' -> 'func callAsFunction'.

Apply the final naming decision in SE-0253 to the TensorFlow library. This depends on apple/swift#25235.
Shall be merged in time for the Swift for TensorFlow 0.4 release.

I think we're approaching the point where changes like this should compile before and after the breaking compiler change.

How would you make that work? This depends on a compiler change, but a toolchain with new new changes cannot be built without this change. It's a circular dependency.

Here are some approaches:
If the feature is orthogonal (a rename), make both names work.
A more general approach that will always work is to protect with a flag inside the compiler or a flag in the swift-apis repo.

Sounds good.


pvsadm image import is not picking the IBMCLOUD_API_KEY from environment

🍏 Friday December 11 2020 07:28:32 PM 🍏
╭─github.com/ocp-power-automation/full-flow                                                                                ⍉
╰─▶ export IBMCLOUD_API_KEY=******************
🍏 Friday December 11 2020 07:28:44 PM 🍏
╭─github.com/ocp-power-automation/full-flow
╰─▶ ./pvsadm image import --pvs-instance-name ocp-cicd-tokyo-04 --bucket my-test-bucket-10 --bucket-region us-south --object CentOS-83-11122020.ova.gz --pvs-image-name CentOS-83-11122020
Error: The ApiKey property is required but was not specified.
Usage:
  pvsadm image import [flags]

Flags:
  -n, --pvs-instance-name string   PowerVS Instance name.
  -i, --pvs-instance-id string     PowerVS Instance ID.
  -b, --bucket string              Cloud Object Storage bucket name.
  -r, --bucket-region string       Cloud Object Storage bucket location.
  -o, --object string              Cloud Object Storage object name.
      --accesskey string           Cloud Object Storage HMAC access key.
      --secretkey string           Cloud Object Storage HMAC secret key.
      --pvs-image-name string      Name to PowerVS imported image.
      --ostype string              Image OS Type, accepted values are[aix, ibmi, redhat, sles]. (default "redhat")
      --pvs-storagetype string     PowerVS Storage type, accepted values are [tier1, tier3]. (default "tier3")
      --pvs-service-cred string    Service Credential name to be auto generated. (default "pvsadm-service-cred")
  -h, --help                       help for import

Global Flags:
      --add_dir_header                   If true, adds the file directory to the header of the log messages
      --alsologtostderr                  log to standard error as well as files
  -k, --api-key string                   IBMCLOUD API Key(env name: IBMCLOUD_API_KEY)
      --audit-file string                Audit logs for the tool (default "pvsadm.log")
      --debug                            Enable PowerVS debug option(ATTENTION: dev only option, may print sensitive data from APIs)
      --log_backtrace_at traceLocation   when logging hits line file:N, emit a stack trace (default :0)
      --log_dir string                   If non-empty, write log files in this directory
      --log_file string                  If non-empty, use this log file
      --log_file_max_size uint           Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
      --logtostderr                      log to standard error instead of files (default true)
      --one_output                       If true, only write logs to their native severity level (vs also writing to each lower severity level
      --skip_headers                     If true, avoid header prefixes in the log messages
      --skip_log_headers                 If true, avoid headers when opening log files
      --stderrthreshold severity         logs at or above this threshold go to stderr (default 2)
  -v, --v Level                          number for the log level verbosity
      --vmodule moduleSpec               comma-separated list of pattern=N settings for file-filtered logging

E1211 19:28:50.723929   50173 root.go:68] The ApiKey property is required but was not specified.
🍏 Friday December 11 2020 07:28:50 PM 🍏
╭─github.com/ocp-power-automation/full-flow                                                                                ⍉
╰─▶
🍏 Friday December 11 2020 07:28:57 PM 🍏
╭─github.com/ocp-power-automation/full-flow                                                                                ⍉
╰─▶ ./pvsadm version
I1211 19:29:00.830006   50244 root.go:29] Using an API key from IBMCLOUD_API_KEY environment variable
Version: v0.1-alpha.10-4-g57c47c5-dirty, GoVersion: go1.15.5
🍏 Friday December 11 2020 07:29:00 PM 🍏
╭─github.com/ocp-power-automation/full-flow
╰─▶

Same happened with me for release 10. For upload it picked up but for import it was not picking up. I had to pass --api-key parameter for import though IBMCLOUD_API_KEY  was set

This can be because of this change - https://github.com/ppc64le-cloud/pvsadm/pull/65, looking into it.

This is because of adding the new persistantprerun which is not really required for this subcommand and removing the other flags while code rebase part of #65

/assign


WildFly Elytron PRs for 21.0.0.Beta1

This includes the following PRs:
https://github.com/wildfly/wildfly-core/pull/5509
https://github.com/wildfly/wildfly-core/pull/5411
https://github.com/wildfly/wildfly-core/pull/5511
https://github.com/wildfly/wildfly-core/pull/5463

This PR will not be for merging, I have just pulled together the remainder of the set of Elytron PRs so we can check for interactions between them.

Continuing with other merges


"Sniper crosshair" should show the crosshair also while scoping so that "recoil crosshair" is also useful with AUG

Pull request 698

It is done already. I think I made it clean as possible for easy pull into master.


Add battery handling

Thanks for the additions! Can you explain the changes you've made to the SUNSPEC_NOTIMPLEMENTED dict, and the BinaryPayloadDecoder wordorder? I can't seem to find any Sunspec documents to support those changes.

That was necessary for proper decoding of battery values, otherwise bytes have wrong order. I'm my case former values still seems to work. The sunspec notimplemented value was necessary for me to prevent errors on decode, maybe there's another solution for that? Cheers

I've merged your changes -- with a couple formatting edits -- and added the battery functionality to the readme. Looks solid, thanks!


Add Built-In Support For Maximizable Float Windows

A common question in the forums is "how do I make my float windows maximizable."
Although this isn't difficult to extend on your own, the support for this should really just be built in to make it easier to achieve.

Just altered some code in FloatWindow.cs
`        internal void RefreshChanges()
{
if (IsDisposed)
return;
        if (VisibleNestedPanes.Count == 0)
        {
            ControlBox = true;
            return;
        }

        for (int i=VisibleNestedPanes.Count - 1; i>=0; i--)
        {
            DockContentCollection contents = VisibleNestedPanes[i].Contents;
            for (int j=contents.Count - 1; j>=0; j--)
            {
                IDockContent content = contents[j];
                if (content.DockHandler.DockState != DockState.Float)
                    continue;
                **if (content.DockHandler.DockState == DockState.Float)
                {
                    this.FindForm().FormBorderStyle = FormBorderStyle.Sizable;
                }
                if (this.FindForm().WindowState == FormWindowState.Maximized)
                {
                    content.DockHandler.DockState = DockState.Document;
                }**

                if (content.DockHandler.CloseButton && content.DockHandler.CloseButtonVisible)
                {
                    ControlBox = true;
                    return;
                }
            }
        }
        //Only if there is a ControlBox do we turn it off
        //old code caused a flash of the window.
        if (ControlBox)
            ControlBox = false;
    }`

You can change Dock Style as per your requirement
change 'DockState.Document' to your required dock style


Calls to pause/resume pre-rolls not working

Hi!
I've noticed the following behavior with your plugin and I'm wondering if you've seen this before or if you've any insights as to this might be happening: given some

 that has as a child a <video /> that will play a VAST tag through video.js + your plugin, if you append (or just place anywhere) the #contrainer-div mentioned previously to another part of the DOM tree, the controls to pause/resume the video will stop working. The calls seems to be made to the methods from what I could see in the library code by placing some console.log calls there, but they seem to be have no effect anymore.
Do you have any insights regarding this? Any idea of how I could prevent this from happening. I'm not sure if this is a bug or lack of feature, if it's either I'd be more than happy to help with this, but getting some insights on this might send me in the right direction.
I'm sharing a Stackblitz demo link so that you can see what I mean:
https://stackblitz.com/edit/stackblitz-starters-f2auud?file=index.html
(NOTE: please open the preview link in the new tab. The button/icon to do so is located in the top-right corner)
Thanks!

Hello @Nonchalantcode ,
The IMA SDK expects the DOM to be static once the IMA SDK is initiated. Please see support and compatibility guide for more info. This is a limitation of the IMA SDK itself, and not this plugin.
Would it be possible to modify your use-case to only initiate the SDK once all DOM alterations have been completed?
Thank you,
Jackson
IMA SDK team

Hi @Kiro705  !
Thanks for taking the time to reply.

Would it be possible to modify your use-case to only initiate the SDK once all DOM alterations have been completed?

Unfortunately no as the DOM alterations will always happen -- or I need them to happen -- after the SDK is available. I think I've reach a dead end here and will need to do a re-write of some stuff to avoid this issue altogether.
Again, thanks for taking the time to reply,
Hector

Hi @Kiro705 !
I ended up working around the IMA SDK implementation in another way. If you want to close this issue, feel free to do so.
Regards,
Hector


JSONEncode should use type methods or be renamed JSONEncoder

Hi everybody,
First of all I wanna thank everyone for the great work on this project. I'm so excited about being able to use swift in full stack mode!
I was browsing through the docs and came across the JSONEncode and JSONDecode classes. Initially I was thinking it would make more sense for the JSONEncode class to use type methods (a.k.a. static methods) but then I checked out the JSONDecode class and noticed it uses instance variables. So what would be more appropriate would be to rename the classes to JSONEncoder and JSONDecoder because the instances of these types will be doing the job.
I can perform a refactoring and submit a pull request. What do you guys think?
Califrench

This has bugged me for a bit now, and not being pleased with the JSON code anyway, I have written some new encoding and decoding code using a different methodology. This new stuff is much more flexible and easy to use IMO. I am committing the addition now and will follow up with the docs and to convert the one (I think there's just one) example which uses JSON.

Nice work Kyle, I did notice that you made a slight typo in the name of JSONConvertable (instead of JSONConvertible) I fixed it and create a new pull request.


User Management Edit User Dialog Boxes Not Displaying

I am very new to Serenity, so I apologize in advance for what seems like it should be an easily resolvable issue. I am making some changes to Serenity to enable dynamically overriding the connection variable based on MachineName to match connection key names in the web.config file. Everything seems to be working fine EXCEPT for the User Management -> Edit User dialog window. It won't come up when the User Name or User's Key Field is clicked on. I am thinking there is either: 1.) Still one or more places I need to dynamically set the connection - that I am not finding - or - 2.) A section of code wasn't modified correctly and has disabled the Edit User dialog. If needed, I can provide any desired code/files; I have inserted my modified UserEndpoint.cs, below.
Thank you in advance for your kind assistance!
`
namespace IronSpiderSerenity.Administration.Endpoints
{
using Entities;
using Repositories;
using Serenity;
using Serenity.ComponentModel;
using Serenity.Data;
using Serenity.Services;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using MyRepository = Repositories.UserRepository;
using MyRow = Entities.UserRow;
[RoutePrefix("Services/Administration/User"), Route("{action}")]
[ConnectionKey(typeof(MyRow)), ServiceAuthorize(typeof(MyRow))]
public class UserController : ServiceEndpoint
{
    [HttpPost, AuthorizeCreate(typeof(MyRow))]
    public SaveResponse Create(SaveRequest<MyRow> request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        using (var uow = new UnitOfWork(connection))
        {
            var result = new MyRepository().Create(uow, request);
            uow.Commit();
            return result;
        }
    }

    [HttpPost, AuthorizeUpdate(typeof(MyRow))]
    public SaveResponse Update(SaveRequest<MyRow> request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        using (var uow = new UnitOfWork(connection))
        {
            var result = new MyRepository().Update(uow, request);
            uow.Commit();
            return result;
        }
    }

    [HttpPost, AuthorizeDelete(typeof(MyRow))]
    public DeleteResponse Delete(DeleteRequest request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        using (var uow = new UnitOfWork(connection))
        {
            var result = new MyRepository().Delete(uow, request);
            uow.Commit();
            return result;
        }
    }

    [HttpPost, AuthorizeDelete(typeof(MyRow))]
    public UndeleteResponse Undelete(UndeleteRequest request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        using (var uow = new UnitOfWork(connection))
        {
            var result = new MyRepository().Undelete(uow, request);
            uow.Commit();
            return result;
        }
    }

    public RetrieveResponse<MyRow> Retrieve(RetrieveRequest request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        {
            return new MyRepository().Retrieve(connection, request);
        }
    }

    public ListResponse<MyRow> List(ListRequest request)
    {
        using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
        {
            return new MyRepository().List(connection, request);
        }
    }

//
    private static string[] permissionsUsedFromScript;

    /// <summary>
    /// This declares a dynamic script with key 'UserData' that will be available from client side.
    /// We don't cache it at dynamic script manager, because dynamic scripts are cached globally,
    /// similar to static variables, not per user.
    /// </summary>
    [NonAction, DataScript("UserData", CacheDuration = -1), ServiceAuthorize]
    public ScriptUserDefinition GetUserData()
    {
        var result = new ScriptUserDefinition();
        var user = Authorization.UserDefinition as UserDefinition;

        if (user == null)
        {
            result.Permissions = new Dictionary<string, bool>();
            return result;
        }

        result.Username = user.Username;
        result.DisplayName = user.DisplayName;
        result.IsAdmin = user.Username == "admin";

        result.Permissions = TwoLevelCache.GetLocalStoreOnly("ScriptUserPermissions:" + user.Id, TimeSpan.Zero,
            UserPermissionRow.Fields.GenerationKey, () =>
            {
                var permissions = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);

                if (permissionsUsedFromScript == null)
                {
                    permissionsUsedFromScript = new UserPermissionRepository().ListPermissionKeys().Entities
                        .Where(permissionKey =>
                        {
                            // this sends permission information for all permission keys to client side.
                            // if you don't need all of them to be available from script, filter them here.
                            // this is recommended for security / performance reasons...
                            return true;
                        }).ToArray();
                }

                foreach (var permissionKey in permissionsUsedFromScript)
                {
                    if (Authorization.HasPermission(permissionKey))
                        permissions[permissionKey] = true;
                }

                return permissions;
            });

        return result;
    }
}

}
`

Have you checked the apparent errors in browser console? That is the first step in checking causes and often gives more direct information than opening an issue and ask for review and suggestions. Can you add a screen shot to this issue if your browser console shows any error when opening the Edit Window?Good luck. On Dec 8, 2017 2:47 PM, stevenrboone<EMAIL_ADDRESS>wrote:I am very new to Serenity, so I apologize in advance for what seems like it should be an easily resolvable issue. I am making some changes to Serenity to enable dynamically overriding the connection variable based on MachineName to match connection key names in the web.config file. Everything seems to be working fine EXCEPT for the User Management -> Edit User dialog window. It won't come up when the User Name or User's Key Field is clicked on. I am thinking there is either: 1.) Still one or more places I need to dynamically set the connection - that I am not finding - or - 2.) A section of code wasn't modified correctly and has disabled the Edit User dialog. If needed, I can provide any desired code/files; I have inserted my modified UserEndpoint.cs, below.
Thank you in advance for your kind assistance!
`
namespace IronSpiderSerenity.Administration.Endpoints
{
using Entities;
using Repositories;
using Serenity;
using Serenity.ComponentModel;
using Serenity.Data;
using Serenity.Services;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using MyRepository = Repositories.UserRepository;
using MyRow = Entities.UserRow;
[RoutePrefix("Services/Administration/User"), Route("{action}")]
[ConnectionKey(typeof(MyRow)), ServiceAuthorize(typeof(MyRow))]
public class UserController : ServiceEndpoint
{
[HttpPost, AuthorizeCreate(typeof(MyRow))]
public SaveResponse Create(SaveRequest request)
{
using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
using (var uow = new UnitOfWork(connection))
{
var result = new MyRepository().Create(uow, request);
uow.Commit();
return result;
}
}
[HttpPost, AuthorizeUpdate(typeof(MyRow))]
public SaveResponse Update(SaveRequest<MyRow> request)
{
    using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
    using (var uow = new UnitOfWork(connection))
    {
        var result = new MyRepository().Update(uow, request);
        uow.Commit();
        return result;
    }
}

[HttpPost, AuthorizeDelete(typeof(MyRow))]
public DeleteResponse Delete(DeleteRequest request)
{
    using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
    using (var uow = new UnitOfWork(connection))
    {
        var result = new MyRepository().Delete(uow, request);
        uow.Commit();
        return result;
    }
}

[HttpPost, AuthorizeDelete(typeof(MyRow))]
public UndeleteResponse Undelete(UndeleteRequest request)
{
    using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
    using (var uow = new UnitOfWork(connection))
    {
        var result = new MyRepository().Undelete(uow, request);
        uow.Commit();
        return result;
    }
}

public RetrieveResponse<MyRow> Retrieve(RetrieveRequest request)
{
    using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
    {
        return new MyRepository().Retrieve(connection, request);
    }
}

public ListResponse<MyRow> List(ListRequest request)
{
    using (var connection = SqlConnections.NewByKey("Default_" + Environment.MachineName))
    {
        return new MyRepository().List(connection, request);
    }
}

//
private static string[] permissionsUsedFromScript;
/// <summary>
/// This declares a dynamic script with key 'UserData' that will be available from client side.
/// We don't cache it at dynamic script manager, because dynamic scripts are cached globally,
/// similar to static variables, not per user.
/// </summary>
[NonAction, DataScript("UserData", CacheDuration = -1), ServiceAuthorize]
public ScriptUserDefinition GetUserData()
{
    var result = new ScriptUserDefinition();
    var user = Authorization.UserDefinition as UserDefinition;

    if (user == null)
    {
        result.Permissions = new Dictionary<string, bool>();
        return result;
    }

    result.Username = user.Username;
    result.DisplayName = user.DisplayName;
    result.IsAdmin = user.Username == "admin";

    result.Permissions = TwoLevelCache.GetLocalStoreOnly("ScriptUserPermissions:" + user.Id, TimeSpan.Zero,
        UserPermissionRow.Fields.GenerationKey, () =>
        {
            var permissions = new Dictionary<string, bool>(StringComparer.OrdinalIgnoreCase);

            if (permissionsUsedFromScript == null)
            {
                permissionsUsedFromScript = new UserPermissionRepository().ListPermissionKeys().Entities
                    .Where(permissionKey =>
                    {
                        // this sends permission information for all permission keys to client side.
                        // if you don't need all of them to be available from script, filter them here.
                        // this is recommended for security / performance reasons...
                        return true;
                    }).ToArray();
            }

            foreach (var permissionKey in permissionsUsedFromScript)
            {
                if (Authorization.HasPermission(permissionKey))
                    permissions[permissionKey] = true;
            }

            return permissions;
        });

    return result;
}

}
}
`
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or mute the thread.

biggikalli
Thank you for pointing out the obvious - that I was overlooking! I have begun to go down the browser console route, hopefully that will lead to success in fixing this issue!

No problem. Just my little contribution in paying it forward. In late 2015, when starting my Serenity journey, I was soon pointed to that same exact "obvious". Volkan & the community created a special Issue/Thread long ago which contains a guideline for self help instead of asking premature and perhaps an unnecessary question:1. "Developer Guide" gives great insight into best practices, common detailed tasks.2. Diving into previous & relevant solved/closed issues for info. My lifesaver in 80%3. Wiki... & other stuff on serenity.isIf still stuck, there is little harm in creating an issue but it's good to follow the short checklist Issue structure, see same old thread. This helps to get quicker replies with more quality advice. I found Serenity in November 2015 and it was a big bite/steep curve, at least for me. But men how I was amazed on the possibilities and in 2016 alone, I was able to finish 4 web apps that served very different & separate purposes. I was "away" this year but now starting again, there are so many ideas and also ways to achieve them w Serenity. I just hope to be able to catch up with the rapid & exciting changes. You wouldn't believe this incredible Volkan dude, he started and is driving Serenity with incredible growth & impact.  Good journey. On Dec 8, 2017 3:40 PM, stevenrboone<EMAIL_ADDRESS>wrote:biggikalli
Thank you for pointing out the obvious - that I was overlooking! I have begun to go down the browser console route, hopefully that will lead to success in fixing this issue!
—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

I have edited all of the *Endpoint.cs files according to the instructions given, but find that the Edit User dialog of the User Management module requires that the ConnectionKey be specified in SettingsRow.cs in order to work, and also to be specified in LanguageRow.cs in order for no errors to be thrown by the application. Because of this, I am not able to dynamically specify the ConnectionKey - which is my goal. Does anyone have any workarounds/ideas for this? Thank you!


TypeError: Cannot read property 'apply' of undefined...

tried installing an older version of ember for a project i need to work on and i'm starting to get this error as of today.
TypeError: Cannot read property 'apply' of undefined
at Class.init (/Users/Carlos/Documents/Ember/node_modules/ember-cli-htmlbars-inline-precompile/index.js:15:21)
at new Class (/Users/Carlos/Documents/Ember/node_modules/core-object/core-object.js:18:12)
at /Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/models/addons-factory.js:48:19
at visit (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/utilities/DAG.js:23:3)
at DAG.topsort (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/utilities/DAG.js:82:7)
at AddonsFactory.initializeAddons (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/models/addons-factory.js:44:9)
at Project.initializeAddons (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/models/project.js:375:36)
at Project.eachAddonCommand (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/models/project.js:426:10)
at module.exports (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/cli/lookup-command.js:34:13)
at CLI. (/Users/Carlos/Documents/Ember/node_modules/ember-cli/lib/cli/cli.js:36:26)
package.json:
"devDependencies": {
"broccoli-asset-rev": "^2.2.0",
"ember-cli": "1.13.14",
"ember-cli-app-version": "^1.0.0",
"ember-cli-babel": "^5.1.5",
"ember-cli-bootstrap-datepicker": "0.5.4",
"ember-cli-bootstrap-sassy": "^0.0.18",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "^1.1.0",
"ember-cli-htmlbars": "^1.0.1",
"ember-cli-htmlbars-inline-precompile": "^0.3.1",
"ember-cli-ic-ajax": "0.2.4",
"ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-moment": "^0.0.2",
"ember-cli-qunit": "^1.0.4",
"ember-cli-release": "0.2.8",
"ember-cli-sass": "^4.0.1",
"ember-cli-sri": "^1.2.0",
"ember-cli-uglify": "^1.2.0",
"ember-d3": "^0.1.0",
"ember-data": "1.13.15",
"ember-disable-proxy-controllers": "^1.0.1",
"ember-export-application-global": "^1.0.4",
"ember-metrics": "0.8.1",
"ember-modal-dialog": "0.8.5",
"moment": "2.10.3"
}
bower.json:
{
"name": "",
"dependencies": {
"ember": "1.13.12",
"ember-cli-shims": "0.0.6",
"ember-cli-test-loader": "0.2.1",
"ember-data": "1.13.15",
"ember-load-initializers": "0.1.7",
"ember-qunit": "0.4.16",
"ember-qunit-notifications": "0.1.0",
"ember-resolver": "~0.1.20",
"jquery": "1.11.3",
"loader.js": "ember-cli/loader.js#3.4.0",
"qunit": "~1.20.0",
"bootstrap-sass": "~3.3.5",
"d3": "~3.5.6",
"bootstrap-datepicker": "~1.4.0",
"jquery.inputmask": "^3.3.1"
}
}
not sure if it is because i'm on an older version of ember of due to the update that happened to the 3.x version of this package.

Changed my ember-cli-htmlbars-inline-precompile from "^0.3.1" to "^0.3.1 <0.3.6".  and it now builds again. was there a dependency introduced in the 0.3.8 version?

No dependencies changed, but very old ember-cli versions didn't properly support init calling _super.  You should absolutely look into updating your ember-cli version, there has been a massive amount of improvements made...

FYI, we're on ember* v2.4.x (which is still supported as an LTS, no?) and this broke us.

ember-cli does not have any LTS system, only Ember itself does.
I'm happy to fix this, just haven't had a chance yet 😔

@rwjblue, thanks and understood, meant that as a heads up that this might break less than "very old" installs.

I left a comment with some info.
https://github.com/ember-cli/ember-cli-htmlbars-inline-precompile/commit/62cd383bdc10b068b4b96cee395bd571a9b14239#commitcomment-21993131


Unexpected behaviour when defining multiple specs for a function

defmodule A do
  use TypeCheck

  @spec! f(integer()) :: integer()
  @spec! f(boolean()) :: boolean()
  def f(x), do: x
end

With this function definition of f I would expect TypeCheck to allow calling f with integers and booleans, but the current behaviour is:
iex(1)> A.f(1)
** (TypeCheck.TypeError) At lib/examples.ex:6:
    The call to `f/1` failed,
    because parameter no. 1 does not adhere to the spec `boolean()`.
    Rather, its value is: `1`.
    Details:
      The call `f(1)`
      does not adhere to spec `f(boolean()) :: boolean()`. Reason:
        parameter no. 1:
          `1` is not a boolean.
    (examples 0.1.0) lib/type_check/spec.ex:203: A."f (overridable 2)"/1
    (examples 0.1.0) lib/type_check/spec.ex:6: A.f/1
iex(1)> A.f(true)
** (TypeCheck.TypeError) At lib/examples.ex:6:
    The call to `f/1` failed,
    because parameter no. 1 does not adhere to the spec `boolean()`.
    Rather, its value is: `true`.
    Details:
      The call `f(true)`
      does not adhere to spec `f(boolean()) :: boolean()`. Reason:
        parameter no. 1:
          `true` is not an integer.
    (examples 0.1.0) lib/type_check/spec.ex:203: A.f/1

Making it more visible in the documentation will definetely be very useful while this is not implemented.
Maybe TypeCheck could also throw a compilation warning when it finds more than one spec for a function. This will be very useful for the user, because the current behaviour doesn't allow the user to correctly invoke the function with multiple specs.


Could not find com.ionspin.kotlin:multiplatform-crypto-delegated:0.1.0

I tried to use this library through gradle: implementation("com.ionspin.kotlin:multiplatform-crypto-delegated:0.1.0")
But I'm getting an error saying it could not find it. Its searching dl.google and maven.

Hi @Snipe3000, I'll look into this, but in the mean time I strongly suggest you try out https://github.com/ionspin/kotlin-multiplatform-libsodium because it's based (well just a wrapper around) on a well known libsodium crypto library, and I maintain it regularly, unlike this one which is a fun side project that I work on from time to time.


I get an error when I put a Tooltip in the label of FormControlLabel

In FormControlLabel API, label is node, so you can write tags,
An error will occur if a Tooltip tag is inserted.
error.

Cannot read property 'className' of undefined

example code
        <FormControlLabel
          value={"false"}
          control={<Radio />}
          label={
            <span>
              info{" "}
              <Tooltip key="comment" title="comment..." placement="right">
                💬
              </Tooltip>
            </span>
          }
        />

You should see a warning in the console. The Tooltip expects a React Element, not a string as a children. Wrap it with a span.

You should see a warning in the console. The Tooltip expects a React Element, not a string as a children. Wrap it with a span.


[monkeys-audio] Port 9.05 wrong hash + build error

Describe the bug
After #29592 was fixed, I wanted to try out that port in my winLAME project. Unfortunately, the AppVeyor build of my project fails:
Installing 1/5 monkeys-audio:x86-windows...
  Building monkeys-audio[core]:x86-windows...
  -- Downloading https://monkeysaudio.com/files/MAC_904_SDK.zip -> MAC_904_SDK.zip...
  [DEBUG] To include the environment variables in debug output, pass --debug-env
  [DEBUG] Feature flag 'binarycaching' unset
  [DEBUG] Feature flag 'compilertracking' unset
  [DEBUG] Feature flag 'registries' unset
  [DEBUG] Feature flag 'versions' unset
  Downloading https://monkeysaudio.com/files/MAC_904_SDK.zip
C:\Tools\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets(161,5): warning : error: Failed to download from mirror set [C:\projects\winlame\source\winlame\winlame_res0402.vcxproj]
C:\Tools\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets(161,5): warning : error: File does not have the expected hash: [C:\projects\winlame\source\winlame\winlame_res0402.vcxproj]
  url: https://monkeysaudio.com/files/MAC_904_SDK.zip
  File: C:\Tools\vcpkg\downloads\MAC_904_SDK.zip.7012.part
  Expected hash: c42c9bae6690a28a69137445c84d53ad7acbd242c2cfe20f329fda46b56812c60de68874301d99cf72ade3bced90fc5aaedacb6fdbca241d4bf4806f6e238219
  Actual hash: d104421e9bfa8c36dee89bd292c06629ff39a33e84569a5578f4a255432238a0cf09a7d03c5f7df3daf0e41d5cf3ac88f3b58581daf09a94935de91056334681

(build log available here: https://ci.appveyor.com/project/vividos/winlame)
When I manually correct the hash in the port file, I get a follow-up build error:
Building monkeys-audio[core]:x86-windows...
-- Using cached MAC_904_SDK.zip.
-- Extracting source C:/Projekte/Tools/vcpkg/downloads/MAC_904_SDK.zip
-- Applying patch fix-project-config.patch
CMake Error at scripts/cmake/z_vcpkg_apply_patches.cmake:34 (message):
  Applying patch failed: Checking patch
  Source/Projects/VS2019/MACDll/MACDll.vcxproj...

  error: Source/Projects/VS2019/MACDll/MACDll.vcxproj: No such file or
  directory

Environment

OS: Windows
Compiler: Visual Studio 2022 version 17.4.4

To Reproduce
Steps to reproduce the behavior:

Start with a fresh vcpkg clone and a clear %LocalAppData%\vcpkg
./vcpkg install monkeys-audio
See hash error
Fix the hash in the port file
Re-run step 2
See build error

Expected behavior
Install should work without hash error or build error.
Failure logs
See above.
Additional context
Hash error:
My guess: In the PR #29709 that fixed #29592, the second URLS line was removed, which still downloaded 6.07, the hash specified was for that older version, not for 9.05. Issue #29187 and PR #29556 was the original update to 9.05.
When I calculate the SHA512 with a manually downloaded zip archive of the SDK, it also calculates the hash as d10442..., not the one in the port file.
Build error: It seems the 9.05 version already migrated from VS2019 to VS2022, so the patches can't find the .vcxproj files anymore that they are supposed to patch. This oversight in the original port may come from the erroneous downloaded 6.07 zip that's stored in %LocalAppData%\vcpkg, which is cached as the newer 9.05 SDK.

Note: I actually had to clear the vcpkg binary archive under %LocalAppData%\vcpkg, since the wrong zip archive was already downloaded once and was reused at every .\vcpkg install.

I will fix this today. :)


Car vs static collision response

[ ] Rectangle vs field collision detection
[ ] Projection of rectangle to avoid overlap
[ ] Adjust velocities/accelerations as result of collision

Car collision vs field is good enough.
It's still separate from the more general purpose Shape-based collisions, but it's fine.
Fixed in b0bcb9b16a4f3ff7b6b73fa83b4d73b696188934


fix(api-reference): search modal a11y improvements

Need this to build a preview so I can test in Safari ✨

overall it looks great!
could be done in another PR but we could also keep the accent color while tabbing, but maintain a darker shade of grey for focus. what do you think? cc @cameronrohani

That should be how it works! The search results are a little weird though because the don't actually gain focus via tab the way a normal element would, they us an aria active descendant pattern

@hwkr feel free to merge once conflicts are fixed : )


run_generation_pipeline is not working

Hi. When I try to run the generating movie reviews example using run_generation_pipeline.py I receive this error:
ValueError: At least one label specified must be in y_true
The config_generator.yml is looking like this:
        annotator:
            method : ''

        dataset:
            max_samples: 20
            label_schema:  ["1","2","3","4","5"]

        predictor:
            method : 'llm'
            config:
                prompt: 'prompts/predictor_completion/prediction_generation.prompt'
                mini_batch_size: 1
                llm:
                    type: 'Azure'
                    name: 'my_engine_name'
                num_workers: 7

        meta_prompts:
            folder: 'prompts/meta_prompts_generation'
            warmup: 1

        eval:
            function_name: 'ranking'
            error_threshold: 4

How can I fix this issue?

Hi,
This part of the configuration:
annotator:
   method : ''

This means that you are not using any annotators. It will work only if you are working with a custom dataset, and load it properly to the system with valid annotations. See here:
https://github.com/Eladlev/AutoPrompt/issues/51#issuecomment-2022592389
If you want to use either LLM annotator or a human annotator, you should modify this field according to the instructions.

Does this apply to the generation task as well? In the examples.md is mentioned that the annotator section in the generation config yaml file remains empty.


Friends, do no deploy exchanges for scammers!

I have deployed an exchange called listex.io
few months back.. and today I came to know that it scammed its customers.
I personally am ashamed of why, I deployed it for a stranger..
I feel like a part of the crime :'(
I won't be deploying for anyone else in future. i can die hungry .. but I can't anyone steal other people's money with my help.

 Your coin ico starts and your honesty gets revealed here with your message. Ummmm

My project is not complete.
It is going to be a blogging network, an educational courses point and Projects hub..
with on platform exchange service. that will support few top coins..
I have been working on my project, since more than 1 year.
you can type "Compile Bitcoin" on youtube and you will find my tech videos..
or Bilal Haider and you will find my tech channel, I am working online since 2009 ..
This is my facebook ID
https://www.facebook.com/bhbigheart
I post everything I do on my facebook ID ..

https://steemit.com/@bilal-haider
That is my steemit blog, I posted about 50+ ruby articles there.. I have merit.. and skills,
but I don't use them for stealing, and scamming.. I am Muslim

Hello guys complete new peatio https://github.com/algobasket/PeatioCryptoExchange
No Error No Bugs !!!


New operators: string operations

New operators to operate on strings:

add
multiply
lower
upper
str_len

Implementation should be factored with base classes so that each operation only needs to define the np.char method it needs to call.
See https://github.com/google/temporian/blob/main/CONTRIBUTING.md#developing-a-new-operator for guidance.
Questions or requests for additional guidance from possible contributors more than welcome!

@tanaysd for sure! Thanks :)
Some notes:

Read and pay close attention to the operator development guide (link in the issue's description)
Check how logical operators (i.e. and, or and xor) are implemented for reference, since those only accept and return bool types, which is similar to these that accept and return strings

Key files: temporian/core/operators/binary/logical.py, temporian/implementation/numpy/operators/binary/logical.py, temporian/core/operators/test/test_logical.py
Although note that these string ops shouldn't modify the feature names they return (logical ops do because they receive 2 EventSets)
Please make tests a bit more thorough than the ones in test_logical, which only test success cases (e.g. test that the expected error is returned when passing an incorrect type)

Make sure you add the new operators to the docs (as described in the guide) and you can see them when running the docs locally

Also: let's start out with just 2 of the operations in the list (let's say upper() and lower()) and only implement the remaining ones after we've validated the design, so you don't need to be making changes to all 9 on every comment, if that sounds alright

Sounds good, thank you, can you share the link to discord server when you've a chance?

https://discord.gg/nT54yATCTy 💪🏼

Hi @ianspektor should string operators get their own folder similar to [calendar](https://github.com/google/temporian/tree/main/temporian/core/operators/calendar) and in your last comment you mention 9 but the original description lists five operators, which one is correct?

It's 5, sorry for the confusion, there were some other ones that I moved to this issue since they need to be extended from existing functions to work with strings (vs. created from scratch like these): https://github.com/google/temporian/issues/369


Scope nesting

How can I provide proper nested scopes destroy?
I have stack of modals which is presented as sibling elements:
<my-modal id=1></my-modal>
<my-modal id=2></my-modal>
<my-modal id=3></my-modal>

Modal 3 initiated from modal 2 and so. Each modal has it's own scope (modal1 has scope1 and so). This scopes are nested. When I try to destroy scope1 then scope2 should be destroyed too.
Currently I'm doing it this way:
let parent = alight.Scope({changeDetector: null, $parent: scope});
parent.$rootChangeDetector = env.changeDetector.new(parent);

let child = alight.Scope({changeDetector: null, $parent: parent});
child.$rootChangeDetector = env.changeDetector.new(child);

parent.$watch('$destroy', () => {
    console.log('destroy parent');
    child.$destroy();
});

child.$watch('$destroy', () => {
    console.log('destroy child');
});

Am I missing something? What the proper way to do it? Maybe parent scope should call $destroy at child scopes automatically?

Something like this: https://jsfiddle.net/lega911/rj2qj2zg/
using change detector: 0.12 https://jsfiddle.net/lega911/4e1nmexy/ similar in 0.14 https://jsfiddle.net/lega911/mqm20k2b/

It looks strange that sometimes I get error 'No change detector' event if I create scope with $new() and I should to call scope.$changeDetector = scope.$rootChangeDetector; anytime to prevent it. Why could scope not to have CD?

some explanation is here http://angular-light.readthedocs.io/en/latest/change_detector.html#how-does-it-work
briefly:
var scope = {};
var cd1 = new ChangeDetector(scope); // for one directive, e.g. al-if
var cd2 = new ChangeDetector(scope); // for another directive

cd1 has cd1.watch and cd2 has cd2.watch (it's impossible to use one changeDetector for everything)
so which "watch" should be called if you call scope.$watch? there are cases when impossible to know which changeDetector.watch should be called, in this case you have 'No change detector'
it's why I voided scope in 0.14, it is like just rendering template:
var data = {title: 'hello'};  // object with data
var cd = alight('#app', data);  // render data to DOM

data.title = 'new value';  // change data
cd.scan();  // re-render data to DOM

  {{parent}}

 {{child}}

in this case:

first al-if creates changeDetector and {{parent}} is placed to it
second al-if creates child changeDetector and {{child}} is placed to it

so when you switch second to false, then second al-if will destroy child changeDetector and {{child}} will be removed.
if you would put everything in root changedetector, then {{child}} would not be removed.


Unnecessary allocations per frame

Doing some memory allocations timeline testing in Chrome has revealed a few spots where Lightning is performing a lot of heap allocations unnecessarily leading to a lot of garbage being generated per frame.
The Rounded Rectangle Shader is a key part where this occurs.
Each uniform is set using the variadic function _setUniform and the values are passed as individual parameters, but then put into an array to be passed to uniform4fv, etc. The issue with that, is putting those values into an array allocates an array of those floats. So in our application that leads to ~300kb/s of GC pressure.
Providing the ability to disable the WebGLStateManager and refactoring the uniforms to directly use functions like uniform4f when the parameters are not already in a vector leads to far less GC pressure, and in our experience can drastically improve performance.
Understanding that it may be a design of tradeoffs, wanted to open an issue for discussion here to see if there was anything we could be missing.

In addition, to the allocations from the use of setUniform, a shader like RoundedRectangle allocate on every frame in the map function converting the radius to the final int32's.

Ugh that's bad. For some shaders the arrays could potentially be "cached"?

For some shaders the arrays can definitely be cached, but in a lot of cases they can also be entirely avoided if you add the exact functions you wanted to call rather than going through the API of setUniform that only allows a single value parameter
https://github.com/rdkcentral/Lightning/blob/master/src/renderer/webgl/shaders/RoundedRectangleShader.mjs#L145-L151
Those Float32Arrays are only necessary because of the setUniform API of currying the GL function to use only supports a single value for the glFunction.
If instead you had a setUniform[2,3,4]f, you could avoid all that heap allocation and just stack alloc making GC pressure a lot lower.
This largely doesn't matter until you have something animating on screen and then every rounded rect allocs 6 floats of garbage per frame.


Issue #732: incorrect reference to Sparkl app in Tonr (OAuth 1)

Changing reference to Sparkl OAuth 1 sample app, so that mvn tomcat7:run command would work correctly.
Fixing Github issue 732
(https://github.com/spring-projects/spring-security-oauth/issues/732)

Thanks for the PR! This is now merged via e30a7af8b1a98fe858fbf1c1448e4b88c3ea6c4a


Extends spfx doctor command with default output type as text. Closes #3125

Extends spfx doctor command with default output type as text. Closes #3125

Thank you for the quick turnaournd @Jwaegebaert we will review shortly 👍

Merged manually. Thank you! 👏


cppcheck: 2.7 -> 2.7.3

Description of changes
Fix packaging of cppcheck-htmlreport and bump to the latest version.
And switch from sourceforge to github, as upstream hasn't updated the
sourceforge pages yet. (I checked the download links on the sourceforge
page and they link to https://github.com/danmar/cppcheck, so that should
be fine.)

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Suggest adding doCheck = true; as the tests pass for me, nixos x86_64 & macos 10.15.

Suggest adding doCheck = true; as the tests pass for me, nixos x86_64 & macos 10.15.

Good idea, done.
I also tested it on aarch64, through emulation (boot.binfmt.emulatedSystems = [ "aarch64-linux" ]).


Fix markdown lint errors, fixes #110

Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

This fixes linter complaints as reported by @mrybczyn

This PR only fixes whitespace lint issues in the markdown, so I'm going to merge it ASAP. We can always make further changes if there's a problem.


Additions and comments to Optimization

Hi @lupif
This is the first in a series of commits of issues, remarks, and other additions to your optimization branch that I encounter. There is no need to resolve this pull request right now, as I will add other commits to it in time.
In the end we can process this PR and move the optimization branch entirely to the Tudat account.

77d23b0 fixes the issue that we had today where CMake had to run twice on a fresh install.
The issue was caused by the absence of build/pagmo2/include/pagmo/config.hpp, which only get's created by add_subdirectory( "${PROJECTROOT}pagmo2/" ).
Also FindPaGMO2.cmake has been updated. It now extracts the version from the CMakeLists.txt file instead.
After config.hpp has been generated it is copied to the pagmo2/build/include/pagmo folder. Where it can be used by your applications. The build folder is ignored by the pagmo2 git project.


Oracle

Do you plan to implement Oracle support?

Have you tried using Oracle with this? If it's supported by SqlAlchemy, I'd expect it to 'just work'.

https://github.com/pbugnion/jupyterlab-sql/issues/81


Document recommendation for potential adoption by Cardano projects

Duplicate of https://github.com/KERIAuth/keriauth-blazor-wasm/issues/71


Start a CHANGELOG to track changes

There's no change log that shows the history of the module. Would be a good idea to start tracking changes now that we're 1.0.0.

There is this file used in the doc: docs/source/changelog.rst
Maybe this file can be moved ../../CHANGELOG and changeling.rst could simply .. include:: ../../CHANGELOG

Oh! I didn't even know it existed! I'll do what you suggest so it has a more prominent location. :)


Ability to create a session from cwd

It would be awesome if "." is kept as a reserved string and expanded to something like sesh connect $(pwd)
Current Behaviour:
If used with fzf, sesh will jump to an existing dir/session with name starting ".", for example ".config" or ".local" etc etc
Proposed Behaviour:
sesh c . creates a new tmux session with cwd/pwd as the root and attaches to it.
Why reserve "." as an input ?

One letter fuzzy finds are inherently not accurate anyways. So i wouldn't mind writing .conf or .c at minimum if i want to attach a session at .config.
It is common for programs to work like that for example if i want to open vim at cwd, i would do vim . or simply vim

Great idea, this makes sense to me.


docs: update vue-router documentation

Update documentation to explain differences between using localVue and mocks and provide examples of the use case for each.
A common gotcha with integration testing (which don't stub children) is when using the mocks approach the router instance is not available on child components

Neat!
Looks like some formatting is a bit off:
Checking formatting...
docs/guides/using-with-vue-router.md
Code style issues found in the above file(s). Forgot to run Prettier?

Would you mind running Prettier and push again?  (We should def ease this process with a precommit hook or similar…)

@afontcu or i was lazy and committed via github :laughing:

I never realized mocks was only for the component in question - I thought it would be available to all the children, too 🤔
It sounds like this should be the default behavior.

@lmiller1990 I have created a new issue. Still believe best to document the current behaviour.


Touchup fileo typo

Signed-off-by: TomSweeneyRedHat<EMAIL_ADDRESS>One char change to fix up a typo in an error message.

/lgtm


Azure Sentinel?

Will this page be updated to include Azure Sentinel-based options?

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

ID: c90f3487-03f3-a06c-e3fe-42cba56d32cf
Version Independent ID: 70441959-1af1-f4d4-503d-e6339426b6a5
Content: Plan reports & monitoring deployment - Azure AD
Content Source: articles/active-directory/reports-monitoring/plan-monitoring-and-reporting.md
Service: active-directory
Sub-service: report-monitor
GitHub Login: @BarbaraSelden
Microsoft Alias: baselden

@zachsaltzman Thanks for your comment. We will review your request and get back you shortly.

@zachsaltzman We do not have any roadmap on updating this document for now.
You could in the meanwhile check  on tis blog for Azure Sentinel Usage.
Let us know if this helps.

@zachsaltzman We would be closing this issue now. Let us know if you need further help.


Display title and summary when sharing Learn Collection

Is your feature request related to a problem? Please describe.
When you share the Learn Collection, only “Profile” is displayed, so the content is difficult to convey.
Describe the solution you'd like
Set the collection title and summary in the OGP tag.
<meta property="og:title" content="Collection title" />
<meta property="og:description" content="Collection description" />
Example of sharing a collection on Facebook

@yamazakik Has this issue been fixed?


Change

Fixes Issue🛠

Closes #
Description👨💻

Type of change📄

[] Bug fix (non-breaking change which fixes an issue)
[] New feature (non-breaking change which adds functionality)

How this has been tested✅

Checklist✅

[] My code follows the style guidelines of this project
[] I have performed a self-review of my own code
[] I have commented my code, particularly in hard-to-understand areas
[] I have added demonstration in the form of GIF/video file
[] I am an Open Source Contributor

Screenshots/GIF📷

Sir I have done but some conflict are there

Resolve the conflicts and edit the PR description and fill every details nicely @shivam101203

Okk


How to get rid of -march=skylake-avx512

Hi,
I am trying to build OpenBLAS 0.3.19 and 0.3.20 from source on our HPC cluster. It has several generations of hardware and I build on the oldest hardware, which has Intel Skylake CPUs.
I am setting explicitly
-march=core-avx2
through CFLAGS, CXXFLAGS as this is supported on all our hardware (including different Intel and AMD cpu types), but the installation always overrides this with
-march=skylake-avx512
even if I set explicitly NO_AVX512=1 when running make.
How can I enforce that "-march=skylake-avx512" is not set?
Would this require to write a patch that removes "-march=skylake-avx512" form all makefiles and getarch.c or is there a simpler way to achieve this?
Any help is appreciated.
Best regards
Sam

This is not supposed to happen, NO_AVX512=1 forces cpu type detection to assume HASWELL at best. Can you please post the complete set of options you use for the build ? (From what you wrote, it should be something like "TARGET=HASWELL DYNAMIC_ARCH=1 NO_AVX512=1"). Is there a particular reason why you are trying 0.3.19 and 20 rather than the current release ?

@martin-frbg : Thank you for your reply. I think I  found the reason. I am sorry, there was a mistake in my buildscript such that NO_AVX512=1 was not properly set in the make script.

Actually if non-AVX512 Skylake/KabyLake/whatever-lake  is your oldest generation, it should be sufficient to set TARGET=HASWELL DYNAMIC_ARCH=1 (so that all the common code is built to be compatible with Haswell) without the NO_AVX512=1, unless you actually want to avoid using AVX512 on the newer machines as well (e.g. for reasons of reproducibility). OTOH if you really want to avoid AVX512 everywhere, just TARGET=HASWELL without even the DYNAMIC_ARCH=1 is probably enough (resulting in faster compilation and much smaller library),as there are few differences between the HASWELL and ZEN targets.

Thank you for your reply and for the build tips. Currently I build without DYNAMIC_ARCH=1 and build with the HASWELL target.
When building software stacks, continuity and reproducibility are important. I also build many packages that depend on OpenBLAS (it is my favorite BLAS implementation and I appreciate that it also contains LAPACK).
I already started to test building newer OpenBLAS versions than 0.3.20 but there is one use case, where I noticed a problem and would like to rebuild other packages (PETSc) with the same OpenBLAS version that I originally used.


Export bzl_library with package files

This allows consumers of rules_pkg to generate docs using stardoc. An example is how skylib does it.

I have a change ready to send as a PR which will provide sources for running stardoc against.
It is blocked behind the backlog of functional changes.
Still, I don't encourage people to use startdoc themselves. It will always be incomplete documentation because the documentation for common attributes comes form other places.
The docs at https://bazelbuild.github.io/rules_pkg/ will be superior to anything you can build on your own for the forseeable  future.

Good to know!
Just to clarify, I'm building docs for rules I'm authoring. It's just that stardoc requires the full transitive set of my deps.

#567 has a fix.    "@rules_pkg//pkg:bzl_srcs" should be usable as a bzl_library.
If anyone wants to patch that in and give it a try that will be great. Otherwise I'll wait until Friday and merge it anyway.
@guw

Works perfectly! I still had to add
"@rules_pkg//:mappings.bzl",
"@rules_pkg//:pkg.bzl",
"@rules_pkg//pkg:bzl_srcs",

as dependencies to my bzl_library.

Thanks.
That is strange.  Why :mappings.bzl?   That is not actually used by
anything.  It is just a forwarder.  Same for pkg.bzl?
Do you use those instead of //pkg:mappings.bzl and //pkg:tar.bzl?  They are
going away sometime this quarter.
https://github.com/bazelbuild/rules_pkg/issues/562
On Wed, Apr 6, 2022 at 2:12 PM Duarte Nunes @.***>
wrote:

Works perfectly! I still had to add
@._pkg//:mappings.bzl",
@._pkg//:pkg.bzl",
@.***_pkg//pkg:bzl_srcs",
as dependencies to my bzl_library.
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/rules_pkg/issues/564#issuecomment-1090580161,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAXHHHGZZUFM2SQTFZTMECLVDXHZ7ANCNFSM5SHSE5YQ
.
You are receiving this because you commented.Message ID:
@.***>

Ah! Thanks, I was indeed using those instead of the pkg:* variants.

Closing as this is fixed in 0.7.0.


Request to add: unreachable

Implementation: (maybe Function.unreachable)
function unreachable(_val) {
    throw new TypeError()
}

Usage:
function route(direction) {
    switch (direction) {
        case "up": case "down": return "left";
        case "left": case "right": return "up";
        default: Function.unreachable(direction)
    }
}

The real power of this helper is used with TypeScript. This function should have type signature (val: never) => never
type Direction = 'up' | 'down' | 'left' | 'right'
function route(direction: Direction) {
    switch (direction) {
        case "up": case "down": return "left";
        case "left": case "right": return "up";
        default: Function.unreachable(direction)
    }
}

It will provide an exhaustive matching guard, which means if I'm missing some cases, it will become a compile error.
Let's say I add one new direction to the type Direction
type Direction = 'up' | 'down' | 'left' | 'right' | 'stay'

The compiler will tell me that: hey! direction is no longer type never (when you exhaustive all possibilities of a variable), you still have one case to check!
This unreachable function is very useful and I have implemented it in many of my repos.

so this is basically "expose %ThrowTypeError%, but with a customized error message about unreachability"?

There is a value passed in, so I think it's clear about what variable is not exhaustive matched and where it happened.

Why would you pass a value in, and why always only one? If it’s unreachable, you aren’t using the value anyways.

See the TS example in OP. By passing a parameter, typescript well worn while type checking. Our actual 262 need not have a parameter, but if TS defines one and gives it a never type, it gives an extremely pleasant dev experience.

This seems like it’d be better handled by some kind of TS-only syntax, rather than adding something to JS.

Thanks for opening this issue. ￼This would need to be proposed as a separate proposal, as per the most recent plenary’s feedback￼ (https://github.com/tc39-transfer/proposal-function-helpers/issues/17#issuecomment-953814353).
I see an analogy between this function and “never”/“nothing” parsers in parser-combinator libraries, which intrigues me a little.
But I don’t really see any use cases other than static checking external to JavaScript itself. Would it always throw a TypeError with a blank message? Is there no way to make it more generally useful?

Why would you pass a value in, and why always only one? If it’s unreachable, you aren’t using the value anyways.

No, when you forgot to handle some possibility, it will halt the program at runtime instead of making the program into a bad state.

Like I mentioned in https://github.com/tc39-transfer/proposal-function-helpers/issues/21#issuecomment-955144067, this unreachable function would need to be a separate proposal. I will not be able to create and champion such a separate proposal for this function, mostly due to limited bandwidth. If you’re interested, I encourage you to create your own proposal! : )