Nonhomogeneous Dirichlet Boundary in Time-dependent Solver

In most examples of MFEM, the homogeneous dirichlet boundary is used. But I want to set nonhomogeneous Dirichlet boundary in a time-dependent solver. I hope to know what I should do. And is there any similar examples? Thanks.

Hi @Liu0813,
Yes, for an H1 space you can use ProjectBdrCoefficient, and yes you have to construct the list of essential true dofs by fespace.GetEssentialTrueDofs(ess_bdr,ess_tdof_list) and then use it when you form the linear system.
Best,
Socratis

Hi @psocratis,
Thank you for your suggestion. I try to solve my problem using the method you mentioned, but it seems that there is a bug.
When I put the degrees of freedom on the non-homogeneous Dirichlet boundary in the list of essential true dofs ess_tdof_list and use it to form the linear system, the sparsity patterns of mass matrix and stiffness matrix is shown as the following figure.

That is, all the corresponding rows and columns are eliminated when the function FormSystemMatrix(ess_tdof_list, Mmat) is performed, as the following code in bilinearform.cpp (release version mfem-4.1)
void BilinearForm::EliminateVDofs(const Array<int> &vdofs,
                                  DiagonalPolicy dpolicy)
{
   if (mat_e == NULL)
   {
      mat_e = new SparseMatrix(height);
   }

   for (int i = 0; i < vdofs.Size(); i++)
   {
      int vdof = vdofs[i];
      if ( vdof >= 0 )
      {
         mat -> EliminateRowCol (vdof, *mat_e, dpolicy);
      }
      else
      {
         mat -> EliminateRowCol (-1-vdof, *mat_e, dpolicy);
      }
   }
}

There is no problem for homogeneous Dirichlet boundary, but for non-homogeneous Dirichlet boundary, I don't think this treatment is reasonable.
However, this bug seems to be fixed in this repository,
https://github.com/mfem/mfem/blob/4f521a1be6624826ff25924977b43e5667b9ac1c/fem/bilinearform.cpp#L938-L954
I am a beginner of MFEM, so I am not sure of this problem. Should I update the MFEM Library to fix it?
Thanks,
Liu

Hi @Liu0813,
Suppose you have BilinearForm * a. Then, in order to form the linear system, you need to call
a->FormLinearSystem(ess_tdof_list, x, *b, A, X, B);. This method modifies both the system matrix (by calling the method FormSystemMatrix) and the right-hand side. The essential dofs (truedof indices) are read from the Array<int> ess_tdof_list and the essential data from the GridFunction x.
Please let us know if this solves the issue.
Best,
Socratis

Hi @psocratis,
That is right. The method FormLinearSystem modifies both the system matrix and the right-hand side. However, my problem to solve is time-dependent. After spacial discretization, the partial different equation should be writen as an ODE: du/dt=M^{-1}(-Ku). For the implicit solver, the Backward-Euler equation k=f(u+dt*k,t) should be solved. Take a look at the Example 16. According to the example, the variable du/dt is firstly solved in time-dependent problem. So, I am not sure if  the method FormLinearSystem is unsuitable for this case. And I hope to know how to use it in time-dependent problem.
Thanks,
Liu

@Liu0813, you can still use FormLinearSystem for time-dependent essential data.  The steps to solve k=f(u+dt*k,t) could be something like:

use your time-dependent FunctionCoefficient to project the correct boundary data for time t onto x
call FormLinearSystem using the updated x containing the essential boundary data
solve AX=B

A disclaimer is that you'll need to be a little more careful if you want higher-than-first order accuracy... but I believe this will work fine for forward/backward Euler.
I can also elaborate on my suggested approach if needed.

Hi @cjvogl,
Thank you for your reply. I still have some questions about your suggested approach. Considering a parabolic model problem, such as the unsteady heat equation with time-dependent essential boundary conditions, the semi-discrete form can be expressed as

According to your suggested approach, I should obtain the full-discrete form. For backward Euler method, it is

and the linear system can be writen as

That means the sparse matrix is A=M+dt*K, and the right-hand side is M*u. I have to construct the mass matrix M and stiffness matrix K before forming the linear system. Thus, the questions are

When M and K are constructed, Do I need to introduce the ess_tdof_list?
In the standard ODE solver of MFEM, the Step method calls ImplicitSolve method to calculate du/dt. You suggested approach does not seem to match with this process. Do I need to override the ODESolver?

Thanks,
Liu

Hi @Liu0813,
Here are some notes about applying b.c. that might be helpful.
If you split the dofs in to two groups: I (for interior) and B (for essential boundary) then the matrices and the solution vector can be written in the following block form:
M = | M_I  M_IB |   K = | K_I  K_IB |   u = | u_I |
    | M_BI M_B  |       | K_BI K_B  |       | u_B |

Since we want to solve just for the I block, the real system of ODEs has the form:
M_I du_I/dt = - K_I u_I - K_IB u_B

Since we do not want to change the sizes of the vectors and matrices depending on the essential b.c., we can augment the above system of ODEs by
    dx_B/dt = 0

and solve for the vector:
x = | u_I |
    | x_B |

e.g. with initial condition x(0) = u(0). Note that when we need to save or visualize the solution at time t we'll need to replace the x_B part with the real u_B(t). With this modification, the block system of ODEs can be written as:
dx/dt = | M_I 0 |^{-1} | - K_I u_I - K_IB u_B |
        |  0  I |      |   0                  |

Note that when FormLinearSystem is called the returned matrices have the form:
MM = | M_I 0 |   KM = | K_I 0 |
     | 0   I |        | 0   I |

and the complement matrices MC = M - MM and KC = K - KM are stored internally, so that they can be used to eliminate boundary conditions. The elimination modifies the r.h.s. vector b in the following way:
b = | b_I | --> b = | b_I - K_IB u_B |
    | b_B |         | u_B            |

where u_B is the essential b.c. taken from the input solution vector. In Example 16, this means that inside ConductionOperator::Mult(...), before the call to M_solver.Mult(...), one can call K->FormLinearSystem(...) to transform the vector z by subtracting K_IB u_B from z_I. Then after M_solver.Mult(...), one can simply reset the boundary component of the output vector, du_dt, by calling du_dt.SetSubVector(ess_tdof_list, 0.0).
To support SDIRK methods (and backward Euler, in particular) one has to update the implementation of ConductionOperator::ImplicitSolve too. In this case the system for k (i.e. du_dt) can be written as
MM | k_I | = - | K_I 0 | | u_I+dt*k_I | - | K_BI u_B(t) |
   | k_B |     | 0   I | | 0          |   | 0           |

or
| M_I+dt*K_I  0 | | k_I | = - | K_I 0 | | u_I | - | K_BI u_B(t) |
| 0           I | | k_B |     | 0   I | | 0   |   | 0           |

Note that the matrix of the l.h.s. can also be replaced by MM+dt*KM -- this is what is already done in Example 16. The modification for nonzero u_B here is very similar to the one in ConductionOperator::Mult.

Hi @v-dobrev,
Thanks for your guidance. Everything is clear.

Hi @v-dobrev ,
If the boundary condition is nonhomogeneous Dirichlet and time-dependent, i.e., dx_B/dt != 0. It seems not simple.

Hi @chang-yiyi,
Sorry for not replying earlier.
You are correct: when du_B/dt != 0 one has the additional term - M_IB du_B/dt in the r.h.s. One way to deal with this term (when your Dirichlet b.c. is given analytically) is to differentiate the Dirichlet b.c. function with respect to time, define a separate coefficient based on that derivative and then project it on the boundary to obtain the vector du_B/dt. The multiplication with M_IB can be done the same way as the multiplication with K_IB described above.
If your u_B vector is only given at discrete times, one can probably use a backward differentiation formula (BDF) like backward-Euler or higher-order approximations to compute an approximation of du_B/dt.
Another possibility (I'm not sure if this works well) is to use under-integration for the mass matrix, so that it becomes diagonal and then M_IB = 0.

Thanks @v-dobrev ,
Your answer is very clear. Thanks again.
Making a small suggestion that if replacing homogenous boundary conditions into inhomogeneous ones and replacing only Dirichlet boundary conditions into mixed Dirichlet and Neumann boundary conditions in examples in mfem/examples maybe could solve many issues. It's just my thinking.

Hi @chang-yiyi,
Thank you for the feedback, that is useful and definitely appreciated 👍
Yes, we should have more boundary condition in the examples, that's why we added Example 27, and we should continue to add more. We always welcome contributions, so if you have any specific code suggestions, please feel free to open a PR.
Tzanio

Hi @v-dobrev
I have a question related to time-dependent Dirichlet following your suggestion.
If I am solving the system fully implicitly, and use backward Euler, I can let dxB_dt=(u_B^{n+1}-u_B^n)/dt. I think it should be fine to get first order. Can I use such an approach to extend it to high-order using SDIRK, assuming u_B^{n+1} is always updated analytically even in the intermediate stages? Or should I always construct an analytical dxB_dt?
Due to my preconditioner, I prefer to think the problem in a fully discretized sense. So I always target at solving u^{n+1} in my reduced system, and then recover the backward Euler update through (u^{n+1}-u^n)/dt. So I do not fully understand the impact of dxB_dt in a high-order integrator
Qi

Regarding the need for more examples, I fully agree that more examples would be helpful.  However, there are so many special cases that this is difficult.  For one example you could look at the maxwell mini app in the electromagnetics subdirectory.  This miniapp uses a variable order ODE integrator which requires implicit solves using intermediate time steps of differing lengths.  Since these time steps repeat cyclically we build a separate linear system for each distinct time step and reuse them as needed.  This approach, therefore, uses additional memory to avoid rebuilding the linear system.  This may not be optimal but it demonstrates one approach which, I think, is well suited to this particular problem.
Another approach can be seen in the joule miniapp which uses a time dependent voltage source.  In this case I don't think the linear system is implicit (I don't even think the voltage update is done as a time evolution) but it may be useful.

@chang-yiyi the PETSc classes can handle time-dependent non-homogeneous boundary conditions (linearity in state vector is assumed), see e.g https://github.com/mfem/mfem/blob/master/linalg/petsc.cpp#L3659. This function computes the value of the residual of the ODE written in implicit form using exact BC. Then, it modifies the residual to properly compute the update when solving the (non)linear system of equations (take a look at how the Jacobian is modified here https://github.com/mfem/mfem/blob/master/linalg/petsc.cpp#L3760).  The interface for boundary conditions is quite general https://github.com/mfem/mfem/blob/master/linalg/petsc.hpp#L452. You only need to override the evaluation method https://github.com/mfem/mfem/blob/master/linalg/petsc.hpp#L478.

