Export C++ function and put options back into dfm function call

Single interface should be working with all the arguments in the function call. Also, export C++ BDFM function for advanced users.

Codecov Report

Merging #11 into master will increase coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master     #11      +/-   ##
=========================================
+ Coverage    0.13%   0.13%   +<.01%
=========================================
  Files           7       7
  Lines        1535    1521      -14
=========================================
  Hits            2       2
+ Misses       1533    1519      -14

Impacted Files
Coverage Δ

R/BDFM.R
0% <0%> (ø)
:arrow_up:

src/BDFM.cpp
0.12% <0%> (-0.01%)
:arrow_down:

R/dfm.R
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

There is an X because of codecov - we don't care about that


feat: Change ubuntu to lunar version since kinetic, is no longer avai…

…lable
feat: Change ubuntu to lunar version since kinetic, is no longer available

Thanks for catching this one 🙌


[Enhancement] Add IP address process function for SQL like ClickHouse

Search before asking

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

Description
ClickHouse support some IP address process function for SQL. These are very useful for some network service cases.
Hope to add these function ASAP.Thanks.
Solution
Add IP address process function for SQL like ClickHouse
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I will take this, pls assign to me

I added another ip function and the PR is https://github.com/apache/doris/pull/25510. @TangSiyang2001


Tips and reviews

This is not ready for merge yet for 2 reasons:

UI is ugly. Please give feedback.
Currently, a user can vote on a review as often as he/she wants. This means people can skew how helpful reviews are just by voting for their own a bunch of times. Is this okay, or do we want to pull the voting data out to another table to keep track of who has voted for what?

Coverage increased (+0.19%) to 81.29% when pulling 41cf76c7c374d807e397fe5a1eb2366453725ca6 on tips-and-reviews into fe6265a08bb3bebeaa9fd27e212156d68f77695c on master.

Don't let people vote more than once. People are jerks.

:+1: Will work on that

Can people vote to offset their previous vote? Meaning if I +1 something, but decide later I changed my mind, I can then go back and -1?

Coverage increased (+0.19%) to 81.29% when pulling b9ceb25419aeffc35404811e1aa7362e1f969557 on tips-and-reviews into fe6265a08bb3bebeaa9fd27e212156d68f77695c on master.

Coverage increased (+2.12%) to 83.44% when pulling 1d4c0d12060f72830e0087d0062a6aab83c15e62 on tips-and-reviews into f23a08a220f98a84c0cde42a77b2f0bc27652ed3 on master.

Hey @StephHippo I haven't been able to get that feature test to fail locally, and looking at the test, it seems fine. I'm just going to restart the build and see if it passes, but I wanted to let you know in case you wanted to take a look at it.

Sorry, I've been meaning to review this. Will take a peek this weekend.

Something's wrong here. I fetched, switched to the branch, and ran migrations. Started up the app. Can't login. Can't see anything for Tips and Reviews.

jk now I can. Reviewing now. Please hold.

Doesn't look right on mobile.

Should get an option to just undo your vote in case you accidentally click it without forcing you to choose the opposite vote. If I accidentally upvote it, but I want to just undo the upvote, not downvote it. (Really surprised there isn't a gem for something like this.)
UI needs some work. Padding around the text box would be a good start, as well as a stylized dropdown.

Also, we should discussed if we want to show who left the review. My biggest concern with this feature is abuse. I'm really not okay with people using this to tear professors down.

Sorry about the tons of emails this is going to generate.
Also it's showing the lowest rated review first. Not what we want.

But what if there was a system where if your review is downvoted too much, it's removed.
After you've had so many reviews removed, your privilege to reviews gets suspended, reported to use, and reviewed.
This might seem like it's over complicating things, but it'll help silence the jerks quickly.  Honest and respectful reviews only.

Check-in: @ajm188, are you still working on this feature?

Ha yes I'll come back to this next week

Necrobump: what's the status of this?
I'm not sure what the original scope of this feature was, but there has been discussion in USG recently about a system to leave comments/tips on courses/professors (and this might fit that nicely?).

This branch is probably too stale to be much use. Also, I wasn't thrilled with parts of the implementation. I'm happy to take a second swing at it, but honestly I'd rather someone still at CWRU work on this feature, with me to review changes/provide feedback/etc.


Bug: winrt::capture needs detector for "REFIID, IUnknown**" methods

Version
No response
Summary
Trying to call https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms718237(v=vs.85) (IGetRow::GetRowFromHROW) in my app using winrt::capture. The signature is HRESULT GetRowFromHROW(IUnknown **pUnkOuter, HROW hRow, REFIID riid, IUnknown **ppUnk).
Capture requires the capture output parameter to be void**, so this fails.
Reproducible example
#include <windows.h>
#include <propsys.h>
#include <winrt/Windows.Foundation.h>

HRESULT GetRowFromHROW(
    ::IUnknown** pUnkOuter,
    int hRow,
    REFIID riid,
    ::IUnknown** ppUnk);

int main()
{
    auto r = winrt::capture<::IPropertyStore>(GetRowFromHROW, 3, nullptr);
    r->Commit();

    return 0;
}

Expected behavior
Expected capture to adapt to three common COM capturable parameter pairs - (REFIID, void**), (REFIID, ::IUnknown**), (REFIID, IInspectable**) ... or maybe more generally "void** and things-that-derive-from-IUnknown**".
Actual behavior
1>c:\source\repos\App1\CppWinrtTest\Debug\Generated Files\winrt\base.h(2330,48): error C2664: 'HRESULT (IUnknown **,int,const IID &,IUnknown **)': cannot convert argument 4 from 'void **' to 'IUnknown **'
1>c:\source\repos\App1\CppWinrtTest\Debug\Generated Files\winrt\base.h(2330,48): message : Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or parenthesized function-style cast
1>c:\source\repos\App1\CppWinrtTest\Debug\Generated Files\winrt\base.h(2567): message : see reference to function template instantiation 'int32_t winrt::impl::capture_to<IPropertyStore,HRESULT(__cdecl *)(IUnknown **,int,const IID &,IUnknown **),_Ty,nullptr>(void **,F,_Ty &&,nullptr &&)' being compiled
1>        with
1>        [
1>            _Ty=int,
1>            F=HRESULT (__cdecl *)(IUnknown **,int,const IID &,IUnknown **)
1>        ]
Additional comments
Fully willing for this to be "go add this to WIL as it's a Windows SDK problem not a C++/WinRT problem."

Seeing as this is a C++/WinRT equivalent to the IID_PPV_ARGS macro, and such a function wouldn't work with this macro either, I believe unless it's a trivial fix some wil helper might be more suitable.

Right, I wouldn't call this a bug in C++/WinRT. This mistake is somewhat prevalent in the Windows SDK, but it is a mistake and should be void**. I'm not opposed to adding support nonetheless as those headers can't be fixed now for fear of breaking the world but I'm not sure how easy that would be as C++/WinRT correctly assume void** on the bound function.

Something like this should do the trick, if someone would like to run with it:
namespace winrt::impl
{
    struct capture_decay
    {
        void** result;

        template <typename T>
        operator T** ()
        {
            return reinterpret_cast<T**>(result);
        }
    };

    template <typename T, typename F, typename...Args>
    int32_t capture_to(void**result, F function, Args&& ...args)
    {
        return function(args..., guid_of<T>(), capture_decay{ result });
    }

Oh that's much nicer than the "figure out the type of the last parameter and use it" thing I was trying to do.
Do you think this is still appropriate for cppwinrt? WIL is fine too.

This seems like a very minor generalization, so I'm happy for it to live here.

Here you go: #1301


Update AWS SDK version to 1.10.57

Update the default version of AWS SDK in the setup script to 1.10.57
Resolves #5123

@imjalpreet CI is failing. I believe the newer versions of AWS SDK are not creating the bin folder. You need to manually create it in .circleci/config.yml for the linux-adapters run.
mkdir ~/adapter-deps/install/bin/

@majetideepak Thanks, made the change to create the directory manually.

@kgpai can you please help merge this? Thanks.

@imjalpreet I see a S3 test failing. Do you want to investigate?

Will merge after the s3 test is fixed. Thanks @imjalpreet .

Thanks, @imjalpreet

@kgpai can you help merge this? Thanks.

@imjalpreet Can you rebase with main branch?


Update "First steps" tutorial to notebook

What is the need for this task.
The HYDROLIB team strives to create notebooks as tutorial that can be launched in binder
What is the task?

improve first steps tutorial: some steps are missing such as the creation of branch, calculation grid and adding of a profile.
create notebook
include binder option to documentation

Additional context
Add any other context or screenshots about the feature request here.

Notebook ok now. The binder link must be generated automatically and only for the html version of this notebook.
Will close this issue and continue that work under new issue #285.


Create a struct similar to std::fs::File for directories

There is currently no safe way in rust to open a filedescriptor on a directory and using it for reading entries. Currently you always have to open a new filedescriptor using std::fs::read_dir<P: AsRef<Path>>(path: P) -> io::Result<ReadDir>. At least for my understanding, if you need to access the directory multiple times (for example for a directory watcher), this is inefficient.
A solution would be to introduce a new struct called "Dir" or "Directory" with a "read_dir" function, which can be used to access a directory multiple times without opening another filedescriptor. Another solution would be to extend the std::fs::File struct with a "read_dir" function.

https://github.com/rust-lang/rust/issues/120426

Sorry for the duplicate


fix to work 07netcat.strm on windows

I modifed order of streming in 07netcat.strm because windows can't poll stdin in non-main thread. it should poll input with ReadConsoleInput or ReadFile. So this is a temporary workaround .

Currently, testing with 06echo.strm, 07netcat.strm on windows,
(1) typing some letters on console that running 06echo.strm
(2) seems receiving characters in 07netcat.strm, and maybe replying same value
(3) nothing output on console. (BUG)
This is last remaining issue on windows.

one more issue. in sometimes assertion occured.
Assertion failed!

Program: C:\dev\streem\bin\streem.exe
File: value.c, Line 81

Expression: strm_value_tag(v) == STRM_TAG_FOREIGN

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.


Utests2

I know use a shell script to collect all unit tests. Not as elegant, but this works also on MacOS X.

I still get an error on OS X
$ make utest
make MAKESTAGE=2 utest
/Users/jtamir/Drive/dev/bart_git/utests/utests-collect.sh ./utests/test_batchsvd.c > utests/utests.inc
/Users/jtamir/Drive/dev/bart_git/utests/utests-collect.sh ./utests/test_flpmath.c > utests/utests.inc
gcc-mp-4.7  -O3 -ffast-math -Wmissing-prototypes -g -std=c99 -I/Users/jtamir/Drive/dev/bart_git/src/ -fopenmp -o test_flpmath utests/utest.c utests/test_flpmath.o lib/libnum.a lib/libmisc.a lib/libnum.a lib/libmisc.a -L/opt/local//lib -lfftw3f -lfftw3f_threads  -L/opt/local/lib -lopenblas -lm
gcc-mp-4.7  -O3 -ffast-math -Wmissing-prototypes -g -std=c99 -I/Users/jtamir/Drive/dev/bart_git/src/ -fopenmp -o test_batchsvd utests/utest.c utests/test_batchsvd.o lib/liblowrank.a lib/libnum.a lib/libmisc.a lib/libnum.a lib/libmisc.a -L/opt/local//lib -lfftw3f -lfftw3f_threads  -L/opt/local/lib -lopenblas -lm
UndefinedUndefined symbols  forsymbols for architecture x86_64:
  " architecture _batch_svthresh_widex86_64:
", referenced from:
     "  _batch_svthresh_wide ", referenced from:
_ut_tests in cc7naQ3Q.o
     (maybe you  meant:      _call_test_batch_svthresh_wide)
  _ut_tests in ccpI07ZQ.o
ld"_call_test_md_zfmac2:" , symbolreferenced( sfrom):
not   found for architecture x86_64
    _ut_tests in cc7naQ3Q.o
  "_call_test_md_zwavg", referenced from:
      _ut_tests in cc7naQ3Q.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit statuscollect2: error: ld returned 1 exit status

make[1]: *** [test_batchsvd] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [test_flpmath] Error 1
make: *** [utest] Error 2

Yes, forgot about parallel make. For PARALLEL=0 it should work. I will fix it =1.


Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

C:\Users\Manu\Desktop\mobile\hello>npx react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 875 file(s) to forward-jetify. Using 4 workers...
FAILURE: Build failed with an exception.

Evaluating settingsITIALIZING [79ms]

Where:
Build file 'C:\Users\Manu\Desktop\mobile\hello\android\build.gradle' line: 39

What went wrong:
A problem occurred evaluating root project 'hello'.

Could not find method android() for arguments [build_7rxodrum8w7uer3ztokk6r5ir$_run_closure2@3d3dd050] on root project 'hello' of type org.gradle.api.Project.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 2s
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
FAILURE: Build failed with an exception.

Where:
Build file 'C:\Users\Manu\Desktop\mobile\hello\android\build.gradle' line: 39

What went wrong:
A problem occurred evaluating root project 'hello'.

Could not find method android() for arguments [build_7rxodrum8w7uer3ztokk6r5ir$_run_closure2@3d3dd050] on root project 'hello' of type org.gradle.api.Project.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 2s
at makeError (C:\Users\Manu\Desktop\mobile\hello\node_modules\execa\index.js:174:9)
at C:\Users\Manu\Desktop\mobile\hello\node_modules\execa\index.js:278:16
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async runOnAllDevices (C:\Users\Manu\Desktop\mobile\hello\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:106:5)
at async Command.handleAction (C:\Users\Manu\Desktop\mobile\hello\node_modules\@react-native-community\cli\build\index.js:186:9)

info Run CLI with --verbose flag for more details.

I  have the same issue. How we can fix that?
While running the react-native run-android cmd getting the failed build.
* Get more help at https://help.gradle.org

BUILD FAILED in 2s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

Here Have some environment Details react-native info
System:
    OS: Linux 5.4 Ubuntu 18.04.5 LTS (Bionic Beaver)
    CPU: (8) x64 Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz
    Memory: 200.08 MB / 7.64 GB
    Shell: 4.4.20 - /bin/bash
  Binaries:
    Node: 12.22.5 - ~/.nvm/versions/node/v12.22.5/bin/node
    Yarn: 1.22.5 - /usr/bin/yarn
    npm: 7.22.0 - ~/.nvm/versions/node/v12.22.5/bin/npm
    Watchman: Not Found
  SDKs:
    Android SDK: Not Found
  IDEs:
    Android Studio: Not Found
  Languages:
    Java: 1.8.0_292 - /usr/bin/javac
    Python: 2.7.17 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.13.1 => 16.13.1
    react-native: 0.63.3 => 0.63.3
  npmGlobalPackages:
    *react-native*: Not Found

Could not find method android() for arguments [build_7rxodrum8w7uer3ztokk6r5ir$_run_closure2@3d3dd050] on root project 'hello' of type org.gradle.api.Project.

This issue is most likely related to a wrong configuration inside the android{} block of your build.gradle file. Can you share that section of your Gradle file?

Closing as it looks like the issue was solved. Feel free to reopen if the issue persists and share the requested info.


Autokeras does not work on Windows due to fork

I have windows machine with CUDA 10.0, Cudnn 7.5, and Python 3.7. I have successfully installed Tensorflow 1.11 and confirmed it works with non-trivial examples.
I installed Autokeras 0.2.19 and tried to run the example below:
import autokeras as ak
from keras.datasets import mnist
if name == 'main':
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,))
x_test = x_test.reshape(x_test.shape + (1,))
clf = ak.ImageClassifier(verbose=True)
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
y = clf.evaluate(x_test, y_test)
print(y)

