Add minus sign in front of dEgdT, sdm.py

[x] Closes #2321
[x] I am familiar with the contributing guidelines
[ ] Tests added
~[ ] Updates entries in docs/sphinx/source/reference for API changes.~
[ ] Adds description and name entries in the appropriate "what's new" file in docs/sphinx/source/whatsnew for all changes. Includes link to the GitHub Issue with :issue:`num` or this Pull Request with :pull:`num`. Includes contributor name and/or GitHub username (link with :ghuser:`user`).
[x] New code is fully documented. Includes numpydoc compliant docstrings, examples, and comments where necessary.
[x] Pull request is nearly complete and ready for detailed review.
[x] Maintainer: Appropriate GitHub Labels (including remote-data) and Milestone are assigned to the Pull Request and linked Issue.

Fixes the typo in line 874 of sdm.py, where dEgdT = -0.0002677 instead of the same without the minus sign.
Inspired by today's AdventOfCode, I've regexed if this typo is everywhere else and I can confirm it isn't. Regex: (?<!-)0.0002677
Tests are passing locally. @cwhanse , should I create a test with a hella lot of precision to test this?

it confirms the error is inconsequential, for practical purposes.

This surprises me. I haven't looked in detail yet how the tests are constructed but, a simple example:
import pandas as pd
from pvlib.pvsystem import calcparams_desoto, singlediode

ee = pd.Series([500, 800, 1000])
tc = pd.Series([40, 50, 60])
alphasc = 0.0004
aref = 1
ilref = 5
ioref = 1e-10
rshref = 2e3
rs = 1
egref = 1.1
degdt_pos = 0.0002677
degdt_neg = -0.0002677

sde_param1 = calcparams_desoto(ee, tc, alphasc, aref, ilref, ioref, rshref, rs,
                               egref, degdt_pos)
sde_param2 = calcparams_desoto(ee, tc, alphasc, aref, ilref, ioref, rshref, rs,
                               egref, degdt_neg)

output1 = singlediode(sde_param1[0], sde_param1[1], sde_param1[2],
                      sde_param1[3], sde_param1[4])
output2 = singlediode(sde_param2[0], sde_param2[1], sde_param2[2],
                      sde_param2[3], sde_param2[4])

returns different values between output1 and output2. Have I done something incorrectly here?

The error affects ivtools.sdm.fit_desoto_sandia, not pvsystem.calcparams_desoto and singlediode.
The tests for fit_desot_sandia have a coarse tolerance, which could have been set because of this error. https://github.com/pvlib/pvlib-python/blob/6af80da35a7c96059c534ee38be9123bcfc7f50f/pvlib/tests/ivtools/test_sdm.py#L141

The tests for fit_desoto_sandia have a coarse tolerance, which could have been set because of this error.

At first I thought similar, but I decided to test it and it does not seem to change anything noticeable.
My test strategy has been:

Switch between +/- dEgdT
Run the tests without the tolerance, which made them fail
Re-run the tests and breakpoint on that assert, run command modeled[params.keys()].values-expected[params.keys()].values.

There is no difference, I've added my results to the details section down below.
Now I wonder whether that term has any impact on the model (I suppose it does, nobody would have put it there without a reason). Is there any check I've missed? Maybe is the max cell temp difference from STC too low (20 ºC)?
Same output

fit_desoto_sandia
-----------------
+ 0.0002677
Mismatched elements: 2 / 5 (40%)
Max absolute difference among violations: 10.26629715
Max relative difference among violations: 0.07620939

modeled[params.keys()].values-expected[params.keys()].values =
array([-7.84332362e-05,  7.69714883e-12,  1.02662972e+01, -4.47022678e-03,
        7.18454498e-03])

- 0.0002677
Mismatched elements: 2 / 5 (40%)
Max absolute difference among violations: 10.26629715
Max relative difference among violations: 0.07620939

modeled[params.keys()].values-expected[params.keys()].values =
array([-7.84332362e-05,  7.69714883e-12,  1.02662972e+01, -4.47022678e-03,
        7.18454498e-03])

The way that algorithm works, the value of dEgdT only affects EgRef and I_o_ref, and the effect on I_o_ref is very small. Here's a script to illustrate.  sdm_desoto_degdt is a copy of pvlib\ivtools\sdm.py with lines 857-858 changed:
    elif model == 'desoto':
        dEgdT = 0.0002677 * degdt_sign

Pass degdt_sign into _extract_sdm_params from fit_desoto_sandia. Give it values of either +1 or -1.
import numpy as np
import sdm_desoto_degdt as sdd
from pvlib import pvsystem

cansol = {'ivcurve': {'V_mp_ref': 46.6, 'I_mp_ref': 4.73, 'V_oc_ref': 58.3,
                        'I_sc_ref': 5.05},
            'specs': {'alpha_sc': 0.0025, 'beta_voc': -0.19659,
                      'gamma_pmp': -0.43, 'cells_in_series': 96},
            'params': {'I_L_ref': 5.056, 'I_o_ref': 1.01e-10,
                       'R_sh_ref': 837.51, 'R_s': 1.004, 'a_ref': 2.3674,
                       'Adjust': 2.3}}
params = cansol['params']
params.pop('Adjust')
specs = cansol['specs']
effective_irradiance = np.array([400., 500., 600., 700., 800., 900.,
                                 1000.])
temp_cell = np.array([15., 25., 35., 45.])
ee = np.tile(effective_irradiance, len(temp_cell))
tc = np.repeat(temp_cell, len(effective_irradiance))
IL, I0, Rs, Rsh, nNsVth = pvsystem.calcparams_desoto(
    ee, tc, alpha_sc=specs['alpha_sc'], **params)
ivcurve_params = dict(photocurrent=IL, saturation_current=I0,
                      resistance_series=Rs, resistance_shunt=Rsh,
                      nNsVth=nNsVth)
sim_ivcurves = pvsystem.singlediode(**ivcurve_params).to_dict('series')
v = np.linspace(0., sim_ivcurves['v_oc'], 300)
i = pvsystem.i_from_v(voltage=v, **ivcurve_params)
sim_ivcurves.update(v=v.T, i=i.T, ee=ee, tc=tc)

result = sdd.fit_desoto_sandia(sim_ivcurves, specs)
for k in ['I_L_ref', 'I_o_ref', 'R_s', 'R_sh_ref', 'a_ref', 'EgRef', 'dEgdT']:
    print(f'{k}: {result[k]}')

result2 = sdd.fit_desoto_sandia(sim_ivcurves, specs, degdt_sign=-1)
for k in ['I_L_ref', 'I_o_ref', 'R_s', 'R_sh_ref', 'a_ref', 'EgRef', 'dEgdT']:
    print(f'{k}: {result2[k]}')

So the problem is not that the change makes no difference, the problem is that our tests don't check the affected quantities.  The test currently only looks at ['I_L_ref', 'I_o_ref', 'R_sh_ref', 'R_s', 'a_ref'].  Seems like we should add at least dEgdT and EgRef to the tested values in order to close out #2321.
There are other untested values as well ('iph', 'io', 'rsh', 'rs', 'u', 'cells_in_series').  Seems like we should test those as well, but that's not required for this PR IMHO.

These things have caught my attention:

The tested module is made of poly-crystalline (from datasheet), for which in pvlib.pvsystem.calcparams_pvsyst states in the docstring a EgRef = 1.121 eV for crystalline silicon. The result here is 1.3112547292120638
Values of results, lets say result["rs"] differ from Rs by an amount I'm unable to distinguish acceptable or not. Trace from an assert_allclose:Mismatched elements: 28 / 28 (100%)
Max absolute difference among violations: 0.00804031
Max relative difference among violations: 0.00800828

Before making too coarse tests I'd like to have your input.

These things have caught my attention:

The tested module is made of poly-crystalline (from datasheet), for which in pvlib.pvsystem.calcparams_pvsyst states in the docstring a EgRef = 1.121 eV for crystalline silicon. The result here is 1.3112547292120638

The algorithm (as documented in the reference technical report) regards EgRef as a fitting parameter. I recall that fitting EgRef significantly improved the fitted model. Maybe worth a note in fit_desoto_sandia docstring.

Values of results, lets say result["rs"] differ from Rs by an amount I'm unable to distinguish acceptable or not. Trace from an assert_allclose:Mismatched elements: 28 / 28 (100%)
Max absolute difference among violations: 0.00804031
Max relative difference among violations: 0.00800828

That doesn't surprise me. The five returned vectors are the diode equation parameters one for each input IV curve. The five values are determined by fitting. The thought was that fitting each curve would reveal the structure of the relationship between each parameters and irradiance and temperature. The DeSoto model (and other single diode models) assume that structure is described by the model's auxiliary equations, in the case of rs, that Rs is a constant for all curves. That's why rs differs from Rs.
If we test the diode equation parameters rs etc. we ought to compare with archived values rather than diode model parameters e.g. Rs. IMO, testing at that intermediate level would help with diagnosis if the current test_fit_desoto_sandia fails, but if the current test passes (diode model parameters are preserved), then I think it is safe to assume the intermediate variables are also OK.

This PR should be ready to go. I don't have more time today so feel free to push changes as you need.
Thanks @cwhanse for the in-depth explanation, I wasn't aware of all that :)

Thanks @echedey-ls!


Lock App Button

It's possible to lock the app ("log off") when the digitizer is away from their station.
NOTE: We may need offline authentication, perhaps using a pin code.

Just lock the computer!


Cannot configure SF_PK

I'm unable to get past this error while trying to execute a simple test to interact with my Salesforce instance. I have been able to successfully interact with SF objects (such as Account) through the shell, but I am not able to in my script.
Here is my test:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cdp.settings')
django.setup()
...
SF_PK='id'
account1 =<EMAIL_ADDRESS>print(account1)

Could someone please help me understand what I'm doing incorrectly here? SF_PK is defined in my settings.py:
## Salesforce setting for primary key
SF_PK='id'