@chang-yiyi the PETSc classes can handle time-dependent non-homogeneous boundary conditions (linearity in state vector is assumed), see e.g https://github.com/mfem/mfem/blob/master/linalg/petsc.cpp#L3659. This function computes the value of the residual of the ODE written in implicit form using exact BC. Then, it modifies the residual to properly compute the update when solving the (non)linear system of equations (take a look at how the Jacobian is modified here https://github.com/mfem/mfem/blob/master/linalg/petsc.cpp#L3760).  The interface for boundary conditions is quite general https://github.com/mfem/mfem/blob/master/linalg/petsc.hpp#L452. You only need to override the evaluation method https://github.com/mfem/mfem/blob/master/linalg/petsc.hpp#L478.

Hi @chang-yiyi,
Sorry for not replying earlier.
You are correct: when du_B/dt != 0 one has the additional term - M_IB du_B/dt in the r.h.s. One way to deal with this term (when your Dirichlet b.c. is given analytically) is to differentiate the Dirichlet b.c. function with respect to time, define a separate coefficient based on that derivative and then project it on the boundary to obtain the vector du_B/dt. The multiplication with M_IB can be done the same way as the multiplication with K_IB described above.
If your u_B vector is only given at discrete times, one can probably use a backward differentiation formula (BDF) like backward-Euler or higher-order approximations to compute an approximation of du_B/dt.
Another possibility (I'm not sure if this works well) is to use under-integration for the mass matrix, so that it becomes diagonal and then M_IB = 0.

Hi,
Sorry to comment on this old issue.
I implemented a heat transfer solver with Neumann, Robin, and Dirichlet time-dependent conditions.
For the latter I followed the suggestions and computed a BDF approximation of du_B/dt with order increasing up to 6 (and consistent with the order of the time integration scheme).
In the solver I set du/dt (ess_dofs) = du_B/dt and u(ess_dofs) = u_n so that after the step i correctly get u(ess_dofs) = u_n + du_B/dt = u_B.
I tested the code running a convergence analysis and everything seems to work.
What I was wondering is: can we instead set du/dt (ess_dofs) = 0 and u(ess_dofs) = u_B. This would satisfy u(ess_dofs) = u_B, but I was wondering if it's doable or would compromise anything in the rest of the code.
Thanks!


nerdctl does not support pulling the specified version of the image?

Description
nerdctl pull nginx/nginx-ingress:3.3
nerdctl pull nginx:1.24
will happen
nerdctl pull nginx/nginx-ingress:3.3
docker.io/nginx/nginx-ingress:3.3: resolving      |--------------------------------------|
docker.io/nginx/nginx-ingress:3.3: resolving      |--------------------------------------|
elapsed: 19.0s                     total:   0.0 B (0.0 B/s)
WARN[0019] reference for unknown type: text/html         digest="sha256:41884408c9df943f4b3a095c689980351c1aa88b569698c041d7e6ab8cdde107" mediatype=text/html size=210682
FATA[0019] failed to unpack image on snapshotter overlayfs: unexpected media type text/html for sha256:41884408c9df943f4b3a095c689980351c1aa88b569698c041d7e6ab8cdde107: not found

nerdctl pull nginx/nginx-ingress
nerdctl pull nginx
no problem
Steps to reproduce the issue
No response
Describe the results you received and expected
nerdctl does not support pulling the specified version of the image?
What version of nerdctl are you using?
nerdctl version 1.7.0
Are you using a variant of nerdctl? (e.g., Rancher Desktop)
None
Host information
No response

The image is pullable
$ nerdctl pull nginx/nginx-ingress:3.3
docker.io/nginx/nginx-ingress:3.3:                                                resolved       |++++++++++++++++++++++++++++++++++++++|
index-sha256:8ca76d333d6a768480aaf3e08f464287abb2ea313864e746f2d01ef5f9a26769:    exists         |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:94c06bb58009c70b37e4db3009d92b953d3eee4f8029e0838b29e2e7a5f625d9: done           |++++++++++++++++++++++++++++++++++++++|
config-sha256:66f24ddf8895a3f31d038e461df4ff9b3b07db6db0abf4beea00ac077be6ca8c:   done           |++++++++++++++++++++++++++++++++++++++|
elapsed: 2.1 s                                                                    total:   0.0 B (0.0 B/s)

Probably you had some transient error on Docker Hub when you tried.


Improve retry middleware option parsing

Make sure retry won't crash when either delay or max_delay are misconfigured.
When delay or max_delay are less than 1, the Retry middleware currently crashes with the following error:
** (FunctionClauseError) no function clause matching in :rand.uniform_s/2
(stdlib 3.13) rand.erl:326: :rand.uniform_s/2
(stdlib 3.13) rand.erl:299: :rand.uniform/1
(tesla 1.3.3) lib/tesla/middleware/retry.ex:106: Tesla.Middleware.Retry.backoff/3
(tesla 1.3.3) lib/tesla/middleware/retry.ex:94: Tesla.Middleware.Retry.retry/3

It happens because :rand.uniform/1 requires a positive integer.
This change adjusts max_delay to 1 when it isn't positive and also adjusts delay to make sure it falls within 1..max_delay. Ideally, I believe we should raise an ArgumentError right away when these values are invalid, e.g. when they are not integers, but that would be a bigger, breaking change. So this is a compromise we can safely make for now, without any behavior changes.

Hi, @teamon. Thanks for your input on this. I'll update this PR with the changes to make the middleware raise an error instead, hopefully with a helpful message, then I'll ask you to take another look as soon as it's done.

Updated and also seized the opportunity to validate max_retries as well. If it is accidentally set to a negative value, the middleware will keep retrying endlessly and that's probably an undesirable behavior. PTAL.


Readibility Change

I was reading your FAQ and saw the bit about changing the colours and figured this'd make for a slightly nicer time changing that if someone wanted to without having the hassle of copying the values so they knew what they were originally before doing the replace command.
Plus repeated magic numbers make me sad.
I also fixed two small typos in the README.
Though, I don't have the hardware to test my change so while it's small, you might want to double-check that it still compiles/runs.

2ea4066 is fine, but 5c0075f needs some work to fit in with the code. Constants for black and white are already defined in https://github.com/guruthree/mac-se-video-converter/blob/98c07ab59ec763d6a2889af38c97fbe925ee456c/vga.h#L46-L47 lookuptable should use these and be included into vga.h after the definition.
README.md suggests swapping 0x0000 and 0x7FFF in case the video signal coming from the Mac is inverted, in which case I don't think black and white would be labelled appropriately. I think the better solution would be to add
#define INVERTED_SIGNAL 0 // change to 1 if colours are inverted

to vga.h and then edit calls afterwards to sebuffer to be ~sebuffer when set. (And then of course update the readme to match...)


Create notebook 04: Conditionals

This notebook ended up requiring minimal changes from the one in the intermediate class. I just took out a small section on vectorization and updated the "Applied Review" section.

Eh, broke something somehow, busy now but will fix later

I have work events all day tomorrow and into the evening – @augustopher, if you approve this, can you just merge it in?


Taskbar icon stays red when not tracking time - Windows Desktop App

Even when Toggl isn't tracking anything, the icon on the taskbar is red, as if it is tracking. This only happens when the setting "Combine taskbar buttons" is set to "Always, hide labels" on the Taskbar Settings.
In other words, this bug is only present when the labels of the programs on the taskbar are hidden. I'm on Windows 10 but I've seen it happen in Windows 8.1 as well.
case/699117
Version: 7.4.122
*not yet reproduced by support

Did a little digging. Unfortunately this is a limitation of Windows:
https://stackoverflow.com/questions/29084126/dynamic-taskbar-icon-depends-on-configuration-of-taskbar


Upgrade flow and component types

Thanks for contributing to react-virtualized!
Here is a short checklist of additional things to keep in mind before submitting:

Please make sure your pull request description makes it very clear what you're trying to accomplish. If it's a bug fix, please also provide a failing test case (if possible). In either case, please add additional unit test coverage for your changes. :)
Run tests locally (npm test) to ensure that your change did not break linting or functionality.
Be sure you have notifications setup so that you'll see my code review responses. (I may ask you to make some adjustments before merging.)

Not sure how to make test passes. Maybe increase timeout?

Codecov Report

Merging #905 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #905   +/-   ##
=======================================
  Coverage   90.01%   90.01%
=======================================
  Files          57       57
  Lines        1612     1612
=======================================
  Hits         1451     1451
  Misses        161      161

Impacted Files
Coverage Δ

source/AutoSizer/AutoSizer.js
100% <ø> (ø)
:arrow_up:

source/ArrowKeyStepper/ArrowKeyStepper.js
97.67% <ø> (ø)
:arrow_up:

source/List/List.js
75% <ø> (ø)
:arrow_up:

source/CellMeasurer/CellMeasurer.js
94.28% <ø> (ø)
:arrow_up:

source/Grid/Grid.js
96.61% <ø> (ø)
:arrow_up:

source/Grid/types.js
0% <0%> (ø)
:arrow_up:

source/List/types.js
0% <0%> (ø)
: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 e6de092...b9c97d1. Read the comment docs.


Fix web3 dependency on missing eth-pm==0.1.0-alpha.17

Could not find a version that satisfies the requirement eth-pm==0.1.0-alpha.17

Seems eth-pm==0.1.0-alpha.17 is missing. web3 < 4.4.0 does not have an eth-pm dependency.
Same issue as https://github.com/ethereum/web3.py/issues/940

web3 v4.4.1 has just been released! it should fix the eth-pm issue.


Update admin setup to be similar to client's setup

:tada: This PR is included in version 0.29.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Errors due to inverting 0 matrices

