Encountering NaN with HYPRE

I have a problem with several (24) linear systems of equations, each of which is a discretization of several (80) coupled PDEs. In an iterative/convergence procedure, I'm solving a selected linear system of equations while updating the RHS until the solution converges.
I'm using the HyprePCG solver with HypreBoomerAMG preconditioner. I have called
HYPRE_BoomerAMGSetNumFunctions(amg, 80) to improve my performance.
Since I have several linear systems, I have created a HyprePCG object and HypreBoomerAMG object for each linear system so I have vectors of these objects.
At some point during the calculation, HYPRE returns a NaN. It's well into the simulation actually. It's after converging several of the linear systems of equations and calling HyprePCG::Mult() many times (more than 100). The convergence behavior looks good and then just dies.
=============================================
Setup phase times:
=============================================
PCG Setup:
  wall clock time = 1.710000 seconds
  wall MFLOPS     = 0.000000
  cpu clock time  = 1.710000 seconds
  cpu MFLOPS      = 0.000000

<C*b,b>: 5.046439e+07

Iters       ||r||_C     conv.rate  ||r||_C/||b||_C
-----    ------------    ---------  ------------
    1    4.946099e+03    0.148756    6.962581e-01
    2    1.647778e+03    0.333147    2.319562e-01
    3    8.080995e+02    0.490418    1.137555e-01
    4    4.576440e+02    0.566321    6.442216e-02
    5    3.055430e+02    0.667643    4.301104e-02
    6    2.193602e+02    0.717936    3.087916e-02
    7    1.638848e+02    0.747103    2.306992e-02
    8    1.268698e+02    0.774140    1.785935e-02
    9    9.994700e+01    0.787792    1.406945e-02
   10    8.080912e+01    0.808520    1.137543e-02
   11    6.622022e+01    0.819465    9.321764e-03
   12    5.491561e+01    0.829288    7.730424e-03
   13    4.612231e+01    0.839876    6.492598e-03
   14    3.899638e+01    0.845499    5.489488e-03
   15    3.338147e+01    0.856015    4.699082e-03
   16    2.868384e+01    0.859274    4.037800e-03
   17    2.482006e+01    0.865298    3.493899e-03
   18    2.157021e+01    0.869064    3.036421e-03
   19    1.878100e+01    0.870692    2.643786e-03
   20    1.635449e+01    0.870800    2.302208e-03
   21    1.431730e+01    0.875435    2.015435e-03
   22    1.255098e+01    0.876630    1.766791e-03
   23    1.105963e+01    0.881177    1.556855e-03
   24    9.749975e+00    0.881582    1.372496e-03
   25    8.597781e+00    0.881826    1.210302e-03
   26    7.575752e+00    0.881129    1.066432e-03
   27    6.629741e+00    0.875126    9.332630e-04
   28    5.738538e+00    0.865575    8.078092e-04
   29    4.879250e+00    0.850260    6.868479e-04
   30    4.026255e+00    0.825179    5.667725e-04
   31    3.180570e+00    0.789957    4.477261e-04
   32    2.328470e+00    0.732092    3.277767e-04
   33    1.452939e+00    0.623989    2.045290e-04
   34    4.816644e-01    0.331510    6.780349e-05
   35    nan    nan    nan

=============================================
Solve phase times:
=============================================
PCG Solve:
  wall clock time = 1.730000 seconds
  wall MFLOPS     = 0.000000
  cpu clock time  = 1.730000 seconds
  cpu MFLOPS      = 0.000000

PCG Iterations = 35
Final PCG Relative Residual Norm = nan

This situation raises a few issues:

What is causing this? I've verified my matrices are SPD by printing them and performing a Cholesky factorization. Why does the iterative procedure abruptly fail?
Does HYPRE/MFEM support creating an array of these solver objects? Would I be better to create a single object and call SetPreconditioner and SetOperator all the time?
It seems like none of the calls to HYPRE routines in MFEM actually check the return value. I've been running these on a cluster so even when a nan is encountered, the code continues to grind for another several hours unless I check and kill it. Is there a better way to perform error checking?

Thanks!

Regarding 1 -- the reason for NaNs usually is that the preconditioner is not SPD. That should not be the case if the input matrix is SPD, so this sounds like a bug. Can you attach the matrix and the AMG parameters you are using so we can try to reproduce?

Regarding 3 -- you usually get a segfault in situations like this, or at least hypre will raise an error. I am not sure why it is not happening in your case, it seems like you are using the hypre PCG... In MFEM, when you define a HypreSolver you can specify how to handle hypre errors, see https://github.com/mfem/mfem/blob/master/linalg/hypre.hpp#L840-L849.

I'm not sure about uploading the matrix. I put in in a compressed tarball and it is 17 GB. I can upload it somewhere (probably Google Drive) if someone really wants to look into it. I understand that this is not particularly helpful for debugging.
Regarding error handling, I tried switching the HyprePCG to CGSolver since they should perform the same function. Using CGSolver, the code crashes very quickly. It looks like there is an error in the setup of the HypreBoomerAMG. I'm not sure why this error is not handled when using HyprePCG.
Verification failed: (!err) is false:
 --> Error during setup! Error code: 256
 ... in function: virtual void mfem::HypreSolver::Mult(const mfem::HypreParVector&, mfem::HypreParVector&) const
 ... in file: linalg/hypre.cpp:2768

Ok, this is progress. Can you rebuild hypre in debug mode with the option --with-print-errors and let us know what is the ourput?

I rebuilt HYPRE with debug options and continued using the MFEM CGSolver. It doesn't simply crash any more but still returns NaN at the same point. The CGSolver prints that the preconditioner is not SPD.
PCG: The preconditioner is not positive definite. (Br, r) = -0.141307

Obviously, things just get out of control after that.
To reiterate, the preconditioner has been called 25+ times at this point without changing the LHS matrix. The RHS vector is being reassembled every time. I'm still very confused.
Right now, I'm just using ParBilinearForm::ParallelAssemble() and ParLinearForm::ParallelAssemble() to return HypreParMatrix* and HypreParVector* respectively. I'm going to look into ParBilinearForm::FormLinearSystem() but I wouldn't expect anything different.

OK, this message means that there is a vector r for which the inner product (Br,r) with the preconditioner B is negative, so B indeed is not SPD and PCG fails.
You can always switch to GMRES which will run, but this is a symptom of an issue in your input matrix A, or maybe in the preconditioner B and you should try to address it.
What can you tell us about A? Is it a standard diffusion matrix? Can it have zero rows? Do you expect it to be SPD?
What parameters do you use for B? Is it just the defaults in HypreBoomerAMG? What version of MFEM and hypre is this with?

One way to test if A is SPD is to generate random vectors r and check that (Ar,r) is always strictly positive. Sometimes this useful, but not always, it may e.g. be difficult to detect a matrix that has one zero row/column.

