A part of pods on Windows minion node are not accessible

I have configured a k8s cluster based on this GREAT project. There are 3 master nodes, 8 Linux minion nodes and 1 Windows minion nodes in the cluster. See the OS/Component version below:
Linux Node

OS: CentOS 7.6.1810
OVS: 2.10.1
K8s: v1.13.3
Docker: 18.09.1 ce
Pod CIDR: <IP_ADDRESS>/24 ~ <IP_ADDRESS>/24

Windows Node

OS: Windows Server Core 1709 (10.0.16299.125)
OVS: 2.9.4
K8s: v1.13.3
Docker: 18.09.3 ee
Pod CIDR: <IP_ADDRESS>/24

ovnkube init parameters:

Master Node: --init-master=masterX --init-node=masterX --net-controller --cluster-subnet=<IP_ADDRESS>/12 --service-cluster-ip-range=<IP_ADDRESS>/12 --config-file=/etc/openvswitch/ovn_k8s.conf
Linux Minion Node(Gateway, IP <IP_ADDRESS>): --init-node=node001 --init-gateways --nodeport --cluster-subnet=<IP_ADDRESS>/12 --service-cluster-ip-range=<IP_ADDRESS>/12 --config-file=/etc/openvswitch/ovn_k8s.conf
Other Minion Node:  --init-node=nodeXXX --nodeport --cluster-subnet=<IP_ADDRESS>/12 --service-cluster-ip-range=<IP_ADDRESS>/12 --config-file=/etc/openvswitch/ovn_k8s.conf
Windows Minion Node: --init-node=node009 --encap-ip=<IP_ADDRESS> --cluster-subnet=<IP_ADDRESS>/12 --service-cluster-ip-range=<IP_ADDRESS>/12 --k8s-kubeconfig=D:/k8s/pki/admin.conf --config-file=D:/k8s/ovn_k8s.conf

I have tried to schedule pod on Windows minion node, there always have some pod are not accessible.
See reproduce steps below:

Schedule pods on Windows node by apply deployment/service yaml. See the running pod below, there are 2 ips assigned to pod - <IP_ADDRESS>, <IP_ADDRESS>:

[root@master1 ~]# kubectl get pods -o wide | grep iis-test
iis-test-796767ccfb-2trdr              1/1     Running   0          34s   <IP_ADDRESS>   node009   <none>           <none>
iis-test-796767ccfb-9t98h              1/1     Running   0          34s   <IP_ADDRESS>   node009   <none>           <none>

Ping running pod from master1 node.
Master1 IP: <IP_ADDRESS>
Master1 Pod CIDR: <IP_ADDRESS>/24

See ping reply below:

From master1 node, I can ping the port ip <IP_ADDRESS>  of switch "node009" (the Windows node)
From master1 node, I can ping the port ip <IP_ADDRESS> of router "ovn_cluster_router"
From master1 node, I can NOT ping the 2 pod ips: <IP_ADDRESS>, <IP_ADDRESS>

[root@master1 ~]# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=127 time=4.89 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=127 time=2.14 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=127 time=2.04 ms
^C
--- <IP_ADDRESS> ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3013ms
rtt min/avg/max/mdev = 2.049/3.027/4.892/1.320 ms

[root@master1 ~]# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=254 time=1.16 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=254 time=0.724 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=254 time=0.569 ms
64 bytes from <IP_ADDRESS>: icmp_seq=4 ttl=254 time=0.537 ms
^C
--- <IP_ADDRESS> ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3041ms
rtt min/avg/max/mdev = 0.537/0.748/1.165/0.252 ms

[root@master1 ~]# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
^C
--- <IP_ADDRESS> ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 12293ms

[root@master1 ~]# ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
^C
--- <IP_ADDRESS> ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9248ms

Ping from Windows pod inside:
Execute into the Windows pod:

From pod 9t98h(<IP_ADDRESS>), can NOT ping <IP_ADDRESS>
From pod 9t98h(<IP_ADDRESS>), can ping <IP_ADDRESS>
From pod 2trdr(<IP_ADDRESS>), can ping <IP_ADDRESS>
From pod 2trdr(<IP_ADDRESS>), can ping <IP_ADDRESS>

[root@master1 ~]# kubectl exec iis-test-796767ccfb-9t98h ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
command terminated with exit code 1
[root@master1 ~]# kubectl exec iis-test-796767ccfb-9t98h ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=3ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=128

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 3ms, Average = 1ms
[root@master1 ~]# kubectl exec iis-test-796767ccfb-2trdr ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=254
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=254
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=254
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=254

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 2ms, Average = 0ms
[root@master1 ~]# kubectl exec iis-test-796767ccfb-2trdr ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=128

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 2ms, Average = 1ms

Ping from Windows pod
Form Windows minion pod, I can ping the 2 pod ips:

C:\Users\Administrator>ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=128

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 2ms, Average = 1ms

C:\Users\Administrator>ping <IP_ADDRESS>

Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=2ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=128

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 2ms, Average = 1ms

I have also tried in other round and some pods are accessible anywhere, that's why I say "a part of ...". I don't know how to deal with this issue :(.

You need to match the same OVS version. The 2.10 Windows version can be found here: https://cloudbase.it/downloads/openvswitch-hyperv-installer-beta-2.10.msi

@aserdean Many thanks for the guidence and new msi package.
I think your guess is correct, there are so many "Syntax error" error
in ovn-controller.log
2019-04-02T09:14:34.113Z|01102|jsonrpc|WARN|tcp:<IP_ADDRESS>:6642: receive error: Unknown error
2019-04-02T09:14:34.211Z|01103|reconnect|WARN|tcp:<IP_ADDRESS>:6642: connection dropped (Unknown error)
2019-04-02T09:14:34.822Z|01104|lflow|WARN|Dropped 360 log messages in last 20 seconds (most recently, 0 seconds ago) due to excessive rate
2019-04-02T09:14:43.102Z|01105|lflow|WARN|error parsing actions "icmp4 {eth.dst <-> eth.src; icmp4.type = 11; /* Time exceeded */ icmp4.code = 0; /* TTL exceeded in transit */ ip4.dst = ip4.src; ip4.src = <IP_ADDRESS>; ip.ttl = 255; next; };": Syntax error at `icmp4' expecting action.

But the new package shows "Invalid argument" error after I create the ovs bridge and then enable the network extension and start the ovs-vswitchd service:
PS C:\Users\Administrator> ovs-vsctl show
50edc213-9f9d-4c17-9b3f-6b3c39d59c56
    Bridge "vEthernet (eth0)"
        Port "eth0"
            Interface "eth0"
        Port "vEthernet (eth0)"
            Interface "vEthernet (eth0)"
                type: internal
                error: "could not add network device vEthernet (eth0) to ofproto (Invalid argument)"

PS C:\Users\Administrator> ovs-dpctl show
2019-04-04T01:42:29Z|00001|dpif_netlink|INFO|The kernel module does not support meters.
system@ovs-system:
  lookups: hit:10400 missed:3907 lost:0
  flows: 96
  port 1: eth0

And there is a strange net adapter named "vEthernet (vEthernet (eth0))"  been created:
PS C:\Users\Administrator> get-netadapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
vEthernet (vEthernet (... Hyper-V Virtual Ethernet Adapter #2          13 Disabled     00-15-5D-60-01-80         2 Gbps
vEthernet (eth0)          Hyper-V Virtual Ethernet Adapter              5 Up           00-1D-D8-B7-1C-86         2 Gbps
eth0                      Microsoft Hyper-V Network Adapter             3 Up           00-1D-D8-B7-1C-86         2 Gbps

PS C:\Users\Administrator> $adapter= Get-NetAdapter | Where-Object {$_.InterfaceIndex -eq 13}
PS C:\Users\Administrator> $adapter.Name
vEthernet (vEthernet (eth0))

Before you provided the new package, I had tried pull the source code from https://github.com/cloudbase/ovs/tree/branch-2.10-cloudbase and compile it by myself, and meet same error above.
The logs for ovsdb-server and ovs-vswitchd services:

Logs of ovsdb-server
[Logs of ovs-vswitchd]
(https://gist.githubusercontent.com/ylhyh/c99ceb9db18687990d11591cf42ad1f3/raw/1250e2be4ec566d1db8b91407e4c6b73fee08611/ovs-vswitchd.log)

Based on this situation, should I change Linux side back to ovs 2.9.4? but I haven't found the tar ball of v2.9.4 from the download page: http://www.openvswitch.org/download/

Yeah. You need same OVS/OVN versions on all nodes.

@ylhyh I back ported a few fixes to the 2.10 installer. A new installer is available that should fix your issue.

Thanks @aserdean and @shettyg, looking forward to the new installer for ver 2.10.
I will also to create new environment to verify 2.9.4  on  Windows and Linux  both.

I uninstalled 2.10 from Linux node and then installled 2.9.4, Windows pod is work well.
But there are some problems in ovs 2.9.4 with ovnkube:

If a minion node runs ovnkube without --init-gateways flag, the pods which runing on the node can not access to out of pod network.
If a pod runs on node1, it is only accessible from node1, it can not be accessed from other node.

Any misconfiguration?

I uninstalled 2.10 from Linux node and then installled 2.9.4, Windows pod is work well.
But there are some problems in ovs 2.9.4 with ovnkube:

If a minion node runs ovnkube without --init-gateways flag, the pods which runing on the node can not access to out of pod network.
If a pod runs on node1, it is only accessible from node1, it can not be accessed from other node.

This problem was caused by mismatched MTU configuration, physical net adapter's MTU is 1500, if I set ovnkube's MTU as 1500, will cause this issue.
Everything works well after change ovnkube's MTU to 1400.

.

But the new package shows "Invalid argument" error after I create the ovs bridge and then enable the network extension and start the ovs-vswitchd service:
...
And there is a strange net adapter named "vEthernet (vEthernet (eth0))" been created:

This issue should not caused by installer of ovs 2.10.1, it should caused by ovs-vswitchd.exe in ovs 2.10.1.  I have a temporary solution to bypass this issue:
-- Step1: Install ovs 2.10.1 on formal environment
-- Step2: Install ovs 2.9.4 on a temporary environment
-- Setp3: Copy ovs-vswitchd.exe from temp env to formal env, use v2.9.4's ovs-vswitchd.exe to overwrite 2.10.1's
Then follow ovn-kubernetes guide to setup Windows network...
After that, I can make all of the windows pod works well. 😃
(For now, the only issue is #655 )


methods from mysql into mysql_async differ

Hi, I am trying to use mysql_async from existing code using mysql (https://docs.rs/mysql) but notice that some methods are missing or not the same, for example, the ip_or_hostname
/// Address of mysql server (defaults to `<IP_ADDRESS>`). Hostnames should also work.
    pub fn ip_or_hostname<T: Into<String>>(&mut self, ip_or_hostname: T) -> &mut Self {
        self.ip_or_hostname = ip_or_hostname.into();
        self
    }

From https://docs.rs/mysql/18.0.0/src/mysql/conn/opts.rs.html#471-477
/// Address of mysql server (defaults to `<IP_ADDRESS>`). Hostnames should also work.
///
/// **Note:** IPv6 addresses must be given in square brackets, e.g. `[::1]`.
pub fn ip_or_hostname<T: Into<String>>(mut self, ip_or_hostname: Option<T>) -> Self {
    let new = ip_or_hostname.map(Into::into).unwrap_or("<IP_ADDRESS>".into());
    self.opts.0.ip_or_hostname = url::Host::parse(&new)
        .map(|host| host.to_owned())
        .unwrap_or_else(|_| url::Host::Domain(new.to_owned()));
    self
}

When creating the pool, how in mysql_assync use https://docs.rs/mysql/18.0.0/mysql/struct.Pool.html#method.new_manual so that min and max could be used?
Could it be possible to keep the methods with the same signatures and options?

Notice that some methods are missing or not the same, for example, the ip_or_hostname.

Yeah, crates are developed independently and may support different set of features at some point in time. Usually I'm trying to keep them up with each other.
The change, mentioned by you, is relatively new in the mysql create and I'm planning to apply it also to mysql_async in the nearest future.

When creating the pool, how in mysql_async use new_manual...

Please use OptsBuilder::pool_options.

Could it be possible to keep the methods with the same signatures and options?

I think it's possible, at least for inhabitants of the opts module.

Hi @blackbeam , thanks , regarding the OptsBuilder::pool_options. I am testing with something like this:
opts.pool_options(mysql_async::PoolOptions::with_constraints(
      mysql_async::PoolConstraints::new(10, 50).unwrap(),
 ));
let pool = mysql_async::Pool::new(opts);
let conn = pool.get_conn().await.unwrap_or_else(|e| {
    eprintln!("Could not connect to MySQL: {}", e);
    process::exit(1);
});
println!("{:#?}", conn);

I can connect and do some queries but I notice that there is only 1 connection instead of 10 as the minimum defined for the pool, therefore wondering if something else is required to start the pool with the defined options.
Thanks in advance.

I can connect and do some queries but I notice that there is only 1 connection instead of 10 as the minimum defined for the pool, therefore wondering if something else is required to start the pool with the defined options.

Pool behaviour in mysql_async differs in that it won't fill itself to min boundary on creation. There reason behind this is that I wanted to keep pool constructors synchronous.

How could then I create the pool and then pass it as a reference, or it is going to fill up after used 10 times for example?
I was thinking of having a normal fn main() in where I could declare the pool and then have or start all the logging calling an async method but I don't know if this is possible with tokio I mean something like:
fn main() {
// create pool etc
}

#[tokio::main]
fn start {
}

How could then I create the pool and then pass it as a reference, or it is going to fill up after used 10 times for example?

Pool instance is simply an Arc reference under the hood. Yeah it'll fill up lazily from zero connections to min as soon as you acquire min simultaneous connections.

I was thinking of having a normal fn main() in where I could declare the pool and then have or start all the logging calling an async method but I don't know if this is possible with tokio.

Since constructors are synchronous they adds no restrictions on how to instantiate a pool (within synchronous or asynchronous function). Also, since pool is an Arc, each clone of a pool instance will actually be the same instance, so you can create one and giveaway its clones anywhere you want.

Hi, while moving code from mysql to mysql_async again hit the issue with ip_or_hostname any change that in the next release these changes could be unified?
I mainly use https://crates.io/crates/dsn to parse the DSN (returns  options), so is very handy for example in mysql to use something like:
let mut opts = mysql::OptsBuilder::new();
opts.user(dsn.username);
opts.pass(dsn.password.clone());
opts.ip_or_hostname(dsn.host);
if let Some(port) = dsn.port {
    opts.tcp_port(port);
}
opts.socket(dsn.socket);
opts.db_name(dsn.database);

// mysql ssl options
let mut ssl_opts = mysql::SslOpts::default();
if let Some(tls) = dsn.params.get("tls") {
    if *tls == "skip-verify" {
        ssl_opts.set_danger_accept_invalid_certs(true);
    }
}
opts.ssl_opts(ssl_opts);


WIP: Add FFX/RFX estimators

This PR adds new FFX and RFX estimators and restructures some of the estimation code. Main changes:

A new ffx estimation function that runs a standard fixed-effects meta-analysis.
A method argument to the FFX class (renamed from FFX_GLM) that allows users to specify 'fsl' optionally (but defaults to the standard approach).
Removed the ffx_glm and mfx_glm functions as they were just wrappers for fsl_glm and we now have (or soon will have) alternative methods for FFX and RFX.

TO DO:

[X] Add mixed-effect estimation to stan_mfx
[ ] Add a StanMFX class that wraps stan_mfx and follows the existing API
[ ] Split stan_mfx into separate compilation and estimation steps for efficiency
[ ] Get PyStan to install correctly on CircleCI
[ ] Improve returned results (to include credible intervals, pseudo-p values, etc.)
[ ] Auto-scale priors based on data to avoid initialization failures and improve sampling efficiency

@tsalo: I'm now assuming var_maps instead of se_maps, and haven't touched the code in fsl_glm. Presumably that needs to be updated to make sure that we compute se_maps
from the var_maps and sample_sizes.

Per a conversation with Camille Maumet, here, we don't scale the se or var maps by sample size. We just square the se maps to make the flameo-compatible var maps. All we should have to do is remove the line squaring the maps.

Are we talking about standard error maps, or standard deviation maps? Standard errors are estimates of the SD of the population distribution underlying the observed sample. They depend on the sample size (because the estimate gets more precise the larger the sample). But if FSL expects variance maps, then yes, we just need to drop the sqrt.

+1 on using "SE2" or "StdErr2" or somehow referencing `standard error'
terminology, as that is the only way to be clear about what is intended.
(AFAIK, all of the "var"s that @tsalo mentions are squared standard errors
-- aka varcopes -- and not population variances).

Still a WIP, but the stan_mfx function should be working, and is fairly flexible. I decided to go with an MCMC implementation to start with, as it's way easier to implement, more flexible, and is likely to be less biased. The obvious cost is computation time, but it's not as bad as I expected—a few hundred models (e.g., for an atlas-based reduction) shouldn't take more than an hour or two on most systems, and even whole-brain analysis should be feasible on a cluster (though we'll probably need to write code that distributes different voxels to different workers to really make that work well).

I've generalized stan_mfx so that it can now do mega-analysis as well as meta-analysis. Basically you can pass various combination of estimates, variances, standard_errors, and groups, and will generally build you the best possible model given what you passed in. Once we merge this and #173, we'll be in a position to do ROI-level Bayesian mixed-effects meta/mega-analysis estimation fairly efficiently... pretty exciting!

Now that PyMARE is up and running, and the PyMARE integration is mostly handled (minus Stan and MCC), should we close this?


[Idea] An "animate" attribute

Hi,
I love Iconify, so thanks a lot for your work. This is awesome.
A feature I would really like to see is an animate attribute. We could set it to rotate, pulsing, jumping, etc. That would be useful to use it as a spinner, interesting effects on hover, or to get user's attention.
Cheers :)

Thank you!
Animations are done by adding some css, so you can already do that: add animation to stylesheet, add class to icon placeholder. Something like this:
.spin-icon {
	animation: spin 2s linear infinite;
}

@keyframes spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

Thanks a lot for this :) Yes, indeed, I was doing it on a styled component I have around the Iconify button :) Cheers, it's an awesome library.


Server Crashing

Hello there! Awesome mod you got there! We wanted to play it on our server and create a realistic modpack with it but.. well:
debug-5.log
latest.log
latest (1).log

According to predictions of Barteks2x, developer of Cubic Chunks, - which i assumed at the beggining that is the reason behind the bug - the posible conflict are somewhere between heavyinventories baubles and thaumcraft. But we're not sure.

Was in the middle of getting the auto config Generation to fix. Hopefully fixed the baubles issue. Couldn’t find any issues with thaumcraft. Will push a build to curseforge tomorrow.
Leaving this topic open in case the same issue arises again.


Pip-tools should not canonicalize package names when writing to requirements file

Piptools canonicalizes package names according to PEP 503 when writing to the requirements.txt file.
This can cause problems for tools like PyCharm that compare the contents of the requirements.txt file to the list of packages that are actually installed, leading to false "Package not installed" warnings that won't go away.
It is legitimate for package names to contain periods, for example: https://pypi.org/project/zope.interface/
I do not believe that canonicalizing the package name when writing to requirements.txt is correct, because PEP 503 relates to the API for a package repository, which is really a different thing from the requirements file. Pip will automatically canonicalize the package name when using the requirements file to access the package repository, so it will find and install the package regardless of whether it was canonicalized in the file or not.
Environment Versions

OS Type : Mac OS
Python version: $ python -V : Python 3.10.4
pip version: $ pip --version : pip 21.3.1
pip-tools version: $ pip-compile --version : pip-compile, version 6.6.2

Steps to replicate

Setup contents of requirements.in:

datetime

Run pip-compile -U

Resulting requirements.txt:
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
#    pip-compile
#
datetime==4.4
    # via -r requirements.in
pytz==2022.1
    # via datetime
zope-interface==5.4.0.             <== Notice the "-" in the package name
    # via datetime

# The following packages are considered to be unsafe in a requirements file:
# setuptools

Output of pip freeze after running pip install -r requirements.txt:
click==8.1.3
pep517==0.12.0
pip-tools==6.6.2
tomli==2.0.1
zope.interface==5.4.0               <== Notice the "." in the package name

Expected result
I expect the following in requirements.txt:
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
#    pip-compile
#
datetime==4.4
    # via -r requirements.in
pytz==2022.1
    # via datetime
zope.interface==5.4.0.             <==
    # via datetime

# The following packages are considered to be unsafe in a requirements file:
# setuptools

Actual result
Resulting requirements.txt:
#
# This file is autogenerated by pip-compile with python 3.10
# To update, run:
#
#    pip-compile
#
datetime==4.4
    # via -r requirements.in
pytz==2022.1
    # via datetime
zope-interface==5.4.0.             <== Notice the "-" in the package name
    # via datetime

# The following packages are considered to be unsafe in a requirements file:
# setuptools

I'm going to close this, but feel to continue the discussion at #1576.
If the only problem you're experiencing is with PyCharm, note that the project has known issues in its ability to match up modules with PyPI packages; see:

https://youtrack.jetbrains.com/issue/PY-49425 (and all the issues marked as duplicates of that one)
https://youtrack.jetbrains.com/issue/PY-22114
https://youtrack.jetbrains.com/issue/PY-24636


Feature: Index page, based on PR from Vedavyas Kadudas

Codecov Report

Merging #108 into master will decrease coverage by 0.38%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##           master     #108      +/-   ##
==========================================
- Coverage   92.32%   91.93%   -0.39%
==========================================
  Files           4        4
  Lines         482      496      +14
==========================================
+ Hits          445      456      +11
- Misses         37       40       +3

Impacted Files
Coverage Δ

vmware_exporter/vmware_exporter.py
91.96% <83.33%> (-0.46%)
:arrow_down:

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 19135a6...0ea6cdc. Read the comment docs.

Happy with the changes but separate PRs would have been nicer to review.

@Jc2k Agree'd I let it slide because hes semi new to the project and I didn't want to slow him down.


Load balancing behaviors with different service discovery types

Hi team, I have a few questions about the load balancers mentioned here https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers

Are these load balancers supported in all service discovery types: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/service_discovery
If so, what is the behavior of combining load balancer with Strict DNS and Logical DNS type? especially in a k8s setting?

In general all load balancers are supported for all SD types. I would need more information to specifically comment further.

Thanks @mattklein123 , regarding question 2, for example, we have a k8s service called hello, and here is the cluster config we have. In this case, k8s service will resolve the endpoints for the pods under it, does enovy do load balancing (using LEAST_REQUEST set in the config) to these endpoints, or just send the requests to the service and k8s does the load balancing?
  clusters:
  - name: some_service
    connect_timeout: 0.25s
    type: STRICT_DNS
    lb_policy: LEAST_REQUEST
    load_assignment:
      cluster_name: hello
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: hello
                port_value: 1234

So for the example I posted, enovy will resolve the DNS target and apply load balancer LEAST_REQUEST to the return Ip addresses? The reason I am asking is that k8s will resolve DNS target and route traffic through kube-proxy link, I want to understand if the envoy load balancer will apply when we use STRICT_DNS or LOGICAL_DNS.

Yes, Envoy will resolve DNS targets and apply Load balancing.
As far as I know kube-proxy will not do the L4 & L7 load balancing of connections/requests.
I think you might want to see this https://thenewstack.io/why-do-you-need-istio-when-you-already-have-kubernetes/

Thanks @suniltheta for the clarification!

@suniltheta For envoy to be able to resolve the hosts and apply client-side load balancing. The application must use headless service which provides the IP address of all hosts and as well will it work without configuring any of the DNS resolvers in the extension - https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/dns_resolver/dns_resolver

Envoy uses Cares Dns Resolver by default. So there is no need to explicitly configure CaresDnsResolverConfig extension.
While Cares client tries to resolve DNS it is the job of coredns or kube-dns in kubernetes cluster to resolve the DNS to a list of IP address. After Envoy received these IP address the client side load balancing algorithm will apply based on resolved IP addresses.

@suniltheta Based on this doc - https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#envoy-v3-api-field-config-cluster-v3-cluster-dns-resolvers envoy defaults to /etc/resolv.conf for configuration .
In the K8s world if the service configured is not a headless server DNS resolver would resolve it to the Service IP address (Single IP address).  Is it a requirement to have a headless service to have client-side load balancing? If the Service is of type load balancer how would STRICT_DNS resolve to hosts?

I would like someone else who is more familiar on this topic to weigh in here. If I made wrong assumptions please correct me.
From what I know /etc/resolv.conf will not contain the resolved DNS address but only the list of nameserver addresses to reachout to and any DNS resolver configuration such as search namespace. Inside Kubernetes cluster I see the following file stored in a pod container
bash-4.2# cat /etc/resolv.conf
nameserver <IP_ADDRESS>
search <namespace>.svc.cluster.local svc.cluster.local cluster.local us-west-2.compute.internal
options ndots:5

We would still need a DNS resolver client to reachout to the nameservers.

Meanwhile I am not familiar with headless server aspects.

I did some testings with the combination of STRICT_DNS type and lb. In the config, I added a resolver config with the kube-dns endpoint <IP_ADDRESS>. When my upstream service is a regular service, the same request will be routed to all upstream hosts. But when I changed the upstream service to be a headless service, the same request will only be routed to 1 particular upstream host, which should be the expected behavior for RING_HASH. Looks like lb is not working with STRICT_DNS type unless we use headless service.
  clusters:
  - name: service_backend
    type: STRICT_DNS
    lb_policy: RING_HASH
    typed_dns_resolver_config:
      name: envoy.network.dns_resolver.cares
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig
        resolvers:
          - socket_address:
              address: <IP_ADDRESS>
    ring_hash_lb_config:
      minimum_ring_size: 1024
      maximum_ring_size: 8192
    load_assignment:
      cluster_name: upstream_cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: upstream
                port_value: 8000


Add option to limit directories in git repo on the server side

how it works now
At the moment OPAL server tracks a git repo for sourcing policy code (rego and static data) to its clients. The entire repo is exposed by default to the clients, and the clients decide what directories that want to subscribe to.
potential improvement
The opal server should potentially accept a config option to only track some directories on the source repo (i,e: have different roots) and only tracks them.

Partially done by #372


Cannot install nuget packages

Describe the bug
Throwing exceptions during installation (see screenshots)
Version
1.0.156101+537f46e89a1690a55315d805eb90a5877aff9de2

OS

[x] Windows 10

Browser

[x] Firefox
[x] Opera

Frontend

[x] Jupyter Notebook

Screenshots

Dotnet version: 5.0.100
I guess it might be the issue

This is an old version, when our Jupyter support was part of dotnet-try. This is no longer the case.
Please install the latest using dotnet tool install -g Microsoft.dotnet-interactive, run dotnet interactive jupyter install, and give it another try.

Hm, indeed. Must've confused some articles and used an old way to install, now it works, thanks


Lensed hosts instance catalogs

@mpwiesner Have you tested running the code in sims_GCRCatSimInterface to generate the instance catalogs? If so, do you have a sample script I could try?

Closed by #14


Tech doc list draft

[ ] Start a list of technical documents we might want to build to support Azure customers.
[ ] Redesign article hierarchy (Get Started) to include a path for both Azure and AWS
[ ] Involve Pilar for consultation

In the Tech Docs, we need to include a section of "be ware" for issues/challenges that could be experienced.
One example is the issue with VNet Integration (with an App Service or Web App), and the AppServiceLink / serviceAssociationLinks/

TechDocs file/folder hierarchy has been re-structured, along with initial Azure documentation written.

Currently in the public-cloud-techdocs repo, under the azure-placeholder branch.

Ready for peer review and publishing.


doc: doc should be pronoun-less and imperative?

From https://github.com/coreos/etcd/pull/3913#discussion_r45673900
We need a better discussion about this. If we all agree on it, we need to start fixing all docs.
@jonboulle @joshix

I strongly agree with @jonboulle's comment on #3913. Documentation remains clearer and less idiomatic if it is impersonal and imperative. It is especially easy to gain layers of indirection with the second person pronoun ("you").
I try to write new content in an active imperative voice, and expect we will make the wider existing documentation conform more with that style with iterations over time.
General, loose guidance to this effect probably belongs in the coreos/docs#633 style guide once it is established for simpler matters of text formatting.

https://github.com/joshix/docs/blob/styledir-hdings/STYLE.md#eschew-you

Closing since this is already in https://github.com/coreos/docs/blob/master/STYLE.md#eschew-you.


Handle to_h with block in Style/HashTransformKeys and Style/HashTransformValues

Followup to https://github.com/rubocop-hq/rubocop/pull/7663.
Since Ruby 2.6, Hash#to_h accepts a block which is called with each pair and must return a key and value to include in the new hash: https://rubyreferences.github.io/rubychanges/2.6.html#to_h-with-a-block
If either the key or the value are always returned unchanged, using Hash#transform_keys or Hash#transform_values is faster and clearer.
This is similar to the existing logic that detects map { ... }.to_h.

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Good catch! Thanks @eugeneius!


Msal-react typedocs

Adds typedoc scripts to msal-react

Coverage increased (+10.9%) to 93.413% when pulling 1e0bd6ef62363bc1fa13779ac06842afd9459d9e on msal-react-typedocs into 5be644ecded90e25d6ea2effd20fdaab78dbf407 on dev.

Coverage increased (+10.9%) to 93.413% when pulling 1e0bd6ef62363bc1fa13779ac06842afd9459d9e on msal-react-typedocs into 5be644ecded90e25d6ea2effd20fdaab78dbf407 on dev.

Can you add msal-react to this file? https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/3d04da6f9eea4ab49f5e33566a0871745e5aa8e4/.github/workflows/typedoc.yml

Done

Can you add msal-react to this file? https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/3d04da6f9eea4ab49f5e33566a0871745e5aa8e4/.github/workflows/typedoc.yml

Done

One thing is that the homepage for the respective modules don't pull in their README:
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
vs
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
Any idea if that can be addressed? Not a big deal, would be nice if so.

One thing is that the homepage for the respective modules don't pull in their README:
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
vs
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
Any idea if that can be addressed? Not a big deal, would be nice if so.

One thing is that the homepage for the respective modules don't pull in their README:
https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_browser.html
vs
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
Any idea if that can be addressed? Not a big deal, would be nice if so.

Was able to have our root readme show up on the main page but not sure at the moment how to get the individual ones for each repo. I saw there's some plugins that allow you to integrate markdown files into the typedocs. That's probably worth playing around with incrementally.

One thing is that the homepage for the respective modules don't pull in their README:
https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_browser.html
vs
https://azuread.github.io/microsoft-authentication-library-for-js/ref/msal-browser/
Any idea if that can be addressed? Not a big deal, would be nice if so.

Was able to have our root readme show up on the main page but not sure at the moment how to get the individual ones for each repo. I saw there's some plugins that allow you to integrate markdown files into the typedocs. That's probably worth playing around with incrementally.


Using Bower

Lets say I have a project that uses bower, grunt, bowerify(with shim) and since I love Jest so much I want to test with that. How in the world do I get jest to see my browserify shim modules when it runs tests. I use grunt, to kick off the npm test command.
Here is my package.json file.

"browser": {
    "jquery": "./bower_components/jquery/dist/jquery.js",
    "foundation": "./bower_components/foundation/js/foundation/foundation.js",
    "fastclick": "./bower_components/fastclick/lib/fastclick.js",
    "greensock-tm": "./bower_components/gsap/src/uncompressed/TweenMax.js",
    "greensock-css": "./bower_components/gsap/src/uncompressed/plugins/CSSPlugin.js",
    "greensock-time": "./bower_components/gsap/src/uncompressed/TimelineMax.js",
    "scrollmagic": "./bower_components/ScrollMagic/js/jquery.scrollmagic.js",
    "handlebars": "./bower_components/handlebars/handlebars.runtime.js"
  },
  "browserify-shim": {
    "jquery": "$",
    "greensock-css": "CSSPlugin",
    "fastclick": "FastClick",
    "greensock-tm": "TweenMax",
    "greensock-time": "TimelineMax",
    "scrollmagic": "ScrollMagic",
    "foundation": "foundation",
    "handlebars": "Handlebars"
  },
  "browserify": {
    "transform": [
      "browserify-shim"
    ]
  },

Hi, were you able to run jest with that setup ?

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

There is a moduleNameMapper option now that is made for this use-case. It should work well in the 0.9 release of Jest.


Added Counting Sort [JavaScript]

Fixes #378
By submitting this pull request I confirm I've read and complied with the below declarations.

[x] I have read the Contribution guidelines and I am confident that my PR reflects them.
[x] I have followed the coding guidelines for this project.
[x] My code follows the skeleton code structure.
[x] This pull request has a descriptive title. For example, Added {Algorithm/DS name} [{Language}], not Update README.md or Added new code.
[x] This pull request will be closed if I fail to update it even once in a continuous time span of 7 days.

DO NOT REVIEW

Fixed @mohitkyadav


Uncaught TypeError: Cannot read property 'children' of undefined at getChildrenFromProps

ERROR:
Uncaught TypeError: Cannot read property 'children' of undefined
    at getChildrenFromProps (modules.js?hash=c3bb3b2…:122940)
    at new Animate (modules.js?hash=c3bb3b2…:122968)
    at modules.js?hash=c3bb3b2…:36983
    at measureLifeCyclePerf (modules.js?hash=c3bb3b2…:36764)
    at ReactCompositeComponentWrapper._constructComponentWithoutOwner (modules.js?hash=c3bb3b2…:36982)
    at ReactCompositeComponentWrapper._constructComponent (modules.js?hash=c3bb3b2…:36968)
    at ReactCompositeComponentWrapper.mountComponent (modules.js?hash=c3bb3b2…:36876)
    at Object.mountComponent (modules.js?hash=c3bb3b2…:29710)
    at ReactDOMComponent.mountChildren (modules.js?hash=c3bb3b2…:36062)
    at ReactDOMComponent._createInitialChildren (modules.js?hash=c3bb3b2…:33263)

FIX:
https://github.com/react-component/animate/blob/master/src/Animate.js#L70
change this.props to props

Yep, you are right. PR is welcomed.
And you had better provide a re-producible demo first, I am curious why we didn't re-produce this issue before.

I don’t get it, in this case,  this.props should equal to props?

class Test extends React.Component {
  constructor(props) {
    super();
    console.log(props, this.props, props === this.props); // => Object {} undefined false
  }
  render() {
    return null;
  }
}

ReactDOM.render(<Test />, mountNode);

@benjycui You should use super(props)

@paranoidjk yep, this is OK.
Maybe you should upgrade your React first @Chun-Yang

https://github.com/facebook/react/blob/master/src/isomorphic/modern/class/ReactBaseClasses.js#L24

I have this issue in IE 10 , but IE 11 or chrome browser is OK
uncaught at _callee3   at _callee6   at takeEvery(alertView/queryViews, sagaWithCatch)   at sagaWithCatch   Error: TypeError: 无法获取未定义或 null 引用的属性“children”    at getChildrenFromProps (http://localhost:8000/index.js:35449:4)    at Animate (http://localhost:8000/index.js:35476:6)    at Anonymous function (http://localhost:8000/index.js:133462:12)    at measureLifeCyclePerf (http://localhost:8000/index.js:133243:6)    at ReactCompositeComponent._constructComponentWithoutOwner (http://localhost:8000/index.js:133461:10)    at ReactCompositeComponent._constructComponent (http://localhost:8000/index.js:133447:10)    at ReactCompositeComponent.mountComponent (http://localhost:8000/index.js:133355:6)    at ReactReconciler.mountComponent (http://localhost:8000/index.js:43860:6)    at ReactMultiChild.Mixin.mountChildren (http://localhost:8000/index.js:137878:12)    at ReactDOMComponent.Mixin._createInitialChildren (http://localhost:8000/index.js:134890:10)    at Anonymous function (http://localhost:8000/index.js:112098:

render {
return (
<RoomContext.Provider value="hello">
{this.probs.children}
</RoomContext.Provider>

{this.probs.children}

Replace the b with a p.


Add dump() and dumps() methods

To render Apache configuration from dict to address issue https://github.com/etingof/apacheconfig/issues/2

Codecov Report

Merging #5 into master will decrease coverage by 2.39%.
The diff coverage is 61.76%.

@@            Coverage Diff            @@
##           master       #5     +/-   ##
=========================================
- Coverage   94.41%   92.02%   -2.4%
=========================================
  Files           5        5
  Lines         430      464     +34
=========================================
+ Hits          406      427     +21
- Misses         24       37     +13

Impacted Files
Coverage Δ

apacheconfig/loader.py
88.93% <61.76%> (-4.82%)
:arrow_down:

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 e8e65e1...b19297f. Read the comment docs.


Enable code analysis

Enable code analysis and document as discussed in this Google Group thread.

Ugh, despite my best efforts my commit comments ended up with typos anyway. :rage:


Scale shoot's control plane according to the number of maximum nodes

What this PR does / why we need it: Currently the shoot's api server is not able to handle load in case it increases. We need to scale the api server as the load increases
Which issue(s) this PR fixes:
Partially Fixes #255
Special notes for your reviewer:
Release note:

What about https://github.com/gardener/gardener/blob/master/charts/seed-controlplane/charts/kube-apiserver/templates/kube-apiserver.yaml#L47-L49?

On line:
https://github.com/gardener/gardener/blob/a24938792051ecb20efd8b70a1c89d9565d3477e/pkg/operation/hybridbotanist/controlplane.go#L212
	if val, ok := defaultValues["replicas"]; ok {
		values["replicas"] = val
	}

Adding above lines should take care of it. However, after HPA scales the apiserver deployment, the --apiserver-count will still remain the same until the kube-apiserver deployment reconciles.
Will need to think some more if we want to do autoscaling for version < 1.11
Otherwise, will need to remove autoscaling for version < 1.11 altogether.

@ggaurav10 I put some more minor thoughts inline. After you've addressed them I will play around with the PR and see what the consequences regarding the --apiserver-count are if we don't update the value properly.


Go through papers that have mentioned Mondo and find out what they are doing with Mondo

@sagehrke
@matentzn suggested we do this and I think it is a great idea. If you have bandwidth to do this, it would be so helpful!

For now, just a link to the paper with one sentence on how Mondo is utilised, then we can develop a coding scheme for that.


Expected behavior for workloads created natively

When workload gets created natively (using kubectl), it gets discovered by Rancher and displayed in the UI. And if user edits such workload using Rancher UI/API, there are chances that the pods would get recreated, even if the update only changes the workload scale. It happens because Rancher's API require some data to be put to k8s annotations on the pod spec, and pod spec changes trigger workload upgrade/pod recreation.
https://github.com/rancher/rancher/issues/13655
We should document this behavior.
@deniseschannon

Without using kubectl CLI to create workload, what is other CLI option in Rancher 2.x to create workload without GUI


Unable to fetch<EMAIL_ADDRESS>attribute when the delta include folder permission change

Category

[ ] Question
[ ] Documentation issue
[X] Bug

Steps to Reproduce

Create a folder with sharing on the folder
Add a user with direct access to the folder
Fetch the latest changes for the user using delta changes with Prefer: hierarchicalsharing, deltashowremovedasdeleted, deltatraversepermissiongaps and deltashowsharingchanges.
then we received an  error with status code 410 (gone)"
{"error":{"code":"resyncRequired","message":"Resync required. Replace any local items with the server's version (including deletes) if you're sure that the service was up to date with your local changes when you last sync'd. Upload any local changes that the server doesn't know about.","innerError":{"date":"2022-06-07T13:26:02","request-id":"xxxx","client-request-id":"xxxx"}}}

Only when I remove deltashowsharingchanges from the header the response return ok but I cat retrieve the<EMAIL_ADDRESS>attribute
Expected or Desired Behavior
The drive items returned in step 4, with the property @microsoft.graph.sharedChanged set to true
Thank you.
[ ]: http://aka.ms/onedrive-api-issues
[x]: http://aka.ms/onedrive-api-issues

Hi Gil, in order for us to look into this issue more we'll need the request-d and client-request IDs along with the timestamp.
To make sure I'm following correctly, if you exclude deltashowsharingchanges you get a successful delta call including the results for the user that was added to the folder, but adding deltashowsharingchanges results in the 410 response?


Adding Kubernetes Node labels to Solr nodes. (WIP)

Issue number of the reported bug or feature request: Resolves #53
Describe your changes
This PR adds Kubernetes Node labels as sysProps for Solr Nodes, thus allowing for them to be used within Solr autoscaling policies.
Kubernetes Node labels are added in the following steps:

In an initContainer, the Kubernetes API is queried to get the information for the node the pod resides on.
jq is used to parse this information and generate a sh script to update $SOLR_OPTS to contain -d<kube-node-label>=<value>.
This bash file is shared via a volume between the initContainer and the solr container.
Solr is provided this sh script via  the $SOLR_INCLUDES envVar. This is an option that Solr reads when it starts up.
When Solr starts, the SOLR_OPTS will contain the -D options that specify all of the Kubernetes node labels.

Testing performed
Tested locally.
This is a WIP and the feature has not been finalized yet.

Any update?

No update other than it worked in my tests. We probably want to add this as an optional feature, at least at first. I can probably do some work on it next week or the next one.
I wanted to get some feedback before moving forward with it

I'm going to try and get #95 merged in, then cut the v0.2.4 release. After that I'll try to get this merged, as it's quite a large change to how Solr is "run".


Compile list of container roles

Which containers do we need in addition to the app containers? The list compiled here should be role based and include the main individual components for each such container.

display server: X11 + composition manager ( + hardware driver)

Do you mean to add descriptions to each image/directory ?

It looks like we will have certain containers for providing infrastructure. X11 is currently one. Maybe we will also separate the close button and the menu into individual containers. I would like to keep as much out of the app containers as possible. I created the issue to discuss which separation makes sense.


[AddToApp] x86_64 libflutter.so not exist when build apk

Use case
Flutter version: 1.17.5
Target platform: Android

For example, our project structure like below,
https://flutter.dev/docs/development/add-to-app/android/project-setup
Master Project
   |_ Android project
   |_ iOS project
   |_ add_to_app_flutter

If we build apk in android,
android build apk

There are no libflutter.so and libapp.so in x86_64.
But in flutter said, https://flutter.dev/docs/deployment/android#build-an-app-bundle
By default, the app bundle contains your Dart code and the Flutter runtime compiled for armeabi-v7a (ARM 32-bit), arm64-v8a (ARM 64-bit), and x86-64 (x86 64-bit).
flutter build apk
If we run flutter build apk under add_to_app_flutter directory.
MasterProject/add_to_app_flutter/build/host/outputs/apk/release/app-release.apk

There are lisflutter.so and libapp.so in x86_64.
🤔
Proposal
We thought maybe there was an issue with gradle.
So I found the flutter.gradle file to analyze how it works.
We added PLATFORM_X86_64 into the DEFAULT_PLATFORMS
https://github.com/flutter/flutter/blob/ddb8e6e3bfef90c8674ac0ab5508e581a3873dae/packages/flutter_tools/gradle/flutter.gradle#L77-L79
And it works!!

Could you add PLATFROM_X86_64 into the DEFAULT_PLATFORMS at next flutter version for add-to-app ?

Seems like a reasonable fix.
DEFAULT_PLATFORMS are only used if your gradle script does not specify one or more target platforms though. You should be able to pass in --Ptarget-platform=android-arm,android-arm64,android-x64


Fix the link to Storage types comparison

The link to Storage types seemed to be outdated

Would it be possible, that you could also update the information about the sql messaging type?
It still mentions that LP will default to it when you use none while using a MySQL-like database... This has changed to my knowledge as none was changed to auto
@lucko please correct me here if I'm wrong.

Thanks @caramat!
@Andre601, fe139f8420091bba479421ed66788dd2fd468e79


[FEATURE REQUEST] wish to download all completed job by one command

Hi, do you have a plan to support another command argument to download all completed items  one time.
Now I can specify jobs' id to download them manually. However, if I could run a batch command, maybe lx download --completed, then all completed items are downloaded one by one automatically. I think it should be more useful :)

You can combine lx download with lx list:
lx list --completed --no-name --no-status | xargs lx download
I could add --completed to lx download, it's a small effort. But I'm not sure this is a common requirement. I will think about it.


⚠ Bofrost.fr has degraded performance

In b0921cd, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1038 ms

Resolved: Bofrost.fr performance has improved in d4d90a7 after 22 minutes.


How to do multiple (chain) request?

Question
So I need to do multiple request (chaining) in one scenario. For example, I need to log-in the user and then get list of items and then buy the items. What is the best way to do that in vegeta? Currently I'm using this template to do that:
userLoginTargeter := ...........................
rate := vegeta.Rate{Freq: 1, Per: time.Second}
for response := range attacker.Attack(userLoginTargeter, rate, time.Second, "User Login")
   var token token.Response
   json.Unmarshal(response.Body, &tokenResponse)

   itemListTargeter := ..................
   resItemList := <-attacker.Attack(itemListTargeter, vegeta.Rate{Freq: 1, Per: time.Millisecond}, time.Millisecond, "Get Item List")
   var items []item.Response
   json.Unmarshal(resItemList.Body, &items)

   createOrderTargeter := ..................
   resCreateOrder := <-attacker.Attack(createOrderTargeter, vegeta.Rate{Freq: 1, Per: time.Millisecond}, time.Millisecond, "Create Order")

   results.Add(resCreateOrder)
}

Vegeta wasn't designed with user sessions in mind, so this is not easy to do. I suppose what you're trying could work, but have you considered load testing one endpoint at a time, separately?

I see. I have done it, doing load test per-endpoint. I just want to try to simulate what user do in real world scenario with vegeta if possible.
Thanks @tsenart

Looks really cool. Going to try it :+1:

interesting...

I see. I have done it, doing load test per-endpoint. I just want to try to simulate what user do in real world scenario with vegeta if possible, so I can replace Gatling with vegeta completely since Gatling needs a lot of memory to run.
Thanks @tsenart

@ajiyakin still use Gatling? thanks! I want to solve the issue.

@theikalman Which tools would you recommend? Is vegeta good for simulating complex transactions?


Review configuration properties

Review all properties in PropertyKey.java and remove a few keys no longer used in the code base
Modified "alluxio.foo.bar.ms" to "alluxio.foo.bar" in raw keys --- the Property Key names are not changed.
Renamed a bunch keys to be consistent with Alluxio convention and like to see reaction from the other maintainers.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4244/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4259/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4276/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4278/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4279/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4280/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4281/
Test PASSed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4282/
Test FAILed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4283/
Test PASSed.

Jenkins, test this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4284/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4286/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4288/
Test PASSed.

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.0 please


Store raw data

Overview
When there is an error in list processing, it's sometimes unclear whether that error was caused by an improperly formatted list file or by a bug in the code. Debugging is much more efficient and effective when we have access to the originally uploaded file. We now store the raw data file in S3 when it's uploaded, and enable downloading via both the list details and the Django admin.
Connects #2119
Demo

Testing Instructions

Run ./scripts/update and ./scripts/server
Contribute a file. It should save the the local file system. (Note: The download buttons won't work.)
In docker-compose.yml, set the AWS_STORAGE_BUCKET_NAME to opensupplyhub-testing-files-eu-west-1.
In settings.py, change the conditional if not DEBUG on line 462 to be True (to cause Django to use S3 instead of the local filesystem)
Contribute a file. Upload should succeed.
Visit the opensupplyhub-testing-files-eu-west-1 bucket on S3. The file you uploaded should be there.
On the list page, use the 'download submitted csv' button to download the CSV.
On the Django admin, use the download button in the FacilityList's details to download the CSV.
Contribute a file with the same name. View the bucket on S3 and confirm that the original file wasn't overwritten.
You should be able to download the second CSV via the list details and Django admin.
Visit a list details page that was uploaded on a different branch (ie where the list file hasn't been stored). The list should load without error, and the button for the original file should be hidden.

Checklist

[ ] fixup! commits have been squashed
[ ] CI passes after rebase
[ ] CHANGELOG.md updated with summary of features or fixes, following Keep a Changelog guidelines
[ ] This PR is targeted at the correct branch (develop vs. ogr/develop)
[ ] If this PR applies to both OAR and OGR a companion PR has been created

@jwalgran I haven't built a test branch for this. Do we want to apply this to OAR as well as OSHub? If so, should we do an OAR test branch, so we get it running on a less user-facing environment before we merge to ogr/develop and develop?

We don't need to make these changes to OAR. I recommend that we coordinate with the OS Hub team when we will be testing this on OS Hub staging

@jwalgran Ready for another look!


Squash merge message is incorrect following force-push

Gitea version (or commit ref): 1.11.1
Git version: 2.25
Operating system: Windows
Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[x] Yes (provide example URL) https://try.gitea.io/klinki/squash-merge-rebase-bug/pulls/1
[ ] No
[ ] Not relevant

Description
Squash and merge functionality gets broken when branch is rebased.
It seems it caches original parent commit and when the parent changes (after rebase) it doesn't reflect those changes.

In commit message it shows unrelated messages from previous commits
After completing squash and merge it shows invalid commits in PR

Try looking at commit message on provided URL and also try doing squash and merge.
Screenshots

Ok so presumably this is an issue with not recalculating the merge base each time.
Now this is strange because of the merge base is off then I think compare will probably be off too.

So the likely problem is here:
https://github.com/go-gitea/gitea/blob/5abe1c52de533b52725b1e584db9fea6fb1b39ab/models/pull.go#L252
We should be regenerating the merge base from the base to the head.

I've also changed the issue title as it is only the default suggested merge message that is incorrect.

Ah there are two different issues here. Sorry I've misunderstood.
I've been looking at the merge messages only - these need to match the merge base we're actually going to use - now that could/should be precalculated in pull request checker.
Now, in the case of the compare after merge we need to use the merge base that we did use.
I think currently we may be showing commits that are on the base branch but are not on the head too - so it may be that we're doing the wrong diff.

wow, that was quick, thanks :) Can't wait to test new version with this fix!

resolved by #10605


Karteikarten app

Eine App zum beantworten von Karteikarten mit Kopfbewegungen

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Error in flashing stm32f103c8t6 using stlink-v2

Hi,
I'm trying to flash my simple main.bin into "stm32f103c8t6" using stlink-v2
root@VAIO:/home/blacky/stm32_ARM# ./st-flash write main.bin 0x08000000
st-flash 1.4.0-39-g6db0fc2
2018-06-16T00:28:32 INFO common.c: Loading device parameters....
2018-06-16T00:28:32 INFO common.c: Device connected is: F1 Medium-density device, id 0x20036410
2018-06-16T00:28:32 INFO common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2018-06-16T00:28:32 INFO common.c: Attempting to write 67668 (0x10854) bytes to stm32 address: 134217728 (0x8000000)
2018-06-16T00:28:32 ERROR common.c: addr too high
stlink_fwrite_flash() == -1
root@VAIO:/home/blacky/stm32_ARM#

Error:

ERROR common.c: addr too high
stlink_fwrite_flash() == -1

Please help to resolve this.
Thanks in advance.

You are trying to write a program that is bigger than the memory of your STM ^^
It seems that your STM has 64 kBytes of flash and your program is more than 67 kBytes.


Update lingon-x to 6.0

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Running script.sh...

>>> brew cask _audit_modified_casks 9234acfaea66985c9360fb3cfd5cee0938e8f494...ce157789eaecc1aaaf1d688cb20268b074476830
==> 1 modified cask: lingon-x
==> Downloading https://www.peterborgapps.com/downloads/LingonX6.zip
==> Verifying checksum for Cask lingon-x
audit for lingon-x: passed

>>> brew cask style Casks/lingon-x.rb

1 file inspected, no offenses detected

>>> brew cask reinstall --verbose Casks/lingon-x.rb
==> Satisfying dependencies
Error: Cask lingon-x depends on macOS release >= 10.13, but you are running release 10.12.
Error: Kernel.exit


HITL simulation with the latest PX4 firmware using Pixhawk4 mini does not work

Describe the bug
I was trying to do HITL simulation with jMAVSim using the latest version of px4.
The setting seemed to be fine but if I arm the vehicle and increase the thrust,
The quadcopter swings with respect to x-axis and fall.
To Reproduce
I followed the procedure below with the latest version of px4. The board was pixhawk4 mini.
I used real RC with position control
https://dev.px4.io/v1.9.0/en/simulation/hitl.html
Expected behavior
It should just go straight up and hold it's position since I only increased the thrust
Log Files and Screenshots
////// Boot and simulation log///////
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_FMU_V5
HW type: V540
HW version: 0x00000004
HW revision: 0x00000000
FW git-hash: 0a7cde48197f2cfd6c1dcd14f70de0b11599585c
FW version: 1.11.0 0 (17498112)
FW git-branch: master
OS: NuttX
OS version: Release 8.2.0 (134349055)
OS git-hash: ec417d7466666801e911e50d72766225ca7790a1
Build datetime: Apr 15 2020 20:52:13
Build uri: localhost
Toolchain: GNU GCC, 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
PX4GUID:<PHONE_NUMBER>00353338373138511400300019
MCU: STM32F76xxx, rev. Z
[hardfault_log] Fault Log is Armed
INFO  [param] selected parameter default file /fs/mtd_params
INFO  [tune_control] Publishing standard tune 1
Board defaults: /etc/init.d/rc.board_defaults
INFO  [dataman] Unknown restart, data manager file '/fs/microsd/dataman' size is 362560 bytes
Board extras: /etc/init.d/rc.board_mavlink
INFO  [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
Starting MAVLink on /dev/ttyS1
INFO  [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS1 @ 57600B
ERROR [mavlink] offboard mission init failed (-1)
INFO  [init] Mixer: /etc/mixers/quad_x.main.mix on /dev/pwm_output0
INFO  [logger] logger started (mode=all)
NuttShell (NSH)
nsh> INFO  [ecl/EKF] reset position to last known position
INFO  [ecl/EKF] reset velocity to zero
INFO  [ecl/EKF] 244140069: EKF aligned, (baro height, IMU buf: 22, OBS buf: 14)
INFO  [ecl/EKF] GPS checks passed (WGS-84 origin set)
INFO  [ecl/EKF] reset position to GPS
INFO  [ecl/EKF] reset velocity to GPS
INFO  [ecl/EKF] commencing GPS fusion
INFO  [logger] Start file log (type: full)
INFO  [logger] Opened full log file: /fs/microsd/log/2020-04-15/11_58_05.ulg
INFO  [logger] Start mavlink log
ERROR [logger] Ack timeout. Stopping mavlink log
WARN  [mavlink] mavlink ulog stream update failed, stopping (-116)
INFO  [commander] Takeoff detected
INFO  [ecl/EKF] reset velocity to GPS
INFO  [ecl/EKF] reset position to GPS
INFO  [ecl/EKF] Emergency yaw reset - magnetometer use stopped
WARN  [commander] Stopping compass use! Check calibration on landing
WARN  [commander] Failsafe enabled: no local position
INFO  [ecl/EKF] reset velocity to GPS
INFO  [ecl/EKF] reset position to GPS
INFO  [ecl/EKF] Emergency yaw reset - magnetometer use stopped
INFO  [commander] Landing detected
ERROR [commander] Critical failure detected: lockdown
INFO  [logger] Stop mavlink log
INFO  [logger] closed logfile, bytes written: 1517140
WARN  [commander] Manual control lost
//////////////////////////////////////////////////////////////
Flight log link
https://review.px4.io/plot_app?log=9fc1250e-afca-45bd-a8d0-f6daad584120
Drone (please complete the following information):

Simulation(copter) HIL Quadcopter X
All parameters are set to default

It was due to imu malfunction


(PDB-2075) Clean up template DB via shutdown hook

Refer to this link for build results (access rights to CI server needed):
http://jenkins-enterprise.delivery.puppetlabs.net/job/enterprise_puppetdb_init-multijob_githubpr-master/264/
Test PASSed.

Is this cleanup only supposed to kick in when :pdb-test-keep-db-on-fail is set to true?


Add option to disable scheduling in BatchSpanProcessor

Is your feature request related to a problem? Please describe.
Currently, the BatchSpanProcessor will schedule a batch as soon as a span is ended using setTimeout. This makes sense in long running processes like a browser tab or a Node service which will stay active indefinitely. However, it does not work as well in a Lambda/Edge Workers environment.
In Cloudflare Workers specifically, workers will automatically cancel any pending setTimeout tasks that are scheduled if and when the worker is destroyed: https://community.cloudflare.com/t/is-there-a-time-limit-for-settimeout/220602
Currently, we resolve this by using Cloudflare's waitUntil API, where we call forceFlush on the processor to flush all requests after the response has been sent to the client. This way we ensure that the spans are reported, and that the worker does not run any longer than necessary, saving valuable worker time. I'm not sure how other edge worker platforms handle this, but I imagine the constraints are similar.
We can work around this by setting scheduledDelayMillis to a very large number, which will generally result in forceFlush being called before it has a chance of running the timer separately, but ideally we would just be able to disable scheduling altogether since it doesn't make sense in this type of environment.
Describe the solution you'd like
Add a config option for disableAutomaticScheduling or allow scheduleDelayMillis to receive -1 or Infinity or something like that to indicate that the batch processor should not schedule.
Describe alternatives you've considered
We tried to extend the built in BatchSpanProcessor but there isn't a way to override the behavior without overriding private APIs, which is not really ideal. We could make this something that could be configurable via extending, but given it's such a small behavioral change it feels like that would be overkill.
We considered implementing our own SpanProcessor class, but there's a decent amount of behavior that the existing BatchSpanProcessor handles that we would prefer not to duplicate, such as checking the traceFlags to see if the span has been sampled before adding it to the batch.
Additional context
N/A

I think this is a question for the specification as this applies to all languages. Have other SDKs handled this already?

I'm not sure this really makes sense on a spec level, it's kind of an environment + language constraint that's fairly unique to edge workers, though I guess lambdas in general would be affected. Maybe it would make sense to have a SendOnEnd pattern for any language that runs in a short time period of time and does not have a persistent context/process, like workers?
Also there are similar problems here with tracking Metrics, since it's all set up to coalesce metrics for the entire process.

On GCP Cloud Run, we found that exporting at the end of every request can still cause quite a slow down. At least for Cloud Run, the process may be run for multiple requests before being shutdown and we can typically recommend regular BatchSpanProcessor intervals and a final flush at shutdown (by capturing SIGTERM). Not sure if that applies to your edge platform.

Add a config option for disableAutomaticScheduling or allow scheduleDelayMillis to receive -1 or Infinity or something like that to indicate that the batch processor should not schedule.

There is a similar check in PeriodicExportingMetricReader in Python to only create the background thread if the interval is valid code. Idk if this is as necessary in JS where scheduling is more lightweight than OS threads. Is there a big downside to just setting a huge interval?

We considered implementing our own SpanProcessor class, but there's a decent amount of behavior that the existing BatchSpanProcessor handles that we would prefer not to duplicate, such as checking the traceFlags to see if the span has been sampled before adding it to the batch.

It would be nice to know which behavior you want to keep from BatchSpanProcessor, for example the behavior of maxExportBatchSize and maxQueueSize config options. If the behavior is significantly different, a different SpanProcessor impl would be cleaner IMO.
Also possibly relevant, there is browser impl of BatchSpanProcessor which does some force flushing: https://github.com/open-telemetry/opentelemetry-js/blob/24997089daf6d422494d112cf5531fe115eaa201/packages/opentelemetry-sdk-trace-base/src/platform/browser/export/BatchSpanProcessor.ts#L40

On GCP Cloud Run, we found that exporting at the end of every request can still cause quite a slow down. At least for Cloud Run, the process may be run for multiple requests before being shutdown and we typically recommend regular BatchSpanProcessor intervals and a final flush at shutdown (by capturing SIGTERM). Not sure if that applies to your edge platform.

There isn't a way to run code before a worker shuts down unfortunately, see this issue for some more details there, otherwise we would have hooked into that. The current solution, the waitUntil API, does not block responses so it doesn't really seem to have a performance impact so far but we agree that it'd be better to do regular intervals, if the platform allowed it.

Idk if this is as necessary in JS where scheduling is more lightweight than OS threads. Is there a big downside to just setting a huge interval?

It's an extra allocation and timer, not a huge amount of performance overhead but not nothing either. We're not at the point where we're trying to micro-optimize so much that we would care about it, but eventually I imagine we will be so wanted to be proactive about a solution.

It would be nice to know which behavior you want to keep from BatchSpanProcessor, for example the behavior of maxExportBatchSize and maxQueueSize config options. If the behavior is significantly different, a different SpanProcessor impl would be cleaner IMO.

I think we would want to keep the maxExportBatchSize and maxQueueSize options, also the trace suppression during export that prevents re-entry (currently that's not an issue with our implementation but at some point we'd like to instrument the global fetch, which would make it necessary).


Using --inline-vue results in identical output for --target lib as without it

Version
5.0.4
Reproduction link
github.com/andrewf/vue-repro
(included for completeness, but I don't think it's necessary since I can reproduce the problem in about 5 shell commands)
Environment info
Environment Info:

  System:
    OS: Linux 5.16 Fedora Linux 35 (Workstation Edition)
    CPU: (4) x64 Intel(R) Core(TM) i7-7560U CPU @ 2.40GHz
  Binaries:
    Node: 16.14.0 - /usr/bin/node
    Yarn: 1.22.18 - /usr/bin/yarn
    npm: 8.3.1 - /usr/bin/npm
  Browsers:
    Chrome: 100.0.4896.60
    Firefox: 98.0
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.2.1
    @vue/babel-helper-vue-transform-on:  1.0.2
    @vue/babel-plugin-jsx:  1.1.1
    @vue/babel-plugin-transform-vue-jsx:  1.2.1
    @vue/babel-preset-app:  5.0.4
    @vue/babel-preset-jsx:  1.2.4
    @vue/babel-sugar-composition-api-inject-h:  1.2.1
    @vue/babel-sugar-composition-api-render-instance:  1.2.4
    @vue/babel-sugar-functional-vue:  1.2.2
    @vue/babel-sugar-inject-h:  1.2.2
    @vue/babel-sugar-v-model:  1.2.3
    @vue/babel-sugar-v-on:  1.2.3
    @vue/cli-overlay:  5.0.4
    @vue/cli-plugin-babel: ~5.0.0 => 5.0.4
    @vue/cli-plugin-eslint: ~5.0.0 => 5.0.4
    @vue/cli-plugin-router:  5.0.4
    @vue/cli-plugin-vuex:  5.0.4
    @vue/cli-service: ~5.0.0 => 5.0.4
    @vue/cli-shared-utils:  5.0.4
    @vue/component-compiler-utils:  3.3.0
    @vue/web-component-wrapper:  1.3.0
    eslint-plugin-vue: ^8.0.3 => 8.7.1
    vue: ^2.6.14 => 2.6.14
    vue-eslint-parser:  8.3.0
    vue-hot-reload-api:  2.3.4
    vue-loader:  17.0.0 (15.9.8)
    vue-style-loader:  4.1.3
    vue-template-compiler: ^2.6.14 => 2.6.14
    vue-template-es2015-compiler:  1.9.1
  npmGlobalPackages:
    @vue/cli: Not Found

(I installed vue via yarn. It's at 5.0.4)

Steps to reproduce
In short, create a new Vue2 project and run yarn build --target lib (or however you want to run vue-cli-service) both with and without --inline-vue. So if you've cloned the project, I guess, yarn build --target lib && md5sum dist/* and then yarn build --target lib --inline-vue && md5sum dist/*.
In long,
[(0) andrew@notrule110 ~]
$ vue --version
@vue/cli 5.0.4
[(0) andrew@notrule110 ~]
$ cd playprograms/
[(0) andrew@notrule110 ~/playprograms]
$ vue create vuerep2

Vue CLI v5.0.4
? Please pick a preset: Default ([Vue 2] babel, eslint)

... snip ...

[(0) andrew@notrule110 ~/playprograms]
$ cd vuerep2
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$ yarn build --target lib > /dev/null
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$ md5sum dist/*
3fa220f7c9e624c583ca687f3401466a  dist/demo.html
610d8ad937505a06f59920499fa164bf  dist/vuerep2.common.js
d7d4888129f439f4ad3365f1a517cfcd  dist/vuerep2.common.js.map
9bdc3e474a14197ae39253a6d0edf2af  dist/vuerep2.css
af3514cbb9003385e74640d89a9879ce  dist/vuerep2.umd.js
2480e1e67eadef80e821c507b1cbc7db  dist/vuerep2.umd.js.map
4651078a87cc854d0ea6d1d6ac78bdde  dist/vuerep2.umd.min.js
117d5dcedf1c528cfe301a1dd6485ce4  dist/vuerep2.umd.min.js.map
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$ rm -rf dist
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$ yarn build --target lib --inline-vue > /dev/null
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$ md5sum dist/*
3fa220f7c9e624c583ca687f3401466a  dist/demo.html
610d8ad937505a06f59920499fa164bf  dist/vuerep2.common.js
d7d4888129f439f4ad3365f1a517cfcd  dist/vuerep2.common.js.map
9bdc3e474a14197ae39253a6d0edf2af  dist/vuerep2.css
af3514cbb9003385e74640d89a9879ce  dist/vuerep2.umd.js
2480e1e67eadef80e821c507b1cbc7db  dist/vuerep2.umd.js.map
4651078a87cc854d0ea6d1d6ac78bdde  dist/vuerep2.umd.min.js
117d5dcedf1c528cfe301a1dd6485ce4  dist/vuerep2.umd.min.js.map
[(0) andrew@notrule110 ~/playprograms/vuerep2]
$

What is expected?
Ideally, that the JS files generated with --inline-vue would contain a copy of Vue, so a project that reads those files don't have to worry about including Vue themselves. Failing that, any kind of difference at all would be reassuring.
What is actually happening?
All files in dist are bitwise identical with and without --inline-vue.

My goal is to create a JS lib, component+Vue, that can be dropped into another project without needing to install Vue there. Ideally, I use the vue-cli serve command to work on my Vue component, then use the --target lib stuff to import it to the "real" web server's slightly different JS situation.

Ooooook. Ok ok ok. Since the default entry point is App.vue, and since Vue components in the default project are pure data, Vue doesn't necessarily get imported at all, and thus never even gets processed by webpack. I think.
Anyway, changing the entry point to src/main.js actually gets Vue included in the output. So does importing Vue in App.vue, provided you do enough gymnastics that it's not an "unused import" that then gets tree-shaken out or whatever. Hopefully this helps someone.
There's still something weird going on with demo.html (silently failing to load the component?), but I think I can work on that...

Alright, I've confirmed the demo.html nonsense was unrelated, so I'm closing this. It might be helpful if the docs for the --inline-vue option on included a tip about making sure Vue is actually imported.


Reorganize Summary View

Show:

Worked Time for Today
Time of Breaks for Today
How much Time stil have to be worked Today
Estimated Time of End of Work for Today

Partially done within 8b03ad6  by using Workday object instead of raw calculations

Added charts within 2dbc520  which is enough for 1.0.0


Revert "Rename reflect event registration methods into seed"

I realized that it accepts TypeRegistry, so it's actually useful only for reflection. I keep some comment improvements from this commit.

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (d67fac5) 88.26% compared to head (6ded03d) 88.91%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #89      +/-   ##
==========================================
+ Coverage   88.26%   88.91%   +0.64%
==========================================
  Files          14       14
  Lines         929      929
==========================================
+ Hits          820      826       +6
+ Misses        109      103       -6

Files
Coverage Δ

src/lib.rs
100.00% <ø> (ø)

src/network_event/server_event.rs
97.34% <100.00%> (ø)

src/network_event/client_event.rs
96.62% <92.30%> (ø)

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Focus states: Data Table

Overview
Resolves https://github.ibm.com/Bluemix/design-system-website/issues/1055
Updated focus state for data table.

Only thing is the svg.bx--table-expand__svg doesn't respond to enter key either.
Should update the JS. But this can be done in another PR too.

👍 ✅
@hellobrian the svg responds to the enter key for me. Not sure why we're getting different results.


Update composer.json

Force the support of irazasyed/telegram-bot-sdk 3.@dev, for use with laravel 5.3.

@Ismael-sm is it compatible with v2 and Lumen? Or there are needed changes? I'm not tested with v3 of SDK yet.

don't know i wannted to use the dialog plugins with need laravel, but i don't do now,


std.datetime - bring plaintext examples back in sync with tests

follow-up to #4050

Auto-merge toggled on

Thanks!


ONNX Export

Can I export the trained model to onnx format?
Any guidance or experience?

Is your problem solved?


HELP: default user default password

I installed deepin as instructed but there is a default user named "hiweed". Whos password I dont know

The default password is 1.
BTW, you can also login as root in tty2-7 without password, and change the default username+password as you want.


Create SettingsFragment

Part of #455
Next is SingleUploadFragment spinner & Utils, and WelcomeActivity. Might find a way to not require a context in Utils, we'll see.
Tested in API 25, 23, 21, 15 (emulators), and API 24 (Samsung Galaxy S6). I noticed the checkboxes are a bit weird styled in API 15 but it is present in the current version so this is not a change I have introduced.
EDIT - Codacy always hates me - I've only added 1 of the 4 'issues', which is a line that is 101 characters instead of 100 that can't really be avoided sensibly.

I'm guessing the issue with the checkboxes might have been introduced during the day theme/night mode style changes? I don't recall them looking that way when I was testing API 15 back in version 1 a few months ago.
We should probably make a separate issue for that - it doesn't look too bad, but it probably would look better if it were white.

We all good to merge?

I think it should be if @veyndan is happy with it


Documentation clarification for how ReportDataSource is handled (in metering architecture)

Hi,
operator-metering seems cool.
In the documentation of how ReportDataSource custom resource is handled (in metering-architecture.md), there are following points:

When the custom resource is first created, if the underlying Presto table is not there, it will be created
In the background Metering operator will scan all registered ReportDataSource resources. If any resource does not have a table created, it will skip processing that resource.

At the outset these points seem conflicting.
But my guess is following is happening. The create call will initiate table creation and will return. The background worker runs Prometheus/AWS billing query only for those ReportDataSources whose tables have been created. Is this understanding correct?
If so, the documentation can be probably tweaked a bit make this point clearer.

Ah, yes that's a bit unclear, when it says it'll skip processing, I really mean that it'll skip collecting data for that datasource until the table is created.


Automatic error report

What steps will reproduce the problem?
Launching Spyder from outside Anaconda Navigator (Win10) raises this error:
"  plugin = mod.PLUGIN_CLASS(self)
AttributeError: '_ModuleMock' object has no attribute 'PLUGIN_CLASS'  "
Launching Spyder from Anaconda Navigator works without error.
All this appeared after a tempted update to spyder 3.3. using conda (Which did not work as matplotlib did no longer see that pillow is installed)
Thereafter I did 'conda update conda' (nothing to do) and 'conda update anconda' (lots of packages updated). Now version 2.8 of Spyder is back and works, but with this error at startup.

All this appeared after a tempted update to spyder 3.3. using conda

Conda packages for 3.3 are still not available, so either you installed it with pip or did something else. In any case, this error is already fixed in 3.3.


Add regctl promotion

Add regctl for image promotion. This will accelerate image promotion pipelines

Fixed by #102


Inline picker loses focus on navigating to next month

When using the arrow keys to pick a date, and on reaching the next month, the picker navigates to the subsequent month. However, at that moment, the focus is lost and you cannot navigate any further using the keyboard. Navigating to the previous month this way, preserves keyboard focus.
I was able to reproduce this in my own code, as well as on the documentation/examples page:
https://chmln.github.io/flatpickr/examples/#inline-calendar
Your Environment

flatpickr version used: latest (master)
Browser name and version: Chrome
OS and version: Mac OS 10.12.1

In addition, the up/down arrow keys will both navigate the picker as well as scroll the page up and down. I preventDefault within the keydown event handler should take care of this.


Dask map_partitions node

 Issue by elshize
Monday Jun 27, 2022 at 16:19 GMT
Originally opened as https://github.com/stitchfix/hamilton/issues/143

:information_source: This is in response to a discussion with @elijahbenizzy on discord.
This is an example of a use case that could be supported with some additional decorators.
The usecase is that a node takes one Dask data frame and possibly some other arguments (either Pandas data frames or scalars). Then, the node simply executes map_partitions on the dask input, broadcasting the remaining arguments.
For example:
def node(a: dd.DataFrame, b: pd.DataFrame, c: int):
    return a.map_partitions(_node, b, c, align_dataframes=False)

def _node(a: pd.DataFrame, b: pd.DataFrame, c:int):
    # actual logic for each partition `a`

could be:
# this probably should be designed better, I just want to give you an idea
@dask_partition("a")
def node(a: pd.DataFrame, b: pd.DataFrame, c: int):
    # logic

So that it could run that map_partitions automatically. It might need (at least optional) parameter to add meta to the function call.
Not entirely sure if there are some disadvantages of that, and what the value of it would be in general, but I wanted to document what we discussed.

 Comment by skrawcz
Thursday Jun 30, 2022 at 23:27 GMT

@elshize Thanks for raising this. I think at some point we might have to provide "context hints" depending how things are being executed.
Questions to help me understand what the desired end state is:

What do you think the goal should be by providing such an annotation?
Is this a common thing one might want to do with dask?
How would this help you?

Otherwise my current train of thought is:

How does this impact code portability and reuse?
Is it being a decorator good or bad as to the original? Seems like that could be a yes, it's better.

Alternatively what about:
def _node(a: pd.DataFrame, b: pd.DataFrame, c:int):
    # actual logic...

@config.when(execution='dask')
def node__map_partitions(a: dd.DataFrame, b: pd.DataFrame, c: int) -> pd.DataFrame:
    return a.map_partitions(_node, b, c, align_dataframes=False)

@conf.when_not(execution='dask')
def node__regular(a: pd.DataFrame, b: pd.DataFrame, c:int) -> pd.DataFrame:
    return _node(a, b, c)

 Comment by elshize
Saturday Jul 02, 2022 at 17:06 GMT

@skrawcz In general, having my own wrapper is not a big deal at all, so from this point of view, this would be a small improvement -- if it were generated from an annotation, for example.
But I was also thinking of how to run this type of thing with when dask already executes the hamilton DAG. (I am not very familiar with how it works, so please let me know if I get things terribly wrong.)
Let's say I have a bunch of nodes that do not operate on any Dask series/dataframe. One might want to run it such that each node is a delayed object and run it with Dask (I think this is possible at the moment, if not fully stable). What would then happen if one of the nodes itself needs to accept a dask dataframe? Would Dask resolve something like this out of the box correctly? As in, a delayed object of a Dask dataframe? I was under the impression that we'd need some support from Hamilton to do this. But maybe I'm wrong? Now that I'm writing this, I'm not sure anymore.
Essentially, I'm talking about a use case where there are a bunch of small nodes that could be done in parallel, but there's a larger data frame that does something with smaller data chunks, and this part should be parallelized within the node itself.
I hope that makes sense.

 Comment by skrawcz
Wednesday Jul 06, 2022 at 04:40 GMT

@elshize I want to say, what you ask for should already work in Hamilton, assuming you do things a certain way:

Distributing arbitrary code with dask ✅ we do this via functions.
Dask then also does distributed computing for you if you choose to call a function on one of their distributed types. Hamilton doesn't interfere with this either, but requires you to transform the data so it's distributed ✅

Essentially, I'm talking about a use case where there are a bunch of small nodes that could be done in parallel, but there's a larger data frame that does something with smaller data chunks, and this part should be parallelized within the node itself.

If you're instead asking for a way to apply Hamilton within a DAG node itself? Thoughts:

Do you have a code example to understand this a bit more?
I think you'd be limited by Dask's ability here in the end. Dask can distribute data, and then perform some computation over it, e.g. map reduce style. So you'd be limited in parallelization by how segmented the data is...
It might be possible to model this in Hamilton, e.g. instantiate a driver in a function node, which is itself within a Hamilton DAG, but I'm not convinced it would be helpful?

In case I am misinterpreting, and your question is actually about how do you mix and match data types? I think talking with code might help ground what we're talking about. So here's an example that reads in a file via pandas, but we wrote a function that operates over a dask dataframe. How do we connect the two?
import pandas as pd
from dask import dataframe as dd

#----- option 1 -- things might just "work" -- e.g. same API between dask and pandas used (with a caveat around how we do static type checking when building the DAG -- I believe with the DaskGraphAdapter pandas dataframes & dask ones are equivalent...)
def raw_data(location: str) -> pd.Dataframe:
     return pd.read_csv(location)

def processed_df(raw_data: dd.Dataframe) -> dd.Dataframe:
    # do some logic
    return processed_dataframe

# ------ option 2 -- we explicitly expect a pandas dataframe as input - and distribute it within the function
def raw_data(location: str) -> pd.Dataframe:
     return pd.read_csv(location)

def processed_df(raw_data: pd.Dataframe) -> dd.Dataframe:
    dd_data = dd.from_pandas(raw_data)
    # do some logic
    return processed_dataframe

# ---- option 3 - have two different load steps -- assuming API equivalence between pandas & dask
@config.when(env='local')
def raw_data__pandas(location: str) -> pd.Dataframe:
     return pd.read_csv(location)

@config.when(env='prod')
def raw_data__dask(location: str) -> dd.Dataframe:
     return dd.read_csv(location)

def processed_df(raw_data: dd.Dataframe) -> dd.Dataframe:
    # do some logic
    return processed_dataframe

# ---- option 4 - have an intermediate step
def raw_data(location: str) -> pd.Dataframe:
     return pd.read_csv(location)

def raw_data_dask(raw_data: pd.Dataframe) -> dd.Dataframe:
     return dd.from_pandas(raw_data)

def processed_df(raw_data_dask: dd.Dataframe) -> dd.Dataframe:
    # do some logic
    return processed_dataframe

As you can see there's quite a few ways to model this....
What I'd be thinking about is:

What functions make sense to curate into separate modules? E.g. instead of @config.when you just switch the module you build the DAG from.
If I need to go from "local" data to "distributed" data then modeling that step as an explicit function seems fine to me.

 Comment by elshize
Friday Jul 08, 2022 at 21:30 GMT

Hey, sorry for late reply, I've been quite busy. I'll need some time to experiment with Dask and Hamilton. It's possible that you can already do what I want... I'll try to find some time next week to give this a closer look and educate myself first; and if I can't figure it out, I'll come back with some code to illustrate.

 Comment by elijahbenizzy
Saturday Oct 29, 2022 at 17:04 GMT

@elshize any updates on this? I like the general idea of having graphadapters/the framework enable alternation between, say, pandas and dask -- still need to scope it out more. The "intermediate step" @skrawcz described could easily be a part of the framework -- if we're aiming at abstracting the transformations from the infra, figuring this out could be a nice way -- thus enabling you to easily write a new function and scale nicely.
That said, other approaches to scale pandas (modin, for instance) could do this as well...

 Comment by elshize
Monday Oct 31, 2022 at 13:01 GMT

@elijahbenizzy Apologies, I got busy and then it slipped my mind; I haven't had any time at work to revisit this; but now reading this again, I have some thoughts.
I think what I meant to begin with is much simpler than what we started discussing eventually. I was thinking of doing with dask/pandas something similar to what is done with pandas df/series. For example, when you load data to a DataFrame, you can split by columns to operate on columns independently in nodes. What I had in mind is somewhat similar but instead of splitting dask data frame to pandas, I imagined having an annotation when I'm using that dask data frame as argument in another node to say: this is a dask data frame, but treat it as Pandas in this function, and treat it as applied to all partitions of that dask df. You could even imagine this being inferred from the type (if used pandas as argument, treat as processing per partition) but not sure if this type of implicit mechanism is a good idea, might lead to bugs.
Just want to clarify, this is not a functionality that cannot be implemented currently, as in I can have a node that takes dask and map partitions with another function. But splitting columns can be implemented the same way by taking the entire frame and extracting column. It's an ease-of-use kind of thing.
Having a simple annotation to map partitions without the boilerplate sounds like a good idea to me. That said, I might be missing some downsides, or you might simply not think it important enough use case to implement it. This is just a suggestion, I can certainly live without it if I have to :)

 Comment by skrawcz
Monday Dec 19, 2022 at 18:30 GMT

@elshize just getting back around to this.

I imagined having an annotation when I'm using that dask data frame as argument in another node to say: this is a dask data frame, but treat it as Pandas in this function, and treat it as applied to all partitions of that dask df.

This is interesting. I think this could be possible, especially with a custom graph adapter. As you point out, we'd just need to think whether this helps and leads to less bugs, rather than more...
E.g. brainstorming an API here, would something like this work?
@tag(dask_functionality="map_partitions")
def named_function(name_of_dataframe: pd.DataFrame, other_arg: int, other_scalar: float) -> pd.DataFrame:
      # implicitly this will cause the graph adapter to do the following if run with the appropriate graph adapter
      # result = name_of_dataframe.map_partitions(named_function, other_arg, other_scalar)
      # if run with plain graph adapter, then the above would not happen.
     ...

 Comment by elshize
Tuesday Dec 20, 2022 at 03:02 GMT

@skrawcz Yeah, this is essentially what I was thinking of.
Again, this is nothing crucial in the sense that it doesn't provide a new functionality. To me, it makes sense, and a nice thing to have. I'm imagining a scenario where I'm working on Pandas DFs/Series and at some point decide that one part of it is large, so instead I load something with dask, and just add the annotation to what I've already implemented.
I suppose ultimately it would boil down to how difficult it is to implement and/or how it fits with the rest of the codebase. For example, it's probably not important enough to rewrite some internal mechanisms to achieve it. I'm not that familiar with the codebase itself, but knowing how annotations work in general, the implementation should be straight forward...

Closing for now because this has gone stale.
We could get some of this by extending the with_columns functionality to other dataframes other than spark I think.


💡[Feature]: duration_ms,(adding a new feature in Taylor Swift Content )

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
a new feature to the dataset and integrate it into the model. One useful feature could be duration_ms, which represents the duration of the track in milliseconds. Here's how you can do it:
Include the new feature in the feature list.
Update the feature selection for training.
Re-train the model with the new feature included.
Use Case
code will now include the duration of the tracks as an additional feature for training the RandomForestClassifier. You can compare the performance metrics before and after adding the feature to see if it improves the model's ability to classify explicit content.
Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@sanjay-kv plz assign this issue to me

@sanjay-kv issue solved https://github.com/Recode-Hive/machine-learning-repos/pull/627#event-13480286736


MuiButton sizeSmall and sizeLarge in overrides.

[x ] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

Should let me override sizeSmall and sizeLarge in createMuiTheme overrides
Current Behavior

ts throws type error only when I try to use sizeSmall \ sizeLarge.

Steps to Reproduce (for bugs)

override MuiButton sizeSmall \ sizeLarge key using createMuiTheme
get ts error of type mismatch or something like that.

Context

Your Environment

Tech
Version

Material-UI
latest

React
latest

browser
chrome latest

etc

Found the problem and created a pull request.