Hello  I have several errors while trying to run this code:
INFO - Starting at iteration 0 / 5000000
INFO - Saved checkpoint at iteration 0 / 5000000
INFO:tensorflow:Error reported to Coordinator: <class 'tensorflow.python.framework.errors_impl.InvalidArgumentError'>, Input is not invertible.
[[Node: DTNN_2/preprocessing/distance/MatrixInverse = MatrixInverseT=DT_FLOAT, adjoint=false, _device="/job:localhost/replica:0/task:0/cpu:0"]]
Caused by op 'DTNN_2/preprocessing/distance/MatrixInverse', defined at:
File "train_dtnn_gdb9.py", line 201, in
main(args)
File "train_dtnn_gdb9.py", line 134, in main
summary_interval=1000
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/train.py", line 66, in early_stopping
num_batch_threads=1
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/core.py", line 119, in get_output
features = self._preprocessor(features)
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/models/dtnn.py", line 60, in _preprocessor
positions, cell, pbc, self.cutoff
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/atoms.py", line 8, in interatomic_distances
icell = tf.matrix_inverse(cell)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/ops/gen_linalg_ops.py", line 330, in matrix_inverse
name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2327, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1226, in init
self._traceback = _extract_stack()
InvalidArgumentError (see above for traceback): Input is not invertible.
[[Node: DTNN_2/preprocessing/distance/MatrixInverse = MatrixInverseT=DT_FLOAT, adjoint=false, _device="/job:localhost/replica:0/task:0/cpu:0"]]
INFO - Error reported to Coordinator: <class 'tensorflow.python.framework.errors_impl.InvalidArgumentError'>, Input is not invertible.
[[Node: DTNN_2/preprocessing/distance/MatrixInverse = MatrixInverseT=DT_FLOAT, adjoint=false, _device="/job:localhost/replica:0/task:0/cpu:0"]]
Caused by op 'DTNN_2/preprocessing/distance/MatrixInverse', defined at:
File "train_dtnn_gdb9.py", line 201, in
main(args)
File "train_dtnn_gdb9.py", line 134, in main
summary_interval=1000
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/train.py", line 66, in early_stopping
num_batch_threads=1
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/core.py", line 119, in get_output
features = self._preprocessor(features)
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/models/dtnn.py", line 60, in _preprocessor
positions, cell, pbc, self.cutoff
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/atoms.py", line 8, in interatomic_distances
icell = tf.matrix_inverse(cell)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/ops/gen_linalg_ops.py", line 330, in matrix_inverse
name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2327, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1226, in init
self._traceback = _extract_stack()
InvalidArgumentError (see above for traceback): Input is not invertible.
[[Node: DTNN_2/preprocessing/distance/MatrixInverse = MatrixInverseT=DT_FLOAT, adjoint=false, _device="/job:localhost/replica:0/task:0/cpu:0"]]
W tensorflow/core/kernels/queue_base.cc:302] _0_fifo_queue: Skipping cancelled dequeue attempt with queue not closed
W tensorflow/core/kernels/queue_base.cc:302] _0_fifo_queue: Skipping cancelled dequeue attempt with queue not closed
W tensorflow/core/kernels/queue_base.cc:302] _0_fifo_queue: Skipping cancelled dequeue attempt with queue not closed
W tensorflow/core/kernels/queue_base.cc:302] _0_fifo_queue: Skipping cancelled dequeue attempt with queue not closed
INFO - Saving chkpoint...
Traceback (most recent call last):
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1022, in _do_call
return fn(*args)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1004, in _run_fn
Exception in thread Thread-6:
Traceback (most recent call last):
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/data.py", line 235, in _run
sess.run(self.enqueue_op, feed_dict=fdict)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 767, in run
run_metadata_ptr)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 903, in _run
raise RuntimeError('Attempted to use a closed Session.')
RuntimeError: Attempted to use a closed Session.
status, run_metadata)

File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/contextlib.py", line 66, in exit
next(self.gen)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 466, in raise_exception_on_not_ok_status
Exception in thread Thread-5:
Traceback (most recent call last):
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/data.py", line 235, in _run
sess.run(self.enqueue_op, feed_dict=fdict)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 767, in run
run_metadata_ptr)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 903, in _run
raise RuntimeError('Attempted to use a closed Session.')
RuntimeError: Attempted to use a closed Session.
pywrap_tensorflow.TF_GetCode(status))

tensorflow.python.framework.errors_impl.OutOfRangeError: PaddingFIFOQueue '_3_DTNN_2/batching/batch/padding_fifo_queue' is closed and has insufficient elements (requested 1000, current size 0)
[[Node: DTNN_2/batching/batch = QueueDequeueManyV2[component_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_BOOL, DT_FLOAT, DT_INT32], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](DTNN_2/batching/batch/padding_fifo_queue, DTNN_2/batching/batch/n)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/train.py", line 169, in early_stopping
_, train_sums = sess.run([train_op, train_summaries])
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 767, in run
run_metadata_ptr)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 965, in _run
feed_dict_string, options, run_metadata)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1015, in _do_run
target_list, options, run_metadata)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1035, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.OutOfRangeError: PaddingFIFOQueue '_3_DTNN_2/batching/batch/padding_fifo_queue' is closed and has insufficient elements (requested 1000, current size 0)
[[Node: DTNN_2/batching/batch = QueueDequeueManyV2[component_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_BOOL, DT_FLOAT, DT_INT32], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](DTNN_2/batching/batch/padding_fifo_queue, DTNN_2/batching/batch/n)]]
Caused by op 'DTNN_2/batching/batch', defined at:
File "train_dtnn_gdb9.py", line 201, in
main(args)
File "train_dtnn_gdb9.py", line 134, in main
summary_interval=1000
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/train.py", line 66, in early_stopping
num_batch_threads=1
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/core.py", line 134, in get_output
shapes=out_shapes, num_threads=num_batch_threads
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/training/input.py", line 872, in batch
name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/training/input.py", line 667, in _batch
dequeued = queue.dequeue_many(batch_size, name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/ops/data_flow_ops.py", line 458, in dequeue_many
self._queue_ref, n=n, component_types=self._dtypes, name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/ops/gen_data_flow_ops.py", line 1310, in _queue_dequeue_many_v2
timeout_ms=timeout_ms, name=name)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2327, in create_op
original_op=self._default_original_op, op_def=op_def)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1226, in init
self._traceback = _extract_stack()
OutOfRangeError (see above for traceback): PaddingFIFOQueue '_3_DTNN_2/batching/batch/padding_fifo_queue' is closed and has insufficient elements (requested 1000, current size 0)
[[Node: DTNN_2/batching/batch = QueueDequeueManyV2[component_types=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_BOOL, DT_FLOAT, DT_INT32], timeout_ms=-1, _device="/job:localhost/replica:0/task:0/cpu:0"](DTNN_2/batching/batch/padding_fifo_queue, DTNN_2/batching/batch/n)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "train_dtnn_gdb9.py", line 201, in
main(args)
File "train_dtnn_gdb9.py", line 134, in main
summary_interval=1000
File "/media/cresset/DATA/instructions/31DTNN/dtnn2/dtnn/dtnn/train.py", line 226, in early_stopping
chkpt_saver.save(sess, chkpt, i)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/training/saver.py", line 1363, in save
{self.saver_def.filename_tensor_name: checkpoint_file})
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 767, in run
run_metadata_ptr)
File "/home/cresset/anaconda2/envs/deepchem/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 903, in _run
raise RuntimeError('Attempted to use a closed Session.')
RuntimeError: Attempted to use a closed Session.

Did you run the example script or did you try it with your own data? This looks like your ASE data has a zero matrix as cell. If you use the identity as cell, it should work. Otherwise, I will take a look tomorrow.

I added
cell = cell + tf.diag(tf.constant(np.random.randn(3)*0.001,dtype=tf.float32)).
Then, the code can run in my cpu computer.
But, I don't know how it influence the result.
Thank U.

@Yuanpengli As long as you don't use periodic boundary conditions it should does not matter.
I guess ASE changed the default value of the cell in case of no PBC. I will add a check for that case.


Teleporting bug.

Players are instantly teleporting back where they were before.￼

Whenever this happens it says that player moved too quickly!￼

Pleas help. The same thing happened yesterday and u told me to get 4.2.2 but it still happens.

Stuck in the end is a different issue I believe. Please see the suggestion here, and let us know if that fixes it.

They are stuck in the end because it won't let them tp

The same thing happens with the nether and the overworld￼

Please provide the link given by /mvv -p.

Https://j.mp/39ce8AN

You may need to review your MV Inventories groups and make sure they are set up correctly.

I will send you a picture of my groups￼

I think it has something to do with the player moved too quickly!￼

No need, they are included with the link you sent above.

Because it says that every time it doesn't let people teleport￼

No need, they are included with the link you sent above.

Oh then do you know what is wrong with my groups?￼

Well, for one, your sykblock group isn't sharing anything, so it's kind of pointless. And two, you have one world in the default group sharing last_location, and I'm not sure what the use for that is.

It is so when people use /survival they spawn where they last where and not at the world spawn.

Well, for one, your sykblock group isn't sharing anything, so it's kind of pointless. And two, you have one world in the default group sharing last_location, and I'm not sure what the use for that is.

Is there anything that might be causing the glitch?

Not from what I can tell. It may be another plugin.

https://www.instagram.com/p/CMx_5s3hDEg/?igshid=1laue9x7hrvlf
Link to a photo of my plugins

Whenever the glitch happens it either says player left loaded chunk area or it says player moved to quickly!

I looked it up and apparently it's built into buckkit. It's probably not used to people teleporting from world to world that quickly. But I don't know how to disable it￼￼￼.

Do you see any plugins that could cause this?

?

[Server thread/WARN]: Entity EntityPlayer['NotBlui_'/2886, l='ServerLevel[world]', x=-2793.53, y=31.00, z=10381.33](NotBlui_ at -2793.5294116826644,31.0,10381.33203125) left loaded chunk area
[20:58:01] [Server thread/WARN]: Entity EntityPlayer['NotBlui_'/2886, l='ServerLevel[world]', x=-2793.53, y=31.00, z=10381.33](NotBlui_ at -2793.5294116826644,31.0,10381.33203125) left loaded chunk area
[20:58:17] [Server thread/WARN]: Entity EntityPlayer['NotBlui_'/2886, l='ServerLevel[world]', x=-2793.54, y=31.00, z=10381.34](NotBlui_ at -2793.542981822326,31.0,10381.335383278376) left loaded chunk area
it either says this or it says that they moved too quickly. The server thinks they are speed hacking so when they tp it works for a sec then tps them back. please tell me how to fix.

Move too quick issue is usually always due to poor network connection may cause these message to pop out at times, or someone is actually hacking. I tested and cant reproduce the issue. I suggest trying first with only mv-core and mv-inv installed.

Move too quick issue is usually always due to poor network connection may cause these message to pop out at times, or someone is actually hacking. I tested and cant reproduce the issue. I suggest trying first with only mv-core and mv-inv installed.

Could tcp shield cause the slow connection? I have gigabit internet and I am hard wired. I allocated 16gb of ram to my server and I have a ryzen 7 2700x.

Move too quick issue is usually always due to poor network connection may cause these message to pop out at times, or someone is actually hacking. I tested and cant reproduce the issue. I suggest trying first with only mv-core and mv-inv installed.

Is there a way to disable moved too quickly for players who have recently typed /tpa?

Move too quick issue is usually always due to poor network connection may cause these message to pop out at times, or someone is actually hacking. I tested and cant reproduce the issue. I suggest trying first with only mv-core and mv-inv installed.

Is there a way to disable moved too quickly for players who have recently typed /tpa?

/tpa is not even something mv is responsible of. I still don't see that this is caused by mv, I suggest you do testing with only mv plugins installed and/or without to test the difference and debug the issue. Give us more finding and logs from your testing to work on. Currently I only understand that having this "moved too quickly" which comes from: 1. poor server performance, 2. poor network (either client or server), 3. someone or plugin is 'hacking' player movement.
All the limited info you have shown so far doesn't point to mv causing this "moved too quickly" warning.

Ok

The reason I said TPA is because it only happens when you are trying to TPA to someone in a separate world. I was just asking if there was a way to configure spigot so that when a player teleports between worlds ￼it does not think they are moving too quick.￼￼￼￼￼

I host my server on my own computer. Do you think switching to a server host will improve my connection and maybe fix the error? ￼￼￼￼