It seems to be able to work with GMRES as we would expect but it also takes a significant runtime and memory hit as one would expect. The GMRES solver made it farther than PCG but it didn't finish due to wall time. I expect I could push it further if need be.
The A matrix has a MassIntegrator, DiffusionIntegrator, as well as a DGTraceIntegrator as a BdrFaceIntegrator to apply an "incoming" boundary condition. (I'm solving in H1 space.) I expect the operator to be SPD. These difficulties only arise for very large problems so I wonder if the operator is nearly SPD but only noticeable for very large systems.
The B preconditioner is HypreBoomerAMG with the defaults specified in MFEM. The only exception is I specify
HYPRE_BoomerAMGSetNumFunctions(*amg, 80);

as this is a system of PDEs. I'm using the master version of MFEM and HYPRE.
Specifically, MFEM v4.2-3343-gc703d7a and HYRPE v2.20.0-62-g521ef12.
Does HypreBoomerAMG possibly change with every evaluation? I would think it would perform the same operation every time it was called. What is most confusing about this whole procedure is that the PCG solver works successfully many times but seems to fail randomly. I understand that this could finally be a vector that proves B (and/or A) is not SPD but I'm curious if the preconditioner is changing as well.
I'm going to try using a bunch of random vectors to see if A is SPD but I understand this is not necessarily going to work.

I think I found the reason why I was encountering NaN.
In fact, the A matrix was not SPD despite my expectations. However, the problem was that the mesh was composed of wedge/prism elements. I have yet to find a definitive proof but have encountered similar problems in smaller calculations where the DiffusionIntegrator in certain "malformed" meshes with wedges will not be positive-definite.
I was able to remesh the problem using tetrahedra and everything seems to be working. I'd prefer to use prisms as they more naturally describe the geometry that I'm working with so I'm interested in any tips. But that may be a separate issue.
Thanks!

I was able to remesh the problem using tetrahedra and everything seems to be working. I'd prefer to use prisms as they more naturally describe the geometry that I'm working with so I'm interested in any tips. But that may be a separate issue.

I am glad you fixed the issue @wcdawn. Thanks pushing on it!

In fact, the A matrix was not SPD despite my expectations. However, the problem was that the mesh was composed of wedge/prism elements. I have yet to find a definitive proof but have encountered similar problems in smaller calculations where the DiffusionIntegrator in certain "malformed" meshes with wedges will not be positive-definite.

If you can create a simple reproducer we should investigate what's going on. There is no reason why the should lead to non-SPD operator. (Maybe the diffusion quadrature rule should be adjusted for prisms?!)
@mlstowell have you encountered such non-SPD issue with meshes containing prismatic elements?

This should be resolved in master as of https://github.com/GLVis/glvis/commit/b513773a803dd99117c4ef8348465f3ae5674d86 (Jul 8th, 2021)

I have encountered this problem with other FEM codes as well so prisms may just be challenging in general. I'm not sure how to go about checking this with glvis. The plots look fine in glvis.
Here is an example mesh. I have refined versions of this mesh or much more complex meshes that I can provide.
So far, all of the meshes that have exhibited this problem have been:

prism elements
cylindrical boundary/geometry
extruded mesh

To observe that the operator is not positive definite, you can run ex1p using the provided mesh.
I've been struggling with this problem for a very long time so I look forward to hearing what you all find!

Hi @wcdawn,
According to mesh explorer all the prisms in the mesh are inverted. There can be more, but this will definitely explain the issue in Example 1.
Can you tell us how the mesh was generated? Do you have the 2D cross-section as a separate mesh file?
Tzanio

I tried using the mesh explorer and I'm not sure how to tell if an element is inverted. How can I look for myself?
I also don't understand why having inverted prisms would be a problem because I thought the method was general.
I think I may have over-simplified the problem. The cylinder I sent was a very old mesh and I'm not sure where the original data is at this point. Here is the mesh that I have been using that is originally giving me the problems. It is large and uses a large amount of memory (>80 GB) to run ex1p. I generated this mesh using Gmsh and have all of the inputs. The prisms were generated using the Recombine command in Gmsh. Unfortunately, ex1p is too simple to show the error on this more complicated mesh. I'm working on putting together a MWE.

I also don't understand why having inverted prisms would be a problem because I thought the method was general.

Use the x option which samples the Jacobian in uniform lattice with a user provided resolution.

I also don't understand why having inverted prisms would be a problem because I thought the method was general.

Inverted prisms lead to negative Jacobians, which lead to negative definite matrix.

Here is the mesh that I have been using that is originally giving me the problems. It is large and uses a large amount of memory (>80 GB) to run ex1p.

I'll try to take a look at this today...

Nice mesh.

It would appear all of the elements in it are valid:
--> x
subdivision factor ---> 4

bad elements = 0
min det(J)   = 0.0187922
max det(J)   = 0.930723
global ratio = 49.5272
max el ratio = 1
min kappa    = 1.1204
max kappa    = 33.1718

Example 1 runs fine for me on it, so a MWE will be appreciated

I also don't understand why having inverted prisms would be a problem because I thought the method was general.

Use the x option which samples the Jacobian in uniform lattice with a user provided resolution.

Another option to check mesh quality is to plot the scaled Jacobian, option J in Mesh Explorer. This gives a range for the element quality (specifically skewness) with 1 being a good, box-like element, and 0 being a bad invalid element. Negative values indicate inverted elements.
Here are the results for your mesh

Depending on whether you figure out the definiteness problem, using MINRES will likely be comparable to CG and may be viable (hard to say if the preconditioner will end up positive definite). Alternatively, if you are definitely stuck with GMRES, set the k-dim to be quite small, ~<5. If the matrix is almost SPD, you shouldn't need a large kdim for good convergence. The computation of GMRES iterates is not that much more expensive than CG; almost all of your performance degradation with GMRES is likely due to memory issues (i.e., needing your full Krylov space every step and it likely being out of cache).

@bensworth this sounds promising. I've been trying to find why the matrix isn't PD but it's a real challenge. Is there a way I can call a MINRES solver from MFEM without writing my own? I'll give GMRES with a small vector dimension as well. Thanks!

MFEM has a MINRES solver internally: https://mfem.github.io/doxygen/html/classmfem_1_1MINRESSolver.html

@wcdawn, I am interested to follow-up on this if you have any new information.

I ran several different linear system solvers for a related 2D problem that had never had a NaN issue.
My solver requires solving a linear system thousands of times so I've also included the total number of calls to the solver.
Here are some performance results for anyone interested.

Solver
Solve Count
Wall Time [s]
Speedup (Slowdown)

HyprePCG
6518
1695
0.00% (ref.)

HypreGMRES (kdim=5)
6519
2688
-58.58%

CGSolver
6519
2149
-26.78%

GMRESSolver (kdim=5)
6508
3048
-79.82%

MINRESSolver
6519
2080
-22.71%

BiCGSTABSolver
7227
3007
-77.40%

For my problems, MINRESSolver seems comparable to CGSolver and they can probably be sped up using some better solver options to be comparable with HyprePCG.
I tried to do the same analysis using the full 3D mesh that I had sent earlier. All of the solvers failed. Even GMRES failed but I suspect the vector dimension was too small.
I tried the 3D problem without a preconditioner and using HyprePCG (I had been using mfem::HypreBoomerAMG).
The unpreconditioned problem made it farther (more successful calls to the linear system solver) than the problem with a preconditioner but it failed to finish due to wall time as it was so much slower. I'm going to look into using an alternate preconditioner (maybe GSSmoother?) but I'm not sure how it will do in parallel.

Can you look at iterations to convergence for HyprePCG and CGSolver? Interesting difference in walltime. Similar difference in HypreGMRES and GMRESSolver. Would be strange if the iterations were different. If those are the same, my guess is hypre is built with its own LAPACK, which could speed up the inner dense Krylov iterations.

The iteration counts were pretty different with the MFEM solvers being much larger. I think the solvers are using different measures for convergence criteria. It looks like the MFEM solvers are using the (B r, r) or ||r||_B norm whereas I think HYPRE is using ||r||_2. I could select some criteria to make them run the same number of iterations or set the tolerances to zero and run a fixed number of iterations if we really needed to compare.
For now, I'm less interested in solver performance as I am in finding a solver+preconditioner that will actually work for these equations.

Hi @wcdawn,
Clarifying one of your doubts:

Does HypreBoomerAMG possibly change with every evaluation?

BoomerAMG would change only if you were calling HYPRE_BoomerAMGSetupagain with a different matrix or set of input parameters, but not during PCG iterations.
Could you run your problematic test case again with pcg->SetPrintLevel(2);? This prints some statistics regarding BoomerAMG setup that can be helpful.
Thanks!
Victor

@victorapm Thanks for the info! I'm definitely not calling the setup function more than once. Only the RHS is changing.
The output is pretty large so I've attached in in a text file.
hypre.txt

Thanks, @wcdawn, I don't see BoomerAMG setup statistics in this file. Could you try again with the following options:
pcg->SetPrintLevel(2);
amg->SetPrintLevel(1);

I'm attaching the output of ex2p that I get with these options so that you have an idea of what to expect.
ex2p_out.txt

@victorapm This should be the correct data that you're looking for.
hypre.txt

Hi @wcdawn, since you are reusing the preconditioner for several system solves, it's worth using a set of config options that improves its quality. In your case, you could try:
amg->SetAggressiveCoarsening(0);
amg->SetStrengthThresh(0.5);

This does not necessarily solve the problem with indefiniteness as it is likely coming from A , but will probably give you better solve times. Besides this, you can try also using a bigger kdim for GMRES (maybe 10 or 20). Let me know what you find!
Thanks!


Network: BGP peer holdtime option configuration

Hi,
BGP peer holdtime option configuration with proper documentation
Mine need to have ability to set peer's holdtime on lxd side.
I've already created additional optional configuration node and change complementary code with documentation.
This leads to adding new peer configuration lxc network set lxdbr0 bgp.peers.foo.holdtime=1
Сonsider including this option please.

This pull request didn't trigger Jenkins as its author isn't in the allow list.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

Documentation preview available at: https://linuxcontainers.org/lxd/docs/pr.10768/

jenkins: test this please

I would like @stgraber to cast his eye over this before its merged.

jenkins: test this please

jenkins: test this please


[posm]: CurrencySettlerLibrary should use permit2 transferFrom

Component
Position Manager
Describe the suggested feature and problem it solves.
In keeping with most of our contract security and approval models, we do not want users directly approving the position manager for ERC20s.
users should approve position manager as a spender for erc20s through permit2.
this PR should edit the CurrencySettlerLibrary to use permit2TransferFrom
Describe the desired implementation.
No response
Describe alternatives.
No response
Additional context.
No response

Can be combined with #165

closed by #208


Update Get-SPEnterpriseSearchRankingModel.md

Removal of C:\PS>.

OPS Build status updates of commit 265665b:
:clock10: Preparing: average preparing time is 1 min(s) 12 sec(s)

OPS Build status updates of commit 265665b:
:clock10: Incremental building: average incremental building time is 12 min(s) 22 sec(s)

OPS Build status updates of commit 265665b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Get-SPEnterpriseSearchRankingModel.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit b9d2971:
:clock10: Preparing: average preparing time is 1 min(s) 12 sec(s)

OPS Build status updates of commit b9d2971:
:clock10: Incremental building: average incremental building time is 12 min(s) 22 sec(s)

OPS Build status updates of commit b9d2971:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Get-SPEnterpriseSearchRankingModel.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Preview env Testing CIV-2609 (PDF Order Revisions)

https://tools.hmcts.net/jira/browse/CIV-2609

Testing completed. Hence closing this pr


🐛 [firebase_core] Firebase libraries doesn't build on iOS

Bug report
Describe the bug
Latest firebase libraries doesn't build on iOS.
Steps to reproduce
Steps to reproduce the behavior:

Create a flutter app.
Add the following firebase libs:

firebase_core: ^1.2.0
firebase_analytics: ^8.1.0
firebase_crashlytics: ^2.0.4
4. Run flutter build ios
Expected behavior
The iOS app is built successfully.
Sample project
Providing a minimal example project which demonstrates the bug in isolation from your main App greatly enhances the chance of a timely fix.
Please link to the public repository URL.

Additional context
Error:
Launching lib/main.dart on iPhone de David in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project: A97AY86M9N
Running pod install...                                             861ms
CocoaPods' output:
↳
      Preparing

    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Fetching external sources
    -> Fetching podspec for `Flutter` from `Flutter`
    -> Fetching podspec for `async_preferences` from `.symlinks/plugins/async_preferences/ios`
    -> Fetching podspec for `devicelocale` from `.symlinks/plugins/devicelocale/ios`
    -> Fetching podspec for `firebase_analytics` from `.symlinks/plugins/firebase_analytics/ios`
    firebase_analytics: Using Firebase SDK version '8.0.0' defined in 'firebase_core'
    -> Fetching podspec for `firebase_core` from `.symlinks/plugins/firebase_core/ios`
    firebase_core: Using Firebase SDK version '8.0.0' defined in 'firebase_core'
    -> Fetching podspec for `firebase_crashlytics` from `.symlinks/plugins/firebase_crashlytics/ios`
    firebase_crashlytics: Using Firebase SDK version '8.0.0' defined in 'firebase_core'
    -> Fetching podspec for `sqflite` from `.symlinks/plugins/sqflite/ios`

    Resolving dependencies of `Podfile`
      CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo
      update
      CDN: trunk Relative path: all_pods_versions_0_3_5.txt exists! Returning local because checking is only perfomed in
      repo update
      CDN: trunk Relative path: Specs/0/3/5/Firebase/7.8.1/Firebase.podspec.json exists! Returning local because
      checking is only perfomed in repo update
      CDN: trunk Relative path: all_pods_versions_f_4_e.txt exists! Returning local because checking is only perfomed in
      repo update
      CDN: trunk Relative path: Specs/f/4/e/FMDB/2.7.5/FMDB.podspec.json exists! Returning local because checking is
      only perfomed in repo update
    [!] CocoaPods could not find compatible versions for pod "Firebase/Analytics":
      In Podfile:
        firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 8.1.0, which depends on
          Firebase/Analytics (= 8.0.0)

    None of your spec sources contain a spec satisfying the dependency: `Firebase/Analytics (= 8.0.0)`.

    You have either:
     * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
     * mistyped the name or version.
     * not added the source repo that hosts the Podspec to your Podfile.

    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:328:in `raise_error_unless_state'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:310:in `block in unwind_for_conflict'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `tap'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:308:in `unwind_for_conflict'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:257:in `process_topmost_state'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve'
    /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/resolver.rb:94:in `resolve'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:1074:in `block in
    resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:1072:in `resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:124:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:414:in `analyze'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:239:in `block in resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:238:in `resolve_dependencies'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:160:in `install!'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command/install.rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:in `run'
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'

Error output from CocoaPods:
↳

    [!] Automatically assigning platform `iOS` with version `12.1` on target `Runner` because no platform was specified.
    Please specify a platform for this target in your Podfile. See
    `https://guides.cocoapods.org/syntax/podfile.html#platform`.

Error: CocoaPods's specs repository is too out-of-date to satisfy dependencies.
To update the CocoaPods specs, run:
  pod repo update

Exception: Error running pod install

Note: Running pod repo update even with sudo DOES NOT fix the issue.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.5, on macOS 11.2.3 20D91 darwin-arm, locale es-ES)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google
    Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.56.2)
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.12.3
Flutter SDK 2.0.5
weight_tracker 0.1.0+1

