Refactoring kro helm templates

Description of changes:
Improvements were made in consideration of the scalability of the cord, key improvements are as follows.

Structural Consistency

Redesigned the values.yaml file structure to be more logical and consistent
Grouped related configurations (e.g., deployment, serviceAccount, metrics)
Enhanced readability and manageability of configuration

Scalability Enhancement

Improved the structure to allow easy custom configuration additions
Enabled simple integration of new options while maintaining existing settings
Implemented flexible configuration groups like extraVolumes and extraVolumeMounts

Clarity and Documentation

Added clear, comprehensive English comments for each configuration option
Provided Kubernetes documentation links for complex settings
Ensured each configuration's purpose and impact is easily understandable

Application-Specific Setting Preservation

Maintained KRO-specific configurations (e.g., config section)
Separated application-specific settings from generic Kubernetes configurations

Default Value Optimization

Set default values suitable for common use cases
Minimized required modifications for basic deployments

Backward Compatibility

Preserved existing comments from the main branch
Minimized potential confusion for existing users

@greghaynes @micahhausler @niallthomson @csantanapr I'd like you to review this one !

@namejsjeongkr Thanks so much for the PR!
Quick note to catch up, looks good. We'd like to merge this after a patch release, and target version 0.2 with it.


Inheriting from ZNB to support other R&S VNAs

Hello! In https://github.com/microsoft/Qcodes/blob/d4e1e15de07c4d3a4cd94445dd614637d96aec31/src/qcodes/instrument_drivers/rohde_schwarz/ZNB.py#L1057, would it be possible to move
m_frequency = {
"ZNB4": (9e3, 4.5e9),
"ZNB8": (9e3, 8.5e9),
"ZNB20": (100e3, 20e9),
"ZNB40": (10e6, 40e9),
}

outside of the init so that it becomes a class attribute that we can override, and then in the init just do
if model not in self.m_frequency.keys():
raise RuntimeError(f"Unsupported ZNB model {model}")

The same question would hold for
        self._model_min_source_power = {
            "ZNB4": -80,
            "ZNB8": -80,
            "ZNB20": -60,
            "ZNB40": -60,
        }

in  https://github.com/microsoft/Qcodes/blob/d4e1e15de07c4d3a4cd94445dd614637d96aec31/src/qcodes/instrument_drivers/rohde_schwarz/ZNB.py#L440C1-L445C10
If this were the case, we could inherit from these classes and add support (in our local codebase, not asking you to support them explicitly!) for other R&S VNA's, such as the ZNL and the ZNLE. These VNA's follow the exact same programming as the ZNB but have different ranges for their frequencies and powers, for which right now we have to copy & paste most of the ZNB driver and adjust these few lines.

@abargerbos That sounds file, please feel free to make the changes and submit a pr.


kernel-4.18.0-477.15.1.el8_8 packages are missing from Oracle public repos

On 6/27/2023 Red Hat released kernel 4.18.0-477.15.1.el8_8 as an update for the TLS security fix CVE-2023-28466
https://access.redhat.com/errata/RHSA-2023:3847
On 7/3/2023 Oracle released a Ksplice update for RHCK 8 (ELSA-2023-3847) for the same fix, referencing ELSA-2023-3847
But ELSA-2023-3847 does not exist on the Oracle errata at https://linux.oracle.com/errata/ELSA-2023-3847.html
The corresponding OL binary and source code RPMs for 477.15.1 are also not present in the Oracle public repos:
https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/index.html
https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/index_src.html
i.e. Oracle Linux RHCK 8 in the public repos is now out of sync to Red Hat Linux 8 kernel by 3 weeks.
Note: this is the first kernel update subsequent to the change in RHEL upstream source publishing policy.

Same data posted on the Oracle open-source community forum:
https://forums.oracle.com/ords/apexds/post/kernel-4-18-0-477-15-1-el8-8-packages-are-missing-from-orac-0917