Hello?

So assume its fixed?

On Tue, Mar 23, 2021 at 10:38 PM Ben Woo @.***> wrote:

So assume its fixed?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2604#issuecomment-805438087,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLQW3R4Q5UDWJGKBSJRGFTTFFGCBANCNFSM4ZWES2SA
.

No it’s not fixed but I will try to fix it. Do you think the error could be
because of the player’s internet connection?

It's possible, but you have not provided the info I asked for relating to testing with only mv installed, and testing with only your /tpa plugin installed, I so there is nothing more I can offer without any additional testing results to work on.

On Tue, Mar 23, 2021 at 10:42 PM Ben Woo @.***> wrote:

It's possible, but you have not provided the info I asked for relating to
testing with only mv installed, and testing with only your /tpa plugin
installed, I so there is nothing more I can offer without any additional
testing results to work on.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2604#issuecomment-805439607,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLQW3WTKHI3RGAGFVEEDE3TFFGQRANCNFSM4ZWES2SA
.

Sorry. I will do that rn

On Tue, Mar 23, 2021 at 10:42 PM George Luca @.***>
wrote:

On Tue, Mar 23, 2021 at 10:42 PM Ben Woo @.***> wrote:

It's possible, but you have not provided the info I asked for relating to
testing with only mv installed, and testing with only your /tpa plugin
installed, I so there is nothing more I can offer without any additional
testing results to work on.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2604#issuecomment-805439607,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLQW3WTKHI3RGAGFVEEDE3TFFGQRANCNFSM4ZWES2SA
.

Sorry. I will do that rn

How do I do it though? Who will I use to test it.

who? you test it of course it's your server! If it's some other players on your server that face that issue, then ask them to come online to help you with testing the issue.

 If it's some other players on
your server that face that issue, then ask them to come online to help you
with testing the issue.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2604#issuecomment-805443066,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATLQW3WMTX5VESVXOS2HOPDTFFHMXANCNFSM4ZWES2SA
.

I only have 2 players and they are offline Rn. I just started my server
like a week ago. I don’t have a big player base yet.


finish up router

see https://github.com/Alamofire/Alamofire#crud--authorization

and: https://gist.github.com/higepon/71f18472f6d4cba77870


type fixes concerning IMA

This PR provides a batch of type fixes that are:

almost trivial from the perspective of code behavior
concerning IMA

In my local testing setup, I have one test failing that I am investigating with @maugustosilva. This PR should be considered temporary until I am done debugging.

Codecov Report

Merging #1180 (47f995a) into master (5c93757) will increase coverage by 0.01%.
The diff coverage is 80.00%.

Additional details and impacted files

Flag
Coverage Δ

packit-e2e
71.32% <66.66%> (-0.04%)
:arrow_down:

testsuite
54.55% <43.33%> (-0.02%)
:arrow_down:

unittests
14.44% <20.00%> (+0.03%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

keylime/common/cli_opts.py
0.00% <0.00%> (ø)

keylime/ima/ima.py
71.34% <20.00%> (-0.69%)
:arrow_down:

keylime/cli/policies.py
91.17% <100.00%> (ø)

keylime/cloud_verifier_tornado.py
67.09% <100.00%> (+0.03%)
:arrow_up:

keylime/ima/ast.py
78.16% <100.00%> (+0.58%)
:arrow_up:

keylime/ima/file_signatures.py
72.92% <100.00%> (+0.09%)
:arrow_up:

keylime/ima/ima_dm.py
92.85% <100.00%> (+0.01%)
:arrow_up:

keylime/ima/ima_test.py
96.42% <100.00%> (+0.59%)
:arrow_up:

Thanks @stefanberger for reviewing this. I like your suggestion of splitting into single-purpose commits, I will apply that once I am done investigating the CI failure.

Please rebase, squash the commits and LGTM

thanks @maugustosilva, actually I just un-squashed into unitary commits, as @stefanberger requested for the sake of simplifying the review process.

Maybe the changes in this series already resolve all issues in specific files and you could remove them from the above list in that file. The goal would be to remove issue in one file after another while not allowing new issues to come into the repo.

@stefanberger about your latest comment, I did not get which file you suggest adding to that list: ast.py or/and something else?

@stefanberger about your latest comment, I did not get which file you suggest adding to that list: ast.py or/and something else?

I had only tried the script with the current master repository. What should happen is that we remove files from the filter-list so that over time more and more files will be checked with pyright. So maybe your PR already has one file completely fixed for pyright and you could remove it from above list, that's what I meant.

I see. I can do that, but I don't understand why we need another mechanism to include/exclude files from pyright's radius, as that is already specified in pyproject.toml, which is fully honored by pyright.

I see. I can do that, but I don't understand why we need another mechanism to include/exclude files from pyright's radius, as that is already specified in pyproject.toml, which is fully honored by pyright.

I see, then forget about this script. pyright on the command line today throws all these errors with these filters from pyproject.toml applied.
A good thing would be to enable pyright for PRs as well but then you would have to crank up that pyproject.toml file filter for now to only cover those files that are completely fixed and PRs don't bring in any new issues in files that are already clean...  while work would be going on to reduce the file filter

/packit retest-failed

This "full pyright enablement", with an additional script (if needed) should happen on a separate PR, IMO

I agree with @maugustosilva for a number of reasons, including that after recent updates to master (which I rebased this PR on) I see pyright raising several new type issues, that are obviously out of the scope of this IMA-centric PR.

/packit retest-failed

I think this PR is ready to be merged. As soon as one qualified review is there, I will rebase and squash.

/packit retest-failed

rebased and squashed, ready to go!

rebased and squashed, ready to go!

let's go!  ;-)

As soon as tests finish, I will merge

I have python 3.9.14 locally and I would not be able to remove ima_dm.py from the filtered-out list:
$ pyright
No configuration file found.
pyproject.toml file found at /home/stefanb/keylime.
Loading pyproject.toml file at /home/stefanb/keylime/pyproject.toml
Assuming Python version 3.9
Assuming Python platform Linux
Auto-excluding **/node_modules
Auto-excluding **/__pycache__
Auto-excluding **/.*
stubPath /home/stefanb/keylime/typings is not a valid directory.
Searching for source files
Found 111 source files
pyright 1.1.280
/home/stefanb/keylime/keylime/ima/ima_dm.py
  /home/stefanb/keylime/keylime/ima/ima_dm.py:100:56 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "LoadEvent" in function "validate_table_load"
    Type "ParseTree | Unknown" cannot be assigned to type "LoadEvent"
      "ParseTree" is incompatible with "LoadEvent" (reportGeneralTypeIssues)
  /home/stefanb/keylime/keylime/ima/ima_dm.py:102:59 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "ResumeEvent" in function "validate_device_resume"
    Type "ParseTree | Unknown" cannot be assigned to type "ResumeEvent"
      "ParseTree" is incompatible with "ResumeEvent" (reportGeneralTypeIssues)
  /home/stefanb/keylime/keylime/ima/ima_dm.py:104:59 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "RemoveEvent" in function "validate_device_remove"
    Type "ParseTree | Unknown" cannot be assigned to type "RemoveEvent"
      "ParseTree" is incompatible with "RemoveEvent" (reportGeneralTypeIssues)
  /home/stefanb/keylime/keylime/ima/ima_dm.py:106:59 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "RenameEvent" in function "validate_device_rename"
    Type "ParseTree | Unknown" cannot be assigned to type "RenameEvent"
      "ParseTree" is incompatible with "RenameEvent" (reportGeneralTypeIssues)
  /home/stefanb/keylime/keylime/ima/ima_dm.py:108:57 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "ClearEvent" in function "validate_table_clear"
    Type "ParseTree | Unknown" cannot be assigned to type "ClearEvent"
      "ParseTree" is incompatible with "ClearEvent" (reportGeneralTypeIssues)
  /home/stefanb/keylime/keylime/ima/ima_dm.py:110:59 - error: Argument of type "ParseTree | Unknown" cannot be assigned to parameter "event" of type "UpdateEvent" in function "validate_target_update"
    Type "ParseTree | Unknown" cannot be assigned to type "UpdateEvent"
      "ParseTree" is incompatible with "UpdateEvent" (reportGeneralTypeIssues)
6 errors, 0 warnings, 0 informations
Completed in 5.392sec

@mpeters "PR code coverage" keeps failing in way that clearly shows a infrastructure problem. Do you have a guideline on what should be done on this case (which does include "merge if this is the only testing failing")?

@stefanberger weird that I do not see that issue with Python 3.10:
$ pyright
WARNING: there is a new pyright version available (v1.1.279 -> v1.1.280).
Please install the new version or set PYRIGHT_PYTHON_FORCE_VERSION to `latest`

No configuration file found.
pyproject.toml file found at /storage_sda/mdrocco/git/keylime.
Loading pyproject.toml file at /storage_sda/mdrocco/git/keylime/pyproject.toml
Assuming Python version 3.10
Assuming Python platform Linux
Auto-excluding **/node_modules
Auto-excluding **/__pycache__
Auto-excluding **/.*
stubPath /storage_sda/mdrocco/git/keylime/typings is not a valid directory.
Searching for source files
Found 111 source files
pyright 1.1.279
0 errors, 0 warnings, 0 informations
Completed in 9.083sec

@stefanberger weird that I do not see that issue with Python 3.10:

the test server runs Python 3.6.15and doesn't see it either. Phew.

@mpeters "PR code coverage" keeps failing in way that clearly shows a infrastructure problem. Do you have a guideline on what should be done on this case (which does include "merge if this is the only testing failing")?

In the past we merged it if the test was failing because the code coverage is more a nice to have thing.
@mpeters can you approve this, so that it can be merged?

In the past we merged it if the test was failing because the code coverage is more a nice to have thing.

Agreed. Code coverage shouldn't block merges. I wish there was a way to have it kick off during PRs but not block merges, but last time I checked there wasn't.


Add Method Name Checker

What:

[ ] Bug Fix
[X] New Feature

Description:
With this pull request, I aimed to add a new checker for method names.
However, I just saw #17, which does something similar (in a different way).
The main difference is the way we check for the strings.
This PR uses regex and preg_match_all, while the other PR uses PHP tokenization.
I also tried the approach of using tokenization, but ran into problems with anonymous functions.
Thats why I decided to stick to regex, which seems easier.
Furthermore, I tried to make the method name extraction a bit more robust to support different naming conventions.
Related:
Very similar Feature (with different approach): #17

I think #19 using reflection might be the way to go

Please check my comment on https://github.com/peckphp/peck/pull/19#issuecomment-2564317494 for my feedback.
All three solutions have there benefits and problems. Its the question which route we want to go.


feat: Edit previous search feature

https://user-images.githubusercontent.com/246838/172024870-1514ebb6-13ca-4713-a20d-35bee096c670.mp4
Will fix #2145

Codecov Report

Merging #2159 (702d5e9) into develop (2ea0da3) will decrease coverage by 0.96%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           develop   #2159      +/-   ##
==========================================
- Coverage     8.86%   7.89%   -0.97%
==========================================
  Files          161     177      +16
  Lines         6623    8653    +2030
==========================================
+ Hits           587     683      +96
- Misses        6036    7970    +1934

Impacted Files
Coverage Δ

...kages/smooth_app/lib/widgets/attribute_button.dart
0.00% <0.00%> (-92.00%)
:arrow_down:

packages/smooth_app/lib/themes/smooth_theme.dart
53.48% <0.00%> (-29.50%)
:arrow_down:

...s/smooth_app/lib/data_models/user_preferences.dart
11.11% <0.00%> (-21.20%)
:arrow_down:

...p/lib/generic_lib/dialogs/smooth_alert_dialog.dart
19.23% <0.00%> (-14.98%)
:arrow_down:

...mooth_app/lib/data_models/product_preferences.dart
26.47% <0.00%> (-4.96%)
:arrow_down:

.../smooth_app/lib/pages/onboarding/welcome_page.dart
0.00% <0.00%> (-3.13%)
:arrow_down:

.../smooth_app/lib/pages/onboarding/scan_example.dart
0.00% <0.00%> (-2.28%)
:arrow_down:

packages/smooth_app/lib/main.dart
15.74% <0.00%> (-2.16%)
:arrow_down:

...s/smooth_app/lib/pages/onboarding/next_button.dart
2.22% <0.00%> (-1.78%)
:arrow_down:

...p/lib/pages/onboarding/consent_analytics_page.dart
0.00% <0.00%> (-1.57%)
:arrow_down:

... and 162 more

Continue to review full report at Codecov.

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


Linking in android studio requires RNIapExample?

Version of react-native-iap 2.3.12
Platforms you faced the error (IOS or Android or both?) Android
Actual behavior
Doing gradle syncing and I got this error: The specified project directory '/node_modules/react-native-iap/RNIapExample/android' does not exist.
I did all the manual project link

I think you can remove some kind of dependency like that. The example doesn't exist in npm. I don't quite get how you achieve that. You could be more detail from me to reach your problem.

Is changing from “compile” to “implementation” the cause of this? That was the only change I made when linking the module.

@jarvisluong No that isn't a problem. Can you delete react-native-iap.iml file in side our module and try that?

@dooboolab yes it solved the problem, but I need to delete both react-native-iap.iml and android.iml inside the module too


Wifi security & use: Encryption of Wifi password? Using WiFiManager lib?

Hi Magnus!
Which kind of Wifi protection do you use in your code? I refer to this:
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/wifi-security.html
Besides, would you like considering encryption of the Wifi password before storing it on the ESP32? Currently, it is stored in plain text and is readable. Does this maybe help? https://forum.arduino.cc/t/esp32-secure-wifi-credentials/892762/4
Besides some code for it, you will also find a note that

The problem was solved:
calling
WiFi.persistent(false);
before calling
WiFi.begin();

As I don't have knowledge of coding with Python or MicroPython, I don't know if this is really helpful, but maybe (if this is of interest for you), it gives you some inspiration.
Maybe flash encryption is helpful, too: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/security/flash-encryption.html#

Make sure that you enable secure boot or write-protect encryption efuses so that the encryption configuration itself is secure (otherwise an attacker could flash a new firmware and simply dump the decrypted partition).
https://www.reddit.com/r/esp32/comments/nc2yio/most_secure_password_storage_strategy_for_esp32/

Alternatively to hard-coding the SSID & Wifi password in the code, you could consider using the WifiManager lib:
https://randomnerdtutorials.com/esp32-useful-wi-fi-functions-arduino/
https://www.youtube.com/watch?v=VnfX9YJbaU8
Or this project: https://github.com/tzapu/WiFiManager
Please accept my apologies if this is way out of scope. 😊

This is an interesting problem. I used to have all my ESP modules equipped with the tzapu WifiManager. Here, if I remember correctly, the credentials are stored in the chip - but I don't think they are encrypted either. With my solution, no credentials are flashed, but they are stored in readable form on the chip. That is a security gap - I agree with you.
I have now looked through all the "WifiManager for uPython" projects and tried them. But it's all very disappointing. I'll have to see how I can best solve this. But thanks in any case for the hint. I'll leave the issue open for now.

For your info, I finalized yesterday the crypto-logic. But it isn't in the repro up to now

I'm not sure that I have seen this repo in my research for Wi-Fi manager. But there is another approach also interesting - to use the mqtt server also for file-handling and it's.

So I'll test it and then we can discuss the best way

I have just published the corresponding routines in crypt_keys, which will be used in the next version of inetbox2mqtt and which will only allow the credentials to remain encrypted on the chip. With that, I think the issue can be closed.


Support HSTS and turn on by default

https web servers should support RFC 6797 "HTTP Strict Transport Security (HSTS)".
This should probably be on by default, and also default to a sensible time period (e.g. 2 years).  A command-line switch could optionally disable HSTS (e.g. --hsts-seconds=0).
https://www.globalsign.com/en/blog/what-is-hsts-and-how-do-i-use-it

Yeah, that's good idea since this normally tends to happen at proxy level.

Feature request released on v2.0.0-beta.5

I'll check it out, thanks!


[BUG] ADX Cluster principal fails to assign role.

Library name and version
Pulumi Azure Native
Describe the bug
Whenever I do a kusto role assignment to an azure container app's identity, I randomly get this error
error: resource partially created but read failed autorest/azure: Service returned an error. Status=404 Code="ResourceNotFound" Message="The resource with identifier '/subscriptions//resourceGroups//providers/Microsoft.Kusto/Clusters///Databases///PrincipalAssignments/dedb-app-admin--role' is not found.": Code="ResourceNotFound" Message="[NotFound] Failed to run add principal assignment action for service Engine-***. AAD principal was not found."
Then after waiting a few minutes when I re-run my script it'll be able to assign it properly
What's weird is if I do a regular rbac assignment to any other azure resources (keyvault, cognitive search) the assignment on the same run as the first (when I get the error from kusto) it assigns it successfuly.
I suspect that it could be a race condition but doesn't explain how a regular rbac assignment work but not a kusto role assignment.
Log from azure
{
"authorization": {
"action": "Microsoft.Kusto/clusters/databases/principalAssignments/write",
"scope": "/subscriptions//resourceGroups//providers/Microsoft.Kusto/clusters//databases//principalAssignments/"
},
"caller": "aa21adab-abbe-4e3b-9589-0b74d8880676",
"channels": "Operation",
"claims": {
"aud": "https://management.azure.com",
"iss": "https://sts.windows.net//",
"iat": "1699471603",
"nbf": "1699471603",
"exp": "1699475503",
"aio": "E2VgYNh6VOL7lMLICvffn2dKegXoAgA=",
"appid": "66758847-bffc-4ded-941f-14c688be7cc0",
"appidacr": "1",
"groups": "9efcdbbe-4c3e-4399-a6e1-c0405bc6a4fd,e39c6101-7c7b-4648-810d-e01d718da736,5cea7e0f-6be8-49c7-9ff2-18fe5545ce79,0d476f11-333f-4119-a352-0cd1ae5106d5,bea9fd13-526c-41ea-b150-b062d3d999d1,a00d3217-8b7b-4f02-a2d1-825712ccd870,9192801a-5fc8-44b5-b849-5061e983cbfd,0c51d71b-1d2b-4b17-96d1-055bb11434c4,88890d20-9aa7-4808-a810-2dc784ea83cf,48213020-aa71-4566-880e-203082bf53b7,b76fad27-2124-4d42-8251-80d2351ccfbd,67e4e728-1e2f-4966-ab79-6d8e79d06b70,b4b6162d-d142-40d1-bc87-f10a0d7e1e65,32a45e36-ccb8-4ade-97b3-2dd17bde701f,0ef15f40-e134-4438-8841-dcd8ed265234,12289f40-8e13-447b-98dc-3fca5b703a02,1976bc41-bef6-48a2-b6f1-5dc43dd5cbf1,36e9e541-09cc-41a8-bed6-3841ed1e6373,c9a39a44-850a-487c-9ba0-0c6baf9c65f0,b5d10a46-4acc-4a21-9cd5-ed873ca23dc8,3005ee47-7c03-4303-b350-5ecef7cc5c14,224df24e-8ca6-4dc3-bf4e-2b4d1d3f46e5,235d8b4f-86b7-435e-9763-4cf2d69771b5,d01bf756-fc7f-445c-8a4b-0b3699f82da0,c3f21058-334a-4c90-bb7b-7f4b413b3065,598ea05b-6c38-4353-b3a0-e87c37b880e6,ad07ec60-61ad-4cd8-912a-396df2b695c1,c9b8ac63-f8d2-40f4-883e-eedd9527bb2d,6bf63164-8534-49f6-b161-77f39fbf3bc0,c3087467-dcbf-414a-873b-d14782029a55,c08c426d-3f47-4efb-a8d0-31bad2cd3a63,0c8f2477-beb6-443c-86f7-b42835b1ac3f,362ced77-742f-4518-af01-b4796c1474ae,49006c7b-bf2a-4b62-96d3-ea67a7189acb,ad4ab87c-3c99-4d3b-98ea-0cd122319995,8365647d-0218-485d-b4f4-9b0907173558,a950c87d-81f3-44a4-91ce-e4b27e97805d,e639867e-26cf-402c-9810-7e882dcd6b16,22e27180-f484-49e6-8213-069e94d72d90,7a6c7182-846c-4b41-a461-a38dae1deeaf,eab5ea83-b405-4f7e-abcc-b52756cd37fd,edf23284-cbfb-4ca5-bf83-7c3beaa29c2c,88b3fe8d-9773-4f84-ae98-7afb8d9e861a,dddc008e-471a-491a-85ca-09903eadc94a,d992dc93-673c-4df2-a4f7-a3270e71db52,664c8296-805c-41de-acb3-b18aa16fb5c7,8d206599-4f35-4ca1-836e-bd8cb987e421,09f09d99-b1a1-4bff-a1c7-93df1bc09261,79bf849c-11db-45dd-9b2b-eb6bdc1120bb,027abfa0-cad3-45a2-8c6f-74e060d9bb38,ea2f00a5-2c21-47d9-9eef-f96f2f049401,71dd90ab-66f0-44f4-83ba-7d50ef567d37,cea409b4-a536-48d0-a026-f5eb1f5652e2,6f4d1db4-9b7f-49ad-bc31-7b8a8b9d7da5,1def3bb4-1bd5-4204-9ca8-0587a2b41ecb,adb6fab4-b351-4473-9363-2734868bfa47,4f2a18bb-d554-4f1e-8f1b-96b7010f4fcf,969b96bf-a5a3-4ca9-a8f4-b1d52a216ed2,218fa9bf-be5b-461a-87d2-5d10cecb3091,9b71a6c4-4796-4fa6-8b08-ba8bcc73e729,bbbe8bc5-7741-41db-8fc9-3b65ddab4265,cdda26c6-6648-4470-bb5e-473bd04d30ef,7edff7c7-88dd-4e55-a1f9-ca94266411cb,a90e6ec9-5cd0-45c7-966d-b2ef3580cf3c,0e9b72c9-4edb-4c7b-b4d3-395457a69be1,895a66cc-b18d-45c8-839c-ff4cd8e72bf2,b2aa77cc-713b-4ca3-a583-27c6abe46b9f,8a75ddce-8d15-4e21-be74-63b66b55d2dc,56c5cdd8-ddce-41e3-8a39-d6891421804b,ab1805e3-a9a2-436d-b5a6-12fbbb0baff8,da436ae6-f20a-4a7a-b33a-05a99e82806e,079852e8-9e9d-4d67-85ec-5a9896ee25fc,74a1c2e8-325e-481c-93dd-88bb61bee97b,66a9eaec-a847-4362-a697-bbc2a8679232,1526dbf2-06da-48ee-ab6c-359d310730cd,84af1ef3-1434-4196-b3d2-bdf381767e91,213c8bf3-3b72-49e3-a2cf-832f4e0206f3,e1d128f4-353f-495e-a5ff-2144570141cb,5dc56af5-0278-4499-98c0-9ef4bb668c89,eca158f6-6548-49c2-937d-e176f8dc94f7,99f21cfa-478e-44b6-8d7a-178233d3b832,fc6aeffa-18fc-44fc-8bc2-93e1a26aef21",
"http://schemas.microsoft.com/identity/claims/identityprovider": "https://sts.windows.net//",
"idtyp": "app",
"http://schemas.microsoft.com/identity/claims/objectidentifier": "aa21adab-abbe-4e3b-9589-0b74d8880676",
"rh": "0.AWYA0WYx1KHCJk-iE_Yg26E6uEZIf3kAutdPukPawfj2MBNmAAA.",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "aa21adab-abbe-4e3b-9589-0b74d8880676",
"http://schemas.microsoft.com/identity/claims/tenantid": "",
"uti": "6mmN-FZgMU64uOFswPKDAA",
"ver": "1.0",
"xms_cae": "1",
"xms_tcdt": "1422596418"
},
"correlationId": "2d531a63-a1d1-4160-9daa-d38cba1266f9",
"description": "",
"eventDataId": "10fad8b6-5fe5-4bf3-a6cb-fa28e3c1b12e",
"eventName": {
"value": "EndRequest",
"localizedValue": "End request"
},
"category": {
"value": "Administrative",
"localizedValue": "Administrative"
},
"eventTimestamp": "2023-11-08T19:32:00.5888299Z",
"id": "/subscriptions//resourceGroups//providers/Microsoft.Kusto/clusters//databases//principalAssignments//events/10fad8b6-5fe5-4bf3-a6cb-fa28e3c1b12e/ticks/638350687205888299",
"level": "Error",
"operationId": "cac0a43c-8f7c-4266-b871-bdbb2cd3b904",
"operationName": {
"value": "Microsoft.Kusto/clusters/databases/principalAssignments/write",
"localizedValue": "Write a database principal assignments resource"
},
"resourceGroupName": "",
"resourceProviderName": {
"value": "Microsoft.Kusto",
"localizedValue": "Microsoft.Kusto"
},
"resourceType": {
"value": "Microsoft.Kusto/clusters/databases/principalAssignments",
"localizedValue": "Microsoft.Kusto/clusters/databases/principalAssignments"
},
"resourceId": "/subscriptions//resourceGroups//providers/Microsoft.Kusto/clusters//databases//principalAssignments/",
"status": {
"value": "Failed",
"localizedValue": "Failed"
},
"subStatus": {
"value": "",
"localizedValue": ""
},
"submissionTimestamp": "2023-11-08T19:36:59Z",
"subscriptionId": "",
"tenantId": "",
"properties": {
"statusMessage": "{"status":"Failed","error":{"code":"ResourceOperationFailure","message":"The resource operation completed with terminal provisioning state 'Failed'.","details":[{"code":"ResourceNotFound","message":"[NotFound] Failed to run add principal assignment action for service Engine-. AAD principal was not found."}]}}",
"eventCategory": "Administrative",
"entity": "/subscriptions//resourceGroups//providers/Microsoft.Kusto/clusters//databases//principalAssignments/",
"message": "Microsoft.Kusto/clusters/databases/principalAssignments/write",
"hierarchy": "//"
},
"relatedEvents": []
}
I saw this post which is very similar to what I'm experiencing
https://github.com/Azure/azure-sdk-for-net/issues/16416
Expected behavior
Kusto role assignment should behave exactly like rbac role assigment.
Actual behavior
Kusto role assignment is returning 404 on identity that exists since it was able to assign rbac assignment.
Reproduction Steps
Create container app and assign kusto role assignment right after.
Environment
No response

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hi @songwillow , thank you for reaching out to us about the Azure SDK for .NET. Unfortunately, this issue is related to the service side and not the SDK side, so we are not able to help you with it. Therefore, we are closing this issue for now. If you need more assistance, please open an Azure support request. We apologize for any inconvenience this may cause you.
We value your feedback and we want to make sure that your problem is solved. If you think that we have misunderstood your issue or closed it incorrectly, please feel free to comment on this thread and reopen the issue. We will be happy to assist you further. Thank you for your understanding and cooperation.


Eslint - disable rule max-classes-per-file

Relates to #8731
This rule does not align well with existing code where we often declare/initialise multiple classes in a single file. It makes sense for a React only (class components) code base but not globally in Wagtail as we are currently writing JS.

Pre-requisite for https://github.com/wagtail/wagtail/pull/9337

Now reflected in https://github.com/wagtail/eslint-config-wagtail.

Thanks @thibaudcolas  - agreed about file length - but I wont make an Eslint rule as yet for that :)