dependencies:
- async_preferences 0.5.0 [flutter]
- cupertino_icons 1.0.3
- devicelocale 0.4.1 [flutter flutter_web_plugins]
- firebase_analytics 8.1.0 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_core 1.2.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 2.0.4 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- fl_chart 0.36.1 [flutter equatable pedantic]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
- flutter_platform_widgets 1.8.1 [flutter]
- intl 0.17.0 [clock path]
- logger 1.0.0
- path 1.8.0
- provider 5.0.0 [collection flutter nested]
- sqflite 2.0.0+3 [flutter sqflite_common path]
- uuid 3.0.4 [crypto]

dev dependencies:
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]

transitive dependencies:
- async 2.5.0 [collection]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.1.0
- charcode 1.2.0
- clock 1.1.0
- collection 1.15.0
- crypto 3.0.1 [collection typed_data]
- equatable 2.0.2 [collection meta]
- fake_async 1.2.0 [clock collection]
- firebase 9.0.1 [http http_parser js]
- firebase_analytics_platform_interface 2.0.1 [flutter meta]
- firebase_analytics_web 0.3.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_core_platform_interface 4.0.1 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.1.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.0.4 [collection firebase_core flutter meta plugin_platform_interface]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- http 0.13.3 [async http_parser meta path pedantic]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- js 0.6.3
- matcher 0.12.10 [stack_trace]
- meta 1.3.0
- nested 1.0.0 [flutter]
- pedantic 1.11.0
- plugin_platform_interface 2.0.0 [meta]
- sky_engine 0.0.99
- source_span 1.8.0 [charcode collection path term_glyph]
- sqflite_common 2.0.0+2 [synchronized path meta]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- typed_data 1.3.0 [collection]
- vector_math 2.1.0

