CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]

Hi,
I have following solver error. Would you help me to solve this issue?
=code=
model = pybamm.lithium_ion.DFN({"thermal": "x-full"})
timescale = parameter_values.evaluate(model.timescale)
sim = pybamm.Simulation(model,parameter_values=parameter_values)
sim.solve(t_eval=np.arange(0, 5000, 1),solver=pybamm.CasadiSolver(mode="safe", rtol=1e-9, atol=1e-9))
sim.plot()
=== error message ==
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
Newton/Linesearch algorithm failed to converge.
Newton/Linesearch algorithm failed to converge.
At t = 1.48116e-006, , mxstep steps taken before reaching tout.
At t = 1.48116e-006, , mxstep steps taken before reaching tout.
At t = 1.48116e-006, , mxstep steps taken before reaching tout.
SolverError                               Traceback (most recent call last)
 in
2 timescale = parameter_values.evaluate(model.timescale)
3 sim = pybamm.Simulation(model,parameter_values=parameter_values)
----> 4 sim.solve(t_eval=np.arange(0, 5000, 1),solver=pybamm.CasadiSolver(mode="safe", rtol=1e-9, atol=1e-9))
5 sim.plot()
~\Documents\PyBaMM\pybamm\simulation.py in solve(self, t_eval, solver, external_variables, inputs, check_model)
416
417             self.t_eval = t_eval
--> 418             self._solution = solver.solve(self.built_model, t_eval, inputs=inputs)
419
420         elif self.operating_mode == "with experiment":
~\Documents\PyBaMM\pybamm\solvers\base_solver.py in solve(self, model, t_eval, external_variables, inputs)
573             timer.reset()
574             new_solution = self._integrate(
--> 575                 model, t_eval_dimensionless[start_index:end_index], ext_and_inputs
576             )
577             new_solution.solve_time = timer.time()
~\Documents\PyBaMM\pybamm\solvers\casadi_solver.py in _integrate(self, model, t_eval, inputs)
191                             solving the model up to this time only or reducing dt_max.
192                             """.format(
--> 193                                 t
194                             )
195                         )
SolverError:
Maximum number of decreased steps occurred at t=0.0. Try
solving the model up to this time only or reducing dt_max.

Hi @gyouhoc
Can I ask what parameter values you are using? Running the below works ok
import pybamm
import numpy as np

pybamm.set_logging_level("INFO")

model = pybamm.lithium_ion.DFN({"thermal": "x-full"})
parameter_values = model.default_parameter_values
sim = pybamm.Simulation(model, parameter_values=parameter_values)
sim.solve(
    t_eval=np.arange(0, 5000, 1),
    solver=pybamm.CasadiSolver(mode="safe", rtol=1e-9, atol=1e-9),
)
sim.plot()

but you do get a Newton/Linesearch algorithm failed to converge. warning. The model actually only makes it up to 3654s before hitting the voltage cutoff (you can check this by looking at sim.solution["Time [s]"].entries ). The warning comes from where the solver tries to step past the event and fails. This step is then rejected and a shorter internal time step is made.
My first guess was that what is happening is that you are hitting some event, but because the tolerances are tight the solver is trying hard to hone in on the event time and taking more steps than the maximum allowed (you can change the max steps as an option). However, it looks like it fails at t=0, so maybe this isn't the case...
Could you try integrating for a shorter time, even just a few seconds, to see if it makes it past the first step?

These are my parameter values.
{'1 + dlnf/dlnc': 1.0,
'Activation_energy_electrolyte': 34700,
'Ambient temperature [K]': 298.15,
'Cation transference number': 0.2594,
'Cell capacity [A.h]': 5.0,
'Current function [A]': 5.0,
'DESIGN_ANODE_DENSITY_HOST': 2266,
'DESIGN_ANODE_MOLWT_HOST': 0.072064,
'DESIGN_ANODE_NLI_HOST': 0.727,
'DESIGN_ANODE_STOICHMAX': 1,
'DESIGN_ANODE_VF_IM': 0.0351,
'DESIGN_CATHODE_DENSITY_HOST': 4800,
'DESIGN_CATHODE_MOLWT_HOST': 0.088945,
'DESIGN_CATHODE_NLI_HOST': 0.75,
'DESIGN_CATHODE_STOICHMAX': 1,
'DESIGN_CATHODE_STOICHMIN': 0.398,
'DESIGN_CATHODE_VF_IM': 0.125094,
'DESIGN_CELL_ICL_FRAC_CATUSE': 0.06,
'DESIGN_CELL_NP_RATIO': 1.153,
'Edge heat transfer coefficient [W.m-2.K-1]': 0.3,
'Electrode height [m]': 0.089,
'Electrode width [m]': 2.34,
'Electrolyte conductivity [S.m-1]': <function electrolyte_conductivity_Nyman2008 at 0x000001A208841048>,
'Electrolyte diffusivity [m2.s-1]': <function electrolyte_diffusivity_Nyman2008 at 0x000001A207832E18>,
'Electrolyte_diffusion_activation_energy': 37040,
'Initial concentration in electrolyte [mol.m-3]': 1200.0,
'Initial concentration in negative electrode [mol.m-3]': 18081.0,
'Initial concentration in positive electrode [mol.m-3]': 20090.0,
'Initial temperature [K]': 298.15,
'Lower voltage cut-off [V]': 2.5,
'Maximum concentration in negative electrode [mol.m-3]': 25000.0,
'Maximum concentration in positive electrode [mol.m-3]': 40500.0,
'Negative current collector conductivity [S.m-1]': 58411000.0,
'Negative current collector density [kg.m-3]': 7925.311203,
'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0,
'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0,
'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0,
'Negative current collector thickness [m]': 9.1e-06,
'Negative electrode Bruggeman coefficient (electrode)': 1.5,
'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,
'Negative electrode OCP [V]': <function graphite_ocp_NCM2020 at 0x000001A207832730>,
'Negative electrode OCP entropic change [V.K-1]': 0.0,
'Negative electrode active material volume fraction': 0.727,
'Negative electrode cation signed stoichiometry': -1.0,
'Negative electrode charge transfer coefficient': 0.5,
'Negative electrode conductivity [S.m-1]': 100.0,
'Negative electrode density [kg.m-3]': 1875.0,
'Negative electrode diffusivity [m2.s-1]': <function graphite_diffusivity_NCM2020_peter at 0x000001A2078328C8>,
'Negative electrode double-layer capacity [F.m-2]': 0.2,
'Negative electrode electrons in reaction': 1.0,
'Negative electrode exchange-current density [A.m-2]': <function graphite_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x000001A207832598>,
'Negative electrode porosity': 0.39,
'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,
'Negative electrode surface area to volume ratio [m-1]': 345000.0,
'Negative electrode thermal conductivity [W.m-1.K-1]': 1.137,
'Negative electrode thickness [m]': 4.46e-05,
'Negative particle distribution in x': 1.0,
'Negative particle radius [m]': 5e-06,
'Negative tab centre y-coordinate [m]': 0.098,
'Negative tab centre z-coordinate [m]': 1.235,
'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0,
'Negative tab width [m]': 0.13,
'Number of cells connected in series to make a battery': 1.0,
'Number of electrodes connected in parallel to make a cell': 1.0,
'Positive current collector conductivity [S.m-1]': 36914000.0,
'Positive current collector density [kg.m-3]': 2679.2452829999997,
'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0,
'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0,
'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0,
'Positive current collector thickness [m]': 1.51e-05,
'Positive electrode Bruggeman coefficient (electrode)': 1.5,
'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,
'Positive electrode OCP [V]': <function nmc_ocp_NMC2020 at 0x000001A207832C80>,
'Positive electrode OCP entropic change [V.K-1]': 0.0,
'Positive electrode active material volume fraction': 0.75,
'Positive electrode cation signed stoichiometry': -1.0,
'Positive electrode charge transfer coefficient': 0.5,
'Positive electrode conductivity [S.m-1]': 100.0,
'Positive electrode density [kg.m-3]': 4800.0,
'Positive electrode diffusivity [m2.s-1]': <function nmc_diffusivity_NMC2020 at 0x000001A207832AE8>,
'Positive electrode double-layer capacity [F.m-2]': 0.2,
'Positive electrode electrons in reaction': 1.0,
'Positive electrode exchange-current density [A.m-2]': <function nmc_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x000001A207832BF8>,
'Positive electrode porosity': 0.416,
'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,
'Positive electrode surface area to volume ratio [m-1]': 550687.2,
'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,
'Positive electrode thickness [m]': 4.55e-05,
'Positive particle distribution in x': 1.0,
'Positive particle radius [m]': 5.22e-06,
'Positive tab centre y-coordinate [m]': 0.147,
'Positive tab centre z-coordinate [m]': 0.13699999999999998,
'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0,
'Positive tab width [m]': 2.35,
'Reference OCP vs SHE in the negative electrode [V]': nan,
'Reference OCP vs SHE in the positive electrode [V]': nan,
'Reference temperature [K]': 298.15,
'Separator Bruggeman coefficient (electrode)': 1.5,
'Separator Bruggeman coefficient (electrolyte)': 1.5,
'Separator density [kg.m-3]': 757.0,
'Separator porosity': 0.46,
'Separator specific heat capacity [J.kg-1.K-1]': 700.0,
'Separator thermal conductivity [W.m-1.K-1]': 0.19,
'Separator thickness [m]': 1.7e-05,
'Typical current [A]': 5.0,
'Typical electrolyte concentration [mol.m-3]': 1000.0,
'Upper voltage cut-off [V]': 4.1,
'anode_D_ref': 3.9e-14,
'anode_E_D_s': 3000,
'anode_E_ex': 35000,
'anode_m_ref': 6.48e-07,
'cathode_D_ref': 3e-14,
'cathode_E_D_s': 30000,
'cathode_E_ex': 50000,
'cathode_m_ref': 3.59e-06,
'cathode_stretch': 1}
with some updates below.
parameter_values["Maximum concentration in positive electrode [mol.m-3]"] = parameter_values["DESIGN_CATHODE_NLI_HOST"]parameter_values["DESIGN_CATHODE_DENSITY_HOST"]/parameter_values["DESIGN_CATHODE_MOLWT_HOST"]
parameter_values["Maximum concentration in negative electrode [mol.m-3]"] = parameter_values["DESIGN_ANODE_NLI_HOST"]parameter_values["DESIGN_ANODE_DENSITY_HOST"]/parameter_values["DESIGN_ANODE_MOLWT_HOST"]
parameter_values["Initial concentration in electrolyte [mol.m-3]"] = 1200
#parameter_values["Initial concentration in negative electrode [mol.m-3]"] = 0.83parameter_values["Maximum concentration in negative electrode [mol.m-3]"]
#parameter_values["Initial concentration in positive electrode [mol.m-3]"] = 0.378parameter_values["Maximum concentration in positive electrode [mol.m-3]"]
parameter_values["DESIGN_CATHODE_STOICHMAX"] = 1 - parameter_values["DESIGN_CELL_ICL_FRAC_CATUSE"]
#parameter_values["Negative electrode active material volume fraction"] = 0.8
#parameter_values["Positive electrode active material volume fraction"] = 0.8
parameter_values["Positive electrode porosity"] = 0.416
parameter_values["Negative electrode porosity"] = 0.39
parameter_values["Positive electrode active material volume fraction"] = 1-parameter_values["Positive electrode porosity"] - parameter_values["DESIGN_CATHODE_VF_IM"]
parameter_values["Positive electrode surface area to volume ratio [m-1]"] = 3 * parameter_values["Positive electrode active material volume fraction"] /parameter_values["Positive particle radius [m]"]
parameter_values["DESIGN_ANODE_STOICHMAX"] = (1/parameter_values["DESIGN_CELL_NP_RATIO"])*((parameter_values["DESIGN_CATHODE_STOICHMAX"]-parameter_values["DESIGN_CATHODE_STOICHMIN"])/(1-parameter_values["DESIGN_CATHODE_STOICHMIN"]))
num = parameter_values["Positive electrode thickness [m]"]parameter_values["Maximum concentration in positive electrode [mol.m-3]"](1-parameter_values["DESIGN_CATHODE_STOICHMIN"])
den = parameter_values["Negative electrode thickness [m]"]parameter_values["Maximum concentration in negative electrode [mol.m-3]"](1-0)
parameter_values["Negative electrode active material volume fraction"] = parameter_values["Positive electrode active material volume fraction"]parameter_values["DESIGN_CELL_NP_RATIO"](num/den)
parameter_values["Negative electrode porosity"] = 1-parameter_values["Negative electrode active material volume fraction"] - parameter_values["DESIGN_ANODE_VF_IM"]
#parameter_values["Negative electrode active material volume fraction"] = 1-parameter_values["Negative electrode porosity"] - 0.03510
#parameter_values["Positive electrode active material volume fraction"] = 1-parameter_values["Positive electrode porosity"] - parameter_values["DESIGN_CATHODE_VF_IM"]
#parameter_values["Positive electrode surface area to volume ratio [m-1]"] = 3 * parameter_values["Positive electrode active material volume fraction"] /parameter_values["Positive particle radius [m]"]
parameter_values["Negative electrode surface area to volume ratio [m-1]"] = 3 * parameter_values["Negative electrode active material volume fraction"] /parameter_values["Negative particle radius [m]"]
parameter_values["Initial concentration in negative electrode [mol.m-3]"] = parameter_values["DESIGN_ANODE_STOICHMAX"]+0.01
parameter_values["Initial concentration in positive electrode [mol.m-3]"] = parameter_values["DESIGN_CATHODE_STOICHMIN"]-0.01

did integrating for a shorter time work? would be good to find out if one of the parameter values is responsible. looks like you end up with something like a divide by 0 somewhere

keep looping :)
==code==
model = pybamm.lithium_ion.DFN({"thermal": "x-full"})
timescale = parameter_values.evaluate(model.timescale)
sim = pybamm.Simulation(model,parameter_values=parameter_values)
sim.solve(t_eval=np.arange(0, 0.5, 0.1),solver=pybamm.CasadiSolver(dt_max=0.1))
sim.plot()
==warning==
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 20, col 0).") [.../casadi/core/oracle_function.cpp:265]
CasADi -  WARNING("roots:g failed: Inf detected for output x, at (row 0, col 0).") [.../casadi/core/oracle_function.cpp:265]
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49921e-006 and h = 4.02258e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49921e-006 and h = 4.02279e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49921e-006 and h = 4.0227e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.50004e-006 and h = 2.99898e-018, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49963e-006 and h = 2.22111e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49923e-006 and h = 2.04662e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49923e-006 and h = 2.06655e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49948e-006 and h = 1.52623e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49921e-006 and h = 2.88299e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49923e-006 and h = 2.38735e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49894e-006 and h = 2.69282e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49988e-006 and h = 1.11163e-017, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.50018e-006 and h = 1.0094e-020, the corrector convergence failed repeatedly or with |h| = hmin.
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
psetup failed: .../casadi/interfaces/sundials/idas_interface.cpp:827: Calculating Jacobian failed
At t = 1.49989e-006 and h = 6.37792e-018, the corrector convergence failed repeatedly or with |h| = hmin.

ok, seems like it might be to do with one of the parameters. have you been able to run using these parameters before? you could try running without thermal to help narrow down which parameters are responsible. you could also try simpler models (e.g. try SPM to see if the problem is in the electrolyte parameters)

the updated parameters are new.
I tried following code but I still have a same issue.
==Code ==
model = pybamm.lithium_ion.DFN()
timescale = parameter_values.evaluate(model.timescale)
sim = pybamm.Simulation(model,parameter_values=parameter_values)
sim.solve(t_eval=np.arange(0, 0.5, 0.1),solver=pybamm.CasadiSolver(dt_max=0.1))
sim.plot()

does the code run with the first dictionary of parameter values you posted, before the updates? if yes, then you could try just updating a few at a time to see when it breaks

when I use SPM, it seems like I am able to solve the equations.
I will find the parameter that breaks the simulation as you describe.
==Code ==
model = pybamm.lithium_ion.SPM()
timescale = parameter_values.evaluate(model.timescale)
sim = pybamm.Simulation(model,parameter_values=parameter_values)
sim.solve(t_eval=np.arange(0, 3700, 1),solver=pybamm.CasadiSolver(dt_max=0.1))
sim.plot()
==Error==

SolverError                               Traceback (most recent call last)
 in
3 sim = pybamm.Simulation(model,parameter_values=parameter_values)
4 sim.solve(t_eval=np.arange(0, 3700, 1),solver=pybamm.CasadiSolver(dt_max=0.1))
----> 5 sim.plot()
~\Documents\PyBaMM\pybamm\simulation.py in plot(self, quick_plot_vars, testing)
555
556         self.quick_plot = pybamm.dynamic_plot(
--> 557             self._solution, output_variables=quick_plot_vars, testing=testing
558         )
559
~\Documents\PyBaMM\pybamm\quick_plot.py in dynamic_plot(*args, **kwargs)
58     """
59     kwargs_for_class = {k: v for k, v in kwargs.items() if k != "testing"}
---> 60     plot = pybamm.QuickPlot(*args, **kwargs_for_class)
61     plot.dynamic_plot(kwargs.get("testing", False))
62     return plot
~\Documents\PyBaMM\pybamm\quick_plot.py in init(self, solutions, output_variables, labels, colors, linestyles, figsize, time_unit, spatial_unit, variable_limits)
270                     )
271
--> 272         self.set_output_variables(output_variable_tuples, solutions)
273         self.reset_axis()
274
~\Documents\PyBaMM\pybamm\quick_plot.py in set_output_variables(self, output_variables, solutions)
297                 variables[i] = []
298                 for var in variable_tuple:
--> 299                     sol = solution[var]
300                     # Check variable isn't all-nan
301                     if np.all(np.isnan(sol.entries)):
~\Documents\PyBaMM\pybamm\solvers\solution.py in getitem(self, key)
195         else:
196             # otherwise create it, save it and then return it
--> 197             self.update(key)
198             return self._variables[key]
199
~\Documents\PyBaMM\pybamm\solvers\solution.py in update(self, variables)
163             else:
164                 var = pybamm.ProcessedVariable(
--> 165                     self.model.variables[key], self, self._known_evals
166                 )
167
~\Documents\PyBaMM\pybamm\solvers\processed_variable.py in init(self, base_variable, solution, known_evals)
66             if len(solution.t) == 1:
67                 raise pybamm.SolverError(
---> 68                     "Solution time vector must have length > 1. Check whether "
69                     "simulation terminated too early."
70                 )
SolverError: Solution time vector must have length > 1. Check whether simulation terminated too early.

I think I found the issue. This is a silly mistake. Sorry for this. One of the parameters is not well defined.
thx


Is the message about where to get support still visible?

We have the following .env.local, and no other .env* file.
FRACTAL_SERVER_HOST=http:// something

# AUTH COOKIE
AUTH_COOKIE_NAME=fastapiusersauth
AUTH_COOKIE_SECURE=false
# remember to set this in production
AUTH_COOKIE_DOMAIN=...
AUTH_COOKIE_PATH=/
AUTH_COOKIE_MAX_AGE=1800
AUTH_COOKIE_SAME_SITE=lax
AUTH_COOKIE_HTTP_ONLY=true

# PUBLIC VARIABLES (accessible from client side)
PUBLIC_FRACTAL_ADMIN_SUPPORT_EMAIL= a correct email address
PUBLIC_UPDATE_JOBS_INTERVAL=3000
PUBLIC_OAUTH_CLIENT_NAME=

and we get the following home page:

I was expecting that setting PUBLIC_FRACTAL_ADMIN_SUPPORT_EMAIL leads to an additional paragraph, saying something like "contact<EMAIL_ADDRESS>for support". Is it something we removed at some point? (cc @zonia3000)

I'm seeing it:

Notice that it's not set at build time. I have to start the server specifying the variable, i.e.:
PUBLIC_FRACTAL_ADMIN_SUPPORT_EMAIL=help@localhost node build/index.js

OK, thanks!

Notice that it's not set at build time. I have to start the server specifying the variable, i.e.:

If there is a way to include it through env files, that would be for sure convenient.

Svelte has 2 ways to import the environment variables: static and dynamic. Static variables are loaded at build time, dynamic variable are loaded at runtime. Currently our PUBLIC_FRACTAL_ADMIN_SUPPORT_EMAIL is imported dynamically. We can decide to import it statically, so it will be loaded at build time from the .env files, but this means that it will not be possible to override it at runtime.
Here is the dynamic import:
https://github.com/fractal-analytics-platform/fractal-web/blob/f91d3839824b60906d147b08041f99ca249e332c/src/routes/%2Bpage.svelte#L2

We can decide to import it statically, so it will be loaded at build time from the .env files, but this means that it will not be possible to override it at runtime.

This makes sense to me, also because stopping and restarting fractal-web (if we really need to modify the support email) is not such a complex operation at the moment.


Incorrect grouping of from ... import ...

Version: isort 4.2.9
Isort incorrectly places from six.moves import range in a the package group, but correctly places from six import add_metaclass in the third party group. The following is from a package named treecat:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import itertools
import logging
from abc import ABCMeta
from abc import abstractmethod

import numpy as np
from scipy.special import gammaln
from six import add_metaclass

from six.moves import range  # <------------ This import is in the wrong group.
from treecat.structure import OP_IN
from treecat.structure import OP_OUT
from treecat.structure import OP_ROOT
from treecat.structure import OP_UP
from treecat.structure import TreeStructure
from treecat.structure import estimate_tree
from treecat.structure import make_propagation_program
from treecat.structure import sample_tree
from treecat.util import SERIES
from treecat.util import TODO
from treecat.util import jit
from treecat.util import parallel_map
from treecat.util import profile
from treecat.util import sample_from_probs
from treecat.util import set_random_seed

I've switched to 4.2.9 and my output after running isort t.py --force-single-line-imports is as follows:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import itertools
import logging
from abc import ABCMeta
from abc import abstractmethod

import numpy as np
from six import add_metaclass
from treecat.structure import OP_IN
from treecat.structure import OP_OUT
from treecat.structure import OP_ROOT
from treecat.structure import OP_UP
from treecat.structure import TreeStructure
from treecat.structure import estimate_tree
from treecat.structure import make_propagation_program
from treecat.structure import sample_tree
from treecat.util import SERIES
from treecat.util import TODO
from treecat.util import jit
from treecat.util import parallel_map
from treecat.util import profile
from treecat.util import sample_from_probs
from treecat.util import set_random_seed

from scipy.special import gammaln
from six.moves import range  # <------------ This import is in the wrong group.

with a diff from your output being (diff my.py gh.py):
10a11
> from scipy.special import gammaln
11a13,14
>
> from six.moves import range  # <------------ This import is in the wrong group.
27,29d29
<
< from scipy.special import gammaln
< from six.moves import range  # <------------ This import is in the wrong group.

This has been fixed in the latest release of isort.
Thanks!
~Timothy


power supply

Hi Ed, thanks again for this wonderful project, working well now.
Some notes that might be of interest; when i tried to power both ESP and amp (small 5V stereo class D amp) from the same 5V, i found out that the VS1053 audio output is DC biased to 1.25V, which seems to be the case on most boards. There's an application note explaining how to get rid of the bias (blocking caps etc), but that still had a lot of noise probably due to the shared power supply (or the breadboard setup). So i also opted for 2 separate power supplies, and the sound is very clean.
I like the switch circuit in your PDF but i was wondering if this is not a little dangerous, to charge 2 lithium cells at the same time, with 1 charger which cannot know the state of both cells. Additionally, when you switch your radio off, the (presumably) fully charged batt1 is directly connected to the less than fully charged batt2, which i think can lead to high currents, potentially dangerous if your lithium cells do not each have protection circuits.
The ESP seems to need more than 100mA constantly, just out of interest, how many hours do you get out of your battery approximately?
As above is not really an issue, feel free to close it.

Thank you for your feedback.  You are right.  The current may be very high.  For simplicity I think might be sufficient to add a current limiting resistor, like 5.6 ohms, to the load line of "battery 2".  An extra charger would also do the trick as well as using cells with protection circuits.
I cannot tell how long the radio runs on batteries.  Normally it is connected to a power adapter, so it will be charged when I switch of to "off".  In the "On" state, only the battery for the amplifier is discharged (26 mA).  The current for the ESP8266 plus the VS1053 is 135 mA, so it should work for about 15 hours.
Have you tried my new version?  It now can play standalone MP3s as well.

Hi Ed, i was a bit confused, you mean mp3 files on another server, right?
for a moment i thought we could upload mp3 files to the ESP, at the bottom of the config screen, but i guess that's not what this upload is intended for?