It has taken a little time to ramp up new package maintenance procedures to deal with the recent Red Hat announcement. We shipped the Ksplice early to make sure the fix was available to customers as quickly as we could.
However, we do have these fixes in work and we will continue to release CVE fixes by RPM as normal. It's on the way.
[this response also at https://forums.oracle.com/ords/apexds/post/kernel-4-18-0-477-15-1-el8-8-packages-are-missing-from-orac-0917#comment_1141165820510911033052803758476105847]

thanks


Support relative link

Support relative link for html-pdf command.
This should fix #44 and #13.

@marcbachmann any updates?

I've squashed that and merged into master. Thanks.

I've just published that in<EMAIL_ADDRESS>

Is there a example for this setting ?

I've came across this "relative link"-issue, and found a working solution to create the base URL in the convert script, and it looks like this:
let path = require('path');
let currentPath = 'file:///' + path.resolve('.').replace(/\\/g, '/') + '/';

Then you can pass this base path to the pdf.create method in the options parameter like this:
let options = {
    format: 'A4',
    base: currentPath
};
pdf.create(html, options).toFile(pdfFile, function(err, res) {
    if (err) {
        return console.log(err);
    }
    console.log(res);
});


[Registry Preview] UI reflow

This UI doesn't scale well on smaller screen sizes, also no MinWidth.

Maybe it can be included in #25403?

Maybe it can be included in #25403?

Let's keep this separate, it's a different module.

@randyrants Hmm.. AdaptiveTriggers would make this very easy to do, but those do not work on WinUI3 Window, only on Page. I can imagine we might run into other things not working due to this.
Were you, by any chance, planning to move all the XAML/logic into a Page in the future? (E.g. see Host File Editor, Settings and/or FileLockSmith

Wasn't planning on it, no: the Grid layout that's there has handled the sizing of the window for most of what I looked for.  e.g. I'm not sure what the complaint is, given the screenshot:

The overflow of the command bar is handled with the ellipse,
The tree control should be happy; horizontal scrolling will kick in as needed and it will take a large tree to get it there.
The table has three columns already and will spread out as data is loaded - and again, toggle the horizontal scrolling as needed - which will be likely on most large datasets.
The text box doesn't wrap on purpose, so that also looks "right" in a narrow window.

I guess I don't give much thought to a narrow screen, given the resolution of most PC's - the smallest resolution I've seen with Windows in the last few years was on the Surface Go 2 (1920 x 1280) and Laptop Go (1536 x 1024) which are both pretty sizable.


Unable to scan QR Code generated with option Shift_JIS encoding character  (Xamarin Android)

Unable to scan QR code generated with option Shift_JIS encoding character
https://zxing.appspot.com/generator/
Sample QR code:
https://zxing.org/w/chart?cht=qr&chs=350x350&chld=L&choe=Shift_JIS&chl=abc
QR Configuration:

But i am able to scan when i enable the "Use Shared Runtime" option from packaging properties in project setting from Visual Studio 2017 version 15.7.2

Please provide the feedback on the same

Xamarin ZXing Version

Thanks for reporting this issue!  Unforunately it took me way too long to respond 😭.  Sorry, I apologize!  Recently the source code for this project was completely refactored to modernize it.  Many PR's were included in this effort, and many bugs were hopefully fixed.  Please try out the latest 3.x series of NuGet packages (currently in prerelease).  To try and make the project more maintainable in my spare time going forward, I've decided to close all existing issues to start with a clean slate.  If you're still experiencing this issue on the newest version, please open a new issue with as much detail as possible.  Thank you for your patience and understanding!  Happy scanning!


Number and Relativenumber Randomly Don't Set with Help Filetype

Steps to reproduce
I have the following inside my vimrc to turn on number and relativenumber, and turn off signcolumn when opening Vim documentation.
augroup doc
    au!
    au FileType help setlocal number relativenumber signcolumn=no
augroup END

When you open Vim for the first time and you open the manual like :tab h  tag, number and relativenumber will work. After opening another instance for Help type file number and relativenumber will sometimes not work. However, signcolumn=no always works.
Expected behaviour
For Vim to set number and relativenumber every time I open a Help filetype.
Rant:
I don't understand why if a user sets both number and releativenumber inside their vimrc, why don't those settings transfer over when opening a Help file type. Every other setting seems to transfer over but not number or relativenumber.
Version of Vim
8.2.3582
Environment
WSL Arch Linux
Windows Terminal 1.11.2921.0
xterm-256color
zsh 5.8 (x86_64-pc-linux-gnu)
Logs and stack traces
No response

Try this autocmd:
augroup doc
   autocmd!
   autocmd FileType help autocmd BufWinEnter <buffer=abuf> setlocal number relativenumber signcolumn=no
augroup END

I don't understand why if a user sets both number and releativenumber inside their vimrc, why don't those settings transfer over when opening a Help file type.

Because:

'number' and 'relativenumber' are window-local options
Vim tries to do what the user expects
doing what the user expects is complex for window-local options

For more info, see :help local-options.

@lacygoill thank you! This solved my issue. I will check out local-options later. Thanks again.

That options are set/reset in a help window is documented in helphelp.txt
Let me add a tag there to jump to.


openvnmrj3.2 bug on seqgen imaging pulse sequences

Describe the bug
ubuntu: 22.04
installed openvnmrj3.2 version.
Imaging vnmrj interface:
bug: cannot sucessfully compile all imaging pulse sequences. The imaging sequences cannot be sucessfully loaded in the vnmrj interface. For example: if run "seqgen fsems.c", it gaves the below errors:
/vnmr/psg/sglCommon.c: In function 't_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11480:39: warning: '*trvals' may be used uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglCommon.c: In function 'x_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11489:39: warning: '*trvals' may be used uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglPrepulses.c: In function 'x_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_694 + _173' may be used uninitialized [-Wmaybe-uninitialized]
896 |         } else {
|                                      ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_718 + _201' may be used uninitialized [-Wmaybe-uninitialized]
938 |         shapeAslCtrl = shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
|                            ^~
/vnmr/psg/sglPrepulses.c: In function 't_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_685 + _173' may be used uninitialized [-Wmaybe-uninitialized]
896 |         } else {
|                                      ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_709 + _201' may be used uninitialized [-Wmaybe-uninitialized]
938 |         shapeAslCtrl = shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
|                            ^~
Same as if "seqgen gems.c":
/vnmr/psg/sglCommon.c: In function 't_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11480:39: warning: '*trvals' may be used uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglCommon.c: In function 'x_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11489:39: warning: '*trvals' may be used uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglPrepulses.c: In function 'x_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_694 + _173' may be used uninitialized [-Wmaybe-uninitialized]
896 |         } else {
|                                      ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_718 + _201' may be used uninitialized [-Wmaybe-uninitialized]
938 |         shapeAslCtrl = shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
|                            ^~
/vnmr/psg/sglPrepulses.c: In function 't_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_685 + _173' may be used uninitialized [-Wmaybe-uninitialized]
896 |         } else {
|                                      ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_709 + _201' may be used uninitialized [-Wmaybe-uninitialized]
938 |         shapeAslCtrl = shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
|                            ^~

These look like they are just warnings. Should compile fine (though may not
run right). Where are the errors that are causing the compile to fail?
On Sun, Dec 29, 2024 at 9:14 PM mosquitozheng @.***>
wrote:

Describe the bug
ubuntu: 22.04
installed openvnmrj3.2 version.
Imaging vnmrj interface:
bug: cannot sucessfully compile all imaging pulse sequences. The imaging
sequences cannot be sucessfully loaded in the vnmrj interface. For example:
if run "seqgen fsems.c", it gaves the below errors:
/vnmr/psg/sglCommon.c: In function 't_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11480:39: warning: '*trvals' may be used
uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglCommon.c: In function 'x_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11489:39: warning: '*trvals' may be used
uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglPrepulses.c: In function 'x_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_694 + _173' may be
used uninitialized [-Wmaybe-uninitialized]
896 | } else {
| ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_718 + _201' may be
used uninitialized [-Wmaybe-uninitialized]
938 | shapeAslCtrl =
shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
| ^~
/vnmr/psg/sglPrepulses.c: In function 't_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_685 + _173' may be
used uninitialized [-Wmaybe-uninitialized]
896 | } else {
| ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_709 + _201' may be
used uninitialized [-Wmaybe-uninitialized]
938 | shapeAslCtrl =
shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
| ^~
Same as if "seqgen gems.c":
/vnmr/psg/sglCommon.c: In function 't_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11480:39: warning: '*trvals' may be used
uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglCommon.c: In function 'x_calc_mean_nt_tr.part.0':
/vnmr/psg/sglCommon.c:11489:39: warning: '*trvals' may be used
uninitialized [-Wmaybe-uninitialized]
/vnmr/psg/sglPrepulses.c: In function 'x_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_694 + _173' may be
used uninitialized [-Wmaybe-uninitialized]
896 | } else {
| ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_718 + _201' may be
used uninitialized [-Wmaybe-uninitialized]
938 | shapeAslCtrl =
shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
| ^~
/vnmr/psg/sglPrepulses.c: In function 't_create_arterial_spin_label':
/vnmr/psg/sglPrepulses.c:896:38: warning: '*controlpos_685 + _173' may be
used uninitialized [-Wmaybe-uninitialized]
896 | } else {
| ^
/vnmr/psg/sglPrepulses.c:938:38: warning: '*controlpos_709 + _201' may be
used uninitialized [-Wmaybe-uninitialized]
938 | shapeAslCtrl =
shapelist(aslctrl_rf.pulseName,asl_grad.rfDuration,freqAslCtrl,1,0,'s');
| ^~
—
Reply to this email directly, view it on GitHub
https://github.com/OpenVnmrJ/OpenVnmrJ/issues/979, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJVQWRW3IB6BPMA77JQZVD2IC3BXAVCNFSM6AAAAABULNASICVHI2DSMVQWIX3LMV43ASLTON2WKOZSG43DENJZGAYDAOI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


[pre production/stable] Digital Signatures for APIs

Due to regulatory requirements applicable to our EU/UK sellers, for certain APIs, developers need to add digital signatures to the respective HTTP call. eBay's deadline is January 31st, 2023
https://developer.ebay.com/develop/guides/digital-signatures-for-apis

I have begun working on this, since we need it...

I have made some progress with this; added stuff to token.py and api.py to allow key pairs to be stored. The tricky bit is that the digital signature stuff needs to be done at the very last minute really (I think - that might not be completely true) which would imply patching it into the Swagger stuff. I am writing the encryption stuff now, and will then work out how to integrate it.

#68

Big change, tricky stuff; well done!
To explain. Initially, I used the custom Error class to encapsulate all possible errors from Swagger API calls. To minimize the number of exception handlers a library user must have, I extended the error class to cover all errors. Should a user want to distinguish been errors, the error number is unique and will never change. If you lack the interest or labour, I'm happy to tweak the errors you raised to adhere to the package convention.
Please add some unit tests, and then I will promptly merge all your code and release a new library version. 100% coverage isn't required; I'm a big believer in the Pareto principle.

I have added three (simple) unit tests and updated the README.md as requested.
I have a nightmare getting the sandbox to work; originally I couldn't get the key management API to work on it, so did all my development on production. Now the key management API works, but user tokens don't work for me at all, so I had to do two of these unit tests in production and one in sandbox. Theoretically they should all work in sandbox though, so I've made that the default.

I have (pending the small pull request where I broke something at the last minute) got this working with my main app now, so at least for me this seems to all be working in anger...

I merged all your changes and then did one of my own.
I enjoyed studying your code today; learning new ways to approach things is fun. While doing so, I tweaked things, and I hope you don’t mind.
Would you have time to look at a few oddities, or should I release the package as is?

In member test_003_create_signing_key, the second 'key =‘ line overwrites the first.
When run with a faulty key, the new unit tests have an unhandled exception. It would be lovely to have one more unit test that intentionally triggers a fault and verifies that the anticipated exception is thrown. An existing example of that is member test_try_except_else_api.
Code in a_p_i.py uses the protected members  _ensure_key_pair,  _has_valid_key, _create_key_pair and  _load_key. I am unsure if you meant them to be public, so I didn’t remove the preceding underscores.

It's your module; I've generally tried to make the code look vaguely similar rather than enforcing my own style.
The following comments are probably poorly-considered and possibly entirely wrong, so shouldn't be taken with too much concern.
A few things:

Yes, the first line doesn't actually need to store the key since it should always fail anyway so could just be self._api.get_digital_signature_key(create_new=False) without the key =  part. The line as a whole though is very much not redundant; it should raise an Error and this is tested with with self.assertRaises.

Do you mean if someone tries to run the unit tests with a faulty key, it should fail in setupClass or similar before the tests really run? I did think about this, but you'd basically be repeating the first unit test. I think raising an error is reasonable here, although possibly it could provide a helpful 'are you sure you have given valid key details?' or something.
The second test verifies that a call works with the provided key and fails with a faulty key.

I think single underscore prefixes are also generally to be avoided in Python unless actually justified. I only used underscores on _ensure_key_pair, _has_valid_key etc. to fit with what I thought was the style. Single underscores don't do anything in Python anyway, so developers can and will ignore them... I would have thought that underscores were styled on a 'package' basis anyway i.e. anything with an underscore shouldn't be relied on not to change whereas things without underscores are intended to be used by users of the package.
While implementing ebay_rest in our application I have immediately started calling things on the KeyPairToken anyway which involves many underscores.

I think handling exceptions in Python is usually a bad thing. The exception is when you are expecting that something might fail e.g. a network request or similar. But for stuff that should work, exception handling that doesn't actually handle anything (e.g. just wraps one error in another) just adds a layer of complexity when something is breaking. It's much easier to debug using something when you get the actual error not just a 'this thing failed somewhere' error and no detailed traceback.
You also need to be extremely selective about what happens between 'try' and 'except'. For example, around line 804 in token.py:

        body = CreateSigningKeyRequest(signing_key_cipher='ED25519')
        try:
            key = api.developer_key_management_create_signing_key(body=body)
        except Error as e:
            raise Error(
                    number=96024,
                    reason='Failed to create key pair',
                    detail='Failed to create key pair: {}'.format(e)
                )
        else:
            self._save_key(key)

If something in api.developer_key_management_create_signing_key raises a meaningful 'Error', this gets overwritten with a new 'Error' message and code. You do get the error pasted into the 'detail' part, but you lose the traceback and the original exception (except its str representation) which may make debugging harder. On the other hand the bit of code raising the Error inside the swagger code is probably only doing something similar anyway...
Something that might assist: you can raise one exception 'from' another exception; that way I think you keep the traceback (you get two tracebacks, I think).
https://docs.python.org/3/tutorial/errors.html#exception-chaining
Finally, it doesn't really matter but if you are raising an error in all the 'Except' clauses of try/except/else then the 'else' is redundant. For example, in the second test I had:
        try:
            result = self._api.sell_finances_get_transaction_summary(filter="transactionStatus:{PAYOUT}")
        except Error as error:
            self.fail(f'Error {error.number} is {error.reason}  {error.detail}.\n')
        else:
            self.assertTrue('credit_count' in result)

where the else clause is redundant, but I probably left it in as it's effectively the conclusion of the first part of the test and it's then obvious that it is for the 'succeeds' case? Probably I should have dropped it. But in your modification, the whole of the rest of the test is then moved into the else clause which just increases the indentation (and avoiding excessive indentation/nesting is generally a good thing).

I'm not sure why, when a unit test case fails during creation, you don't just allow the error to be raised in the setupClass (which will halt the test case entirely) but instead fail in setup? There may be a reason for this :) I also think it's fine for tests to raise an error rather than failing - to me that's a meaningful outcome that in some cases is distinct from a simple fail e.g. 'pass' the test produced the expected result, 'fail' the test did not produce the expected result, 'error' the test failed in an unexpected way...

Obviously you have your error codes. The alternative is that you can make a single 'eBayRestError' class derived from Exception and the make further exception classes like 'eBayRestKeyError' or whatever derived from that. Then a third-party application only has to catch 'eBayRestError' and they will also catch all of the subclasses, but they can also catch the more specific errors if they want to.

Your points on error handling are constructive; your bang on that it is a package-wide issue with nothing to do with 'Digital Signatures.' I've decided to defer this opportunity for improvement and will start a new issue with your valuable points.
Thank you sincerely for contributing to the project again.
Do a pip upgrade, and you will get the new '.30' version which contains your code.


moves shardbuilder to a factory

I removed shard builder in favor of a factory object. This is all the builder did in the current implementation and just moving it to a static implementation seemed to make more sense. The class has no dependencies beyond those from asset. This makes a lot more sense to move over to a factory object rather then make it apart of a dependency in solGame.

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

Hooray Jenkins reported success with all tests good!

See #455


about whisperx and diarization.py

first of all I add to your script --language choose from whisperx
from whisperx.utils import LANGUAGES, TO_LANGUAGE_CODE

parser = argparse.ArgumentParser()

parser.add_argument(
    "--language",
    type=str,
    default=None,
    choices=sorted(LANGUAGES.keys()) + sorted([k.title() for k in TO_LANGUAGE_CODE.keys()]),
    help="Language spoken in the audio, specify None to perform language detection"
)
args = parser.parse_args()

language = args.language

But I wanted to talk about aligment. Whisperx and your script do different alignment using the same method from whisperx. Perhaps the integration into the script is not entirely complete. But I still can’t figure out how to fix this.
Whisperx always gives the same result from 1 file.
diarize.py always gives different results from 1 file and always due to aligment
I also noticed that diarize.py always cuts off the beginning of the file. Transcription of speakers starts from 8-11 seconds, and the first seconds are not transcribed.
I am attaching examples of 1 file with whisperx and diarize.py
file1_pyannonote.docx
file1_nemo.docx

trying to lower vad settings. Getting better result. Continue testing.
    config.diarizer.vad.parameters.onset = **0.1**
    config.diarizer.vad.parameters.offset = **0.1**

I'm still trying to make it work better for russian language and noticed that changing Vad parametrs to:
    config.diarizer.vad.parameters.onset = 0.3
    config.diarizer.vad.parameters.offset = 0.1
    config.diarizer.vad.parameters.pad_offset = -0.1

will do process of transcribing better, but stil not ideal.

Even though I pass a key from the script to whisperx to force language selection, I still get words from other languages in the text. What the original whisperx doesn't do. How can this be overcome?

Your latest version is simply great. She solved all the problems I encountered. It works just like magic. And the diarization from NeMo just made pyannote. Thank you very much.

Your latest version is simply great. She solved all the problems I encountered. It works just like magic. And the diarization from NeMo just made pyannote. Thank you very much.


Logging library not being developed anymore

For logging, the logrus library is being used. However is it not actively developed anymore:

Logrus is in maintenance-mode. We will not be introducing new features. It's simply too hard to do in a way that won't break many people's projects, which is the last thing you want from your Logging library (again...).

They recommend using other libraries:

Check out, for example, Zerolog, Zap, and Apex.

i like zap!


Create global theme for background and colors

currently, in setting you can change background color, but it works changing the document.documentElement.style.backgroundColor .
Please update the logic creating a theme on the overall application that can be update it, changing not only the background but potentially title, icons etc.

Line involved:
https://github.com/riccardobertolini/lofi-music/blob/89b01c6c752a1fda61b332601e48d99b31c569f8/components/SettingModal.tsx#L54C1-L60C23

I can work on this

@hughlaufenhoft no update for long time - putting it back to unassign and looking for new help


nixpacks: 1.12.0 -> 1.13.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/railwayapp/nixpacks/releases.
meta.description for nixpacks is: App source + Nix packages + Docker = Image Resources
meta.homepage for nixpacks is: https://github.com/railwayapp/nixpacks
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.13.0 with grep in /nix/store/mr9j8q05lqlz9sman03xhr4zawshs6np-nixpacks-1.13.0
found 1.13.0 in filename of file in /nix/store/mr9j8q05lqlz9sman03xhr4zawshs6np-nixpacks-1.13.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
nixpacks

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/mr9j8q05lqlz9sman03xhr4zawshs6np-nixpacks-1.13.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A nixpacks https://github.com/r-ryantm/nixpkgs/archive/7f90f3b57cb881ddcf56e0627e9a5d0c10b80c2a.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/mr9j8q05lqlz9sman03xhr4zawshs6np-nixpacks-1.13.0
ls -la /nix/store/mr9j8q05lqlz9sman03xhr4zawshs6np-nixpacks-1.13.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

nixpacks

Maintainer pings
cc @zoedsoupe for testing.

Result of nixpkgs-review pr 251876 run on aarch64-darwin 1

1 package built:

nixpacks


reopen issue #42 for v4.1.3  step box with box and icons: cursor have inverse logic

I'm submitting a...

[ ] Regression (a behavior that used to work and stopped working in a new release)
[ ] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request

Current behavior

Expected behavior

Minimal reproduction of the problem with instructions
For bug reports please provide the STEPS TO REPRODUCE and if possible a MINIMAL DEMO of the problem via
https://plnkr.co or similar (you can use Our Amexio Plunker as a starting point: http://plnkr.co/edit/M9AeGH?p=info)
What is the motivation / use case for changing the behavior?

Environment

Angular version: X.Y.Z

Browser:
- [ ] Chrome (desktop) version XX
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

For Tooling issues:
- Node version: XX
- Platform:

Others:

@baminmru Please checkout step box example : https://stackblitz.com/edit/amexio-v4-stepbox

In this sample cusror icons for Step-box index work OK,
but for Step box - cusror  has inversed logic.
On active button you show red cursor , on  non-active you show hand - cursor!

@baminmru Step box function as below.

Active step box is not clickable so it has red cursor
InActive stepbox are clickable so it has cursor with hand


Brought in defusedxml, and replaced all references to xml.sax with it

This should stop the problem we've been having with downloading DTDs
causing timeouts, plus it mitigates or prevents a variety of other
vulnerabilities that XML parsing exposes.

@mjstealey I think this will work.

Nope.  It doesn't bring in very much from xml.sax.


Suggestions

Serious suggestions
-draw FOV (makes it easier to config)
-bunnyhop hitchance
-bunnyhop min and max hits
-chams through walls (at least it doesn't work for me)
-fire timers and smoke timers (basically a bomb timer but you can see when a fire or smoke is done)
Just stuff that would be cool to have
-show keybind states
-flip knife hand
-head level indicator (https://prnt.sc/rww1f6)
This is all I have for now

1,2,3 and 7 are in pull requests already

1,2,3 and 7 are in pull requests already

I didn't notice :/

I also might add more stuff that is already in pull requests, I'm not going to go through and see what is already there (at least not right now)

I also might add more stuff that is already in pull requests, I'm not going to go through and see what is already there (at least not right now)

Also: Footstep ESP. Although I doubt thesse will be added

I’m finna close this but yes, footstep esp would be awesome too. Also a nade helper


installation: celery vs flask-celeryext?

Shall we rely on Celery version defined in Flask-CeleryExt? Currently, it causes problems in many packages that depend on Invenio-Indexer and do not specify Flask-CeleryExt as direct dependency.

closed via 0831fbea201db97dd1df76a880967bc1ab5cfb9f


U8s input and output are inconsistent

let u8s = new Uint8Array([96,-28,-67,-96,-27,-91,-67]);
undefined
Base64.fromUint8Array(u8s);
"YOS9oOWlvQ=="
Base64.toUint8Array("YOS9oOWlvQ==");
Uint8Array(7) [96, 228, 189, 160, 229, 165, 189]

No. inconsistent is you feeding NEGATIVE VALUE.
Uint8Array stands for An array of UInt8.
Uint8 stands for UNSIGNED 8bit integer.
UNSIGNED.


ArticleTest#test_should_be_invalid_without_title: NoMethodError: undefined method article' for #<Article:0x005608ecac55a8>     test/models/article_test.rb:6:in block in class:ArticleTest'

Error with the Factory girl ..with minitest-rails
test_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', FILE)
require 'rails/test_help'
class ActiveSupport::TestCase
Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
include FactoryGirl::Syntax::Methods
Add more helper methods to be used by all tests here...
end
/test/factories/article.rb
FactoryGirl.define do
factory :article do
title "Title"
body  "Body number one"
end
end
article_test.rb:
require 'test_helper'
class ArticleTest < ActiveSupport::TestCase
test "should be invalid without title" do
@article=create(:article, title: "")
assert_nil @article.title
assert_equal false, @article.valid?
end
test "should be invalid without body" do
end
test "should be valid" do
end
test "article body should be string" do
end
test "article title should be string" do
end
end

Hey @abhinav098 - it's a bit hard to tell from the code you've provided. One thing I noticed is this line has an instance variable with a capital 'A': @Article=create(:article, title: "") but your other references use a lowercase 'a': @article.
Perhaps you could edit the issue and format the code. By surrounding your blocks of code with three backticks at the start and the end (```). This will improve the legibility of your example.
Please see: https://help.github.com/articles/basic-writing-and-formatting-syntax/#quoting-code


⚠ File access (beta) has degraded performance

In 2b22799, File access (beta) (https://beta.fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 6125 ms

Resolved: File access (beta) performance has improved in edc864d.


Updated content for adherence to style guide and updated the older li…

…nks: /docs/user-guide/kubectl
The section about "Multiple Containers" read that they are examples that are work in progress. Can someone please confirm if we have any updates yet.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For 1.10 Features: set Milestone to 1.10 and Base Branch to release-1.10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
NOTE: After opening the PR, please un-check and re-check the "Allow edits from maintainers" box so that maintainers can work on your patch and speed up the review process. This is a temporary workaround to address a known issue with GitHub.>
Please delete this note before submitting the pull request.

Updated the content to address the issue: https://github.com/kubernetes/website/issues/7686

/assign


add custom subjects

I added functions for custom subjects for the area of unregulated identifiers. There is also an example which allows turn the builtin LED of the Arduino on and off using uavcan.
However there are some drawbacks with these changes:

The Subject-IDs are hard coded into the library. This is against the UAVCAN spec which wants them to be configurable. Additionally only one data type per instance is possible.
Code-generation by DSDL was not used
The datatypes are maybe in the wrong folder
By now only two data types are implemented: scalar.Bit.1.0 and scalar.Real32.1.0

@per1234 :wave: :coffee: Seems a problem with lcov is leading to unit test failure. Could you please take a look at it?

The "Unit Tests" workflow run failure will be fixed by https://github.com/arduino/cpp-test-action/pull/3

Hi @aentinger
I reviewed your changes and they seem to be reasonable. The blink-example still works.
I also made an extended example with several Subject-IDs and some LEDs and switches. I used the Bit.1.0 to publish and to subscribe.
Everything worked as expected.
So I think we can merge this code and the Bit.1.0 primitive is fully implemented.

keywords needs to be updated.

keywords needs to be updated.

Can you do it? I won't get to it until tomorrow and after adding the keyword this PR can be merged.

Codecov Report

Merging #59 (bece871) into master (72ec778) will increase coverage by 0.28%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #59      +/-   ##
==========================================
+ Coverage   83.43%   83.71%   +0.28%
==========================================
  Files          17       18       +1
  Lines         513      522       +9
==========================================
+ Hits          428      437       +9
  Misses         85       85

Impacted Files
Coverage Δ

src/ArduinoO1Heap.cpp
100.00% <ø> (ø)

src/ArduinoUAVCAN.cpp
96.55% <100.00%> (+0.06%)
:arrow_up:

src/ArduinoUAVCAN.ipp
95.45% <100.00%> (+1.01%)
:arrow_up:

src/utility/CritSec-host.cpp
100.00% <100.00%> (ø)

src/utility/LockGuard.h
100.00% <100.00%> (ø)

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 c54a208...643572e. Read the comment docs.


Silex PDO MS SQL

Hi,
I'm new about silex world. I'm developing an application that has to connects to a MS SQL Server. In the linux world is not possible to use sqlsrv driver hence is not possible to use Doctrine.
I've tried to install your service provider by using the console's command in the readme with no success:
gmario@snatch:~/Development/WELLNET/BONERA/bonera-flegias$ php /home/gmario/Development/COMPOSER/composer.phar require "csanquer/pdo-silex-provider=~0.5"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package csanquer/pdo-silex-provider could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Installation failed, reverting ./composer.json to its original content.

Can give me some help?
many tnks
gmario

Just add the following options to your composer.json file :
{
    "minimum-stability": "dev",
    "prefer-stable": true
}

and run composer update.
For more information, check composer docs


Trying to generate the same key between two APIs

Well, my question is simple, I already do it on Stackoverflow:
https://stackoverflow.com/questions/50263796/generate-the-same-jose-token-between-client-and-server-php-c
Can someone guide me? Thanks.

Hi,
First, it is normal to have different tokens eve if you have the same payload or encryption keys.
It is needed to avoid known attacks.
It looks like the error comes from the keys you use. Can you send me the private and public keys?

By the way, Felippe Duarte is right and the key loading can be simplified:
use Jose\Factory\JWKFactory;

$file = __DIR__ . '/../keys/public.key'; // or __DIR__ . '/../keys/private.key'
$key = JWKFactory::createFromKeyFile($file);

Thanks for your answer, I though I would never be answered.
Those are my keys.
private.txt
public.txt
I know Felippe Duarte is right cause he said that the way do it is wrong, I know, I only testing posibilities with your API. Now, I will try testing what you said:
JWKFactory::createFromKeyFile($file);
Thanks so much.

Another question is @dvsekhvalnov is suggesting me to remove Deflate compression from the API, this is possible in the PHP API?
I'm looking in the code, and it seems like Encryptation is an ingrained feature:
private static function createJWEAndEncrypt($payload, JWKInterface $recipient_key, array $shared_protected_headers = [], $shared_headers = [], $recipient_headers = [], $aad = null)
{
    $complete_headers = array_merge($shared_protected_headers, $shared_headers, $recipient_headers);
    Assertion::keyExists($complete_headers, 'alg', 'No "alg" parameter set in the header');
    Assertion::keyExists($complete_headers, 'enc', 'No "enc" parameter set in the header');
    $encrypter = Encrypter::createEncrypter([$complete_headers['alg']], [$complete_headers['enc']], ['DEF', 'ZLIB', 'GZ']);

    $jwe = self::createJWE($payload, $shared_protected_headers, $shared_headers, $aad);

    $jwe = $jwe->addRecipientInformation($recipient_key, $recipient_headers);

    $encrypter->encrypt($jwe);

    return $jwe;
}

I will look deeper. But I will suggest that implementing the possibility of disabling compression will be a good think. I don't know yet if this is possible, and I will edit my own posts as I discover new things.

Another issue is that keys generated from PHP (JWKFactory) can't be loaded from C# and tokens generated with C# keys (that comes from phpseclib in PHP) can't be readed because of the following fact:
http://php.net/manual/fr/function.openssl-pkey-get-public.php#101513
"If you are trying to read a PKCS#1 RSA public key you run into trouble, because openssl wants the public key in X.509 style."
openssl_pkey_get_public expects a different format, but I don't know how can I export it to PKCS (that is the format that the C# part expects also) in your API. Thats the reason why I have weird implementation $jwk = new \Jose\KeyConverter\RSAKey($contents); & new \Jose\Object\JWK($jwk->toArray()),.
I will trying...

Thanks for your long response and for answering all my questions.
I tried to decompiled your key, but as I said here my method of importing fails. I will do what @dvsekhvalnov said me, or at least try to fix the existing method.

Hi @Spomky, as an exercise i decoded reference example you posted. It decoded succesfully.
Here is C# code just for reference (sorry to pollute your project space):
            string json = @"
{
    ""n"": ""wbdxI55VaanZXPY29Lg5hdmv2XhvqAhoxUkanfzf2-5zVUxa6prHRrI4pP1AhoqJRlZfYtWWd5mmHRG2pAHIlh0ySJ9wi0BioZBl1XP2e-C-FyXJGcTy0HdKQWlrfhTm42EW7Vv04r4gfao6uxjLGwfpGrZLarohiWCPnkNrg71S2CuNZSQBIPGjXfkmIy2tl_VWgGnL22GplyXj5YlBLdxXp3XeStsqo571utNfoUTU8E4qdzJ3U1DItoVkPGsMwlmmnJiwA7sXRItBCivR4M5qnZtdw-7v4WuR4779ubDuJ5nalMv2S66-RPcnFAzWSKxtBDnFJJDGIUe7Tzizjg1nms0Xq_yPub_UOlWn0ec85FCft1hACpWG8schrOBeNqHBODFskYpUc2LC5JA2TaPF2dA67dg1TTsC_FupfQ2kNGcE1LgprxKHcVWYQb86B-HozjHZcqtauBzFNV5tbTuB-TpkcvJfNcFLlH3b8mb-H_ox35FjqBSAjLKyoeqfKTpVjvXhd09knwgJf6VKq6UC418_TOljMVfFTWXUxlnfhOOnzW6HSSzD1c9WrCuVzsUMv54szidQ9wf1cYWf3g5qFDxDQKis99gcDaiCAwM3yEBIzuNeeCa5dartHDb1xEB_HcHSeYbghbMjGfasvKn0aZRsnTyC0xhWBlsolZE"",
    ""e"": ""AQAB"",
    ""d"": ""n7fzJc3_WG59VEOBTkayzuSMM780OJQuZjN_KbH8lOZG25ZoA7T4Bxcc0xQn5oZE5uSCIwg91oCt0JvxPcpmqzaJZg1nirjcWZ-oBtVk7gCAWq-B3qhfF3izlbkosrzjHajIcY33HBhsy4_WerrXg4MDNE4HYojy68TcxT2LYQRxUOCf5TtJXvM8olexlSGtVnQnDRutxEUCwiewfmmrfveEogLx9EA-KMgAjTiISXxqIXQhWUQX1G7v_mV_Hr2YuImYcNcHkRvp9E7ook0876DhkO8v4UOZLwA1OlUX98mkoqwc58A_Y2lBYbVx1_s5lpPsEqbbH-nqIjh1fL0gdNfihLxnclWtW7pCztLnImZAyeCWAG7ZIfv-Rn9fLIv9jZ6r7r-MSH9sqbuziHN2grGjD_jfRluMHa0l84fFKl6bcqN1JWxPVhzNZo01yDF-1LiQnqUYSepPf6X3a2SOdkqBRiquE6EvLuSYIDpJq3jDIsgoL8Mo1LoomgiJxUwL_GWEOGu28gplyzm-9Q0U0nyhEf1uhSR8aJAQWAiFImWH5W_IQT9I7-yrindr_2fWQ_i1UgMsGzA7aOGzZfPljRy6z-tY_KuBG00-28S_aWvjyUc-Alp8AUyKjBZ-7CWH32fGWK48j1t-zomrwjL_mnhsPbGs0c9WsWgRzI-K8gE"",
    ""p"": ""7_2v3OQZzlPFcHyYfLABQ3XP85Es4hCdwCkbDeltaUXgVy9l9etKghvM4hRkOvbb01kYVuLFmxIkCDtpi-zLCYAdXKrAK3PtSbtzld_XZ9nlsYa_QZWpXB_IrtFjVfdKUdMz94pHUhFGFj7nr6NNxfpiHSHWFE1zD_AC3mY46J961Y2LRnreVwAGNw53p07Db8yD_92pDa97vqcZOdgtybH9q6uma-RFNhO1AoiJhYZj69hjmMRXx-x56HO9cnXNbmzNSCFCKnQmn4GQLmRj9sfbZRqL94bbtE4_e0Zrpo8RNo8vxRLqQNwIy85fc6BRgBJomt8QdQvIgPgWCv5HoQ"",
    ""q"": ""zqOHk1P6WN_rHuM7ZF1cXH0x6RuOHq67WuHiSknqQeefGBA9PWs6ZyKQCO-O6mKXtcgE8_Q_hA2kMRcKOcvHil1hqMCNSXlflM7WPRPZu2qCDcqssd_uMbP-DqYthH_EzwL9KnYoH7JQFxxmcv5An8oXUtTwk4knKjkIYGRuUwfQTus0w1NfjFAyxOOiAQ37ussIcE6C6ZSsM3n41UlbJ7TCqewzVJaPJN5cxjySPZPD3Vp01a9YgAD6a3IIaKJdIxJS1ImnfPevSJQBE79-EXe2kSwVgOzvt-gsmM29QQ8veHy4uAqca5dZzMs7hkkHtw1z0jHV90epQJJlXXnH8Q"",
    ""dp"": ""19oDkBh1AXelMIxQFm2zZTqUhAzCIr4xNIGEPNoDt1jK83_FJA-xnx5kA7-1erdHdms_Ef67HsONNv5A60JaR7w8LHnDiBGnjdaUmmuO8XAxQJ_ia5mxjxNjS6E2yD44USo2JmHvzeeNczq25elqbTPLhUpGo1IZuG72FZQ5gTjXoTXC2-xtCDEUZfaUNh4IeAipfLugbpe0JAFlFfrTDAMUFpC3iXjxqzbEanflwPvj6V9iDSgjj8SozSM0dLtxvu0LIeIQAeEgT_yXcrKGmpKdSO08kLBx8VUjkbv_3Pn20Gyu2YEuwpFlM_H1NikuxJNKFGmnAq9LcnwwT0jvoQ"",
    ""dq"": ""S6p59KrlmzGzaQYQM3o0XfHCGvfqHLYjCO557HYQf72O9kLMCfd_1VBEqeD-1jjwELKDjck8kOBl5UvohK1oDfSP1DleAy-cnmL29DqWmhgwM1ip0CCNmkmsmDSlqkUXDi6sAaZuntyukyflI-qSQ3C_BafPyFaKrt1fgdyEwYa08pESKwwWisy7KnmoUvaJ3SaHmohFS78TJ25cfc10wZ9hQNOrIChZlkiOdFCtxDqdmCqNacnhgE3bZQjGp3n83ODSz9zwJcSUvODlXBPc2AycH6Ci5yjbxt4Ppox_5pjm6xnQkiPgj01GpsUssMmBN7iHVsrE7N2iznBNCeOUIQ"",
    ""qi"": ""FZhClBMywVVjnuUud-05qd5CYU0dK79akAgy9oX6RX6I3IIIPckCciRrokxglZn-omAY5CnCe4KdrnjFOT5YUZE7G_Pg44XgCXaarLQf4hl80oPEf6-jJ5Iy6wPRx7G2e8qLxnh9cOdf-kRqgOS3F48Ucvw3ma5V6KGMwQqWFeV31XtZ8l5cVI-I3NzBS7qltpUVgz2Ju021eyc7IlqgzR98qKONl27DuEES0aK0WE97jnsyO27Yp88Wa2RiBrEocM89QZI1seJiGDizHRUP4UZxw9zsXww46wy0P6f9grnYp7t8LkyDDk8eoI4KX6SNMNVcyVS9IWjlq8EzqZEKIA""
}
";
            string token =
                "eyJhbGciOiJSU0EtT0FFUCIsImtpZCI6InNhbXdpc2UuZ2FtZ2VlQGhvYmJpdG9uLmV4YW1wbGUiLCJlbmMiOiJBMjU2R0NNIn0.rT99rwrBTbTI7IJM8fU3Eli7226HEB7IchCxNuh7lCiud48LxeolRdtFF4nzQibeYOl5S_PJsAXZwSXtDePz9hk-BbtsTBqC2UsPOdwjC9NhNupNNu9uHIVftDyucvI6hvALeZ6OGnhNV4v1zx2k7O1D89mAzfw-_kT3tkuorpDU-CpBENfIHX1Q58-Aad3FzMuo3Fn9buEP2yXakLXYa15BUXQsupM4A1GD4_H4Bd7V3u9h8Gkg8BpxKdUV9ScfJQTcYm6eJEBz3aSwIaK4T3-dwWpuBOhROQXBosJzS1asnuHtVMt2pKIIfux5BC6huIvmY7kzV7W7aIUrpYm_3H4zYvyMeq5pGqFmW2k8zpO878TRlZx7pZfPYDSXZyS0CfKKkMozT_qiCwZTSz4duYnt8hS4Z9sGthXn9uDqd6wycMagnQfOTs_lycTWmY-aqWVDKhjYNRf03NiwRtb5BE-tOdFwCASQj3uuAgPGrO2AWBe38UjQb0lvXn1SpyvYZ3WFc7WOJYaTa7A8DRn6MC6T-xDmMuxC0G7S2rscw5lQQU06MvZTlFOt0UvfuKBa03cxA_nIBIhLMjY2kOTxQMmpDPTr6Cbo8aKaOnx6ASE5Jx9paBpnNmOOKH35j_QlrQhDWUN6A2Gg8iFayJ69xDEdHAVCGRzN3woEI2ozDRs.-nBoKLH0YkLZPSI9.o4k2cnGN8rSSw3IDo1YuySkqeS_t2m1GXklSgqBdpACm6UJuJowOHC5ytjqYgRL-I-soPlwqMUf4UgRWWeaOGNw6vGW-xyM01lTYxrXfVzIIaRdhYtEMRBvBWbEwP7ua1DRfvaOjgZv6Ifa3brcAM64d8p5lhhNcizPersuhw5f-pGYzseva-TUaL8iWnctc-sSwy7SQmRkfhDjwbz0fz6kFovEgj64X1I5s7E6GLp5fnbYGLa1QUiML7Cc2GxgvI7zqWo0YIEc7aCflLG1-8BboVWFdZKLK9vNoycrYHumwzKluLWEbSVmaPpOslY2n525DxDfWaVFUfKQxMF56vn4B9QMpWAbnypNimbM8zVOw.UCGiqJxhBI3IFVdPalHHvA";

            var js = new JavaScriptSerializer();
            var jwk = js.Deserialize<IDictionary<string, string>>(json);

            byte[] p = Base64Url.Decode(jwk["p"]);
            byte[] q = Base64Url.Decode(jwk["q"]);
            byte[] d = Base64Url.Decode(jwk["d"]);
            byte[] e = Base64Url.Decode(jwk["e"]);
            byte[] qi = Base64Url.Decode(jwk["qi"]);
            byte[] dq = Base64Url.Decode(jwk["dq"]);
            byte[] dp = Base64Url.Decode(jwk["dp"]);
            byte[] n = Base64Url.Decode(jwk["n"]);

            RSA key = RSA.Create();
            RSAParameters keyParams = new RSAParameters();
            keyParams.P = p;
            keyParams.Q = q;
            keyParams.D = d;
            keyParams.Exponent = e;
            keyParams.InverseQ = qi;
            keyParams.DP = dp;
            keyParams.DQ = dq;
            keyParams.Modulus = n;

            key.ImportParameters(keyParams);

            string payload = JWT.Decode(token, key);

            Console.Out.WriteLine(payload);

and it produces:
You can trust us to stick with you through thick and thin–to the bitter end. And you can trust us to keep any secret of yours–closer than you keep it yourself. But you cannot trust us to let you face trouble alone, and go off without a word. We are your friends, Frodo.

Hi @dvsekhvalnov,
Many thanks! That's really kind of you.
I also successfully decrypted the token you issued in https://github.com/dvsekhvalnov/jose-jwt/issues/93#issuecomment-388352836 with the PKCS#12 key you shared. Hereafter the source code I wrote.
I really think that both libraries are compliant with the specification. From my understanding, it seems to be an issue caused by a wrong key conversion as mentioned by @z3nth10n.

<?php

require_once 'vendor/autoload.php';

use Jose\Factory\JWKFactory;

$jwk = createFromPKCS12CertificateFile(__DIR__.'/signing-key.p12', '1');
dump($jwk);

$loader = new \Jose\Loader();
$input = 'eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.GhYb6mJA8w2hTQ_ks4R_ygVJsD2j4fzS8uTVtp9UolL-NQZ1Jw6MYilsFiZ0k9OAUyHLjorDl7m0StojZZfJSyNjKgumLcWrGAhujiq9MDYFepjIv2CCtNgdIxTq2zyPUeKAXGCtooKd4XXnjf_zodR3JlATgvZjDg9pbF0Zda6thv6Mf7Zd5PdC4Ff9wSkd53zfioXACjUSSrkGjM5cU1YtQorlR-0ONpN837G4gZzjuYEZZFB_jeXUX--FRQHLZw5bGWx84ADM_hrgyYLz3f4S62Ws8VNpDndv3D1yGspem6H0Pa0Q9UQAycs844_TsfoML3MUIObQxnq3afTxBg.X5eSxt3Re5aWkHHL.GheNPfa_xKHK0fZOQK4.LXA6LEn-VnBy9VQ9eTz8vQ';

$jwe = $loader->loadAndDecryptUsingKey($input, $jwk, ['RSA-OAEP'], ['A256GCM'], $recipient);

dump($jwe);

function createFromPKCS12CertificateFile(string $file, ?string $secret = '', array $additional_values = []): \Jose\Object\JWK
{
    $res = openssl_pkcs12_read(file_get_contents($file), $certs, $secret);
    if (false === $res || !is_array($certs) || !array_key_exists('pkey', $certs)) {
        throw new \RuntimeException('Unable to load the certificates.');
    }
    return JWKFactory::createFromKey($certs['pkey'], null, $additional_values);
};

Yep, looks like it just keys :)

Thanks!!!
A last question, I see that from X509Certificate you can generate a public key x509.GetRSAPublicKey() that this returns byte[] (so is perfect to transmit over the network).
But, which is the equivalent to it in PHP. Maybe using JWKFactory toPublic() method? I see this generates a JWKInterface object that I can convert to a Json array with jsonSerialize().
I will test it. But I still don't know how I will read this public key encoded into json with C#. Because, I cannot send the p12 file (this is the private key).
@dvsekhvalnov can you help me? I don't find anyway to read this key from an object, maybe with a byte array?
Thanks again. 😃

I'm on a security conference and I have realized about that sending public keys over the network is insecure due to MitM attacks. So I would prefer to generate a public key for each different version of the client, sign it and use any anti-tamper solution. I only have to ensure a method (with obfuscation) that checks on the server if my app has been modified to avoid its execution.
So with the methods you gave me, I think that I will capable to do a "secure" client.
Thanks!!

This is right: the key exchange process is a critical step.
I recommend the following:

Each party creates its private/public key pairs.
The client sends its public key to the server. The public key can be encrypted using the public key of the server
The server associates the public key of the client with the client data
For each next data exchange, the parties sign the data using their private key and then encrypt with the public key of the other party.

Additional measures to be taken:

Because the first key exchange is critical, the public key of the server may be built in the client.
The signature key pair and the encryption key pair are not the same.
Rotate the keys.

I wrote some recommendations here.
Is there any available presentations regarding the conference you attended? I will be happy to update those recommendation with other security practices.

"The server associates the public key of the client with the client data" I couldn't imagine this, can you explain this more in detail?
"The parties sign the data using their private key and then encrypt with the public key of the other party." Same here, what so you mean by signing? Because with private keys you only can decrypt... Explain please
And by rotating keys, what do you mean?

Yesterday, I was on my mobile phone, so I couldn't investigate so much.
Now, I know what means sign (I could imagine what did you mean, but I didn't look at this).
And rotating (but https://web-token.spomky-labs.com/security/ isn't available, I used Google cache and downloaded it), instead of rotating, I will keep a key for every version. Anyway is difficult to break a 4096 bits key, so I don't worry about rotation, I need a good implementation. Anyway I need your to explain an example of implementation.
But I still need an example of association of public key with the client data.


adding SerializeParametersPlugin.

Currently consumers are required to stringify their parameters almost everytime they use JSON data types. This can become rather tedious, results in less clean code (e.g. having to map arrays of insert objects before insertInto) and is error prone (e.g. this pg issue. mysql2 also doesn't play nice). It's also brought up quite often as of late, in discord and issues.
When consumers stringify on their own, they have to use ColumnType<MyType, string, string> when defining their database interface, which leaves inserts and updates not as type-safe as they could be.
A plugin could come in handy here, it's not a breaking change and consumers can opt-out anytime they like (...maybe in a future where database clients finally handle this).
This plugin allows custom serialization when a serializer function is passed to its constructor's options. E.g. consumer's classes, native dates to datetime conversion, memoization, etc.
This plugin allows casting of serialized parameters, e.g. some consumers got postgres errors while stringifying without casting to jsonb.
(Side note, I first tackled this with query compiler changes, it worked but I've decided to stash 'em as it felt risky, too opinionated and not open for customization from consumers)

Basic usage:
interface Person {
   firstName: string
   lastName: string
   tags: string[] // json or jsonb data type in database
   metadata: Record<string, any> // json or jsonb data type in database
}

interface Database {
    person: Person
}

const db = new Kysely<Database>({
    dialect: new PostgresDialect({
        database: 'kysel_test',
        host: 'localhost',
    }),
    plugins: [
        new SerializeParametersPlugin(),
    ],
})

await db.insertInto('person')
    .values([{
        firstName: 'Jennifer',
        lastName: 'Aniston',
        tags: ['celebrity', 'actress'], // no need to stringify.. we got you!
        metadata: { hatesTheMost: 'Brad' }, // no need to stringify, we got you!
    }])
    .execute() // no errors, hooray!

closes #137
Custom serialization:
const db = new Kysely<Database>({
    dialect: new PostgresDialect({
        database: 'kysel_test',
        host: 'localhost',
    }),
    plugins: [
        new SerializeParametersPlugin({
            serializer: (value) => {
                if (value instanceof Date) {
                    return formatDatetime(value)
                }

                if (value !== null && typeof value === 'object') {
                    return JSON.stringify(value)
                }

                return value
            }
        }),
    ],
})

Casting:
const db = new Kysely<Database>({
    dialect: new PostgresDialect({
        database: 'kysel_test',
        host: 'localhost',
    }),
    plugins: [
        new SerializeParametersPlugin({
            caster: (serializedValue, value) => sql`${serializedValue}::jsonb`
        }),
    ],
})

await db.insertInto('person')
    .values([{
        firstName: 'Jennifer',
        lastName: 'Aniston',
        tags: ['celebrity', 'actress'],
    }])
    .execute()

Compiled sql query (Postgres):
insert into "person" ("firstName", "lastName", "tags") values ($1, $2, $3::jsonb)

Will add ::jsonb casting support later today, already implemented and tests are passing.

Thanks again for your great work, but I think this is too opinionated to be added to kysely core. This would only work in a subset of cases and fail if you have a mixture of arrays and jsonb columns, which is a thing. At least I (and my team) only use JSONB when it's not possible to use a typed array or other strongly typed column.
This would make an excellent third-party plugin though! I think a lot of people that only use jsonb could find it useful. In the core it would cause too many questions and feature requests and would divert focus from the other features.
Eventually the only way to implement this reliably is figuring out the data type of each value and converting based on that. This has been discussed elsewhere. It would be possible to some extent, but would still have failing corner cases.
In feel bad for being such a dictator here and not merging your work, but I have a very strong idea of what Kysely should be. I'm trying to correct the things I did wrong with objection, one of which was feature creep that basically crippled development eventually.
In the future, could you open an issue first where we could discuss a possible new feature before you implement it?

I've been thinking about adding the general case converter plugin though. It could be used to solve this case too. It would be a cool problem to solve and would really benefit from the AST-ish data representation and plugin system in Kysely, but it has the same problem: it would have corner cases and I'm afraid people would start using it for everything and it would take over the issues.
I don't know if you're familiar with objection, but I added the upsertGraph method which did the same. It was cool and an awesome problem to solve, but when people have a hammer, everything looks like a nail. Eventually all issues were about the nasty corner case bugs it had and all other features got less attention.
Anyway, my idea for the general converter plugin is something like this:
// You'd initialize it by giving it the database metadata.
let kysely = new Kysely<DB>(config)

const tableMetadata = await kysely.introspection.getTables()
const converter = new ValueConverterPlugin({
  tableMetadata,

  onInput(value: unknown, meta: ColumnMetadata): unknown {
    if (meta.dataType === 'jsonb') {
      return JSON.stringify(value)
    }

    return value
  },

  onOutput(value: unknown, meta: ColumnMetadata): unknown {
    if (meta.dataType === 'jsonb') {
      return JSON.parse(value)
    }

    return value
  }
})

as you can imagine, figuring out the data type in a nested subquery's joined subquery's with statement's subquery's where statement would be kinda difficult. Not to mention views etc.
It's possible to deduct the origin table of any ValueNode using the node tree and table/view metadata unless the user has raw SQL somewhere. As soon as there's raw SQL anywhere in the query, the result may be wrong or not found at all.

I wrote a plugin. https://github.com/subframe7536/kysely-sqlite-tools/tree/master/packages/plugin-serialize


Stuck taking darks at beginning of the night

Scott seems to know what is going on here.

I added a line to the targetscript that sets SHUTTER keyword to LIGHT before taking an exposure. I believe this is the fix.
If no one complains about this for a few weeks after this post, we can close this one.


Add i18n support

Hi, I'd like to add i18n support to this clean theme. I'm a newborn to Rust/Zola/Tera, so  my knowledge is limited. I found three ways to do that:

Add a base template for every language, in these templates assign corresponding text to variables, and then extends one of them in base.html, replace every language-specific text with corresponding variable. One problem is variable defined in base template cannot used inside macro, so variables can only be passed into macro by using additional parameters. Another problem is the path of extends keyword must be static, so in order to switch language it seems must change the path of extends keyword instead of changing config.toml.
Define language-specific text in one macro, e.g. i18n::text(key), then use i18n::text(key="recent_projects") to get that text. This method seems better than method 1, but the macro definition is unelegent and will be very huge.

{% macro text(key) %}
  {% if config.extra.lang == "en" -%}
    {% if key == "recent_projects" -%}
      Recent projects
    {% elif key == "recent_blog_posts" -%}
      Recent blog posts
    {% elif key == "about" -%}
      About
    {% endif -%}
  {% elif config.extra.lang == "zh" -%}
    {% if key == "recent_projects" -%}
      近期项目
    {% elif key == "recent_blog_posts" -%}
      近期博文
    {% elif key == "about" -%}
      关于
    {% endif -%}
  {% endif -%}
{% endmacro %}

Define langauge-specific text in config.toml. This method is the simplest way, gives user more control of language-specific text, but the config.toml will be large.

Hey, thanks for expressing your interest in adding i18n to Papaya!
I'm fairly new to Zola as well, so I checked how other themes have accomplished this, plus what the Zola documentation says.
I've discovered that Zola has a pre-existing  trans()  Tera function that works exactly as your second idea suggests. The translation keys are defined in the config.toml.
Would this suit your needs? If so, I could refactor my code to utilize the trans() functions and migrate my English keys into the config.toml.


[LINT][PY] Fixes for pylint==2.4.4

This PR prepares for the pylint version update in CI

cc @icemelon9


Don't Merge! PR real time test for target branch full build

Docs Build status updates of commit 88a8208:
:clock10: Full build: the average full build time is 7 min(s) 45 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 88a8208:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Resolution display wrong for multi-monitor on Windows 10

Description
When running neofetch on Windows 10 with multiple monitors, the display resolution output is wrong:

$ neofetch
                                ..,   user@hostname
                    ....,,:;+ccllll   ---------------
      ...,,+:;  cllllllllllllllllll   OS: Windows 10 Enterprise x86_64
,cclllllllllll  lllllllllllllllllll   Host: Dell Inc. Precision 7530
llllllllllllll  lllllllllllllllllll   Kernel: 2.11.2(0.329/5/3)
llllllllllllll  lllllllllllllllllll   Uptime: 47 mins
llllllllllllll  lllllllllllllllllll   Shell: bash 4.4.23
llllllllllllll  lllllllllllllllllll   Resolution: 19201920x10801200
llllllllllllll  lllllllllllllllllll   DE: Aero
                                      Terminal: mintty
llllllllllllll  lllllllllllllllllll   CPU: Intel i7-8750H (12) @ 2.208GHz
llllllllllllll  lllllllllllllllllll   GPU: Intel(R) UHD Graphics 630 NVIDIA Quadro P1000
llllllllllllll  lllllllllllllllllll   Memory: 7012MiB / 16141MiB
llllllllllllll  lllllllllllllllllll
llllllllllllll  lllllllllllllllllll
`'ccllllllllll  lllllllllllllllllll
       `' \*::  :ccllllllllllllllll
                       ````''*::cll
                                 ``

In my case, I have two monitors: 1920x1200 and 1920x1080
Neofetch version
Neofetch 6.0.1 (from git 780263f6e6b7c310d39b455cb8778fde324c690f)
Screenshot
see above
Config file
none
Verbose log
neofetchlog.gz

I'm having the same issue.
wmic path Win32_VideoController get CurrentHorizontalResolution prints
CurrentHorizontalResolution
1280
1920

I'm not good enough with bash to come up with a fix on my own but I'd be happy to help if I can. Let me know what I can do.


Patch skip Cilium upgrade tests

Skip Cilium upgrade tests introduced a problem where a subset of tests that validate a cluster was deleted failed because it attempted to build a client to the workload cluster.
Building the clients isn't necessary for the Skip Cilium upgrade tests, this PR removes it.

/lgtm

/approve

/lgtm


DropdownButtonFormField generating bug but DropdownButton working fine

I have the below codes. I have these 2 dropdown. When I selected the first drop down it will trigger to populate the next dropdown value and I am using the bloc to do the updates cause setState will cause the entire page to be rebuild. Something very weird. You can see I am using
_subcountyDropDownMenuItems.clear();
                              _subcountyDropDownMenuItems = [];

to ensure its clean each time the list and only then I assign the new list into the return DropdownButtonFormField
Example when the very first time the first dropdown is selected below is array values generated for the second dropdown.
I/flutter (28594): Build subcounty dropdown Instance of 'SubcountyApiInitialState'
I/flutter (28594): What is the items sub county list size now 2
I/flutter (28594): NEW drop down value is : 47
I/flutter (28594): NEW drop down child is : Text("ISle North")
I/flutter (28594): NEW drop down value is : 48
I/flutter (28594): NEW drop down child is : Text("ISle South")

When I selected another first dropdown value. Example below list is generated.
I/flutter (28594): What is the items sub county list size now 5
I/flutter (28594): NEW drop down value is : 49
I/flutter (28594): NEW drop down child is : Text("Kj Central")
I/flutter (28594): NEW drop down value is : 50
I/flutter (28594): NEW drop down child is : Text("Kj East")
I/flutter (28594): NEW drop down value is : 51
I/flutter (28594): NEW drop down child is : Text("Kj North")
I/flutter (28594): NEW drop down value is : 52
I/flutter (28594): NEW drop down child is : Text("Kj South")
I/flutter (28594): NEW drop down value is : 53
I/flutter (28594): NEW drop down child is : Text("Kj West")

I get this error
There should be exactly one item with [DropdownButton]'s value: 48.
Either zero or 2 or more [DropdownMenuItem]s were detected with the same value
'package:flutter/src/material/dropdown.dart':
Failed assertion: line 803 pos 15: 'items == null || items.isEmpty || value == null ||
              items.where((DropdownMenuItem<T> item) {
                return item.value == value;
              }).length == 1'

It keep referring to the previous selected value I/flutter (28594): NEW drop down value is : 48. But you can see I have cleared the list and even print out the list to show all the new value but it keep giving me this error There should be exactly one item with [DropdownButton]'s value: 48. . But there is one weird part here if I use this widget DropdownButton. It works perfectly fine but I need this DropdownButtonFormField cause I need to standardize with the rest of the items in the form? So how to overcome this bug?
BlocBuilder(
                          bloc: subcountyBLoC,
                          builder: (BuildContext context, SubcountyApiState state) {
                            print("Build subcounty dropdown "+state.toString());
                            if(state is SubcountyApiInitialState && state.subcountyList.length>0 ){
                              _subcountyDropDownMenuItems.clear();
                              _subcountyDropDownMenuItems = [];
                              //_subcountyDropDownMenuItems = null;
                              for (final info in state.subcountyList) {
                                     _subcountyDropDownMenuItems.add(new DropdownMenuItem(
                                    value: info.subcountyID.toString(),
                                    child: new Text(info.subcountyName)
                                ));
                              }

                              print("What is the items sub county list size now "+_subcountyDropDownMenuItems.length.toString());
                              if(_subcountyDropDownMenuItems.length>0){
                                for(var f=0; f<_subcountyDropDownMenuItems.length; f++){
                                   print("NEW drop down value is : "+_subcountyDropDownMenuItems[f].value.toString());
                                   print("NEW drop down child is : "+_subcountyDropDownMenuItems[f].child.toString());
                                }
                              return DropdownButtonFormField(
                                  hint: Text('Select Sub County'),
                                  onChanged: changedSubcountyDropDownItem,
                                  items: _subcountyDropDownMenuItems,
                                  value: null,
                                  /*decoration: InputDecoration(
                                    labelText: 'Sub County',
                                  ),
                                  validator: validateDropDown,*/
                                );

                              }
                              else{
                                return Container(height: 0, width: 0,);
                              }
                          }

I have same problem. I change version beta 1.14.x it worsk dont error and stable also working, but latest beta version throw error.
DropdownButtonFormField and i change DropdownButton dont throw error but same item comapre method.  Maybe is a bug?

Hi @newbieflutter
can you please provide your flutter doctor -v and flutter run --verbose?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

same  to me i have multiple DropdownButtonFormField. When user select the 1st DropdownButtonFormField i load data to 2nd drop down and when user change 1st again i load data to 2nd drop down again. the problem is if user select 2nd drop down value and change 1st  drop down value 2nd drop down not change to null even i set value to 2nd drop down value to null thank you

[✓] Flutter (Channel master, v1.18.0-6.0.pre.64, on Mac OS X 10.15.4 19E287, locale en-TH)
• Flutter version 1.18.0-6.0.pre.64 at /Users/narawutsadabpote/Work/flutter
• Framework revision 0b9c42f944 (14 hours ago), 2020-04-16 20:00:01 -0400
• Engine revision f4d6ce13dc
• Dart version 2.8.0 (build 2.8.0-dev.20.7 5900a0ac49)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/narawutsadabpote/Library/Android/sdk
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.4.1, Build version 11E503a
• CocoaPods version 1.9.1
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 45.1.1
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

@TahaTesser
Full example here:
Flutter 1.17.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision e6b34c2b5c (8 days ago) • 2020-05-02 11:39:18 -0700
Engine • revision 540786dd51
Tools • Dart 2.8.1
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatefulWidget {
  Home({Key key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  final GlobalKey<FormState> formKey = GlobalKey<FormState>();
  Future<FormDependency> _dependencies;
  Model _model;

  List<Tecnology> _tecnologyList;
  Tecnology _currentTecnology;
  List<Tecnology> _currentTecnologyList;

  @override
  void initState() {
    super.initState();

    _model = Model(category: null, tecnology: null);
    _tecnologyList = null;
    _currentTecnology = null;
    _currentTecnologyList = null;

    _dependencies = _getFormDependency();
  }

  Future<FormDependency> _getFormDependency() async {
    var web = Category(id: 1, name: 'Web');
    var mobile = Category(id: 2, name: 'Mobile');
    var desktop = Category(id: 3, name: 'Desktop');

    var categoryList = [web, mobile, desktop];
    var tecnologyList = [
      Tecnology(id: 1, name: 'Angular', category: web),
      Tecnology(id: 2, name: 'React', category: web),
      Tecnology(id: 3, name: 'Vue', category: web),
      Tecnology(id: 3, name: 'Flutter', category: mobile),
      Tecnology(id: 4, name: 'Electron', category: desktop),
      Tecnology(id: 4, name: 'GTK', category: desktop),
    ];

    // Init tecnology variables
    _tecnologyList = tecnologyList;
    _currentTecnology = _tecnologyList[0];
    _currentTecnologyList = _tecnologyList
        .where((x) => x.category.id == categoryList[0].id)
        .toList();

    return FormDependency(categories: categoryList, tecnologies: tecnologyList);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material Form'),
      ),
      body: FutureBuilder<FormDependency>(
          future: _dependencies,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return Form(
                key: formKey,
                child: SingleChildScrollView(
                  padding:
                      const EdgeInsets.only(top: 12.0, left: 5.0, right: 5.0),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: _buildForm(context, snapshot.data),
                  ),
                ),
              );
            } else {
              return Center(child: CircularProgressIndicator());
            }
          }),
    );
  }

  List<Widget> _buildForm(BuildContext context, FormDependency data) {
    List<Widget> form = [];

    // Category
    form.add(CustomDropDownInput<Category>(
      labelText: 'Category',
      optional: false,
      enabled: true,
      initialValue: data.categories[0],
      itemList: data.categories.map((Category category) {
        return DropdownMenuItem<Category>(
          value: category,
          child: Text(category.name),
        );
      }).toList(),
      onChanged: (newValue) {
        _model.category = newValue;

        // Reset tecnology dropdown value and update the item list based on the category selected
        setState(() {
          _currentTecnology =
              null; //null is passed to the dropdown build, but the internal valu of dropdown does not set the null value
          _currentTecnologyList = _tecnologyList
              .where((x) => x.category.id == newValue.id)
              .toList();
        });
      },
    ));

    // Tecnologies
    form.add(CustomDropDownInput<Tecnology>(
      labelText: 'Tecnology',
      optional: false,
      enabled: true,
      initialValue: _currentTecnology,
      itemList: (_currentTecnologyList != null)
          ? _currentTecnologyList.map((Tecnology tecnology) {
              return DropdownMenuItem<Tecnology>(
                value: tecnology,
                child: Text(tecnology.name),
              );
            }).toList()
          : null,
      onChanged: (newValue) {
        _model.tecnology = newValue;
      },
    ));

    return form;
  }
}

class Category {
  final id;
  final name;

  Category({@required this.id, @required this.name});
}

class Tecnology {
  final id;
  final name;
  final Category category;

  Tecnology({@required this.id, @required this.name, @required this.category});
}

class FormDependency {
  final List<Category> categories;
  final List<Tecnology> tecnologies;

  FormDependency({@required this.categories, @required this.tecnologies});
}

class Model {
  Category category;
  Tecnology tecnology;

  Model({@required this.category, @required this.tecnology});
}

class CustomDropDownInput<T> extends StatelessWidget {
  const CustomDropDownInput({
    Key key,
    @required this.labelText,
    @required this.itemList,
    @required this.onChanged,
    this.initialValue,
    this.show,
    this.enabled,
    this.optional,
  }) : super(key: key);

  final String labelText;
  final List<DropdownMenuItem<T>> itemList;
  final ValueChanged<T> onChanged;
  final T initialValue;
  final bool show;
  final bool enabled;
  final bool optional;

  String _validateOptional(T value) {
    if (value == null) return "Campo obrigatório";

    return null;
  }

  void _handleOnChanged(T newValue) {
    if (newValue != null) {
      // Call onChanged callback if registered
      if (onChanged != null) onChanged(newValue);
    }
  }

  @override
  Widget build(BuildContext context) {
    return (show == null || show == true)
        ? Column(
            children: <Widget>[
              DropdownButtonFormField(
                icon: Icon(Icons.search),
                isDense: true,
                decoration: InputDecoration(
                  labelText: labelText,
                  labelStyle: TextStyle(
                    color: (optional != null && optional == false)
                        ? Colors.redAccent
                        : Colors.black38,
                    fontWeight: FontWeight.bold,
                    fontSize: 15.0,
                  ),
                  filled: false,
                  border: const OutlineInputBorder(),
                ),
                validator: (optional != null && optional == false)
                    ? _validateOptional
                    : null,
                disabledHint: (enabled != null &&
                        enabled == false &&
                        itemList != null &&
                        initialValue != null)
                    ? itemList.firstWhere((x) => x.value == initialValue).child
                    : null,
                items: (enabled != null && enabled == false) ? null : itemList,
                onChanged: _handleOnChanged,
                value: initialValue,
              ),
              const SizedBox(
                height: 20.0,
              )
            ],
          )
        : Container();
  }
}

flutter doctor -v
[✓] Flutter (Channel dev, 1.19.0-0.0.pre, on Mac OS X 10.15.4 19E287, locale
    en-GB)
    • Flutter version 1.19.0-0.0.pre at /Users/tahatesser/Code/flutter_dev
    • Framework revision a849daf283 (3 days ago), 2020-05-07 18:59:02 -0700
    • Engine revision 3953c3ccd1
    • Dart version 2.9.0 (build 2.9.0-5.0.dev 4da5b40fb6)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/tahatesser/Code/SDK
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/tahatesser/Code/SDK
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.4.1, Build version 11E503a
    • CocoaPods version 1.9.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build
      1.8.0_212-release-1586-b4-5784211)

[✓] VS Code (version 1.45.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.10.1

[✓] Connected device (4 available)
    • Android SDK built for x86 • emulator-5554 • android-x86    • Android 10
      (API 29) (emulator)
    • macOS                     • macOS         • darwin-x64     • Mac OS X
      10.15.4 19E287
    • Web Server                • web-server    • web-javascript • Flutter Tools
    • Chrome                    • chrome        • web-javascript • Google Chrome
      81.0.4044.138

• No issues found!

Hi @newbieflutter
First thought it might be crash but you getting null items, which isn't a Flutter but code
Your implementation has something wrong so i created an example for you
Please checkout this Code Gist
If you want to learn more about this example, checkout. Multi-Level Dependent Dropdown
Closing, as this isn't an issue with Flutter itself but code issue
if you disagree please write in the comments and I will reopen it
Thank you

Hi @TahaTesser, as @newbieflutter described, the bug is on DropdownButtonFormField widget, In your example you uses DropdownButton.
I have the same issue in my code..
Regards.


Latin translations are missing

Description
Using the same names as the LaTeX package babel-latin (except for "Index capitum" instead of "Index") and using exemplum for raw text, one could create a file translations/la.txt with the following contents:
figure = Descriptio
table = Tabula
equation = Equatio
bibliography = Conspectus librorum
heading = Caput
outline = Index capitum
raw = Exemplum

Use Case
#set text(lang: "la")

Feel free to make a pull request.


This data-background attribute is transformed into a background-image property with the loaded image.
However the CSS background-image property gives the possibility to specify multiple images (specifying several urls separated by commas). These images are all loaded and overlayed.
Unfortunately the lazy module does not give the options to specify several images to load via the data-background / background-image property.
Suggested solution
The idea is to add the ability to pass an array of urls to the data-background attribute.
Concerned portion of code is located around those lines.
https://github.com/nolimits4web/swiper/blob/master/src/modules/lazy/lazy.js#L54
If a simple string is passed, the backward compatibility should be maintained.
If an array is passed, we call swiper.loadImage on every of these images before calling the «cleaning callback».
Regarding the loadImage callback, the following line should be updated and done for every loaded image :
From here in the lazy module code, we should have some modifications, Mainly :

data-background provided by user
const background = $imageEl.attr('data-background');
It can now return a string or an array

Side note : I noticed that the last version of the dom7 library have a .data method that can return array. (The current version of swiper / 8.4.6 depends on an old version of dom7 / ^4.0.4 that does not contain the data method)

Images loading and callback ..

$imageEl.css('background-image', url("${background}"));
instead we should now return / update the Dom with :
$imageEl.css('background-image', url("${background1}"), url("${background2}"), url("${backgroundN}") );

Maybe the background image processing should have its own loop to load the images.

The code needs to be restructured to potentially load multiple images in case of data-background containing an array.
Also, that could be a good idea to add a loadImages method to loadImage.js

Interaction with lazy options
I think that this feature would not impact the way lazy options work (loadPrevNext, loadPrevNextAmount ...) but may be worth to check.
Indeed, even if a data-background contains multiple urls, that still concerns one slide so the lazy loading logic here is maintained.

I'm willing to contribute and propose a PR if you think that this feature makes sense.
Any guidance / alternatives are welcome
Thanks
Alternative
Not quite sure yet :

Disable preloading of swiper and use another mechanism to lazy load images

Overlaying can be done easily via css ... but the lazy module seems to be the better place for image loading and synchronization with swiper.
I can't think of a good way to maintain the lazy loading feature useful in my case without adapting the swiper lazy module.
Additional context
I'm using swiper to preview like 40/50 slides, each one containing 2 images.
Each slide contains one image that will be quickly got from cache for all users but the second overlayed image will be user dependant and generated on the fly so the lazy feature is mandatory in my case.
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Would you like to open a PR for this feature?

[X] I'm willing to open a PR

Swiper v9 doesn't lazy module anymore. If you have similar issues in Swiper 9, open a new issue with a CodeSandbox showing the issue.


managed running of python

improve running commands in lua, using a modified version of petzku's run_cmd
it can now forward python's output to aegisub's logs
(cherry picked from commit 3ff69f17b3aeadb32399e27f28c873f2d1694d63)

نایسو دایو


cannot install neovim after el capitan update

I recent updated to mac os x 10.10 and before that there was an xcode update as well.
so currently i have Version 7.0.1 (7A1001)
and I have mac os x 10.10
This is the brew install log:
Brother:~ blubee$ brew install neovim --HEAD
==> Installing neovim from neovim/homebrew-neovim
==> Cloning https://github.com/neovim/neovim.git
Updating /Library/Caches/Homebrew/neovim--git
==> Checking out branch master
==> Downloading https://github.com/libuv/libuv/archive/v1.7.2.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--libuv-1.7.2.tar.gz
==> Downloading https://github.com/msgpack/msgpack-c/archive/cpp-1.0.0.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--msgpack-1.0.0.tar.gz
==> Downloading http://luajit.org/download/LuaJIT-2.0.4.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--luajit-2.0.4.tar.gz
==> Downloading https://github.com/keplerproject/luarocks/archive/0587afbb5fe8ceb2f2eea16f486bd6183bf02f29.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--luarocks-29.tar.gz
==> Downloading https://github.com/mauke/unibilium/archive/v1.1.4.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--unibilium-1.1.4.tar.gz
==> Downloading https://github.com/neovim/libtermkey/archive/8c0cb7108cc63218ea19aa898968eede19e19603.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--libtermkey-19603.tar.gz
==> Downloading https://github.com/neovim/libvterm/archive/1b745d29d45623aa8d22a7b9288c7b0e331c7088.tar.gz
Already downloaded: /Library/Caches/Homebrew/neovim--libvterm-7088.tar.gz
==> Downloading https://github.com/jemalloc/jemalloc/releases/download/3.6.0/jemalloc-3.6.0.tar.bz2
Already downloaded: /Library/Caches/Homebrew/neovim--jemalloc-3.6.0.tar.bz2
==> Building third-party dependencies.
==> cmake ../third-party -DUSE_BUNDLED_BUSTED=OFF -DUSE_EXISTING_SRC_DIR=ON -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEAS
==> make VERBOSE=1
==> Building Neovim.
==> cmake .. -DCMAKE_C_FLAGS_RELEASE= -DCMAKE_CXX_FLAGS_RELEASE= -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/neovim/HEAD -DCMAKE
==> make VERBOSE=1 install
Last 15 lines from /Users/blubee/Library/Logs/Homebrew/neovim/04.make:
      _string_convert_ext in mbyte.c.o
  "_libiconv_close", referenced from:
      _readfile in fileio.c.o
      _buf_write in fileio.c.o
      _mb_init in mbyte.c.o
      _utf_find_illegal in mbyte.c.o
      _my_iconv_open in mbyte.c.o
      _convert_setup_ext in mbyte.c.o
  "_libiconv_open", referenced from:
      _my_iconv_open in mbyte.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/nvim] Error 1
make[1]: *** [src/nvim/CMakeFiles/nvim.dir/all] Error 2
make: *** [all] Error 2

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/neovim/homebrew-neovim/issues

Warning:

There's no actual warning, I was able to install neovim and had it working prior to 10.10 update. After the update I ran into this error and tried the trouble shooting steps, one of which uninstalled neovim and now it's gone from my system.

Also unable to brew reinstall --HEAD neovim after upgrading to el capitan, but I'm getting a different error:
checking whether we are cross compiling... configure: error: in `/tmp/neovim20151003-2417-nt1o8g/deps-build/build/src/jemalloc':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
make[2]: *** [build/src/jemalloc-stamp/jemalloc-configure] Error 1
make[1]: *** [CMakeFiles/jemalloc.dir/all] Error 2
make: *** [all] Error 2

after looking around and then running into some different issues, it seems that the update to the latest version of xcode and then el capitan uninstalled xcode command line tools from my computer.
I can't say which one caused the issue because there was a big xcode update then I just rolled right into the el capitan update afterwards.
@bgourlie check if you still have xcode command line tools installed.
Speaking of which my issues were solved once I reinstalled xcode command line tools.

I had to upgrade xcode -- everything worked fine after that!

So this issue was resolved for everyone by xcode update and/or reinstall?
I have not been keeping up with El Capitan, but has anyone ran into this: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md#if-usrlocal-does-not-exist

Hi, I'm still getting this exact same error that teamblubee reported when I try either
brew install neovim --HEAD
or
brew install neovim/neovim/neovim
on OSx El Capitan. I installed CLT using
xcode-select --install,
and my XCode is updated to the latest version as well.
brew doctor
doesn't show me any obvious problem. I also faced the El Capitan-Homebrew issue that justinmk outlined, and have also fixed that as per the link posted. Any idea what the issue might be?
Thank you.


Different weather icons

Sorry for posting so many issues, thank you for a great fork!! Exactly what I've been looking for. I have some more suggestions for weather icons:
Hot weather: A thermometer with a sun
Windy weather: Three curvy strokes that looks like someone is blowing.
Heavy showers: Cloud with rain that goes diagonally,
Cold temperature: Thermometer with a snowflake.
Clear night: Moon but with two stars, one small and one a bit larger.
Partly cloudy: Cloud with sun in the back.
Thunderstorm: Cloud with a lightning.
Suggestion:
Nicer looking cloud and snowflake.
The original clouds doesn't look very nice, it's hard to see that they are clouds. Do them a bit like this instead, and also the snowflake.

@cjh9 Like @locness3 mentioned in another issue, most of these are probably a bit too specific for the lucide icon set. I'll have a go at it tho and if I manage to do some good ones I can post the code in another repo.

Some of them I think we already have, some are I think are too specific and some are I think are good ideas
Windy weather: I think wind can be used here.
Heavy showers: This one is a good idea, maybe a variation from the icon from @Andreto in #117 ?
Cold temperature: Too specific.
Clear night: Too specific?.
Partly cloudy: This one is good idea. -> cloud-sun
Thunderstorm: Can't this one be used? cloud-lightning.

@cjh9 @Andreto @locness3
I rethought this issue. I think some weather icons are welcome. Would lovely to see if there someone makes a weather application using lucide. The current ones aren't suitable for this purpose because we missing a lot of icons.
I followed the icons that apple uses see this thread, Because we can't use color we can't make difference between night and day icons.
Here are the icons I designed and I refactored some with our guidelines

@cjh9 @Andreto @locness3
I rethought this issue. I think some weather icons are welcome. Would lovely to see if there someone makes a weather application using lucide. The current ones aren't suitable for this purpose because we missing a lot of icons.
I followed the icons that apple uses see this thread, Because we can't use color we can't make difference between night and day icons.
Here are the icons I designed and I refactored some with our guidelines


Allow weak SSL verification for apt_key

fixes https://tickets.puppetlabs.com/browse/MODULES-8759

Adhoc ran successfully so I'm going to go ahead and merge. Thanks for contributing @tuxmea  :)

This change causes "Error: no parameter named 'weak_ssl'": https://tickets.puppetlabs.com/browse/MODULES-9209

This change causes "Error: no parameter named 'weak_ssl'": https://tickets.puppetlabs.com/browse/MODULES-9209

This could be related to environment leaking when having two environments with different versions of a type/provider:
https://puppet.com/docs/puppet/5.3/environments_about.html#troubleshooting-environment-leaks
Are you running puppet generate types after r10k deployment?

It seems that simply restarting puppetserver after upgrading modules fixed it. I guess that is standard procedure.


Wifi Heap Error after Few hours of oprating (IDFGH-5808)

Hai,
I'm trying to figure out why the wifi driver is running out of memory after 3 hours .cant find where the log gets
tried out by reinit wifi and reinitialized again and traced out my free heap size of application  ....but once this gets then frequently getting the wifi disconnects due to this error...
W (7535336) wifi: alloc eb len=36 type=3 fail, heap:3563020
W (7535336) wifi: mem fail
here is my sdkconfig option for wifi :

Wi-Fi

CONFIG_SW_COEXIST_ENABLE=y
CONFIG_SW_COEXIST_PREFERENCE_WIFI=
CONFIG_SW_COEXIST_PREFERENCE_BT=
CONFIG_SW_COEXIST_PREFERENCE_BALANCE=y
CONFIG_SW_COEXIST_PREFERENCE_VALUE=2
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=25
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16
CONFIG_ESP32_WIFI_CSI_ENABLED=
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=6
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_RX_BA_WIN=16
CONFIG_ESP32_WIFI_NVS_ENABLED=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1=y
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=1024
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE=
CONFIG_ESP32_WIFI_IRAM_OPT=y
SPIRAM config
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST=y
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
if gets restarted again working fine then few hours later getting the same
how to resolve this issue ?

hi @sowmimalu , do you also use Bluetooth in your application?

Hai @MaxwellAlan
yes using DUAL MODE both BLE and Bluetooth. and enabled BLUETOOTH AND wifi CO-existence option as well.

Hi @sowmimalu,
In what security is the wifi connected in (wpa3 or wpa2)? any traffic is being run on the wifi and BT ? and which example are you using for this exp ?

hi @nishanth-radja  i am using BLE gattc client example and Wifi station example in my application and for wifi connection its with wpa2 security WIFI_AUTH_WPA2_PSK mode.

@sowmimalu what is the IDF version you are using?

I am using idf 4.0

I am using idf 4.0 dev

The esp-idf-v4.0 is EOL.
https://www.espressif.com/sites/default/files/advisory_downloads/AR2021-007 End-of-Life Advisory for ESP-IDF v4.0 Release Branch EN.pdf
Could you try reproduce the issue on newer esp-idf version?
Also please provide the exactly esp-idf version by running "git describe --tags".

Hi @AxelLin '
i have checked in idf 4.3 , i am getting the error sometimes while downloading the file using http
W (86048) wifi:idx
W (86048) wifi:mem fail

@sowmimalu
So the symptom on v4.3 is different from what you initially reported on v4.0 (OOM after 3hrs)?
You probably need to create a new issue instead. (Is it possible to reproduce it with simple snip code?)

@sowmimalu
Do you still hit the "wifi: m f null" issue with latest 4.3.4 release?

Thanks for reporting, will close due to short of feedback, feel free to reopen with more updates. Thanks.


Create GitHub Actions workflow to run tests for pull requests

Create a simple GitHub Action workflow to run the package test suite for every open pull request. A correct workflow should run flutter test for every update on a pull request and block it from being merged if tests fail. The naming of the workflow should be descriptive and concise.

Hi, @jushutch,
I would like to work on this issue.

Hi @inovaprog, I'll assign you now, good luck!

Thanks, @jushutch . But I think I have to wait for issue #2 to be resolved first.

Thanks, @jushutch . But I think I have to wait for issue #2 to be resolved first.

You're right because flutter test will fail without any tests. I'll create a single test to prevent that and add a comment here when I'm done with that. In the meantime you should still be able to work on the workflow, it just won't run successfully.

Thank you @jushutch . I will work in it now.