Integrate tailscale into k3s

Is your feature request related to a problem? Please describe.

Support the deployment of k3s in heterogeneous nodes which don't share a local network by using an external VPN such as tailscale
Describe the solution you'd like

I'd like k3s to start the VPN and configure it accordingly so that the integration does not require human intervention and it is seamless
Describe alternatives you've considered

Additional context

On one hand this looks great but I've got an issue still with starting subsequent server nodes. I was able to start my primary server and i can see/verify the tailscale interface is up but it doesn't look like it's authorizing the additional nodes correctly. Is the user expected to authorize the node entirely prior to the startup of k3s or will k3s authorize the node using the included key?
I'm basing my validation workflow off of this description found here https://github.com/k3s-io/k3s/pull/7352#issue-1684429405
Verification
1 - Install tailscale in the node
2 - Create a key in tailscale
3 - Deploy k3s with the flag:

vpn-auth: "name=tailscale,joinKey=$CREATED_KEY"
4 - Verify that:
a) Tailscale interface exists and has an IP
b) kubectl get endpoints is using the tailscale IP
c) kubectl get nodes -o wide shows the tailscale IP as the nodeIP

Testing

$ get_figs
=========== k3s config ===========
write-kubeconfig-mode: 644
debug: true
token: wcgwpostingsecretstotheweb
protect-kernel-defaults: true
cluster-init: true
vpn-auth: "name=tailscale,joinKey=tskey-auth-ksanonomiziomayonaise-WCa15555Sg7Y"
node-external-ip: "<IP_ADDRESS>"

after manually authorizing this second node (even though the config contains a re-usable auth key from the tailscale dash) I was able to start the service correctly.
$ kg ep -A
NAMESPACE     NAME             ENDPOINTS                                  AGE
default       kubernetes       <IP_ADDRESS>:6443,<IP_ADDRESS>:6443       14m
kube-system   kube-dns         <IP_ADDRESS>:53,<IP_ADDRESS>:53,<IP_ADDRESS>:9153   14m
kube-system   metrics-server   <IP_ADDRESS>:10250                            14m
kube-system   traefik          <IP_ADDRESS>:8000,<IP_ADDRESS>:8443              14m

whereas on nodes where I've only installed tailscale and have the "correct" config the output i see when starting the server is below. Note this is with debug: true and the error reporting is effectively the same without more to go by in journalctl -u k3s (maybe a feature request add-on there).
$ sudo k3s server
INFO[0000] Starting VPN: tailscale
exit status 1

$ sudo journalctl -u k3s
: k3s.service: Scheduled restart job, restart counter is at 121.
: Stopped Lightweight Kubernetes.
: Starting Lightweight Kubernetes...
 + /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service
 Failed to get unit file state for nm-cloud-setup.service: No such file or directory
: time="2023-06-09T18:51:36Z" level=info msg="Starting VPN: tailscale"
: exit status 1

$ ip a  (truncated to tailscale interface) - I don't think this is getting authorized correctly as it's still showing an assigned ipv6 address that is presumably used for authorizing into a tailscale network before receiving ipv4 addressing from tailscale network settings itself.
3: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none
    inet6 fe80::oogidie:boogidie:toyota:86/64 scope link stable-privacy

Validated the above workflow actually worked fine - it seems it may have been an authentication issue on the tailscale side when starting subsequent server nodes but there is more process to document and record for our test-plans. Pre-req you'll need to have your own tailscale account created prior - then run TailScale's installer on your node before running k3s with the configuration using your generated authKey inside of the config.yaml.
Under your TailScale Admin Dashboard you'll want to add routing rules to approve subnets used by your cluster (this will change depending on what you configure your subnets to be via config.yaml but the defaults work fine for validation)
append these to your Access Controls section inside of TaileScale's Admin Dash
"autoApprovers": {
		"routes": {
			"<IP_ADDRESS>/16"<EMAIL_ADDRESS>			"2001:cafe:42:0::/56"<EMAIL_ADDRESS>		},
	},

After the above step on the TailScale dash go to your Settings Tab -> Keys -> Generate auth key...
Inside of the pop-up window enable Reusable, Set-expiration to 1-2 days, and enable Ephemeral which will automatically remove the nodes when they're powered down. Then select generate key - this key will get added to your config.yaml like I've shown below.
Install TailScale on each node you intend to use in your cluster over the network
curl -fsSL https://tailscale.com/install.sh | sh

##Environment Details
COMMIT=318ef4e07af1eddb3a9d7b000a9a5508d425627b
Infrastructure

[X] Cloud

Node(s) CPU architecture, OS, and version:
Linux 5.14.21-150400.24.11-default x86_64 GNU/Linux
PRETTY_NAME="SUSE Linux Enterprise Server 15 SP4"

Cluster Configuration:
NAME               STATUS   ROLES                       AGE   VERSION
ip-1-1-1-220       Ready    control-plane,etcd,master   44m   v1.27.2+k3s-318ef4e0
ip-1-1-1-132       Ready    control-plane,etcd,master   48m   v1.27.2+k3s-318ef4e0
ip-1-1-1-136       Ready    control-plane,etcd,master   44m   v1.27.2+k3s-318ef4e0
ip-1-1-1-173       Ready    control-plane,etcd,master   45m   v1.27.2+k3s-318ef4e0

Primary Server node starts up with the below config
Config.yaml:
write-kubeconfig-mode: 644
debug: true
token: caseofthemondaysfrozenvegetables
protect-kernel-defaults: true
cluster-init: true
vpn-auth: "name=tailscale,joinKey=tskey-auth-boom-shakkalakka-anybody-wanna-goto-chotchkie's?"

Example secondary server node configuration targeting tailscale node-ip of the first server
write-kubeconfig-mode: 644
debug: true
token: caseofthemondaysfrozenvegetables
protect-kernel-defaults: true
vpn-auth: "name=tailscale,joinKey=tskey-auth-boom-shakkalakka-anybody-wanna-goto-chotchkie's?"
server: https://<IP_ADDRESS>:6443

installation

$ curl -fsSL https://tailscale.com/install.sh | sh //required before starting k3s targeting tailscales network
$ curl https://get.k3s.io --output install-"k3s".sh
$ sudo chmod +x install-"k3s".sh
$ sudo groupadd --system etcd && sudo useradd -s /sbin/nologin --system -g etcd etcd
$ sudo modprobe ip_vs_rr
$ sudo modprobe ip_vs_wrr
$ sudo modprobe ip_vs_sh
$ sudo printf "on_oovm.panic_on_oom=0 \nvm.overcommit_memory=1 \nkernel.panic=10 \nkernel.panic_ps=1 \nkernel.panic_on_oops=1 \n" > ~/90-kubelet.conf
$ sudo cp 90-kubelet.conf /etc/sysctl.d/
$ sudo systemctl restart systemd-sysctl
$ sudo INSTALL_K3S_COMMIT=318ef4e07af1eddb3a9d7b000a9a5508d425627b INSTALL_K3S_EXEC=server ./install-k3s.sh
$ set_kubefig
$ kgn -o wide
$ ip route show table 52 //for some reason this 52 is the typical name for tailscale on nodes

Results:
cluster is running and subnets for pod/pod traffic are traversing tailscale.
$ sudo ip route show table 52
<IP_ADDRESS>/24 dev tailscale0
<IP_ADDRESS>/24 dev tailscale0
<IP_ADDRESS>/24 dev tailscale0
<IP_ADDRESS>  dev tailscale0
<IP_ADDRESS>   dev tailscale0
<IP_ADDRESS>  dev tailscale0
<IP_ADDRESS>  dev tailscale0
<IP_ADDRESS>   dev tailscale0
<IP_ADDRESS>   dev tailscale0
<IP_ADDRESS>   dev tailscale0
<IP_ADDRESS>   dev tailscale0
<IP_ADDRESS>   dev tailscale0

$ kgp -A
NAMESPACE     NAME                                          READY   STATUS      RESTARTS   AGE
default       akri-agent-daemonset-48kq9                    1/1     Running     0          51m
default       akri-agent-daemonset-5k4vv                    1/1     Running     0          51m
default       akri-agent-daemonset-rbbxf                    1/1     Running     0          51m
default       akri-agent-daemonset-wt7lh                    1/1     Running     0          51m
default       akri-controller-deployment-64b48bb59d-2wdx8   1/1     Running     0          51m
kube-system   coredns-77ccd57875-wwjfj                      1/1     Running     0          60m
kube-system   helm-install-traefik-crd-q4gjf                0/1     Completed   0          60m
kube-system   helm-install-traefik-hmz5r                    0/1     Completed   1          60m
kube-system   local-path-provisioner-957fdf8bc-2x77w        1/1     Running     0          60m
kube-system   metrics-server-648b5df564-lclmc               1/1     Running     0          60m
kube-system   svclb-traefik-1fed5223-9jcjk                  2/2     Running     0          57m
kube-system   svclb-traefik-1fed5223-9l6bj                  2/2     Running     0          56m
kube-system   svclb-traefik-1fed5223-f7829                  2/2     Running     0          56m
kube-system   svclb-traefik-1fed5223-xdpvd                  2/2     Running     0          60m
kube-system   traefik-64f55bb67d-t7l9w                      1/1     Running     0          60m

Hi I've been trying to use this feature in my recently rebuilt k3s cluster, so I'm not sure what "Integrate tailscale into k3s" means and what additional capabilities have been added for a simple homelab user like me.
I was expecting that I could just type prometheus.monitoring.svc.cluster.local or something and see my prometheus instance after setting it up, so digging deeper, here's what I found.
I see only one route added <IP_ADDRESS>/24 which makes pods reachable but not services, which are on <IP_ADDRESS>/24 by default.
Also, it would be nice if we could set up DNS as well, with split dns, so that we could resolve as if we were inside the cluster.