About & TOC After Cover

It would be a nice if you could add An About Section & Table Of Contents that will be there after cover Image in the EPUB file.
In the end of the book, there could be a credit section where the Author & translator names can be added with source of DDL of the EPUB file.
Also characters Like "&" get missed out of name when Downloading Novels like Tales of Demons & Gods

The cover and table of contents page is already implemented and will be in the new release which should be done tomorrow/next few days.
The invalid character naming is also fixed. (Thanks for pointing it out, I forgot about it!)
I'm not too sure about adding an "About" segment, at least having it done automatically. There are many sites which do not have a clean and easy to scrap novel descriptions which would make this really messy.
On the other hand I don't quite see the point of having a credit page, with a link to the novel site on top. At least not for my own personal copy.
I try to set the author and translator both as the epub "author" through.

Okay.. Having only TOC is also good. Also, You can look more into re structuring the ebook along with additional options Option that would help the user customize the EPUBS like  tag should be included or not and ETC.
Anyways, Thanks for such a great piece of software!

I hope I understood you correctly with the HR tag thing you mentioned. Novel tags like "Action, Adventure, Sci-Fi" etc. from Wuxiaworld/RoyalRoad (and other sites which list them) are now added to EPUBs.

IN the file called Toc.ncx in the EPUB, If possible dd the location of coverPages.html too.
And by HR i meant the hr tag on the last of each chapter that is being placed.

I can add the coverPage to the toc.ncx, that's no problem. But I probably will remove the Table of Contents page from the .ncx since its right after the cover. It's a bit cleaner that way.
You want the option to have a   at the end of each chapter?

Its already there. I want the option to remove it. That's all.

Now I'm confused. There is no hr tag/line at the end of the chapters, at least none which I added.

Oh. Thanks for the help!
I though it was built in function but it doesn't seems so.
In future, do you have any plans to add Webnovel.com support natively?

No. The ToC page is loaded dynamically after a user clicks on the table of contents tab, its "invisible" to my HTML parser. Furthermore alot of the chapters are behind a paypall.

Yeah. It's same for me. But you can check there are many scripts on Github that are able to Download from Webnovel.com. Try to look into them and see if you can implement them!

Also, is it possible to add a native support for MTL websites? Babelnovel.com can be implemented easily but other like comradeo/lnmtl and others have Chinese Words in the same page too(When using Reader Mode).

I don't know how I feel about bypassing a paywall and If I want to implement that. So webnovel.com is a no for now. Babelnovel is not a static website aswell (or as far as I saw). Maybe you can elaborate how I might be able to add the site easily without having to implement a full support for dynamic websites? I might take a look at that in the future through.
Im not familiar with the term "MTL". Are you talking about Modern Taiwanese Language? I think it would be best if you open a new issue labeled "supported website request" or something like that where you specify which websites you have in mind and I'll see what I can do. Generally, I only add native support for websites which have more than 10 active novels on them, manual grabbing was intended for everything else.

I'm not asking to Scrape premium novels. Free novels do exists on Webnovel which can be scraped.
Also MTL refers to Machine Translated Novels. Eg. https://lnmtl.com/ & https://comrademao.com/.
IDK what are dynamic websits, but if you see that babelnovel has an easy URL of chapters. Like babelnovel.com/novel-name/chapter-xxx/ So if users can define Chapters AND INFORMATION CAN BE SCRAPED FROM THE BABELNOVEL'S WEBSITE!

I did notice the URL of babel and thought of implementing a third manual grabbing method which works directly with URLs. However, it is still not possible at the moment without big adjustments (Like I said, maybe in the future), because each chapter on Babel is loaded dynamically as well, meaning, the chapter content is fetched after the page loaded with a script. Static websites, like for e.g Wuxiaworld, have their chapters fully "inserted" in HTML on the very first page load and I'm able to easily work with that. So until I implement a miniature browser/AJAX scrapper or whatever I really need, dynamic sites wont be possible.
lnmtl.com and comrademao.com will not work "automatically" both will have to use the manual "chapter-to-chapter" method. I'll think of implementing a hybrid of automatic and manual for sites likes these where you have to input the novel URL first/starting chapter URL and last/stopping chapter URL.

Okay! Thanks a lot!

You can download from Webnovel.com now (non vip chapters)

The Cover images that is downloaded from Webnovel is of very low quality.
Suppose if the book is: https://www.webnovel.com/book/8094015805004305/Tales-of-Demons-and-Gods then the cover image that is downloaded is: https://img.webnovel.com/bookcover/8094015805004305/150/150.jpg but the cover like https://img.webnovel.com/bookcover/8094015805004305/600/600.jpg and https://img.webnovel.com/bookcover/8094015805004305/300/300.jpg exists.

Some more stuff: There are actually 2 Same Photos(The Book Cover) with different name which are cover.jpg and 150.jpg(the name  of the cover image downloaded as it is) in the EPUB.
The Chapter name is also not there at the start of Each Chapter (Possibly Webnovel Specific) and there is no Numbering of Chapters in TOC too.