Esp-radio will play mp3 file that are placed on a remote server.  You can however upload any file to the ESP, it was meant to make changes to the html files.  I do have a version that is capable of playing from SPIFFS by specifying "localhost" as the server in the station, but since the SPIFFS can only store 3 MB it is not very useful.
The SPIFFS is not very stable.  I noticed that reading from a file is very slow sometimes.
However, my TFT has an on-board "MicroSD Card Breakout".  Do you think it's worthwhile to have this implemented?

Hi Ed, it took me a while to finish this project, it's working very well now. to answer your question, personally i'm not too interested in playing music from SD card so wouldn't vote for that.
it's very functional for me the way it is now.
i've posted some pics on my blog if you'd like to see my build: http://cassiopeia.hk/internetradio/

Finally saw your blog.
Nice box and nice story too!


fix(build-preview): error when use email build and start

When using the email build and email start commands to deploy the preview page, an issue arises. After generating an email preview, the generateEmailsPreview function writes a file with source code in .tsx format. However, this process results in TypeScript errors, and the build cannot be completed successfully.
It serves as a temporary workaround.

add // @ts-ignore leading sourceCode variable

In which situation does it result in typescript errors?

In which situation does it result in typescript errors?

When I want to build .react-email for deploying a preview to somewhere.
Like a nextjs build and start

In which situation does it result in typescript errors?

When I want to build .react-email for deploying a preview to somewhere. Like a nextjs build and start

I mean like which kind of emails are you using to get these errors?

In which situation does it result in typescript errors?

When I want to build .react-email for deploying a preview to somewhere. Like a nextjs build and start

I mean like which kind of emails are you using to get these errors?

I just created a new component using .tsx in the emails folder after running npx create-email@latest and tried to build the preview using yarn email build command. I encountered errors during the build process. The yarn dev command completed successfully, but when I opened the file in ./react-email/emails/*, it showed TypeScript errors that same like on build process.

I encountered errors during the build process. The yarn dev command completed successfully, but when I opened the file in ./react-email/emails/*, it showed TypeScript errors that same like on build process.

What kind of errors? Maybe this is an issue with the tsconfig on the preview app.
That being said, I don't think it might the best idea for us to do @ts-ignore that way.

What kind of errors? Maybe this is an issue with the tsconfig on the preview app. That being said, I don't think it might the best idea for us to do @ts-ignore that way.

This is an example of when I use yarn dev and open the file in ./react-email/emails/*. The result is the same as when I use yarn email build. While yarn dev passes, yarn email build doesn't pass because typecheck failed.

You can try it yourself again.
I don't think it's the best idea for me. Can you provide a better solution?

@gabrielmfern
How are things? Can you provide me with some basic problem-solving guidelines? I would like to use them.

@raksitnongbua Sorry for the delay I've been focusing on #1100 lately. This is an issue with the allowImportingTsExtensions ts config option, I think it was fixed on some of the latest versions.
What version do you happen to be using?

@gabrielmfern "react-email": "1.10.0"
If the issue has been resolved in the upcoming version, please notify me through this pull request.

This should be fixed with the 2.0.0 as it doesn't use this import hack anymore.


UI bug when query returns nothing for creating new Alert (Unified Alerting 9.2.3)

Describe the bug
Get an error page in the Grafana UI when trying to create an alert on a time series which returns no results from clickhouse.
Versions
Grafana 9.3.2 and Plugin version 2.0.3
Query
Errors in the last X minutes
SELECT toStartOfInterval(timestamp, INTERVAL 20 second) as time, serviceName, count(*) as numErrors
FROM x.x
WHERE serviceName = 'x' AND $__timeFilter(timestamp) AND hasError = true
AND responseStatusCode != '' AND toInt16(responseStatusCode) >= 500
GROUP BY time, serviceName
ORDER BY time

To Reproduce
Create a time series which returns no data in the alert panel, and click Run Query a few times until you get the error page. See screenshots
Expected behavior
Should not error out as time series should not always be expected to return a value and return some default set of values we can use with Alerting. When the time series has data (their are errors within whatever time period, it doesn't error out)
Screenshots
After clicking on Run Query the 1st time:

After clicking on Run Query the 2nd time:

Hello, I believe you can only return numeric values. Try removing  serviceName from your example and see if you get the same issue. 🙂

@AlexeiZenin did removing serviceName resolve this or is there still an issue?

I didn't try this but for my requirements I need to keep serviceName to have the query use that as the label value for the alert so I can easily query for alerts for certain services.
According to the docs it should still work correct? https://grafana.com/grafana/plugins/grafana-clickhouse-datasource/
To create multi-line time series, the query must return at least 3 fields in the following order:

field 1: datetime field with an alias of time
field 2: value to group by
field 3+: the metric values

My workaround was to due some ugly unions on a default row when no errors were there where I would create a time series with 1 row with value 0

This seems related to #207 I am looking into this more. Thank you for the update @AlexeiZenin

We are still aware of this issue. I'll have time to look into this next week. I'll have an update then :slightly_smiling_face:

@AlexeiZenin this issue is fixed as of 3.0.1-beta 😄
Please reopen if you have more questions.


Laravel != PHP

Hi,
I am having nightmares trying to setup a custom PHP codebase on Azure App Services, and the only real instructions seem to confuse Laravel for PHP (it is a PHP framework).

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0ac69cc1-da55-0221-3068-68c32247cf07
Version Independent ID: f990d756-a826-dbdd-29b6-3f7663521595
Content: Tutorial: PHP app with MySQL - Azure App Service
Content Source: articles/app-service/tutorial-php-mysql-app.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

Thanks for the feedback! We are currently investigating and will update you shortly.

Have a look at https://docs.microsoft.com/en-us/azure/app-service/quickstart-php?pivots=platform-linux @emayljames. It uses a Hello World vanilla PHP app that you deploy through the CLI. If you have issues with that, let us know what issues you're running into.

@emayljames, I have assigned the issue to the content author to investigate further and update the document as appropriate.
There are issues when running the tutorial. You may have better luck deploy the tutorial to a Linux hosted app as Composer is readily available. On Windows, you can run php composer.phar install from D:\home\site\wwwroot> manually and check for errors.

@emayljames Please take a look at this article for general PHP help: https://docs.microsoft.com/en-us/azure/app-service/configure-language-php?pivots=platform-linux
The tutorial is not general purpose and was indeed more explicit previously about Laravel being just an example. We can add that verbiage back in.

#please-close


Update to Pino v7

Describe the problem
The lib still relies on Pino v6, and new typings are now included with the v7. The exports are a bit different, for instance import { LoggerOptions } from 'pino'; would become import { P } from 'pino'; and usage would be namespaced with P.LoggerOptions. This breaks the libs' typings and return type becomes any, which in turn breaks our app's typechecking.
Describe the solution you'd like
Update the library to support Pino v7 and drop DefinitelyTyped typings.
Describe alternatives you've considered
In the meantime, I've overrided the getPinoOptions typings with local types of my own, but it's obviously not great 😉

I've just fixed this in #114


Broken on RN 0.36

Does not render on RN 0.36

+1

This is due to TouchableOpacity components now needed styles for flex components. Adding style={{flex:1}} to the TouchableOpacity fixes the issue. If I get time I will create a PR to allow you to pass in styles to the touchable

Created a PR with this fix. https://github.com/d-a-n/react-native-modal-picker/pull/25 You also have to style the ModalPicker with flex I think which I don't believe was required before.


Hass.io UI is not getting updated

Hi, first of all i would like to tell you: thank you! This is an excellent addon and exactly what i was looking for.
The only issue i'v found so far is that after script executed i don't see changes in Hass.io UI.
Deleted backups are still visible. I have to re-boot HA to see the changes.

I am having the same issue.  If I shell into hassio the backup directory contains 3 files, but on the snapshots web page it list 2 weeks worth of files.   Also, I am unable to tell if they are the most current files on Google drive as they are listed by a hex filename and not the date and time they were created.  I am assuming that the first file listed in google is the most recent file that was created, or so it appears.  It appears to backup in order from the newest to the oldest.

Hi, first of all i would like to tell you: thank you! This is an excellent addon and exactly what i was looking for.
The only issue i'v found so far is that after script executed i don't see changes in Hass.io UI.
Deleted backups are still visible. I have to re-boot HA to see the changes.

If you click the refresh icon (circular arrow) in the upper-right corner of the UI, does it update to show only the currently-existing files?

hi. Just tested it. Indeed, the refresh button work.
Curious if it's possible to do that automatically? Is there are any service?
Maybe we can just call this "refresh" api?
<server_url>/api/hassio/snapshots/reload
Even though i can do it as a part of my own flow, it is a bit confusing for people who start using this add-on


Update CODEOWNERS

Removes myself from CODEOWNERS for the upcoming transition.

Closing in favor of: https://github.com/gruntwork-io/pre-commit/pull/85


Recommender system domain example with BST and movielens

Before submitting

[Y] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[N] Did you make sure to update the docs?
[N] Did you write any new necessary tests?

What does this PR do?
Adds a recommendation example using pytorch lightning and torchmetrics. It implements the BST model from alibaba for the movielens dataset. Comes from this issue https://github.com/PyTorchLightning/pytorch-lightning/issues/8335
This is the initial PR to start discussing how to shape the tutorial and get feedback to do any neccesary changes.
Did you have fun?
Yes :)
Questions
I read the following statement on the main readme fully reproducible by saving runtime env. details but havent seen any tutorial with such files inside their folder. Where are this env details stored?
Regarding docs, where and what changes should be made when adding a new example?

@jiwidi how is it going here, still just a draft? 🐰

Hi! sorry for the delayed answer. There is some minor changes I still want to do. I will take on them during this weekend and should be ready for review :)

There is some minor changes I still want to do. I will take on them during this weekend and should be ready for review :)

Sure, just ping us when it is ready to review... :]

Feel free to reopen any time if you want to continue :)


Add UpstreamSetttingsPolicy

Proposed changes
Problem: As a user, I want to be able to configure the upstream settings for a Service referenced by a HTTP or GRPCRoute.
Solution: Add UpstreamSettingsPolicy CRD. This is a direct policy that can be attached to one or more Services.
The Service must be referenced by an HTTP or GRPCRoute that is owned by the "winning" NGF Gateway.
Testing: Unit, manual, and automated functional tests.
Checklist
Before creating a PR, run through this checklist and mark each as complete.

[x] I have read the CONTRIBUTING doc
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have checked that all unit tests pass after adding my changes
[ ] I have updated necessary documentation
[x] I have rebased my branch onto main
[x] I will ensure my PR is targeting the main branch and pulling from my branch from my own fork

Release notes
If this PR introduces a change that affects users and needs to be mentioned in the release notes,
please add a brief note that summarizes the change.

Add UpstreamSettingsPolicy to allow users to configure upstream settings for Services.

@kate-osborn When merging, can you make sure @bjee19 and @salonichf5 are also listed as contributors? Everyone deserves their credit :)

@kate-osborn When merging, can you make sure @bjee19 and @salonichf5 are also listed as contributors? Everyone deserves their credit :)

Of course! Thanks for the reminder


very nice! thank you very much!

it's very nice ,it save my time,it save my life!
thank you very much.

This project is great, can it support inserting multiple images at once?

This project is great, can it support inserting multiple images at once?

@dotkt Yes it can.
@xRyul do you plan to keep maintaining this project? For example this PR could be closed.


Inventory does not work in Sketch 52.2

Hey,
Bad news !
Generated artboard is empty… :_(
Help ! you propose the only plugin that generate cool type scales and layer styles list.
Must have for a design system!
Best,

Design community need Sketch Style Inventory working again!
If it was amazing in the past versions with the new workflow implemented by sketch it's essential.
All our support be with you.


[Bug]

Bug report the crud does not work
What I did
Just genereated the crud.
What I expected to happen
The crud would have to come out correctly
What happened
The crud just fail

what would be the solution?
What I've already tried to fix it
Installing from scratch, modifying configuration files
Backpack, Laravel, PHP, DB version
LARAVEL VERSION:
v8.41.0@05417155d886df8710e55c84e12622b52d83c47c
BACKPACK VERSION:
4.1.44@42b837deb11870399e63310817b7e50b82570ed
###Mysql
Ver 15.1 Distrib 10.4.18-MariaDB, for Win64 (AMD64), source revision 53123dfa3e365138591fd2f160c6057aca00a3e6
When I run php artisan backpack:version the output is:

@MohaMBS what does your Network tab look like, in your Chrome DevTools? That's where you can see the AJAX request being made to populate the table with actual information. And that's where you should see a failing request, and if you click it it will give more information about what went wrong.

Now its working with out reason

Nice to hear that it's working, it was probably some cache issue or something alike.
I am going to close this, thanks!
Best,
Pedro

The solution was just start the serve with the next command
php artisan serve

Nice to hear that it's working, it was probably some cache issue or something alike.
I am going to close this, thanks!
Best,
Pedro

It was my mistake, I needed to execute the following command but thanks!
´´´php artisan serve´´´


Add metabolic screening

@cconrad8 Do you want to mark this ready? Hoping to do a release for January once I add a number of things from the recent data sharing plans, too.

@anngvu yep this is good to go  thanks!


Get higher res Pictures via defaultTile tag and fix for emtpy strings in app_display_name

The last update finds icons for all the non-hidden apps, but some of them are black (because the contrast-black variant is found before the contrast-white version and the way it looks only the first entry gets selected.
I will add a filter to try and only select white if possible. (That could also become a setting if it works well. Only problem is that not all packages have contrast-black versions, so it might be mixed which isn't good).


Upgrade dependencies. Make PyTest more comfortable to use.

No more setting PYTHONPATH manually, yay!

Coverage failure is due to #168


Property 'updatePayment' does not exist on type 'PayPalCheckout' (braintree-web version: 3.102.0)

General information
braintree-web version: 3.102.0
braintree version: 3.23.0
Environment: Sandbox
Browser and OS: Chrome
Issue description
I'm having an issue to import { PayPalCheckout } from "braintree-web"
I get an error that updatePayment method does not exists within PayPalCheckout interface.
Based on documentation it should exists with such braintree-web version:
https://braintree.github.io/braintree-web/3.90.0/PayPalCheckout.html#updatePayment
Could you please help me to understand why I can't access all the available methods listed in the documentation provided above?
If I try to force implementation of functional logic, the updatePayment method is getting successfully called with res: 200.
But the Property 'updatePayment' does not exist on type 'PayPalCheckout'.ts(2339) type error is always displayed.
Here is how PayPalCheckout data type looks based on paypal-checkout.d.ts file:
export interface PayPalCheckout {
    /**
     * Resolves when the PayPal SDK has been succesfully loaded onto the page.
     *
     * @link https://braintree.github.io/braintree-web/current/PayPalCheckout.html#loadPayPalSDK
     */
    loadPayPalSDK(options?: PayPalCheckoutLoadPayPalSDKOptions): Promise<PayPalCheckout>;
    loadPayPalSDK(options?: PayPalCheckoutLoadPayPalSDKOptions, callback?: callback): void;

    /**
     * Creates a PayPal payment ID or billing token using the given options. This is meant to be passed to PayPal's checkout.js library.
     * When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js
     * library. Otherwise, it returns a Promise that resolves with the id.
     * `authorize` - Submits the transaction for authorization but not settlement.
     * `order` - Validates the transaction without an authorization (i.e. without holding funds).
     *           Useful for authorizing and capturing funds up to 90 days after the order has been placed. Only available for Checkout flow.
     * `capture` - Payment will be immediately submitted for settlement upon creating a transaction.
     * `sale` can be used as an alias for this value.
     * Supported locales are:
     * `da_DK`,
     * `de_DE`,
     * `en_AU`,
     * `en_GB`,
     * `en_US`,
     * `es_ES`,
     * `fr_CA`,
     * `fr_FR`,
     * `id_ID`,
     * `it_IT`,
     * `ja_JP`,
     * `ko_KR`,
     * `nl_NL`,
     * `no_NO`,
     * `pl_PL`,
     * `pt_BR`,
     * `pt_PT`,
     * `ru_RU`,
     * `sv_SE`,
     * `th_TH`,
     * `zh_CN`,
     * `zh_HK`,
     * and `zh_TW`.
     *     * * `login` - A PayPal account login page is used.
     * * `billing` - A non-PayPal account landing page is used.
     * // this paypal object is created by checkout.js
     * // see https://github.com/paypal/paypal-checkout
     * paypal.Buttons({
     *   createOrder: function () {
     *     // when createPayment resolves, it is automatically passed to checkout.js
     *     return paypalCheckoutInstance.createPayment({
     *       flow: 'checkout',
     *       amount: '10.00',
     *       currency: 'USD',
     *       intent: 'capture' // this value must either be `capture` or match the intent passed into the PayPal SDK intent query parameter
     *     });
     *   },
     *   // Add other options, e.g. onApproved, onCancel, onError
     * }).render('#paypal-button');
     *
     * @example
     * // shippingOptions are passed to createPayment. You can review the result from onAuthorize to determine which shipping option id was selected.
     * ```javascript
     * braintree.client.create({
     *   authorization: 'authorization'
     * }).then(function (clientInstance) {
     *   return braintree.paypalCheckout.create({
     *     client: clientInstance
     *   });
     * }).then(function (paypalCheckoutInstance) {
     *   return paypal.Button.render({
     *     env: 'production'
     *
     *     payment: function () {
     *       return paypalCheckoutInstance.createPayment({
     *         flow: 'checkout',
     *         amount: '10.00',
     *         currency: 'USD',
     *         shippingOptions: [
     *           {
     *             id: 'UUID-9',
     *             type: 'PICKUP',
     *             label: 'Store Location Five',
     *             selected: true,
     *             amount: {
     *               value: '1.00',
     *               currency: 'USD'
     *             }
     *           },
     *           {
     *             id: 'shipping-speed-fast',
     *             type: 'SHIPPING',
     *             label: 'Fast Shipping',
     *             selected: false,
     *             amount: {
     *               value: '1.00',
     *               currency: 'USD'
     *             }
     *           },
     *           {
     *             id: 'shipping-speed-slow',
     *             type: 'SHIPPING',
     *             label: 'Slow Shipping',
     *             selected: false,
     *             amount: {
     *               value: '1.00',
     *               currency: 'USD'
     *             }
     *           }
     *         ]
     *       });
     *     },
     *
     *     onAuthorize: function (data, actions) {
     *       return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {
     *         // Submit payload.nonce to your server
     *       });
     *     }
     *   }, '#paypal-button');
     * }).catch(function (err) {
     *  console.error('Error!', err);
     * });
     * ```
     */
    createPayment(options: PayPalCheckoutCreatePaymentOptions, callback?: callback): Promise<string>;

    /**
     * Tokenizes the authorize data from PayPal's checkout.js library when completing a buyer approval flow.
     * When a {@link callback} is defined, invokes the callback with {@link PayPalCheckout~tokenizePayload|tokenizePayload} and returns undefined.
     * Otherwise, returns a Promise that resolves with a {@link PayPalCheckout~tokenizePayload|tokenizePayload}.
     * @example
Opt out of auto-vaulting behavior

     * // create the paypalCheckoutInstance with a client token generated with a customer id
     * paypal.Buttons({
     *   createBillingAgreement: function () {
     *     return paypalCheckoutInstance.createPayment({
     *       flow: 'vault'
     *       // your other createPayment options here
     *     });
     *   },
     *   onApproved: function (data) {
     *     data.vault = false;
     *
     *     return paypalCheckoutInstance.tokenizePayment(data);
     *   },
     *   // Add other options, e.g. onCancel, onError
     * }).render('#paypal-button');
     */
    tokenizePayment(tokenizeOptions: PayPalCheckoutTokenizationOptions): Promise<paypal.TokenizePayload>;
    tokenizePayment(tokenizeOptions: PayPalCheckoutTokenizationOptions, callback?: callback): void;

    /**
     * Resolves with the PayPal client id to be used when loading the PayPal SDK.     * @example
     * paypalCheckoutInstance.getClientId().then(function (id) {
     *  var script = document.createElement('script');
     *
     *  script.src = 'https://www.paypal.com/sdk/js?client-id=' + id;
     *  script.onload = function () {
     *    // setup the PayPal SDK
     *  };
     *
     *  document.body.appendChild(script);
     * });
     */
    getClientId(): Promise<string>;
    getClientId(callback: (id: string) => void): void;

    /**
     * Initializes the PayPal checkout flow with a payment method nonce that represents a vaulted PayPal account.
     * When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js library.
     * Otherwise, it returns a Promise that resolves with the id.
     * `flow` cannot be set (will always be `'checkout'`)
     * `amount`, `currency`, and `vaultInitiatedCheckoutPaymentMethodToken` are required instead of optional
     * * Additional configuration is available (listed below)
     * @example
     * paypalCheckoutInstance.startVaultInitiatedCheckout({
     *   vaultInitiatedCheckoutPaymentMethodToken: 'nonce-that-represents-a-vaulted-paypal-account',
     *   amount: '10.00',
     *   currency: 'USD'
     * }).then(function (payload) {
     *   // send payload.nonce to your server
     * }).catch(function (err) {
     *   if (err.code === 'PAYPAL_POPUP_CLOSED') {
     *     // indicates that customer canceled by
     *     // manually closing the PayPal popup
     *   }
     *
     *   // handle other errors
     * });
     */
    startVaultInitiatedCheckout(options: { optOutOfModalBackdrop: boolean }): Promise<void>;
    startVaultInitiatedCheckout(options: { optOutOfModalBackdrop: boolean }, callback: callback): void;

    /**
     * Cleanly tear down anything set up by {@link module:braintree-web/paypal-checkout.create|create}.
     * @example
     * paypalCheckoutInstance.teardown();
     * @example
With callback

     * paypalCheckoutInstance.teardown(function () {
     *   // teardown is complete
     * });
     */
    teardown(callback: () => void): void;
    teardown(): Promise<void>;
}

@Hmariia can you clarify which version you are using? In this issue you specified three different versions. You mention braintree-web version 3.102.0, braintree version 3.23.0, and then point to documentation for version 3.90.0.
Support for updatePayment was added in version 3.90.0.
Also, are you using an external library for your PayPal checkout Typescript Type definitions? If so, I suspect that the library you are using is a third-party library that we don't officially support and might not be up to date with the latest version of our SDK.

Hi @Hmariia ! Thank you for reporting this issue. Unfortunately, since the Braintree SDK is not written in Typescript (yet!) we cannot provide support for any Typescript-specific errors nor can we provide support for any 3rd party types files.


Add server configuration to lazy load files from deep storage.

Description
Addresses https://github.com/apache/incubator-pinot/issues/6187 and https://github.com/apache/incubator-pinot/pull/6250
New configurations on the server include:

Option
Default
Description

pinot.server.instance.lazyLoadSegments
false
Enables segment lazy loading from deep storage. This will keep segments from being stored on the local file system until they are needed for a query.

pinot.server.instance.maxSegmentDiscUsageMb
Integer.MAX_VALUE
Sets a maximum bound before cached segments should be cleaned up. This should be set below the maximum disc space on the particular server.

pinot.server.instance.purgeOnStart
false
After the server has crashed, there's no guarantee the cached segments are up to date. Rather than refresh them all, you can optionally just purge all existing segments from the local disc when the server starts.

New configurations from the broker include:

Option
Default
Description

pinot.broker.query.segment.limit
Integer.MAX_VALUE
Because we are lazy loading segment, materializing a large number of unpruned segments can cause massive resource usage and disc pressure. This acts as a safeguard against select * queries with no where clause.

Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

[*] Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

[ ] Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

This PR will require release notes and updates to the pinot docs gitbook which appears to be a separate repo.

[*] Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes
See above configuration options, and below documentation.
Documentation
TODO

Can we separate the unrelated changes to another PR?
IMO, the lazy load should be implemented as following:

Load the metadata, but keep the index in deep store
When segment gets queried, load index on demand

The current way of downloading all the segments, uncompress and load them at query time won't really work. @kishoreg wdyt?

I think it is best to document these approaches in a design document instead of PR. This is a fairly involved feature, so I suggest writing up a document and soliciting comments before putting up the PR. Let me know if there was a document and I missed it.

Can we separate the unrelated changes to another PR?
IMO, the lazy load should be implemented as following:

Load the metadata, but keep the index in deep store
When segment gets queried, load index on demand

The current way of downloading all the segments, uncompress and load them at query time won't really work. @kishoreg wdyt?

I agree.
Another variant (if we want to escape the download part of latency) is to download it during state transition, but not load it in memory.  This variant can be useful in cases where an occasional query may cause some page churns but otherwise the working set returns to (say) most recent data.

Can we have a design doc on this before the PR review? Also what's the relationship between this and tiered storage https://github.com/apache/incubator-pinot/issues/5553? cc @npawar

Can we have a design doc on this before the PR review? Also what's the relationship between this and tiered storage #5553? cc @npawar

Thanks for bringing this up. Neha's design doc is here: https://docs.google.com/document/d/1Z4FLg3ezHpqvc6zhy0jR6Wi2OL8wLO_lRC6aLkskFgs/edit#
I remember raising a question of segments being in deep store, and proposing that we introduce a new helix state to indicate that. You can see the comments in the design doc. @noahprince22 something to consider as an option.

https://docs.google.com/document/d/1RnoMv3NwnoBiUtT8Wnim4hV2b5mfTL3RziYuPM89-Xs/edit#
Created a design doc. There's really not that much to it, though.

@noahprince22 can you open the document to read/comment for all?

https://docs.google.com/document/d/1RnoMv3NwnoBiUtT8Wnim4hV2b5mfTL3RziYuPM89-Xs/edit?usp=sharing
Shareable link

https://docs.google.com/document/d/1RnoMv3NwnoBiUtT8Wnim4hV2b5mfTL3RziYuPM89-Xs/edit?usp=sharing
Shareable link

Seems this link is still not accessible

Try it now?

@noahprince22 Some things I didn't follow:

Are the lazily loaded segments ever naturally unloaded? Or does that only happen if server gets restarted?
Is there a way to configure which segments are pre-loaded and which should be lazily loaded (time based for instance)? Or is this more of an all or nothing approach?
Will this feature work with the tiered storage/segment relocation features (design doc was shared in earlier comments by @mcvsubbu  and @yupeng9) ? I think it will work as long as the storageType for the tiers is pinot servers. But what happen when we implement say S3 as a storageType for the relocation?

Try it now?

It can be viewed, can you also enable commenting for others?

Try it now?

It can be viewed, can you also enable commenting for others?

+1 please enable comments, thanks

One quick comment on the doc, though. Let us avoid a per-server or per-broker config, and use table config instead?

Hi @noahprince22, i'm interested in this feature and would like to know if there was a specific reason why the development on this was stopped ?


Add a SetCorrelationId system task

Pull Request type

[ ] Bugfix
[x] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] WHOSUSING.md
[ ] Other (please describe):

NOTE: Please remember to run ./gradlew spotlessApply to fix any format violations.
Changes in this PR
The SET_CORRELATION_ID task allows users to set the correlation ID on a workflow from within the workflow. Normally the correlation ID would be set by the process starting the workflow, however in certain occasions, such as starting a workflow from an event subscription, this may not be possible.

However in certain occasions, such as starting a workflow from an event subscription, this may not be possible.

Hey, unless I misunderstand you, from what I see here, setting correlationId from event payload should work if you specify that in the event handler.
Could you describe your use-case in more detail? I think it would be better to add the capability to specify correlationId wherever you need before workflow is started (if it's currently missing in some place) instead of altering existing workflow.

@c4lm The reason I implemented this is because we're using Conductor to process XML messages we receive in an SQS queue - these messages contain an external correlation ID we want to use for all of our subsequent Conductor workflows but we can't set this on the initial workflow, only the ones that it starts after it has parsed the message


Priority shortcuts stopped working with an upgrade to 1.1.7

The Alt-arrow shortcuts to set item priority stopped working. This is on Debian 11.3, sleek v1.1.7 (AppImage, form GitHub).
These shortcuts work fine in v1.1.6. Downgraded for now.

@andrei-a-papou you're right. And right now I'm working on this. To make it more generic for all plattforms the priority shortcuts will change slightly. In future releases you will have to press Alt + Meta (Windows or Command key) and then the priority shortcut.
Shortcuts are always a bit tricky. Can you support me testing them once I push the next pre release?

@andrei-a-papou can be tested in https://github.com/ransome1/sleek/releases/tag/v1.1.8-rc.5

@ransome1  Just tested this with the latest v1.1.9 on Win10. It works but not quite as intended.
The new shortcut WIN+ALT+DOWN does open the priority list and the selection with UP or DOWN works.
Shortcuts LEFT or RIGHT to remove priority also work. But...

Opening the priority list with the shortcut and DOWN also inserts a due date, which happens to be 1 day in the past.
Opening the priority list with the shortcut and UP also inserts a due date, which happens to be 1 day in the future.
Scrolling the priorities up or down also changes the due date up or down by a day.
Removing the priority WIN+ALT+left/right removes the priority and the due date, even if the due date was inserted separately.
Assigning a priority directly WIN+ALT+ A-Z works and does not insert a due date but some priority letters collide with other system shortcuts. For example, WIN+ALT+D opens the Windows date/calendar panel instead.
Shortcuts specifically for the due date, i.e. CTRL+ALT+...  are ok and work as intended.

I came accross this one while fighting with some other bugs but I will raise separate issues for those.

@Bumpyride beat me to it, I can confirm everything above on Debian 11.3 (except the Windows calendar shortcut conflict, of course).
I will add that for me personally pressing Super + Alt + A for top priority seems very inconvenient ;( Alt + A can bit done with one hand by placing your thumb on the Alt key and hitting A with the ring finger. For Super + Alt + A you have to put the little finger on the Alt key, which makes it very hard to hit A with any other finger.
I realize shortcuts are tricky, but is it possible to keep the old Alt shortcuts for priority? Or perhaps a JSON file to let advanced users override shortcuts? That would also solve https://github.com/ransome1/sleek/issues/332

Shortcuts are always a bit tricky. Can you support me testing them once I push the next pre release?

@ransome1 Absolutely! And I believe you're doing a very good job usability-wise in general.
Because of the issue @Bumpyride described above, I have to stick to 1.1.6 for now.
But you're right, shortcuts can be tricky in JS and across platforms, so I'm more than willing to help test things under Linux in future releases.

Feedback based on v1.2.0-rc1: No change. Just FYI since I am logged in anyway...

I'm a new user, and keyboard shortcuts are certainly a thing that attracted me.  I came here to report this issue..because I did not scroll down the Shortcut page to see that it is indeed listed correctly there!
I would also agree with the original poster, requiring TWO modifier keys is certainly less convenient than one, but I understand they're tricky.  I haven't used it enough to feel as strongly, however.
EXISTING RELATED ISSUE within the built-in Help page (Windows 10, v1.1.9), it does not mention that you must use Win/Super in addition to Alt, as shown below
Thanks for the otherwise great little app!

@jiggie42 @Bumpyride @andrei-a-papou hey guys, I'm afraid there will be changes to the shortcuts again, as I'm aiming for a setup that is consistant on all OS. Can I ask you guys, to join the conversation here: https://github.com/ransome1/sleek/issues/407
There is a pre-release (v1.3.1-rc.1) you can download and help me to improve.

Please let me close here, in order to clean up the issue list. The documentation on the new keyboard shortcuts will be done, once #407 is fixed.


firestore observables do not send previous value when subscribing again after the value is emited.

Version info
Angular: 5.0.0
Firebase: 4.6.2
AngularFire2: 5.0.0-rc.4
Ionic: 3.19.0
Node: v8.5.0
Bug present on every platform I tried it
How to reproduce these conditions
const sp = this.afs.collection('sports').valueChanges() // e.g. 'sports', any collection / document
sp.subscribe(a => console.log('first', a))
setTimeout(() => {
    console.log('timeout')
    sp.subscribe(a => console.log('second', a))
}, 3000)

Expected behavior
.valueChanges() on collections or documents should return an observable sending data on any subscription, with previously fetched data if subscribed after a previous subscription already got them.
It would be expected to work as:
const ob = Observable.of('value');
ob.subscribe(a => console.log('first', a))
setTimeout(() => {
    console.log('timeout')
    ob.subscribe(a => console.log('sec', a))
}, 3000)

expected console output (assuming request takes less than 3 seconds):
first [data]
timeout
second [data]

Actual behavior
once a data have been emited by the observable, any further subscription will never get any data
actual console output:
first [data]
timeout

This is how Observables work out of the box when they're hot + shared. If you need this behavior you should create a BehaviorSubject and subscribe it to your valueChanges() or cache the last result with a share(1).

I used a replaySubject over a BehaviourSubject as I want a loading spinner while waiting for the first one. Seems to work although haven't tested fully:

private _propertiesSubject: ReplaySubject<Property[]> = new ReplaySubject(1);
  private propertiesCollection: AngularFirestoreCollection<Property>;

constructor(private dialog: MatDialog,
              private afs: AngularFirestore) {
    this.propertiesCollection = afs.collection<Property>('properties');
    this.propertiesCollection.valueChanges().map((v) => {
      console.log('got v', v)
      return v;
    }).subscribe(this._propertiesSubject);
  }

public getRecent(): Observable<Property[]> {
    return this._propertiesSubject.asObservable();
  }


Paniukhin HW05

I deeply apologize for submitting a day after the deadline. I will try to ensure this does not happen in the future 🙏

Ok.


Add Source mapping validation for pages inheriting IContentSecurityPolicyPage

Pages which implement IContentSecurityPolicyPage do not have validation for the Source field on the CSP mappings.  This should match the source mappings on the main CSP interface.

Complete and ready for release.


file editor corrupt?

I experienced that at a certain moment (about two weeks ago) the file editor 5.0.0 stopped functioning . Removal and reinstalling does not recover it. It looks as if all icons are gone. I get only a long list of a kind of hyperlinks, of which most give no responds.
Here a screenshot:

Anyone that knows how to get it working again?

Is blocking it.

Hello! I think that there is a problem with cloudflare CDN . I am getting a ERR_SSL_VERSION_OR_CIPHER_MISMATCH with every browser.
Example: https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.8/ext-language_tools.js

I'm getting the same on Safari, Chrome & Brave:

I'm getting the same on Safari, Chrome & Brave:

Cloudflare fixed it right now.


from_url() undocumented

There is no mention about StrictRedis.from_url() on https://redis-py.readthedocs.org/en/latest/ or https://github.com/andymccurdy/redis-py. Is it documented anywhere?

The documented version is actually ConnectionPool.from_url
https://github.com/andymccurdy/redis-py/blob/master/redis/connection.py#L742

This should absolutely be documented.  I had no idea that it existed, and I've always been using urllib to parse my redis urls!

This seems to be there now

As was mentioned earlier the documentation is present at RTD
Should it be present in readme is a different question. Because at the moment readme has more information (apart from docstrings).


Removed App deployments

Recently I run into a problem with deploying the new version of my app.
After exectuing the command:
nativescript-app-sync deployment history xxxxx Production
I get the following error:
[Error]  models.DeploymentsVersions.findById is not a function
When checking the https://appsync.nativescript.org I found out that the previous deployments with deployment keys were removed.
My question is how to get back the removed data?
Thank you very much for your answer.

What's xxxxx in this case?

It is the App name: KCPG or devKCPG

Yeah I'm aware of that, just wanted to know which one it is :)
Looks like there's a problem with the database itself at the moment which may cause the issue. I'll investigate.

It is both of them. Thank you very much.

Does that command work again?

Still not working. The "release" command is not working too. Also there is the same response from the android app which is looking for the new version.

Oh dear. R.I.P. my sunday.

I see the same error for one of my apps.  This no longer seems to be a database issue. 🕵♂

The probable cause is this change by @dependabot which tried to automatically fix a vulnerability: https://github.com/EddyVerbruggen/nativescript-app-sync-server/commit/da29915d8f2146b5e281f7f805b55acd181f94c2
I'm going to revert that.
@Vladi007 Are you a million % sure about this remark: "Also there is the same response from the android app which is looking for the new version.".. could it be a different message?

@Vladi007 Should be much better now. It was indeed that dependency bump on Nov 1st which killed AppSync. Thanks for reporting this issue!

@EddyVerbruggen thank you for your fast response and solution. You saved my sunday! :)


Fix: Adds missing use client

PR-Codex overview
This PR adds the missing use client directive for the AutoConnect component in useAutoConnect.tsx.
Detailed summary

Added missing use client directive for AutoConnect component in useAutoConnect.tsx

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Fixed with #2929


quake3e: 2020-01-23 -> 2020-04-04

Motivation for this change
Regular update. I've tested this by starting Quake 3.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 84881 1

1 package built:
- quake3e


Re-implement debugger in C++

read https://github.com/bitbrain/beehave/discussions/285 for the announcement for Beehave 3.0

The current debugger in C++ is not super reliable. Re-implement its functionality in C++ and make use of C++ specific language features, as well as accessing more low-level Godot APIs for a cleaner integration.

Use this branch as a base: https://github.com/bitbrain/beehave/tree/v3


feat: add --kubeconfig flag support

When using the --kubeconfig flag fish completions were ignoring this and utilising the default kubeconfig file or the one specified in the KUBECONFIG env variable.
This commit adds code that checks for the --kubeconfig PATH or --kubeconfig=PATH flags and passes them through when the completions use kubectl commands 👍🏼👍🏼.
closes #38

Tested locally and seems to be working as expected and respecting the --kubeconfig flag when completing get pods logs etc.

Thanks for contributing!


Gyroscope motion feature doesn't work on ios phone

Description
I am trying to use this library in my React application. I am not able to initiate motion based gyroscope feature in iphone. I tested in iphone X (ios 13.3). It's working in Android device.
I was expecting that a pop up will show up on the phone when the page is loaded, to ask the user for motion and orientation permission, like it works in your sample code:
https://naver.github.io/egjs-view360/examples/panoviewer/controls/motion-touch.html
Sample code above, works fine on ios device.
Steps to check or reproduce
Here is the code. I am able to load the 360 image and using touch I can move the scene on ios, but not by phone's motion. Not sure what am I missing here to allow the motion sensor.
I checked on Safari and Chrome both.
`export default class App extends Component {
componentDidMount() {
const { PanoViewer } = require("@egjs/view360");
const panoViewer = new PanoViewer(
document.getElementById("gyroPanoWrapper"),
{
image:
"https://naver.github.io/egjs-view360/examples/panoviewer/controls/equi-car-inside.jpg",
yaw: 90,
pitch: -10,
gyroMode: "yawPitch"
}
);
}
render() {
return (

);
}
}`

Hello @vaibhav1802!
As you said, iOS' device motion is disabled by default.
However, it's not our core feature as that popup heavily relies on other libraries like SweetAlert2.
You have to make a popup yourself. I will give you some sample code :)

Code from demo (https://github.com/naver/egjs-view360/blob/master/demo/common/js/PanoControls.js#L116)

// For iOS 13+
panoViewer.enableSensor().catch(() => {
    Swal.fire({
        title: "Permission needed! (iOS13+)",
        icon: "question",
        text: "This website needs a permission to access Device motion & Orientation for the immersive experience.",
        showCancelButton: true,
        reverseButtons: true,
        confirmButtonText: "Allow",
        cancelButtonText: "Deny"
    }).then(result => {
        if (result.value) {
            // Granted
            panoViewer.enableSensor().catch(() => {
                Swal.fire(
                    "You've denied a permission!",
                    "You have to completely close out your browser and reconnect this page to enable sensor again!",
                    "error"
                );
            });
        } else if (result.dismiss === Swal.DismissReason.cancel) {
            // User dismissed
        }
    });
});

const iOSVersion = (() => {
    if (/iP(hone|od|ad)/.test(navigator.platform)) {
        // supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
        var v = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);
        return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
    }
})();

// For iOS 12.2 ~ 13
if (iOSVersion && iOSVersion[0] === 12 && iOSVersion[1] >= 2) {
    PanoViewer.isGyroSensorAvailable(available => {
        if (!available) {
            Swal.fire({
                title: "Please enable the Motion Sensor! (iOS12.2~13)",
                icon: "warning",
                text: "This website requires a permission for your device motion sensor for the immersive experience.",
                html: `

                    1. Open  Settings

                    2. Select  Safari

                    3. Enable Motion & Orientation Access

4. Reload the page

                `
            });
        }
    });
}

You can also check this live demo
or, our wiki page for detailed implementation :)

Thank you @WoodNeck for sharing this information. It worked. I was expecting that accessing motion sensors will be the part of the library.


Provide more details on how backup works

Re: BACKUP
Issue Description
Provide more details as described in the doc below
Each node backs up only a specific subset of the data it stores (those for which it serves writes; more details about this architectural concept forthcoming)
Suggested Resolution
For example "The node you run the BACKUP command from defaults to being the coordinator, but which node is coordinating can change as the backup runs. BACKUP writes data to storage from the leaseholder so it doesn't matter which node you kick-off the backup from (any node with a leaseholder can be writing data to the backup). The coordinator though also needs access to the storage bucket because the coordinator writes the metadata from the backup, and since the coordinator can be any node in your cluster every node needs access to that file storage. "

A @lin-crl states, the current docs display:
https://www.cockroachlabs.com/docs/v20.2/backup.html#performance

Each node backs up only a specific subset of the data it stores (those for which it serves writes; more details about this architectural concept forthcoming)

However, this same text is displayed going back to v1.0:
https://www.cockroachlabs.com/docs/v1.0/backup#performance