RT4175: Fix regression using PKCS7_verify() with Authenticode

Authenticode uses an extended PKCS#7 format, where the embedded data are
not directly the data to be verified; instead an Authenticode-specific
data structure (SpcIndirectDataContent) is embedded, which describes
the various files covered by the Authenticode signature.
In this case, we need to allow PKCS7_verify() to be called with external
data even though PKCS7_get_detached() is not true.
This always used to work; there was a "sanity" check for external data
being passed to PKCS7_verify() with a non-detached PKCS#7 signature, but
it was always #ifdef'd out.
It was broken in HEAD by commit 55500ea7c ("GH354: Memory leak fixes") and
in 1.0.2 by cherry-picking that same commit to become c8491de39.
(cherry picked from commit 5e95ba001efb38963a06e1447fde21f06355468d)

For that commit to go back in there should be restoration of the original comment noting netscape context and an additional description of this context to make it clear why this logic is again being reverted to not check. Without that we are leaving little indication for a future reviewer to see the issue when looking at the code separate from the source repository change history.

How about if I add @dwmw2 's comment above as a comment in the code?

And the original Netscape comment which got removed ... when it was made unconditionally enabled.
Basically I think we need the sanity check to be there ifdef'd out with a larger comment indicating the two circumstances where it is required (the original netscape one and this authenticode context).
With a comment inserted covering both and the checking code back in an ifdef block I think we would have the right solution - i.e. not actually applying this pull request - but undoing the previous comment delete and ifdef removal to be back with an expanded comment.


Oracle XE images

Even that there's some Oracle XE images available at docker (wnameless/oracle-xe-11g and others) would be nice to have the Oracle official docker stuff

Those images contravene the Oracle license for XE and should not be used.

@bit-man as Avi said, those images are not in accordance to the license. But we will work with the Oracle DB product team and see if we can come up with a solution for this. Anyway, thanks a lot for showing interest in an official Dockerfile for Oracle DB. We'll keep you and the community posted.

Thanks for taking care.


Error running freeipa-server

The same error as Error running systemd freeipa-server #46
but on adelton/freeipa-server:latest
Configuring the web interface (httpd). Estimated time: 1 minute
  [1/19]: setting mod_nss port to 443
  [2/19]: setting mod_nss protocol list to TLSv1.0 - TLSv1.2
  [3/19]: setting mod_nss password file
  [4/19]: enabling mod_nss renegotiate
  [5/19]: adding URL rewriting rules
  [6/19]: configuring httpd
  [7/19]: configure certmonger for renewals
  [8/19]: setting up ssl
  [9/19]: importing CA certificates from LDAP
  [10/19]: setting up browser autoconfig
  [11/19]: publish CA cert
  [12/19]: creating a keytab for httpd
  [13/19]: clean up any existing httpd ccache
  [14/19]: configuring SELinux for httpd
  [15/19]: create KDC proxy user
  [16/19]: create KDC proxy config
  [17/19]: enable KDC proxy
  [18/19]: restarting httpd
  [error] CalledProcessError: Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10
ipa.ipapython.install.cli.install_tool(Server): ERROR    Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10
FreeIPA server configuration failed.
No service definition found for [ipa-otpd.service].
Java virtual machine used: /usr/lib/jvm/jre/bin/java
classpath used: /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/lib/java/commons-daemon.jar
main class used: org.apache.catalina.startup.Bootstrap
flags used:
options used: -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
arguments used: stop

2016-02-20T13:27:34Z DEBUG stderr=
2016-02-20T13:27:34Z DEBUG Loading StateFile from '/var/lib/ipa/sysrestore/sysrestore.state'
2016-02-20T13:27:34Z DEBUG Saving StateFile to '/var/lib/ipa/sysrestore/sysrestore.state'
2016-02-20T13:27:34Z DEBUG Starting external process
2016-02-20T13:27:34Z DEBUG args='/bin/systemctl' 'restart' 'httpd.service'
2016-02-20T13:28:25Z DEBUG Process finished, return code=10
2016-02-20T13:28:25Z DEBUG stdout=
2016-02-20T13:28:25Z DEBUG stderr=ipa         : INFO     KDC proxy enabled

2016-02-20T13:28:25Z DEBUG Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 416, in start_creation
    run_step(full_msg, method)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 406, in run_step
    method()
  File "/usr/lib/python2.7/site-packages/ipaserver/install/httpinstance.py", line 167, in __start
    self.restart()
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 316, in restart
    self.service.restart(instance_name, capture_output=capture_output, wait=wait)
  File "/usr/lib/python2.7/site-packages/ipaplatform/base/services.py", line 314, in restart
    capture_output=capture_output)
  File "/usr/lib/python2.7/site-packages/ipapython/ipautil.py", line 373, in run
    raise CalledProcessError(p.returncode, arg_string, stdout)
CalledProcessError: Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10