Thanks for your report! I'm sorry for the late response (I forgot to make a new release after fixing everything). Check out the latest version. Everything should work correctly now (except the encoding issue, I'm still working on it and just put a crude hotfix in)

Thanks for the update. The issue chapter title missing at start of each chapter is still there in WebNovel Downloads. Also,the cover can be downloaded of higher size (600.jpg) from webnovel

I've updated the 2.1.4 jar.


Terraform state files should be persist outside of the life-cycle of the container.

Add docker volume to persist Terraform state files so it won't be lost if the container is restarted or redeployed.

Verified
Now files in /root/.config/jumpscale/ and /root/sandbox/cfg/.tf_states/ will be persists in named volumes.


Add chrono as an optional crate to replace time and msdos_time

The time crate is no longer actively maintained.  It lists chrono as an alternative, and looking at the 'Recent' statistics on crates.io chrono, seems to be about as popular as time.  For all the chrono users out there it would be nice, not to have to convert between time's structs and chrono's structs whenever working with zip files.
The disadvantage of the PR is that it makes the code base quite a bit more complex with a lot of #[cfg] attributes.  I am especially unhappy with the added nested code blocks in read.rs required to guard multiple code lines with a single #[cfg] attribute, but I could not find a better solution.  The cfg! macro does not help, because both code paths must be valid with any set of feature flags.  This does not work out, because the one branch needs chrono types (which are only available with the 'chrono' feature flag) and the other ones requires time types (which are only available if the 'chrono' feature flag has not been set).
Finally I pulled in the #[cfg] attribute for write::FileOptions::default, so that we don't need to define the whole function twice.  Technically this does not directly have anything to do with the chrono addition, but made my life a bit easier since I didn't have to add the guarded definitions of last_modified_time to both versions of the method.