Same issue here, and not the first time.

Same issue here

I am getting a similar error:
,,,
[!] CocoaPods could not find compatible versions for pod "cloud_firestore":
In Podfile:
cloud_firestore (from .symlinks/plugins/cloud_firestore/ios)
Specs satisfying the cloud_firestore (from .symlinks/plugins/cloud_firestore/ios) dependency were found, but they required a higher minimum deployment target.
,,,

@svprdga
In Podfile:         firebase_analytics (from .symlinks/plugins/firebase_analytics/ios) was resolved to 8.1.0, which depends on           Firebase/Analytics (= 8.0.0)
None of your spec sources contain a spec satisfying the dependency: `Firebase/Analytics (= 8.0.0)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.`

Can you try  pod install --repo-update ?
Moreover,  try deleting the podspec.lock and regenerate it using above command.
Maybe a case of newer versions of the plugin may have kept the previous podspecs unlocked.

@darshankawar I got the following error when running your command:
Updating local specs repositories

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

### Command

/usr/local/bin/pod install --repo-update

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?

### Stack

CocoaPods : 1.10.1
Ruby : ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
RubyGems : 3.0.3
Host : macOS 11.2.3 (20D91)
Xcode : 12.5 (12E262)
Git : git version 2.30.1 (Apple Git-130)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib
Repositories : trunk - CDN - https://cdn.cocoapods.org/

### Plugins

cocoapods-deintegrate : 1.0.4
cocoapods-plugins     : 1.0.0
cocoapods-search      : 1.0.0
cocoapods-trunk       : 1.5.0
cocoapods-try         : 1.2.0

### Podfile

```ruby
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

Error
LoadError - dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle, 0x0009): missing compatible arch in /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle - /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi_c.bundle
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi.rb:6:in `rescue in <top (required)>'
/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.0/lib/ffi.rb:3:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/ethon-0.12.0/lib/ethon.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/typhoeus-1.4.0/lib/typhoeus.rb:2:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:440:in `download_typhoeus_impl_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:372:in `download_and_save_with_retries_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:365:in `download_file_async'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:338:in `download_file'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:78:in `deprecated_local_podspecs'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:60:in `preheat_existing_files'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.10.1/lib/cocoapods-core/cdn_source.rb:257:in `update'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:135:in `block (3 levels) in update'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:134:in `block (2 levels) in update'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:133:in `each'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:133:in `block in update'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:131:in `open'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/sources_manager.rb:131:in `update'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:145:in `block in update_repositories'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:143:in `each'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer/analyzer.rb:143:in `update_repositories'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:235:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/user_interface.rb:64:in `section'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:234:in `resolve_dependencies'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/installer.rb:160:in `install!'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command/install.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/lib/cocoapods/command.rb:52:in `run'
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.10.1/bin/pod:55:in `<top (required)>'
/usr/local/bin/pod:23:in `load'
/usr/local/bin/pod:23:in `<main>'

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
[!] Oh no, an error occurred.
Search for existing GitHub issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=dlopen(%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle%2C+0x0009)%3A+missing+compatible+arch+in+%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle+-+%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle&type=Issues
If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new
Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md
Don't forget to anonymize any private data!
Looking for related issues on cocoapods/cocoapods...

missing compatible arch in ...
https://github.com/CocoaPods/CocoaPods/issues/10541 [open] [3 comments]
26 Mar 2021

Probem with Apple M1
https://github.com/CocoaPods/CocoaPods/issues/10598 [closed] [3 comments]
2 weeks ago

[error report] pod install /w m1 macbook
https://github.com/CocoaPods/CocoaPods/issues/10518 [closed] [18 comments]
3 weeks ago

and 4 more at:
https://github.com/cocoapods/cocoapods/search?q=dlopen(%2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle%2C 0x0009)%3A missing compatible arch in %2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle - %2FLibrary%2FRuby%2FGems%2F2.6.0%2Fgems%2Fffi-1.15.0%2Flib%2Fffi_c.bundle&type=Issues&utf8=✓

@svprdga
Ok, I think it could be happening due to  platform :ios, value in podfile. Since you created a new project, the field will be commented by default. Try uncommenting it and set the platform to 10.0 as:
 platform :ios, '10.0' and then run flutter build ios.   Document for reference: https://firebase.flutter.dev/docs/installation/ios#ios-supported-versions
I did the same with which it built successfully:
dhs@Dhss-MacBook-Pro new_ff % flutter build ios
Building com.example.newFf for device (ios-release)...
Found saved certificate choice "Apple Development: Darshan Kawar (HJWLFNL782)". To clear, use "flutter config".
Signing iOS app for device deployment using developer identity: "Apple Development: Darshan Kawar (HJWLFNL782)"
Running pod install...                                              3.2s
Running Xcode build...
 └─Compiling, linking and signing...                        12.6s
Xcode build done.                                           86.2s
Built /Users/dhs/Documents/NCFlutter/new_ff/build/ios/iphoneos.

I think it's an issue with CocoaPods in M1 Macs, I could finally solve it running:
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install --repo-update
Source:
https://github.com/CocoaPods/CocoaPods/issues/10518
https://github.com/CocoaPods/CocoaPods/issues/10598


Add SimpleNexus to commercial products

We've been using Vue for about 2 years now and totally love it!
Most of our vue stuff is behind a login page, but the login page itself uses vue and shows up in the vue devtools detects it: https://simplenexus.com/login

I cannot access login page due to unauthorized ...

@kazupon Sorry! Our product is strictly US only so we don't allow access outside the US. If this is a problem for this list, feel free to close this PR.

Closing due to inactivity.
Please open a new issue with a reference to this one if you can follow up with more information.

I explained why the login page was unauthorized. Is worldwide access required for this list?


Add MIT No Attribution

There's obvious interest in this (recent opened and closed PRs? started this with the last one, #768) so I'm just going to open a WIP PR. Needs more examples, and to meet use criterion, see/fixes #754
Note OSI approval test failure will go away when there's a new SPDX license list release, at which point https://github.com/spdx/license-list-XML/pull/1093 will be reflected in https://spdx.org/licenses/licenses.json latter of which is consumed by our tests.
cc @yawnoc @MarkAtwood

Close to 1000 hits and steadily growing, with some solid examples, from which I've selected a few to add.
I'm inclined to go ahead and merge this.
CI is failing for unrelated reasons, will be green once https://github.com/licensee/licensee/pull/481 is merged.

Duplicate of #


python311Packages.whodap: 0.1.9 -> 0.1.10

Diff: https://github.com/pogzyb/whodap/compare/refs/tags/v0.1.9...v0.1.10
Changelog: https://github.com/pogzyb/whodap/releases/tag/v0.1.10
Description of changes

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 259323 run on x86_64-linux 1

8 packages built:

python310Packages.asyncwhois
python310Packages.asyncwhois.dist
python310Packages.whodap
python310Packages.whodap.dist
python311Packages.asyncwhois
python311Packages.asyncwhois.dist
python311Packages.whodap
python311Packages.whodap.dist


change log zerror to zinfo

🔍 What type of PR is this?

👀 What this PR does / why we need it:

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] All the tests have passed

🅰 Which issue(s) this PR fixes:

Fixes #65
📝 Special notes for your reviewer:

🎯 Describe how to verify it

📑 Additional documentation e.g., RFC, notion, Google docs, usage docs, etc.:

I have read the CLA Document and I hereby sign the CLA

I have read the CLA Document and I hereby sign the CLA

recheck

I have read the CLA Document and I hereby sign the CLA


DevKit PCB

The DevKit PCB is an implementation of the CAN bus shield onboarding project. The PCB will mate to a NUCLEO F446RE board as a shield and allow the user to connect to CAN networks and do CAN software development.

Schematic looks good to me

Awesome, I will go ahead and do a layout.

I did not do any high current calculations since the transceivers and LEDs have very low current requirements. The whole board should draw under 50 mA.
Good call on the terminal blocks for the CAN connectors. I will add those.
I will also add status LED labels
I may switch to a DIP switch that has the ON label directly on the part to prevent errors from soldering orientation. If I cannot find a switch like that, I will add the silkscreen instead.
The trace width difference between CAN1 and CAN2 was me forgetting to set it back 0.5mm after getting everything to fit. I will set it back to 0.5mm. I did not make one thicker on purpose. I did however make the Rx and Tx traces relatively wide since I had the space, making them smaller would not affect functionality.
In regard to avoiding vias on the diff pair routing, I am also unhappy with having vias. I think the only option to fully avoid using them is to route CANH and CANL independently and stack the switch and resistor on top of one another. With that being said, I think this configuration will be fine since we run a very low data rate. Altium's differential pair and length matching utility is more geared towards Ethernet and other faster interfaces with differential pairs. Another option is to use a software controllable termination (see link below from TI). My only concern with this is that we have never done it and it adds a lot of complexity to the board.

https://www.ti.com/lit/ug/tiducf3/tiducf3.pdf?ts=1606502291398

I left a 🟡 on IR calculations but it really should have been ✔ - N/A.  That all makes sense.
Taking a closer look at the datasheet for the switch, it looks like the current component is already a DIP switch with an ON label where the logo is in the 3D view in Altium. (https://www.digikey.ca/en/products/detail/omron-electronics-inc-emc-div/A6S-1104-PH/3102847)
The TI design would work but agreed, adding MOSFETS and software control seems overkill. This layout is probably fine for our applications but we should really test that.

I left a  on IR calculations but it really should have been  - N/A. That all makes sense.
Taking a closer look at the datasheet for the switch, it looks like the current component is already a DIP switch with an ON label where the logo is in the 3D view in Altium. (https://www.digikey.ca/en/products/detail/omron-electronics-inc-emc-div/A6S-1104-PH/3102847)
The TI design would work but agreed, adding MOSFETS and software control seems overkill. This layout is probably fine for our applications but we should really test that.

Makes sense, I had seen the logo on the 3D model but was unsure if it matched to the switch being on, I will leave it as is then. I agree we will have to test the layout, but my guess is that it should be ok given how low speed CAN is.


ENS resolver responds with wrong address for domain

Trying to resolve the domain name "deepak.eth":
val address = ens.getAddress(ENSName("deepak.eth"))

It responds with address 0x69c488Bcda156379B6661f08A35dB627E5D467Dd. But the expected address is 0x6942049509693fbb63d7F1395DAe5cFE1CCEc1BA (https://app.ens.domains/name/deepak.eth/details)

what RPC did you use?

background: I guess the node you speak to hangs somewhere (e.g. at the merge point as the IN3 nodes do currently) - and so you get a old result

what RPC did you use?

The default one. The ENS instance was initialized like this:
val ens = ENS(getMin3RPC())

this is the problem then - it uses the incubed RPC - unfortunately the incubed RPC never made it through the merge as blockchains.llc killed the project ;-(
Use another RPC and it should work fine


Separate migrations and view creations?

It is useful to refer back to views in source code, but if they are in amongst the migrations they may be difficult to find.
Also, a future migration is likely to break a view.
Run all view creation scripts after migrations have occurred somehow? @j4m3s what do you think about this?

The DB IDE (or SQL command line) will show the latest version of a view.  Do you mean in the scenario where you want to update a view (which involves deleting and recreating it)?  In that case I don't think it would make much difference to separate the two.  You'll still have to grep all of the files in the directory to look for the last file that drops & recreates the view.  I don't think it would any harder to do that in the migrations directory than in a separate Views directory.
Your last question is a real killer for the idea of separating the two actually - you have to interleave them somehow as the view will relate to the tables as they are at the point when they're defined.


Change the WorkspaceCleaner to load script services by new interface

Background
Workspace cleaner is resolving the script services by name via a service locator-style pattern, which is generally considered an anti-pattern.
This will also cause an issue in a forthcoming PR as the KubernetesScriptServiceV1Alpha will not be registered for normal tentacles, so we need a way to not resolve the services directly.
Results
This PR introduces a new interface, IRunningScriptReporter which is added to the appropriate script services and exposes a single IsRunningScript(ScriptTicket) method.
Then the workspace cleaner receives a list of registered IRunningScriptReporter's, which it then can do an Any() on to see if any of the services are running that script ticket.
To support this change, halibut services are now registered with the AsImplementedInterfaces()
Shortcut story: [sc-73757]
How to review this PR

Quality :heavy_check_mark:

Pre-requisites

[ ] I have read How we use GitHub Issues for help deciding when and where it's appropriate to make an issue.
[x] I have considered informing or consulting the right people, according to the ownership map.
[x] I have considered appropriate testing for my change.

#861 fixes the issue with the failing tests as the servers aren't registered in the expected scope

@sburmanoctopus I've updated the branch with autofac scope changes (#861), so the tests should pass now and is ready for a review :)


OCPBUGS-6320: Merge upstream/release-2.8

Merge master with upstream/release-2.8.
Refer: https://github.com/rhobs/syncbot/actions/runs/4159105761/jobs/7194854078

/test e2e-aws

I did a diff between your PR and the upstream release-2.8 branch and found one difference in go.mod:
--- a/go.mod
+++ b/go.mod
@@ -8,7 +8,7 @@ require (
        github.com/oklog/run v1.1.0
        github.com/prometheus/client_golang v1.14.0
        github.com/prometheus/client_model v0.3.0
-       github.com/prometheus/common v0.39.0
+       github.com/prometheus/common v0.37.0
        github.com/prometheus/exporter-toolkit v0.8.2
        github.com/robfig/cron/v3 v3.0.1
        github.com/spf13/cobra v1.6.1

Hmm, not sure what caused that discrepancy during the merge. I've updated the version and re-vendored, PTAL. Other than vendors, only the following files differ now.
.ci-operator.yaml
.dockerignore
.gitignore
Dockerfile.ocp
OWNERS

thanks!
/lgtm

/retest

/test e2e-agnostic-cmo


Fix shell_session_update command not found

The problem:
/Users/travis/.travis/job_stages: line 374: shell_session_update: command not found

This occurs on images with rvm 1.27.0, which can be found here:
travis-ci-macos10.12-xcode8.3-1507738863
travis-ci-osx10.11-xcode8-1479248015
travis-ci-osx10.11-xcode7.3-1480691248

This does not occur in any of these jobs: https://staging.travis-ci.org/joepvd/travis-staging-test/builds/731902

See also https://github.com/travis-ci/travis-ci/issues/9511


[suggestion] Add a transition mode for transition on list (v-for)

Hi,
I have a list of components which are rendered via an array prop like such :
<child-component is="example"
    v-for="item in myArrayProp"
    transition="bounce"
    stagger="200"
</child-component>

Fact is myArrayProp is already filled from the beginning and I would like to transition (bounce-in) the list at the beginning for the first time.
I could do it by triggering myself some class but I'll loose the benefit from the stagger effect.
To achieve it, I found no other way to dirty hack it with flush the prop at the beginning and refills after nextTick
So why not give the option to trigger the "enter" transition for the first time ?
Thanks

Yeah, I've been thinking about this, could be useful.

Glad to hear it will eventually be implemented in future versions. Thanks

I believe this should not take the name of transition-mode, because this would clash with the existing meaning of transition-mode.

This is implemented in 2.0 as the appear prop. Although we'd like to backport it to 1.x, this is a non-critical change that requires non-trivial effort. Given the bandwidth we have, we are reducing the scope of 1.1 to a number of critical features and low hanging fruits, so unfortunately this will not be implemented for 1.x.

It's been 2 years now. Is there any chance of implementing this on Vue2?

Did you read the comment just above yours? 😆

🤦♂, Sorry. I am a terrible reader.


Syslog over UDP doesn't work with Logging v2

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):
From Cluster Explorer > Logging:

Set up a ClusterOutput with a syslog over udp endpoint. (This was created using the form, but yaml provided for reference)

apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterOutput
metadata:
  name: testoutput
  namespace: cattle-logging-system
spec:
  syslog:
    buffer:
      flush_interval: "10"
    format:
      type: json
    host: rsyslog.syslog-logging.svc.cluster.local
    port: 514
    transport: udp

Set up a ClusterFlow with a catch-all rule:

apiVersion: logging.banzaicloud.io/v1beta1
kind: ClusterFlow
metadata:
  name: testflow
  namespace: cattle-logging-system
spec:
  globalOutputRefs:
  - testoutput
  match:
  - select: {}

Use tcpdump -u -i any port 514 on the host that fluentd is on to monitor traffic between fluentd and the syslog endpoint

Result:
No UDP traffic is seen leaving the fluentd pod.
No errors in the fluentd-configcheck or fluentd pod
Other details that may be helpful:
Once the protocol is changed from udp to tcp, logging functions as expected.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): v2.5.7
Installation option (single install/HA): HA

gz#15819

Hey,
we have the same issue with rancher-logging.

Rancher Version: 2.5.7
Chart Version (in Rancher WebUI Apps & Marketplace -> Logging ): 3.9.000 .
Fluentd Images tested: rancher/mirrored-banzaicloud-fluentd:v1.11.5-alpine-9, v1.11.5-alpine-12  , banzaicloud/fluentd:v1.11.5-alpine-13, v1.11.4-alpine-6.

Logs of fluentd process in fluentd container in rancher-logging-fluentd-0.cattle-logging-system  ( exec -- cat /fluentd/log/out ):
2021-04-29 14:48:10 +0000 [warn]: #0 [flow:namespace:defghi:output:namespace:abcdef] failed to flush the buffer. retry_time=0 next_retry_seconds=2021-04-29 14:48:11.481888884 +0000 chunk="5c11d93fa325
ebf8f8d2fdc8098a0893" error_class=Errno::EDESTADDRREQ error="Destination address required"
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/2.7.0/socket.rb:456:in `__write_nonblock'                                                                                2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/2.7.0/socket.rb:456:in `write_nonblock'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluent-plugin-syslog_rfc5424-0.9.0.rc.7/lib/fluent/plugin/out_syslog_rfc5424.rb:35:in `block in write'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/event.rb:325:in `each'                                                                                2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/event.rb:325:in `block in each'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/plugin/buffer/file_chunk.rb:171:in `open'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/event.rb:324:in `each'                                                                                2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluent-plugin-syslog_rfc5424-0.9.0.rc.7/lib/fluent/plugin/out_syslog_rfc5424.rb:33:in `write'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/plugin/output.rb:1136:in `try_flush'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/plugin/output.rb:1442:in `flush_thread_run'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/plugin/output.rb:462:in `block (2 levels) in start'
  2021-04-29 14:48:10 +0000 [warn]: #0 /usr/lib/ruby/gems/2.7.0/gems/fluentd-1.11.5/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'
2021-04-29 14:48:11 +0000 [warn]: #0 [flow:namespace:defghi:output:namespace:abcdef] failed to flush the buffer. retry_time=1 next_retry_seconds=2021-04-29 14:48:12<PHONE_NUMBER>1327940993/21990232555520
0000000 +0000 chunk="5c11d93fa325ebf8f8d2fdc8098a0893" error_class=Errno::EDESTADDRREQ error="Destination address required"
  2021-04-29 14:48:11 +0000 [warn]: #0 suppressed same stacktrace

Is there any chance to get the UDP functionality fixed in rancher-logging??

We're seeing the same problem in Rancher v2.5.11

As a workaround, try a different image in the Helm chart. (Credit goes to Sheilagh at https://github.com/rancher/rancher/issues/35197#issue-1030778932 )
Switch from this:
    image:
      repository: rancher/mirrored-banzaicloud-fluentd
      tag: v1.13.3-alpine-XX

To the latest compatible version shown at https://github.com/orgs/banzaicloud/packages/container/package/fluentd . For compatibility, if you're using v1.13.x Rancher image, stick with the v1.13.x image provided by Banzaicloud.
images:
  fluentd:
    repository: ghcr.io/banzaicloud/fluentd
    tag: v1.13.3-alpine-14

This seems to be fixed in rancher-logging:3.15.0 which was released recently. That includes the following image:
        fluentd:
          repository: rancher/mirrored-banzaicloud-fluentd
          tag: v1.13.3-alpine-11

@stefanlasiewski  Thanks for testing!
@ryanelliottsmith Can you confirm this works as expected in latest released version?

Pass verified in 2.6-head Commit ID 8cc8121

provisioned a syslog server
created a cluster output with server ip and port 514 / UDP
created a deployment on cluster
tailed syslog on syslog server

Logs flowed via UDP


Clipped duration is reset upon stopping

Current Behavior:
Through the new remote API (thanks btw) #1330 you can setup the clip end and clip start timestamps of the video. Upon playing and stopping the timeline resets to the original duration.
Expected Behavior:
Upon changing the clipping timestamps the progress should stay consistent.
Steps To Reproduce:

Visit https://codesandbox.io/p/sandbox/vidstack-src-switch-desktop-to-mobile-forked-tx2jrz?file=%2Fsrc%2Fplayer.tsx%3A145%2C5-145%2C31 or https://tx2jrz.csb.app/
Click the "Set start to 2 and end to 5" button.
Play the video
Upon stopping the thumb of the timeline gets reset to the previous duration (~10s)

Reproduction Link:
https://tx2jrz.csb.app/
Environment:

Framework: React

I'm not able to repro the issue or maybe I don't understand. I pressed "set start to 2 and end to 5", the duration is correctly 3 seconds, playing and pausing doesn't cause any reset.

Hi @mihar-22 , here's how to reproduce:

Start player.
Press the set start to 2 and end to 5 button.
Wait for the clip to finish, once done observe the progress thumb stuck in the middle of the video.


💡 [REQUEST] - Theme changing button

Start Date
No response
Implementation PR
No response
Reference Issues
#103 should be completed first to make this achievable
Summary
A button should be included on the main screen that allows the user to toggle between two themes in the application.
Basic Example
When the button is clicked the theme of the application will change.
Drawbacks
No response
Unresolved questions
No response

Good idea. Having more than one theme will improve the user experience for the application


🚀 Feature: [kubernetes-* plugins] let authentication use from scratch OIDC providers

🔖 Feature description
I want to use "from scratch" oidc provider to authenticate with the kubernetes plugin - thats not possible,
(or it's possible and we have no idea how - and we could improve the documentation on this)
🎤 Context
We want to use AWS Cognito as OIDC Provider with our EKS cluster together with backstage and the Kubernetes plugin.
We followed the setup process and added AWS Cognito as a generic OIDC provider to backstage.
Then we tried to add it to the Kubernetes plugin, but ended up with this error:
KubernetesAuthProviders has no oidcProvider configured for oidc.cognito
after digging around in the code, we found out, that this error is thrown here
The constructor/factory then disclosed the secret - there is a predefined list that limits the OIDC providers to:
gitlab: gitlabAuthApi,
google: googleAuthApi,
microsoft: microsoftAuthApi,
okta: oktaAuthApi,
onelogin: oneloginAuthApi,

The docs don't give a hint how own providers can be used. We thought we can use every OIDC provider - even those from scratch.
other docs
✌ Possible Implementation
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

As you noticed, the Kubernetes plugin defines a default API factory for the kubernetesAuthProvidersApiRef here:
https://github.com/backstage/backstage/blob/d2af76ffb6a105dfec1310733f5ca8e316872116/plugins/kubernetes/src/plugin.ts#L66-L96
but as an integrator you can override it with your own implementation by customizing the apis parameter to createApp, e.g. instead of
https://github.com/backstage/backstage/blob/d2af76ffb6a105dfec1310733f5ca8e316872116/packages/app/src/App.tsx#L116-L117
in your case you could have something like
const app = createApp({
  apis: [
    createApiFactory({
      api: kubernetesAuthProvidersApiRef,
      deps: {
        cognitoAuthApi: cognitoAuthApiRef,
        googleAuthApi: googleAuthApiRef,
        microsoftAuthApi: microsoftAuthApiRef,
      },
      factory: ({
        cognitoAuthApi,
        googleAuthApi,
        microsoftAuthApi,
      }) => {
        return new KubernetesAuthProviders({
          microsoftAuthApi,
          googleAuthApi,
          oidcProviders: {
            cognito: cognitoAuthApi,
          },
        });
      },
    }),
    ...apis,
  ],

Mind you, this exact snippet would change things so that only cognito was a valid oidcTokenProvider but hopefully you get the idea.
There are no docs describing this, though -- do you mind if I label this as a docs issue, or do you think there's still something lacking in the code?

Hi, we were able to implement this as you described it! Thank you a lot!
One thing is odd, our from scratch auth provider does not show up under settings -> authentication providers and we have to login again every time we visit the kubernetes tab in our component. Do you have an idea, how we can decrease the logins for this provider?
Apart from this - yes - it's only docs!

I think the set of authentication providers in the settings page is something that is controlled separately by the user-settings plugin. However it sounds like your custom auth provider might not be retrieving/handling refresh tokens properly -- natural things to check are whether you're requesting the offline_access scope and whether an oidc-refresh-token cookie is present.

So, just checked - I have an cognito-refresh-token (the name of my auth provider is cognito).
I can't request 'offline' or 'offline_access' as a scope.
But as I have a refresh token in a cookie, it should work - but it does not. Any further ideas what I can check?

Maybe this depends a bit on the frontend implementation you have for this auth provider - Did you follow these docs and use OAuth2.create?

Yes, that's what we did:
createApiFactory({
    api: cognitoOIDCAuthApiRef,
    deps: {
      discoveryApi: discoveryApiRef,
      oauthRequestApi: oauthRequestApiRef,
      configApi: configApiRef,
    },
    factory: ({ discoveryApi, oauthRequestApi, configApi }) =>
      OAuth2.create({
        discoveryApi,
        oauthRequestApi,
        configApi,
        provider: {
          id: 'cognito',
          title: 'Cognito',
          icon: () => null,
        },
        environment: configApi.getOptionalString('auth.environment'),

        defaultScopes: ['openid', 'email', 'profile'],
        popupOptions: {
          // optional, used to customize login in popup size
          size: {
            fullscreen: true,
          },
          /**
           * or specify popup width and height
           * size: {
              width: 1000,
              height: 1000,
            }
           */
        },
      }),
  }),

tl;dr: maybe you can check the expiry timestamp for the tokens you're getting from cognito, or make a closer inspection of the request your browser is (hopefully) making to the refresh endpoint for your auth provider?
I'm a little stumped -- I'll include a bunch of information that I tend to use in situations like this and hopefully it'll jog something for you. What should happen when you open the Kubernetes tab is:

The OidcKubernetesAuthProvider calls getIdToken on your custom OpenIdConnectApi implementation:
https://github.com/backstage/backstage/blob/e4781ab1e92cfd5cc7c43d1d13bdebbc9e7215ee/plugins/kubernetes-react/src/kubernetes-auth-provider/OidcKubernetesAuthProvider.ts#L48
Since you're using OAuth2, it delegates to its sessionManager:
https://github.com/backstage/backstage/blob/e4781ab1e92cfd5cc7c43d1d13bdebbc9e7215ee/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts#L199-L202
That particular session manager does have some caveats around forcing a refresh -- so maybe worth following these docs to figure out what exactly the providerInfo.expiresAt value is:
https://github.com/backstage/backstage/blob/e4781ab1e92cfd5cc7c43d1d13bdebbc9e7215ee/packages/core-app-api/src/apis/implementations/auth/oauth2/OAuth2.ts#L141-L157
In any case, the first thing that session manager will try to do is use a refresh token to get the desired scopes:
https://github.com/backstage/backstage/blob/e4781ab1e92cfd5cc7c43d1d13bdebbc9e7215ee/packages/core-app-api/src/lib/AuthSessionManager/RefreshingAuthSessionManager.ts#L100-L102
And in this case, that works by hitting /api/auth/cognito/refresh -- can you see that request in your browser's dev tools? Is it giving a 401?:    https://github.com/backstage/backstage/blob/e4781ab1e92cfd5cc7c43d1d13bdebbc9e7215ee/packages/core-app-api/src/lib/AuthConnector/DefaultAuthConnector.ts#L137-L150

FWIW we should probably distinguish this OIDC troubleshooting thread from the core topic of this issue, which is the lacking documentation for custom KubernetesAuthProvidersApi implementations... For future readers, from this comment onwards we changed topic.

Just saw https://github.com/backstage/backstage/issues/20322#issuecomment-1747271192 -- not sure if it's at all related, but it reminded me of this.

Thank you a lot for your Help!
I looked into the requests via networking tab and I think it looks fine:
GET to http://localhost:7007/api/auth/cognito/refresh?optional&scope=openid&env=development
with header containing the cookie with cognito-refresh-token
Response is 200 with
{
    "backstageIdentity": {
        "token": "valid token from backstage",
        "expiresInSeconds": 3599,
        "identity": {
            "type": "user",
            "userEntityRef": "user:default/88a953a1-f1b0-4cb5-9589-ee991143cb83",
            "ownershipEntityRefs": [
                "user:default/88a953a1-f1b0-4cb5-9589-ee991143cb83"
            ]
        }
    },
    "providerInfo": {
        "idToken": "valid token with ...
             auth_time:<PHONE_NUMBER>, => 10 minutes ago
             exp:<PHONE_NUMBER>, => in 50 minutes
              iat<PHONE_NUMBER>, => now"
        "accessToken": "valid token",
        "expiresInSeconds": 3600
    },
    "profile": {
        "displayName": "Markus Siebert",
        "email": "..."
    }
}

No scope in providerInfo ...
But even with this successfull request on klicking on the kubernetes tab, the login window appears (after the refresh call was already successfull)

Just wanted to let you know ...
Also tried the changes from the PR from your last comment - nothing changed

One additional information: today confirmed that the token from the refresh call response is valid. And it is - it's refreshed without clicking on the LOG IN Button, but somehow it isn't used.
We also see, that our refresh token is encrypted with:
"cty": "JWT",
"enc": "A256GCM",
"alg": "RSA-OAEP"
don't know if this matters.
We added some console.logs to the plugin auth node refresh call for OIDC, but this is only called for our gitlab integration - not for the cognito oauth.

After further investigation we found out, that the scope was missing, when calling the refresh method located in the OidcAuthProvider: https://github.com/backstage/backstage/blob/856d08057a96271abd608c19a16f21622b66fad4/plugins/auth-backend/src/providers/oidc/provider.ts#L127-L132
Therefore we've added the following line:
tokenset.scope = req?.scope
after calling the client.refresh() method, to manually add the missing scopes which are configured in our app-config.yaml.
With these changes applied no relogin is required after refreshing the page or the scheduled refresh is triggered.
Is this an Issue on our side or a bug in the auth-backend plugin?

@dariozachow do you and @markussiebert work together/use the same setup? Or are you encountering the same symptom with a different configuration?

Yeah,  we are working with the same code and configuration of our backstage project.
Therefore having the same problems with the oidc login.


feat(base-cluster/velero): increase velero resources

The nodeAgent limits are not needed?

They are, i've just added them


Doesn't list pwned passwords

Hi,
at first thank you very much for the plug-in. Ever since I knew HIBP I thought of such a plug.
I have installed it and tried to use it. Unfortunately despite the fact there are pwned passwords in my database the plug did not list them at all. Does it check passwords or accounts/e-mails only?
Have a nice day!
regards
p.h.

It doesn't directly check the passwords, no.
It goes through each entry and checks the domain in the URL field against the HIBP breach list.
The ability to check for duplicate/similar passwords already exists in KeePass, so I'd recommend that if the plugin detects a breached entry, use the built-in functionality to see if that password is shared with other entries.

The problem is a user can have passwords that are widely known as insecure, despite the fact they never breached. Let's say Top5 popular password. The plugin will not tell him/her the password is not secure, which will eventually lead to false sense of security, as all passwords were checked by the plug...
I do have some passwords which HIBP has on a list, but never breached. I have created secure HIBP wrapper website, which uses javascript to hash user entered password to SHA-1 before sending it to HIBP for being checked. I guess Your plugin could check passwords in a similar way.
What do You think?

Would be nice feature but I think this should perhaps support only a offline operation, so user (manually) or plugin downloads the password lists from https://haveibeenpwned.com/Passwords and then you could check all your passwords against the offline list. The manual method would be sufficient enough at least for me.
It's not that haveibeenpwned.com would be unsecure but the fact that end users should not be checking their real passwords online, check out https://www.troyhunt.com/introducing-306-million-freely-downloadable-pwned-passwords/

I'll admit I wasn't aware that Troy had published that page, however as you say, submitting live passwords to it would be a bad idea anyway.
It's trivial to create SHA1 hashes of password that are stored in keepass, which could then be compared against the HIBP password lists however there are 2 technical issues that could/would cause an issue here:

The HIBP API has a rate limit of 1500ms between requests, which would make live-checking quite slow if you have many passwords (300 passwords, assuming no duplicates, would take at least 7.5 minutes to check)
The offline file is massive (>11GB plain text uncompressed) which itself poses issues parsing and processing (I'm assuming Troy has just got these loaded into a SQL DB which will find the results very quickly).

How about importing those text-files to local NoSQL db and quering that for faster search results? Or some hashlib for C#
At least this for python is very fast https://gist.github.com/alexanderzobnin/09db0c9f74754d32d3c2538d4d6a3b0d

Ad. 1. There is no need to achieve live-checking. It could be implemented as background process and take as much time as needed obeying API's limit. Please note it would be required only once - after plugin installation. Just for the first, initial scan. From then on only changed or new passwords would be checked.
Ad 2. One can download such a huge file once, but he/she would have to check from time to time if the file is up to date and download it once again in case it wasn't. Very inconvenient and unnecessary.

I've just released v1.2 which adds a simple (no background checking, marking of already checked entries) version of both username and password checking.

Thanks a lot! Works fine for me.
The only thing is I am wondering if having the passwords marked as expired wouldn't be a good idea? (In addition to changing expiry date to current day).

Sorry, that's a bug. It should actually expire the entry as well.

Well, I just checked and if you have "expire breached entries" checked on the settings dialog, it does in fact set the expire flag on any breached entries.


Update setup.py

Codecov Report

Merging #101 (c33b9dc) into main (3631a5a) will decrease coverage by 35.33%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #101       +/-   ##
===========================================
- Coverage   72.68%   37.35%   -35.33%
===========================================
  Files          26       26
  Lines        1574     1574
===========================================
- Hits         1144      588      -556
- Misses        430      986      +556

Flag
Coverage Δ

unittests
37.35% <ø> (-35.33%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 17 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Extract Python scripts out of GitHub workflows

Problem
Because of their ease of use, the use of Python-based scripts inside GitHub workflows has increased a lot.
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/ci_cd.yml#L78
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/ci_cd.yml#L828
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/deploy-production-api.yml#L62
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/deploy-production-nuxt.yml#L62
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/deploy-staging-api.yml#L62
https://github.com/WordPress/openverse/blob/46a19a5776e747fd2b6111787222f2e6efc5afe3/.github/workflows/deploy-staging-nuxt.yml#L62
These Python scripts are not being linted, formatted or checked in any way. Contrast this with Bash scripts inside workflows that are linted by ShellCheck.
Description

The solution is to keep them in a directory inside the codebase, possibly with automations/python.
Additional context

They can be kept separate from automations/python too, considering their usage, but these are all standalone scripts that do not need any packages to be installed.

In fact, the last 4 Python scripts referenced above (in the ECS deployment workflows) are basically identical, and can be replaced by a single one that takes arguments using argparse.

Hi , I would like to work on this issue, could you please tell me where argparse is needed, as I see none of the above python scripts needs input.

@rahulbollisetty your point is valid. I was wrong, argparse might not be needed for this. These scripts can read continue to read environment variables as they do now.


issues with update-schema script

Describe the bug
I am using nightly composer and I see below error when try to run update-schema script
.\update-schema.ps1
Running schema merge.
module.js:487
throw err;
^
Error: Cannot find module 'C:\Users\prvavill\AppData\Roaming\npm\node_modules@microsoft\botframework-cli\bin\run'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
Schema merge failed. Restoring previous versions.
PS D:\Kustofeatures\bot\GaiaTestCustomActions\GaiaTestCustomActions\schemas> .\update-schema.ps1
Running schema merge.
module.js:487
throw err;
^
Version

Browser

[ ] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[x] Windows

To Reproduce
Steps to reproduce the behavior:

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

Expected behavior

Screenshots

Additional context

@praveenvavilla   can you share your project setup and the previous steps before you run update-schema?
@benbrown is this update-schema still needed when doing custom actions?

I noticed that there is a error while installing bot framework cli, may be this is an issue here

@praveenvavilla What node version are you currently on? The botframework-cli needs Node 12 version to run on.

@srinaath Thanks for the prompt reply. Please continue helping the customer on this issue.

Closing this ticket. Connected with customer offline and the issue was with the Node version being in 8.0.