2016-02-20T13:28:25Z DEBUG   [error] CalledProcessError: Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10
2016-02-20T13:28:25Z DEBUG   File "/usr/lib/python2.7/site-packages/ipapython/admintool.py", line 171, in execute
    return_value = self.run()
  File "/usr/lib/python2.7/site-packages/ipapython/install/cli.py", line 307, in run
    cfgr.run()
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 294, in run
    self.execute()
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 316, in execute
    for nothing in self._executor():
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 356, in __runner
    self._handle_exception(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 378, in _handle_exception
    util.raise_exc_info(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 346, in __runner
    step()
  File "/usr/lib/python2.7/site-packages/ipapython/install/util.py", line 87, in run_generator_with_yield_from
    raise_exc_info(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/util.py", line 65, in run_generator_with_yield_from
    value = gen.send(prev_value)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 557, in _configure
    executor.next()
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 356, in __runner
    self._handle_exception(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 435, in _handle_exception
    self.__parent._handle_exception(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 378, in _handle_exception
    util.raise_exc_info(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 432, in _handle_exception
    super(ComponentBase, self)._handle_exception(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 378, in _handle_exception
    util.raise_exc_info(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/core.py", line 346, in __runner
    step()
  File "/usr/lib/python2.7/site-packages/ipapython/install/util.py", line 87, in run_generator_with_yield_from
    raise_exc_info(exc_info)
  File "/usr/lib/python2.7/site-packages/ipapython/install/util.py", line 65, in run_generator_with_yield_from
    value = gen.send(prev_value)
  File "/usr/lib/python2.7/site-packages/ipapython/install/common.py", line 63, in _install
    for nothing in self._installer(self.parent):
  File "/usr/lib/python2.7/site-packages/ipaserver/install/server/install.py", line 1285, in main
    install(self)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/server/install.py", line 257, in decorated
    func(installer)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/server/install.py", line 822, in install
    ca_is_configured=setup_ca)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/httpinstance.py", line 163, in create_instance
    self.start_creation(runtime=60)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 416, in start_creation
    run_step(full_msg, method)
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 406, in run_step
    method()
  File "/usr/lib/python2.7/site-packages/ipaserver/install/httpinstance.py", line 167, in __start
    self.restart()
  File "/usr/lib/python2.7/site-packages/ipaserver/install/service.py", line 316, in restart
    self.service.restart(instance_name, capture_output=capture_output, wait=wait)
  File "/usr/lib/python2.7/site-packages/ipaplatform/base/services.py", line 314, in restart
    capture_output=capture_output)
  File "/usr/lib/python2.7/site-packages/ipapython/ipautil.py", line 373, in run
    raise CalledProcessError(p.returncode, arg_string, stdout)

2016-02-20T13:28:25Z DEBUG The ipa-server-install command failed, exception: CalledProcessError: Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10
2016-02-20T13:28:25Z ERROR Command ''/bin/systemctl' 'restart' 'httpd.service'' returned non-zero exit status 10

If I create $(pwd)/data/var/log/httpd directory before running the container, the installation goes well.

Can you check the build log to see if some of the steps (probably installing the httpd package) yielded some errors (without failing) so that some things are not created properly?

I also got the same problem. I tried many times n got same issue.

I also got the same problem. I tried many times n got same issue.

Can you check the build log to see if some of the steps (probably installing the httpd package) yielded some errors (without failing) so that some things are not created properly?

I pulled the image from Docker hub. Will try to build it and update.

I pulled the image from Docker hub. Will try to build it and update.

Which image exactly? What is the exact docker run command that you use? What OS on the host?

I pulled the adelton/freeipa-server:latest image
created a file /srv/freeipa/ipa-server-install-options with following parameters:
--ds-password=root@123 --admin-password=root@123
command I'm using:
docker run -ti --name freeipa-server -h freeipa.xyz.com -v /etc/localtime:/etc/localtime:ro -v /srv/freeipa:/data:Z adelton/freeipa-server

I'm on Debian jessie

I pulled the adelton/freeipa-server:latest image

Ah, checking the build logs it seems the Docker hub itself is hitting https://github.com/docker/docker/issues/6980. Sorry about the inconvenience. I've contacted Docker support.
Rebuilding the image locally without AUFS should give you working setup.

Local build successful with few errors but worked perfectly.


Upgrading to Typescript 2.1 and fixing compile errors

@lumaxis @kmiecikt  Could you guys take a look at this?

Looks good!


ignore TLS certificate error (self signed)

Hi,
Is there a way for ignoring SSL/TLS Certificats error ? My websocket dev server use TLS with a self signed certificate.
Note that after retrying after 2 seconds, recws enter into a loop for 2 seconds before closing ws, see #38

There is the TLSClientConfig for this

For memory:
        ws := recws.RecConn{
		KeepAliveTimeout: 10 * time.Second,
	}

	ws.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}


Refactor LatheDatabase and GalacticMarket

Description

These lists embedded in the prototype are terrible. Just makes updating them a chore. Would be good even to just have them separated from the prototype and in /Catalog.
Additional context

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

fixed by #8686, at least fo galactic market

galactic market is kil and lathe databases are fine.


Addition of License API elements

I've added in functionality to provide license information from https://developer.github.com/v3/licenses/:

Get list of GitHub licenses using GitHub#listLicenses()
Get the details for a specific license using GitHub#getLicense(String key)
For a GHRepository:

The basic license details are loaded with the repo information (GHRepository#getLicense)
GHRepository#getFullLicense will get the full license information (ala GitHub#getLicense(String key))
GHRepository#getLicenseContent() will get the license content information for the repository

As this uses a preview API, access to the information requires the use of application/vnd.github.drax-preview+json in the HTTP connection's ACCEPT header. This is provided in PreviewHttpConnector.java.
All existing functionality appears to continue working with the normal connector - PreviewHttpConnector just opens up the extra data from the Licenses API.

I've incorporated the change into 1.77, but had to squash the change to avoid whitespace changes to GHRepository. I hope you won't mind.


Scenario stacks: modeling energy situations at different scales

Background
We are making more and more local/regional/scaled scenario's with the ETM (and the Stakeholder Analysis module). Currently we start with the national dataset, scale* everything down to the local size and use that.
I anticipate that local/scaled scenario's and the relation they have to each other and their encompassing (national) scenario will become increasingly important in the coming year(s).
*Because the scaling of the present dataset (as a fraction of the national dataset) is often insufficiently representative of the local situation, elaborate update statements are used to scale both present and future data. This ticket is not about this (undesirable) situation. But this one is.
Shortcomings of the current practice
The user can't choose multiple national scenario's
Currently, a parent 'contextual' scenario is used to define the starting situation for the local 'child' scenario. It would be very useful, however, to be able to be able to see the effects of choosing another 'contextual' scenario while keeping the local settings the same.
Example: I have used the vanilla NL scenario as the basis for my 100 household local scenario where I have given 100% of the households solar panels and cars are 100% electric as well.
Now, I'd like to see what would change to my local situation if I used the Urgenda-100%-renewable scenario as a parent instead of the vanilla one.
National scenario and local scenario don't communicate
Currently, changing a slider in a child scenario does not affect the parent scenario. If the scale of the child scenario is of the order of the national scenario (say the size of a province), it would be useful to communicate the effect of the local choices to the national scenario.
Example: I have a scaled scenario of 10% of the households of the national parent. If I make 100% of the cars electric, in the national scenario, the slider for electric cars should be minimally 10% to be consistent with this.
Aggregation of scenario's is difficult/opaque
It would be nice to be able to see how a set of local scenario's 'adds up' on higher levels. We have the 'merging' capability in ETM but it is a bit clunky and not very intuitive.
Proposed solution direction
Stack
Perhaps we could introduce a new structure: a 'stack' of scenario's:

International: EU27
National: Urgenda
Provincial: -
Municipal: Groningen
Regional: -
Neighbourhood: Paddepoel_v01
Street: Paddepoel_straat_A_v02

where the user can choose another scenario at any level and has influence on how these scenario's should interact.
I think it makes sense to allow intermediate levels to be empty which suggests that the values from the first non-empty higher level would be adopted.
Interaction
The user should be able to

choose if a slider-setting should be locked for a scenario. This means that no other scenario can change it.
make a slider setting affect all scenario's upward in scale
make a slider setting affect all scenario's downward in scale

Interface
In addition to the current menu (extended with an extra level for local datasets?) I suggest we allow the user to zoom in to the desired level starting from the international scale:

where colours could indicate for which regions datasets already exist. On the national level, the next (provincial) level is shown:

Zooming in even further, you can draw a polygon around your region of interest to load the required data:

I think this has several advantages:

It looks sexy
The user becomes aware of the embedding of scenario's
It provides an intuitive interface to choose an existing or new scenario at each level
It shows which regions are covered by the ETM and invites to explore other regions and scenario's

Complications
Need for similar datasets between all scenario's in the stack
To make the above approach feasible, the present data needs to be similar for the scenario's (i.e., scenario's must have present and future data which can be translated into each other with simple scaling factors (update statements).
I don't know how stringent this requirement is but I can image it becoming a real pain to translate a growth percentage from one scenario to another if the present data is very different.
Interactions
I'm not entirely sure what the 'rules' should be for mutual influencing of slider settings at different levels.
@antw @AlexanderWirtz @jorisberkhout @dennisschoenmakers @grdw @DorinevanderVlies (@robterwel) I'd love to hear your opinions and ideas on this rather wild idea! 😄

I would like to keep this issue as a bit of documentation.


[Feature]: Adjust metrics labels name for better compitability

Is there an existing issue already for this feature request/idea?

[X] I have searched for an existing issue, and could not find anything. I believe this is a new feature request to be evaluated.

What problem is this feature going to solve? Why should it be added?
Thre is 2 problems:

when CloudNative monitored by Prometheus served by Thanos, cluster is part common externalLabels used in Thanos (and kube-prometheus-stack), due to this all metrics from CloudNative get overwritten by Thanos after processing.
when there multiple controller_runtime_active_workers metrics from other controllers (not CloudNative-PG's one) they showed in default Grafana dashboards as option for namespaces

Describe the solution you'd like

Move away from label cluster to cnpg_cluster, it even already used in alerts statically, therefore static label on alerts can be remove, as it will be added via Prometheus as part of labels in metrics anyway
Add cnpg_ prefix to CloudNative-PG Operator metrics and adjust existing dashboards, it will will create unique metrics

Describe alternatives you've considered

use metric relabeling as temp workaround and deploy grafana dashboard with adjusted queries.
add controller label with value cnpg and use it as filter in Grafana dashboard by default.

Additional context
No response
Backport?
Yes
Are you willing to actively contribute to this feature?
No
Code of Conduct

[X] I agree to follow this project's Code of Conduct

With help of @itay-grudev I figured out that №1 in my Feature request actually a duplicate of https://github.com/cloudnative-pg/cloudnative-pg/issues/2501

№2 of this issue will be solved by https://github.com/cloudnative-pg/grafana-dashboards/pull/16


kernel/config: enable security features

CONFIG_RANDOMIZE_BASE
Randomize the physical address at which the kernel image is decompressed and
the virtual address where the kernel image is mapped, as a security feature
that deters exploit attempts relying on knowledge of the location of kernel
code internals
CONFIG_RANDOMIZE_MEMORY
Randomizes the base virtual address of kernel memory sections. This security
feature makes exploits relying on predictable memory locations less reliable
CONFIG_STACKPROTECTOR
This feature puts, at the beginning of functions, a canary value on the stack
just before the return address, and validates the value just before actually
returning. Stack based buffer overflows now also overwrite the canary, which
gets detected and the attack is then neutralized via a kernel panic.
CONFIG_REFCOUNT_FULL
Enabling this switches the ref counting infrastructure from a fast unchecked
atomic_t implementation to a fully state checked implementation, which can be
(slightly) slower but provides protections against various use-after-free
conditions that can be used insecurity flaw exploits.
CONFIG_HARDENED_USERCOPY
This option checks for obviously wrong memory regions when copying memory
to/from the kernel (via copy_to_user() and copy_from_user() functions) by
rejecting memory ranges that are larger than the specified heap object, span
multiple separately allocated pages, are not on the process stack,or are part
of the kernel text. This kills entire classes of heap overflow exploits and
similar kernel memory exposures.
CONFIG_FORTIFY_SOURCE
Detect overflows of buffers in common string and memory functionswhere the
compiler can determine and validate the buffer sizes.
fixes #638
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

/test

/test

@jodh-intel yes I agree, I going to raise a pr in runtime to test this change

Metrics looked good. I think we would require a focused test / micro bench to see the impact of these.
LGTM.

/AzurePipelines run

@egernst @jodh-intel @grahamwhaley this change will impact in the memory consumption (see https://github.com/kata-containers/runtime/pull/1881)
no-KSM:  from139080.9 to 141586.42
KSM: from 59184.82 to 96795.37
in the case of KSM, I think it's expected because of the kernel memory randomization
What do you think? should we merge it?

@devimc - I think it should be the default. But users who really care about memory density may wish to create their own kernel without certain options (assuming they understand the implications of doing so).
For that latter scenario, I still wonder whether we want to create the /proc/config.gz file since, with that, the agent can detect the feature(s) and log a message along the lines of:

INFO: KSM throttler cannot compact memory maximally due to kernel settings.

It seems a little odd having the agent log this, but atleast we'd be able to log it somewhere. The alternative is that we store the config alongside each binary kernel image on the host - that way the throttler itself could check.

Off the top of my head, I would have thought randomisation would not affect KSM, as KSM works on page contents, not their addresses (PA or VA) - but - the last page of http://www.syssec-project.eu/m/page-media/28/eurosec12-suzaki-slides.pdf says it has an effect, yes. I think it might be due to the way randomisation initialises the pages (possibly on free) - I didn't read the whole deck ;-0

I worry that open these security options will harm the performance of the guest kernel.
Do you have some benchmark test result of this change?
And guest kernel already inside the VM that to handle the most of security issues, does KATA really need to open these options by default?
Why we just supply a security hardening kernel that open these security options and keep the default kernel without these options?

@teawater - that's a valid concern. The default Kata stance should be to maximise security where reasonable to do so. The key word here being "reasonable"; there is precedent for not enabling a security feature by default due to the significant performance impact of doing so: seccomp (see https://github.com/kata-containers/runtime/pull/689). Since these are kernel options, we can't readily offer any configuration "knobs" to allow these settings to be changed, unless we think a little more creatively...
We could allow the specification of some sort of "security preference" annotation to the runtime. Values could range from "none" (for maximum performance but potentially lowering security) to "omg-crazy-insane-security" (which could potentially impact performance negatively). The runtime could then potentially choose an appropriate kernel [1] that would satisfy that security preference. If no such kernel exists, the runtime would error and the workload would not be run. Iff we could somehow defer the decision to the agent (implying modules [2] probably), the agent could again arrange a suitable environment to run the workload in or again error and the workload would not be run (possibly related: https://github.com/kata-containers/packaging/issues/222).
This could all get very complex very fast so I suggest you add this topic to the Architecture Committee agenda for discussion.

[1] - This could be achieved partly by creating a /usr/share/kata-containers/vmlinux.container.config.gz, etc to allow the runtime to query the kernels features without running it. We'd probably want to generalise that a little further though by creating something like vmlinux.containers.yaml which contained both the .config for that particular kernel along with a checksum for the binary kernel image so that we could be assured the config encoded in vmlinux.containers.yaml matched the config in the binary vmlinux.containers file.
[2] - Enabling guest kernel modules whilst bringing flexibility, could potentially impact performance and potentially impact security.

@devimc - did you do a local metrics report generator run? Got any data you can post here? thx.

@grahamwhaley nop, I didn't run any metrics, I got those number from the pnp-cihttps://github.com/kata-containers/runtime/pull/1881

I’m not sure how much we care about KSM, but rather the standard configuration.
Curious for input from @gnawux @sameo @bergwolf

@egernst Here @teawater is asking on behalf of our team. Personally, I think if it has a significant impact on performance, I would like to make it could be selected by the user (maybe 2 pre-build kernels?) and don't enable it by default.

@Ace-Tang please take a look, do you have enabled KSM in your environment?

@devimc - can you update as this branch is now conflicted?

closing pr since with these change kernel will consume more memory


[red-knot] support non-local name lookups

Add support for non-local name lookups.
There's one TODO around annotated assignments without a RHS; these need a fair amount of attention, which they'll get in an upcoming PR about declared vs inferred types.
Fixes #11663

Getting closer to zero bogus diagnostics in tomllib!


Remove the out-of-date banner on the MiniKF on GCP page

Remove the out-of-date banner, as MiniKF on Google Cloud uses the latest manifests
Update some screenshots to to reflect the latest MiniKF version on Google Cloud
Replace all occurrences of "GCP" with "Google Cloud"

I replaced all occurrences of "GCP" with "Google Cloud". I also updated some screenshots to to reflect the latest MiniKF version on Google Cloud. Changed the commit message accordingly

/lgtm

/assign @animeshsingh @Bobgy @joeliedtke @rmgogogo
PTAL and /approve when OK, thank you 👍

Thank you @cspavlou for the update and @8bitmp3 for the review!
/approve
All looking good to me!


added spreadsheet embed

Add a section to embed the Google Sheets displaying inventory

👷 Deploy Preview for lacentercloseout processing.

Name
Link

🔨 Latest commit
cd87f49633c759130b27ee5a506fc1abc651f83f

🔍 Latest deploy log
https://app.netlify.com/sites/lacentercloseout/deploys/65b83ebf857d7b00082282a4

looking good


Duplicate courses are returned from the API

The API returns duplicate courses after the latest update on the frontend (for now it only happens on demo.psutarchive.com and not psutarchive.com).
To reproduce:

Go to https://demo.psutarchive.com/courses
Search for 'digital logic' or 'applied'
you can see duplicate results, open the networks tab in the browser devtools to see that the duplicate came from the API.

It's unclear what causes the issue now, so further investigation is needed. It also seems to be caused by the latest update so I'll investigate from the frontend side.

Solved from the frontend as it wasn't an API issue.


Fix haproxy marathon bridge with containerized setup

For some reason I cannot make it working on v0.1 neither.
The file /etc/haproxy-marathon-bridge/marathons seems to never be created.

that file was specific to the google-mesosphere setup. I guess the proper thing to do is to recreate it.

Closing for now


Introducing Edit Functionality for Mirror Sync Interval in Push Mirrors.

Adding mirror sync interval edit functionality for push mirrors.
Issue: #21295
Background : This pull request introduces a new feature that allows users to edit the sync interval for Mirror Settings. Currently, there is no way to modify the interval for periodic repo synchronization once it's set. With this enhancement, users will be able to easily update the sync interval without the need to delete and recreate the mirror settings each time.

Screen shots
Before:

After

On Hover:

On click Edit option

On click on save button:-

On click on cancel button:
Popup modal will disappear.
If user entered the wrong value in interval time.

User will get error message

Thanks @wxiaoguang for the quick and immediate support.
This pr is ready for review.

+1 approval needed to walk this PR.

Just one nit https://github.com/go-gitea/gitea/pull/26151/files#r1278663434

Done

🚀


Error: The operation was canceled.

Description
While running swift test in github actions it canceles tests in the testing proccess.
Virtual environments affected

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[ ] macOS 10.15
[X] macOS 11
[ ] Windows Server 2016
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
failed run:
https://github.com/yaroslavyaroslav/web3swift/actions/runs/1521747691
https://github.com/yaroslavyaroslav/web3swift/actions/runs/1521676808
Is it regression?
No response
Expected behavior
Tests run till the end.
Actual behavior
Tests canceled with the message: Error: The operation was canceled.
Repro steps
workflow that fails: https://github.com/yaroslavyaroslav/web3swift/actions/runs/1521747691/workflow

Hi @yaroslavyaroslav.
Your workflow runs cancelling due to timeout exceeded, that set up in your workflow yaml file
jobs:
  macOS_5_4:
    name: Test macOS 11 (5.4)
    runs-on: macOS-11
    env:
      DEVELOPER_DIR: /Applications/Xcode_12.5.1.app/Contents/Developer
    timeout-minutes: 10

I'm closing this issue since it's not one.
@yaroslavyaroslav, you can find more details regarding workflow syntax and limits in the GitHub docs:

workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes
usage-limits


Fix required columns for csv stream

@ciprian-cgr

@adrian-mih Can you please also write some tests for these to make sure they don't break in the future? Use the OC/SLC examples as they are good corner cases, especially for the sniff delimiter.


Not able to use pyrealsense2. "No Module named pyrealsense2"

@MartyG-RealSense
| Required Info
|---------------------------------|------------------------------------------- |
| Camera Model - D435i
| Firmware Version - <IP_ADDRESS>
| Operating System & Version - Ubuntu 18|
| Release- 4.9.201 - tegra
| Jetpack - 4.5.1
| OpenCV - 3.4.3 with CUDA : YES
| Platform - Nvidia Jetson (Seed studio cariier)
| SDK Version- 2.48.0
| Realsense-ros - 2.3.1
Issue Description
I built librealsense according to the issue "RealSense SDK & pyrealsense2 Installation on Nvidia Jetson Modules #10891" . I used selim35's bash file.
In the DPYTHON_EXECUTABLE, i have used /usr/bin/python and /usr/bin/python3 (as well as python2.7 and python3.6). The build was completed successfully every time. I even got the .so files for pyrealsense2 as well.
I still can't import pyrealsense2 in both approaches. I tried
import pyrealsense2 as rs
as well as
import pyrealsense2.pyrealsense2 as rs
Both give the "Module not found error"
and
I noticed
"/usr/local/lib/python2.7/" or "/usr/local/lib/python3.6/"  doesn't have pyrealsense2
Could you please suggest how I could proceed?
NOTE - I used libsense 2.48.0 and JP- 4.5.1 as in one of the issues this was suggested as a fix for the imu data which isn't received in the lastest version. (Tested)
I had another question
I plan on using the IR cameras through the ros wrapper for VIO and pyrealsense2 to access the rgb camera for detection. Would it be possible to use it simultaneously ?

Hi @ta-jetson  If you have the .so files then an alternative to using a Python path to connect Python and pyrealsense2 together is to place the .so files librealsense2.so and pyrealsense2.so in the same folder that your project script is in.
If you are using Python 2.7 then place pyrealsense2.so in the project folder.
If using Python 3.6 then the pyrealsense2.so file that should be placed in the project folder is the one that will have a more complex auto-generated filename, such as pyrealsense2.cpython-36m-arm-linux-gnueabihf.so (one that starts with 'pyrealsense2' and ends with '.so').
The number in the middle of the filename, such as '36m', refers to the Python 3 version that you have got installed on your computer.  36m stands for Python 3.6.

It is also worth mentioning that the recommended camera firmware driver version to use with librealsense 2.48.0 is <IP_ADDRESS>.  Using a newer firmware such as <IP_ADDRESS> with an older SDK version may result in errors, as <IP_ADDRESS> is designed for use with SDK 2.54.2.

In regard to using infrared and RGB simultaneously, yes you can as the D435i camera has its own dedicated RGB sensor separate from the IR sensors.

Thank you @MartyG-RealSense
Error was resolved.
But I can't run them simultaneously.
I have a python file which uses the rgb camera. Just viewing for now.
I have launch file in realsense-ros for the infra and imu topics.
When I run realsense-ros launch file and then the python file,
Traceback (most recent call last):
File "rs_py.py", line 39, in
pipeline.start(config)
RuntimeError: xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error
When I run the python file, and then realsense-ros file,
[ERROR] [1699446990.264410758]: An exception has been thrown: xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error
[ERROR] [1699446990.264631492]: Exception: xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error
08/11 18:06:30,263 ERROR [547656499584] (types.h:310) xioctl(VIDIOC_S_FMT) failed Last Error: Input/output error

Hey @MartyG-RealSense ,
All of your advice has worked flawlessly.
Thank for your help.
Just a review on what I did to resolve (with the help of your advice) :
Used : to build my SDK with pyrealsense2 according to  " https://github.com/IntelRealSense/librealsense/issues/10891#issue-1369393054"
The only change being -DPYTHON_EXECUTABLE=/usr/bin/python3.6
After that having the .so files in the project folder solved the "Module not found error problem".
To make sure I could use it anywhere, I used the following commands in the terminal(credit to https://github.com/35selim/RealSense-Jetson/issues/1#issuecomment-1293894851)
In terminal :
sudo mkdir /usr/local/lib/python3.6/pyrealsense2

sudo ln -s ~/librealsense/build/wrappers/python/pybackend2.cpython-36-aarch64-linux-gnu.so /usr/local/lib/python3.6/pyrealsense2/

sudo ln -s ~/librealsense/build/wrappers/python/pyrealsense2.cpython-36-aarch64-linux-gnu.so /usr/local/lib/python3.6/pyrealsense2/

And I sourced my bashrc again. (Remember to make the changes in the bashrc according to " https://github.com/IntelRealSense/librealsense/issues/10891#issue-1369393054"
Now, import pyrealsense2 works without the need of adding the .so files in your project folder.
Using both the python and ros wrapper simultaneously issue was resolved by setting enable_color :=false.
Thanks a lot again @MartyG-RealSense
I'll be closing the issue.

You are very welcome.  It's great to hear that you were successful.  Thanks so much for sharing the details of your solution!


Improve <SvgIcon> to make it output svg node and optimize performance

Before, the Vue <SvgIcon> always outputs DOM nodes like:
<span class="outer-class">
    <svg class="class-name-defined" ...></svg>
</span>

The span is redundant  and I guess such layout and the inconsistent class/class-name attributes would cause bugs sooner or later.
This PR makes the <SvgIcon> clear, and it's faster than before, because it doesn't need to parse the whole SVG string.
Before:

After:

This does seem like a lot of extra code and it redoes most of what svg() already does. I wonder if it wouldn't be better to have a shared parser function that returns {attributes, innerHTML} which could be used in both.

This does seem like a lot of extra code and it redoes most of what svg already does.

Nope, not extra.

I wonder if it wouldn't be better to have a shared parser function that returns {attributes, innerHTML} which could be used in both.

They do not the same thing. The key point is, in your old svg function, the string is returned for default arguments.

It would lose the fast-path of svg with size 16 and no classes, thought, so that is a downside and probably not worth because of that.

No, nothing is lost.
Before, browser parse both the svgOuterHtml and svgInnerHtml
Now, we parse the svgOuterHtml, and leave the svgInnerHtml to browser.
Nothing is parsed twice.

Actually, the old SvgIcon is slower, because it does parse twice for non-default arguments.

It parses the whole SVG string to Node (svgOuterHtml, svgInnerHtml)
It converts the Node to string (then svgOuterHtml and svgInnerHtml are parsed again by the browser)

After this PR:

This PR first parses svgOuterHtml, it doesn't parse svgInnerHtml
Then it creates a VNode by svgOuterHtml parsed node, which is faster
Leave the svgInnerHtml  to browser, which is faster.
Nothing is parsed twice.

Codecov Report

Merging #23570 (faeaecb) into main (f521e88) will decrease coverage by 0.02%.
The diff coverage is 37.89%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main   #23570      +/-   ##
==========================================
- Coverage   47.14%   47.12%   -0.02%
==========================================
  Files        1149     1154       +5
  Lines      151446   152353     +907
==========================================
+ Hits        71397    71798     +401
- Misses      71611    72075     +464
- Partials     8438     8480      +42

Impacted Files
Coverage Δ

cmd/dump.go
0.67% <0.00%> (ø)

cmd/web.go
0.00% <0.00%> (ø)

models/actions/run.go
1.64% <0.00%> (-0.08%)
:arrow_down:

models/actions/runner.go
1.44% <ø> (ø)

models/packages/package.go
45.45% <0.00%> (-1.13%)
:arrow_down:

models/user/search.go
77.50% <0.00%> (-6.29%)
:arrow_down:

modules/actions/github.go
0.00% <0.00%> (ø)

modules/actions/workflows.go
0.00% <0.00%> (ø)

modules/context/context.go
64.54% <0.00%> (-3.53%)
:arrow_down:

modules/doctor/storage.go
31.93% <0.00%> (ø)

... and 33 more

... and 34 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Record TaskExecutionMetadata from task events

TL;DR
Curently, the TaskExecutionMetadata is being provided by each task event but it isn't stored anywhere. This PR enables storing storing this information including merging.
Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[x] Unit tests added
[x] Code documentation added
[x] Any pending items have an associated Issue

Complete description
^^^
Tracking Issue
https://github.com/flyteorg/flyte/issues/2288
Follow-up issue
NA

@katrogan per our conversation I updated this to maintain separate ExternalResourceInfo protos for each unique <Index, RetryAttempt> pair. This means that any plugin which reports multiple ExternalResourceInfo protos needs to set the Index field for them to be handled properly. I think this is a sane requirement.


clearing a typeahead doesn't work when it's typeahead-editable="false"

I think I found a small bug a typeahead. When I try to clear the typeahead (by setting its model to undefined), it works fine if the typeahead is editable, but it doesn't if it's not editable (i.e. its typeahead-editable attribute is false).
The bug is illustrated, with an ugly workaround, in this plunkr

@futurechan it's doesn‘t work for me


chore: Repurposed and renamed brand-components into gamut-labs ⚗

Repurposed and renamed brand-components into gamut-labs ⚗
PR Checklist

~[ ] Related to Abstract designs:~
[x] Related to JIRA ticket: WEB-834
[x] I have run this code to verify it works
[x] This PR includes unit tests for the code change

Description
Per discussions in Slack and in our Rename Brand Components to Labs RFC, generalizes the package to include both brand and experimental components by design.
Right now there aren't any experimental components in it. As @hmafzal suggested, it'd be good to do an audit. I'd like to perform any mass moving all in one big swoop...

📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5eb9ea4b129f121ace80463b--codecademy-styleguide.netlify.appDeploy Logs

📬Published Alpha Packages<EMAIL_ADDRESS>
📬Published Alpha Packages<EMAIL_ADDRESS>
📬Published Alpha Packages<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://5ebdac6a0530a0cdbdbb209c--codecademy-styleguide.netlify.appDeploy Logs


active-tab as a prop in md-tabs component.

I think tab component needs a property to select active tab.
It will allow us to switch tabs programmatically without directly clicking tabs.
I am currenctly using $refs to achieve this. But it will be much easier if I can select active tab with its name, or id of it. And I think it is a common scenario to switch tabs like this.
<md-tabs :active-tab="music">

This property already exists. And it's inside the md-tab component as md-active.

Ok @marcosmoura but how to switch tabs programmatically? Like with next and previous actions?

There is no "next" and "previous" actions. You can set the "active" property dynamically by setting the "md-active" property of a particular tab:
<md-tabs>
  <md-tab :md-active="activeTab === 0">
  </md-tab>

  <md-tab :md-active="activeTab === 1">
  </md-tab>

  <md-tab :md-active="activeTab === 2">
  </md-tab>
</md-tabs>

There is a issue
Set activeTab default to 1,click tab 2,and then set activeTab to 1,nothing would happen.

I think this should be in the documentation


some fixes, some additions

This does several things. Mainly, minor cleanup and randomized defusal messages.
One problem. I can't test anything. I don't know if this code compiles at all, or if it'll work.
Ok, two problems. I don't know how the plugin loads the files, so I don't know if this properly grabs the defusal messages. Note in particular the reload command, and the pair of lines (196 and 197 right now) that set the messages = commandLine.
If this code is merged, it will probably need a little bit of fixing to make it compile, and a little bit of testing to make sure that everything works. It should, but that doesn't mean that it does. This pull request should allow edits though. If you don't feel like merging and fixing, that's cool too.

Note that this fixes a spot in the readme where it shows an example of loading it, where it shows LTS (lastTankStanding) in the command.

I made a review of what needs to be changed/fixed. If you don't wanna make the changes, that's cool too, I can clean it up no problem 👍

I took care of most of the issues in the review. One I noted as possibly not solved the way you'd like; one is waiting for tomorrow.

Sounds good

I believe I fixed everything. Let me know if I missed something or if I need to change anything else. Or if I didn't push the updates properly :)

Revisions round two done. Let me know if you see anything else that needs to be fixed.

Revisions round three done :P
If there's anything else that needs to be changed, let me know :)

I discovered that the readme had incomplete information about the /reload command. Fixed.

Round 4 complete. Next level!


How can I default base font size for mobile devices?

I find the fonts on mobile devices generally small. I'm wondering how can I change them in SCSS files to be larger (and ideally relative to the screen size)?

@mtnra You can use @media selector to change font sizes.
@media (max-width: $size-sm) {
  body {
    font-size: xxxx;
  }
}

Should I use px, em or rem in this case?

@mtnra At least not px: https://www.24a11y.com/2019/pixels-vs-relative-units-in-css-why-its-still-a-big-deal/

_variables.scss has font sizes defined.
$font-size: .8rem !default;
$font-size-sm: .7rem !default;
$font-size-lg: .9rem !default;

All you need to do is redefine one or all of them in your custom style sheet.

I added this to my head :
<meta name="viewport" content="width=device-width, height=device-height">

and it scaled perfectly all by itself.


add cody ignore test to context mixer

Add automated test for cody/ignore in Context Mixer
Test plan

bot should be green

This would have taken me soooo much time to figure out.
Thanks a million Bee!!

Thank you for working on this <3


Custom placeholder changes to default onFocus

We need to use localized placeholder (for german language), so instead of DD.MM.YYYY we set TT.MM.JJJJ, like this:
<DatePicker placeholder="TT.MM.JJJJ" {...otherProps}/>
Everything works fine before user clicks on input => custom placeholder is replaced by default DD.MM.YYYY
I think, custom placeholder shouldn't be overriden.

Pull requests are appreciated!


Consider dropping python 2 support

Anyone using scientific python these days will be forced into python 3 only anyway as things like ipython force a migration. I think literally every relevant library that someone using test tube would need supports python 3 anyway. If test tube was 3.5+ only (reasonable since upgrading from 3.4 -> 3.5 doesn't require breaking anything), we could use type annotations in the codebase.

@Alok I agree. We should switch to support python 3+ only. I assume that because a large set of users are in research labs or for research purposes, there isn't really a need to support older projects that use python 2.x

I'd like to support only 3.6+ since switching to 3.6 from earlier python 3
versions is easy and 3.7 will be out in 2 months anyway. Then we can use
full type annotations in the codebase, along with f strings. 3.6 also has a
few other features that allow for code cleanup, like the improved pathlib.
On Thu, Mar 22, 2018 at 3:22 PM William Falcon<EMAIL_ADDRESS>wrote:

@Alok https://github.com/alok I agree. We should switch to support
python 3+ only. I assume that because a large set of users are in research
labs or for research purposes, there isn't really a need to support older
projects that use python 2.x
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/williamFalcon/test-tube/issues/20#issuecomment-375476829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AH8KTABxIAsnh0hWt-2Q3pDfzHV0Rc7qks5thCQRgaJpZM4S3x1C
.

--

Alok

Ummm I see your point. I do however wonder how many potential users will be left out if we switch to 3.6+ only support. Not sure it's worth the hit in adoption (especially at this early stage), simply to have a bit more syntactic sugar.
With all that in mind, I think it's a good idea at this early stage to support the lowest python 3 version.


injector/catalog: Use UUID type for proxyUUID variable; consistent naming

This PR changes the type of the proxyUUID variable from string to uuid.UUID.
Also renames ProxyID, EnvoyUID etc. to ProxyUUID for consistency.

Affected area:

New Functionality      [ ]
Documentation          [ ]
Install                [ ]
Control Plane          [ ]
CLI Tool               [ ]
Certificate Management [ ]
Networking             [ ]
Metrics                [ ]
SMI Policy             [ ]
Security               [ ]
Tests                  [ ]
CI System              [ ]
Performance            [ ]
Other                  [X]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? If so, did you notify the maintainers and provide attribution?

Codecov Report

Merging #1899 into main will increase coverage by 0.00%.
The diff coverage is 78.57%.

@@           Coverage Diff           @@
##             main    #1899   +/-   ##
=======================================
  Coverage   58.42%   58.42%
=======================================
  Files         129      129
  Lines        5267     5246   -21
=======================================
- Hits         3077     3065   -12
+ Misses       2187     2178    -9
  Partials        3        3

Impacted Files
Coverage Δ

pkg/injector/webhook.go
74.31% <0.00%> (ø)

pkg/catalog/xds_certificates.go
89.74% <81.81%> (-2.15%)
:arrow_down:

pkg/injector/patch.go
86.29% <100.00%> (ø)

cmd/cli/namespace_add.go
64.15% <0.00%> (-2.52%)
:arrow_down:

pkg/envoy/lds/listener.go
38.84% <0.00%> (-1.45%)
:arrow_down:

pkg/envoy/route/config.go
95.83% <0.00%> (+0.83%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dbb3ec7...eee282d. Read the comment docs.


Avalonia Blazor Webassembly shows errors

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. Windows, Mac, Linux (State distribution)]
Version [e.g. 0.10.0-rc1 or 0.9.12]

Additional context
Add any other context about the problem here.
I have downloaded with git clone from here and I tested before with netcore then it works fine but path to node.mp4 failure cause it looks "doesn't find mp4 file" and I try to copy-past to root directory of Debug or Release then it works fine but X11 BadWindow throws exception cause mplayer can't close while you close Avalonia 's MainWindow then I open Avalonia Source with VSCode wow. Why do you not care with nint / nuint since Net 6.0 has new features of current architecture x86 / x64 conflict like you have Windows 10 Pro 32 Bit then Avalonia MainWindow will crash cause IntPtr is not long just int that is why you should use "nint" and "nuint".
I would like to help you because I don't like if it happened with Avalonia UI like they have big problems.. That is why I want save for Avalonia UI :)
And I try to use Blazor Webassembly and Google Chrome throws exceptions and errors.

How do I fix? Thanks
I already tried

dotnet restore
dotnet build <- Please remember to install sudo apt install -fy nodejs then dotnet build
dotnet run
Copy or open url to browser and press key F12 to open Web-Tools-Console
I get many errors.

I use Net 6.0x latest version with wasm-tools

Have you tried to build a project from a template?

@maxkatz6 No I will try later.
if I use dotnet publish with samples/ControlCatalog.Web
and I test with python -m http.server than i ran website and it loads before okay now it looks weird :(
Check my youtube and I have tried like publish directory or run end of usable directory for wasm. https://www.youtube.com/watch?v=SL2vz_0zLUA

Please use newer backend without blazor at all. I.e. "Avalonia.Browser" package.


Add support for Internet Explorer 8

Add HTML5 shim script so the app renders in IE8.
Set an expires header for non-Websocket requests. This prevents IE8 from only loading the message JSON the first time the page loads and getting a 304 Not Modified thereafter.

Closing due to inactivity. Will integrate new HTML5 shim at some point.


Enable them build containers with the buildpacks

It will be happy for developers to build container with the buildpacks, in addition to the standard way with a Dockerfile.
The buildpacks for Python need a requirements.txt to find out the required modules, that's why I modified a little.

I close this because of the lack of some procedure.


Allow importing handler from layers

It would be useful to be able to load handler modules from layers! (I do this with other runtimes)
Options would be to include /opt/nodejs/node_modules in the search path, or to allow absolute imports.

This should work already – are you having problems?

Correct. The import seems to look in the "LAMBDA_TASK_ROOT" for the handler.
$ serverless invoke -f hello -l
{
    "errorType": "Error",
    "errorMessage": "Cannot find module '/var/task//opt/nodejs/node_modules/@iopipe/iopipe'",
    "stackTrace": [
        "    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)",
        "    at Function.Module._load (internal/modules/cjs/loader.js:562:25)",
        "    at Module.require (internal/modules/cjs/loader.js:690:17)",
        "    at require (internal/modules/cjs/helpers.js:25:18)",
        "    at getHandler (/opt/bootstrap.js:148:15)",
        "    at start (/opt/bootstrap.js:25:15)",
        "    at Object.<anonymous> (/opt/bootstrap.js:20:1)",
        "    at Module._compile (internal/modules/cjs/loader.js:776:30)",
        "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)",
        "    at Module.load (internal/modules/cjs/loader.js:653:32)"
    ]
}

same error if I use @iopipe/iopipe.handler

Oh sorry – I thought you were talking about NODE_PATH
Can you outline the use case again?

@mhart I have a layer that contains my handler. In my personal use-case, that handler is a wrapper that then does an import and load of another handler... but it's also completely valid for users to have their entire application placed within layers.
Example serverless.yml:
service: aws-nodejs-lambci

provider:
  name: aws
  runtime: provided
  layers:
    - arn:aws:lambda:us-east-1:553035198032:layer:nodejs10:14
    - arn:aws:lambda:us-east-1:146318645305:layer:IOpipeNodeJS810:9

functions:
  hello:
    handler<EMAIL_ADDRESS><EMAIL_ADDRESS>    environment:
      IOPIPE_HANDLER: handler.hello

Oh, this works with existing AWS runtimes? I thought the handler always tried to resolve from LAMBDA_TASK_ROOT

@mhart The official AWS ones do not for NodeJS, but this is confirmed to work with the official Java and Python runtimes from AWS . I've been nudging AWS to get this working in Node as well... but also, more immediately, seeing if we can get the popular custom Node runtimes to support this (it is already supported in NSolid by Nodesource).

Hmmm. I'm a little wary of diverging from AWS too much. I could see how absolute paths could be supported, but how do you distinguish between a module called index and a file called index.js?
Looking through the AWS Node.js 10 code, it looks like it might support<EMAIL_ADDRESS>(but 8.10 and 6.10 won't) – I might consider modifying the logic to allow this too if that suits?

My testing has been unsuccessful in using path traversals via '..' to enable this /w the official runtime.
Lambda has always supported importing from node_modules, this would ideally just allow importing from /opt/nodejs/node_modules... using the absolute path would be a solution here to avoid unintended consequences; this is already a requirement of the NSolid runtime and would help reduce drift between runtimes.
Simply allowing any import via an absolute path (or restricted to the task root and paths beginning with /opt) would suffice for me, and wouldn't cause any breakages moving to this runtime.

Interesting, this works for me:
mkdir opt
cd opt
npm install @iopipe/iopipe
cd ..
docker run -v $PWD/opt:/opt lambci/lambda:nodejs10.x<EMAIL_ADDRESS>

I haven't updated lambci/lambda:nodejs10.x in a couple of weeks, they might've changed the code to disallow this? But I would assume that would work fine on the nodejs10.x runtime. It currently outputs:
{
  "errorType": "Error",
  "errorMessage": "No IOPIPE_HANDLER environment variable set."
}

I'll try that!
On Tue, Jun 11, 2019 at 5:13 PM Michael Hart<EMAIL_ADDRESS>wrote:

Interesting, this works for me:
mkdir opt
cd opt
npm install @iopipe/iopipe
cd ..
docker run -v $PWD/opt:/opt lambci/lambda:nodejs10.x<EMAIL_ADDRESS>—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lambci/node-custom-lambda/issues/20?email_source=notifications&email_token=AAAR354NSVELVEQTO2C7JE3P2AIQPA5CNFSM4HXDFL42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXOQT6Q#issuecomment-501025274,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAR356YRUJNLGLCJDHOSEDP2AIQPANCNFSM4HXDFL4Q
.

--
-Erica

Playing with this more, it seems that the official nodejs10.x runtime now supports the absolute path, but I get the Cannot find module '/var/task//opt/nodejs/node_modules/@iopipe/iopipe error with lambci (using '../../' doesn't help and would also differ from AWS which errors if I use the .. path traversal)

Oh interesting, maybe they’ve updated the nodejs10.x runtime code (finally). Will look into it, thanks for the heads up 👍
Sent from my iPhone

On Jun 17, 2019, at 8:13 AM, Erica Windisch<EMAIL_ADDRESS>wrote:
Playing with this more, it seems that the official nodejs10.x runtime now supports the absolute path, but I get the Cannot find module '/var/task//opt/nodejs/node_modules/@iopipe/iopipe error with lambci (using '../../' doesn't help and would also differ from AWS which errors if I use the .. path traversal)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Oh wow, yeah they've changed a lot of things since the last time I checked. Mostly good! Although it's interesting they've removed the ability to do relative requires. They now throw Use absolute paths when specifying root directories in handler names if you try to to relative paths.
I'll update this runtime accordingly (and lambci/lambda:nodejs10.x)


fix(Unity2018): reset main texture

Base class Texture constructor is inaccessible due to protection level.
I've tested this with example 035_Controller_OpacityAndHighlighting and it seems to behave identically as to before.

We're never supporting betas of Unity. We tried in the past but they were changing APIs without any documentation every second to third beta release, so we don't play cat and mouse anymore.
So this will probably take a while to get merged as we'll be waiting for Unity to release 2018.1 first.

Fair enough, I do suspect this change will remain, but may as well wait.

@kristianpd this was helpful for me, thanks. I also agree that big third-party libraries like VRTK shouldn't be supporting betas until they're final; I've lost lots of time doing my own low-level work playing cat-and-mouse.

This can be merged whenever, it's not specific to any 2018 API itself. Other examples of doing the same thing we use Texture2D.whiteTexture it's just that in this particular case someone had used new Texture()

This brings up an interesting point: Does Texture2D.whiteTexture always return the same instance or do we have to destroy the texture ourselves? I'm afraid we're leaking (tiny bits of) memory.
I can't find anything in the documentation.

Reply here: https://github.com/thestonefox/VRTK/issues/1758#issuecomment-379369482

Ok so I think this is the solution.
2 things need to be done to the PR if you could be so kind @kristianpd
Firstly, it needs merging into master branch now as 3.3.0-alpha has been merged.
Secondly change the commit message to:
fix(Highlighters): use whiteTexture in place of new Texture

Base class Texture constructor is now protected, use the helper
`Texture2D.whiteTexture` instead as this also doesn't create new
instances of a texture where as calling `new Texture` will create
new instances.

@thestonefox all ready to go


How could I post an issue related to the Standing Data Maintenance website?

How could I post an issue related to the Standing Data Maintenance website? There are several bugs on it and I cannot submit a new batch now.

Feel free to post them as issues here - one bug or problem per issue please.


fix alerts formatting in readme

Small follow up to my previous PR #64: I didn't format the alerts correctly.

Thank you.


More settings page options

As of right now we only have Name, Major, Interests, and Supplementary text. Adding options for email, phone number, and address would be helpful. Also splitting name into first, middle, and last could be helpful.

for autofilling job applications, would also need to add ethnicity, veteran status, if they have a disability or not

Instead of simply allowing for supplementary text, allowing for people to Input previous places of employment and/or notable achievements (up to certain #) that weren't included in their resume.

Closing this issue since we have a more formal request in #16 . Any new ideas can go to that issue.


Wait for clientSession to become available before running a cell.

@chlafreniere recently made a change where the notebook model is marked as ready sooner (https://github.com/microsoft/azuredatastudio/commit/452bd6a0cb3336cb5b4e05cd5d6f13a3ba47719c), but the client session can still be loading when that happens. I've added a promise that resolves after the session is initialized, so that we can await that before running a cell. Note that this promise does not throw on error, it just shows whether the model's session has been initialized in some way.
Fun fact: We're awaiting the _sessionLoadFinished promise in the notebook tests, but this field was not being initialized before this change. So we were actually just awaiting on undefined.

Just as a sanity check, with this change, users can still save notebooks before the session has started, correct?

Yes, the notebook shows up as dirty and can be saved when ADS starts.

Build failure is unrelated to this change.


changed wording for partition sys check

so it has the same tone as previous check messages

the total number of acks for this PR must be greater than 0.

ack++

https://github.com/crate/crate/commit/8e25bb2c40472b7f41c10157c9962d1a781e8e16


Disable VCR react to clustermap change temporarily.

Due to race condition issue in partitionToPartitionInfo, temporarily disable VCR/CloudToBlob's reaction to clustermap change.
Add a log condition for compaction.

Codecov Report

Merging #1919 (12a0286) into master (fa001bf) will decrease coverage by 58.54%.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master    #1919       +/-   ##
=============================================
- Coverage     73.94%   15.40%   -58.55%
+ Complexity     9668     2271     -7397
=============================================
  Files           690      690
  Lines         53204    53206        +2
  Branches       6627     6629        +2
=============================================
- Hits          39344     8195    -31149
- Misses        11793    44532    +32739
+ Partials       2067      479     -1588

Impacted Files
Coverage Δ

.../com/github/ambry/cloud/VcrReplicationManager.java
0.00% <ø> (-72.90%)
:arrow_down:

...ry/replication/CloudToStoreReplicationManager.java
0.00% <ø> (-65.57%)
:arrow_down:

...om/github/ambry/replication/ReplicationEngine.java
0.00% <0.00%> (-84.08%)
:arrow_down:

...m/github/ambry/replication/ReplicationManager.java
0.00% <ø> (-89.73%)
:arrow_down:

...ava/com/github/ambry/store/BlobStoreCompactor.java
86.79% <0.00%> (-0.36%)
:arrow_down:

.../src/main/java/com/github/ambry/router/Router.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../src/main/java/com/github/ambry/store/Message.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/named/PutResult.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/quota/QuotaMode.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...rc/main/java/com/github/ambry/quota/QuotaName.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 546 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fa001bf...12a0286. Read the comment docs.


customize the blending function of the material

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
I get a problem that when I render an object with MASK material type. The MASKED TYPE is bounding with a fixed  blend mode; In my version the code is:
case BlendingMode::MASKED:             mRasterState.blendFunctionSrcRGB   = BlendFunction::ONE;             mRasterState.blendFunctionSrcAlpha = BlendFunction::ONE;             mRasterState.blendFunctionDstRGB   = BlendFunction::ZERO;             mRasterState.blendFunctionDstAlpha = BlendFunction::ZERO;             mRasterState.depthWrite = true;             break;
But there is a question that the dstAlpha has been changed to zero. It may cause some rendering bugs in my app.
I solve it by changing the code into:
 mRasterState.blendFunctionDstAlpha = BlendFunction::ONE_MINUS_SRC_ALPHA;
this change works for me.
But I just want to change this object, not all MASKED objects.
I want to figure out that why a MASKED material has to be related those fixed blending mode configuration? Why a MASKED material can not bind with other blending modes?
Describe the solution you'd like
A clear and concise description of what you want to happen.
I want to customize the blending mode of one material. Even it is a MASKED MATERIAL, but I still want to change the blending  mode to what I expected.
I hope there is a interface in the class MaterialInstance. such as:
setBlendMode(srcColor, srcAlpha, dstColor, dstAlpha)
if the developers don‘t use this interface, a MASKED material can use the default MASKED blending mode. But if the developers use this interface, the material can use the customized blending mode.
THX~

This was a bug we recently fixed. Dst alpha is now preserved.

This was a bug we recently fixed. Dst alpha is now preserved.

Thx for replay.
I know that the MASKED blending function has changed. the link is https://github.com/google/filament/pull/2896/commits/b828ae0c9739702868d175db40e71a74bf50945e.
But these changes still can not solve my problem.
only this type of blending function can solve it.
  mRasterState.blendFunctionSrcRGB   = BlendFunction::ONE;     mRasterState.blendFunctionSrcAlpha = BlendFunction::ONE;     mRasterState.blendFunctionDstRGB   = BlendFunction::ZERO;     mRasterState.blendFunctionDstAlpha = BlendFunction::ONE_MINUS_SRC_ALPHA;     mRasterState.depthWrite = true;


How to recognize down note

jump note  recognize  flick  is OK
But  How to recognize down note

DOWN notes are handled by the motion sensor, an Intel Realsense D415 (though the SR300 also works). That is outside the scope of the touchpad emulator.


Different behavior on iOS simulator vs. physical device

When I'm testing out my app and using the keyboard in the iOS simulator, everything works great. However, when I switch over to testing it out on my physical phone, the text input stays at the bottom of the screen and the keyboard lays on top of it.
Screenshot of iOS simulator

Screenshot of physical device

I'm using a <KeyboardAccessoryView> with <AutoGrowingTextInput> within it.
Has anyone experienced similar behavior?

This was a xcode config issue on my mind. Nevermind!

@adamgrossman Mind sharing what the config issue was? I'm seeing the same thing.

@michaelcurtis this was a while back, but I believe my issue was not linking the library properly (https://github.com/wix/react-native-keyboard-input#ios).
Good luck!

@adamgrossman Thanks for taking the time to reply! Figured out my issue is #74.


Arrow for interstatement connections

just make the connection as arrow. Low priority

This depends on #74, otherwise the arrow heads will be hidden underneath the statement node shape

Implementation can be done using <marker> tags


Bug in tf.parallel_stack

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): master branch from 9e0b9b9ff2b01e07c2a71ce0fbbae93a4bba86f9 and onward
Python version: 2.7
Bazel version (if compiling from source): 0.23.0
GCC/Compiler version (if compiling from source): 7.3.0
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the current behavior
tf.parallel_stack is producing incorrect output.
Describe the expected behavior
tf.parallel_stack has to have same output as tf.stack or tf.concat
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
The below reproducer code/test passes with any commit that precedes 9e0b9b9ff2b01e07c2a71ce0fbbae93a4bba86f9
import tensorflow as tf
import numpy as np

graph = tf.Graph()
with graph.as_default():
  images = np.random.random_sample((100, 24, 24, 3))
  parallel_stacked_images = tf.parallel_stack(images)
  stacked_images = tf.stack(images)
  concatenated_images = tf.concat(images, 0)

with tf.Session(graph=graph) as sess:
  np_parallel_stacked_images, np_stacked_images, np_concatenated_images = sess.run(
    [parallel_stacked_images, stacked_images, concatenated_images])

if np.array_equal(np_parallel_stacked_images, np_stacked_images):
  print ("Pass: outputs of tf.parallel_stack and tf.stack are equal")
else:
  print ("Fail: outputs of tf.parallel_stack and tf.stack are not equal")

if np.array_equal(np_parallel_stacked_images, np_concatenated_images):
  print ("Pass: outputs of tf.parallel_stack and tf.concat are equal")
else:
  print ("Fail: outputs of tf.parallel_stack and tf.concat are not equal")

Other info / logs
We have debugged this issue and found that this commit 9e0b9b9ff2b01e07c2a71ce0fbbae93a4bba86f9 actually causes the bug. That commit changes the set of Edges in the graph from std::set (ordered) to gtl::FlatSet (unordered). TF has a graph optimizer pass for parallel_stack (or parallel_concat) that replaces ParallelConcat node with several _ParallelConcatUpdate nodes. But it seems that it assumes all in_edges are ordered which is not the case with gtl::FlatSet. Therefore, there is a problem in updating the output buffer that is using the incremental index (the loc attribute) which does not correspond to the right input_edge. In particular, I am talking about this code: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/common_runtime/parallel_concat_optimizer.cc#L83

Thanks you so much for root causing this! We should probably move that graph rewrite to Grappler.

@rmlarsen We have a simple fix for this until it is moved to Grappler. Will submit a PR for that. It will be great if you can take a look at it.

Sounds great!

@rmlarsen Here is the PR #27554 . Thanks!

This was resolved already with the PR https://github.com/tensorflow/tensorflow/pull/27554 as it was already merged.
# Output
Pass: outputs of tf.parallel_stack and tf.stack are equal
Pass: outputs of tf.parallel_stack and tf.concat are equal

Here is a gist for reference. Thanks!
Closing this issue as this was already resolved.


Upgrading a module returned error

When I used wirecli to upgrade a module, it returned the following error
In Downloader.php line 169:

  ProcessWire can't be installed because the target folder `/home/#####/webapps/#####/public/site/modules/AddIma
  geUrls` is not empty.
  Use an empty directory or provide an argument where the new project will be created like `wire-cli new <dirname>`

module:upgrade [--check] [--] [<modules>...]

Thanks!

@lesaff do not hesitate to re-open this issue if you are still experiencing the issue.


Instant stack overflow upon defining type class instance

Prerequisites
Please put an X between the brackets as you perform the following steps:

[x] Check that your issue is not already filed:
https://github.com/leanprover/lean4/issues
[x] Reduce the issue to a minimal, self-contained, reproducible test case.
Avoid dependencies to Mathlib or Batteries.
[x] Test your test case against the latest nightly release, for example on
https://live.lean-lang.org/#project=lean-nightly
(You can also use the settings there to switch to “Lean nightly”)

Description
When defining a type class instance (Proper), the program immediately runs into a stack overflow error. It may be related to https://github.com/leanprover/lean4/issues/6229 but the error occurs instantly.
Context
I'm translating the Coq type classes and instances proposed in the paper "A New Look at Generalized Rewriting in Type
Theory" by Matthieu Sozeau.
This relates to this channel: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Rewriting.20congruent.20relations
Steps to Reproduce
def Relation (α : Sort u) := α → α → Prop

def respectful {α β : Sort u} (r : Relation α) (r' : Relation β) : Relation (α → β) :=
  fun f g => ∀ x y, r x y → r' (f x) (g y)

notation:55 r " ⟹ " r' => respectful r r'

class Proper {α : Sort u} (r : Relation α) (m : α) where
  proper : r m m

class Subrel {α : Sort u} (q r : Relation α) : Prop where
  subrelation : ∀ x y, q x y → r x y

instance : Proper (@Subrel β ⟹ @Subrel (α → β)) sorry := sorry

Expected behaviour: Goal view shows types and assists me with implementing the instance.
Actual behavior: Lean Server crashes with "Lean server printed an error: Stack overflow detected. Aborting."
Versions
Lean 4.13.0, Lean 4.14.0-rc1, Lean 4.14.0-rc2, Lean 4.14.0-rc3
Target: arm64-apple-darwin23.6.0 macOS
live.lean-lang.org:
Lean 4.15.0-nightly-2024-11-28
Target: x86_64-unknown-linux-gnu
Additional Information
I tested this locally on linux as well and ran into the same issue.
Impact
Add :+1: to issues you consider important. If others are impacted by this issue, please ask them to add :+1: to it.

This error first seems to appear in v4.8.0. Major versions before that result in error: stuck at solving universe constraint.
Linux core dump:
core.lean.1000.ac7f13c02f4f4a3c97a0000bc6e89300.13334.zip

End of stack:
#74621 0x00007ffff6f72a6e in lean::instantiate_lmvars_fn::visit(lean::level const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74622 0x00007ffff6f72c7e in lean::instantiate_lmvars_fn::visit(lean::level const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74623 0x00007ffff6f72a6e in lean::instantiate_lmvars_fn::visit(lean::level const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74624 0x00007ffff6f72c7e in lean::instantiate_lmvars_fn::visit(lean::level const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74625 0x00007ffff6f73b97 in lean::instantiate_mvars_fn::visit(lean::expr const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74626 0x00007ffff6f74a0f in lean::instantiate_mvars_fn::get_assignment(lean::name const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74627 0x00007ffff6f7425e in lean::instantiate_mvars_fn::visit_mvar(lean::expr const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74628 0x00007ffff6f73b7a in lean::instantiate_mvars_fn::visit(lean::expr const&) () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74629 0x00007ffff6f7248f in lean_instantiate_expr_mvars () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74630 0x00007ffff40c8f9f in l_Lean_instantiateExprMVars___at_Lean_instantiateMVarsCore___spec__1___rarg () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74631 0x00007ffff40c9571 in l_Lean_instantiateMVarsCore___lambda__1 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74632 0x00007ffff73cff07 in lean_apply_2 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74633 0x00007ffff29cd3f6 in l_runST___rarg () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74634 0x00007ffff54c436a in l_Lean_instantiateMVars___at_Lean_Meta_collectMVars___spec__1 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74635 0x00007ffff54c4dc0 in l_Lean_Meta_collectMVars () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74636 0x00007ffff54c5862 in l_Lean_Meta_getMVars () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74637 0x00007ffff3003573 in l_Lean_Elab_Term_collectUnassignedMVars () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74638 0x00007ffff30114b3 in l_Lean_Elab_Term_addAutoBoundImplicits_go () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74639 0x00007ffff3014356 in l_Lean_Elab_Term_addAutoBoundImplicits () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74640 0x00007ffff378da6e in l_Lean_Core_withRestoreOrSaveFull___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_elabHeaders___spec__6___lambda__2 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74641 0x00007ffff3790a95 in l_Lean_Core_withRestoreOrSaveFull___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_elabHeaders___spec__6___lambda__3 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74642 0x00007ffff3791696 in l_Lean_Core_withRestoreOrSaveFull___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_elabHeaders___spec__6___lambda__5 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74643 0x00007ffff73d9be2 in lean_apply_7 () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so
#74644 0x00007ffff3029e35 in l_Lean_Elab_Term_universeConstraintsCheckpoint___rarg () from /home/sebastian/lean4/build/release/stage1/bin/../lib/lean/libleanshared.so


Change section order on index page

Summary of the changes / Why this is an improvement

Reorder sections on index.md to have more importance on the application domains and integrations over reference architectures.

Checklist

[ ] Link to issue this PR refers to (if applicable):
[x] CLA is signed

Now, the page has a visual bias towards a wall of tiles, which is not optimal. I liked that the image to the reference architecture acted as a kind of a page divider.
https://cratedb.com/docs/guide/


Hi, could you please share the link of datasets 'Val-COCO' and 'Test-COCO'?

I tried to find on the network but failed.
Thanks ahead.

Hi @Erica-Yang, these are subsets of FSC147 that come from COCO. You can find IDs of images that belong to val-coco and test-coco in the official split file of the FSC147 dataset under val_coco and test_coco.

Yes, thanks a lot!