I seem to have forgotten about the travis and appveyor test configurations.  When using --no-default-features one now has to also add either 'time' and 'msdos_time' or 'chrono' to the features list.  I don't know of a better to do this.  One would need a way to enable some features if another feature is disabled, but I don't think cargo supports that (yet).
Should I simply update the test definitions (and include one for chrono while I'm at it)?

The tests are fixed, that should not be an issue anymore.
I am unsure what to do with this. I definitely do not like the cfg's, but I find it hard to choose between time and chrono. If I would build zip-rs at this moment, I think chrono would be the preferred choice, but at this stage I do not see any great benefit in changing it.

I have added a custom DateTime structure in version 0.5, with optional support for conversion to time::Tm. If you feel the need, you may add a similar feature for chrono in a new PR.


[Feature request] KFX page Numbers

Can you please enable Create approximate page numbers in KFX Output option?

Unfortunately kfx output is done using calibre's plugin, so I have no control over it.


Update docs for new template

As the documentation of this repo serves as a full-blown example of documentation generated by allenhwkim/angular-jsdoc—which has undergone some changes in the meantime—this PR is just a generation of the documentation with the new template design that was recently introduced with allenhwkim/angular-jsdoc#82.

This update should involve package.json and should not involve angular-jsdoc directly.
Without update of package.json, this change can be lost easily. I think process should be like the following;

update package.json
gulp docs
submit PR

I see that merging this now (before there’s allenhwkim/angular-jsdoc v1.5.0), it would generate documentation that’s not reproducible at this point in time. I don’t know if this is the problem you’re addressing, but when this PR is merged only as soon as there’s the new version, it will be perfectly fine.
Of course I can run npm install with the --save-dev switch to also update the package.json to state ^1.5.0 in place of ^1.3.3 for better readability.
I’m trying to sync allenhwkim/angular-jsdoc v1.5.0 release as seamless as possible with updated example docs of this repo. That’s a burden for every allenhwkim/angular-jsdoc release, but this time it’s a big release in visual terms.
What holds true is, that this should only be merged once allenhwkim/angular-jsdoc is on >=v1.5.0. That’s the time gap I try to keep small.


Implementing the SOS -u command

I'm trying to use ClrMD to print out the assembly code of a method, as part of a Benchmarking library I'm working on
At the moment I use code similar to the Machine Code sample to get the memory address, then I use code like this to get the assembly code (where debugControl is of type IDebugControl from IDebugControl.cs):
var bufferSize = 500; // per-line
var lineOfAssembly = new StringBuilder(bufferSize);
ulong startOffset = startAddress, endOffset;
uint disassemblySize;
do
{
    var flags = DEBUG_DISASM.EFFECTIVE_ADDRESS; // DEBUG_DISASM.SOURCE_FILE_NAME | DEBUG_DISASM.SOURCE_LINE_NUMBER;
    var result = debugControl.Disassemble(startOffset, flags, lineOfAssembly, bufferSize, out disassemblySize, out endOffset);
    startOffset = endOffset;
    Console.WriteLine(lineOfAssembly.ToString());
} while (disassemblySize > 0 && endOffset <= endAddress);

That works okay and I get an output like so, but the call instructions aren't resolved to a method name, they just have the memory address:

However if I run the -u command in WinDbg, it's able to resolve the method name of the call instruction, even with JIT methods such as mscorwks!JIT_Throw.
Is there a way I can replicate this with ClrMD?

  Things tend to be very slow around here from the end of November to January 1st.  I have been on vacation.
IDebugControl doesn't know anything about CLR constructs.  In fact, the implementation !u in SOS actually captures the output of IDebugControl::Disassemble, runs it through text processing, resolves references to managed code, and does inline text replacement.  That's how SOS's !u works under-the-hood.  If you want similar functionality you'll need to similarly parse the output of Disassemble and do the inline replacement yourself, mostly using ClrRuntime.GetMethodByAddress.
As for Disassemble resolving mscorwks!JIT_Throw or not: this isn't managed code.  Whether Disassemble can resolve it or not depends entirely on whether you have mscorwks.pdb loaded into your instance of IDebugClient or not.  This should be indexed on the public symbol server, so doing the equivalent of .sympath http://msdl.microsoft.com/download/symbols; .reload in the IDebug interfaces should get mscorwks!JIT_Throw (and similar).
Does that help at all?

Thanks for the reply, it's very helpful. It turns out that I'm actually already parsing the output in the same way it that SOS !u (based on your description), so that's cool. Although I was creating a lookup of method address -> name, I somehow missed ClrRuntime.GetMethodByAddress, so thanks for that.
Also thanks for the tips about the symbol paths, for anyone else who finds this issue I'm currently using code like this, which seems to work:
var symbols = dataTarget.DebuggerInterface as IDebugSymbols;
symbols.SetSymbolPath("http://msdl.microsoft.com/download/symbols");
var control = dataTarget.DebuggerInterface as IDebugControl;
control.Execute(DEBUG_OUTCTL.NOT_LOGGED, ".reload", DEBUG_EXECUTE.NOT_LOGGED);

@mattwarren Is the disassembly code available?

@ayende Unfortunately I never finished the disassembly code, but if you want a working version take a look at the excellent msos library from @goldshtn.
It's built on-top of CLRMD and supports the !u cmd, see here https://github.com/goldshtn/msos/blob/master/msos/Disassemble.cs


docs(icon): Use mdIconRegistry instead of MdIconRegistry

mdIconRegistry does not exist. The real name is MdIconRegistry

These are examples where it's using a local var that's been assigned to the instance of MdIconRegistry, which is a constructor.

@jelbourn sorry


Hot reload broken on Xcode 9 / iOS 11 beta

Steps to Reproduce

Run sudo xcode-select /Applications/Xcode9.0/Contents/Developer to switch to Xcode 9. Adjust for Xcode 9 install path as necessary.
flutter run -d myiOS11Device from a flutter project

Expected: App launches, hot reload infra comes up.
Actual: App launches, stack trace on host machine after a timeout. flutter tool is unable to locate the Observatory/Diagnostic ports.
Flutter Doctor
[✓] Flutter (on Mac OS X 10.12.5 16F73, locale en-AU, channel master)
    • Flutter at /Users/cbracken/src/flutter/flutter
    • Framework revision 4bde698ffc (2 hours ago), 2017-06-09 10:54:47 -0700
    • Engine revision ffe8181ffe
    • Tools Dart version 1.24.0-dev.6.7

In the engine, we rely on ASL to forward stdout and stderr to ASL. As of iOS 10, ASL is replaced with os_log, which fortunately has some nice new functionality.
On the host machine we rely on two mechanisms to collect the logs:

Simulators: scrape syslog for the log messages.
Devices: capture logs via idevicesyslog.
macOS 10.11 and above (which are required for Xcode versions we use), include /usr/bin/log which allows for much more precise log capture and should allow us to have a unified solution for log capture across devices and simulator.

Related #6758 #8981 #9308 #10358

This should now work.
Following the flutter doctor instructions with a device attached should be sufficient to support Xcode 9 + iOS 11. For libimobiledevice installations that are out of date, the following error message is displayed:
    ✗ libimobiledevice and ideviceinstaller are not installed or require updating. To update, run:
        brew uninstall --ignore-dependencies libimobiledevice
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller

As always, developers with multiple Xcode installations should ensure that they've used the xcode-select command-line tool to switch to the correct version of Xcode (for iOS 11 and up, Xcode 9 is required) via:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

or, for an Xcode beta, typically:
/Applications/Xcode-beta.app/Contents/Developer


In-place-update of all AC pulses

Use https://github.com/BBN-Q/QGL/pull/76 to update the full pulse library

@dieris I'm surprised this ever worked. Don't we need pulseList to be an iterable of pulses whereas you're creating a list of lists.

The list is flattened here, so it shouldn't matter.

Indeed.


Save File Load Error with Dolphin Emulator (Australian version compatibility ?)

Latest version of ACSE downloaded.
Using Dolphin Emulator to play Animal Crossing for the GameCube.
Exporting the save file to GCI as the tutorial states to do.
ACSE gives an error stating:
"The file [FileName.gci] could not be identified as a valid Animal Crossing save file.
Please ensure you have a valid save file."
Both other export types (.sav and .gcs) have been tried and the same error occurs.
Not sure what to do.
EDIT: After looking at the Closed Issues, I saw that there was previously issues with PAL files (GAFP)
I am using the Australian version which is GAFU, I'm assuming that GAFU is not yet supported and is most likely the issue here.

Can you send me a copy of a save file from the Australian version? I need to check it for compatibility. If it h as the same structure (like the PAL version) I can add it in immediately.

Closing now because 0.3.0 fixes this.


Move plugin check into platformUtils

Description
Based on the comment here (https://github.com/aerogear/aerogear-js-sdk/pull/91#discussion_r188155974) we could refactor checking for plugins into a helper function in platformUtils. Instead of null checking we could then do something like
IRoot = await platformUtils.getCordovaPlugin<IRoot>("IRoot");

Closing this issue, after looking into it we found that it does not add much value, over a regular null check due to having to cast type any to the plugins we want to get.


Bug on json post réception

First check

I added a very descriptive title to this issue.
I used the GitHub search to find a similar issue and didn't find it.
I searched the FastAPI documentation, with the integrated search.
I already searched in Google "How to X in FastAPI" and didn't find any information.
I already read and followed all the tutorial in the docs and didn't find an answer.
I already checked if it is not related to FastAPI but to Pydantic.
I already checked if it is not related to FastAPI but to Swagger UI.
I already checked if it is not related to FastAPI but to ReDoc.
After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Example
Here's a self-contained, minimal, reproducible, example with my use case:

from fastapi import APIRouter, Request

from pydantic import BaseModel
fake_db = {}
class Item(BaseModel):
    action: str

app = APIRouter()

@app.post("/update_action/")
async def update_action(item: Item):
    print("coucou")
    item_dict = item.dict()
    if item.action:
        #price_with_tax = item.price + item.tax
        #item_dict.update({"price_with_tax": price_with_tax})
        print("found")
    return item_dict

The code for sending the Json data via a POST command is here.
It's done by clicking on sentence "Click for sending json data via fetch command"
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">

  <title>page de debug</title>

Click for sending json data via fetch command

Description

Open the browser and open the provided HTML code /.
It display Click for sending json data via fetch command`.
click on this sentence.
Json is posted to python server.
error is as follow:

INFO:     <IP_ADDRESS>:43628 - "POST /update_action HTTP/1.1" 307 Temporary Redirect ERROR:    Exception in ASGI application Traceback (most recent call last):   File "/home/.local/lib/python3.9/site-packages/fastapi/routing.py", line 184, in app     body = await request.json()   File "/home/.local/lib/python3.9/site-packages/starlette/requests.py", line 228, in json     self._json = json.loads(body)   File "/usr/lib/python3.9/json/__init__.py", line 346, in loads     return _default_decoder.decode(s)   File "/usr/lib/python3.9/json/decoder.py", line 337, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
Environment

OS: Ubuntu 21.04
FastAPI Version: 0.65.2
Python version: 3.9.5

Your endpoint is @app.post("/update_action/") but you are sending to http://<IP_ADDRESS>:8000/update_action
Change to @app.post("/update_action").
I assume the 422 error after that is unrelated.

this is not fastapi bugs, please close

In changed @app.post("/update_action/") into @app.post("/update_action") and the bug is still here.

Well it seems, the javascript code is wrong.


Challenge fails with Connection refused (challenge type http-01)

https://github.com/ffMathy/FluffySpoon.AspNet.LetsEncrypt/issues/36
Adds a new StartUpMode option to define when cert requests/renewals are initiated.
StartupMode.Immediate (default) is identical to the current implementation.
StartUpMode.Manual requires an explicit call to app.RunFluffySpoonLetsEncrypt (at the end of Startup.Configure) to request/renew certs.
StartUpMode.Delayed defers until app.UseFluffySpoonLetsEncrypt is called.

Instead of this, can we use a IApplicationLifetime to hook into when the application has started, and only start the timer at that time?
https://stackoverflow.com/q/57799344/553609

That's actually much better. Still using options? Or should this be the default? I didn't really like the options (StartUpMode), just wanted to get it working without disrupting anything.

I'd prefer not to have the options as you mention yourself - the FluffySpoon packages are designed to be as simple to use as possible for solving very specific responsibilities, with minimal configuration options.
Sorry that you worked on this for nothing 😢

I have updated the PR after your last comment to keep it with the minimal config approach. If the PR isn't appropriate, you can close it as I'm using a patched local version now anyway.


Update sys-fn-listextendedproperty-transact-sql.md

Make "valid inputs" to lists.

@mchrupczalski : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off
Thanks @mchrupczalski for submitting this PR! Your suggestions help improve our documentation. Your commit will be merged and this article update is in flight. After the updated article is published, GitHub will list you as an article contributor.


[2989] Clear out applying_for_grant when changing trainee route

Context
Clear out applying_for_grant when changing routes, to ensure that validations run as expected.
Additionally, on the review draft/check details page, modifies the edit course details section link to go to the course education phase step.
Guidance to review

Create a trainee and ensure that grant funding was completed/set to yes.
Change the trainee's route to early years (postgrad).
Try to complete the funding section where it shows a tiered bursary form.
Click continue without selecting any option.
You should receive a validation error at this point, and the form should not continue with invalid data.

 Bug - Early years postgrad (tiered bursary) does not validate funding correctly.


chore: added caching example

Added a caching example which uses cache-manager for the backend.

is it possible to replace it with lru-send? cuz it's also a caching solution

let me give it a try

is it possible to replace it with lru-send? cuz it's also a caching solution

done


Modify relational schema to only index string prefix

For issue #1133, we modified index generation for JSONB storage to index only a string prefix. Similar changes need to be made to relational storage.

We create the index on the string prefix, but queries need to be changed so that Postgres can actually use this index when we query those fields.


DAPPS packages

Need to implement apps loading from external files, something like APK.

Here is a dapp for tests
local-faucet.zip

checked


Multipart upload progress problem?

Hi, i used this code pull/1528 and get this error in onFailure
unexpected end of stream
Another thing, i don't understand that the progress is not from the uploading, but just writing the buffer?
Because the progress took like 30ms to finish and image size is 1Mb. It is too fast.
Then it callback into onFailure

We don't have progress implemented yet.
Duplicate of https://github.com/square/okhttp/issues/1471


Chore some modify for pass c++20 standard

Proposed changes

remove temlate argument on constructor
precate implicit capture of this Implicitly capturing this in a lamdba capture using [=] is deprecated on cpp20
fix some wrong template usage

Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 37.4 seconds
load time: 489 seconds
storage size:<PHONE_NUMBER>1 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221213123456_clickbench_pr_62713.html


Update nuget package details

Should also include setting up GitHub actions to push new versions to NuGet with auto-incrementing version numbers


twister: specify the runner when call_west_flash is enable

Now the twister only supports nsim_hs_smp running application with nsim-mdb runner, this commit allows user run target with mdb-nsim runner. What user need to do is to change the simulation type, for example https://github.com/wangnuannuan/zephyr/blob/mainfest-error/boards/arc/nsim/nsim_sem.yaml#L5
Signed-off-by: Jingru Wang<EMAIL_ADDRESS>

@wangnuannuan could you please add an example of how that might be used now with your change?

When the platform is nsim* in addition to nsim_hs_smp, the default runner is arc-nsim, in other words the platform run application with nsimdrv. Here the twister doesn't specify the runner with --runner, so twister always runs application with nsimdrv.
My change specific the runner as mdb-nsim when the platform's simulation is 'mdb-nsim'.
So if you want twister to run applcation with mdb, you only need to change the platform's simulation as mdb-nsim(in platform's yaml file), then the twister will choose mdb-nsim as runner

Hi Jingru,
I've tried to test your changes, however it looks like we have some issues with them.
When I'm building for nsim_hs_smp the west flash command is working, but ninja run isn't.
How to reproduce:
west build -b nsim_hs_smp samples/hello_world
west -v flash
 [**snip**]
 [zephyr print] *** Booting Zephyr OS build v2.6.0-rc3-1967-g70458aeb5bf8  ***
 [zephyr print] Hello World! nsim

cd build/
ninja -v run
 [**snip**]
 There is no printing from zephyr!

Note that ninja is used by default (instead of make).
Zephyr SDK is 0.13.0-alfa


Support of AAD v2 endpoint?

When leveraging ms-rest-azure to perform authentication, I noticed that you cannot use "live" accounts against a tenant - instead you need an organizational account in order to successfully acquire tokens for various reesource providers (even though AuthN works). Without this, you receive errors indicating there is a tenant mismatch / etc....this is most likely coming from leveraging the AAD v1 endpoint which didn't allow a mix of Organziation and Msft accounts.
Specifically - we encountered this error when leveraging ContainerInstanceManagementClient from azure-arm-containerinstance, and receive the following error when attempting to use Live accounts:
{ code: 'InvalidAuthenticationTokenTenant',
     message:
      'The access token is from the wrong issuer \'https://sts.windows.net/f8cdef31-a31e-4b4a-93e4-5f571e91255a/\'. It must match the tenant \'https://sts.windows.net/c6a0a3e0-066b-4e3d-a882-2d7eec75fae1/\' associated with this subscription. Please use the authority (URL) \'https://login.windows.net/c6a0a3e0-066b-4e3d-a882-2d7eec75fae1\' to get the token. Note, if the subscription is transferred to another tenant there is no impact to the services, but information about new tenant could take time to propagate (up to an hour). If you just transferred your subscription and see this error message, please try back later.' } }

Is there any information / roadmap on when the AAD v2 endpoints will be leveraged in order to enable this scenario?

@daviwil, @jonathandturner,
Correct me if I am wrong, but the new @azure/identity does use the v2 endpoint right?

@ramya-rao-a I'm not being asked, but I don't think I'm wrong if I say that @azure/identity indeed uses the v2 endpoint: https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity/src/client/identityClient.ts#L141

The new SDK's do definitely support V2...if you note the date this was opened, they weren't available back then (2018/2019).  Unfortunately my project moved on since then and had to simply not support live ID's.


Example using multiple databases.

Would be nice to see an example with a context where multiple db instances can be created to different backing files.

@tracker1 good question! Here is an example how to work with multiple databases:
import sqlite from 'sqlite';
import bluebird from 'bluebird';

const coreDb = sqlite.open('./core.sqlite', { Promise });
const dataDb = sqlite.open('./data.sqlite', { Promise });

coreDb.get('SELECT * FROM Table WHERE id = ?', 123).then(row => console.log(row));

I guess it would be good to include that info into README.md. A pull request is more than welcome!

How to run two different migrations against different tables open?

I've documented this in the v4 beta readme, thanks all


Broken link in day 22

Hey Todd, I wanted to check out your blog post for day 22, since my solution for part 2 took something like 10 minutes to run.  Your link ends in /22/, but the actual blog post ends in /day22/.
Thanks again for the code & posts!

@martincmartin Thanks! I actually had days 9 through 24 broken due to copy/paste errors (now the dirty secret that I don't use a template is out)!. Thanks for the report, and I'm glad you found my code and blog useful. :)


View: Misc. fixes for listing page

Listing page to show at-the-glance Last Published and Latest Version info: 2731fe6

For instance, on http://www.nuget.org/packages?q=casablanca result listing page, if the user is looking for the most recent package or checking if the newer Version of certain package has arrived, with this change its possible without navigating to the details page.

Adds helper to truncate description at word boundary: 34ae737

Nice one!

:tada:


Reworked bool filters to make more sense for real world usage

Previously, all non-range ElasticSearch filters were being thrown into an OR filter.  A result would just have to satisfy any one of the filter choices to be returned.

If you're filtering blog posts by different fields (author, tags, date), those should be joined by an AND filter.  The set returned should satisfy all of those constraints.  Within a particular field (for example, multiple authors), that filter should be joined by an OR filter.  Each blog post returned should be written by one of the authors selected.
If that explanation sounds good, then this PR is for you!

:+1: