next manual: 2.6.0++

This is the issue for changes to the manual for the 2.6.0++ release.

[ ] more general discussion of missing data, perhaps following Michael's comment included in the 2.4 manual issue

[ ] expand definitions of operators for matrices following basics for real

From Michael Betancourt on stan-users:
Warmup:
Conceptually MCMC warmup times are basically equivalent to the autocorrelation time — because HMC chains tend to be lowly autocorrelated they also tend to converge really, really  quickly.
The HUGE caveat is that such an argument assumes uniformity of curvature across the parameter space, as assumption which is violated in many of the complex models we see.  Very often the tails have large curvature while the bulk is relatively well-behaved; in other words, warmup is slow not because the actual convergence time is slow but rather because the cost of an HMC iteration is more expensive out in the tails.
Poor behavior in the tails is the kind of pathology that Andrew notes we can find by running only a few warmup iterations. By looking at the acceptance probabilities and step sizes of the first few iterations you can get an idea of how bad the problem is and whether you need to address it with modeling efforts.
The Mass Matrix (or, more formally, the Euclidean Metric):
The mass matrix can compensate for linear (i.e. global) correlations in the posterior which can dramatically improve the performance of HMC in some problems.  Of course this requires that we know the global correlations a priori.
In complex models this is incredibly difficult (for example, nonlinear model components convolve the scales of the  data, so standardizing the data doesn’t always help) so in  Stan we learn these correlations online with an adaptive warmup.  In models with strong nonlinear (i.e. local) correlations this learning can be slow, even with regularization. This is ultimately why warmup in Stan often needs to be so long, and why a sufficiently long warmup can yield such substantial performance improvements.

[ ] add multi_logit model example with categorical_logit parameterization

[ ] add discussion of how to center parameters

If z is a K-dimensional parameter vector constrained so that
sum(z) = 0,

then you can code up z as follows:
  parameters {
    simplex[K] z_raw;
    real<lower=0> z_scale;
  ...

  transformed parameters {
    vector[K] z;
    z <- (z_raw - 0.5) * z_scale;
  ...

The parameterization involves K free parameters (K-1 for the  simplex and one for the scale).
In the simplest case, if you have something like a 1PL IRT
model, with likelihood:
y[m,n] ~ bernoulli(inv_logit(alpha[m] - beta[n]))

then alpha and beta aren't identified.  But if you give them priors such as
 alpha ~ normal(0,1);
 beta ~ normal(0,10);

then you'll find in the posterior, alpha will sum to 0 and beta will float because it's less constrained.  That's our recommended strategy for dealing with centering.  It's not a hard constraint.
An alternative is to pin one of the elements of alpha or beta, and let everything adjust relative to that. This is clunky, but it can be done.

Since there is no issue opened for the 2.7 manual, I'll leave what I have noticed here. This is from the v2.6 reference, downloaded today. Minor stuff, but I am not quite sure if I can add a fix for it myself.
p. 90 third equation states p_y(ytheta, mu, sigma). Should it not be p_y(y|theta, mu, sigma)?
p. 96 second paragraph, it seems like something is missing: "Furthermore, the true values x are given a hierarchical prior; without"

Thanks.
2.6.0++ is where updates for the 2.6 manual should go.
When we decide if that's 2.6.1 or 2.7.0, we'll change the issue
title.

Bob

On Feb 6, 2015, at 10:21 AM, demodw<EMAIL_ADDRESS>wrote:
Since there is no issue opened for the 2.7 manual, I'll leave what I have noticed here. This is from the v2.6 reference, downloaded today. Minor stuff, but I am not quite sure if I can add a fix for it myself.
p. 90 third equation states p_y(ytheta, mu, sigma). Should it not be p_y(y|theta, mu, sigma)?
p. 96 second paragraph, it seems like something is missing: "Furthermore, the true values x are given a hierarchical prior; without"
—
Reply to this email directly or view it on GitHub.

[ ] pg 266: Definining Probability Functions for Sampling Statements... this is missing a right parenthesis: increment_log_prob(foo_log(z,phi);

[ ] emphasize the role of n_divergent in the manual (I'd really like to rename this, because n=1 or n=0, so the name seems misleading).

Moved from #1300
This may be a bug in the Stan Manual 2.6.0 version for the Multilevel 2PL IRT model example on pages 52-53.
The parameters are defined as:
parameters {
  real delta;                                      // mean student ability
  real alpha[J];                                 // ability for j - mean
  real beta[K];                                  // difficulty for k
  real<lower=0> gamma[K];            // discrimination of k
  real<lower=0> sigma_beta;          // scale of difficulties
  real<lower=0> sigma_gamma;     // scale of log discrimination
}

This is the same set up as in Manual version 2.5.0 with a delta parameter for mean ability.
However, in the model specification delta disappears and a mu_beta appears kind of in its place (but discussed in the text as the mean beta location).
  model {
      alpha ~ normal(0,1);
      beta ~ normal(0,sigma_beta);
      gamma ~ lognormal(0,sigma_gamma);
      mu_beta ~ cauchy(0,5);
      sigma_alpha ~ cauchy(0,5);
      sigma_beta ~ cauchy(0,5);
      sigma_gamma ~ cauchy(0,5);
      for (n in 1:N)
        y[n] ~ bernoulli_logit(gamma[kk[n]]
                               * (alpha[jj[n]] - (beta[kk[n]] + mu_beta)));
}

delta is then again discussed in the text on page 54.

[ ] update model
[ ] thank Christopher Gandrud for reporting

Moved from Aki's issue #1309

[ ] p. 140 code has eta_sq ~ cauchy(0,5) and rho_sq ~ cauchy(0,5), but p. 141 recommends
eta ~ cauchy(0,5) and  1/rho_sq ~ cauchy(0,5)
(maybe the 1/rho_sq ~ is not correct syntax, but you know what I mean)
[ ] p. 141 rho is couple times as rho instead of \rho
[ ] p. 145 the code has extra "<" in the beginning of one line
[ ] p. 219 example code has min and max, but the following paragraph refers to fmin and fmax

From Andy Choi on stan-users:
(pg 96, section 10.1):
"..... Furthermore, the ture values x are given a hierarchical prior; without

[ ] complete the sentence
[ ] thank Andy Choi

From Sebastian Weber via stan-users:
The manual currently says:

The `size()` function extracts the number of elements in an array. The function is
overloaded to apply to arrays of integers, reals, matrices, vectors, and row vectors.

[ ] remove this and suggest num_elements() instead

OR

[ ] generalize the size() function

pg 91:
missing last paranthesis: increment_log_prob(log_sum_exp(..., log(0.7) + normal_log(y,3,1));

Thanks for dropping this into the right issue tracker.
We're about to do a patch release to deal with some issues
to make Stan CRAN-compatible, and I'll patch all the bugs
in the manual then.

Bob

On Mar 3, 2015, at 6:36 PM, akcchoi<EMAIL_ADDRESS>wrote:
pg 91:
missing last paranthesis: increment_log_prob(log_sum_exp(..., log(0.7) + normal_log(y,3,1));
—
Reply to this email directly or view it on GitHub.

Bob, Many thanks for the note and glad that I can help.
STAN is awesome!
Andy
On Tuesday, 3 March 2015, Bob Carpenter<EMAIL_ADDRESS>wrote:

Thanks for dropping this into the right issue tracker.
We're about to do a patch release to deal with some issues
to make Stan CRAN-compatible, and I'll patch all the bugs
in the manual then.

Bob

On Mar 3, 2015, at 6:36 PM, akcchoi<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:
pg 91:
missing last paranthesis: increment_log_prob(log_sum_exp(..., log(0.7) +
normal_log(y,3,1));
—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub
https://github.com/stan-dev/stan/issues/1202#issuecomment-76928035.

[ ] See #1334 and fix it
[ ] thank Fred Ros

[x] add an authors page listing the core developers


Cython 0.26 generates invalid C in extension type iter  methods for MSVC and Python 2.7

Given the following extension class
cdef class PolynomialParameters(object):
    cdef:
        public list elementary_symmetric_polynomial
        public list power_sum
    def __init__(self, elementary_symmetric_polynomial, power_sum):
        self.elementary_symmetric_polynomial = elementary_symmetric_polynomial
        self.power_sum = power_sum

    def __iter__(self):
        yield self.power_sum
        yield self.elementary_symmetric_polynomial

Cython 0.26 generates the following code for the class's __iter__ method:
static PyObject *__pyx_gb_7brainpy_8_speedup_20PolynomialParameters_4generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7brainpy_8_speedup___pyx_scope_struct____iter__ *__pyx_cur_scope = ((struct __pyx_obj_7brainpy_8_speedup___pyx_scope_struct____iter__ *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("None", 0);
  __Pyx_TraceDeclarations
  __Pyx_TraceCall("__iter__", __pyx_f[0], 105, 0, __PYX_ERR(0, 105, __pyx_L1_error));
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    case 2: goto __pyx_L5_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_TraceReturn(Py_None, 0);
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
 //gotos....

The line __Pyx_TraceDeclarations looks like it was meant to be a macro, given that it has no trailing semi-colon, but MSVC appears to be seeing it literally and throws the error error C2143: syntax error : missing ';' before 'type'.
Cython 0.25.2 generated the following code for the same method
static PyObject *__pyx_gb_7brainpy_8_speedup_20PolynomialParameters_4generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */
{
  struct __pyx_obj_7brainpy_8_speedup___pyx_scope_struct____iter__ *__pyx_cur_scope = ((struct __pyx_obj_7brainpy_8_speedup___pyx_scope_struct____iter__ *)__pyx_generator->closure);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("None", 0);
  switch (__pyx_generator->resume_label) {
    case 0: goto __pyx_L3_first_run;
    case 1: goto __pyx_L4_resume_from_yield;
    case 2: goto __pyx_L5_resume_from_yield;
    default: /* CPython raises the right error here */
    __Pyx_RefNannyFinishContext();
    return NULL;
  }
 //gotos...

which compiles successfully with the same setup.
There is no issue on Linux. Could it be that __Pyx_TraceDeclarations is only defined inside a Unix-specific preprocessor block?
The repository this code is from is https://github.com/mobiusklein/brainpy, and the file being compiled is brainpy/_speedup.pyx in the course of the standard python setup.py install process

Thank you for the very detailed report.


Avoid using registry

I noticed that renewals planning is saved in registry. I suggest to move it to a local file, in same folder as the exe (an xml file, or a json as the current data in registry).
This will make the application more portable, and will remove an hard link to the specific Windows user running it. So, for example, I can schedule renewals with a service account, also system. And I will not lost data if I change (delete) user.

This could be part of #146.

Yes, I think it can be a subtask of #146

If anyone wants to see this enhancement, add your +1 (via add your reaction) to the first comment of issue #146.


[BUG] Failed to create a new replica after an existing replica node becomes unschedulable

Describe the bug
Test case test_node_eviction_no_schedulable_node fails on master-head:
https://ci.longhorn.io/job/public/job/master/job/sles/job/amd64/job/longhorn-tests-sles-amd64/961/testReport/tests/test_node/test_node_eviction_no_schedulable_node/
client = <longhorn.Client object at 0x7f7cfcb94650>
core_api = <kubernetes.client.api.core_v1_api.CoreV1Api object at 0x7f7d0cdb8c10>
csi_pv = {'apiVersion': 'v1', 'kind': 'PersistentVolume', 'metadata': {'name': 'longhorn-testvol-ojl4wd'}, 'spec': {'accessMode...aleReplicaTimeout': '30'}, 'volumeHandle': 'longhorn-testvol-ojl4wd'}, 'persistentVolumeReclaimPolicy': 'Delete', ...}}
pvc = {'apiVersion': 'v1', 'kind': 'PersistentVolumeClaim', 'metadata': {'name': 'longhorn-testvol-ojl4wd-pvc'}, 'spec': {'a...'resources': {'requests': {'storage': '1073741824'}}, 'storageClassName': '', 'volumeName': 'longhorn-testvol-ojl4wd'}}
pod_make = <function pod_make.<locals>.make_pod at 0x7f7cfd2abba0>
volume_name = 'longhorn-testvol-ojl4wd', settings_reset = None

    def test_node_eviction_no_schedulable_node(client, core_api, csi_pv, pvc, pod_make, volume_name, settings_reset): # NOQA
        """
        Test node eviction (assuming this is a 3 nodes cluster)

        1. Disable scheduling on node 3.
        2. Create pv, pvc, pod with volume of 2 replicas.
        3. Write some data and get the checksum.
        4. Disable scheduling and set 'Eviction Requested' to 'true' on node 1.
        5. Volume should be failed to schedule new replica.
        6. Set 'Eviction Requested' to 'false' to cancel node 1 eviction.
        7. Check replica has the same hostID.
        8.
On master-head, nothing happened after disabled an existing replica node scheduling and requested eviction:

On v1.6.2, a new replica will be created after disabled an existing replica node scheduling and requested eviction:

To Reproduce
Run test case test_node_eviction_no_schedulable_node.
Expected behavior

Support bundle for troubleshooting

Environment

Longhorn version: master-head
Impacted volume (PV):
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: v1.30.0+k3s1

Number of control plane nodes in the cluster:
Number of worker nodes in the cluster:

Node config

OS type and version: sles 15-sp5
Kernel version:
CPU per node:
Memory per node:
Disk type (e.g. SSD/NVMe/HDD):
Network bandwidth between the nodes (Gbps):

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal):
Number of Longhorn volumes in the cluster:

Additional context

Need to fix the test case, same reason as https://github.com/longhorn/longhorn/issues/8871#issuecomment-2202226046.
I will fix the volume condition in https://github.com/longhorn/longhorn-manager/pull/2939.

Verified on master-head 20240703

longhorn master-head https://github.com/longhorn/longhorn/commit/c3e1f66bd67f5eeec837a5ee6522ac17391031ff
longhorn-manager master-head https://github.com/longhorn/longhorn-manager/commit/369be1a74cafa9fd84492ca30507ff81df0906f9

Result Passed
The test_node_eviction_no_schedulable_node test passed 10 times : https://ci.longhorn.io/job/private/job/longhorn-tests-regression/7135/


WIP: lunrjs Search

Fixes https://github.com/artsy/artsy.github.io/issues/329
So we're using a fork of this library, because the library requires Jekyll 3 (as far as I can tell) and there are no semantic tags available to reference in our Gemfile. I added Jekyll 2-style posts, and there appeared to be some weirdness with emoji in Jekyll being index in lunr.js so I filtered them out of the index in the first way that Google suggested which looks terrible but works.
The design needs a little work for sure. Here's a before/after shot:

The downside compared to Google Site search is that we don't get a preview of the post, due to limitations in lunr.js. I think that's okay, but wanted to surface it for discussion.

Looks perfect - thanks! Only a design request change, copy the design of the archives - http://artsy.github.io/blog/archives/
and instead of the year have something like "search results for Eigen"
Then this is a 👍

Cool, updated this. Had to update the fork, added some documentation there about the modifications I've made. Here's a preview:

There are no results displayed while the search index is being downloaded (~3MB) so we should verify the UX is okay after deploying. Oh, and the search box on the search page is search-as-you-type, which is pretty cool.

Alright, looks good - nice work on the README for your fork 👍


AMFbrowser UI issue (Mac Os 10.14.6)

I am trying to run the amfbrowser on my computer (running Mac OS 10.14.6). I am able to load and annotate images, but I can't figure out how to import predictions. The buttons under predictions are all grayed out on my computer and cannot be accessed. I'm not sure if there's something I'm misunderstanding here or if there is something wrong with my installation. My understanding from reading the documentation is that I should be able to use these buttons to import predictions. I'd greatly appreciate any thoughts you might have on how to resolve these issues (or if I am just completely misunderstanding something, please let me know that as well). Thank you!

Hello,
Thanks for your interest in AMFinder. The export button copies colonisation statistics to the clipboard. It is not much developed at the moment but I am open to suggestions. Currently, you get something like this:
Class	Description	Count
Y	Colonised	1406
N	Non-colonised	2248
X	Background	7014

The import button loads computer predictions generated with amf. These predictions are included in the ZIP file that amf creates next to an image. If you did not use amf then there won't be any predictions to import. If there are predictions you should see a popup window like this:

Please let me know if you have other questions.

Hello, I am closing this issue due to inactivity. Feel free to open another issue if needed.


streamlit pivot-chart

Hello
It would be interesting to be able to run this tool in a streamlit environment as it is done with pygwalker.

Hi @Oscar-esp, thanks for the feedback. PyGWalker actually contains pivot table component and facet visualization(with limit of number in dimensions).
I think in most of the cases, pygwalker can be a replacement of pivot-chart and other pivot table libraries.


Automatic PR from RestAPI-PR2080

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/2080

Codecov Report

Merging #1667 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1667      +/-   ##
==========================================
+ Coverage   55.35%   55.35%   +<.01%
==========================================
  Files        4188     4188
  Lines       99523    99525       +2
==========================================
+ Hits        55091    55093       +2
  Misses      44432    44432

Impacted Files
Coverage Δ

...on/azure/mgmt/consumption/operations/operations.py
40% <100%> (+2.06%)
:arrow_up:

...consumption/operations/usage_details_operations.py
92.5% <100%> (+0.19%)
:arrow_up:

Continue to review full report at Codecov.

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

Latest Autorest, no code change


Router to Dealer, not working

Hi,
I want to do an asynchronous router to dealer messaging with React but it isn't working. The code in http://zguide.zeromq.org/php:rtdealer is working, but I can't identify what I'm doing different.
Here is my code:
$context = new React\ZMQ\Context($loop);

$worker = $context->getSocket(\ZMQ::SOCKET_DEALER);
$worker->setSockOpt(\ZMQ::SOCKOPT_IDENTITY, 'A');
$worker->connect('tcp://<IP_ADDRESS>:5556');
$worker->send('END');

$worker->on('error', function ($e) {
    var_dump($e->getMessage());
});

$worker->on('messages', function($msg) use ($worker) {
    echo 'Dealer messages'. PHP_EOL;
    var_dump($msg);
});

$worker->on('message', function($msg) use ($worker) {
    echo 'Dealer message'. PHP_EOL;
    var_dump($msg);
});

$router = $context->getSocket(\ZMQ::SOCKET_ROUTER);
$router->bind('tcp://<IP_ADDRESS>:5556');

$i = 0;
$loop->addPeriodicTimer(1, function (React\EventLoop\Timer\Timer $timer) use (&$i, $router) {
    echo 'Time to send!'. PHP_EOL;
    $i++;
    $router->send('A', \ZMQ::MODE_SNDMORE);
    $router->send('END');
});

$router->on('messages', function($msg) use ($router) {
    echo 'Router messages'. PHP_EOL;
    var_dump($msg);
});

$router->on('message', function($msg) {
    echo 'Router message'. PHP_EOL;
    var_dump($msg);
});

$loop->run();

The problem is that only the dealer sends the first message "END". After that, router tries to send messages but dealer does not receive them.
Also, this function seems to be only called once:
    // \React\ZMQ\SocketWrapper
    public function handleReadEvent()
    {
        $messages = $this->socket->recvmulti(ZMQ::MODE_NOBLOCK);
        echo 'Receiving...';    // Added
        var_dump($messages);    // Added

        if ($messages !== false) {
            if (count($messages) === 1) {
                $this->emit('message', array($messages[0]));
            }

            $this->emit('messages', array($messages));
        }
    }

The output is:
Receiving...array(2) {
  [0]=>
  string(1) "A"
  [1]=>
  string(3) "END"
}
Router messages
array(2) {
  [0]=>
  string(1) "A"
  [1]=>
  string(3) "END"
}
Time to send!
Time to send!
Time to send!
Time to send!
Time to send!
...

The answer can be found here: http://stackoverflow.com/questions/30469459/react-zmq-router-to-dealer-not-working-zmq-4-0-5/30504377#30504377


marimo.App(width="full") - consider adding to docs or recipes

Documentation is

[X] Missing
[ ] Outdated
[ ] Confusing
[X] Not sure?

Explain in Detail
I found several references to marimo.App(width="full") in the examples (which is how I learnt it was available).
I used this feature to build out a marimo cheat sheet. However, the documentation (which is awesome btw) does not appear to explicitly mention marimo.App(width="full").
Your Suggestion for Changes
*Consider adding something along these lines to *recipes.md
Application Width Configuration
Setting the application to full width
Use cases. Utilize the entire browser width for your Marimo application, ideal for dashboards, wide layouts, or when you need to display extensive content without constraints.
Recipe.

Initialize your Marimo application with the width parameter set to "full" to make the application use the full browser width.

app = marimo.App(width="full")

Thank you for the suggestion! We can add it to the docs. The recommended way is actually through the notebook UI:

Interesting, I do not see the notebook UI displayed when I run my notebooks locally.  I tried "marimo tutorial intro" just now and that does indeed display the entirety of the top right UI.
However, if I run the same tutorial code using "marimo run tutorial.py" I do not see the menu.  It just might be that I'm doing something incorrectly in my Marimo workflow/setup. Or, do you see this as a separate issue?


I encountered an error while trying to install grist-core using yarn

Describe the problem
I encountered an error while trying to install grist-core using yarn. I'd like to run it locally on my Windows machine to see how it works. I've opened the source code in VSCode and entered the command in the terminal, but when I run 'yarn run build:prod', I get an error.

Please help me, how can I resolve this issue?
Additional information

Grist version:
Grist instance URL:
SSO solution used and its version (if relevant):
S3 storage solution and its version (if relevant):
Docker version (if relevant):
NodeJS version (if relevant):
Redis version (if relevant):
PostgreSQL version (if relevant):

Hello,

Can you provide the full logs?
Can you provide the details missing in the Additional information section? like the NodeJS version or the Grist version you're trying to install (the latest version of the main branch?)
Be sure to follow these steps: https://github.com/gristlabs/grist-core/blob/main/documentation/develop.md#install-the-project-dependencies-and-build

Thanks in advance


[Bug]:  Migrating to useNavigate v6 from useHistory v5

What version of React Router are you using?
V6.0 0-alpha.2
Steps to Reproduce
I am trying to make an auth system with routing and I already made one kn V5 router with useHistory hook now I want to migrate to v6 but it says  : ( cannot read property 'history' of undefined )
Expected Behavior
I kindly want to redirect users to the previous page if they already logged in otherwise I want to keep them...
Actual Behavior
I cant make a login system redirecting users depending on wether they are logged in or not

First, you're using an outdated version of the v6 preview releases. Make sure you're on beta.0.
Without seeing how you have your code set up, it's not really possible to diagnose. But this looks like a support issue to me, not a bug in the library. Please re-read the migration guide, as those hooks have very different APIs.


A failed hub health check doesn't cause a failure output in CI

Description
See this run for example: https://github.com/2i2c-org/pilot-hubs/runs/3585663826?check_suite_focus=true#step:8:290
In this case, the hub health check has failed but CI still passes. I think that CI should actually fail in this scenario.
Value / benefit
If we're just checking for 'green' CI, we may miss scenarios where the helm upgrade has passed, but the hub doesn't work.
Implementation details
No response
Tasks to complete

[ ] Find and fix bug that is preventing the hub health check from returning a failure code that the CI env will recognise

Updates
No response

I've opened #685 which should resolve this


HHH-17475 Treat firstRow as null if it equals 0

https://hibernate.atlassian.net/browse/HHH-17475

Closing as we rejected the issue.


Mergeback v3.0.x branch into main

Needs doing before we create a v3.1.x branch.
Unfortunately, checking seems to show that will not be trivial, as various CI and infrastructure changes have been implemented in parallel in 'main' and 'v3.0.x' and so there is now quite a lot to resolve (nox, cirrus, isort etc).

various CI and infrastructure changes have been implemented in parallel

Just as note of what i mean...
Output following a simple merge of v3.0.x into main :
Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)
	both added:      .cirrus.yml
	both modified:   README.md
	deleted by us:   docs/iris/gallery_code/meteorology/plot_COP_maps.py
	deleted by us:   docs/iris/src/common_links.inc
	deleted by us:   docs/iris/src/developers_guide/ci_checks.png
	deleted by us:   docs/iris/src/developers_guide/contributing_ci_tests.rst
	deleted by us:   docs/iris/src/developers_guide/release.rst
	deleted by us:   docs/iris/src/techpapers/change_management.rst
	deleted by us:   docs/iris/src/whatsnew/3.0.rst
	both modified:   docs/src/developers_guide/contributing_code_formatting.rst
	both modified:   docs/src/developers_guide/contributing_graphics_tests.rst
	both modified:   docs/src/developers_guide/contributing_running_tests.rst
	both modified:   docs/src/developers_guide/gitwash/development_workflow.rst
	both modified:   docs/src/installing.rst
	added by them:   docs/src/whatsnew/3.0.1.rst
	added by them:   docs/src/whatsnew/3.0.2.rst
	added by them:   docs/src/whatsnew/3.0.3.rst
	added by them:   docs/src/whatsnew/3.0.4.rst
	both modified:   docs/src/whatsnew/index.rst
	both modified:   lib/iris/common/resolve.py
	both modified:   lib/iris/coord_categorisation.py
	deleted by us:   lib/iris/fileformats/_pyke_rules/fc_rules_cf.krb
	both modified:   lib/iris/fileformats/netcdf.py
	both modified:   lib/iris/fileformats/pp.py
	both added:      lib/iris/tests/unit/common/resolve/test_Resolve.py
	both modified:   lib/iris/tests/unit/fileformats/pp/test_PPDataProxy.py
	both modified:   lib/iris/tests/unit/fileformats/pp_load_rules/test__convert_time_coords.py
	both added:      noxfile.py
	both added:      requirements/ci/nox.lock/py37-linux-64.lock
	both added:      requirements/ci/nox.lock/py38-linux-64.lock
	both modified:   requirements/ci/py37.yml
	both modified:   requirements/ci/py38.yml
	deleted by us:   requirements/core.txt
	deleted by us:   requirements/setup.txt
	deleted by them: setup.cfg
	both modified:   setup.py

Some that are mark “deleted by us” are actually still there but have been both moved and modified in main.  E.g. the extra iris subdirectory was nuked from docs and I updated the plot_COP_maps.py example.

As per this v3.0.x discussion comment, this is a task on me, which I'm now looking at :+1:


add rule-delimiter option

Opening in favour of #369 as it seems to have gone cold. Fixes #210.
Includes support for less, scss and css. The following has been accounted for:

Media queries
Nested rules
at-root
Mixins (@ include)

@tonyganch opening this against master as the dev branch is completely broken at the moment. Lots of users have requested this and it is blocking my team from using at the moment so I'm willing to work as much as possible to get this one in.

@ahumphreys87, we need to move this pr to dev since the branch differs from master and there will sure be conflicts when we try to merge everything later. Can you tell me what exactly is broken in dev so I can help you?

Could you add a test for sass syntax too, please?
I'm eager to help you with this pr, if you need to update docs or fix existing code, just let me know.

Thanks for the feedback. The CLI in dev is broken and outputs [Object Promise] there is an existing issue for it here: https://github.com/csscomb/csscomb.js/issues/399
Yeah sure I'll give sass a go, although it seems to added spacing by default in sass.

Fixed CLI. Please run npm update inside dev branch, it should be fine now.

:+1: thanks I'll do that and reopen against dev
On Friday, 3 July 2015, Tony Ganch<EMAIL_ADDRESS>wrote:

Fixed CLI. Please run npm update inside dev branch, it should be fine now.
—
Reply to this email directly or view it on GitHub
https://github.com/csscomb/csscomb.js/pull/404#issuecomment-118407653.

@tonyganch ive created a branch against dev made the changes you suggested, but the CLI doesn't seem to process my files, and the tests always seem to pass even when deliberately trying to break them. Any ideas what could be wrong?
My branch is here if this will help: https://github.com/ahumphreys87/csscomb.js/tree/rule-delimiter-dev

@ahumphreys87, https://github.com/ahumphreys87/csscomb.js/commit/4430eb5b3b2263cc9c8be617246384d6cb267ea8#commitcomment-12005004


Update users.js

\n  \n# DryRun Security Context Report\n\n  \n\n  \n    test-type-2\n    ### test-message-2\n    https://github.com/test-owner/test-repo/blob/test-commit/test-filepath-2#L14-L123\n    \n\nDid you know you can ask your Security Buddy for information by typing /dryrunsec: (or /drs:) followed by your question? Example: /dryrunsec: What is the test-type-2 vulnerability and why is it a security issue?\n  \n\n\n  \n\n\n"}\n

/dryrunsec: What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What is the Default Session Name used in Session Cookie in Node Express vulnerability and why is it a security issue?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application cookies?

@dryrunsecurity What are common security issues with web application in general?


feat(cli): check database connection in debug command

Hi,
Even though @liang799 did his nice PR work , I tried mine, too 😹. As I knew we already have PR, I just want to get a review if it is okay.
While working with this PR, I wanted to ask a question. Is it okay to fix existing test? As I added information to dump, it crashed with existing test. So I fixed them test but doesn't feel right.. 👀..
Thank you!

Codecov Report
Base: 99.94% // Head: 99.79% // Decreases project coverage by -0.15% :warning:

Coverage data is based on head (2ce69af) compared to base (434d417).
Patch coverage: 87.50% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3875      +/-   ##
==========================================
- Coverage   99.94%   99.79%   -0.16%
==========================================
  Files         214      214
  Lines       13461    13626     +165
  Branches     3130     3181      +51
==========================================
+ Hits        13454    13598     +144
- Misses          7       26      +19
- Partials        0        2       +2

Impacted Files
Coverage Δ

packages/cli/src/commands/DebugCommand.ts
98.11% <87.50%> (-1.89%)
:arrow_down:

packages/core/src/EntityManager.ts
96.94% <0.00%> (-2.54%)
:arrow_down:

packages/core/src/entity/Reference.ts
97.46% <0.00%> (-2.54%)
:arrow_down:

packages/core/src/utils/Utils.ts
99.78% <0.00%> (-0.22%)
:arrow_down:

packages/core/src/errors.ts
100.00% <0.00%> (ø)

packages/core/src/typings.ts
100.00% <0.00%> (ø)

packages/core/src/MikroORM.ts
100.00% <0.00%> (ø)

packages/core/src/entity/wrap.ts
100.00% <0.00%> (ø)

packages/mysql/src/MySqlDriver.ts
100.00% <0.00%> (ø)

packages/mariadb/src/MariaDbDriver.ts
100.00% <0.00%> (ø)

... and 16 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@B4nan  May I ask you reviewing the fix? 🙌
Additionally, Can you recommend  other issues to try?

Thanks!


Document encode() error handling

Error handling is nice with appropriate error messages, the behavior should be mentioned for sake of completeness and also in line with how decode() is documented.

Thanks!


Layouts should perhaps not be widgets

I initially thought that layout being widgets made things simpler, and it also felt natural because layout are html elements too. However, it makes things less flexible. As Chris put it:
An *extremely* simple case is toggling the layout based on the width
of the parent. This can be changing the orientation of a box layout
or switching from a wrapping flow layout to a vbox layout or
something else.

A more complicated case arises when you build an app which hosts
user-defined content. In these cases you'll typically provide a
widget to user code to use as a host for the user content (which
you know nothing about). If layouts are separate from widgets, you
can just provide an empty widget and the user can assign whatever
layout they please. If not, you have to just choose a host widget
like a VBox, and if that's not what the user wants, they have to
add another level of nesting to achieve their desired layout.

If we change this, the way to write app definitions also changes (#10)

Idea: add layout.swap(other_layout). This would work for the first case, but not for the second. Although in that case, you could instead ask the user to provide a widget, instead of giving a widget to populate.

You'd want to be able to do something like this:
class MyTool(ui.Widget):
    def init(self):
        with ui.VBox():
            self._list = ui.ListBox()
            with self.HBox():
                ui.Widget(flex=1)  # spacer
                self._filter = ui.ComboBox()
                self._menu = ui.MenuButton()

        ... set up to make this work

    def onMenuChange(self):
        ... etc

class MainWindow(??):
    def init(self):

        with ui.HSplitter():
            ui.TextField(flex=1)
            with ui.VBox():
                self._tool = MyTool(flex=1)
                self._status = ui.Label()

The MyTool should derive from Widget, since you do not know how its going to be used. This is a variant on the argument above. To work with this case, a layout in a widget should occupy the full size of that widget, or maybe let the Widget class not have a node associated with them (pop it out).
Actually, if Layouts are not widgets, the same applies to the DOM, so there is no difference in that respect. Where the two approaches do differ is that when Layouts are Widgets. self._tool._filter.parent.parent.parent.parent.amIThereYet? is the main window, whereas if Layout is separated, it would be self._tool._filter.parent.parent.

Note Layouts are Widgets in Kivy

Layouts are widgets ("panels") in Phosphor now as well. Closing.


eslint loader question

when i use eslint-loader and give custom config path, anything is ok unless i use eslint plugin, because eslint-loader generate the wrong context which has no eslint-plugin-xxx
graph is here
--dirA // this is my webpack entry dir
-- entry.js
--dirB // this is my eslintrc
-- eslintrc.
-- node_modules
-- eslint-plugin-xxx
i hope using eslint-loader , i can find eslint-plugin-xxx in dirB, however, webpack want find it in dirA ...

in addition, dirA and dirB has no same parent dir ...
Hope to get some advice -  =.=

@freeozyl80
Please provide a repository with the issue.

finally use process.chdir('xxxx') to resolve this Ques!  anyway, thanks


refactor: use getsubids to check subuid and subgid

Use the command getsubids to check the subuid and subgid if
available.  This allows the use of identity management to provide
the subuid and subgid.
Signed-off-by: Rich Megginson<EMAIL_ADDRESS>

[citest]

[citest]

OK, I've been able to do some testing with this. It works fine on the happy path (i.e. on a RHEL/Fedora host with the shadow-utils-subid package available AND nsswitch.conf configured to use it properly).
On the less-than-happy path:

Debian (bookworm; just released, and trixie, which just started as "testing", at least put getsubids in the "uidmap" package.
Ubuntu 22.04 has a uidmap package, but it does not contain getsubids
OpenSUSE 15.5 has shadow 4.8 and includes podman 4.4 but does not ship a getsubids binary

I think at least before merging/shipping this we should try to add the uidmap or shadow package as appropriate in hopes that it contains getsubids, and proceed with the fallback as before.
Maybe rather than trying to handle all the getsubids edge cases we could conditionalize the installation of shadow-utils-subid to Fedora/RHEL and allow logic for other Linux distros to proceed as before? (I think it would be equivalent experience for where they are now.)
What do you think?

The role as it currently stands does not support any platform other than os_family RedHat (other than "accidentally") - are you willing to contribute vars/Ubuntu*, vars/Debian*, vars/OpenSUSE* etc. as necessary?  If so, I'll provide the necessary vars files for RedHat support.

I could do that. Would you agree it would be reasonable to skip the package installation task for unknown distro combinations? (That is, we populate where to get setsubids from for releases we know, and the task skips for, say, really old Debian/Ubuntu/Suse/etc). In that case, maybe we should split the tasks for podman and shadow-utils?

@mhjacks how's the latest commit?

[citest]

Looks good to me. It does reasonable things for non redhat systems. I can subsequently PR in vars for os's that provide getsubids. Thanks! This will be an enormous help; I really dig the quadlet support features too

Looks good to me. It does reasonable things for non redhat systems. I can subsequently PR in vars for os's that provide getsubids. Thanks! This will be an enormous help; I really dig the quadlet support features too

Thanks for your help!


fix: add support for Shopware 6.4.1

Started with 6.4.1 because variable systemCurrencyISOCode has been introduced there :-(
fixes #35

Hello,
I downloaded the package from the tinect/shopware6-two-factor-auth - fixApi and the entire authorization works with the code but not with qrCode in the administration panel.
I get the 404. Can you help me ?


Add "$schema" property to compiled Schemas, to reflect that they have been built for draft-07.

Is your feature request related to a problem? Please describe.
I would like to use these schemas with the validation library python jsonschema. This library assumes latest draft, unless explicitly supplied. I need to manually add the "$schema" property into the schemas, before I can validate.
Describe the solution you'd like
"$schema" can be included in the generated schemas, either by including in source schemas, or adding into compilation pipeline.
Describe alternatives you've considered
I will inject manually, after pulling git submodule.
Additional context
Its a dumb project, but src is here: https://github.com/Bedrock-OSS/bedrock-web-validator

Schemas should now include that value.


Added New game

PR Description 📜
I have added New Simonsays game (Simonsays2.0) . that include greater UI and Memes sound effect
Fixes #3113

[ X] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ X] I have performed a self-review of my own code or work.
[X ] My changes generates no new warnings.
[ X] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[X ] I have added screenshot for website preview in assets/images
[X ] I have added entries for my game in main README.md
[ X] I have added README.md in my folder
[X ] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @pandeyji711 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Thank you  @pandeyji711 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

@kunjgit please review this

@pandeyji711  make sure you are having proper source code there you are right now having submodule and similar games are already there on GameZone !

Thank you  @pandeyji711 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

@kunjgit this is full source code and other simon say are not that good


Added it-it (Italian) language

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

Thank you!


Fix: user inject function receives unprocessed CSS

I attempted to use the inject function as a config option, as described in the docs:
cssModulesPlugin({
      // optional. set to false to not inject generated CSS into <head>, default is true.
      // could be a function with params content & digest (return a string of js code to inject to page),
      // e.g.
      // ```
      // inject: (cssContent, digest) => `console.log("${cssContent}", "${digest}")`
      // ```
    })

However, I found that cssContent still has the unprocessed class names from my CSS file. This change correctly passes the result.css as cssContent after postcss processing.
If cssContent is supposed to be unprocessed, that's fine! But I'd like to receive the processed classnames in my inject function as well, perhaps with a new function parameter?

You're right, it should be the processed one, thanks for correction


TST: Add a test for stats.gmean with negative input

I'm looking at https://github.com/scipy/scipy/issues/6551
As part of that I wanted to document what should happen with negative input which is not documented in https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mstats.gmean.html
Technically by the definition given in the docs

Return the geometric average of the array elements. That is: n-th root of (x1 * x2 * … * xn)

So gmean([-2, -2, 2, 2]) = (-2*-222)^(1/4) = 16^(1/4) = 2 but nan is probably more appropriate?

I think it is reasonable to require that all the inputs to gmean be nonnegative.
It has been a while since I created that issue.  If I recall correctly, cleaning up the behavior of those functions might require some slight backwards incompatible changes, but maybe we can consider the changes to be bug fixes.  For example, a return type of float16 when the input is int8 is certainly a bug--any integer input should give a return type of float64.

@rgommers Small PR waiting on review.


fixed borderRadius property

now can make rounded buttons by setting the borderRadius property in the CustomToggleButtons() initialization.

now can make rounded buttons by setting the borderRadius property in the CustomToggleButtons() initialization.

@jitinder Not too sure whether this project is still active, but I put a pull request anyways.

Hi @RukshanJS , thanks a lot for your contribution! This project is still active :)
Could you please ensure your formatting is done according to the guidelines?

Ensure you've added the necessary trailing commas - I had a brief look and this seems alright.
Format with dartfm - Not sure which IDE you're using, but IntelliJ and VSCode flutter extensions have this feature to automatically format all your code. Otherwise, you can use flutter format ... in the command line. More details here

Hi @RukshanJS , thanks a lot for your contribution! This project is still active :)
Could you please ensure your formatting is done according to the guidelines?

Ensure you've added the necessary trailing commas - I had a brief look and this seems alright.
Format with dartfm - Not sure which IDE you're using, but IntelliJ and VSCode flutter extensions have this feature to automatically format all your code. Otherwise, you can use flutter format ... in the command line. More details here

@jitinder yes, I have put the trailing commas and rechecked them. I use VS Code and have installed the flutter extensions. I believe the code is formatted correctly as well. But if anything is not correct, please tell me and I'll fix it. I'm also learning flutter and happy to contribute!


"Failed to load extension" error when Load Unpacked

Hello!
Thanks for taking the time to create this boilerplate.
I'm trying to set it up but running into an odd error when clicking the Load unpacked button within chrome://extensions/
I select the dist folder then I get an modal popup error saying:
Failed to load extension
File
~/Desktop/chan-extension/dist
Error
Could not load css 'assets/css/contentStyle1679273105255.chunk.css' for content script.
Could not load manifest.
I've attached a screenshot... I can't find much info on this error online but it seems to be related incorrect naming within the manifest file?

Have you checked if the issue persists in the latest version?

@tonychandesign
Well, seems like we've got a funny little situation here. We've noticed that Date.now occasionally returns with a 1ms discrepancy when generateKey is called repeatedly. Thank you for bringing this to our attention - it's not the prettiest fix, but we've taken care of it promptly.

https://github.com/Jonghakseo/chrome-extension-boilerplate-react-vite/pull/70

I believe the error may still be present.
A funny thing that is happening to me is that every time I do npm dev the manifest.json file stores the key generated by the previous execution of the command.
Eg.

After running again the command you can see that the old css file has been deleted but the manifest.json has the same key.

@dvalbuena1
Hello! I'm sorry to give you this answer, but it's difficult for me to identify the issue in my environment. Can you provide more information?

Well, there is not much additional information to highlight. At the moment I am using the latest commit of the main.
The only change I have made so far has been the following in order to be able to run it correctly from Windows.

And the version of Node I am using is 16.19.1

I think the problem happens because when you run the program in dev mode it first copies the manifest.json file from the public folder to the dist folder and then it generates the new manifest.json in the public folder.
For this reason the manifest.json seems to remain with the previous version.

@Jonghakseo The problem here is that __DEV__ isn't loaded yet. I recommend to use cross-env to load environment variables because  it works on both windows and linux.

The pull request suggested by @TP-O has been merged. Please check back to see if the issue is reproduced, and if so, we'll close the issue.

still having the same issue here, with cross-env

still having the same issue here, with cross-env

Worked for me.

This issue has been closed for a long time with no additional information provided. If anyone encounters the same issue, you can re-open it with your running environment and error logs attached.

@all-contributors please add @TP-O for bug

@all-contributors please add @tonychandesign for bug

Hey. I am encountering the same issue. Just cloned the repo today. First time it ran perfectly but now even after re-cloning still having the same issue.

@jgoedde
That's weird, your screenshot is very different from the typical post-build output.

It could be an operating system issue.
I suspect the behavior of the path module, could you try debugging the assetFileNames part of vite.config.ts?


Fix for issue where ui headers were not being created by cmake.

The ui headers weren't being created by cmake, and the build was failing.

Looks good, thank you!


Query Refactoring

Scope & Purpose

Refactor Query execution to only use one global query object per DBServer.
Allows us to better control access to global  query state.

Revamps shutdown sequence so into a single request per DBServer

Remove extra registry for traversals, also removes extra shutdown requests for traversals

[x] Strictly new functionality (i.e. a new feature / new option, no need for porting)

[x] The behavior in this PR can be (and was) manually tested (support / qa / customers can test it)

[x] The behavior change can be verified via automatic tests

Testing & Verification
This change is already covered by existing tests, such as shell_server and shell_server_aql
http://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr/9678/

second run http://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr-linux/11448/


IsEquivalentTo says there are differences between two identical objects?

Hi I'm writing a unit test for a source generator, where I have a Model class that contains the information about a Parsed class.
I'm using TUnit to run my unit tests, and it works great!
But it seems IsEquivalentTo yields a incorrect error (or at least I think it does)
All the classes/structuts/records implement GetHashCode and Equals (most of them are records, so I get it for free).
The error happens on here
And yields the error:
Expected model to be equivalent to expected

but Property Members did not match
Expected: [Member { Name = First, IsReadonly = False, Flags = None, IsEnumerable = False, IsClonable = False, IsNewCompatible = False, IsMemberNullable = False, IsElementNullable = False }, Member { Name = Second, IsReadonly = False, Flags = None, IsEnumerable = False, IsClonable = False, IsNewCompatible = False, IsMemberNullable = False, IsElementNullable = False }]
Received: [Member { Name = First, IsReadonly = False, Flags = None, IsEnumerable = False, IsClonable = False, IsNewCompatible = False, IsMemberNullable = False, IsElementNullable = False }, Member { Name = Second, IsReadonly = False, Flags = None, IsEnumerable = False, IsClonable = False, IsNewCompatible = False, IsMemberNullable = False, IsElementNullable = False }]

at Assert.That(model).IsEquivalentTo(expected)

From what I can see the text is identical in the error.
And if I run model.Equals(expected) it returns true.
If I switch to IsEquatableOrEqualTo instead it works as expected. So you don't have to fix the issue just for me but I wanted to report it.
Edit: I have also checked that the HashCodes of both objects are identical.

@thomhurst That was fast!! 💨

Haha thanks I do try 😆
Version 0.4.31 should be out in 5-10 minutes if you want to give that a try

It worked, thanks for the fast fix :)


Citation

Is there a prefered way of citing this repository in academic articles? Could a .bib entry be provided either here or in the READMEmd?

Thanks, this was added a while ago, just following up to close the issue.
@article{tfgnn,
author  = {Oleksandr Ferludin and Arno Eigenwillig and Martin Blais and
Dustin Zelle and Jan Pfeifer and Alvaro Sanchez{-}Gonzalez and
Sibon Li and Sami Abu{-}El{-}Haija and Peter Battaglia and
Neslihan Bulut and Jonathan Halcrow and
Filipe Miguel Gon{\c{c}}alves de Almeida and Silvio Lattanzi and
Andr{'{e}} Linhares and Brandon Mayer and Vahab Mirrokni and
John Palowitch and Mihir Paradkar and Jennifer She and
Anton Tsitsulin and Kevin Villela and Lisa Wang and David Wong and
Bryan Perozzi},
title   = {{TF-GNN:} Graph Neural Networks in TensorFlow},
journal = {CoRR},
volume  = {abs/2207.03522},
year    = {2022},
url     = {http://arxiv.org/abs/2207.03522},
}


How to require mobile phone instead of fixed/local phone?

Hi, I want to know if there is an option to request mobile number bu default, I know I can set a custom validation, but Is there an already done feature?

I would also be super keen on only allowing mobile numbers, how did you end up doing custom validation @jonalxh ?


Documentation for setting up a relay server

Neither the readme nor readthedocs says how to set up a relay server. All I could find, was this issue comment: https://github.com/magic-wormhole/magic-wormhole/issues/288#issuecomment-373887259

Would be happy to accept @geerlingguy 's comment as a PR if you like :)
Can you say what weird problems you ran into specifying the relay on the receiving side? I believe it should work to specify a non-default relay on either or both sides.

Yes, sorry about not having text, here is screenshots from the first attempt specifying on the receiving side:

On the second attempt there was another error... but I forgot to record or copy it out :(

Also, just to note, I was able to get around 75 MB/sec on a DigitalOcean CPU-optimized droplet. On the public relay, the maximum I hit was around 40 MB/sec, but it would go down here and there (presumably when other people were using it).
Thanks so much for the public service :)

For the record, it is @warner who runs the public mailbox and transit-relay servers, but glad you appreciate them! :)


Update “notifications”

Automatically generated by Netlify CMS
(Continue work on the Notifications page, which was still in active progress two weeks ago)

@contolini Could you look into what's going on with the specfication tables on these pages? The default one is showing up at the very end of all the variations instead of inside the first one, and all the rest are offset by one to appear on the variation before the one they're supposed to.
Screenshot to show what's happening on the currently deployed site and this PR:

@marteki - I wonder if that's related to the content shifting bug #280

@designlanguage Good point! Can you note it as possibly related on that issue?

Should we include a basic form alert as a variation before we get to the examples of success/error, etc?

I don't think one exist? That would just be a standard form field and not an alert, right?

Will the loading icon animate, or is the system not set up to support that currently?

:+1: Good idea. I grabbed the code from Capital Framework, which doesn't animate. I'll see if I can figure out what tag to use to get the Design Manual animated version.

Ah okay re: form alerts. This looks good to merge!


feat(Discovery): Scroll to top on search results #289

@blaino @clarkjefcoat @arw180

:+1: Pulled and tried it out locally - works as expected.
@clarkjefcoat , second review please.

Please rebase -i this down to a single commit and use feat instead of chore for the commit msg so it shows up in the changelog, as this is user-facing

Rebase needs work - still see two commits

I am aware, I'll reply here when I'm ready for you to check
On Thu, Jul 16, 2015 at 6:54 AM, Alan<EMAIL_ADDRESS>wrote:

Rebase needs work - still see two commits
Reply to this email directly or view it on GitHub:
https://github.com/ozone-development/ozp-center/pull/318#issuecomment-121925420

Rebased to one commit

And what a beautiful rebase it was. :+1:


Add experimental support for AsciiDoc

Example file:
= Awesome project

Here is a great data set:

[source,cypher,id=initial-data,author=fbiville]
----
CREATE (:Foo {name: "fighters"})
----

And another one:

[source,cypher,id=more-data,author=fbiville]
----
CREATE (:Bar {name: "tender"})
----

TODO: add tests of XML change log including adoc change log

After discussion with @nvoxland, we decided it was better to extract this work to its own repo: https://github.com/fbiville/liquibase-asciidoc


Say "timed out" instead of "terminated"

because the former is more precise

What do we think about saying "timed out" instead of "terminated"?  Whenever I see the latter I instinctively think "something else terminated it for an unknown reason" whereas I think, other than the crashes, this only happens in the case of timeout doesn't it?


Changed file names

[x] All tests passed. If this feature is not already covered by the tests, I added new tests.
[x] I used go fmt ./... for formatting the code before submitting the pull request.
[x] This feature is included on all supported VCS providers - GitHub, Bitbucket cloud, Bitbucket server, and GitLab.

A new method GetModifiedFiles is added. It returns paths of the files modified between two references (tags, commits, branches) using 3-dot diff range flow.
It is needed by the https://jfrog-int.atlassian.net/browse/INTG-389

@eyalbe4 could you please help me with fixing https://github.com/jfrog/froggit-go/actions/runs/4164604192/jobs/7206667212 ?
I have added comment as said, but it still fails.

recheck

recheckcla

recheck


Add ability for organization admins to delete user test devices

Background
Currently only a user may delete their own test devices. To remove the device,

You could delete the device by call this API: https://openapi.appcenter.ms/#/distribute/devices_removeUserDevice with the device's UDID.
The device owners can delete the device on their side: Account Settings->My devices->Click the device which need to be deleted->click on the 3 dots to delete

There is no way for an organization to remove user test devices.
Describe the solution you'd like
Add ability for organization admins to delete user test devices:

Via the API with a call like: DELETE /v0.1/users/{user_id}/devices/{device_id}
Through the UI: https://appcenter.ms/orgs/{org_name}/apps/{app_name}/distribute/distribution-groups/{group_name}/devices and Click the device which need to be deleted->click on the 3 dots to delete

NOTE: the user would have to be authenticated as an organization admin
Describe alternatives you've considered
We considered asking all of our users to remove their old devices, but this is impractical because:

We're a large enterprise organization and there are too many users
There is no enforcement mechanism, so if a user doesn't complete the action we have no means to make them comply

Additional context
At the end of the year, we disable and then remove any old test devices from our Apple developer account in order to stay below their allowed device limits. Often testers in our distribution groups lose or upgrade their old devices and get new ones. However, even after we remove the devices from our Apple developer account and associated profiles, they still show up in MS App Center as un-provisioned devices.
So the problem there is that if users don't remove their old devices once a year, then after the Apple Developer account refresh- even if the devices are removed from Apple, they remain in App Center. The old devices appear as unprovisioned.
And it's problematic for us, because we can no longer use the functionality to automatically register devices. If we were to do that, App Center would attempt to re-register the deleted devices.
Considering that our account is corporate and therefore all users are managed, we should have the ability to remove test devices.

Are there any updates here? Any way for admins to manage devices?


Move defines into a configurable config header

Reduce repetition by moving version, release, OpenGL ES and Android
suspend clock defines into the Config.hpp header, which is now
configured during project configuration.
Issue: #2079
Practically reverts: #2161
Tasks
Build, install and test suite only

[ ] Tested on Linux
[x] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

SFMLBuildMaster: Build this please.

One thing to consider in that regards is that this will make the C++ code of SFML depend on CMake, i.e. the two get even more closely coupled. Not that building SFML without CMake has really been an (easy) option, but now you most definitely can't just copy the header folder anymore, but you have to use CMake to generate the correct header.
Not saying we can't go this way, just pointing out the effect of this decision. 🙂

SFMLBuildMaster: Build this please.

I forgot to change the commit message to reflect the current changes. Due to https://github.com/SFML/SFML/pull/2177#discussion_r939437903 the OpenGL and Android Clock defines will be further discussed in a separate PR.
Should I just force push or will you fix that when merging?

Should I just force push or will you fix that when merging?

Probably easiest to fix that up before the merge so that you can write precisely what you want in the extended message.

I generally don't edit commit messages, unless I'm squash merging.

Ping. Are there any questions left unanswered?

SFMLBuildMaster: Build this please.

@SFML/sfml any opinions for or against using CMake generation for C++ source files? Since this is the first time doing so in SFML, I want to make this decision intentionally with more than just my own view.

@SFML/sfml any opinions for or against using CMake generation for C++ source files? Since this is the first time doing so in SFML, I want to make this decision intentionally with more than just my own view.

I'm in favor of it. This commit will give us much more confidence in the correctness of our install interface as we start to do more complicated things like letting CMake generate code. If we, for example, forget to install a new generated header then this test will fail. I want to take this even farther by generating all the Export.hpp headers as well. Check this out.

In theory, was it still possible to use SFML without CMake until now, even if user-unfriendly? If yes, that's something this change would break.
I'm not thinking about the typical use case of "using SFML as a library", but e.g. building another build system around it (scons etc.) to integrate it with a third-party project which relies on such a build system. As long as the source files are valid C++, any compiler/build system can theoretically work with SFML.

In theory, was it still possible to use SFML without CMake until now, even if user-unfriendly? If yes, that's something this change would break.

Yes, that's the question I'm asking. Does this really bother anyone?
For me personally, I feel like if you build your own build system around SFML, which isn't officially support, you'll also be able to handle some .in file. As such I'm fine with changing this.

In theory, was it still possible to use SFML without CMake until now, even if user-unfriendly? If yes, that's something this change would break.

This would inconvenience anyone who wrote their own build scripts for SFML that aren't using our CMake scripts. I'm not aware of any such users but I'm also not inclined to support them if they do exist since they're breaking the contract of the library and must accept such difficulties.

SFMLBuildMaster: Build this please.

The header install rules were fixed in #2234 (causing some minor conflicts in this PR) so you no longer need to make the configured/ directory if you'd like to get rid of that and generate directly into ${PROJECT_BINARY_DIR}/include.

I'm starting to lean (again?) more towards not generating source files with CMake.
The benefits are not grand and I don't really want to explain to people that want to use something else, that they'll have to manually write a config file, or copy an old one from before this PR, or still have to use CMake.
Maybe an image of how I view things currently:

What we're now doing is going back in the basic Input / Process / Output chain and feed new things into the processing. This might be required in some cases, but here it's more of a "why not do it if we can" rather than "this is the only way to get big trade-off X" (simplified statements).

The benefits are not grand and I don't really want to explain to people, who want to use something else, that they'll have to manually write a config file, or copy an old one from before this PR, or still have to use CMake.

I'm more than happy to tell such users that CMake is their only option. It's a shame to think that a few users doing experiments with other build systems would stop us from improving SFML.

Closing since there is not agreement within the SFML Team about whether we want to generate any sources.


Security errors

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

install using npm i
Expected behavior
No errors

Screenshots
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated<EMAIL_ADDRESS>replaced by i18next-fs-backend
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410
npm WARN deprecated<EMAIL_ADDRESS>Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410````

This isn't actually a security issue as we control all the inputs.


Enhancing Code Clarity and Efficiency through DRY, KISS, and YAGNI Principles

Greetings! 🌟 In this issue, I'm on a mission to boost our code's clarity and efficiency by embracing the DRY (Don't Repeat Yourself), KISS (Keep It Simple, Stupid), and YAGNI (You Ain't Gonna Need It) principles. I've identified specific areas where we can trim redundancy, simplify complexity, and trim any unnecessary bits. 🧹✨ You'll notice my notes in the code – insightful comments guiding us toward a cleaner, sharper codebase. Let's follow these golden rules to create code that shines brighter and runs smoother! 🚀👨💻🛠

The variable names taskText and task are both a bit vague. It would be better to use names that more accurately reflect the purpose of the variables, such as taskDescription and taskInput.
!./src/modules/editFunctions.js

export function enableTaskEditing(taskDescription) {
  taskDescription.contentEditable = true;
  taskDescription.focus();
}

export function saveTaskEdit(taskDescription) {
  taskDescription.contentEditable = false;
}

## Line numbers

* Line 1: The variable name `taskText` is vague.
* Line 2: The variable name `task` is vague.

🐛 Code quality issues in main.js 🐛
The code in main.js violates the  DRY 🧻, KISS 💋, and YAGNI 🤷♂ principles. It also uses global variables 🌎 and does not use strict mode 🔐.
Here are some suggestions for how to fix these issues:

Replace all references to localStorage with a local variable. 🗄
Enable strict mode by adding 'use strict'; to the top of the code. 🔐
Modularize the code by creating functions for common tasks. 🧰
Use functions and variables to store common code to avoid repeating yourself. 📝
Use more descriptive variable names to improve the readability of the code. 💡
Only add features to the code when they are actually needed. 🕵♂

I hope these suggestions help you improve the quality of your code! ✨


.Net installation

I successfully installed .Net Core SDK of 64 bit on my windows system.
Then I typed command dotnet in command prompt but it says dotnet is not recognized as an internal or external command, operable program or batch file.
Please let me know how can I check whether my dotnet installation has been successfully done?

Did you use the installer? Type path at the command prompt and see if C:\Program Files\dotnet\ is included in the list.

Got it.... Thanks.... My Bad, I was just looking till Program Files only.

I assume this is answered then. Closing


@invertase/july staging release 2022

DO NOT MERGE
Staging PR for Firebase Extensions July 2022 release.

Testing
BQ Schema Script

[x] Successfully generates a schema
[x] Successfully shows the package version

BQ Import Script

[x] Successfully imports data
[x] Description included in help command

Storage Resize Images

[x] Successfully generates public images


🐛明细表数据为空会显示一行

🏷 Version

Package
Version

@antv/s2

@antv/s2-react

@antv/s2-vue

Sheet Type

[ ] PivotSheet
[ ] TableSheet
[ ] GridAnalysisSheet
[ ] StrategySheet
[ ] EditableSheet

🖋 Description

明细表数据为空会显示一行，期望显示数据为空的提示。
我们试过先拦截空数据直接显示空数据提示，不显示表格，但是因为空数据是在表头通过服务端筛选造成的，空数据不显示表格，会中断交互流程。希望能组件内部处理，并暴露空数据提示ReactNode供定制。
⌨ Code Snapshots

🔗 Reproduce Link

🤔 Steps to Reproduce

😊 Expected Behavior

😅 Current Behavior

💻 System information

Environment
Info

System

Browser

https://github.com/antvis/S2/issues/1946

#1946

#1946

希望能组件内部处理，并暴露空数据提示ReactNode供定制。

目前数据为空时推荐的做法是: 自行在表格上面觉得定位一个 div 蒙层显示提示

明细表数据为空会显示一行是 bug, 近期修复

内置的话改动成本较大, 在 2.0 版本我们会加上

:tada: This issue has been resolved in version @antv/s2-v1.51.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-v1.53.0-alpha.2 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-react-v1.45.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-react-v1.46.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-v2.0.0-next.11 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-react-v2.0.0-next.10 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version @antv/s2-vue-v2.0.0-next.10 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Get configuration object directly from EntityClientEndpoint

The getEntityConfiguration() method on EntityClientEndpoint returns a byte[] which must be deserialized to recover the configuration.
Can we have a method that returns the configuration? After all, Voltron knows how to do the deserialization - there's a deserializeConfiguration method on EntityClientService.

The layering on the client side of entities looks like this.

Yellow is Voltron, blue is entity implementation.  Message flow goes up and down the stack.  If we wanted getEntityConfiguration() to return a type, we'd need to move the config de/serialization logic to the MessageCodec.  This would also mean a change to EntityServerService.create(Active|Passive)Entity(ServiceRegistry, byte[]).
I guess the central question right now is that Configuration bypasses MessageCodec and is negotiated between EntityClientService and EntityServerService.  Should this be the case or should it be moved?

Something feels weird in the interactions there indeed. I understand that Entity configuration (de)serialization does not need to be handled by the message codec. Maybe simply introducing a configuration codec would resolve the problem. As it can then be used by the EntityEndpoint the same way it uses the message codec.
Would that make sense?
And if we go forward with that, I agree it means introducing one more generic type and changing the create*Entity method signatures.

Another scheme could be to simply lift the configuration related methods from Entity*Service into a  different interface, which they would extend. And then have the EntityEndpoint use that interface and the message codec. That enables segregation from the client side and does not change fundamentally (IMO) the way an EntityEndpoint is materialised.

Another possibility, combine the MessageCodec and configuration codec into one interface. So there would be encode and decode methods for message and response (as now) and encode and decode methods for configuration.

We will re-open at a later date if the need arises.


use event.waitUntil() for the logflare API call

Use event.waitUntil() for the call to the logflare API instead of await so that it doesn't block the response for the original request.

Also updated on the docs on the site.


FastAgency studio deploy job is failing

mesop -> flask -> blinker
mesop==0.12.2
├── absl-py [required: Any, installed: 2.1.0]
├── deepdiff [required: ==6.*, installed: 6.7.1]
│   └── ordered-set [required: >=4.0.2,<4.2.0, installed: 4.1.0]
├── Flask [required: Any, installed: 3.0.3]
│   ├── blinker [required: >=1.6.2, installed: 1.8.2]

Fix - https://stackoverflow.com/a/65307465/3664629


safari extension

https://evilmartians.com/chronicles/how-to-quickly-and-weightlessly-convert-chrome-extensions-to-safari#:~:text=Converting a Chrome extension to,Chrome extensions to Safari extensions.

the first step done! #4
now figure out how to do it via github actions


Before/After Hooks for selected operations

Hi, as promised, here's the wish.
Although I must ask you, what you exactly mean by this comment in the documentation:
It is safe to modify the contents of the arguments after Put returns but not before.
I hope you don't hate it that much :) let's discuss

Any tests :)

@alpert that was not the idea.
this is just a feature request description. I’m happy to work on it further, if it looks promising, but I don’t write tests for text files 😊
Please do not merge as-is! 😅

Related: https://github.com/buraksezer/olric/issues/48

Related: https://github.com/buraksezer/olric/issues/48


[WIP] KEP-922 API v1alpha2

What type of PR is this?

/kind documentation
What this PR does / why we need it:
Which issue(s) this PR fixes:

xref #922
Special notes for your reviewer:
Does this PR introduce a user-facing change?

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

NONE

/remove-lifecycle rotten
/reopen

/remove-lifecycle rotten


dotty-library is called scala3-library now

I suspect this fixes https://github.com/lampepfl/dotty/issues/10558 but
haven't actually tested it.

/cc @eatkins (I can't assign a reviewer myself in this repo).

It looks like you need to run scala format. The fix looks correct to me but you probably should validate it before it's merged. It should be as simple as

sbt publishLocal
rm ~/.sbt/boot
cd $SCALA3-PROJECT-DIR
sbt -Dsbt.version=1.5.0-SNAPSHOT console

Thanks, I gave it a try but the issue remains in the dotty repo (I've updated the commit message).


Expansion depth should be stable across updates

When a context has the expansion depth set, new nodes that tick in aren't automatically expanded to that depth. This PR fixes that.

Looks great, thanks for the PR!


Question about Order params

Hey! I want to use sqlc with huge query where I want to use the order by column_name and asc or desc. Am I able to use sqlc and pass params of order and sort to func?
My sql query = SELECT (CASE WHEN r0_.user1_id = ? THEN CONCAT(COALESCE(u1_.name, 'ZZZZZZZZZZZZ'), u2_.id) ELSE CONCAT(COALESCE(u3_.name, 'ZZZZZZZZZZZZ'), u4_.id) END) AS sclr_0, (CASE WHEN r0_.user1_id = ?  AND r0_.status12 = 1) OR (r0_.user2_id = ? AND r0_.status21 = 1) ORDER BY r0_.updated ASC LIMIT 20
is it possible?

Discussed in https://github.com/sqlc-dev/sqlc/issues/2061


migrate bodycomplex in autorest.testserver (for complex polymorphism and dictionary)

This PR is for migrating body-complex in autorest.testserver into cadl tests.
Since there are already projects for primitives, collections and readonly in cadl-ranch, I don't add related tests in body-complex to here.
I split the remains into two packages as dictionary and inheritance-complex:

dictionary-basic: for cadl datatype Record
dictionary-models: for Record of models
inheritance-complex: provide testcases for complex polymorphic scenario. The enhancement comparing to the existing inheritance is discribed at https://github.com/Azure/cadl-ranch/blob/b9d8d20190c25843d9510d6911a3a48720f76f4e/packages/cadl-ranch-specs/http/models/inheritance-complex/README.md
special-characters: for property names containing dot or keyword

Cadl Ranch Contribution Checklist:

[x] I have written a scenario spec
[x] I have meaningful @scenario names. Someone can look at the list of scenarios and understand what I'm covering.
[x] I have written a mock API
[x] I have used @scenarioDocs for extra scenario description and to tell people how to pass my mock api check.

@changlong-liu can you read over the docs and align your tests so they aren't tied to BodyComplex, and every scenario is clearly documented and necessary? Thanks!

Hi @iscai-msft ,  thanks for the information!
I refactored the scenarios and mockapi to align the naming and doc style, and make each scenario for single purpose. The mock apis in PR can get work in my local Python tests.

Hi @timotheeguerin , @iscai-msft , I moved the dictionary changes into PR https://github.com/Azure/cadl-ranch/pull/104 and leave this PR only for inheritance :)


Check Dockerfile build

Validate dockerfile and build

In a small localized test I had errors building the container and getting file references correct.
I'll submit a PR @jvanderhoof  but my fixes:
Dockerfile.rails
FROM ruby:3.2 AS rails-toolbox
Default directory
ENV INSTALL_PATH /opt/app
RUN mkdir -p $INSTALL_PATH
COPY Gemfile Gemfile.lock Rakefile ./
COPY lib ./lib
RUN gem install rails bundler
RUN bundle
#RUN chown -R user:user /opt/app
WORKDIR /
Run a shell
CMD ["/bin/bash"]

Issue is more environment, closing issue.


remove trusty from distro

WIP

@aedalton the comment says WIP, do you want me to approve this PR or is there more coming?

Closing this out since there have been no updates.


VMIs with delegated IPs are stopped by the kubelet if kubelet is restarted

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind enhancement

What happened:
When connecting the VMI via bridge mode and IP delegation to the pod network, CNI status checks fail and as a consequence the kubelet stops all containers of that pod when the kubelet is restarted.
I checked it on k8s 1.10.4 and k8s 1.13.3. I think that the hint in the logs is this:
Mar 04 09:28:43 node01 kubelet[29530]: W0304 09:28:43.167534   29530 docker_sandbox.go:384] failed to read pod IP from plugin/docker: NetworkPlugin cni failed on the status hook for pod "virt-launcher-vmi-nocloud-v4j2m_default": Unexpected address output

I did not try it with ovn-cni, crio, just flannel.
What you expected to happen:
The VMIs should not be killed by the kubelet.
How to reproduce it (as minimally and precisely as possible):
$ cluster/kubectl.sh create -f cluster/examples/vmi-nocloud.yaml
$ cluster/kubectl.sh create -f cluster/examples/vmi-slirp.yaml
$ cluster/kubectl.sh get vmis
NAME          AGE   PHASE     IP            NODENAME
vmi-nocloud   15s   Running   <IP_ADDRESS>   node01
vmi-slirp     1m    Running   <IP_ADDRESS>   node01
$ cluster/cli.sh ssh node01
$ sudo systemctl restart kubelet
$ cluster/kubectl.sh get vmis
NAME          AGE   PHASE     IP            NODENAME
vmi-nocloud   34s   Failed    <IP_ADDRESS>   node01
vmi-slirp     1m    Running   <IP_ADDRESS>   node01

Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version):
Kubernetes version (use kubectl version):
VM or VMI specifications:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

/cc @SchSeba @yuvalif @booxter @fabiand @davidvossel

/cc @dankenigsberg

/topic network
Can you set it, @SchSeba?
I'd appreciate if we can make masquerade our default, so that only people who cannot work behind NAT suffer from this bug.

@rmohr thanks for reporting that, I will look into it.

I'd appreciate if we can make masquerade our default, so that only people who cannot work behind NAT suffer from this bug.

This is proposing to change an API default to work around a bug. We can have that discussion, but we need to be clear on what this involves.
Changing an API default like this has the potential to impact more users than this bug. Since this would be an API breaking change, it would mean a bump in the API version. bumping the api version has a ripple effect across multiple projects. In addition to this, users who depended on the default pod interface binding then have perform some manual steps to reconfigure their VMs to ensure they continue behave as expected.
we should avoid doing something like this if at all possible.

also, it would be nice to know if this impacts crio or is isolated to docker.

This is proposing to change an API default to work around a bug

The current default disallows live migration. As such, I don't like it as a default regardless of this bug.
I'm not sure that this consists of an API breakage; it is a change of behavior. But clearly it is likely to break user expectations, and deserves careful considerations.
We should look for a workaround, as bridge is a valid use case for us, and it has to survive kubelet restart.

The problem is: On the first setup, kubelet runs CNI, gets back IP of the pod, all is good. After that we move this IP address to VM. Next time kubelet starts, it tries to sync pods, calls CNI status method, no IP is returned (hello VM) and therefore it fails.
I tried to fool kubelet and it worked: I set an adress (<IP_ADDRESS>/32, yay) on eth0 of virt-launcher pod and the pod survived restart. However, it now reports <IP_ADDRESS> as pod's address.
I want to try this: Rename eth0, create dummy eth0 interface and give it original eth0 IP and MAC addresses. It should not affect the network, but it should give kubelet expected address. What do you think @davidvossel @rmohr

I want to try this: Rename eth0, create dummy eth0 interface and give it original eth0 IP address. It should not affect the network, but it should give kubelet expected address.

It's unclear to me if this method will mitigate the issue for all possible CNI plugins.  For example, when the CNI status method is called, what logic is being executed to return the status? Is that logic CNI plugin specific, or something generic?

CNI has ADD, DEL and CHECK calls. ADD returns list of created interfaces with their name, IP, MAC.
CHECK takes configuration that was previously passed to ADD and result of ADD. CHECK should validate that current state of pod's network matches requested state.
My educated guess would be that kubelet fails on this check. I will try to investigate whether this is the case or if there is some check on the kubelet side.

Great, the check is done by kubelet, we know what to work around :) It just reads eth0 address and exposes it on the pod object. Therefore all we need to do is to create eth0 interface on the host and give it the IP. Thoughts @davidvossel? Sorry for the confusement in the previous comment.
https://github.com/kubernetes/kubernetes/blob/2d956389dc57fb1715d1832b2d22c042de59bd1d/pkg/kubelet/dockershim/network/plugins.go#L226

As @SchSeba pointed out offline, we can't really replace eth0 with a fake interface since it could in theory affect CNI DEL of some plugins.
If someone has running CRIO instance, could you please try to reproduce the bug? My laptop has troubles running cluster/os-3.11.0-crio.

Side note: IIUIC SLIRP would not be suffering this issue, Is this correct @phoracek ?

Therefore all we need to do is to create eth0 interface on the host and give it the IP.

doesn't that assume that all CNI plugin CHECK functions only look for the IP of eth0? I'm not sure we can make that assumption.

On Wed, Mar 6, 2019 at 11:21 PM David Vossel<EMAIL_ADDRESS>wrote:

Therefore all we need to do is to create eth0 interface on the host and
give it the IP.
doesn't that assume that all CNI plugin CHECK functions only look for the
IP of eth0? I'm not sure we can make that assumption.

Hm, I am not sure, but I think I saw the CHECKs from the CNI plugins
already failing all the time. Just on kubelet restarts, as Petr discovered,
the kubelet does this one-time-check again and because it can't determine
the IP it stops the pod. I think all CNI plugins always create eth0 by
default in k8s. That's the expectation. But if we e.g. use multus we would
have to do the same trick for every device and create a dummy device with
the original name. Can that be?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubevirt/kubevirt/issues/2076#issuecomment-470300834,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEUxXUpahszpdchvBnLhy01kdzwqUvJWks5vUD9pgaJpZM4bb7AX
.

@davidvossel sorry for the confusion, I later found that it is not the CHECK what fails, it is code hardcoded in kubelet/dockershim. It looks for eth0 and reads its IP, so it is later exposed in the Pod state.
I'm not sure if the same check happens on CRIO (is dockershim under CRIO or a different branch?).
@rmohr I don't know whether the CHECK is used at all in Kubernetes, but if it is, moved IP address should definitely cause its failure.
The issue is, that if we create this fake interface, we could break CNI DEL logic of some plugins. If a plugin does some magical handling of the interface before its removal and it expects insert your eth0 veth interface specific attribute, it might break.
Multus just exposes assigned addresses in Pod's annotation, kubelet does not know about any of this. So unless there is similar check after restart on Multus side, it should not fail. Worth a try though.
Ok so, CNI DEL of some plugins might have problems even now with the IP address removed. By introducing a fake dummy interface, we might make it even worse. I don't have any proof that this causes a problems though. Can you think about any other way how to fool kubelet? I will create PR for the dummy hack in the meanwhile.

@fabiand that's right, SLIRP and masquerade should not touch the IP address

If someone has running CRIO instance, could you please try to reproduce the bug? My laptop has troubles running cluster/os-3.11.0-crio.

I bet @myakove or @duyanyan can help with that.

I tested on the OCP3.11(crio). I restarted the node service instead of restarting kubelet. I didn't meet the issue.
$ oc get pod -o wide -w
virt-launcher-vmi-nocloud-vdd9t   2/2       Running   0         3m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>
virt-launcher-vmi-slirp-4sgqz   2/2       Running   0         2m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>
virt-launcher-vmi-nocloud-vdd9t   0/2       Running   0         3m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>
virt-launcher-vmi-slirp-4sgqz   0/2       Running   0         2m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>
virt-launcher-vmi-slirp-4sgqz   2/2       Running   0         2m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>
virt-launcher-vmi-nocloud-vdd9t   2/2       Running   0         3m        <IP_ADDRESS>   cnv-executor-yadu14-node1.example.com   <none>

@duyanyan, could you also try killing the kubelet process on the host? At least for docker, that's where the relevant code is.

@duyanyan thanks for testing it
Proposed fix: https://github.com/kubevirt/kubevirt/pull/2100

Has any discussion been had around allowing the virt-launcher pods to pass the various CNI created interfaces into the virtual machine without interference?

@booxter starting to work on that for sriov. I would like to do that also for bridges, by passing a tap device from qemu directly to the host bridge. We do not have immediate action items for that. If this is what you want, maybe you can file an issue about it.

/reopen

/reopen

/reopen

yes: https://github.com/kubevirt/kubevirt/pull/4552

@rthallisey  in bridge mode we will rename eth0 and recreate a new eth0 (dummy) , this might  affect CNIDel , has this problem resolved?

Even set pod ip on a fake eth0 is dangerous,  if we connect vm from its host by route, such as:
<IP_ADDRESS> dev xxxx scope link  # <IP_ADDRESS> is pod IP

Packet will be receive by this fake eth0  and response in container, but not VM,  and telnet <IP_ADDRESS> 22 will be connection refused by container.


binary size 3x larger

Checklist

[X] I've looked through the issues and pull requests for similar reports

Describe your issue
When building using cross, my binary size is significantly larger than when not.
cmd:
cross build -r --target x86_64-pc-windows-gnu
Run using docker in docker, my devcontainer using wsl on windows.
What target(s) are you cross-compiling for?
x86_64-pc-windows-gnu
Which operating system is the host (e.g computer cross is on) running?

[ ] macOS
[ ] Windows
[ ] Linux / BSD
[X] other OS (specify in description)

What architecture is the host?

[X] x86_64 / AMD64
[ ] arm32
[ ] arm64 (including Mac M1)

What container engine is cross using?

[X] docker
[ ] podman
[ ] other container engine (specify in description)

cross version
cross 0.2.5
Example
cross build -r --target x86_64-pc-windows-gnu
My binary built natively on a windows machine is 8mb
using cross its 23mb.
Additional information / notes
Probably the difference between x86_64-pc-windows-msvc and x86_64-pc-windows-gnu targets

Comparing binary sizes for -gnu and -msvc doesnt really make sense, msvc has a lot of dynamic linking, it also bundles debuginfo in a .pdb file.
See https://doc.rust-lang.org/cargo/reference/profiles.html for tuning artifacts, and https://github.com/johnthagen/min-sized-rust for more tips


Don't depend on development package for ALSA and SNDIO

Regressed by #539

On Debian .so symlink is part of separate libasound2-dev and libsndio-dev packages
On OpenBSD .so.X symlink is not provided because OS updates often change ABI of all libraries
On rolling distributions runtime and development bits are not separate

LGTM, thanks!


tf-idf buggy

ERROR: / has no method matching /(::Int64, ::Array{Int64,2})
in tf_idf at /home/steven/.julia/v0.3/TextAnalysis/src/tf_idf.jl:52
in tf_idf at /home/steven/.julia/v0.3/TextAnalysis/src/tf_idf.jl:74
here is a correct version:
function tf_idf{T <: Real}(dtm::Matrix{T})
n, p = size(dtm)
# TF tells us what proportion of a document is defined by a term
tf = Array(Float64, n, p)
# IDF tells us how rare a term is in the corpus
idf=Array(Float64,p)
for i in 1:n
    words_in_document = 0
    for j in 1:p
        words_in_document += dtm[i, j]
        idf[j]=log(n/sum(vec(dtm[:,j])))
    end
    tf[i, :] = dtm[i, :] / words_in_document
end

# TF-IDF is the product of TF and IDF
# We store it in the TF matrix to save space
for i in 1:n
    for j in 1:p
       tf[i, j] = tf[i, j] * idf[j]
    end
end

return tf

end
TODO: Rewrite this definition to return a sparse matrix
function tf_idf{T <: Real}(dtm::SparseMatrixCSC{T})
n, p = size(dtm)
# TF tells us what proportion of a document is defined by a term
tf = Array(Float64, n, p)
# IDF tells us how rare a term is in the corpus
idf=Array(Float64,p)
for i in 1:n
    words_in_document = 0
    for j in 1:p
        words_in_document += dtm[i, j]
        idf[j]=log(n/sum(vec(dtm[:,j])))
    end
    tf[i, :] = dtm[i, :] / words_in_document
end

# TF-IDF is the product of TF and IDF
# We store it in the TF matrix to save space
for i in 1:n
   for j in 1:p
      tf[i, j] = tf[i, j] * idf[j]
    end
end

return tf

end
function tf_idf!{T <: Real}(dtm::Matrix{T})
error("not yet implemented")
end
function tf_idf!{T <: Real}(dtm::SparseMatrixCSC{T})
error("not yet implemented")
end
function tf_idf(dtm::DocumentTermMatrix)
tf_idf(dtm.dtm)
end
function tf_idf!(dtm::DocumentTermMatrix)
tf_idf!(dtm.dtm)
end

I believe this has been fixed by https://github.com/johnmyleswhite/TextAnalysis.jl/commit/d40a74e48fc1822d22b128af0bd76e0c27ec10c1
While the fix is before the date of this issue, this hadn't been tagged in a new version.

This is fixed in v0.0.2