stacktrace:
`(cdp-J3b73aRa-py3.12) kylemassimilian@Kyles-MBP-2 klaviyo % poetry run python3 services.py
Traceback (most recent call last):
  File "/Users/kylemassimilian/Desktop/Vella/Software Engineering/Stack/Microservices/cdp/klaviyo/services.py", line 8, in <module>
    from models import Account, Opportunity
  File "/Users/kylemassimilian/Desktop/Vella/Software Engineering/Stack/Microservices/cdp/klaviyo/models.py", line 2, in <module>
    from salesforce import models as sf_models
  File "/Users/kylemassimilian/Library/Caches/pypoetry/virtualenvs/cdp-J3b73aRa-py3.12/lib/python3.12/site-packages/salesforce/models.py", line 29, in <module>
    from salesforce.fields import (  # pylint:disable=useless-import-alias
  File "/Users/kylemassimilian/Library/Caches/pypoetry/virtualenvs/cdp-J3b73aRa-py3.12/lib/python3.12/site-packages/salesforce/fields.py", line 33, in <module>
    SF_PK = getattr(settings, 'SF_PK', 'id')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/kylemassimilian/Library/Caches/pypoetry/virtualenvs/cdp-J3b73aRa-py3.12/lib/python3.12/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/Users/kylemassimilian/Library/Caches/pypoetry/virtualenvs/cdp-J3b73aRa-py3.12/lib/python3.12/site-packages/django/conf/__init__.py", line 63, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting SF_PK, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.`

Thank you

The stacktrace indicates that it was a general problem with missing Django settings path configuration, not related to django-salesforce. "SF_PK" happened to be the first value where settings were used.
The lowercase primary key "id" is a default value and not necessary to specify it. SF_PK is useful only you would  prefer capitalized primary keys "Id" in your code.


ERROR: rav1e >= 0.4.0 not found using pkg-config

Hello there,
FFmpeg builds fail with the message above:
ERROR: rav1e >= 0.4.0 not found using pkg-config

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
<EMAIL_ADDRESS>mailing list or IRC #ffmpeg on irc.libera.chat.
Include the log file "ffbuild/config.log" produced by configure as this will help
solve the problem.

And from config.log:
tail -n 50 ffbuild/ffmpeg/ffbuild/config.log | xclip -sel clip

Output:
check_func_headers libplacebo/vulkan.h pl_vulkan_create -I/opt/ffbuild/include -pthread -L/opt/ffbuild/lib -lplacebo -lm -pthread -ldl -lshaderc_combined -lstdc++
test_ld cc -I/opt/ffbuild/include -pthread -L/opt/ffbuild/lib -lplacebo -lm -pthread -ldl -lshaderc_combined -lstdc++
test_cc -I/opt/ffbuild/include -pthread -L/opt/ffbuild/lib -pthread
BEGIN /tmp/ffconf.QJEI2FBb/test.c
    1	#include <libplacebo/vulkan.h>
    2	#include <stdint.h>
    3	long check_pl_vulkan_create(void) { return (long) pl_vulkan_create; }
    4	int main(void) { int ret = 0;
    5	 ret |= ((intptr_t)check_pl_vulkan_create) & 0xFFFF;
    6	return ret; }
END /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread -DLIBTWOLAME_STATIC -std=c11 -fomit-frame-pointer -fPIC -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libvmaf -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include/libpng16 -I/opt/ffbuild/include/lilv-0 -DLILV_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/serd-0 -I/opt/ffbuild/include/sord-0 -I/opt/ffbuild/include/zix-0 -I/opt/ffbuild/include/sratom-0 -DSRATOM_STATIC -DSORD_STATIC -DSERD_STATIC -pthread -DZIX_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/harfbuzz -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libdrm -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include -DHWY_STATIC_DEFINE -DJXL_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DJXL_THREADS_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DKVZ_STATIC_LIB -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/openjpeg-2.5 -DOPJ_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/opus -I/opt/ffbuild/include/opus -I/opt/ffbuild/include -pthread -L/opt/ffbuild/lib -pthread -c -o /tmp/ffconf.QJEI2FBb/test.o /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm -pthread -Wl,--as-needed -Wl,-z,noexecstack -pie -I/opt/ffbuild/include -pthread -L/opt/ffbuild/lib -pthread -o /tmp/ffconf.QJEI2FBb/test /tmp/ffconf.QJEI2FBb/test.o -lplacebo -lm -ldl -lshaderc_combined -lstdc++ -ldl -lgomp
require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
check_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
test_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
pkg-config --exists --print-errors libpulse
check_func_headers pulse/pulseaudio.h pa_context_new -I/opt/ffbuild/include -D_REENTRANT -L/opt/ffbuild/lib -lpulse -pthread -L/opt/ffbuild/lib/pulseaudio -lpulsecommon-16.0 -ldl -lrt
test_ld cc -I/opt/ffbuild/include -D_REENTRANT -L/opt/ffbuild/lib -lpulse -pthread -L/opt/ffbuild/lib/pulseaudio -lpulsecommon-16.0 -ldl -lrt
test_cc -I/opt/ffbuild/include -D_REENTRANT -L/opt/ffbuild/lib -pthread -L/opt/ffbuild/lib/pulseaudio
BEGIN /tmp/ffconf.QJEI2FBb/test.c
    1	#include <pulse/pulseaudio.h>
    2	#include <stdint.h>
    3	long check_pa_context_new(void) { return (long) pa_context_new; }
    4	int main(void) { int ret = 0;
    5	 ret |= ((intptr_t)check_pa_context_new) & 0xFFFF;
    6	return ret; }
END /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread -DLIBTWOLAME_STATIC -std=c11 -fomit-frame-pointer -fPIC -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libvmaf -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include/libpng16 -I/opt/ffbuild/include/lilv-0 -DLILV_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/serd-0 -I/opt/ffbuild/include/sord-0 -I/opt/ffbuild/include/zix-0 -I/opt/ffbuild/include/sratom-0 -DSRATOM_STATIC -DSORD_STATIC -DSERD_STATIC -pthread -DZIX_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/harfbuzz -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libdrm -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include -DHWY_STATIC_DEFINE -DJXL_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DJXL_THREADS_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DKVZ_STATIC_LIB -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/openjpeg-2.5 -DOPJ_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/opus -I/opt/ffbuild/include/opus -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -D_REENTRANT -L/opt/ffbuild/lib -pthread -L/opt/ffbuild/lib/pulseaudio -c -o /tmp/ffconf.QJEI2FBb/test.o /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm -pthread -Wl,--as-needed -Wl,-z,noexecstack -pie -I/opt/ffbuild/include -D_REENTRANT -L/opt/ffbuild/lib -pthread -L/opt/ffbuild/lib/pulseaudio -o /tmp/ffconf.QJEI2FBb/test /tmp/ffconf.QJEI2FBb/test.o -lpulse -lpulsecommon-16.0 -ldl -lrt -ldl -lgomp
require_pkg_config librav1e rav1e >= 0.4.0 rav1e.h rav1e_context_new
check_pkg_config librav1e rav1e >= 0.4.0 rav1e.h rav1e_context_new
test_pkg_config librav1e rav1e >= 0.4.0 rav1e.h rav1e_context_new
pkg-config --exists --print-errors rav1e >= 0.4.0
check_func_headers rav1e.h rav1e_context_new -I/opt/ffbuild/include/rav1e -L/opt/ffbuild/lib -lrav1e -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc
test_ld cc -I/opt/ffbuild/include/rav1e -L/opt/ffbuild/lib -lrav1e -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc
test_cc -I/opt/ffbuild/include/rav1e -L/opt/ffbuild/lib
BEGIN /tmp/ffconf.QJEI2FBb/test.c
    1	#include <rav1e.h>
    2	#include <stdint.h>
    3	long check_rav1e_context_new(void) { return (long) rav1e_context_new; }
    4	int main(void) { int ret = 0;
    5	 ret |= ((intptr_t)check_rav1e_context_new) & 0xFFFF;
    6	return ret; }
END /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread -DLIBTWOLAME_STATIC -std=c11 -fomit-frame-pointer -fPIC -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libvmaf -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include/libpng16 -I/opt/ffbuild/include/lilv-0 -DLILV_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/serd-0 -I/opt/ffbuild/include/sord-0 -I/opt/ffbuild/include/zix-0 -I/opt/ffbuild/include/sratom-0 -DSRATOM_STATIC -DSORD_STATIC -DSERD_STATIC -pthread -DZIX_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/harfbuzz -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/libdrm -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include/libxml2 -I/opt/ffbuild/include/freetype2 -I/opt/ffbuild/include -DFRIBIDI_LIB_STATIC -I/opt/ffbuild/include/fribidi -I/opt/ffbuild/include -I/opt/ffbuild/include -DHWY_STATIC_DEFINE -DJXL_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DJXL_THREADS_STATIC_DEFINE -DJXL_STATIC_DEFINE=1 -I/opt/ffbuild/include -DKVZ_STATIC_LIB -I/opt/ffbuild/include -I/opt/ffbuild/include -I/opt/ffbuild/include/openjpeg-2.5 -DOPJ_STATIC -I/opt/ffbuild/include -I/opt/ffbuild/include/opus -I/opt/ffbuild/include/opus -I/opt/ffbuild/include -pthread -I/opt/ffbuild/include -D_REENTRANT -I/opt/ffbuild/include/rav1e -L/opt/ffbuild/lib -c -o /tmp/ffconf.QJEI2FBb/test.o /tmp/ffconf.QJEI2FBb/test.c
x86_64-ffbuild-linux-gnu-gcc -static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm -pthread -Wl,--as-needed -Wl,-z,noexecstack -pie -I/opt/ffbuild/include/rav1e -L/opt/ffbuild/lib -o /tmp/ffconf.QJEI2FBb/test /tmp/ffconf.QJEI2FBb/test.o -lrav1e -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc -ldl -lgomp
/opt/ct-ng/lib/gcc/x86_64-ffbuild-linux-gnu/12.2.0/../../../../x86_64-ffbuild-linux-gnu/bin/ld: cannot find -lrav1e: No such file or directory
collect2: error: ld returned 1 exit status
ERROR: rav1e >= 0.4.0 not found using pkg-config

How the builder(s) were invoked:
I have tried building both mainline and a release variant of ffmpeg, via:
./makeimage.sh linux64 nonfree 5.1
./build.sh linux64 nonfree 5.1

And:
./makeimage.sh linux64 nonfree
./build.sh linux64 nonfree

With the same results.

Yeah, I get the same issue, but I can't see any obvious reason as to why right now.
The library is right there, and it's happily finding other libraries that are in the same location.
The pre-built images still work somehow, which makes the whole thing even stranger, since no significant updates happened since they were built.

This is bizarre, if I manually go into the container, and run the same configure invocation, it works just fine.
The error in the configure log looks like it's trying to open "-lrav1e" as a literal file for some reason.


dock cpe

1、dockerfile ENTRYPOINT replace CMD
2、provide default setting file.

Coverage remained the same at 66.566% when pulling 734b7df8494635b4d11a85788e8aaeda385c1245 on TankTian:test-cpe into 2b522f589d5553ed98c91b36a2c0c2307b305a22 on WillemJiang:master.


Add reminder that pin must be in sync with two other places

🗣 Description
This pull request modifies a comment to remind us that the ansible-core pin must stay in sync across this repo as well as:

cisagov/skeleton-generic
cisagov/skeleton-packer

💭 Motivation and context
If we update the pin in one place we must remember to update it in the two other places.
🧪 Testing
All automated tests pass.
✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All new and existing tests pass.

We close this pull request because a new version of the ansible-core Python package has been released that does not suffer from the bug discussed in ansible/ansible#82702. This bug broke any symlinked files in vars, tasks, etc. for any Ansible role installed via ansible-galaxy.


"token" modifier doesn't work with ranges

For example,
hello there

With a cursor in the middle of "hello", saying "take token past trap" should select both words, but instead starts from current cursor position rather than expanding to start token.

The problem is that we process the range before we process the selection type. ie instead of creating a range between two tokens we create a range between the current selection and the decorated mark and then threat that as token. Moving the processing of compound targets to the end of the chain should should solve this.


Enable GitHub Actions

This PR adds configuration for GitHub Actions CI setting up the Django app + building vite.js + running pytest.

This would be useful to have, as currently we're running blind without the tests running in ci...

This would be useful to have, as currently we're running blind without the tests running in ci...

Done! Only took 3 weeks 😅


[Bug] Error: JAVA_HOME not set when docker-compose up 3.1.1 standalone

Search before asking

[X] I searched in the issues and found nothing similar.

Version
docker images
>
REPOSITORY                      TAG       IMAGE ID       CREATED         SIZE
apachepulsar/pulsar             3.1.1     e1ce95d6fa9f   3 months ago    1.18GB

cat /proc/version
>
Linux version 3.10.0-1160.6.1.el7.x86_64<EMAIL_ADDRESS>(gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Nov 17 13:59:11 UTC 2020

Minimal reproduce step
---
version: "3.7"
services:
  pulsar:
    image: apachepulsar/pulsar:3.1.1
    environment:
    - PULSAR_MEM=-Xms512m -Xmx512m -XX:MaxDirectMemorySize=1g
    - PULSAR_PREFIX_defaultRetentionTimeInMinutes=14400
    - PULSAR_PREFIX_defaultRetentionSizeInMB=1000
    - PF_ENV_DEBUG=1
    command: >
      /bin/bash -c
      "pwd
      && echo 'JAVA_HOME='$JAVA_HOME
      && echo 'JAVA_BIN='$JAVA_BIN
      && echo $(which java)
      && ls -alh /usr/local
      && bin/pulsar standalone --advertised-address standalone -nss"
    hostname: pulsar
    ports:
    - 8093:8080
    - 6651:6650
...

docker-compose up

What did you expect to see?
start successfully
What did you see instead?
pulsar_1  | Error: JAVA_HOME not set, and no java executable found in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.
pulsar_new_pulsar_1 exited with code 1

Anything else?
i check the file
2.7.0 image:

3.1.1 image:

I test on another machine,
the JAVA_HOME, JAVA_BIN is empty too,
but it start successfully,
both are aliyun ecs
cat /proc/version
>
Linux version 3.10.0-1160.71.1.el7.x86_64<EMAIL_ADDRESS>(gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Jun 28 15:37:28 UTC 2022

Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

$ java --version
openjdk <IP_ADDRESS> 2023-08-24
OpenJDK Runtime Environment Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM Temurin-<IP_ADDRESS>+1 (build <IP_ADDRESS>+1, mixed mode, sharing)

java --version
[0.004s][warning][os,thread] Failed to start thread "GC Thread#0" - pthread_create failed (EPERM) for attributes: stacksize: 1024k, guardsize: 4k, detached.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create worker GC thread. Out of system resources.
# An error report file with more information is saved as:
# /pulsar/hs_err_pid37.log

seems docker problem:
 sudo docker version
Client: Docker Engine - Community
 Version:           20.10.0
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        7287ab3
 Built:             Tue Dec  8 18:57:35 2020
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.0
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       eeddea2
  Built:            Tue Dec  8 18:56:55 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

sudo docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:11:35 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:10:36 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.26
  GitCommit:        3dd1e886e55dd695541fdcd67420c2888645a495
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

similar issue: https://github.com/keycloak/keycloak/issues/17404


[#2368] my resources pagination WIP

Pull Request Checklist:

[ ] Positive Test Case Written by Dev

[ ] Automated Testing

[ ] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

[Enter positive test case here]

METRIC
VALUE

https://sonarqube.cuahsi-workstation.com:9000/dashboard?id=hydroshare-4685


Collapsed filter menu on side bar

Can you make da side bar filter menu collapsible or add a unique id for each? Thank you, your admin is awesome

Yes, I'm working on it. I'm trying to offer a better sidebar to deal with too many items on filter menu.

I'm will not work on this in the current design, but I'm considering the solution to the new future versions.


Publish v2 Proxy via Homebrew

Is someone working on a brew formula?

Not sure what that is :)

After thinking about it more, there are some obstacles:

cloudsql-proxy either looks at GOOGLE_APPLICATION_CREDENTIALS env variable
or at the flag -credential_file.
When using/installing gcloud, neither the env variable is set nor is there a service account key file.

So gcloud and cloudsql-proxy are not compatible as of today, I believe.
Ultimately, it would be really nice if the proxy would be available with:
gcloud sql instances proxy <instance>

If you don't set the env variable or the flag, the Proxy will still get the
authentication used in gcloud if you have run gcloud auth login

word! just tried again, no idea what I was doing wrong before.

I have zero experience with homebrew, but if you would like to submit a formula I would be very gracious!

I will look into this prob within the next days.

Priorities shifted unfortunately. I'm not actively looking into this right now.

Closing - this issue hasn't been updated for over 6 months and appears to be abandoned.

I know this issue is outdated, but just in case anyone wonders how to install cloud_sql_proxy via brew it is possible now by using gcloud:
gcloud components install cloud_sql_proxy

This seems to be installing an old version (1.13, latest is 1.17). Am I doing something wrong? I tried running gcloud components update but it still wants to install 1.13.

@jgonera Unfortunately the gcloud version being outdated is a known issue - see #408

Hello I actually might need some similar help with /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/cloud_sql_proxy -instances= server info
When i run this i get: No such file or directory
anyone know what the issue might be?

Was any work done on this?

Never mind. Just saw the last message! Good day.

There is an unofficial brew formula here: https://github.com/tclass/homebrew-cloud_sql_proxy.
However, it compiles from source which requires Go. It remains easiest to just download the latest version from the Releases page.

for me it was here:
/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/cloud_sql_proxy

Re-opening as this would make life easier for lots of folks. Seems worth pursuing, although I can't promise a timeline presently.

Likely blocked by https://github.com/GoogleCloudPlatform/cloud-sql-proxy/issues/1712.

Useful: https://docs.brew.sh/Formula-Cookbook

I've created an unofficial formulae for the 2.X-version over at https://github.com/snorremd/homebrew-tap/pkgs/container/tap%2Fcloud-sql-proxy.
Note that my CI job unfortunately only builds bottles for amd64 architecture so if you are on arm (e.g. M1 or M2 Mac) you need to compile from source. But Homebrew should install go for you if you don't have it installed, so you don't need to do anything manually.
I've yet to figure out a cheapish way to build bottles for Mac arm processors as you'd need short lived access to a Mac M1 machine/server and Apple requires datacenters to rent on a 24hour basis.

@snorremd Nice!
As an alternative, if you'd like to contribute a formula here, we could take over the cost of running the builds. Do the builds need to be notarized? I've been waiting to pick this up until we fix #1712.

Notarization is not strictly required by MacOS for binaries I believe. So it should be okay to host formula bottles without signing them.
As for the ARM Mac issue the biggest challenge now would be that you'd have to set up and maintain a self-hosted MacOS GitHub Actions runner. GitHub do have GitHub hosted Mac runners on their roadmap for this year, so perhaps it would be wise to wait for those: https://github.com/github/roadmap/issues/528
I'd be happy to help contribute something to the project, but I suppose you'd want to automate this a bit more than my current formula setup. My suggestion would be to set up a new repository, https://github.com/GoogleCloudPlatform/homebrew-gcp so you get a proper homebrew tap for all GoogleCloudPlatform binary projects. Users would then add the tap with brew tap GoogleCloudPlatform/gcp and could then install your binary with brew install cloud-sql-proxy.
When you mint a new release you could trigger a GitHub actions job that creates a PR for the new release on the tap repository with the new version number and hash, and then allow the tap repository to follow the normal Homebrew CI process of testing the formula, bottling, and uploading packages.
You can use this repository as a standalone tap, but users would then need to use a URL when adding the tap, and it would only contain the cloud-sql-proxy formula. Making a single tap for all cloud platform related binaries would be nicer for users I think.

Yea this would be awesome. The short term solution would be to at least provide v2 installation via gcloud components as currently the latest appears to be 1.27.0.

This seems like an obvious thing to ship. Bumping the priority to reflect that.
Meanwhile, we're working on fixing the gcloud version to support v2, but given the breaking changes, we have to be thoughtful about doing that (and automate it which it's currently not).

@enocom as a follow-up it appears that when installing via gcloud the installed binary is not put into a directory that exists within my $PATH. After installation with gcloud should it be accessible or is it only accessible via gcloud beta sql connect?

@maverick1872 This has come up before. Would you mind filing an issue here with details (your OS, your gcloud version, your PATH settings)?

Hi there folks, cloud-sql-proxy is now part of homebrew-core (#140782) and can be installed with brew install cloud-sql-proxy.

Beautiful! Thank you for this awesome contribution!

@jhandguy Does Homebrew Core have automation to update the version?

Looks like no: https://docs.brew.sh/Formula-Cookbook#updating-formulae.
But we could easily add this to our release process.


Update to 4.0.2

Updated Mastodon version to 4.0.2
Tested successfully

Closing this as it has been replaced by #7


Sorting by curation status does not work

Either disable this or describe how the sorting should work and I'll try to implement the necessary backend features.

it currently works by sorting by needsAttention. Ideally we would be sorting by the curation note, probably alphabetically

I think what confused me is that the icon was not consistently appearing for the top results.
As an alternative, we could sort by the date of the needs attention event.

the icon still won't always appear in the top results with that though. not all needsAttention = true dataset has a note

Oh, I see. In that case we should always show an icon for datasets that need attention and use the note as title if present.


Service not working on a Device with no google services

🐛 Bug Report
I'm trying to get location on a device that does not have google play services (Model is TC56) but it does not work. I'm forcing the usage of the Location Manager.
Expected behavior
Expected to get the location
Reproduction steps

Get a device with no google services
Create a quick example project with this plugin on
Run the following code at any point

    final Geolocator _geo = Geolocator();
    _geo.forceAndroidLocationManager = true;
    try{
      Position position = await _geo.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
      return position;
    }catch(e){
      throw(e.toString());
    }

Nothing will happen. Following debug points the call stops right here:
final Map<dynamic, dynamic> positionMap =        await _methodChannel.invokeMethod('getCurrentPosition',            Codec.encodeLocationOptions(locationOptions));

inside the getCurrentPosition method
Configuration
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.10.7, on Mac OS X 10.14.3 18D109, locale en-US)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.2.1)
[✓] Android Studio (version 3.2)
[✓] VS Code (version 1.38.1)
[✓] Connected device (2 available)

• No issues found!

plugins inside the project:
 cupertino_icons: ^0.1.2
  path_provider:  ^1.1.0
  rflutter_alert: ^1.0.2
  http: ^0.12.0+2
  dio: ^2.1.0
  device_info: ^0.4.0+1
  positioned_tap_detector: ^1.0.2
  barcode_scan: ^1.0.0
  camera: ^0.5.2+2
  sqflite: ^1.1.0
  synchronized: ^2.1.0
  flutter_launcher_icons: ^0.7.3
  firebase_core: ^0.4.0+9
  firebase_analytics: ^5.0.2
  flutter_crashlytics: ^1.0.0
  firebase_messaging: ^5.1.4
  url_launcher: ^5.0.2
  shared_preferences: ^0.5.3+1
  google_maps_flutter: ^0.5.21+3
  auto_size_text: ^2.0.2+1
  flutter_spinkit: ^4.0.0
  flare_flutter: ^1.5.6
  cached_network_image: ^1.1.1
  async:
  store_redirect: ^1.0.1
  transparent_image: ^1.0.0
  package_info: ^0.4.0+3
  intl: 0.16.0
  flushbar: ^1.9.0
  connectivity: ^0.4.4
  exif: ^1.0.1
  carousel_slider: ^1.3.1
  flutter_image_compress: ^0.6.3
  geolocator: ^5.1.4+1

Version: ^5.1.4+1
Platform:

[x] :robot: Android

Really silly mistake, I did not have the location services on lol... I'll close the issue but feel free to delete it instead.


chore: Dependabot updates for used Github Actions

With this change, Dependabot will automatically be creating pull-requests for any shared actions or workflows used in Github Workflows.
This means deprecations such as this will be a thing of the past fairly soon:

The following actions uses Node.js version which is deprecated and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/

Hope you can use it!
Definition of Ready

[x] I am happy with the code
[x] Short description of the feature/issue is added in the pr description
[ ] PR is linked to the corresponding user story
[ ] Acceptance criteria are met
[ ] All open todos and follow ups are defined in a new ticket and justified
[ ] Deviations from the acceptance criteria and design are agreed with the PO and documented.
[x] No debug or dead code
[x] My code has no repetitions
[ ] Documentation/examples are up-to-date
[ ] All non-functional requirements are met
[ ] If possible, the test configuration is adjusted so acceptance tests cover my changes

Ready for re-review @eliobischof


Add job to sync new IREE fork of StableHLO

We'll use this for carrying local patches for integration purposes as
with our other forks. The other forks all have weird names and aren't
proper forks because they're back from when we were in the google/
GitHub organization and we didn't want to create, e.g.
google/tensorflow. Now that we have a separate org, we can just use a
normal fork and that makes syncing much more straightforward. Once we
drop the MHLO repo dep (which this is in service of), I think we can
switch the LLVM fork to be a proper fork and archive the TF and MHLO
ones as no longer used.

I think leaving this PR open isn't the best way to track this. I'm going to close :-)


News on SARS-CoV2 variant Competition Dashboard

Updated the content on md file, includes images for thumbnail and content graph.

and publications file should be uploaded

The publication file is added in a right branch with details for the task number ( as added the data here in this branch was a mistake) , the publication file is in the Hamsa/Freya- 833,834


Azure Search Expand WaterMark Support

Is your feature request related to a problem? Please describe.
I am trying to build an indexer in Azure Search which utilizes the parameters configuration settings convertHighWaterMarkToRowVersion and disableOrderByHighWaterMarkColumn. The current IndexingParametersConfiguration class excludes these two settings, and passing a dictionary containing these settings directly ignores them when making a request to the API.
The functionality of these parameters is described in the Azure Search documentation
Describe the solution you'd like
Add these two fields to the class IndexingParametersConfiguration in file azure\search\documents\indexes_generated\models_models_py3.py among other relevant declarations.
Describe alternatives you've considered
I intended to put in a pull request myself, however, the files in question are code-generated, so any changes I make would be overwritten. The documentation only points to the Rest API Specs but does not seem to include information related to the data model.
Additional context
N/A

@fruitymedley thanks for your feature request. @xiangyan99 - can you take a look?

Thank you for reaching out.
As you figured out, those code is auto generated based on https://github.com/Azure/azure-rest-api-specs/blob/main/specification/search/data-plane/Azure.Search/preview/2023-07-01-Preview/searchservice.json
Please open an issue in https://github.com/Azure/azure-rest-api-specs repo.


Unable to map missing

Describe the bug
I get the following error mapping a missing property to a nullable constructor argument

RMG013	 has no accessible constructor with mappable arguments

To Reproduce
public record Source(string A)
public record Target(string A, int? B)

...

public static partial Target MapToTarget(Source source);

Expected behavior
Pass a null into the constructor.
Environment (please complete the following information):

Mapperly Version: 2.8.0-next.1
.NET Version: 7.0.201
Target Framework: .net6.0
IDE: Visual Studio v17.5.1
OS: Windows 11

Thanks for the bug report.
I'm not sure if your example is valid. Target has one constructor that takes string and int?, Mapperly cannot construct Target from Source as it does not have a suitable value to use for B. It should work if you add a valid B property to Source.
// RMG013 has no accessible constructor with mappable arguments
public record Source(string A);
public record Target(string A, int B);

// Mapperly will generate a mapping because B is provided
public record Source(string A, int B);
public record Target(string A, int? B);

As @TimothyMakkison mentioned, Mapperly does not know what to map to the constructor argument B of Target.
Another solution would be to assign a default value to the unmapped constructor argument:
public record Target(string A, int? B = null);

Rel. https://github.com/riok/mapperly/discussions/335

Currently you can to configure a property mismatch
[MapProperty("A", "B")]

Why not allow mapping constants?
[MapPropertyValue("B", null)]
[MapPropertyValue("C", default(int))]

I realize this is now a feature request and not a bug. But what do you think?


feat(anthropic): update chat models to include Claude 3.5 Haiku and new version for Sonnet

Updates to chat models:

Updated the model identifier for claude-3-5-sonnet to a new version (claude-3-5-sonnet-20241022).
Added a new chat model claude-3-5-haiku with its configuration.

Thanks!


Talkers should not require a key and/or URL to generate the GUI settings

In commit 05e6eaf88e12c0500b4ecb6ea946daf08979ed89 it assumes all talkers should have a key and URL field. This is not true for a few talkers with regards to the key (MangaDex, MangaUpdates, etc.) and while the URL field may be preferred, if using a library or a file, the URL is not required.

All talkers have those fields created for them. If they ever don't exist that is a bug here https://github.com/comictagger/comictagger/blob/3ade47a7e095b1ebb1630a633b62a99706a7f310/comictaggerlib/ctsettings/plugin.py#L39-L61
There are two issues generating the settings that will be fixed shortly


Change one word on development.rst

I forgot to add this suggestion to the merge.
https://github.com/pythonecuador/lira/pull/47#discussion_r509839072
Just one-word change issue.

I only need change "get" for "become" ?

I only need change "get" for "become" ?

yep!

Thanks!, I'm sending pull request.


Update docker compose

Closes #
Changes proposed in this pull request:

...

From testing it locally, it is not using the MySQL service from the docker container, it is using my local one.
When I did brew services stop MySQL, to remove the local MySQL, the crawler tests (from within the crawler container) failed with the following:
ERROR    crawler.db:db.py:200 Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
Tried to setup the database by running python ./setup_test_db.py, but got similar error when running this script:
Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
This seems to come from db.py, method create_mysql_connection, where it is trying to connect using the database name, before we have actually created the db. However, if this script is faulty, not sure why it is not failing in the ci builds.

From testing it locally, it is not using the MySQL service from the docker container, it is using my local one.
When I did brew services stop mysql, to remove the local MySQL, the crawler tests (from within the crawler container) failed with the following:
ERROR crawler.db:db.py:200 Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
Tried to setup the database by running python ./setup_test_db.py, but got similar error when running this script:
Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
This seems to come from db.py, method create_mysql_connection, where it is trying to connect using the database name, before we have actually created the db. However, if this script is faulty, not sure why it is not failing in the ci builds.

I will try this out to see what happens on mine.
I'm thinking it will be worth getting a feel for who wants to use Docker for development and who just for the ancillary services. I've used it both ways and find it quicker and easier to develop locally with pipenv and then spin up the services with Docker. This compose file will build everything but maybe most of us just want the services?

I can put this succintly. I can't get it to work without docker so I have no choice. I spent 3 days before Xmas to get crawler up and running using pipenv and there was no solution. From my point of view if I can't use docker then I can't work on crawler.

From testing it locally, it is not using the MySQL service from the docker container, it is using my local one.
When I did brew services stop mysql, to remove the local MySQL, the crawler tests (from within the crawler container) failed with the following:
ERROR crawler.db:db.py:200 Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
Tried to setup the database by running python ./setup_test_db.py, but got similar error when running this script:
Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
This seems to come from db.py, method create_mysql_connection, where it is trying to connect using the database name, before we have actually created the db. However, if this script is faulty, not sure why it is not failing in the ci builds.

I will try this out to see what happens on mine.
I'm thinking it will be worth getting a feel for who wants to use Docker for development and who just for the ancillary services. I've used it both ways and find it quicker and easier to develop locally with pipenv and then spin up the services with Docker. This compose file will build everything but maybe most of us just want the services?

I can put this succintly. I can't get it to work without docker so I have no choice. I spent 3 days before Xmas to get crawler up and running using pipenv and there was no solution. From my point of view if I can't use docker then I can't work on crawler.

Where were you two years ago?! Would have loved this enthusiasm for docker!

Where were you two years ago?! Would have loved this enthusiasm for docker!

From testing it locally, it is not using the MySQL service from the docker container, it is using my local one.
When I did brew services stop mysql, to remove the local MySQL, the crawler tests (from within the crawler container) failed with the following:
ERROR crawler.db:db.py:200 Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
Tried to setup the database by running python ./setup_test_db.py, but got similar error when running this script:
Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
This seems to come from db.py, method create_mysql_connection, where it is trying to connect using the database name, before we have actually created the db. However, if this script is faulty, not sure why it is not failing in the ci builds.

I will try this out to see what happens on mine.
I'm thinking it will be worth getting a feel for who wants to use Docker for development and who just for the ancillary services. I've used it both ways and find it quicker and easier to develop locally with pipenv and then spin up the services with Docker. This compose file will build everything but maybe most of us just want the services?

I wrote this longer reply before Steve put it succinctly 😆  will leave it here in case helpful...
Thanks! Yes, I'd be up for having a discussion with the team about who's using what.
I can't currently run it locally because I get an error while importing pyodbc, which I think at least Steve and Eduardo have also got - that's also an issue with Lighthouse, and I think that's why we started using docker locally for this. Interested to know how you got round that?
When I run the tests in the container using the method Steve's written in the Readme, it is using my local MySQL and also MongoDB - so it currently only makes sense to put the MS SQL in the docker compose.

From testing it locally, it is not using the MySQL service from the docker container, it is using my local one.
When I did brew services stop mysql, to remove the local MySQL, the crawler tests (from within the crawler container) failed with the following:
ERROR crawler.db:db.py:200 Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
Tried to setup the database by running python ./setup_test_db.py, but got similar error when running this script:
Exception on connecting to MySQL database: 1049 (42000): Unknown database 'unified_warehouse_test'
This seems to come from db.py, method create_mysql_connection, where it is trying to connect using the database name, before we have actually created the db. However, if this script is faulty, not sure why it is not failing in the ci builds.

I will try this out to see what happens on mine.
I'm thinking it will be worth getting a feel for who wants to use Docker for development and who just for the ancillary services. I've used it both ways and find it quicker and easier to develop locally with pipenv and then spin up the services with Docker. This compose file will build everything but maybe most of us just want the services?

I wrote this longer reply before Steve put it succinctly 😆  will leave it here in case helpful...
Thanks! Yes, I'd be up for having a discussion with the team about who's using what.
I can't currently run it locally because I get an error while importing pyodbc, which I think at least Steve and Eduardo have also got - that's also an issue with Lighthouse, and I think that's why we started using docker locally for this. Interested to know how you got round that?
When I run the tests in the container using the method Steve's written in the Readme, it is using my local MySQL and also MongoDB - so it currently only makes sense to put the MS SQL in the docker compose.


Add Provider WCoStream | test AnimeLatinoHD method

from what I see only the referrer fails, wait for me to find another way

In the animelatino episode routes leave the space blank and the new provider routes are also shown blank


Crashes Powercord

Seems to have been an update or something as whenever I launch Powercord now with this plugin, the client crashes. Not sure of any specifics.

Seems like the latest canary update broke something. I'll look into it

@BrettplayMC Should be working now


No event fired when image is edited

Summary
When using an image editor to edit the image (like Doka) it doesn't fire an event to let you know that the image has been edited.
Expected behaviour
I expect a custom event to be called like onfileedit or just onfileadd for a more immutable approach with the file as argument.
Additional information
Because I want to handle the upload process myself I manually call filepond.processFile which works fine for just adding images, but if you edit them there's no event to track that and upload the edited image.
Versions
"filepond": "^3.5.1",
"filepond-plugin-image-crop": "^2.0.0",
"filepond-plugin-image-edit": "^1.0.1",
"filepond-plugin-image-exif-orientation": "^1.0.3",
"filepond-plugin-image-preview": "^3.1.4",
"filepond-plugin-image-resize": "^2.0.1",
"filepond-plugin-image-transform": "^3.1.0",

Does onpreparefile no fit this need?

@rikschennink onpreparefile doesn't seem to be called when I edit an image

Alright, will look into this after the holidays.

I've just tested with the set up below but can't reproduce the issue. onpreparefile is called twice, once when the image is added and once when the image is edited.
Do you have a public test case?
FilePond.registerPlugin(
    FilePondPluginImageExifOrientation,
    FilePondPluginImageCrop,
    FilePondPluginImageResize,
    FilePondPluginImagePreview,
    FilePondPluginImageTransform,
    FilePondPluginImageEdit
);

var pond = FilePond.create(
    document.querySelector('input'),
    {
        onpreparefile: (file, output) => {
            console.log(file, output)
        },
        imageEditEditor: Doka.create()
    }
);

@rikschennink not sure how to create a public test case like codepen with Doka. But I've narrowed it down to whether or not instantUpload is true or false. If it's true it works like you described but if it's set to false it doesn't trigger the onpreparefile event.
Like I explained in the OP I want to trigger the uploading myself as I need to be in control of the promise, that's why I need to set the instantUpload config to false.

Alright, that makes it easier to reproduce, will test again on Monday.

Thanks! It does seem to work fine the first time I edit an image. Unfortunately the second time I edit the same image the callback is not triggered and I'm getting the following error:

filepond-plugin-image-edit.js:172 Uncaught TypeError: Cannot read property 'crop' of undefined
    at editor.onconfirm (filepond-plugin-image-edit.js:172)
    at editor.onconfirm (filepond-plugin-image-edit.js:178)
    at doka.esm.min.js:4715
    at doka.esm.min.js:4716

        editor.onconfirm = function (_ref4) {
          var data = _ref4.data;
          var crop = data.crop; // update crop metadata

          item.setMetadata({
            crop: crop
          }); // call

          onouterconfirm(data, createItemAPI(item)); // used in instant edit mode

          if (!handleEditorResponse) return;

          editor.onclose = function () {
            handleEditorResponse(true);
            editor.onclose = null;
          };
        };

It seems that data here is undefined. This seems to only affect the callback, the editor itself works fine and it crops the image properly.

@rovansteen looking into it now.

Thanks, that did get rid of the error. But now it seems that every "even" (2nd, 4th, 6th etc.) edit does not upload the file. In short, this is what I'm doing:
Doka.create({
  onconfirm: (output, item) => {
    this.pond.processFile(item);
  }
});

It does not trigger a network request and there's no error. It does show the button to manually upload the image.
What might be helpful is that at every edit that fails to upload it does execute a DELETE request, while on the attempts where it successfully uploads the file it does not.

Can you try to call processFile with the item id instead of the object?

No luck. Also the ID seems to be the same every time, not sure if that's intended?

Also if I look at the promise that processFile() returns, the even ones are never resolved, neither rejected.

@rovansteen, okay, back to the drawing board.

I just successfully tested with this setup (fake process method).
item.id or item indeed doesn't matter, both function correctly with the code below.
FilePond.registerPlugin(
    FilePondPluginImageExifOrientation,
    FilePondPluginImageCrop,
    FilePondPluginImageResize,
    FilePondPluginImagePreview,
    FilePondPluginImageTransform,
    FilePondPluginImageEdit
);

const pond = FilePond.create(
    document.querySelector('input.foo'),
    {
        instantUpload: false,

        server: {
            // fake process method for testing only
            process: (name, file, metadata, load) => {
                setTimeout(() => {
                    load(Date.now());
                }, 1000);
            }
        },

        imageEditEditor: Doka.create({
            onconfirm: (output, item) => {
                console.log('confirmed crop on', item.id);

                pond.processFile(item).then(() => {
                    console.log('done');
                });
            },
            oncancel: (item) => {
                console.log('cancelled', item.id);
            }
        })
    }
);

Hmm that's weird. This is the code I have now.
import React from 'react';
import 'doka/doka.min.css';
import * as Doka from 'doka';
import cookie from 'js-cookie';
import Box from 'components/box';
import styled from 'library/styled';
import * as config from 'library/config';
import { File, FilePond, registerPlugin } from 'react-filepond';

import 'filepond/dist/filepond.min.css';
import FilePondPluginImageEdit from 'filepond-plugin-image-edit';
import FilePondPluginImageCrop from 'filepond-plugin-image-crop';
import FilePondPluginImageResize from 'filepond-plugin-image-resize';
import FilePondPluginImagePreview from 'filepond-plugin-image-preview';
import 'filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css';
import FilePondPluginImageTransform from 'filepond-plugin-image-transform';
import 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css';
import FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';
import FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';

registerPlugin(
  FilePondPluginImageExifOrientation,
  FilePondPluginImagePreview,
  FilePondPluginImageCrop,
  FilePondPluginImageResize,
  FilePondPluginImageTransform,
  FilePondPluginImageEdit,
  FilePondPluginFileValidateSize,
);

const Wrapper = styled(Box)`
  .filepond--root {
    margin-bottom: 0;
  }

  .filepond--file-info {
    display: none;
  }
`;

export type ImageUploadVariant = 'circle';

export interface ImageUploadConfigProps {
  required?: boolean;
  width?: number | string;
  height?: number | string;
  variant?: ImageUploadVariant;
  cropAspectRatio?: string | number | null;
}

export interface ImageUploadProps extends ImageUploadConfigProps {
  value?: any;
  onChange: (value: any) => void;
  onUpload: (upload: Promise<any>) => void;
}

interface ImageUploadState {
  image: any;
}

export default class ImageUpload extends React.Component<
  ImageUploadProps,
  ImageUploadState
> {
  /**
   * Define the default props.
   */
  static defaultProps = {
    cropAspectRatio: null,
  };

  /**
   * Get the derived state from the props.
   */
  static getDerivedStateFromProps(
    props: ImageUploadProps,
    state: ImageUploadState,
  ) {
    return {
      image: state.image || props.value,
    };
  }

  /**
   * Define the initial state.
   */
  state = {
    image: null,
  };

  /**
   * Ref to the pond instance.
   */
  pond: any = null;

  /**
   * Server config.
   */
  getConfig() {
    const token = cookie.get('XSRF-TOKEN');

    if (!token) {
      throw new Error('Could not set up a secure connection with the server.');
    }

    return {
      url: config.api.uploadImage,
      process: {
        withCredentials: true,
        headers: {
          Accept: 'application/json',
          'X-XSRF-TOKEN': token,
        },
      },
    };
  }

  /**
   * Handle when a file is added.
   */
  handleAddFile = (error: any, file: any) => {
    if (error) {
      return console.error(error);
    }

    // Origin '3' means that the file originates
    // from the server so no need to upload.
    if (file.origin === 3) {
      return;
    }

    this.uploadFile(file);
  };

  /**
   * Handle when the image is uploaded.
   *
   * Only when the image is succesfully uploaded to the server
   * we consider the value of the upload field changed and
   * call the onChange prop.
   */
  handleUpload = (error: any, file: any) => {
    if (error) throw error;
    this.props.onChange(file.serverId);
  };

  /**
   * Handle when the image is added.
   */
  handleUpdate = (files: Array<any>) => {
    this.setState({ image: files.length ? files[0].file : null });
  };

  /**
   * Handle when the image is removed.
   */
  handleRemoval = () => {
    this.props.onChange(null);
  };

  /**
   * Handle when the file is editted by the filepond image editor.
   */
  handleEdit = (edits: any, file: any) => {
    this.uploadFile(file);
  };

  /**
   * Upload a filepond file to the server.
   */
  uploadFile(file: any) {
    // Upload the file
    const promise = this.pond.processFile(file.id);

    if (this.props.onUpload) {
      this.props.onUpload(promise);
    }
  }

  /**
   * Get the props based on the variant.
   */
  getVariantProps(variant?: string) {
    switch (variant) {
      case 'circle':
        return {
          stylePanelLayout: 'circle compact',
          styleButtonProcessItemPosition: 'center bottom',
          styleButtonRemoveItemPosition: 'center bottom',
          styleLoadIndicatorPosition: 'center bottom',
          styleProgressIndicatorPosition: 'center bottom',
          styleImageEditButtonEditItemPosition: 'right bottom',
        };
      default:
        return {};
    }
  }

  /**
   * Render the component.
   */
  render() {
    const { image } = this.state;
    const { cropAspectRatio, required, width } = this.props;

    return (
      <Wrapper width={width}>
        <FilePond
          name="payload"
          ref={(ref: any) => (this.pond = ref)}
          required={required}
          instantUpload={false}
          imageEditEditor={Doka.create({
            onconfirm: this.handleEdit,
          })}
          maxFileSize="10MB"
          server={this.getConfig()}
          onaddfile={this.handleAddFile}
          onprocessfile={this.handleUpload}
          onupdatefiles={this.handleUpdate}
          onremovefile={this.handleRemoval}
          labelIdle={`Drag & Drop your picture or <span class="filepond--label-action">Browse</span>`}
          {...this.getVariantProps(this.props.variant)}
        >
          {image && <File key={image} src={image} origin="local" />}
        </FilePond>
      </Wrapper>
    );
  }
}

I can't really think of anything in my setup that could conflict with this. Do you maybe have any ideas?

Thanks that would be super helpful.

This is the most minimal set up that I could set up that has this issue:
import React from 'react';
import 'doka/doka.min.css';
import * as Doka from 'doka';
import { FilePond, registerPlugin } from 'react-filepond';

import 'filepond/dist/filepond.min.css';
import FilePondPluginImageEdit from 'filepond-plugin-image-edit';
import FilePondPluginImageCrop from 'filepond-plugin-image-crop';
import FilePondPluginImageResize from 'filepond-plugin-image-resize';
import FilePondPluginImagePreview from 'filepond-plugin-image-preview';
import 'filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css';
import FilePondPluginImageTransform from 'filepond-plugin-image-transform';
import 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css';
import FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';
import FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation';

registerPlugin(
  FilePondPluginImageExifOrientation,
  FilePondPluginImagePreview,
  FilePondPluginImageCrop,
  FilePondPluginImageResize,
  FilePondPluginImageTransform,
  FilePondPluginImageEdit,
  FilePondPluginFileValidateSize,
);

export default class ImageUpload extends React.Component {
  /**
   * Handle when the file is editted by the filepond image editor.
   */
  handleEdit = (edits: any, file: any) => {
    this.uploadFile(file);
  };

  /**
   * Upload a filepond file to the server.
   */
  uploadFile(file: any) {
    this.pond.processFile(file);
  }

  /**
   * Render the component.
   */
  render() {
    return (
      <FilePond
        instantUpload={false}
        server={{
          process: (name: any, file: any, metadata: any, load: any) => {
            setTimeout(() => {
              load(Date.now());
            }, 1000);
          },
        }}
        ref={(ref: any) => (this.pond = ref)}
        imageEditEditor={Doka.create({
          onconfirm: this.handleEdit,
        })}
      />
    );
  }
}

I don't see much differences with your setup, could it be something related to the React version of Filepond?

I've dived in a bit and one thing I noticed is that on this line https://github.com/pqina/filepond/blob/f75e733135955b80aa78ef05ca5161648d1de5ba/dist/filepond.esm.js#L4034 it checks if the item is ready to be processed and if not it returns. On the failed (even) attempts item.status is ItemStatus.PROCESSING_COMPLETE while on the successful odd attempts it's equal to ItemStatus.IDLE

@rovansteen I misread your earlier report as every odd file didn't process, rereading it now I notice it's the odd edit that's the problem. I'm on it.

@rikschennink I don't see 3.7.4 yet. https://www.npmjs.com/package/filepond

@rovansteen I forgot to publish to npm... should be there any minute now.

@rikschennink working all fine now, thanks for your help and persistence with this issue! 😄

Indeed FilePond does not throw an event in that situation as the file is not being processed till it's sent to the server.
I've updated both FilePond core (to 3.7.2) and the FilePond Image Edit plugin (to 1.0.2).
You can now listen to the Doka onconfirm and oncancel callbacks. These callbacks receive an additional parameter (over the default Doka callbacks) that contains a reference to the item being edited.
FilePond.create(
    document.querySelector('input'),
    {
        imageEditEditor: Doka.create({
            onconfirm: (output, item) => {
                console.log('Confirm callback', output, item);
            },
            oncancel: (item) => {
                console.log('Cancel callback', item);
            }
        })
    }
);

Hi,
I know this issue is closed.
But here when doka is calling onconfirm, the item is not the edited item. But I've set allowProcess on filePond to false maybe that is why. but I want to get the cropped image and then add it as a formdata somewhere else to upload.
so the onconfirm returns output and item. item for me is the unedited image and output is the crop information without any file. it seems at the end if I had the process on it could set the file property of the output to the edited file but I don't want to process it (I don't want to send it anywhere yet).

@farhadnowzari Why then use FilePond? If you use FilePond it will handle the processing of the image, it will automatically set outputFile to false on the Doka instance.

@farhadnowzari Why then use FilePond? If you use FilePond it will handle the processing of the image, it will automatically set outputFile to false on the Doka instance.

It is fine, the reason I'm doing that is that I have a vue component which can work standalone and send data to the given endpoint and if the endpoint is not provided it syncs the cropped image back.
I solved it. I found that instead of calling processFile I can call prepareFile and then I can get the onpreparefile(@preparefile) will be called and it has the output with cropped image. :)


Can't deploy the package in an app catalog site

The comment after packaging the app states "Now deploy the add-in in the app catalog site." I've tried this and I'm prompted with the initial problem "Your tenant administrator has to approve this app", so you cannot deploy the add-in, is there a step missing here, how can the add-in be deployed to the app catalog if I still get the prompt?

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

ID: 70a36ebb-4574-73c7-e927-488025b980fb
Version Independent ID: 2cfe998d-fafc-7559-1b6b-7737def6ec36
Content: Developing using Tenant permissions with App-Only in SharePoint Online
Content Source: docs/solution-guidance/development-experience-tenant-apponly-permissions-in-sharepoint-online.md
Product: sharepoint
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Hello @tchagan
I'd like to reproduce this error. Can you please share your app file?
Regards,
Jarbas

Hi,
When you get tenant administrator has to approve this app, click 'Request Approval' to submit your request.

Go to your tenant app catalog site to approve your request.
https://yourtenant.sharepoint.com/sites/yourAppCatalog/AppRequests/ActiveRequests.aspx

Lee
Microsoft SharePoint Community Support


Remove redundant kind tests

Since antrea proxy needs to be force enabled in policyOnly, noEncap and
hybrid modes, there is no need to run test-e2e-noencap-proxy and
test-e2e-hybrid-proxy tests.
Signed-off-by: Weiqiang Tang<EMAIL_ADDRESS>

/skip-all

Codecov Report

Merging #1209 into master will decrease coverage by 8.76%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1209      +/-   ##
==========================================
- Coverage   56.13%   47.36%   -8.77%
==========================================
  Files         105       70      -35
  Lines       11528     6158    -5370
==========================================
- Hits         6471     2917    -3554
+ Misses       4489     2967    -1522
+ Partials      568      274     -294

Flag
Coverage Δ

#integration-tests
47.36% <ø> (-0.14%)
:arrow_down:

#unit-tests
?

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


mergy merger

A loose, probably incomplete list of additions:

temporarily added languages: handlebars, Thymeleaf

code blocks process parameters, height actually has effect

injectable context data for snippet rendering

snippets get wrapped in a html document structure

ability to inject target assets (scss, js)

ability to add remote "vendor assets", e.g. font awesome icons

more document meta data gets processed: status, version, tags, ...

tabbed snippet [ preview / source / markup result ]

status badges (with a cleverly shy "ready" badge)

some custom-elements which shall move into own npm packages at some point in time

content resized (resizable sidebar)
tabs controller (snippet preview tabs)
show external resource (snippet markup result preview)

a funny ui which needs some serious enhancement

some code meta things I am curious about your feedback

/templates/*.js
cli.js lines 93 - 104
html_renderer.js parsing of code block parameters

🦕

@joyheron said this works perfectly without any issues, so we will merge this now.


Unable to widen an indirectly recursive generic type

Bug Report
Trying to assign a subtype to a type produces an error when those types have a nondirect recursion and a generic argument with a constraint. In the error message, the constraint and the provided generic type switch places.
🔎 Search Terms
Closed and open issues that contain generic and recursive
🕗 Version & Regression Information
Reproduced in nightly, 4.6.2, 4.5.4, 4.0.5, 3.3.3

This is the behavior in every version I tried, and I reviewed the FAQ for entries about Common Bugs, Type System Behavior, Generics
I was unable to test this on prior versions because 3.3.3 is the earliest version in TS Playground

⏯ Playground Link
Playground link with relevant code
💻 Code
// Definitions
type TableA = 'TableA';
type TableB = 'TableB';
type AnyTable = 'TableA' | 'TableB';

type Model<TABLE_NAME extends AnyTable> = {
   name: TABLE_NAME;
   collection: Collection<TABLE_NAME>;
}

type Collection<TABLE_NAME extends AnyTable> = {
  add: (resource: Resource<TABLE_NAME>) => void;
};

type Resource<TABLE_NAME extends AnyTable> = {
  model: Model<TABLE_NAME>;
};

// Actual problem
// I am using "unknown" in the next line rather than assigning from a proper type in order to reduce the size of this example. It does not affect the bug
const resource = '' as unknown as Resource<TableA>;
// Error occurs here:
const anyResource: Resource<AnyTable> = resource;

The example is a significantly simplified piece from a much larger codebase, which is why it looks so contrived
🙁 Actual behavior
The following error is produced:
1. Type 'Resource<"TableA">' is not assignable to type 'Resource<AnyTable>'.
2.   The types of 'model.collection.add' are incompatible between these types.
3.    Type '(resource: Resource<"TableA">) => void' is not assignable to type '(resource: Resource<AnyTable>) => void'.
4.      Types of parameters 'resource' and 'resource' are incompatible.
5.        Type 'Resource<AnyTable>' is not assignable to type 'Resource<"TableA">'.
6.          The types of 'model.name' are incompatible between these types.
7.            Type 'AnyTable' is not assignable to type '"TableA"'.
8.              Type '"TableB"' is not assignable to type '"TableA"'.

Note how "TableA" and "AnyTable" switch places between lines 3 and 5
Slight changes to the code snipped cause the bug to disappear. Examples:

Replacing add: (resource: Resource<TABLE_NAME>) => void; in the code snippet with a direct reference (e.g resource: Resource<TABLE_NAME>) does not cause the bug to happen.
Getting rid of the Collection type and having Model reference Resource directly does not cause the bug to happen.

The bug also happens when Model, Collection and Resource are defined as interfaces instead of types
🙂 Expected behavior
The error should not happen as TableA is a subtype of AnyTable, and thus widening of types should be allowed.

This looks like it's working correctly. Here's a simplified example demonstrating your issue:
type Kind = 'A' | 'B'
type Example<K extends Kind> = {
  add: (kind: K) => void;
}

declare const e: Example<'A'>
const anyExample: Example<Kind> = e

Accessing anyExample would allow to invoke add with either 'A' or 'B', when the instance is actually an Example<'A'> and as a result only allows invocation of add using 'A'.

This makes sense now
Thank you for your help


⚠ Samsung has degraded performance

In 8990161, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2520 ms

Resolved: Samsung performance has improved in 0ae3cdb.


Huge speedup with "composer install"

On projects with a lot of modules, by switching to --prefer-dist with our build.xml files, we can get a huge speed up.
--prefer-source: 14 mins
--prefer-dist: 7 mins
--prefer-dist + composer cache: 2 mins

This is already in.


Link doesn't work for names that match a parameter in the current function.

Link doesn't work when referencing a function with name that matches one of function parameters that we document.
In my case, I am documenting the following function:
export function delay(timeout: number);

And I also need to provide a reference to a separate function that happens to have the same name as the parameter timeout:
/**
@see
  - {@link timeout}
*/

Because of this sudden match, typedoc fails to produce a link for timeout function, it just outputs text instead. I know this, because just as I rename parameter timeout in function delay to something else, the link starts working, and produces the right reference.
But I do not want to rename the parameter. If this is somehow not a bug, then how can we work-around this issue?

I am using typedoc v0.26.5

This is, unfortunately, working as expected. By default, useTsLinkResolution is turned on. In your case, the timeout function is not in scope, so TypeScript will check parameters, notice that timeout is an existing symbol, and assume you meant to link to that. When TypeDoc goes to parse the comment, TypeScript will tell it that the link goes to the parameter, which TypeDoc will respect.
In your case, TypeScript's link resolution is not desired, so we have to construct a link which TypeScript will fail to parse, allowing TypeDoc's declaration reference resolution to take over.
The easiest way to do this is {@link !timeout}

Thank you, changing the link to {@link !timeout timeout} did it!


Validate created_by_id instead of created_by

Hopefully fixes #878

Codecov Report

Merging #914 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #914   +/-   ##
=======================================
  Coverage   98.46%   98.46%
=======================================
  Files          37       37
  Lines         783      783
=======================================
  Hits          771      771
  Misses         12       12

Impacted Files
Coverage Δ

app/models/patient.rb
96.29% <ø> (ø)
:white_check_mark:

app/models/call.rb
100% <100%> (ø)
:white_check_mark:

app/models/pregnancy.rb
100% <100%> (ø)
:white_check_mark:

app/models/fulfillment.rb
100% <100%> (ø)
:white_check_mark:

app/models/note.rb
100% <100%> (ø)
:white_check_mark:

app/models/external_pledge.rb
100% <100%> (ø)
:white_check_mark:

Continue to review full report at Codecov.

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

The build failed due to a flakey integration test, as noted in #903. Maybe someone who has permission should just manually start a new build for this one?


Airnode Migration Guide v0.9

As per discussion we need a migration guide. This should be along the lines of breaking changes and how to deal with them.
We need an issue like this for every release.
This is an important task as it impacts the public and ChainAPI.

Draft PR is ready, but I moved this to blocked state since it's not decided we want to keep this in Airnode repo or docs...

@Siegrift What is the status of the migration guide please? we agreed it will be part of docs

I've closed the Airnode PR and created a new one one for docs. You can check the latest (open) linked PR.


check: Adding line number to error messages.

Hello,
ported this to dev but was running master when I got an error message that was triggered by an empty last line in the sample sheet. Found that only after adding line numbers to the error message and thought that this may be of interest to everyone to have. So, here it comes.
The change are the addition of an iterator and the formatting of the error message's context from "Line" to "Line {}".format(lineNo). For the error message on an invalid number of columns I also added the actual number of columns that were found.
Best,
Steffen
PR checklist

[x] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
Would be happy to do so but need a bit of an instruction on how you want to integrate that into the testing on samplesheets that is already performed.
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).
Tested the script on a local file.
[x] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).
Not required.

Thanks for contributing @smoe! 😄 Would be nice if you could address my suggestions 🙏

All accepted, very nice, many thanks! Let me quickly rebase this to reduce the number of commits. I presume you are happy with me squashing this all into one.


IOS-1376: Converted SpotHeroEmailValidator into Swift

Issue Link
https://spothero.atlassian.net/browse/IOS-1376
Description
Converted SpotHeroEmailValidator into Swift.

Closed in favor of #24.


add new BalancedRandomForestClassifier model

BalancedRandomForestClassifier is from the imbalanced-learn package. It seems that it just basically inherits from the RandomForest Classifier. I had tested on my use case and didn't have conflicts. Let me know if there are any caveats.

Thanks! Would you mind also including a quick unit test in test_tree.py? That way we can make sure nothing breaks in the future.

I second this. Is there anything I can do to help move this forward?!?
Looking to use this model ASAP.

I cloned this branch, for some reason I am not getting a violin/dot plot:
shap.summary_plot(shap_values, X_test)

How out of date is your branch? @jpzhangvincent  I noticed it is 53 commits behind, is that why?

I'm using the tree explainer on your branch with balanced RF

Nevermind, I figured it out. Just converted list to np.array

All is good on my end. We should merge this!


Update DHCP Leases Status link in wake_on_lan.widget.php

Change the link to the current [DHCP Leases Status] page

@ack100 thanks!


[move-prover] Finishing touches to V2 invariant processing

Made v2 invariant processing the default.  Change --inv_v2 flag to
--inv-v1 in case someone wants to compare v1 behavior, or we need to
roll back because of an as-yet undiscovered problem with v2.
Fixed a soundness bug in verification_analysis_v2.
Allow multiple target modules.  Invariants from all target modules
are asserted, as in the old system.
Restored pragma friend, for compatibility with DiemTimestamp.
Tried to implement options --verify --verify-only consistently with
previous system.  The logic was complex and hard to understand, so I
tried to make it more obvious.
Disabled a test in interpreter-bytecode that was failing, after
discussing with Meng, who will look into it.

Motivation
(Write your motivation for proposed changes here.)
Have you read the Contributing Guidelines on pull requests?
(Write your answer here.)
Test Plan
(Share your test plan here. If you changed code, please provide us with clear instructions for verifying that your changes work.)
Related PRs
(If this PR adds or changes functionality, please take some time to update or suggest changes to the docs at https://developers.diem.com, and link to your PR here.)
If targeting a release branch, please fill the below out as well

Justification and breaking nature (who does it affect? validators, full nodes, tooling, operators, AOS, etc.)
Comprehensive test results that demonstrate the fix working and not breaking existing workflows.
Why we must have it for V1 launch.
What workarounds and alternative we have if we do not push the PR.

/land

:lock: Merge Conflict

/land


[BUG] Eww bar spawns weirdly

Checklist before submitting an issue

[X] I have searched through the existing closed and open issues for eww and made sure this is not a duplicate
[X] I have specifically verified that this bug is not a common user error
[X] I am providing as much relevant information as I am able to in this bug report (Minimal config to reproduce the issue for example, if applicable)

Description of the bug
I am using the default configuration from examples/eww-bar . After sending eww -c <path to folder with configs> open bar, bar spawns in separate window and not on the root window. I'm using Hyprland(wayland), eww compiled with instructions for wayland (with using cargo build --release --no-default-features --features=wayland)
Reproducing the issue

Install Hyprland
Install eww for wayland (manual build for wayland)
Copy default configuration to ~/.config/eww/eww-bar
Add :exclusive true  to defwindow bar
run eww -c ~/.config/eww/eww-bar open bar

Expected behaviour
Working bar on the top and not on higher level that program windows
Additional context

And tried with another configs

(Ready to provide more information)

Used a guide from Hyprland wiki to run it with NVIDIA, works for me


why arms rotate with y-axis instead of z?

Could you explain why arms rotate with y-axis instead of z? @vladmandic

that how vrm model was defined. feel free to change, there is no hard reason for it.
in general, this keypoints to vrm model is somewhat old and i haven't made any improvement to it in a while, been focused on a newer model.

OK, thank you, I will try it.


DINet

Thanks for your great contributions! Can I have the deadline of DINet implementation?

DINet full pipeline training?How is it going ?


feat: api pane navigation

Description
To be merged after https://github.com/appsmithorg/appsmith/pull/25505 is merged.
PR fixes following issue(s)
Fixes # (issue number)

if no issue exists, please create an issue and ask the maintainers about this first

Media

A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video

Type of change

Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to not work as expected)
Chore (housekeeping or task changes that don't impact user perception)
This change requires a documentation update

Testing

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration.
Delete anything that is not relevant

[ ] Manual
[ ] Jest
[ ] Cypress

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

QA activity:

[ ] Speedbreak features have been covered
[ ] Test plan covers all impacted features and areas of interest
[ ] Test plan has been peer reviewed by project stakeholders and other QA members
[ ] Manually tested functionality on DP
[ ] We had an implementation alignment call with stakeholders post QA Round 2
[ ] Cypress test cases have been added and approved by SDET/manual QA
[ ] Added Test Plan Approved label after Cypress tests were reviewed
[ ] Added Test Plan Approved label after JUnit tests were reviewed

/build-deploy-preview skip-tests=true

@akash-codemonk Please look into below issues

[ ] Header tab : Wrong key value pair is highlighted while locating the error.
https://www.loom.com/share/e163dcd48ef84992b9d4f2f13519815a?sid=0a841307-3548-434d-9f9a-c77532b06d44

[ ]  Header tab : Wrong key value pair is highlighted while locating the error.

Expected. We will go ahead with this. As this needs an alternative solution out of scope of the PR. The actual value exists in the first index so it navigates there.

[ ]  Create any error on API end point to get execution error then click on error from error/logs tab, navigation is not working.
[ ]  Navigation to Body> JSON tab error not working
https://www.loom.com/share/31ad35aa0a584bbc994bb46a52303d35?sid=1cefdebd-6724-4eb6-a82d-403f1ff1b246

Expected. API end point errors will navigate to the api pane only not to any particular field as they don't have information about the field which has the error.

[ ]  Resolving the error is not clearing error log from debugger

Expected. Removal/addition of errors is out of scope of the PR.

[ ]  Any changes in settings result in landing authentication tab
https://www.loom.com/share/c0d4bd1be087463f8592e08ac40da788?sid=a983c8c5-56d6-4f97-90b4-be37242cdcc3

Expected. This works when we are in view mode of the datasource or any other screen. When in edit mode of the datasource page, it takes over the navigation
@kavitasmoolya

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test


[Bug-12960][Master] Fix that start parameters cannot update global variables

Purpose of the pull request

close https://github.com/apache/dolphinscheduler/issues/12960

Brief change log

Target version: 2.0.x
Simply synchronize change from https://github.com/apache/dolphinscheduler/pull/9952 and https://github.com/apache/dolphinscheduler/pull/9730.

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

@JinyLeeChina PTAL.

Codecov Report

:exclamation: No coverage uploaded for pull request base (2.0.8-prepare@de76f81). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff                @@
##             2.0.8-prepare   #13005   +/-   ##
================================================
  Coverage                 ?   20.69%
  Complexity               ?     1599
================================================
  Files                    ?      540
  Lines                    ?    23021
  Branches                 ?     2752
================================================
  Hits                     ?     4765
  Misses                   ?    17764
  Partials                 ?      492

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

OK, I will test it

I tested your code but didn't get the expected results. Please confirm

Hi, @JinyLeeChina, i've checked and find nothing wrong, i wonder what's wrong in the picture? It seems like startup parameters update global parameters.

Hi, @JinyLeeChina, i've checked and find nothing wrong, i wonder what's wrong in the picture? It seems like startup parameters update global parameters.

Yes, I find startup parameters can update global parameters, but can't update local parameters, please check

Yes, I find startup parameters can update global parameters, but can't update local parameters, please check

According to the doc, local parameter have higher priority than global and startup parameters.

Yes, I find startup parameters can update global parameters, but can't update local parameters, please check

According to the doc, local parameter has higher priority than global and startup parameter, if you don't set local parameter with same name, then you can use different startup parameter in the task.

Good job


API Docs

Estimate: 10 days
Should run through, make sure docs.rs docs are sane, and will be properly published

building now e.g., https://docs.rs/mantle/0.1.0/mantle/exe/index.html


Make sure sanitizing from solutions branch doesnt crash with 0 diff

I believe there was a bug before when we tested sanitizing to the master branch. If there was no difference between master and the sanitized solutions sanitizer would crash/break/complain. There was no issue created for this and therefore we should test it to see if it is still a problem.

I think this is the error:
[ERROR] GitCommandError: Cmd('git') failed due to: exit code(1)
  cmdline: git commit -m 'Sanitize files'
  stdout: 'On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean'

In this case, i got this while trying to test sanitizing my solutions branch. Which just tells me theres no diff and i did something right

The best way to solve this would be to check if there is a diff between the staged version and the previous commit, before trying to commit. In other words:
git diff --staged

With git-python, it should probably translate to repo.git.diff("--staged").


Find easily TODOs in the code

Solution: Install the VS Code extension Todo Tree

Added to Sprint 22.10


Default flags: enable function outlining and use -O3 for peano's opt

This PR changes 2 default compiler settings to
1: enable function outlining by default
2: use -O3 in peano's opt by default
For one one our benchmarks (bf16 -> f32 matmul, M=4096 N=K=512), I observe the following times (in milliseconds).

Optimization Level
Outlining
No Outlining

-O2
10.7
5.4

-O3
4.0
5.4

This PR effectively goes from the top-right above to the bottom-left above. The 1.4 ms speed-up is not in the margin of noise. I can't explain it yet, still investigating... to verify locally, you can try
./run.py outdir ${IREE} --peano_dir=$PEANO} --target_device=npu1_4col \
 --xrt_lite_n_core_rows=4 --xrt_lite_n_core_cols=4 \
 --tests=vanilla_matmul_benchmark_4096_512_512_bf16_f32 --verbose \
 --aie_compilation_flags="--iree-amdaie-enable-function-outlining=0  --iree-amd-aie-additional-peano-opt-flags="-O3\""

And vary the value of --iree-amdaie-enable-function-outlining=. and --iree-amd-aie-additional-peano-opt-flags=.
Perf numbers also in CI.

Nice!!!!

LGTM. Maybe at some point we don't need to keep track of the non-outlined performance, but I think it's good to keep it for a while for reference.

Yeah, I agree. We should keep adapting the set of tests being tracked for performance based on what our goal is, and consider having another set of less visible performance tests with thresholds above which PRs fail


Bash script for ImageScanSummaryAssessmentGate.ps1

The following script for docker image scan is a powershell script. Microsoft-Defender-for-Cloud/Container Image Scan Vulnerability Assessment/Image Scan Automation Enrichment Security Gate/ImageScanSummaryAssessmentGate.ps1 (
https://github.com/Azure/Microsoft-Defender-for-Cloud/blob/main/Container Image Scan Vulnerability Assessment/Image Scan Automation Enrichment Security Gate/ImageScanSummaryAssessmentGate.ps1)
Is there a similar bash script available which can be executed from ubuntu?

Not available as of today. Please find the latest updates on our What's New Page.


Instruction settings do not render

Describe the bug
Can’t add instructions to field, doesn’t render at all
To Reproduce
Steps to reproduce the behavior:

Create a new field
Choose "Entry Instructions" field type
Scroll down to bottom of page
Instruction setup is missing, only Custom CSS window is present

Expected behavior
I should be seeing the instructions field and be able to set up the field from here.
Screenshots

Additional context
Add any other context about the problem here.

Craft version: 3.4.25
craftcms/feed-me 4.2.3
craftcms/redactor 2.6.1
doublesecretagency/craft-inventory 2.1.0
fruitstudios/linkit 1.1.11
mmikkel/cp-field-inspect 1.1.3
nystudio107/craft-imageoptimize 1.6.14
nystudio107/craft-minify 1.2.10
nystudio107/craft-seomatic 3.3.8
nystudio107/craft-twigpack 1.2.3
percipioglobal/craft-colour-swatches 1.2.8
putyourlightson/craft-blitz 3.6.5
putyourlightson/craft-sprig 1.0.0-beta.4
superbig/craft-entry-instructions 1.0.7
vaersaagod/dospaces 1.1.2
vaersaagod/matrixmate 1.2.5
verbb/navigation 1.3.21
verbb/super-table 2.5.1

This plugin has been abandoned in favour of UI elements in Craft.


Add CatBoostRegressor to MapieQuantileRegressor class

Is your feature request related to a problem? Please describe.
Currently, I'm using CatBoost regressor for a regression problem, where this model seems to give best performance. Right now, I'm looking to produce prediction intervals, and would like to stick with the same model, and at the same time, make use of MAPIE and not make separate models in code.
Describe the solution you'd like
Use CatBoost regressor with CQR.
Describe alternatives you've considered
Solution is not using MAPIE and create 2 additional models and follow same approach to calculate q, and then form the sets. Other is to modify code base and add CatBoost regressor support, but not really good at coding, still understanding quantile_regression.py file, to see how to add CatBoost, since I think, the only way to use quantile loss function and alpha, is by setting them both values in the same string like this:
model = catboost.CatBoostRegressor(loss_function='Quantile:alpha=0.95', ...)
*I can maybe take a look at it and work on it, but will take time. It would be a good first contribution to do for me :)
Thanks in advance,

Hi @fjpa121197 ! Indeed, MapieQuantileRegressor does not accept CatBoostRegressor at the moment. A workaround is to modify the quantile_estimator_params attribute to include this class as a new key. The problem is that both the "quantile" objective and the "alpha" value are defined in the same loss_function argument, which is not taken into account in MAPIE at the moment. @LacombeLouis , do you think it can be easily added ?

Hey @vtaquet and @fjpa121197, we are currently creating a cv="prefit" method where you will be able to pre-train your models and then use those directly with MapieQuantileRegressor() (PR#214). For the moment, having a built-in solution will not be our main focus, but if you want to contribute, I suggest you follow the guidelines for contributing and we will be delighted to help you with this process.