The following is the output:
Using TensorFlow backend.
Initializing search.
Initialization finished.
+----------------------------------------------+
|               Training model 0               |
+----------------------------------------------+
Traceback (most recent call last):
File "akerastest.py", line 10, in
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
File "C:\Users\Chris\Anaconda3\envs\tensorflow\lib\site-packages\autokeras\image\image_supervised.py", line 161, in fit
self.cnn.fit(self.get_n_output_node(), x_train.shape, train_data, test_data, time_limit)
File "C:\Users\Chris\Anaconda3\envs\tensorflow\lib\site-packages\autokeras\cnn_module.py", line 50, in fit
searcher.search(train_data, test_data, int(time_remain))
File "C:\Users\Chris\Anaconda3\envs\tensorflow\lib\site-packages\autokeras\search.py", line 175, in search
ctx = mp.get_context('fork')
File "C:\Users\Chris\Anaconda3\envs\tensorflow\lib\multiprocessing\context.py", line 238, in get_context
return super().get_context(method)
File "C:\Users\Chris\Anaconda3\envs\tensorflow\lib\multiprocessing\context.py", line 192, in get_context
raise ValueError('cannot find context for %r' % method) from None
ValueError: cannot find context for 'fork'
It looks like Autokeras is using fork, which I believe from Googling is not supported on Windows. If this is the case, is there a work-around or is this a known limitation?

@tl-yang Would you please look into this issue?
Thanks.

@csteel45 Yes, you're right, Windows doesn't support fork. The recent why we use fork is just to be able to run it on Google Colab. So I think this issue can be easily addressed by detecting the current structure. I'll take care of it ASAP!

Great. Please also ensure that you address the use of virtual environments. I changed my local copy to use spawn instead of fork but I am having issues that I believe may be related to my virtualenv for tensorflow.

Hi @csteel45 , will the error cause Autokeras to crash? Or it just appear on the terminal?

It will crash
From: tl-yang<EMAIL_ADDRESS>Reply-To: jhfjhfj1/autokeras<EMAIL_ADDRESS>Date: Saturday, November 10, 2018 at 4:54 PM
To: jhfjhfj1/autokeras<EMAIL_ADDRESS>Cc: Christopher Steel<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [jhfjhfj1/autokeras] Autokeras does not work on Windows due to fork (#300)
Hi @csteel45 , will the error cause Autokeras to crash? Or it just appear on the terminal?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

So I got i right, under Ubuntu it will work and i didnt get the fork error?

Correct. It doesn’t work under Windows which doesn’t support fork. Instead, you need to change the fork to a spawn so that it is cross-platform. The alternative is to check the OS and call fork for Unix-based systems and Spawn for Windows-based systems.
-Chris
From: Timmmeyyy<EMAIL_ADDRESS>Reply-To: jhfjhfj1/autokeras<EMAIL_ADDRESS>Date: Monday, November 12, 2018 at 11:12 AM
To: jhfjhfj1/autokeras<EMAIL_ADDRESS>Cc: Christopher Steel<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [jhfjhfj1/autokeras] Autokeras does not work on Windows due to fork (#300)
So I got i right, under Ubuntu it will work and i didnt get the fork error?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Thx for your answer chris, can you give me Changes i have to do to get it working under windows?
Greetz Tim

@csteel45 I got the same error, could you please explain how to fix this error?

@csteel45 I got the same error, could you please explain how to fix this error?

@Bjoux2  Sorry, I was on travel this week.
In search.py change the line: ctx = mp.get_context('fork')
to
ctx = mp.get_context('spawn')
I added some extra code to address running in a virtualenv so I don't have the exact line number.


Should Dataset enforce some ordering of dims in its variables?

I'm not sure on this one. I'm currently having a bunch of issues with this sort of Dataset:
(notice the dims are (d, c) and (c, d) for different variables)
<xray.Dataset>
Dimensions:               (c: 193, d: 6781)
Coordinates:
  * d                   (d) object 5218 5219 5220 5221 5222 5223 5224 ...
  * c       		 (c) object LDS. ...
    j       	         (c, d) bool False False False False ...

In my case, this is particularly painful when passing the result of ds.r.to_pandas() into a function expecting a DataFrame with a certain orientation when that orientation isn't reliable.
Is this a problem generally?
If it is, I could imagine a few solutions - enforce ordering, offer a method on a DataSet to align the dims, offer a kwarg on .to_pandas() to allow specifying the dims-axis mapping, etc

The easiest way to enforce that dimensions have a consistent order is to use the transpose method, e.g., ds.transpose('c', 'd'). Does that suffice? I'm not sure enforcing an ordering would be a good idea -- it makes the xray data model slightly less  flexible.

Great, I didn't know transpose could do that, cheers.
FWIW this doesn't seem to enforce the ordering of the dims of coords in a DataArray - let me know if you want me to open an issue / post an example.
I think that makes sense re enforcing the ordering. I think my current use case is very specific (applying functions to pandas objects, which don't recognize dims, and so fail if things are in the wrong order). More generally, I'd hope functions would be robust to the order of dimensions.
I'll close for now.
Thanks as ever!


Force recreate views and function witn RETURNS TABLE type - postgres

Hi!
Consider to implement feature to recreate objects (drop then create, thus create or replace doesnt do that) - views with fields inserted not at the end, but in between, same with funcs.

I meant - add the checkbox "recreate object" in object edit dialog - e.g. PLSQLDeveloper has this behaviour

Could you please provide me with more details to reproduсe the case (steps to reproduce including DDL to create objects). Thank you in advance.

I mean the following - in Postgres we cannot alter views changing its fieldlist (we can only add fields, but not delete, rename, retype). Same with function "RETURNS SETOF"
I would like to have checkbox "force recreate" - drop the object, then create new. In order to override these limitations

We will implement it


Option for deliverer the order in multiple addresses in in a shipping.

Is your feature request related to a problem? Please describe.
If the customer places 1 orders with multiple quantities of the product. then there is no option to deliver the same order to multiple shipping addresses.
Describe the solution you'd like
If the customer places 1 orders with multiple quantities of the product. then there should be an option to deliver the same order to
multiple shipping addresses.
Describe alternatives you've considered
No response
Additional context
No response

Needs to done by custom module


Editorconfig vs auto detection

Issue Type: Bug
Auto detection of tab settings appears to override explicit settings from .editorconfig files.
It should be the other way around..
VS Code version: Code 1.30.1 (dea8705087adb1b5e5ae1d9123278e178656186a, 2018-12-18T18:12:07.165Z)
OS version: Windows_NT x64 6.1.7601

@OlafvdSpek do you have the editor config extension installed?

No.. isn't it installed by default?

Not it is a separate extension that needs to be installed https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig.

Shouldn't it be bundled and enabled by default?


SPARK-12417. [SQL] Orc bloom filter options are not propagated during file …

Can one of the admins verify this patch?

Any test cases to make sure it works as expected? Do you mind changing the orc ppd enabled as default or using another JIRA.

Thanks @zhzhan. Enabled orc PPD by default and also added a test case for bloom filters in the latest commit. ORC RecordReaderImpl is not public in the version of hive that is supported in spark; Hence relying on FileDump utility from ORC to test bloom fitlers.

+1 for this

Duplicate of #10842? Can you close one of them and we'll continue on a single PR?

Closing this as dup of #10842


The latest version is not in PlayStore

I can see Version 1.9.2 (1480) May 20, 2017 in F-Droid, but not in PlayStore (the latest version there is dated September 27, 2016).
Is that intentional? Should we expect the latest version published to PlayStore anytime soon?

I think the date on the F-Droid version just reflects the fact that it's a recent build that removes the non-Free libraries.  In all other respects the versions should be the same.


3dt refactor

High Level Description
3dt refactor and vendor folder update.
Related Issues
DCOS-14886
Checklist for all PR's

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
existing integration tests should be enough to cover this refactor.
[X] Read the DC/OS contributing guidelines
[X] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[X] Change log from the last version integrated (this should be a link to commits for easy verification and review): 3dt
[X] Test Results: jenkins#321
[X] Code Coverage (if available): jenkins#321

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and Review Process
What is the review process and when will my changes land?
All PRs require 2 approvals using github's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@mesosphere-mergebot bump-ee

@lingmann @spahl this is ready for review

Hi @darkonie I'm probably not the right person to review this (and likely neither is @spahl). Can you ping some other folks with more Go experience and/or 3dt knowledge to review these changes? I would suggest some of the Hamburg folks or the new members of the management team.

@lingmann this has been reviewed here https://github.com/dcos/3dt/pull/89

@mesosphere-mergebot bump-ee

@collinvandyck can you approve this request since you reviewed the go changes?

Yes. My only point on the 3dt changeset was that I am not really all that familiar with the 3dt codebase but I reviewed the changes and they seemed to be a fairly typical refactor.  I didn't see anything which jumped out as being "wrong" necessarily.  That being said, if all the tests pass.... 🎆

Thanks @collinvandyck @amitaekbote @spahl for reviewing. Let's work towards continuing to get more people comfortable reviewing all of the 3dt code! :)


compatibility with ocaml PR#1569 (changes to compiler install dir)

See https://github.com/ocaml/ocaml/pull/1569 . This change should have no visible effect while the ocaml pull request is not merged (and no visible effect after either, other than the libraries build).

@sliquister, should we merge this one still ?

I think so (with a comment explaining why we have this seemingly dead code).
Clearly upstream doesn't want the change. But I think that we'll eventually apply this change internally regardless. And it would be easier to try the change on opam if there's not a bunch of core packages to go fix first.


Unblock channels

Description of changes
Two fixes to get unstable moving again.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Hydra ref: https://hydra.nixos.org/eval/1802874#tabs-still-fail

Thanks, I was just about to push this.


Feature: Friendly links (community bookmarks)

Description
Friendly links are meant to showcase permanent links from our community members, sorted by categories.
Friendly links are made popular by upvotes and downvotes from community members. If someone has a service that they use, they can add to friendly links and let the community know of its benefits.
Community members can up/down vote links indicating popularity/agreement with the link.
Friendly links could be OSS URLs, profile links, useful online services, apps etc...

To avoid starting the conversation over, I made a screenshot (from GitLab) for the conversation progress so far (click on the image for a higher-resolution view):


Merge up from latest on stable

Added a commit that should address PR feedback.

Also merged up the latest verbiage from README_BRANCHING

:+1:


Remove duplicate CSS config

The files we're actually using for asset builds are in assets/config, so these can be removed.

Oops! I think I deleted the wrong files. Let's try that again...

All righty, that looks better I think. 😅


Propose adding link to Fission setup guide

hi all! We've got instructions on our guide on how to use a Cloudflare hosted DNS with the gateway and serve up an IPNS site from Fission. LMK if this looks OK.

Hi @bmann, Thanks for the PR.
It looks good for me.


Takes base directory from most recently modified file, not first file

The README says that the output file "will take the base directory from the first file that passes through it".
In practice, the output file takes its base directory from the most recently modified file that passes through it, not the first one.

It looks like that is only the case if the file passed in is a string and not a Vinyl File Object. In the second case, it appears that both latestMod and latestFile (except for a check for no matching files) are ignored.


CUDA_VISIBILE_DEVICES not functioning

I saw error message when I am trying to do supervised fine tuning with 4xA100 GPUs. So the free version cannot be used on multiple GPUs?
RuntimeError: Error: More than 1 GPUs have a lot of VRAM usage. Please obtain a commercial license.

Oh currently Unsloth does not support multi GPU sorry - our enterprise plans have them for now - we're currently concentrated on adding Ollama, Llama-3 bug fixes, all model support and more in the OSS

@danielhanchen Is there a way to run Unsloth on only 1 GPU when I have a 2 GPU Node? I get the same error and I want to use only 1 GPU as the model easily fits on it?
I tried
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

But it did not work

Export it via shell before running the python script

Yep you have to set the env variable before running Unsloth

Setting the env variable before running Unsloth still does not resolve the problem.
Used: export CUDA_VISIBLE_DEVICES=0 but it still comes up with the error:
RuntimeError: Error: More than 1 GPUs have a lot of VRAM usage. Please obtain a commercial license.
Also used: export CUDA_VISIBLE_DEVICES=1 but same problem.

@danielhanchen  I am confused
Kindly help.
The error is asking to get a commercial licence.
@miary what GPUs are you using and are they already running another job?

@danielhanchen I have 2 GPUs, both RTX 3090. This runtime error about more than 1 GPU is a brand new issue that came from Unsloth 2024.6.
I have a project that is using Unsloth 2024.5 and it works just fine.
It is completely fine is Unsloth wants to charge for environment with more than one GPU. However, the option should be given to use only one GPU, which is what setting the CUDA_VISIBLE_DEVICES env is supposed to do, but it's apparently broken. Looks like a really bad bug because it breaks the entire project.

Hmm I shall investigate this hmmm

I am using python script and had the same issue while trying to run on GPU 1 (if i set the code to have visibility only on GPU 0 it works fine).
I am using this as the first lines in my main code:
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
os.environ["GRADIO_SHARE"]="1"
os.environ["WORLD_SIZE"] = "1"

@Chirobocea So do you use python train.py or like torchrun?

Usually I use python train.py. However, I just tried to lunch it with torchrun and it has same issue.
Also I checked with the debugger that torch indeed sees only one gpu, which is renamed for the running code to id 0, while in the loading process of the model it takes VRAM only from GPU 1 as expected (from nvidia-smi).

Ok thanks for the info! Running in runpod to see what I can do! :)

@miary @Chirobocea @aflah02 Just fixed it! Hopefully it now can work! Apologies on the issues! Please update Unsloth via
pip uninstall unsloth -y
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git

RuntimeError: Error: More than 1 GPUs have a lot of VRAM usage. Please obtain a commercial license.
Thanks for all your work, btw! Killer project!
==((====))==  Unsloth - 2x faster free finetuning | Num GPUs = 1
\   /|    Num examples = 1,029 | Num Epochs = 1
O^O/ _/ \    Batch size per device = 2 | Gradient Accumulation steps = 4
\        /    Total batch size = 8 | Total steps = 30
"-____-"     Number of trainable parameters = 41,943,040
Traceback (most recent call last):
File "/home/matto/projects/baby-code/workspace/unsloth-orpo.py", line 128, in
orpo_trainer.train()
File "/home/matto/miniconda3/envs/unsloth_env/lib/python3.10/site-packages/transformers/trainer.py", line 1885, in train
return inner_training_loop(
File "", line 226, in _fast_inner_training_loop
RuntimeError: Error: More than 1 GPUs have a lot of VRAM usage. Please obtain a commercial license.

Can confirm it does not occur with unsloth-2024.5 but does at unsloth-2024.6
If necessary, one can downgrade via:
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git@f9689b1

@molander Do you know if my latest fix fixes stuff?

@danielhanchen no, as soon as I uninstall and pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git, it comes back :(

@miary @Chirobocea @aflah02 Just fixed it! Hopefully it now can work! Apologies on the issues! Please update Unsloth via
pip uninstall unsloth -y
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git

This patch did not solve the problem. Same error:
RuntimeError: Error: More than 1 GPUs have a lot of VRAM usage. Please obtain a commercial license.

Hmmm weird I tried it in runpod with 4x GPUs and it worked - I shall re try fixing this! Sorry everyone on the issue!

@miary @molander I updated the package again! Apologies on the issues!
I found the below to work (change 1 to any device id)
export CUDA_VISIBLE_DEVICES=1 && python train_file.py

Likewise torchrun also works with that approach.
Hope this works! Thank you for your patience!

@miary @Chirobocea @aflah02 Just fixed it! Hopefully it now can work! Apologies on the issues! Please update Unsloth via
pip uninstall unsloth -y
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git

I tried this one hour ago and checked.
It seams that the main problem is when I have something running on other GPU as well.
For example if i have another code with another env on GPU 0, I can't run unsloth on GPU 1.
The error is the same as before.

Confirmed not working as intended. Nothing going on GPU = 1, will not run, even though Num GPUs shows as 1 in Unsloth banner below.
But on GPU = 0, after I closed everything but Xorg, it worked.
So, it would appear at first glance, it must use GPU0 in which case, you have a legitimate workaround, ticket closed, back to the real work ;)
Thank you for open-sourcing. I know that it takes big balls, and I assure you, it's worth it all the way around ;)
max_steps is given, it will override any value given in num_train_epochs
==((====))==  Unsloth - 2x faster free finetuning | Num GPUs = 1
\   /|    Num examples = 1,029 | Num Epochs = 1
O^O/ _/ \    Batch size per device = 2 | Gradient Accumulation steps = 4
\        /    Total batch size = 8 | Total steps = 30
"-____-"     Number of trainable parameters = 41,943,040

@miary @molander I updated the package again! Apologies on the issues!
I found the below to work (change 1 to any device id)
export CUDA_VISIBLE_DEVICES=1 && python train_file.py

Likewise torchrun also works with that approach.
Hope this works! Thank you for your patience!

@danielhanchen  Just wanted to confirm that your patch by including export CUDA_VISIBLE_DEVICES=1 works!!! Thanks for all the good work, greatly appreciated!

@miary Great it worked!
@molander Thanks glad it's a workaround - I'll see what I can do.  So export CUDA_VISIBLE_DEVICES=1 && python train_file.py still does not work? Do you use torchrun or python or accelerate?

@danielhanchen Good to go here! I made a new conda env and conda installed pytorch, transformers, etc and it's working like a mule at the grand canyon! Thanks!

Thanks @danielhanchen!!

Hi @danielhanchen,
I'm experiencing a similar issue. I want to load Llama3 on two separate A6000 GPUs. When I set CUDA_VISIBLE_DEVICES to "0,1", it works fine on CUDA0. However, when I try to load the model on CUDA1 and generate responses, it fails. Any suggestions on how to resolve this?

This still isn't working for me. @danielhanchen can you please remove the exception if more than one GPU has 4GB of memory usage?
@molander Did you do anything custom on your end? Looking at the main branch, the code is still there.

I'm on a node with multiple GPUs, but I only have one in CUDA_VISIBLE_DEVICES.
The issue I'm having is with this line in the patch_sft_trainer_tokenizer() function of tokenizer_utils.py:
https://github.com/unslothai/unsloth/blob/933d9fe2cb2459f949ee2250e90a5b610d277eab/unsloth/tokenizer_utils.py#L962
The check for multiple GPUs here is really a count of how many GPUs on the node are using > 4gb of memory. This is going to fail for anyone on a busy shared node.
I removed that check, and a similar check in llama.py:
https://github.com/unslothai/unsloth/blob/933d9fe2cb2459f949ee2250e90a5b610d277eab/unsloth/models/llama.py#L1198
Then I was able to run unsloth on my node.

Much much apologies on the delay! My brother and I just relocated to SF, so just got back to Github issues!
As per the discussion here, I will instead convert it to a warning for people to say Unsloth is not yet functional for multi GPUs, and  will still allow the finetuning process to go through (esp for shared servers)

As requested, I made it into a warning instead and not an error :) Please update Unsloth and try it out! Hope it works now!
pip uninstall unsloth -y
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git

Same error in
Name: unsloth
Version: 2024.8

script:
export CUDA_VISIBLE_DEVICES=0 && python naive_train.py --model gemma_2b --dataset alpaca_gpt4 --lora

As requested, I made it into a warning instead and not an error :) Please update Unsloth and try it out! Hope it works now!根据要求，我将其设置为警告，而不是错误:)请更新 Unsloth 并尝试一下！希望它现在有效！
pip uninstall unsloth -y
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/unslothai/unsloth.git

Also tried this :(

Oh no it still doesn't work? I'll look into it sorry

Same issue.

I have to apply @vvatter's fix on latest version to bypass the runtime error.

any updates?

I'm on a node with multiple GPUs, but I only have one in CUDA_VISIBLE_DEVICES.
The issue I'm having is with these lines in the patch_sft_trainer_tokenizer() function of tokenizer_utils.py:
https://github.com/unslothai/unsloth/blob/933d9fe2cb2459f949ee2250e90a5b610d277eab/unsloth/tokenizer_utils.py#L961-L970
The check for multiple GPUs here is really a count of how many GPUs on the node are using > 4gb of memory. This is going to fail for anyone on a busy shared node.
I removed that check, and a similar check in llama.py:
https://github.com/unslothai/unsloth/blob/933d9fe2cb2459f949ee2250e90a5b610d277eab/unsloth/models/llama.py#L1198-L1207
Then I was able to run unsloth on my node.

This solution works for me.


test watcher e2e

This PR mainly fixed watcher e2e test by removing envTest CRD overwrites, which will remove the conversion webhook in CRD definition, which makes kyma CR not convert as expected.
It also refactoring exists test cases.

/test pull-lifecycle-mgr-build

/test pull-lifecycle-mgr-tests

/test pull-lifecycle-mgr-tests

/test pull-lifecycle-mgr-lint


canopy-lite

check it yo:
canopy-lite.zip
Basically an xcopy install of canopy (no VS required). You could probably package Atom+Ionide with it too.

It would also be cool to package an electron app that helps with css selector finding and test creation (QA/xcopy centric).

That would be cool, but would require me to dive deeper into the js ecosystem =(.  JS knowledge tends to have an incredibly short shelf life =*(

What about w/o that. Working codifying canopy-lite?

Updated canopy-lite:
canopy-lite.zip


[CI] goveralls send fails in forks

submit coverage step of GitHub actions build pipeline fails in fork because of the empty COVERALLS_TOKEN env variable. Error message:
flag needs an argument: -repotoken

Possible solution: we can skip this step if this variable is not set.

well, this not supposed to work in fork as fork is your own repo. If you want to submit coverage report you should link coveralls to yout repo and set secret COVERALLS_TOKEN

oh, I see what you mean. This faild not on the fork but on updated PR

For context: this is the build of PR code in this repo which failed.

I think this is some security-related limitation and PR can't access secrets in actions. Will be nice if you can investigate the issue and offer a solution or at least a workaround. Maybe @Smolevich can help with this
re: #433

From Docs:
secrets are not passed to the runner when a workflow is triggered from a forked repository.

I think that @paskal can enable sync with fork repo in coveralls.io and add pass its repo token in secret. Or skip this step, but looks like as nice solution

@Smolevich it makes some sense I guess. Can you exclude the step publishing report, based on this (forked or not?) Maybe we can allow this step to fail, which also should do it

one more thing - on Travis we were able to publish coverage on PR requests and this info was useful. I.e. we could see if PR decreased coverage. Is this possible to do with actions somehow?

@Smolevich it makes some sense I guess. Can you exclude the step publishing report, based on this (forked or not?) Maybe we can allow this step to fail, which also should do it

Maybe use this mechanism

could be, can you PR with that if pls?

For context, I believe the problem is not solvable at the moment.

Wondering, how the official coveralls thingy supposed to work on PRs? https://github.com/marketplace/actions/coveralls-github-action

Interesting question, I found a PR with coveralls plugin which successfully completed sending data to coveralls.
The difference between their file and ours:
-        with:
-          github-token: ${{ secrets.github_token }}
-          parallel: true
+      env:
+        COVERALLS_TOKEN: ${{secrets.COVERALLS_TOKEN}}

@Smolevich I wonder if we can switch to this with syntax, it seems that it doesn't have a restriction of env which is mentioned by link I provided previously.

with syntax is for plugins, or whatever those container called on gihub actions. Probably if we wrap goveralls into this thing it may help

I'll try to create a GitHub action for goveralls, I think it wouldn't be too complex.

If https://github.com/umputun/remark/pull/465 wouldn't help then GitHub action won't help as well. The magic part of coveralls plugin above is not the syntax but GITHUB_TOKEN usage.

is goverals even make use of GITHUB_TOKEN ?

a few days ago I played with the idea of using their action directly by converting coverage in a separate stage, see https://github.com/umputun/remark/blob/8494296b8588a6602e7dbd6798d52c469361a118/.github/workflows/ci-build.yml#L53
Probably it should work fine in PR (you can try in yours) but unfortunately, gcov2lcov is kind of odd and excludes branches too aggressively. For example if we have code like this:
if err := blah(foo, bar); err != nil {
  something we never reach
}

It will mark everything, including if itself as not covered. This is odd, unusual and confusing to someone reading the coverage report


Fixed #33338 -- Document and test that @never_cache set Expires header.

Full title and issue link: Document that @never_cache and add_never_cache_headers() set the Expires header.
I wrote the documentation based on a link I found in staticfiles.txt: https://developer.yahoo.com/performance/rules.html#expires and the docstring in the http_date method
Please let me know any changes needed, thank you.

@mgaligniana Thanks :+1: I moved tests to a separate commit, and pushed small edits to docs. What do you think?

Great, totally agree! Thank you!


Error messages non-descriptive

Usually an error message is just "empty grammar". This might not be such an easy problem to tackle though.

Currently error messages are straight from Aeson which doesn't have very interesting error reporting. It'd be really useful to have good error reporting especially as we have the whole grammar available. I looked into this in the previous version of JsonGrammar, but it was really difficult there as I didn't have a deep embedding.

Note that this error message cNote that this error message comes from JsonGrammar, when it fails to parse the Value yielded by aeson.  I've also had issues with this being uninformative.
I had an initial swing at adding error context: https://github.com/mgsloan/JsonGrammar2/commit/f952cca5c357089f585f0101012e531fa7c2d38c
However, I've found that in practice this is nearly useless, because attoparsec has no way to fail in a way that prevents backtracking.  So, I always just get the "empty grammar" message with the label of the top level type being parsed.
So, I believe in order to add this, attoparsec would need to support failure without backtracking, and JsonGrammar would need a new constructor in Grammar exposing this capability.omes from JsonGrammar, when it fails to parse the Value yielded by aeson.  I've also had issues with this being uninformative.
I had an initial swing at adding error context: https://github.com/mgsloan/JsonGrammar2/commit/f952cca5c357089f585f0101012e531fa7c2d38c
However, I've found that in practice this is nearly useless, because attoparsec has no way to fail in a way that prevents backtracking.  So, I always just get the "empty grammar" message with the label of the top level type being parsed.
So, I believe in order to add this, attoparsec would need to support failure without backtracking, and JsonGrammar would need a new constructor in Grammar exposing this capability.


Change example on http://andreruffert.github.io/rangeslider.js/ to use data-selector instead of input selector

This selector
$('input[type="range"]').rangeslider();

fails in IE8 and 9
I think you should update your example usage to use a data-selector like:
$('[data-range]').rangeslider();
<input type="range" data-range>

So that your example usage works out of the box in IE8 and 9
Thanks!

Not sure what you mean...
It shouldn't be a problem to use a $('input[type="range"]') selector also in IE8 or IE9.
Tested this CodePen on IE8 Windows XP without any issues.

Ahh, you're right.
The issue comes up when you programatically add the input (with innerHTML or appendChlid)
When doing it this way, the IE parser strips the type="range" which will make the subsequent selector fail.
So it might still be good advice to use a data attribute (or a class) as the selector in your example usage - it would have saved me 5 minutes atleast :P

✅


[Merged by Bors] - ballots, tortoise: track malicious ballots and ignore them in tortoise

this is basic security validation. ballots with duplicate eligibility must be ignored.
we still store all of them in db and gossip to the network, so it leaves network vulnerable to trivial ddos.
Closes https://github.com/spacemeshos/go-spacemesh/issues/2999
Changes

extend ballot type to track if it is malicious
set ballot to malicious if identity is malicious
identity is malicious if there are at least 2 ballots from it in the same layer
tortoise doesn't count malicious ballots
tortoise doesn't use malicious ballots as a base ballot

i think i have more questions than answers.
the big thing from me is that without the higher level picture, it's difficult for me to agree that mesh DB is the right place to mark an identity is malicious. can we have a more complete discussion with research before doing this change?

the big thing from me is that without the higher level picture, it's difficult for me to agree that mesh DB is the right place to mark an identity is malicious. can we have a more complete discussion with research before doing this change?

mesh db is an obsolete component. i don't think that it makes sense to postpone this change. so if someone will unblock it i will merge. we can have discussion afterwards

mesh db is an obsolete component. i don't think that it makes sense to postpone this change. so if someone will unblock it i will merge. we can have discussion afterwards

the logic is encapsulated inside a database transaction. i don't think it's obsolete. i just think it's the wrong component to handle it (too low level).

the logic is encapsulated inside a database transaction. i don't think it's obsolete. i just think it's the wrong component to handle it (too low level).

meshdb became a simple proxy to sql functions. pretty clear to me that it is obsolete. my intention for transactions was exactly cases like that, i don't understand how is that low level...

the logic is encapsulated inside a database transaction. i don't think it's obsolete. i just think it's the wrong component to handle it (too low level).

meshdb became a simple proxy to sql functions. pretty clear to me that it is obsolete. my intention for transactions was exactly cases like this, i don't understand how is that low level...

fine. remove meshdb. my point is that the logic of marking an identity is encapsulated inside a sql db transaction is too low level for me.
my imagination is that there is a component in spacemesh, say blacklister that takes care of this logic for determining malicious behavior and saving proof. specifically for this PR, i'd prefer

gossip handler provides notify blacklister of this suspicious behavior
blasklister gather evidence and mark an identity as malicious and save the evidence, gossip the maleficence proof
other components, tortoise/hare/beacon, then can check whether an identity is malicious and act accordingly in each round

my imagination is that there is a component in spacemesh, say blacklister that takes care of this logic for determining malicious behavior and saving proof. specifically for this PR, i'd prefer

atomicity of ballot/identity status write is important for crash safety. what you described is not crash-safe. also, i disagree with coordination that e.g. tortoise should go to that component.. tortoise should act just based on stored or passed data.
and in general i don't see why such component is necessary. every sub-protocol will have its own rules for malicious behavior, and they can operate on data using sql functions. why would i want to create a component that will handle that instead of handling each malicious behavior separately?

and in general i don't see why such component is necessary. every sub-protocol will have its own rules for malicious behavior, and they can operate on data using sql functions. why would i want to create a component that will handle that instead of handling each malicious behavior separately?

i disagree each component handle its own malicious behavior separately. are you saying that we will have different identities table for it to remember its own malicious public keys? and when asked to provide proofs, we exhaustively ask each component to provide? i find that design tedious.

just for reference, even without sql db the write needs to be atomic and would have to be made with write batch. so moving logic to some component is not an option in my opinion. maybe there is some complex way to make it robust, but i don't see it.

the writes can still be atomic, if you pass the database transaction object btwn components. each component will have DB/sql logic anyway. this doesn't seem too far-fetched.

i disagree each component handle its own malicious behavior separately. are you saying that we will have different identities table for it to remember its own malicious public keys?

they will use the same identities table.

and when asked to provide proofs, we exhaustively ask each component to provide?

the proof is very vague definition. i don't think that there will be a generic proof for anything. for instance in this case the proof is any two ballots, there is no need for additional gossip message type or anyting.

the writes can still be atomic, if you pass the database transaction object btwn components. each component will have DB/sql logic anyway. this doesn't seem too far-fetched.

this won't work. if sqlite transaction is in effect it will lock the database, transactions must be short living and it will be impossible to enforce within multiple modules.

let's imagine now we need to handle malicious ballot (A) and malicious node that gossip about no-existing data (B).
how do you plan to differentiate the two?

they will use the same identities table.

how do i track down why an identity is marked malicious?

actually, after some thought, the proof will be always some existing type that preserves the original signature - so there will be no need to generalize it.

right. but same question applies. how do we know why an identity is marked malicious?

this won't work. if sqlite transaction is in effect it will lock the database, transactions must be short living and it will be impossible to enforce within multiple modules.

i don't understand the module boundary. will it work with multiple methods in the same file? how about a callback provided by the blacklsiter?
in any case, i don't intend to argue about implementation. i am more interested in how to investigate why an identity is marked malicious and how to provide proof from a high level design.

let's imagine now we need to handle malicious ballot (A) and malicious node that gossip about no-existing data (B).
how do you plan to differentiate the two?

but those two are completely separate use cases, identities for them are not shared at all. one is p2p identity and another smesher. they are should not be mixed anywhere

how do i track down why an identity is marked malicious?

when do you think it will be needed? for auditing? we can just attach additional info when identity is marked malicious, but i don't see why it is needed.

i don't understand the module boundary. will it work with multiple methods in the same file? how about a callback provided by the blacklsiter?

it should be obvious that when transactions are initiated (the first operation occurred) there should be no mutexes or io in the code path, otherwise it will be too error-prone and lead to multiple unexpected failures.

had some time to think about other cases:

in hare or beacon if the same identity votes differently for a proposal it can be considered as malicious
if identity outputs more than one reference ballot and changes beacon

in 1st case we will need to have a place to store those proofs, and the proofs will probably given to a peer. in cases where ballots are itself is a proof we don't need to change anything in sync or gossip.

note that i am not objecting to this PR as the first step, i am requesting that the devs collectively have a plan regarding how the code should deal with malicious behavior before any specific fixes are made.
my reading from your response is that you want to do a localize thing that node itself knows about this malicious smesher but not share. my preference is to have a more complete plan on how to deal with malicious behavior in general before we add code for it. i don't see why this is more urgent than, say, preventing DDOS by sending us malformed ballots so don't understand why we should rush this change in without a general discussion.

let's imagine now we need to handle malicious ballot (A) and malicious node that gossip about no-existing data (B).
how do you plan to differentiate the two?

but those two are completely separate use cases, identities for them are not shared at all. one is p2p identity and another smesher. they are should not be mixed anywhere

to me they are related. whoever p2p identity gossiped this ballot to us, that p2p identity is just as malicious as the smesher that produced this ballot. maybe less likely since there is an element of timing involved. in the example you gave on voting multiple blocks within hdist, the p2p identity and the smesher that produced the ballot are both malicious.

let's say another "proof" is voting differently on the same block within hdist, again no need to encapsulate it in any special object.

right. but there is need to differentiate different kinds of malicious behavior. my thoughts are we need to define various types of bad acts and define the proof for each of them. in this PR, bad act will be reusing the same eligibility. the proof will be the two ballots IDs. in the case of "voting on multiple blocks within hdist", the proof will be the ballot ID that captures this bad act. the outcome of this could be whether we want to ban the p2p identity, the smesher, or both.

i can't speak in broader terms because this is not something that will be covered for mainnet.

i am not aware that we are NOT covering malicious behavior before mainnet.
a note on the atomicity. we don't need DB transaction to achieve this in this case.
let's say we do have component blacklister. when gossip handler realized that a ballot is suspicious, it calls a method on blacklister to scrutinize this ballot. blacklister then generates proofs and saves it to the DB atomically, then handler the proof to the gossip handler so it can act accordingly.
if you insist to merge this PR, i don't want to stand in the way either. the code itself LGTM.

my reading from your response is that you want to do a localize thing that node itself knows about this malicious smesher but not share.

i don't understand how it follows. the node will share ballots that it knows, if it knows about 2 ballots with the same eligibilities - the identity will be decided as malicious just by following the encoded protocol.

my preference is to have a more complete plan on how to deal with malicious behavior in general before we add code for it. i don't see why this is more urgent than, say, preventing DDOS by sending us malformed ballots so don't understand why we should rush this change in without a general discussion.

this is urgent in the sense that it is one of the few validations that we are missing for mainnet. because this is a basic security assumption, the other one is that the same nipost can't be reused for multiple atxs. if they are not implemented whole protocol is meaningless. we still have to deal with other things, by properly invalidating double voting in hare or beacon, but there is no requirement to implement any proofs for them.

DDOS by sending us malformed ballots

this is not proof of malicious behavior. we can blacklist p2p identity that shares irrelevant stuff, but it is not cryptographically verifiable, and nobody should believe us if we send a message saying that this p2p identity is malicious.

in this PR, bad act will be reusing the same eligibility. the proof will be the two ballots IDs.

but this is not the proof. the proof is the ballots themself. unless you mean something different by the proof. we can't just gossip ids and expect everyone to believe.

to me they are related. whoever p2p identity gossiped this ballot to us, that p2p identity is just as malicious as the smesher that produced this ballot. maybe less likely since there is an element of timing involved. in the example you gave on voting multiple blocks within hdist, the p2p identity and the smesher that produced the ballot are both malicious.

there is a significant difference. we can't proof that p2p identity is malicious to any other node in the network. the proof needs to be cryptographically verifiable. i don't think that it will always work the way you said. for instance some malicious ballots will have to be stored and propagated into the network. as you mentioned because of the timing/concurrency node can't just mark p2p identity malicious if it sends us a missing piece of information (like 2nd ballot with same eligibility).
in case if p2p identity sends syntactically invalid messages then we can determine with certainty that p2p identity is malicious, but we won't store any proofs.

let's say we do have component blacklister. when gossip handler realized that a ballot is suspicious, it calls a method on blacklister to scrutinize this ballot. blacklister then generates proofs and saves it to the DB atomically, then handler the proof to the gossip handler so it can act accordingly.

but if there are two concurrent ballots with the same eligibilities how exactly blacklister will do its job. i am not sure that i understand how it will work and why it will be safe. you definitely can do it without transactions, it just becomes much more complex problem.
also i don't understand what is meant by generating proof means. in this case there is nothing to generate

i don't understand why we should wait for a discussion with a research, what i said is not something new, and in my opinion doesn't require research involvement at this stage at all. things like separation of p2p malicious behavior and protocol malicious behavior were also discussed some time ago and solutions for them are different. protocol proofs will be implemented when research will describe them. but most of them are not mandatory for safety.

bors merge

but this is not the proof. the proof is the ballots themself. unless you mean something different by the proof. we can't just gossip ids and expect everyone to believe.

sure. i mean to store the IDs in local db, but when asked, compiled the ballots body as proof.

also i don't understand what is meant by generating proof means. in this case there is nothing to generate

by generating i mean creating the struct that will represent proof of a given bad act and store it locally in db. i don't mean to generate something cryptographically. my hope is to define the bad acts we will deal with instead of leaving all this discussion to the next person tasked to this, since i think we still need to do this before mainnet.

i don't understand why we should wait for a discussion with a research, what i said is not something new, and in my opinion doesn't require research involvement at this stage at all.

i didn't mention research. discussing with devs teams for me means involving Noam and Lane in the design and implementation.

i think we still need to do this before mainnet.

i don't understand why though. proofs, such as double voting in hare or beacon, are not critical for safety or correctness. it is just important to recognize such behavior during the execution of the protocol and prevent it from affecting result

i think we still need to do this before mainnet.

i don't understand why though. proofs, such as double voting in hare or beacon, are not critical for safety or correctness. it is just important to recognize such behavior during the execution of the protocol and prevent it from affecting result

i don't specifically mean proof. just like you said, to recognize such behavior, handle it cohesively, and record it for debugging purposes.


Changes for layout and proposed 1.0 changes.

Pull out framing into own section.
Move StreamID to start RS Header.
Reduce size of frame length, frame type, flags, and metadata length.
Remove REQUEST_SUB.
Add resume fields to SETUP and KEEPALIVE.

NOTE: Additional frame types for RESUME and RESUME_OK will be in separate PR that details the rest of resuming operation. The fields and frame types are mentioned here for completeness when resume is not used.

Please check for typos and errors specifically. Lots of changes.

@tmontgomery I will create a tag for 0.1 from master as it stands today. 0.2 branch has the change to remove request-subscription, should I pull it into master (after tagging)?

@NiteshKant we could. Or I just removed it anyway. Maybe close the old PR and go from this.

Scanned through, this will take a more focused sit-down review which I'll do as soon as I can.
Thank you very much @tmontgomery for submitting this.

@tmontgomery there are a few references to request-subscription  in FAQ.md and Motivation.md in the other branch but yeah I guess you can include them here too. I will leave it to you.

@NiteshKant ah. I didn't edit anything but the spec.

I suggest we merge and then make further revisions in small PRs. Most things have been fixed I think.
Otherwise this will become very unruly.

Discuss with Todd. Merging so we can move forward. Can always revert if needed but would rather start working on smaller diffs.


RDKDEV-438: DisplayInfo: Implement displayinfo_hdr_tv_capabilities() function

The displayinfo_hdr() function from ThunderClientlibraries calls HDRSetting() function of DisplayInfo to check the HDR TV support. But, HDRSetting() was intended to report on current HDR format in use rather than check if TV supports HDR or not.
So, with this PR a new function displayinfo_hdr_tv_capabilities() and its depended function TvHDR() is also implemented. This function must be used to check for TV/sink's HDR capability instead of displayinfo_hdr().
In this way we can have displayinfo_hdr() keep reporting on current HDR and displayinfo_hdr_tv_capabilities() reporting on TV HDR capabilities.
Changes from version1(https://github.com/rdkcentral/ThunderClientLibraries/pull/177) -> version2

Modified as suggested here:https://github.com/rdkcentral/ThunderClientLibraries/pull/177#discussion_r1049360870

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 3 files pending identification.


Update README.md

Fix typo in url

Coverage remained the same at 94.8% when pulling 955cf928d5b75f522a886738c36c834194cf0b16 on linchus:patch-2 into 9922865bb29506ef8a16825293c60a433d29be4b on SchemaPlus:master.

Coverage remained the same at 94.8% when pulling 955cf928d5b75f522a886738c36c834194cf0b16 on linchus:patch-2 into 9922865bb29506ef8a16825293c60a433d29be4b on SchemaPlus:master.

Coverage remained the same at 94.8% when pulling 955cf928d5b75f522a886738c36c834194cf0b16 on linchus:patch-2 into 9922865bb29506ef8a16825293c60a433d29be4b on SchemaPlus:master.

oops -- thanks!


bevy_scene: Add ReflectBundle

Objective
Scenes do not currently support spawning entire bundles. This means that in order to simulate spawning a bundle, one must include all components within that bundle.
Given the following bundle:
#[derive(Reflect, Bundle)]
struct MyBundle {
  a: ComponentA,
  b: ComponentB,
  c: ComponentC,
  d: ComponentD,
  e: ComponentE,
  f: ComponentF,
  g: ComponentG,
}

We must then include the following in our scene file:
[
  {
    "entity": 0,
    "components": [
      {
        "my_crate::ComponentA": {
          "foo": "Hello World"
        }
      },
      {
        "my_crate::ComponentB": {}
      },
      {
        "my_crate::ComponentC": {}
      },
      {
        "my_crate::ComponentD": {}
      },
      {
        "my_crate::ComponentE": {}
      },
      {
        "my_crate::ComponentF": {}
      },
      {
        "my_crate::ComponentG": {}
      }
    ]
  }
]

We only needed to specify data for ComponentA. All other components in the bundle could have just as easily been left out since we didn't have to specify anything for them (or perhaps they're just markers).
Solution
Add ReflectBundle to allow scenes to spawn complete bundles.
With this change, we can now update our example bundle:
#[derive(Reflect, Bundle)]
#[reflect(Bundle)]
struct MyBundle {
  a: ComponentA,
  b: ComponentB,
  c: ComponentC,
  d: ComponentD,
  e: ComponentE,
  f: ComponentF,
  g: ComponentG,
}

And add a bundles section to our scene files:
[
  {
    "entity": 0,
    "components": []
    "bundles": {
      "a": {
        "foo": "Hello World"
      }
    }
  }
]

Much nicer!
Considerations
There are some caveats to this system we might need to consider:

The bundles field will never be serialized by the DynamicScene serializer. This could be confusing to users who expect it to serialize. The problem is, we don't have a great way of knowing whether every necessary component exists to create a valid bundle and not lose any information. So for now it's a manually-written/deserialize-only feature.
Now that Components also implement Bundle, it would be possible to register a ReflectBundle for a component. If this is done, then applying the "bundle" will result in each field of the component being inserted onto the entity. This is obviously not good. However, there's not a good way of knowing whether a Bundle is only a component or not. If we could add a Bundle::IS_COMPONENT constant or something, it might be possible to throw an error when attempting to create a ReflectBundle for a component.

Changelog

Added ReflectBundle
Added bundles field to DynamicEntity

Allows a bundles map to be optionally included per entity in scene files

First: I do think we need something functionally similar to this! Being able to specify a "logical group" of entity configuration and only specify components with non-default values is an important step for the scene system / this has always been the plan.
However this is controversial as its starting to encroach on "prefab space" and the concerns outlined in the "Components as Bundles" conversation: https://github.com/bevyengine/bevy/issues/2974#issuecomment-1029473497, where we agreed that Bundles should just be "simple groups of components" (at least for now).
The main question is:
Will we support Bundles in scene editing scenarios? Supporting 3 concepts seems like too many:

Bundles (groups of components)
Prefabs (groups of components defined in code with arbitrary add/remove logic and probably  the ability to spawn nested entities)
Scenes (arbitrary collections of entities / components / prefabs / bundles / nested scenes defined as an asset)

Will Bundles "become" prefabs? Is this even technically feasible? (this would require a number of internal changes to bevy_ecs / break existing assumptions). Does that mean components are also prefabs?

However this is controversial as its starting to encroach on "prefab space" and the concerns outlined in the "Components as Bundles" conversation: #2974 (comment), where we agreed that Bundles should just be "simple groups of components" (at least for now).

Makes sense, I don't have an issue with marking this as controversial.

Will we support Bundles in scene editing scenarios? Supporting 3 concepts seems like too many:

Bundles (groups of components)
Prefabs (groups of components defined in code with arbitrary add/remove logic and probably  the ability to spawn nested entities)
Scenes (arbitrary collections of entities / components / prefabs / bundles / nested scenes defined as an asset)

Will Bundles "become" prefabs? Is this even technically feasible? (this would require a number of internal changes to bevy_ecs / break existing assumptions). Does that mean components are also prefabs?

Yeah there are a lot of vaguely similar concepts that are liable to confuse users. Each one kinda blends into the next (especially when coming from something like Unity or another engine).
I don't think bundles should be prefabs, but they definitely can be viewed that way. They encapsulate a set of components, can define data for those components (think constructors or Default impls), and can even be "composed" to an extent (for components, not entities).
So in my eyes, and I'm sure others, bundles are prefab-like. The main differences[^1] are that they don't provide any other prefab-related functionality and they don't really "exist" in the world (as they're just sugar for a group of components[^2]).
And the same could be said for components (they're basically just a bundle with one item).
All that to say, I think we could go ahead with ReflectBundle.
My arguments for it:

As mentioned above, users might already be treating bundles as crude prefabs, and might see bundles-in-scenes as the logical next step
Prefabs are still in development and this benefits people now while they wait (assuming they ship with serialized asset formats)
The scene format is young and can expect to have lots of changes made to it, so we shouldn't be afraid to add/remove features as the rest of the scene/prefab story improves

My arguments against it:

This might confuse users who think bundles are actually prefabs when they're not, thus making future efforts to distinguish the two possibly a little more difficult
Because bundles don't really "exist", we can't serialize an entity with all its bundles (not without a few assumptions anyways) which could add to the confusion
While I do think we should be flexible with the scene format while we figure things out, I'm confident prefabs will come at some point. If they're expected within the next release or two, then maybe its better to just wait
And sorta like what you mentioned, adding ReflectBundle could put certain limitations on the bevy_ecs side of things that we're not fully aware of

[^1]: I could be wrong in my understanding of what prefabs are according to Bevy so these "differences" might not actually be true or slightly off base.
[^2]: I'm sure one of the ECS devs is screaming something about archetypes at me haha

@MrGVSV maybe we can have ReflectBundle without affecting scenes? Like ReflectComponent, could be useful for networking.
For example, I working on a life simulation name and I would like to send families over the network. I having static HumanBundle, AlianBundle, etc. And it would be great to be able to just send Box<dyn Bundle> to insert it easily.

Backlog cleanup: closing due to inactivity, and because it seems like once bsn! lands this may not be quite as relevant? (If I've misjudged that, please let me know!)


Screen buffer size settings.

Description of the new feature/enhancement

Both PowerShell and Command Prompt support having a buffer with a height much larger than the window. This allows for the user to scroll such that the prompt is not stuck at the bottom of the window. Could WT either get a similar setting or something else that allows the user to scroll past the end bottom of the prompt?

vs

Thanks for the suggestion! I think what you're asking for is going to be best served by /dup #8623. It won't let you scroll the whole length of the buffer, but it'll let you scroll ~one screenful forward, so that the last line of text is on the first row of the viewport.
Thanks!


Member filter/成员过滤器

Allow users to filter members to be displayed.
Moreover, api requests should match this option.

Passing filter params in api requests may make the request body extremely large so this filter is now applied to be a reducer after all lives have been returned.

Implemented in af43c060.


Fixed process creation to support Python version > 3.6

Added an option to make the replay buffer synchronous in asynchronous mode. Setting the argument "async_buffer" to false makes the replay buffer synchronous. The update remains asynchronous.
Currently, for asynchronous mode, the asynchronous replay buffer and the asynchronous update processes are created inside the SACRADLearner class constructor. Python > 3.6 does not support the creation of multiple processes inside a constructor. Moved the code to create the asyncrhonous replay buffer process inside the _async_update function in SACRADLearner. This solves the incompatibility issue of relod with Python > 3.6 versions.

[ ] Merge fahim's fix
[ ] Refactor code for simpler usage


How to rollback default driver after Zadig??

After installing driver gamepad detected by windows 10 have control panel but buttons and triggers doesn't work at all

windows device manager (win+x), delete wireless controller in sound [...] devices, uninstall.

thanks @sirjeannot


Unit Test Failure on WMB

https://github.com/numaproj/numaflow/actions/runs/6386169475/job/17332342103?pr=1131
Update: can't reproduce....

We do not see this anymore.


Please consider fixing issues detected by repository checker

Notification from ioBroker Check and Service Bot
Dear adapter developer,
I'm the ioBroker Check and Service Bot. I'm an automated tool processing routine tasks for the ioBroker infrastructure. I have recently checked the repository for your adapter gsmsms for common errors and appropiate suggestions to keep this adapter up to date.
This check is based the current head revisions (master / main  branch) of the adapter repository
Please see the result of the check below.
ioBroker.gsmsms
   -
ERRORS:

[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,sm,md,lg,xl] for checkbox at admin/jsonConfig.json/items/gsm/autoDeleteOnReceive
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,sm,md,lg,xl] for checkbox at admin/jsonConfig.json/items/gsm/incomingSMSIndication
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for text at admin/jsonConfig.json/items/portconnection/defaultrecipientnotifications
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for text at admin/jsonConfig.json/items/portconnection/pin
[ ] :heavy_exclamation_mark: [E507] missing size attributes [xs,xl] for text at admin/jsonConfig.json/items/portconnection/port
[ ] :heavy_exclamation_mark: [E510] responsive check: maximum issues reached, please fix reported ones and recheck

WARNINGS:

[x] :eyes: [W184] "common.materialize" is deprecated for admin >= 5 at io-package.json. Please use property "adminUI".

SUGGESTIONS:

[ ] :pushpin: [S523] "package-lock.json" not found in repo! Please consider to commit it to github repository.
[ ] :pushpin: [S526] Consider adding plugin "@alcalzone/release-script-plugin-manual-review".

Please review issues reported and consider fixing them as soon as appropiate.
Errors reported by repository checker should be fixed as soon as possible. Some of them require a new release to be considered as fixed. Please note that errors reported by checker might be considered as blocking point for future updates at stable repository.
Warnings reported by repository checker should be reviewed. While some warnings can be ignored due to good reasons or a dedicated decision of the developer, most warnings should be fixed as soon as appropiate.
Suggestions reported by repository checker should be reviewed. Suggestions can be ignored due to a decision of the developer but they are reported as a hint to use a configuration which might get required in future or at least is used be most adapters. Suggestions are always optional to follow.
You may start a new check or force the creation of a new issue at any time by adding the following comment to this issue:
@iobroker-bot recheck
or
@iobroker-bot recreate
Please note that I (and the server at GitHub) have always plenty of work to do. So it may last up to 30 minutes until you see a reaction. I will drop a comment here as soon as I start processing.
Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged.
And THANKS A LOT for maintaining this adapter from me and all users.
Let's work together for the best user experience.
your
ioBroker Check and Service Bot
Note: This issue replaces issue #16
@mcm1957 for evidence
Last update at Sat, 09 Nov 2024 15:54:23 GMT based on commit 15c2a00c19e0f0a18c593db1ba4e76644b879bff
ioBroker.repochecker 3.2.2

@iobroker-bot recheck

@iobroker-bot recreate


TRT Dynamic Reshape Fix

This PR fixes a bug in TRT dynamic reshape offload and adds test cases for coverage of the bug.

@trevor-m PTAL

@trevor-m Please re-review

Thanks @codeislife99 @trevor-m


Native M1 Binaries - Supported?

I tried installing Station but it seems that it's not provide native m1 binaries yet. will this be supported in the future?

Was having a look ay this as an alternative to Shift, but it's also Intel only... 👎

I'm also voting for Apple Silicon native support. Intel arch is deal breaker.


[radio] value is missing in radio button

radio button is missing a value attribute. This causes the radio button to be unchecked when the form is submitted.
if you add a value attribute to the radio button, it only reflects on the host rather than the control set to a radio role

the radio has the default value on when not explicitly set, and is properly sent on form submission

(although a radio should probably never be used outside of a radio-group anyway)

does the form submission include the checked radio button's value?

ok 👍


The total collateral field should be a Maybe Coin

The Babbage spec uses a Maybe Coin for the total collateral field of the transaction body, not a Coin, as is in the current implementation.
Using Nothing instead of zero to indicate that the total collateral field is not present in the transaction body is clearer and avoids edge cases.

@JaredCorduan Is there (will there be) a predicate check that when _totalCollateral is SNothing, then both _collateralInputs and _collateralReturn must be mempty?


Fontvalidator can not find font with special character

Fontvalidator can not find font with special character.
Here is an example:

Ass file: https://mega.nz/file/SxdA0RyI#0s-RTJlfyxns8r3hePgPawBFwOwV46_PYT5webvj0T4
Font file: https://mega.nz/file/S9ERDRpQ#bcPhS06kv-D5jt64aTNDbZVd6gZr6ZfJDYT91yYsoWk

On my Linux OS, the font name provided above is not Fjイーマ310 but FjÉCÅ[É}310 :/

assfc does not use fonttools which is the problem.

On my Linux OS, the font name provided above is not Fjイーマ310 but FjÉCÅ[É}310 :/
Edit: weird, using assfc, it's working

I tested with assfc. I have the same problem..

I informed my self.
The problem is not from FontValidator. It seems to be from fontTools.


Reset frozen timer when opening/closing segments

Accessing the eosTimer struct member from the message handler seems slightly iffy from a concurrency perspective, but I get we already do in the EOS message handler... The documentation for timer.Reset does mention that there is no guarantee that the timer handler won't run twice. Is it safe in this case?

Yeah it's safe. I also just updated all our channels with fuses (channel + sync.Once)


[REQUEST] Function to register a callback on a successful partial match

Change proposal
I would like the ability to register a callback function that gets called whenever there is a successful partial match of a specific part of the schema to the data.   This would look something like this:
ajv.on("JSON Pointer into Schema",function (schema, data, other...) {....});

Additional information:
Avj version: 6.5.4
The problem:
We are working on a W3C standard (see https://github.com/w3c/wot-thing-description) that requires an "implementation report" (see testing/report.html in that repo for a draft) that tallys what features are being used or not by a large number of JSON files.  Part of what makes this complicated is the fact that JSON Schemas are not official standards yet so we can't just provide the schema as a specification, but have to relate it to a bunch of prose assertions in the standard itself.   Each assertion defines a feature which is tested by some part of the schema.  What we want to do is match all our test files against a single (complex) schema and then use the callbacks to log which files are using what elements.
Alternative Not-Very-Good-At-All Solution
Our other option to solve our validation problem is to write a bunch of small schemas to test each feature separately but this has several problems:

There are numerous subfeatures, so it would be a huge amount of work
It would be a maintenance nightmare, as changes to the main schema would have to be propagated each subschema
We actually need to know not only whether a given file passes or fails, but whether it uses a given feature.  In other words, the result we need is three-valued, not boolean.

What do you think is the correct solution to problem?
Option 1: Callback
A callback that gets triggered for a partial match, as described above.   This could be an optional feature (eg needing to be turned on explicitly in the Options structure) to avoid slowing things down in the common case when it is not used.  Then a simple table-driven program could verify and report on all the subschemas in a single pass over each JSON file.
Option 2: Tabulated Results
It might also be possible to structure this like errors, logging results to an array that is accessed only after the validation is complete.  However, this would not be as flexible since it's unclear what data would need to be logged.  Obviously the location of the subschema and the validity of the match needs to be logged, and maybe the matching position in the data, both identified by a JSON pointer.  In this case a simple option to log ALL matches might be simplest; then the user would have to sort through the results to find what they want.  Alternatively, a set of sub-schema locations/ids could be given in an array (eg in an option) or via a set of function calls.
Will you be able to implement it?
Maybe... we are looking through the code base now.   We may attempt it, as modifying ajv looks to be less work than all our other options.  But ideally if we do invest the time it would be nice to see it upstreamed.
We did try using a custom keyword to trigger a callback but it does not do what we want, since those callbacks get triggered before the subschema has finished validation, not after.  It would also be nice to support this without having to add custom keywords to the schema or otherwise modifying it (although we could live with that if we had to).

Anyway, this is very similar  "match variables" in regular expressions ($1, $2, and the like) that let you extract parts that match, and would have a range of similar applications (eg to extract specific data from a JSON file, not just validate it).

@mmccool What you want seems  related to "annotations" collection process defined in draft-07 (ajv does not implement annotations collection): https://json-schema.org/latest/json-schema-validation.html#rfc.section.3.3.
This process may be required for draft-08 support as there will be added a validation keyword that will be dependent on the properties in subschemas that passed validation: https://github.com/json-schema-org/json-schema-spec/issues/602 (looks like it was bumped to draft-09 though).
Given that draft-08 seems to be going to define some standardised output formatting as well, it probably has to be addressed together.
It seems to me that what you need is annotations collection (your option 2).

Good point about the annotations, it does indeed look to be related.  The JSON spec for that also notes several complications to the implementation of this, namely dealing with "not" and failed branches of "anyOf", "oneOf", etc.   This also implies that to be compliant with draft-07 something like this will be necessary in ajv eventually.
I should note that my ideal solution to this would not add any additional keywords to the schema to mark "match" points, although we (eg the use case I cited) could live with that if it were necessary.   I also think the callback (option 1) would be more flexible, but logging (option 2) might make it easier to deal with "not" etc (post-processing of the log could be used to remove "negative" matches, perhaps).   In general even if there are call-backs, it would be OK to defer the calls until after processing has completed.

So I may have some time to work on this now.  As a first cut, I was thinking of just cloning how errors are handled when allErrors is turned on, except it should log things when a match succeeds, instead of when it fails.  This should give option 2, the logging approach, above.  Also, it seems to me that errors should also already be set up to deal with not, oneOf, etc. correctly already.

Annotation collection is optional in draft-07 but Indont mind it added according to the spec based on some option. It’s not a small change, particularly supporting it for various combinations of options and taking short-circuiting validation into account (there is some note on that in the spec).

Well, I'm not sure I need annotation collection as defined in the spec for what I'm doing.  I just need an "anti-error" log (eg a log of successful matches, rather than unsuccessful ones).  So that's what I'm going  to do... but it might be a useful first step to supporting annotation collection.

Re assertions, I don’t think we need full support as defined in the JSON spec.  The observation was just that a “match callback” (or log) would be useful for implementing them.
Regarding your idea: that might work, if such a schema could be written.  Would it be possible to write a tool that could read in a schema and write out an anti-schema?  Also: there is a “not” keyword supported in the spec (and by ajv).  Would an anti-schema simply involve putting a single “not” at the very top?
Basically, your idea is potentially useful, but we need a fast way to update the anti-schema when the schema changes.
(From: Michael McCool)
On Dec 20, 2018, at 11:16, Michael McCool <notifications<EMAIL_ADDRESS>wrote:
So I may have some time to work on this now. As a first cut, I was thinking of just cloning how errors are handled when allErrors is turned on, except it should log things when a match succeeds, instead of when it fails. This should give option 2, the logging approach, above. Also, it seems to me that errors should also already be set up to deal with not, oneOf, etc. correctly already.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/epoberezkin/ajv/issues/902#issuecomment-448833715, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ADiceOwESzNHhhM0KF7ISiyneVA6jbRPks5u6vLpgaJpZM4ZRSxa.

Btw, you could use $comment keyword - the hook it calls will need to be passed some extra parameters to expose the current validation state (e.g. errors collected so far and part of the data the schema was applied to), but it’s an easy change.

My schemas are auto generated and each type has a title attribute with the name of the type. I'd like to be able to use ajv to find out from a schema with anyOf between all these types which one matched to read its title attribute. Basically, from an untyped deep JSON object and a JSON schema, find out all the type names for each object.


Commenting out the flaky HystrixTest and HystrixPluginsTest until someone has time to de-flake them

See #368

Hystrix-pull-requests #241 SUCCESS
This pull request looks good

NetflixOSS » Hystrix » Hystrix-pull-requests #2 SUCCESS
This pull request looks good


elegant-sddm: init at unstable-2024-02-08

Description of changes
Add support for the Elegant SDDM theme.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I have tested it and it works fine on my system.

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

1 package built:

elegant-sddm

@GaetanLepage please stop requesting my reviews on random PRs.

@GaetanLepage please stop requesting my reviews on random PRs.

Sure. Sorry for that.

@ofborg build elegant-sddm

Thanks so much @drupol !