reason to use float to hold eval metric?

is there a particular reason to use float to hold eval results instead of double (saving memory?)?
I asked because I recently met a case that 6 digits after decimal is way too aggressive to determine it is time to early stop

Which metric were you using? BTW, I think certain metrics are not quite exact in distributed setting, see #4663, so I'm not sure it's worthwhile to use double precision.

@hcho3 I am using logloss

Was your dataset pretty big?

big and unbalanced

I can confirm me and my teammates have been affected by this issue. What is confusing is, even if it is using a float variable, it should be able to hold small values up to 1e-45. The current object seems not to be able to hold values smaller than 1e-6.
[320]	train-rmse:0.000028
[321]	train-rmse:0.000028
[322]	train-rmse:0.000028
[323]	train-rmse:0.000028

Looks like floating point error is accumulating in the sum. Look at https://github.com/dmlc/xgboost/blob/0e0955a6d83d35a32cbf3ddfaf6893171d1168ea/src/metric/elementwise_metric.cu#L45
The accumulator variable is a float32. You might be able to improve the accuracy significantly just by changing some of these intermediate variables to doubles.

But even with float32's, we should be able to have precision up to 1e-45. Currently, we seem to have a mysterious limit of 1e-6, and it is affecting not only the evaluation metric but also the objective. Here is a notebook that demonstrates this. Simply scaling the label array by 1e-10, the trained trees become root-only trees, and the eval metric goes down to 0: https://nbviewer.jupyter.org/github/gorkemozkaya/ds_debugging/blob/master/Precision issue of XGBoost.ipynb

Precision is not the same thing as the smallest possible value representable in float32. My point still stands, precision is being lost in intermediate calculations.

I looked a bit more closely, the digits past six are lost because xgboosts c_api returns a string to a fixed precision (https://github.com/dmlc/xgboost/blob/57106a345960d31c4f6df74912c1f0b7e2fa95b5/src/learner.cc#L451).
There are a couple of options for a fix:

Simply output the string at full precision (https://stackoverflow.com/questions/54370268/java-style-printing-of-double-in-c). This may be significantly less readable as the text will not be aligned when printing out eval metrics
Return floating point numbers directly from the C API and let the language bindings format the output when it comes to printing them. This way the early stopping mechanism in the language bindings can compare the metrics at full precision.

Probably we would have to do option 2 but it needs a bunch of refactoring.

@RAMitchell Indeed, the ideal method is to return structured data for metrics instead of returning a formatted string. Currently, Python and R wrappers parse the formatted string to extract individual metrics, essentially performing a round trip.

I like the JSON idea.

What's the difference between passing json instead of plain float?

@trivialfis The issue is that we have a key-value pair representing metrics and their name, e.g.
{ 'train-rmse': 0.35, 'test-rmse': 0.22 }

This is a perfect fit for JSON.
Currently, XGBoosterEvalOneIter() simply returns a string like
[0] train-rmse: 0.350000, test-rmse: 0.2200000

and the Python wrapper parses the string. IMHO, this feels like an ad-hoc representation of key-value data, and we're better off using JSON.

Thanks for the explanation, can we make changes to R, Julia and Ruby bindings?  I can handle the others ...

From: Philip Hyunsu Cho<EMAIL_ADDRESS>Sent: Thursday, September 19, 2019 11:05:50 AM
To: dmlc/xgboost<EMAIL_ADDRESS>Cc: Jiaming Yuan<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dmlc/xgboost] reason to use float to hold eval metric? (#4665)
@trivialfishttps://github.com/trivialfis The issue is that we have a key-value pair representing metrics and their name, e.g.
{ 'train-rmse': 0.35, 'test-rmse': 0.22 }
This is a perfect fit for JSON.
Currently, XGBoosterEvalOneIter() simply returns a string like
[0] train-rmse: 0.350000, test-rmse: 0.2200000
and the Python wrapper parses the string. IMHO, this feels like an ad-hoc representation of key-value data, and we're better off using JSON.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dmlc/xgboost/issues/4665?email_source=notifications&email_token=AD7YPKJO6UHURRAZJDPE6STQKLUA5A5CNFSM4ID43FF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7CBVVY#issuecomment-532945623, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD7YPKMZD6CNEEZW5GBJV6DQKLUA5ANCNFSM4ID43FFQ.

@trivialfis Let us create a new function XGBoosterEvalOneIterEx() that returns JSON, and then we can modify all bindings to replace XGBoosterEvalOneIter() with XGBoosterEvalOneIterEx(). We will then deprecate the old function XGBoosterEvalOneIter(). What do you think?

Sounds good.  It's on my to-do list now.  May not be able to get to it until finishing existing PRs.

From: Philip Hyunsu Cho<EMAIL_ADDRESS>Sent: Thursday, September 19, 2019 11:23:24 AM
To: dmlc/xgboost<EMAIL_ADDRESS>Cc: Jiaming Yuan<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dmlc/xgboost] reason to use float to hold eval metric? (#4665)
@trivialfishttps://github.com/trivialfis Let us create a new function XGBoosterEvalOneIterEx() that returns JSON, and then we can modify all bindings to replace XGBoosterEvalOneIter() with XGBoosterEvalOneIterEx(). We will then deprecate the old function XGBoosterEvalOneIter(). What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dmlc/xgboost/issues/4665?email_source=notifications&email_token=AD7YPKMLG5O2XN6I4RM5D73QKLWCZA5CNFSM4ID43FF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7CCODA#issuecomment-532948748, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD7YPKP33IJE2Y772GW5W63QKLWCZANCNFSM4ID43FFQ.

Another thing is, we might be able to handle early stoping inside c++.  If we do it this way we can handle the memory releasing issue.  Just something to think about.

From: jiaming yuan
Sent: Thursday, September 19, 2019 11:27:03 AM
To: dmlc/xgboost<EMAIL_ADDRESS>dmlc/xgboost<EMAIL_ADDRESS>Cc: Mention<EMAIL_ADDRESS>Subject: Re: [dmlc/xgboost] reason to use float to hold eval metric? (#4665)
Sounds good.  It's on my to-do list now.  May not be able to get to it until finishing existing PRs.

From: Philip Hyunsu Cho<EMAIL_ADDRESS>Sent: Thursday, September 19, 2019 11:23:24 AM
To: dmlc/xgboost<EMAIL_ADDRESS>Cc: Jiaming Yuan<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [dmlc/xgboost] reason to use float to hold eval metric? (#4665)
@trivialfishttps://github.com/trivialfis Let us create a new function XGBoosterEvalOneIterEx() that returns JSON, and then we can modify all bindings to replace XGBoosterEvalOneIter() with XGBoosterEvalOneIterEx(). We will then deprecate the old function XGBoosterEvalOneIter(). What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/dmlc/xgboost/issues/4665?email_source=notifications&email_token=AD7YPKMLG5O2XN6I4RM5D73QKLWCZA5CNFSM4ID43FF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7CCODA#issuecomment-532948748, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD7YPKP33IJE2Y772GW5W63QKLWCZANCNFSM4ID43FFQ.

Another thing is, we might be able to handle early stoping inside c++.  If we do it this way we can handle the memory releasing issue.  Just something to think about.

Let's discuss this in a separate RFC.


Linux ping sound issue fix

Pull request checklist:

[ ] CHANGELOG.md was updated, if applicable

Description
This change fixes an issue at least on Arch Linux where after a few pings, Chatterino will no longer play the ping sound.
The issue was that the QT player loses the buffer for the media, or the media has been lost.
My change makes sure that if the media is not loading, loaded, stalled, buffering, or buffered, then the media for ping sound will be set.

:smiley: :mega: I am merging this in tomorrow
Thank you @Greenlandicsmiley

it appears that QMediaPlayer::BufferedMedia state is only reached when 2nd notification start before previous finished playing, so current solution breaks runtime change of notification sound as it would require 2 overlapped notifications for setMedia() to happen and update sound.
Suggest to revert removal of currentPlayerUrl for now, and add check for BufferedMedia state
(currentPlayerUrl != highlightSoundUrl || player->mediaStatus() == QMediaPlayer::BufferedMedia)

as Pajlada said, qt6 heavily changed QMediaPlayer so it will be revisited soon ™

Suggest to revert removal of currentPlayerUrl for now, and add check for BufferedMedia state
(currentPlayerUrl != highlightSoundUrl || player->mediaStatus() == QMediaPlayer::BufferedMedia)

@kornes
Doesn't checking for QMediaPlayer::NoMedia replace currentPlayerUrl?
Because when NotificationController::playSound() and SharedMessageBuilder::triggerHighlights() are called for the first time, currentPlayerUrl will be empty, so therefore equivalent to QMediaPlayer::NoMedia, no?
Also @pajlada I forgot to implement the checking of when the ping sound is changed to a different audio file, so maybe hold the merge until there is a solution for that?
It might be a while though, because other than the changes i made, I do not have experience with C++ whatsoever.

All good, I'll hold

:smiley: :mega: I am merging this in this week - feedback time

Is this a fix for #2056?

Yeah so the title states Linux, which is very generic, I think this is more of an issue on Arch Linux, and seems like it is just Wayland.
I'm renaming the title to be more specific.

@Greenlandicsmiley Thanks for your contribution! As a first-time contributor, you can now add yourself to the contributors list that's shown inside the application.
To do so, open a new PR where you modify the resources/contributors.txt file and add yourself to the list. Make sure to read the comments at a top for instructions.


Override Baked In Revivers with Custom Revier

Currently trying to implement a custom reviver that would take the place of the DateTime reviver.
After setting this up seems like this may not be an option. Currently working around it by creating my own class to wrap DateTime and then setting up a reviver for that object type. Will know if this works in shortly but dont see why it wouldnt.
Just wondering if there is already a way to or if you would be willing to add the ability to provide custom revivers that take the place of current revivers.
Some use cases
Bool: I would like to be able to accept  T/F || Y/N || 1/0 || Yes/No ........
DateTime: I would like to be able to accept "today" || "yesterday" || last week........
If i can get a moment to resolve this I will and set up a pull request, again thank you for this AWESOME lib, makes our lives here so much easier!

Looks Like we could do this with a small change to the ArgRevivers.cs making some small logical changes at like 175:
Think instead of skipping revivers that already exists we could remove the existing one and add the one found. Thoughts?
foreach (var reviver in revivers)
                {
                    var r = reviver;
                    if (ArgRevivers.Revivers.ContainsKey(r.ReturnType) == false)
                    {
                        ArgRevivers.Revivers.Add(r.ReturnType, (key, val) =>
                        {
                            return r.Invoke(null, new object[] { key, val });
                        });
                    }
                }

Looks like the proposed approach above would also require logic changes at line 37 would have to move the call to SearchAssembly (see below).
I could see how this may have a negative impact on overall performance, going to see what I can do about adding a registration method instead.
Args.Revivers.RegisterNew(Func<string,string,object> reviver, bool replaceIfExists=true)
        public static bool CanRevive(Type t)
        {
            // this would keep the system from ever discovering the custom reviver we are trying to replace the existing one with
            if (Revivers.ContainsKey(t) ||
                t.IsEnum ||
                (t.GetInterfaces().Contains(typeof(IList)) && t.IsGenericType && CanRevive(t.GetGenericArguments()[0])) ||
                (t.IsArray && CanRevive(t.GetElementType())))
                return true;
            SearchAssemblyForRevivers(t.Assembly);

            if (System.ComponentModel.TypeDescriptor.GetConverter(t).CanConvertFrom(typeof(string))) return true;

            return Revivers.ContainsKey(t);
        }

I've been behind on this project, but I'll take a look at this soon.

Which tests are failing for you?  I don't have any failing on my machine.  Some http pipeline tests are failing on my CI setup, but those are related to a preview feature (and live in the Preview namespace) that isn't really intended for widespread use yet.
I'm going to take a look right now at the reviver code and make this possible.

The IsBool method is needed because it allows for the special syntax where a bool will be set to true even if the user doesn't specify a value.
For example:
myApp                                <--------- somebool will be false
myApp -somebool true      <--------- somebool will be true
myApp -somebool false      <--------- somebool will be false
myApp -somebool                <--------- somebool will be true (special syntax that requires IsBool)
I'm curious as to what issue you saw with this though.  Can you please share?
Thanks,
Adam

You can now override the built in revivers.  If you're using the attribute then this should just start working for you.
Note that I also added ArgRevivers.SetReviver() so you can do this imperatively as well.

I can't get the "auto-overriding" to work.
I've created a reviver for DateTime (as I usually want to use DateTime.ParseExact on the string entered instead of Parse). I believe it has the right signature for an ArgReviver, and it's in the same assembly as the Main(string[] args) entry point, but the method doesn't get hit.
If I use ArgRevivers.SetReviver to set it declaritavely, then it works fine.
Reviver below.
[ArgReviver]
public static DateTime StrictDateTimeReviver(string key, string value)
{
	try
	{
		return DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
	}
	catch
	{
		throw new ArgException("Date is in the incorrect format.");
	}
}

I have experienced the same issue. Used the same work around
-Chris
On Nov 18, 2015 7:43 AM, "Geraint87"<EMAIL_ADDRESS>wrote:

I can't get the "auto-overriding" to work.
I've created a reviver for DateTime (as I usually want to use
DateTime.ParseExact on the string entered instead of Parse). I believe it
has the right signature for an ArgReviver, and it's in the same assembly as
the Main(string[] args) entry point, but the method doesn't get hit.
If I use ArgRevivers.SetReviver to set it declaritavely, then it works
fine.
Reviver below.
[ArgReviver]
public static DateTime StrictDateTimeReviver(string key, string value)
{
try
{
return DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
}
catch
{
throw new ArgException("Date is in the incorrect format.");
}
}
—
Reply to this email directly or view it on GitHub
https://github.com/adamabdelhamed/PowerArgs/issues/77#issuecomment-157700934
.

I'll probably fix the current batch of issues sometime in December when I have some time. Thanks for reporting.
Sent from my Windows Phone

From<EMAIL_ADDRESS>Sent: 11/18/2015 8:21 AM
To<EMAIL_ADDRESS>Cc: Adam<EMAIL_ADDRESS>Subject: Re: [PowerArgs] Override Baked In Revivers with Custom Revier  (#77)
I have experienced the same issue. Used the same work around
-Chris
On Nov 18, 2015 7:43 AM, "Geraint87"<EMAIL_ADDRESS>wrote:

I can't get the "auto-overriding" to work.
I've created a reviver for DateTime (as I usually want to use
DateTime.ParseExact on the string entered instead of Parse). I believe it
has the right signature for an ArgReviver, and it's in the same assembly as
the Main(string[] args) entry point, but the method doesn't get hit.
If I use ArgRevivers.SetReviver to set it declaritavely, then it works
fine.
Reviver below.
[ArgReviver]
public static DateTime StrictDateTimeReviver(string key, string value)
{
try
{
return DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture);
}
catch
{
throw new ArgException("Date is in the incorrect format.");
}
}
—
Reply to this email directly or view it on GitHub
https://github.com/adamabdelhamed/PowerArgs/issues/77#issuecomment-157700934
.

Reply to this email directly or view it on GitHub:
https://github.com/adamabdelhamed/PowerArgs/issues/77#issuecomment-157710896


Add Murtaza to website

Resolving all new member merge conflicts in new commit

Check yourself out on https://scottylabs.org/#team

Ah, this is so awesome! Thank you Scott!!
Looking forward to the session on Saturday! :)
Regards,
Murtaza

Check yourself out on https://scottylabs.org/#team
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/ScottyLabs/scottylabs.github.io/pull/33#issuecomment-248383583


Wasm: call RhpAssignRef for stfld and stelem

This PR changes the implementation of stfld and stelem when the target type IsGCPointer and adds a test for objects rooted through a Gen 2 parent.  Are there other opcodes where RhpAssignRef should be used?
Thanks @Suchiman

Are there other opcodes where RhpAssignRef should be used?

Yes: stind.ref, stobj. Also, make sure to handle value types. When the valuetype contains object references, the write barrier needs to be called for each of them.

I think I'm going to need to add DataLayout to LLVMSharp for this so marking as draft for now.

I have https://github.com/microsoft/LLVMSharp/pull/141 which will allow this to progress I hope.

I'm having some trouble creating a failing test for assigning structs which contain object references before I actually make the fix.  I have
    struct StructWithObjRefs
    {
        internal Child C1;
        internal Child C2;
    }

    class ParentOfStructWithObjRefs
    {
        internal StructWithObjRefs StructWithObjRefs;
    }

    private static ParentOfStructWithObjRefs aParentOfStructWithObjRefs;
    private static WeakReference childRef;

    private static unsafe bool TesClassInStructGC()
    {
        bool result = true;

        var parentRef = CreateParentWithStruct();
        GC.Collect();
        GC.Collect(); // parent in gen2

        StoreChildInC1();
        GC.Collect();
        if (!childRef.IsAlive)
        {
            PrintLine("Child died unexpectedly");
            result = false;
        }
        KillParentWithStruct();
        GC.Collect();
        if (childRef.IsAlive)
        {
            PrintLine("Child alive unexpectedly");
            result = false;
        }
        if (parentRef.IsAlive)
        {
            PrintLine("parent of struct Child1 alive unexpectedly");
            result = false;
        }
        return result;
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    unsafe static WeakReference CreateParentWithStruct()
    {
        var parent = new ParentOfStructWithObjRefs();
        aParentOfStructWithObjRefs = parent;
        return new WeakReference(parent);
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    static unsafe void StoreChildInC1()
    {
        var child = new Child();
        aParentOfStructWithObjRefs.StructWithObjRefs = new StructWithObjRefs
        {
            C1 = child,
        };
        childRef = new WeakReference(child);
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    static void KillParentWithStruct()
    {
        aParentOfStructWithObjRefs = null;
    }

I expect the if (!childRef.IsAlive) to fail, i.e. the child stored in the struct field to have died, but it is alive for some reason.  I've printed the address of the child and the parent and neither are on the stack so it seems to be rooting the Child some other way.  I can add some tracing to the collection code, unless I've made a mistake in the test?

Added support for structs, which has a test, and stind.ref and stobj (don't have a test for those), both these go through ImportStoreIndirect.  Unfortunately #8210 is not fixed with this change, so either I've missed something or it's elsewhere.


Nightly tests failing

/kind bug
odo init interactive command tests label nocluster personalizing Devfile configuration [It] should allow for personalizing configurations [nocluster]
/go/src/github.com/redhat-developer/odo/tests/integration/interactive_init_test.go:95

https://storage.googleapis.com/origin-ci-test/logs/periodic-ci-redhat-developer-odo-main-v4.13-integration-e2e-periodic/1657898785788923904/build-log.txt

I just saw this issue affecting this PR (https://github.com/redhat-developer/odo/pull/6686) as well: https://s3.eu-de.cloud-object-storage.appdomain.cloud/odo-tests-openshift-logs/pr-6686-openshift-unauth-tests-1224.txt


Write initial setup instructions for website

This could be a shell script of AWS CLI commands

For the login part, create an App here:
http://login.amazon.com/manageApps

Scratch that - amazon didn't like non-HTTPS stuff. We are using Google instead.
# The Google OAuth Client ID
# Visit: https://console.developers.google.com/project
# To create a project, enable the Google+ API, and create an ID
# Set the Javascript Origin to the S3 bucket URL
google_oauth_client_id: TODO

In the docs, mention using this as a play thing:
https://web-identity-federation-playground.s3.amazonaws.com/index.html

Done with #18


Benches is broken

Forgot to add tasks to the compression calls in compress_bench.rs. My bad lol

I removed benches entirely for now... some time we should re-add them


Upgrade dependencies

(Don't merge yet, problem with infinispan).
I've made most dependencies up-to-date, and where possible aligned with spring-boot-dependencies (makes the POM significantly smaller). Also we're now using spring-platform Cairo.RC1 so we don't have to rely on spring's snapshot repository.
There is one failing Travis build, unfortunately, and I am not sure how to fix it. See
https://travis-ci.org/erikkemperman/jhipster/builds/352921745?utm_source=github_status&utm_medium=notification
I've updated a bit of generator code to accomodate the infinispan upgrade, but I honestly don't think that's where the issue comes from:
https://github.com/erikkemperman/generator-jhipster/commit/71e075df64acd1268e31539bf5e2ae68f829d58f
It looks like the way infinispan is used in the generator, specifically in config/CacheConfiguration.java, is different from what the README in infinispan-spring-boot-starter says, because it avoids being managed by Spring for some reason.
Unfortunately I don't really have the expertise to deal with this adequately, nor the time to attain it just now... However I didn't want to let the other changes go to waste and therefore thought I might submit this anyway. If anyone knowlegable about the JHipster's usage of infinispan could chime in here, that would be greatly appreciated!
The most significant bump here is probably logstash-logback-encoder, to 5.0. From the changelog I don't expect trouble, but since I usually use log4j myself perhaps someone else should take a look to make sure.
The last commit should not be merged, it's just changing the refs where Travis should get the generator.

Closing this in favour of the combined effort: https://github.com/jhipster/jhipster/pull/48


Added overlay color processor

Along the same lines as PR #628, I've added an OverlayColor processor, so you can overlay a (semi-transparent) color to the whole image.
I know you can just add an overlay in the HTML of a page, but because images with less colors are a lot smaller (~50%), you'd be downloading unnessecary color data... We used this method (HTML overlay) on the 2nd and 3rd frontpage slide on https://www.tomatoworld.nl/en (so you have an idea of what the result will be).
I first tried to combine the background color and alpha processors, but that didn't work (the alpha processor only created a washed out image). Adding an overlay image (PNG filled with the semi-transparent color) with the exact same dimensions works, but adds a lot of extra work to add new dimensions and/or colors.
To get the solution to build, I merged the Feature/AmazonS3Cache branch, so you may want to do this yourself and cherry pick commit 7d4c364.

I'm really not planning on adding any new features to the library? Perhaps this would be better as an extension?

I know you're focussing on ImageSharp and this library is in maintenance mode, but it's still in heavy use by e.g. Umbraco (also in the upcoming version 8) and ImageSharp is still in beta.
Having these additional features built-in would really be great and would avoid me creating a ImageProcessor.Contrib and ImageProcessor.Web.Contrib with all the version dependencies and maintenance for those additional packages 😛
If you need some help maintaining this library, just let me know!

Having these additional features built-in would really be great and would avoid me creating a ImageProcessor.Contrib and ImageProcessor.Web.Contrib with all the version dependencies and maintenance for those additional packages 😛

Nice try! It certainly would and when, eventually, you move on and I am left with extra code to maintain...
I think this is best as something separate. I won't be making any major changes to the main libraries since I'm essentially retiring them so you won't have updates to make.

P.S Thanks for the offer to maintain

No problem! I'll add this processor to our internal set of packages and keep the branch, so other people can use the source if they'd like to 👍


Redesign Wasmtime's CLI

This commit follows through on discussion from #6741 to redesign the flags that the wasmtime binary accepts on the CLI. Almost all flags have been renamed/moved and will require callers to update. The main motivation here is to cut down on the forest of options in wasmtime -h which are difficult to mentally group together and understand.
The main change implemented here is to move options behind "option groups" which are intended to be abbreviated with a single letter:

-O foo - an optimization or performance-tuning related option
-C foo - a codegen option affecting the compilation process.
-D foo - a debug-related option
-W foo - a wasm-related option, for example changing wasm semantics
-S foo - a WASI-related option, configuring various proposals for example

Each option group can be explored by passing help, for example -O help. This will print all options within the group along with their help message. Additionally -O help-long can be passed to print the full comment for each option if desired.
Option groups can be specified multiple times on the command line, for example -Wrelaxed-simd -Wthreads. They can also be combined together with commas as -Wrelaxed-simd,threads. Configuration works as a "last option wins" so -Ccache,cache=n would end up with a compilation cache disabled.
Boolean options can be specified as -C foo to enable foo, or they can be specified with -Cfoo=$val with any of y, n, yes, no, true, or false. All other options require a =foo value to be passed and the parsing depends on the type.
This commit additionally applies a few small refactorings to the CLI as well. For example the help text no longer prints information about wasm features after printing the option help. This is still available via -Whelp as all wasm features have moved from --wasm-features to -W. Additionally flags are no longer conditionally compiled in, but instead all flags are always supported. A runtime error is returned if support for a flag is not compiled in. Additionally the "experimental" name of WASI proposals has been dropped in favor of just the name of the proposal, for example --wasi nn instead of --wasi-modules experimental-wasi-nn. This is intended to mirror how wasm proposals don't have "experimental" in the name and an opt-in is required regardless.
A full listing of flags and how they have changed is:

old cli flag
new cli flag

-O, --optimize
removed

--opt-level <LEVEL>
-O opt-level=N

--dynamic-memory-guard-size <SIZE>
-O dynamic-memory-guard-size=...

--static-memory-forced
-O static-memory-forced

--static-memory-guard-size <SIZE>
-O static-memory-guard-size=N

--static-memory-maximum-size <MAXIMUM>
-O static-memory-maximum-size=N

--dynamic-memory-reserved-for-growth <SIZE>
-O dynamic-memory-reserved-for-growth=...

--pooling-allocator
-O pooling-allocator

--disable-memory-init-cow
-O memory-init-cow=no

--compiler <COMPILER>
-C compiler=..

--enable-cranelift-debug-verifier
-C cranelift-debug-verifier

--cranelift-enable <SETTING>
-C cranelift-NAME

--cranelift-set <NAME=VALUE>
-C cranelift-NAME=VALUE

--config <CONFIG_PATH>
-C cache-config=..

--disable-cache
-C cache=no

--disable-parallel-compilation
-C parallel-compilation=no

-g
-D debug-info

--disable-address-map
-D address-map=no

--disable-logging
-D logging=no

--log-to-files
-D log-to-files

--coredump-on-trap <PATH>
-D coredump=..

--wasm-features all
-W all-proposals

--wasm-features -all
-W all-proposals=n

--wasm-features bulk-memory
-W bulk-memory

--wasm-features multi-memory
-W multi-memory

--wasm-features multi-value
-W multi-value

--wasm-features reference-types
-W reference-types

--wasm-features simd
-W simd

--wasm-features tail-call
-W tail-call

--wasm-features threads
-W threads

--wasm-features memory64
-W memory64

--wasm-features copmonent-model
-W component-model

--wasm-features function-references
-W function-references

--relaxed-simd-deterministic
-W relaxed-simd-deterministic

--enable-cranelift-nan-canonicalization
-W nan-canonicalization

--fuel <N>
-W fuel=N

--epoch-interruption
-W epoch-interruption

--allow-unknown-exports
-W unknown-exports-allow

--trap-unknown-imports
-W unknown-imports-trap

--default-values-unknown-imports
-W unknown-imports-default

--max-instances <MAX_INSTANCES>
-W max-instances=N

--max-memories <MAX_MEMORIES>
-W max-memories=N

--max-memory-size <BYTES>
-W max-memory-size=N

--max-table-elements <MAX_TABLE_ELEMENTS>
-W max-table-elements=N

--max-tables <MAX_TABLES>
-W max-tables=N

--max-wasm-stack <MAX_WASM_STACK>
-W max-wasm-stack=N

--trap-on-grow-failure
-W trap-on-grow-failure

--wasm-timeout <TIME>
-W timeout=N

--wmemcheck
-W wmemcheck

--wasi-modules default
removed

--wasi-modules -default
removed

--wasi-modules wasi-common
-S common

--wasi-modules -wasi-common
-S common=n

--wasi-modules experimental-wasi-nn
-S nn

--wasi-modules experimental-wasi-threads
-S threads

--wasi-modules experimental-wasi-http
-S http

--listenfd
-S listenfd

--tcplisten <SOCKET ADDRESS>
-S tcplisten=...

--wasi-nn-graph <FORMAT::HOST>
-S nn-graph=FORMAT::HOST

--preview2
-S preview2

--dir <DIRECTORY>
--dir ...

--mapdir <GUEST_DIR::HOST_DIR>
--dir a::b

I'll note that this is a breaking change and we're in the period of "no breaking changes before WasmCon", so this shouldn't land for a few weeks. Additionally some more background for this is available at https://github.com/bytecodealliance/wasmtime/issues/6741 too.
Finally here's some snippets:

./target/debug/wasmtime -h
Wasmtime WebAssembly Runtime

Usage: wasmtime [OPTIONS] <WASM>...
       wasmtime <COMMAND>

Commands:
  config    Controls Wasmtime configuration settings
  compile   Compiles a WebAssembly module
  explore   Explore the compilation of a WebAssembly module to native code
  run       Runs a WebAssembly module
  settings  Displays available Cranelift settings for a target
  wast      Runs a WebAssembly test script file
  help      Print this message or the help of the given subcommand(s)

Arguments:
  <WASM>...  The WebAssembly module to run and arguments to pass to it

Options:
  -O, --optimize <KEY[=VAL[,..]]>    Optimization and tuning related options for wasm performance, `-O help` to see all
  -C, --codegen <KEY[=VAL[,..]]>     Codegen-related configuration options, `-C help` to see all
  -D, --debug <KEY[=VAL[,..]]>       Debug-related configuration options, `-D help` to see all
  -W, --wasm <KEY[=VAL[,..]]>        Options for configuring semantic execution of WebAssembly, `-W help` to see all
  -S, --wasi <KEY[=VAL[,..]]>        Options for configuring WASI and its proposals, `-S help` to see all
      --allow-precompiled            Allow executing precompiled WebAssembly modules as `*.cwasm` files
      --dir <GUEST_DIR[::HOST_DIR]>  Grant access of a host directory to a guest
      --env <NAME[=VAL]>             Pass an environment variable to the program
      --invoke <FUNCTION>            The name of the function to run
      --preload <NAME=MODULE_PATH>   Load the given WebAssembly module before the main module
      --profile <STRATEGY>           Profiling strategy (valid options are: perfmap, jitdump, vtune, guest)
  -h, --help                         Print help (see more with '--help')
  -V, --version                      Print version

If a subcommand is not provided, the `run` subcommand will be used.

Usage examples:

Running a WebAssembly module with a start function:

  wasmtime example.wasm

Passing command line arguments to a WebAssembly module:

  wasmtime example.wasm arg1 arg2 arg3

Invoking a specific function (e.g. `add`) in a WebAssembly module:

  wasmtime example.wasm --invoke add 1 2

./target/debug/wasmtime run -h
Runs a WebAssembly module

Usage: wasmtime run [OPTIONS] <WASM>...

Arguments:
  <WASM>...  The WebAssembly module to run and arguments to pass to it

Options:
  -O, --optimize <KEY[=VAL[,..]]>    Optimization and tuning related options for wasm performance, `-O help` to see all
  -C, --codegen <KEY[=VAL[,..]]>     Codegen-related configuration options, `-C help` to see all
  -D, --debug <KEY[=VAL[,..]]>       Debug-related configuration options, `-D help` to see all
  -W, --wasm <KEY[=VAL[,..]]>        Options for configuring semantic execution of WebAssembly, `-W help` to see all
  -S, --wasi <KEY[=VAL[,..]]>        Options for configuring WASI and its proposals, `-S help` to see all
      --allow-precompiled            Allow executing precompiled WebAssembly modules as `*.cwasm` files
      --dir <GUEST_DIR[::HOST_DIR]>  Grant access of a host directory to a guest
      --env <NAME[=VAL]>             Pass an environment variable to the program
      --invoke <FUNCTION>            The name of the function to run
      --preload <NAME=MODULE_PATH>   Load the given WebAssembly module before the main module
      --profile <STRATEGY>           Profiling strategy (valid options are: perfmap, jitdump, vtune, guest)
  -h, --help                         Print help (see more with '--help')

./target/debug/wasmtime compile -h
Compiles a WebAssembly module

Usage: wasmtime compile [OPTIONS] <MODULE>

Arguments:
  <MODULE>  The path of the WebAssembly to compile

Options:
  -O, --optimize <KEY[=VAL[,..]]>  Optimization and tuning related options for wasm performance, `-O help` to see all
  -C, --codegen <KEY[=VAL[,..]]>   Codegen-related configuration options, `-C help` to see all
  -D, --debug <KEY[=VAL[,..]]>     Debug-related configuration options, `-D help` to see all
  -W, --wasm <KEY[=VAL[,..]]>      Options for configuring semantic execution of WebAssembly, `-W help` to see all
  -S, --wasi <KEY[=VAL[,..]]>      Options for configuring WASI and its proposals, `-S help` to see all
      --target <TARGET>            The target triple; default is the host triple
  -o, --output <OUTPUT>            The path of the output compiled module; defaults to <MODULE>.cwasm
      --emit-clif <PATH>           The directory path to write clif files into, one clif file per wasm function
  -h, --help                       Print help
  -V, --version                    Print version

By default, no CPU features or presets will be enabled for the compilation.

Usage examples:

Compiling a WebAssembly module for the current platform:

  wasmtime compile example.wasm

Specifying the output file:

  wasmtime compile -o output.cwasm input.wasm

Compiling for a specific platform (Linux) and CPU preset (Skylake):

  wasmtime compile --target x86_64-unknown-linux -Ccranelift-skylake foo.wasm

./target/debug/wasmtime -O help
Available optimize options:

  -O                          opt-level=val -- Optimization level of generated code (0-2, s; default: 0)
  -O          dynamic-memory-guard-size=val -- Byte size of the guard region after dynamic memories are allocated
  -O             static-memory-forced[=val] -- Force using a "static" style for all wasm memories
  -O         static-memory-maximum-size=val -- Maximum size in bytes of wasm memory before it becomes dynamically relocatable instead of up-front-reserved.
  -O           static-memory-guard-size=val -- Byte size of the guard region after static memories are allocated
  -O dynamic-memory-reserved-for-growth=val -- Bytes to reserve at the end of linear memory for growth for dynamic memories.
  -O                pooling-allocator[=val] -- Enable the pooling allocator, in place of the on-demand allocator.
  -O                  memory-init-cow[=val] -- Configure attempting to initialize linear memory via a copy-on-write mapping (default: yes)

pass `-O help-long` to see longer-form explanations

./target/debug/wasmtime -C help
Available codegen options:

  -C                   compiler=val -- Either `cranelift` or `winch`.
  -C cranelift-debug-verifier[=val] -- Enable Cranelift's internal debug verifier (expensive)
  -C                    cache[=val] -- Whether or not to enable caching of compiled modules.
  -C               cache-config=val -- Configuration for compiled module caching.
  -C     parallel-compilation[=val] -- Whether or not to enable parallel compilation of modules.
  -C          cranelift-<KEY>[=val] -- Set a cranelift-specific option. Use `wasmtime settings` to see all.

pass `-C help-long` to see longer-form explanations

./target/debug/wasmtime -W help
Available wasm options:

  -W       nan-canonicalization[=val] -- Enable canonicalization of all NaN values.
  -W                         fuel=val -- Enable execution fuel with N units fuel, trapping after running out of fuel.
  -W         epoch-interruption[=val] -- Yield when a global epoch counter changes, allowing for async operation without blocking the executor.
  -W               max-wasm-stack=val -- Maximum stack size, in bytes, that wasm is allowed to consume before a stack overflow is reported.
  -W      unknown-exports-allow[=val] -- Allow unknown exports when running commands.
  -W       unknown-imports-trap[=val] -- Allow the main module to import unknown functions, using an implementation that immediately traps, when running commands.
  -W    unknown-imports-default[=val] -- Allow the main module to import unknown functions, using an implementation that returns default values, when running commands.
  -W                  wmemcheck[=val] -- Enables memory error checking. (see wmemcheck.md for more info)
  -W              max-memory-size=val -- Maximum size, in bytes, that a linear memory is allowed to reach.
  -W           max-table-elements=val -- Maximum size, in table elements, that a table is allowed to reach.
  -W                max-instances=val -- Maximum number of WebAssembly instances allowed to be created.
  -W                   max-tables=val -- Maximum number of WebAssembly tables allowed to be created.
  -W                 max-memories=val -- Maximum number of WebAssembly linear memories allowed to be created.
  -W       trap-on-grow-failure[=val] -- Force a trap to be raised on `memory.grow` and `table.grow` failure instead of returning -1 from these instructions.
  -W                      timeout=val -- Maximum execution time of wasm code before timing out (1, 2s, 100ms, etc)
  -W              all-proposals[=val] -- Configures support for all WebAssembly proposals implemented.
  -W                bulk-memory[=val] -- Configure support for the bulk memory proposal.
  -W               multi-memory[=val] -- Configure support for the multi-memory proposal.
  -W                multi-value[=val] -- Configure support for the multi-value proposal.
  -W            reference-types[=val] -- Configure support for the reference-types proposal.
  -W                       simd[=val] -- Configure support for the simd proposal.
  -W               relaxed-simd[=val] -- Configure support for the relaxed-simd proposal.
  -W relaxed-simd-deterministic[=val] -- Configure forcing deterministic and host-independent behavior of the relaxed-simd instructions.
  -W                  tail-call[=val] -- Configure support for the tail-call proposal.
  -W                    threads[=val] -- Configure support for the threads proposal.
  -W                   memory64[=val] -- Configure support for the memory64 proposal.
  -W            component-model[=val] -- Configure support for the component-model proposal.
  -W        function-references[=val] -- Configure support for the function-references proposal.

pass `-W help-long` to see longer-form explanations

./target/debug/wasmtime -S help
Available wasi options:

  -S   common[=val] -- Enable support for WASI common APIs
  -S       nn[=val] -- Enable suport for WASI neural network API (experimental)
  -S  threads[=val] -- Enable suport for WASI threading API (experimental)
  -S     http[=val] -- Enable suport for WASI HTTP API (experimental)
  -S listenfd[=val] -- Inherit environment variables and file descriptors following the systemd listen fd specification (UNIX only)
  -S  tcplisten=val -- Grant access to the given TCP listen socket
  -S preview2[=val] -- Implement WASI with preview2 primitives (experimental).
  -S   nn-graph=val -- Pre-load machine learning graphs (i.e., models) for use by wasi-nn.

pass `-S help-long` to see longer-form explanations

Also, as a final note, there's a shed with bikes here and we gotta figure out the color. I'm happy to hand out paint brushes to anyone willing! AKA now's the time for bikeshedding this where we only get to do this once really IMO

bikeshed: in the printed --help output, can we get all the val (I'm only looking under -S but this may apply elsewhere) to be printed as y|n or <encoding>::<dir> or whatever that flag expects? Essentially communicate more clearly what kinds of things are valid after =?

Good point! Updated to that now

From today's Wasmtime meeting discussion the conclusion is that this PR will land in Wasmtime 14.0.0 and will be coupled with https://github.com/bytecodealliance/wasmtime/pull/6737. Despite https://github.com/bytecodealliance/wasmtime/pull/6737 being a landed PR on main it was reverted for 12.0.0 and is being reverted for the upcoming 13.0.0 branch. That'll re-land via a separate future PR for the 14.0.0 release once the 13.0.0 branch is created.

I've converted this PR to a draft while we wait for Wasmtime 13.0.0 to get branched. In the meantime I've created a stream on Zulip to discuss these changes and there's a sibling PR for how Wasmtime's options are required to be first now.

Ok now that we're post-WasmCon and given @abrown's previous approval I'm going to go ahead and land this.

This broke TinyGo (and also mainline Go’s wasip1 runner): https://github.com/tinygo-org/tinygo/issues/3970
Would it be possible to introduce a minor change for backwards compatibility? I think these would be sufficient to fix at least TinyGo and Go:

Support --mapdir=GUEST::HOST as an alias for --dir=HOST::GUEST
If the command args includes --, then interpret everything before the -- as arguments to wasmtime, and everything after -- as arguments to the guest program

Thanks for the report! I suspect that https://github.com/bytecodealliance/wasmtime/issues/7336 is a good place to continue discussion perhaps? (looks like y'all raced in reports!)
While it would be possible to implement something like what you mention, is it possible to require Wasmtime 14 and update scripts for Wasmtime 14?

I made a PR for TinyGo (https://github.com/tinygo-org/tinygo/pull/3972), but landing a change to mainline Go will take time.
We got bit by this on Friday when CI started breaking. While it’s our fault for not pinning the version of wasmtime, I’m somewhat surprised y’all didn’t release at least one major version of wasmtime with a compatibility shim and deprecation warnings, so dependents would have time to migrate.

Yes we decided in the development of this that smoothing the path with warnings and such was unfortunately not tenable in this case. For example many previous invocations are reinterpreted entirely differently and we didn't want one release of some breakage and another release of even more breakage. If it works in your CI I'd definitely recommend pinning Wasmtime versions with explicit updates.
FWIW if you're curious we attempted to discuss this broadly with lots of lead time about this. If you've got suggestions for how to improve the communication process and ensure this doesn't slip through the cracks again for y'all, please let us know!

original issue
Zulip discussion
Discussed in a bi-weekly meeting


Fix typo

Strictly speaking this should go to http://github.com/Microsoft/visualfsharp. @latkin can you apply the change there too?

yep, will take care of it


Implement RPC to retrieve planpreview results

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #2107
Fixes #2108
Does this PR introduce a user-facing change?:

NONE

/lgtm

There you go.
/approve


Gnome 46 GTK4 apps are not switching to dark mode and vice versa

What happened?
I have noticed that switching to dark mode is not working with GTK4 gnome and its apps.
Taking a look at Gnome quick options shows that dark mode is not active.

Finally, apps like nautilus, system settings etc. are in light mode.
I do not know if it is connected to Arch or not. Tried also with libadwaita without adwaita but that did not change anything.
All GTK3 applications, Kvantum, Firefox work flawlessly.
To have dark mode in GTK4, I need to manually click dark mode using system switch.
P.S Switching from dark mode to light mode also need a manually switch.
Version
3.4-1
How did you install Yin & Yang?
AUR
What desktop environments are you seeing the problem on?
Gnome
Which plugin causes the issue?
GTK
What software version do you use?
No response
Relevant log output
No response

Have you tried using the Gnome extension for auto dark mode? That's what I am using on Gnome. It's lacking all the "glue-code" though to sync apps that don't detect system theme changes that is provided here.

I get it. With that extension it works now. So thanx a lot.


Refactor and internationalize IssueEventListItem

This component could benefit from a refactoring similar to EventsScreen, where every event type would be handled by a dedicated method.
Instead of the big switch/case in render(), we could have something like this:
render() {
    const { repository, event } = this.props;
    const handler = camelCase(`handle_${event.event}`); // lodash's camelCase

    if (typeof this[handler] === 'function') {
      return this[handler](event, repository);
    }

    return null;
}

and implement handleReviewRequested(), handleLabeled(), etc.
We would then wrap strings with utils.t() to internationalize this component.

I actually have to do this while migrating the Issue Screen to GraphQL

Is this issue unassigned? If so, I'd like to work on it.

Hi @arashcoder! This work have already been done in a PR I'm working on.

@machour Not a push. Just ping to check your PR status.

Hi,
The PR that included this won't be finished as comments pagination have been done separately.
Here's the event screen with my modifications: https://github.com/machour/git-point/blob/refactor/issues-and-pulls/src/auth/screens/events.screen.js
I'd have zero problems if someone copied into his own PR and submitted, I'll probably won't have the time any soon.

@machour has this task been done now?


rate algorithm app

Add rate algorithm app that can:

Load the rule from excel
Fire the fact(from db) and generate result

c2b4dfd29afce4e9affb57bb0a7fb2393725f445


Return best found solution if one is found

https://github.com/scipopt/russcip/blob/14dbea2cbd7dd87bba96a65b17c45e739c121f84/src/model.rs#L425
It can be that a solution is found but the status is not optimal; e.g. a timelimit is reached. We should instead check if a solution exists.

@yonch from your fork, I assume you will be adding a pull request soon? 😄

happy to! especially now I know the PR will have an interested reviewer :)
I think I should rebase, should be a few minutes.

Solved in #42


docs: Update Kingdom Deployment doc for HMSS config file.

This change is

Close https://github.com/world-federation-of-advertisers/cross-media-measurement/issues/1849


Modularise tracing backends

🤔 Problem: We're adding opentelemetry tracing support to the agent soon, but the current state in the agent makes it difficult to add another tracing implementation, as the agent as it stands is very tied into opentracing and datadog.
✅ Solution: This PR makes the tracing initialisation process more modular, allowing us to more easily add other tracing backends in future. A quick rundown of the changes:

Update the functions in tracetools/span.go to operate on an interface, able to be fulfilled by spans from multiple tracing implementations
Refactor the tracer initialisation code in bootstrap/bootstrap.go:

Move to bootstrap/tracing.go
Instead of tracing with the OpenTracing NoopTracer when tracing is disabled, use a noop implementation of the interface from tracetools above. This allows us to not trace in a more vendor-agnostic way
Generally slice up the *Bootstrap.StartTracing() method into smaller, re-usable chunks where necessary

This is looking great, @moskyb!

Merging this PR is blocked by our windows build problem; the agents that run windows agent builds are running go 1.15, so they can't handle my incredibly powerful use of generics (the maps and slices libraries + the any keyword). I'm going to focus on updating our windows agents to get this build green.


feat: added Dockerfile (#72)

In support of #72

This looks good to me, WDYT @nugaon ?

I am very sorry @tmm360 but we are making yet another changes how the app is served. See #88 . I presume this might affect the PR.

I am very sorry @tmm360 but we are making yet another changes how the app is served. See #88 . I presume this might affect the PR.

Probably yes, I will wait for #88 to be merged for update this. Thanks

The built version inside ./build directory doesn't report the package.json file, required by the npm run serve command, so for Dockerfile I still use the serve command installed globally.
Anyway the serve command exposes by default on port 5000, so I've updated it to 8080 for standardize with documentation.
I've also updated readme instructions for a local build with Docker, until image will be published on docker hub.


Providing theme ids as script arguments

I'm currently working on automating my desktop setup and I have been using Gogh to setup my terminal colors. I was wondering if it would be possible to specify the themes to be installed as script arguments so that they could be installed without user interaction?

Nevermind, found out this when I explored the repository: https://github.com/Mayccoll/Gogh/blob/master/content/install.md


SendGridPlugin

Introduce new plugin responsible for sending the customer emails.

Task linked: SALEOR-2744 SendGridEmail Plugin


change the default value to disable downsampling

The PR sets the default value for the libsonnet variable THANOS_COMPACTOR_RETENTION_DISABLE_DOWNSAMPLING as  true. This helps to disable downsampling as the default option.
For specific cluster deployments, this variable THANOS_COMPACTOR_RETENTION_DISABLE_DOWNSAMPLING can be overridden (to 'false' to enable downsampling) at app-sre interface.

/retest

Ah wait, looks like we need to commit the generated file

Yes @squat , added changes to the generated template file.


Port raylib examples

Using makefiles instead of projects because its easier to manage.
Generator can copy a folder and port c files to c# as best as it can. It is a rough attempt to speed up the process and not a full converter. Still need to check and edit the generated code. It tries to take care of most general cases.

Focusing on examples for now to keep raylib-cs simple and easy to maintain. They are needed to test the library. Games and templates may be added in the future if the generator is improved.

This list is for tracking functions that are not working for examples.
- FormatText
- GetVrDeviceInfo

Updating examples so they work out of the box. Since this issue was closed there have been API changes that have broken them.

Color defines moved from Raylib to Color.

DrawRectangle(0, 0, 200, 200, RED);
DrawRectangle(0, 0, 200, 200, Color.RED);

Functions use enums instead of int where commonly used.

IsKeyPressed(KEY_ESCAPE);
IsKeyPressed(KeyboardKey.KEY_ESCAPE);

Closing because Examples have been moved to a seperate repository and are being updated. Progress can be found here


chromium: provide chromiumVaapi with VA-API support

Motivation for this change
VA-API give us more speeds for video encoding and a positive effect on the battery if you working on laptop.
Rebuild chromium at least on my laptop with Celeron N3060 takes a lot of time, and not all users wants rebuild it for VA-API only.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Would be worth investigating if the VAAPI patches (with disabled by default functionality) can become part of the default chromium build due to its long build times. See #82443 and others.

@hyperfekt VA-API disabled by default because this broke video playback on radeon cards. But I agree with you, need think more about a proper solution.
See this commit: https://github.com/NixOS/nixpkgs/commit/233e551674aa1986a163ad1096f235ebfd1353ac
Issue: https://github.com/NixOS/nixpkgs/pull/57837#issuecomment-477906724

@hyperfekt how I see video acceleration disabled in config by default.

@primeos how about this solution?
https://github.com/NixOS/nixpkgs/issues/82443#issuecomment-612978922

Oh it's not my first commit...

I force-pushed @misuzu solution. Please check and give your opinion.

I didn't test that solution yet, does it work as expected? From the source-code I'd expect that it wouldn't work as that flag is unavailable on Linux by default (see e.g. chrome://flags/).
In case it doesn't work: I'm currently trying out another solution with a small custom patch to resolve this, but the build is still running (i.e. testing probably has to wait until tomorrow).

I didn't test that solution yet, does it work as expected? From the source-code I'd expect that it wouldn't work as that flag is unavailable on Linux by default (see e.g. chrome://flags/).

I'm building this now. It seems that about_flags.cc is doing UI rendering, so command-line switch should work.

It works!
chromium
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
OpenGL: Enabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Enabled
Video Decode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Problems Detected
Accelerated video decode is unavailable on Linux: 137247, 1032907
Disabled Features: accelerated_video_decode
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Intel GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)
Accelerated video decode has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: video_decode

chromium-vaapi
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
OpenGL: Enabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Enabled
Video Decode: Unavailable
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Problems Detected
Accelerated video decode is unavailable on Linux: 137247, 1032907
Disabled Features: accelerated_video_decode
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Intel GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)

chromium-vaapi + --ignore-gpu-blacklist
Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Out-of-process Rasterization: Disabled
OpenGL: Enabled
Hardware Protected Video Decode: Hardware accelerated
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Enabled
Video Decode: Hardware accelerated
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Problems Detected
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Disable partial swaps on Mesa drivers (detected with GL_RENDERER): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Disable partial swaps on Mesa drivers (detected with GL_VERSION): 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Some drivers can't recover after OUT_OF_MEM and context lost: 893177
Applied Workarounds: exit_on_context_lost
Avoid waiting on a egl fence before swapping buffers and rely on implicit sync on Intel GPUs: 938286
Applied Workarounds: rely_on_implicit_sync_for_swap_buffers
Disable GL_MESA_framebuffer_flip_y for desktop GL: 964010
Applied Workarounds: disable(GL_MESA_framebuffer_flip_y)

This is on my Intel(R) UHD Graphics 620 (KBL GT2).
Maybe --ignore-gpu-blacklist should be default for chromium-vaapi?

Sorry for the delay, my initial attempt didn't work as I hoped, but I now finished my alternative draft:
#85251.
It's based on this work but with some differences (I tried to document the reasons). Feel free to add feedback and/or ask questions. If you're ok with it I'd like to go with the approach in #85253, but that's of course open for discussion.

@primeos I think your solution is better. Now I can close this PR, right?

@ElXreno great, then you can close your PR. Thanks for your work and initiating this :)
@misuzu: Also thanks for your work, that CLI switch is quite handy :)


Fix pagination with mongo

There are tests skipped in test_item.py because pagination in mongodb is not working properly.

Do you have any directions on how to approach this bugfix?

I made a small fix, so the pagination should have some functionality now ....
If you search this route let's say: http://localhost:8084/collections/test-collections/items&limit=1
You should see in links, a "next" link that will lead you to the next page of results
  "links": [
        {
            "rel": "next",
            "type": "application/json",
            "method": "GET",
            "href": "http://localhost:8084/collections/test-collection/items?token=UzJCXzFDQ1ZfMjAxODEyMjNfMF9MMkE="
        },
        {
            "rel": "root",
            "type": "application/json",
            "href": "http://localhost:8084/"
        },
        {
            "rel": "self",
            "type": "application/json",
            "href": "http://localhost:8084/collections/test-collection/items"
        }
    ],
    "context": {
        "returned": 10,
        "limit": 10,
        "matched": 100
    }

There was something about how Elasticsearch does pagination using tokens that wasn't the Mongo way to do things - I can't remember exactly now

If you look here: https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/6ea2060b7c048e04d15b774ec4d7f4a94f07ce52/stac_fastapi/mongo/database_logic.py#L520-L581

Hi, I did some tests with commit e59c421c816abe69ced82b472e3b1b837bf6495f
1. Created 1 collection (test-collection)":
curl --request POST --url http://localhost:8084/collections --header 'Content-Type: application/json' --data '{"id": "test-collection", "stac_extensions": ["https://stac-extensions.github.io/eo/v1.0.0/schema.json"], "type": "Collection", "description": "Landat 8 imagery radiometrically calibrated and orthorectified using gound points and Digital Elevation Model (DEM) data to correct relief displacement.", "stac_version": "1.0.0", "summaries": {"platform": ["landsat-8"], "instruments": ["oli", "tirs"], "gsd": [30]}, "extent": {"spatial": {"bbox": [[-180.0, -90.0, 180.0, 90.0]]}, "temporal": {"interval": [["2013-06-01", null]]}}, "links": [{"href": "http://localhost:8081/collections/landsat-8-l1", "rel": "self", "type": "application/json"}, {"href": "http://localhost:8081/", "rel": "parent", "type": "application/json"}, {"href": "http://localhost:8081/collections/landsat-8-l1/items", "rel": "item", "type": "application/geo+json"}, {"href": "http://localhost:8081/", "rel": "root", "type": "application/json"}], "title": "Landsat 8 L1", "keywords": ["landsat", "earth observation", "usgs"]}'

2.  Ran this search query:
curl --request POST \
  --url http://localhost:8084/search \
  --header 'Content-Type: application/json' \
  --data '{
    "limit": 2,
    "fields": {
	    "exclude": ["geometry", "links", "assets", "type", "bbox", "properties", "stac_version", "collection"]
    },
    "sortby": [
	    {
                    "field": "id",
                    "direction": "asc"
	    }
    ]
}'

Reponse was:
{
	"type": "FeatureCollection",
	"features": [
		{
			"id": "test-item1"
		},
		{
			"id": "test-item2"
		}
	],
	"links": [
		{
			"rel": "next",
			"type": "application/json",
			"method": "POST",
			"href": "http://localhost:8084/search",
			"body": {
				"limit": 2,
				"fields": {
					"exclude": [
						"geometry",
						"links",
						"assets",
						"type",
						"bbox",
						"properties",
						"stac_version",
						"collection"
					]
				},
				"sortby": [
					{
						"field": "id",
						"direction": "asc"
					}
				],
				"token": "dGVzdC1pdGVtMw=="
			}
		},
		{
			"rel": "root",
			"type": "application/json",
			"href": "http://localhost:8084/"
		},
		{
			"rel": "self",
			"type": "application/json",
			"href": "http://localhost:8084/search"
		}
	],
	"context": {
		"returned": 2,
		"limit": 2,
		"matched": 9
	}
}

4. Ran the same search query with the addition of the token from the previous response:
curl --request POST \
  --url http://localhost:8084/search \
  --header 'Content-Type: application/json' \
  --data '{
    "limit": 2,
    "fields": {
	    "exclude": ["geometry", "links", "assets", "type", "bbox", "properties", "stac_version", "collection"]
    },
    "sortby": [
	    {
		    "field": "id",
		    "direction": "asc"
	    }
    ],
    "token": "dGVzdC1pdGVtMw=="
}'

Response was:
{
	"type": "FeatureCollection",
	"features": [
		{
			"id": "test-item4"
		},
		{
			"id": "test-item5"
		}
	],
	"links": [
		{
			"rel": "next",
			"type": "application/json",
			"method": "POST",
			"href": "http://localhost:8084/search",
			"body": {
				"limit": 2,
				"fields": {
					"exclude": [
						"geometry",
						"links",
						"assets",
						"type",
						"bbox",
						"properties",
						"stac_version",
						"collection"
					]
				},
				"sortby": [
					{
						"field": "id",
						"direction": "asc"
					}
				],
				"token": "dGVzdC1pdGVtNg=="
			}
		},
		{
			"rel": "root",
			"type": "application/json",
			"href": "http://localhost:8084/"
		},
		{
			"rel": "self",
			"type": "application/json",
			"href": "http://localhost:8084/search"
		}
	],
	"context": {
		"returned": 2,
		"limit": 2
	}
}

This response seems to have skipped test-item2 and test-item3 and returned test-item4 and test-item5
Continuing with the following token I was returnedtest-item7 and test-item8 (skipping test-item6) and after that I was returned with nothing (skipping  test-item9)
I assume there's something wrong or perhaps I'm doing something wrong ?

No you aren't doing anything wrong. I remember this issue now when I created this. It might just be something funky here if you want to play around with it: https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/mongo/database_logic.py#L562-L574

If we can't get this working we should look at something like this maybe (using skip in mongo): https://www.mongodb.com/docs/atlas/atlas-search/tutorial/divide-results-tutorial/#std-label-pagination-skip-limit-tutorial

I'm not quite fond of what the token's complete purpose is, but assuming it's only meant to hold the amount of "skipping" we need to perform in the database, I've made this possible to solution which seems to work with same the same tests:
#https://github.com/pedro-cf/stac-fastapi-mongo/commit/730840a98dc9e587c9bd93e0579b2e20a7ecc4c1

Looks really good. There are a few pagination tests that are presently being skipped in tests/resources/items.py, for example here:
https://github.com/Healy-Hyperspatial/stac-fastapi-mongo/blob/e59c421c816abe69ced82b472e3b1b837bf6495f/stac_fastapi/tests/resources/test_item.py#L556-L662


Jehovah’s Witnesses—Official Website: Page Not Found Jehovah Christopher Columbus pease Jehovah son

https://www.jw.org/en/page-not-found/

@https://www.jw.org/en/library/series/more-topics/inflation-bible-meaning-hope/


refactor: add a util to grab the webpack nonce magic string

I believe this should be detected and replaced by webpack as intended.

@johannesnagl can you guys test this when you get a chance?

@probablyup thanks! will have a look at it on monday or tuesday!

@johannesnagl /bump

@probablyup sorry, did not make it in time because I couldn't build styled-components on my machine (wrong node version, …). will have a second look > August, 21st -> starting my first vacation with baby tomorrow.

Flow is failing, mind fixing that?

@mxstbr done

@mxstbr I threw together a little project to verify everything works and it appears to 👍  should be good to merge

sorry for not actively helping here - we're having a big rewrite which needs to be finished in two weeks.
Glad @probablyup came up with a project to verify the new code, though! Huge kudos!


Update FeaturesImpl and ProvidersImpl to derive from ReadableWrappers…

…Impl

Hi @anuchandy, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;

Can one of the admins verify this patch?


Order book reserve

not for pull. only for code review.

PR will be added again after all required code changes


FieldUtils.readField returns static fields

Summary
The issue came from hasFieldOrPropertyWithValue. FieldUtils.readField will consider values from static fields to be what we are looking for. I think static fields should be ignored.
This behavior is new. This test used to work in 3.14 and doesn't in 3.17.
Example
public class A {
  public static final String KEY = "KEY"

  Map<String, String> values = new HashMap<>();

  public String getKey() { // Not called because we will look for getKEY and not getKey. That's fine
     return values.get(KEY);
  }
}

A a = new A();
a.values.put(KEY, "x");

assertThat(a).hasFieldOrPropertyWithValue(A.KEY, "x"); // A.KEY is matched instead of the value in the map.

Hi @henri-tremblay, I would not expect assertThat(a).hasFieldOrPropertyWithValue(A.KEY, "x") to match the value in the map because values is an inner field of A. The behavior you mentioned can happen if A implements Map, see:
https://github.com/joel-costigliola/assertj-core/blob/3c6bb8a5d4f452c60cf3c8e336a03feba5e9b207/src/main/java/org/assertj/core/util/introspection/PropertyOrFieldSupport.java#L74-L78
Or did I misunderstood your example?
I tried to run the example on 3.14 and 3.17.2, both fail with:
Expecting
  <com.example.A@18bc90ba>
to have a property or a field named <"KEY"> with value
  <"x">
but value was:
  <"KEY">

Ignoring static fields could be a separate topic, but right now I cannot see how the assertion would verify the value of values.get(KEY).

A does implement map in my case. But it goes out before that.
Let me get back with a full example. I apologize, I did it a bit too quickly from an actual issue I had in my code.

I was able to reproduce the case you mentioned, the root cause is probably #1763.
I am not sure we should entirely ignore static fields as this could prevent the verification of non public values.
We currently verify the following, in order:

input name as property
input name as field
input name as map key, if the object is an instance of Map

Maybe it could be reasonable to ignore static fields during 2 and try them only if 3 failed. @joel-costigliola thoughts?

I think we should ignore static fields by default, hasFieldOrPropertyWithValue was meant to check instance's fields or properties.
If people want to check static fields we could introduce hasStaticFieldWithValue in class assertions.

I agree with @joel-costigliola.

My only concern is that FieldUtils.readField is a core element and the change of the behavior will affect other features (extracting and recursive comparison configuration, for example).
Or we would need to do a bigger refactoring to make sure only hasFieldOrPropertyWithValue is changed.

For recursive comparison, the intent was not to check static fields, for extracting I would argue the same.
It is a breaking change for sure but I feel it's a reasonable one as the initial goals was not to check static fields.
@scordio WDYT?

I agree, static field verification is really a corner case. Ok, I can drop the bad 👮♂ hat!

Fixed in https://github.com/assertj/assertj-core/commit/2f3eeb9f597dd162b06283345a07f083fcf5b3fa.
I also ignored synthetic fields


Fixes a bug where one-time events would repeat

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks, @andrew-t!


fix(runtime-core): don't inherit el if child is block node

fix #1903

We can simply check if the new vnode already has el (since dynamic children are already patched). It would be more efficient than a includes check on every child. See d4cc7b24


Option not to make batches

have option in forecaster not to not to make batches - here
have simple bool click command
tests:
try this command out, with CNN model and check it fails

Do you mind doing this @jacobbieker ?

Yep! Sounds good

thanks


Hard source cache between dev mode and build mode should be removed

I getting some weird result when trigger a production and and start the dev server right after that, the dev server emit some css files which is the result of ExtractTextPlugin. Should we handle this on our side ?
More for information, see https://github.com/MoOx/phenomic/pull/646

@thangngoc89 If your production and development configurations are different you'll need separate webpack cache directories. If you run the same configuration in two different webpack prcoesses with the same cache directory that could also cause weird race conditions. HardSource could do some kind of file system lock on the directory, that'd just help HardSource tell when situations like this happen and not really solve them for you.

Ah. That explains the weird behaviour I'm getting. You should a note to readme about different cache for dev and prod build.

@thangngoc89 good point.


More efficient transaction and balance flow emitting

Is your feature request related to a problem? Please describe.
As an SDK consumer, I'd like to see the transactions and balances flow emission new values regularly as they come while block synchronization is in progress.
Describe the solution you'd like
We already had an internal discussion about the proper handling of this auto flow emission, and for this, we could either trigger get of these values continuously while synchronization is in progress, or we could get more information about when to trigger the values get from the rust layer.
Additional context
We're waiting for the rust layer support.

I can't set it as blocked by for some reason, so I am attaching the issue in the comment https://github.com/zcash/librustzcash/issues/900

Closing as resolved by this commit.


Write output with utf-8 encoding

Doxy2Swig should write UTF-8 encoded strings to the output-file.

Fixed in #3039


fix: toPubkeyHex

Motivation

toRootHex() saved gc a lot, we should do the samething to pubkey
see https://github.com/ChainSafe/lodestar/pull/7036#issue-2472773106

Description

implement toPubkeyHex() for browser and nodejs in @lodestar/utils

for browser, refactor common code in new bytesIntoCharCodes() function

consume it when applicable

part of #7036

:tada: This PR is included in v1.22.0 :tada:


[Release] v1.0.0

Motivation
This PR updates the crate versions from v0.16.19 to v1.0.0.
This corresponds with the latest crates.io release - https://crates.io/crates/snarkvm.
CI run is here.

CI failure for check-fmt is expected until the fix is merged in by @d0cd.

The fix is implemented here: https://github.com/ProvableHQ/snarkVM/pull/26


feat: Google SignUp Functionality

What feature?
Authentication is a crucial aspect of modern web applications, ensuring that only authorized users can access certain features or data. Implementing Google Sign-In allows users to log in or register using their existing Google account credentials, streamlining the authentication process and enhancing security. This functionality leverages OAuth 2.0 protocols to authenticate users via Google's services, reducing the need for users to remember separate usernames and passwords for different applications.
Add screenshots

Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I agree to follow this project's Code of Conduct
[X] I want to work on this issue

This is present in the website, Closing this for now


Add a DynamicEnv?

It could make sense (for the sake of faster development for example) to have a "weakly typed environment", a sort of map into which components are registered, and which would have a Has instance for every component. If the component isn't it the map when requested , a runtime exception would be thrown.
This is somewhat reminiscent of registry, but less safe, because the presence of the components would not be checked at startup time, only when they are first requested for invocation. Also we still wouldn't be able to introspect the web of dependencies, which registry allows.
Could type-map help with implementing this? I wouldn't like to incur in an extra dependency, however.

Added in 00269ff12ba23e375386a10c1d80541be7e01fe7.


Alternative File Manager?

I'm not a big fan of elfinder. Can we use an alternative?
I like angular-filemanager but I'm not sure how you feel about angular.
Suggestions:

https://github.com/joni2back/angular-filemanager
https://github.com/trippo/ResponsiveFilemanager

https://github.com/trippo/ResponsiveFilemanager

It looks good, maybe in next versions I can add, before I need to review cloud support like this:
http://camaleon.tuzitio.com/store/plugins/11

Well, these are just the UI portion. On the server side, uploads would be handled by carrierwave or some other gem that handles uploads.

yes, I am agree with you!

Good!
I have a lot of problems to permit save files from elfinder to S3.
Maybe using carrierwave, fog...

Yeah fog makes it easy to store the files on S3, Rackspace or Google.

Yes, I used it in several projects.

Any news?
Is there anything I can help you?
Regards.

Not yet, I was working in the support for jruby but without success for now.

Ok no problem.
I could create a branch and work on it.
Do you have any preference in the file manager?

https://github.com/joni2back/angular-filemanager
https://github.com/trippo/ResponsiveFilemanager
Other?

I was reviewing the angular version, because it appears simple and clean.
Additionally I was analyzing which cloud gems to integrate: carrierwave with any cloud uploader or directly to use fog gem: (local, AWS, ...).
Please let me know if you need any help or you have any question.
Thank you Raul!

You're welcome.
I will try to do it. ;)
The angular version have a problem: https://github.com/joni2back/angular-filemanager/issues/56 but I will try to test it.
Regards.

Hi guys!
Do you know another file manager?
I had problems with both :(

https://github.com/joni2back/angular-filemanager: require include angularjs in the application (a lot of changes only for an file manager)
https://github.com/trippo/ResponsiveFilemanager: strongly related with a lot of php scripts

I'm thinking to adapt the https://github.com/raulanatol/el_finder_s3 plugin for to use Fog and try to change the UI of elFinder.
Another idea? Thanks
Regards!

I like angular-filemanager the best. Someone should be able to make a tinymce plugin for it.
I wasn't too impressed by responsive-file-manager. It seems like a less polished version of jquery-file-upload.
I only considered responsive-file-manager because it already had support for ckeditor and tinymce.

We could just keep elfinder for the UI. I'm not too fond of it but it has a decent UI.
Definitely need to clean up the backend and use something like carrierwave though.

The tinymce script is easy, first we need to integrate the file manager in "Media" section.

I can integrate angular into the backend but It can be cumbersome.

Hi guys!
I have created a new branch (https://github.com/raulanatol/camaleon-cms/tree/file_manager) with the first step of this changes (file manager in "Media" section).
Now I will to change the "handler" for to use Fog (with local filesystem, aws s3...)
Regards

great!

Hi!
I have upload new changes.

Fog integration
General site settings

To do:

Look and feel errors
File manager permissions
File manager compress action
Tinymce integration

Could you give me feedback?
Exist more todos?
Thx!

It appears great!
Not priority:
It would be good if you can add search field and filter certain file formats by extension or mimetypes.

Ok @owen2345 it's a good idea.
I will work in:

Look and feel errors
File manager permissions
File manager compress action
search field
formats filters

Could you work in the Tinymce integration? I was at something of a loss as to how to do it :(
Regards.

Hello, Im the author of angular-filemanager.
If you have any doubt to implement it, feel free to let me know. Regards.

I am working in the module version, which move all files (controllers, models, views, ...) in to camaleon_cms module and also you can indicate the prefix for the database table names, which permit to integrate an existent rails project into camaleon_cms without problems to overwrite models/controlls/... or database tables.
@raulanatol, Please commit your new file manager in the "moduler" branch to add your changes in this version.

Ok I'm working to adapt the differing views, only selection (with filters: video, audio...) and the default view of angular-filemanager.
Regards!

Hi!
I have created a PR to angular-filemanager (https://github.com/joni2back/angular-filemanager/issues/76). I hope to be merged soon.
I have created a PR (https://github.com/owen2345/camaleon-cms/pull/187) into the moduler branch with all the changes (AWS S3 compatibility included).
Regards!

Hi, regarding PR "Custom Changes", besides the code, can you give a brief description the changes?

Hi @joni2back!
In this PR we have added:

Filter by mime types (to permit show only images, only videos...) In camaleon-cms is used for to show only images in the explorer to select one.
Layout feature (default & selection). In camaleon-cms is used default layout to show all files in the server (media section on administration view) and in camaleon-cms is used selection layout like a modal after that click in select file dialog (for example in the edit page panel: http://camaleon.tuzitio.com/media/132/multi-language.png)
Added event dispatcher on smartClick event. With this feature in camaleon-cms we can know when an user select an item from the angular-filemanager.
We added customization attributes (navbar and tablecolumn) to permit hide or show actions of angular-filemanager in any case. For example to select an user avatar is not necessary show the create folder action in the navbar.
We added attribute type in remove handler method (We added documentation in API.md file)
We created two more attributes (autoEditFile and autoImagePreview) to enable o disable "edit file" and "show image preview" respectively.

Regards.

Great, I like very much the idea of use in a kind of "iframe" to select a file/folder for another application.
I'm in vacations right now, but in a few days I'll be merging this PR!!

@raulanatol I pushed all my changes for 2.0, please let me know if I can help you with anything, and dont forget to remove all files of elfinder.
Regards,

Hi @owen2345
I'm so sorry for the long delay for the response (need more hours in the day ;) ).
I will do it as soon as possible.
Regards.

Hi @owen2345
I have created a new PR: https://github.com/owen2345/camaleon-cms/pull/195
Regards.


ValueError with computing table

Traceback (most recent call last):
File "distmat.py", line 26, in
time_matrix , snapped_coords = osrm.table(latlon, output='dataframe', ids_origin=list_id, send_as_polyline=False)
File "build/bdist.linux-x86_64/egg/osrm/core.py", line 335, in table
File "/usr/lib64/python2.7/site-packages/pandas/core/generic.py", line 1121, in nonzero
.format(self.class.name))
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
What is going on with this? Running it on redhat 7

Hi!
This is probably a bit late but I guess your list_id object is not a list but either a pandas.Series or a numpy.ndarray.
This is why it fails like that when we are doing if not ids_origin: instead of doing something like if ids_origin is not None:.

OH that makes sense- thank you


[AutoRelease] t2-costmanagement-2023-04-26-66447(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/4089
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=985

issue link:https://github.com/Azure/sdk-release-request/issues/4089

/check-enforcer override


change logger name

What is the purpose of the change
the logger name was wrong
Brief changelog
XXXXX
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

i don't know why the CI check fail because i just do insignificant change.

You merge the latest code into your branch.
wavesZh<EMAIL_ADDRESS>周日18:53写道：

i don't know why the CI check fail because i just do insignificant change.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/dubbo/pull/4150?email_source=notifications&email_token=AEVONNHG33VYKZYEIE4OZHDPXJT3FA5CNFSM4HPNHDGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWIDAGQ#issuecomment-495988762,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEVONNBHL4UZPUJ3N3ZY5H3PXJT3FANCNFSM4HPNHDGA
.

but i have done it.

Ci is working
wavesZh<EMAIL_ADDRESS>周日19:06写道：

but i have done it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/apache/dubbo/pull/4150?email_source=notifications&email_token=AEVONNAIAZ57UC7776JNJB3PXJVL3A5CNFSM4HPNHDGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWIDI5A#issuecomment-495989876,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEVONNENVR2FGSJFNOJE4RDPXJVL3ANCNFSM4HPNHDGA
.

Codecov Report

Merging #4150 into master will decrease coverage by 0.01%.
The diff coverage is 100%.

@@             Coverage Diff             @@
##             master   #4150      +/-   ##
===========================================
- Coverage     62.92%   62.9%   -0.02%
- Complexity      505     506       +1
===========================================
  Files           768     768
  Lines         33064   33064
  Branches       5220    5220
===========================================
- Hits          20805   20799       -6
- Misses         9860    9865       +5
- Partials       2399    2400       +1

Impacted Files
Coverage Δ
Complexity Δ

.../remoting/transport/netty4/NettyClientHandler.java
68.42% <100%> (ø)
0 <0> (ø)
:arrow_down:

...mmon/threadpool/support/AbortPolicyWithReport.java
83.78% <0%> (-5.41%)
0% <0%> (ø)

...e/dubbo/remoting/transport/netty/NettyChannel.java
57.64% <0%> (-4.71%)
20% <0%> (-1%)

.../apache/dubbo/remoting/transport/AbstractPeer.java
63.04% <0%> (-4.35%)
0% <0%> (ø)

...bo/rpc/cluster/support/FailbackClusterInvoker.java
67.21% <0%> (-3.28%)
0% <0%> (ø)

...g/apache/dubbo/registry/consul/ConsulRegistry.java
60.26% <0%> (+0.66%)
27% <0%> (ø)
:arrow_down:

...ache/dubbo/registry/multiple/MultipleRegistry.java
64.08% <0%> (+1.4%)
22% <0%> (+2%)
:arrow_up:

...ng/exchange/support/header/HeartbeatTimerTask.java
78.94% <0%> (+5.26%)
0% <0%> (ø)
:arrow_down:

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 cf1a09d...f19ba82. Read the comment docs.


Pipeline clarifications

Semantic role labeling and parsing would need some revision in the explanations.

It seems to be suitable now.


Release 4.8.0

Closes #614

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (b3072d7) 96.84% compared to head (e3d98dc) 96.84%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #617   +/-   ##
=======================================
  Coverage   96.84%   96.84%
=======================================
  Files          50       50
  Lines        4984     4984
=======================================
  Hits         4827     4827
  Misses        157      157

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add cookiecutter-bare to README.rst

I added cookiecutter-bare to the Cookiecutter (Meta) category, because it is a programming language agnostic project. Decline this pull request, and let me know if I should create a new category instead! Thanks in advance for your time!

@michaeljoseph I added the Git category under Cookiecutter (Meta). I was originally going to add a GitHub category per your suggestion, but I added GitLab.com support and I plan on eventually adding Bitbucket.org support as well! Thanks! :smiley:


Why cannot parse cookie as string on client?

Hi all,
I don't know why my cookies cannot working on client?
Example:
import Cookies from 'universal-cookie';

console.log(new Cookies('foo=bar').get('foo'));

In browser will console.log undefined. Why? why?
Is there a bug or specification?

You cannot specify the cookies because you are in a browser environment and it is using the browser's cookies instead. If you really need to do that on the browser, you need to set cookies.HAS_DOCUMENT_COOKIE = false just like that:
const cookies = new Cookies('foo=bar');
cookies.HAS_DOCUMENT_COOKIE = false;
const test = cookies.get('foo');
expect(test).toBe('bar');

It is not documented because this is not typical. If you want to read cookies from a string, it might be easier to use the cookie library instead.


Change the default coolify 3000 port

Hi. I need to change the default 3000 port that coolify uses for the panel. How can I do that?

I've tried to make my own docker-compose and I've changed the install.sh file, but the script doesn't use a custom docker-compose file.

It's a must-have, many projects use port 3000.

This is a much needed feature since I want to use it behind cloudflare, which doesn't support port 3000

This is a much needed feature since I want to use it behind cloudflare, which doesn't support port 3000

Use Cloudflare Tunnel with the cloudflared process, which connects any port to Cloudflare for proxy.  Two nice things about are that you don't even have to open your firewall to it, and the new UI for setting up makes it super easy.
Of course, this does not solve the original post about having 2 services on the same port, where neither will allow a default port change.

Use Cloudflare Tunnel with the cloudflared process, which connects any port to Cloudflare for proxy. Two nice things are that you don't even have to open your firewall to it, and the new UI for setting up makes it super easy.

This is clever, I'm going to try it

@mkilinskidev don't use the script, create your own docker-compose file.
Here is mine, a slightly modified version from the image with scripts
version: '3.8'

services:
  coolify:
    image: coollabsio/coolify:latest
    restart: always
    # container_name: coolify
    ports:
      - target: 3000
        published: 3010
        protocol: tcp
        mode: host
    volumes:
      - 'coolify-db:/app/db'
      - 'coolify-logs:/app/logs'
      - 'coolify-ssl-certs:/app/ssl'
      - 'coolify-traefik-letsencrypt:/etc/traefik/acme'
      - 'coolify-letsencrypt:/etc/letsencrypt'
      - '/var/run/docker.sock:/var/run/docker.sock'
    env_file:
      - '.env'
    networks:
      - coolify-infra
  fluent-bit:
    image: coollabsio/coolify-fluent-bit:1.0.0
    # container_name: coolify-fluentbit
    volumes:
      - 'coolify-logs:/app/logs'
    networks:
      - coolify-infra
networks:
  coolify-infra:
    attachable: true
    name: coolify-infra

volumes:
  coolify-logs:
    name: coolify-logs
  coolify-db:
    name: coolify-db
  coolify-pgdb:
    name: coolify-pgdb
  coolify-ssl-certs:
    name: coolify-ssl-certs
  coolify-letsencrypt:
    name: coolify-letsencrypt
  coolify-traefik-letsencrypt:
    name: coolify-traefik-letsencrypt


Error after pre-release arrow upgrade: "out of order projection is not supported" (NOT FOR MERGING)

This PR demonstrates a test that fails with the code from https://github.com/apache/arrow-rs/pull/1682 in arrow (not included in arrow 14.0.0).
This PR pins datafusion to arrow right after https://github.com/apache/arrow-rs/pull/1682 was merged at commit https://github.com/apache/arrow-rs/commit/5b154ea40314dc2f09babbb363bf7f1fe439d4eb
To reproduce:
cargo test -p datafusion --lib

Results in:
failures:

---- physical_plan::file_format::parquet::tests::evolved_schema_filter stdout ----
thread 'physical_plan::file_format::parquet::tests::evolved_schema_filter' panicked at 'called `Result::unwrap()` on an `Err` value: ArrowError(ExternalError(ParquetError(General("out of order projection is not supported"))))', datafusion/core/src/physical_plan/file_format/parquet.rs:968:14

---- physical_plan::file_format::parquet::tests::evolved_schema_inconsistent_order stdout ----
thread 'physical_plan::file_format::parquet::tests::evolved_schema_inconsistent_order' panicked at 'called `Result::unwrap()` on an `Err` value: ArrowError(ExternalError(ParquetError(General("out of order projection is not supported"))))', datafusion/core/src/physical_plan/file_format/parquet.rs:819:14

failures:
    physical_plan::file_format::parquet::tests::evolved_schema_filter
    physical_plan::file_format::parquet::tests::evolved_schema_inconsistent_order

test result: FAILED. 656 passed; 2 failed; 1 ignored; 0 measured; 0 filtered out; finished in 2.00s

error: test failed, to rerun pass '-p datafusion --lib'
Error: Process completed with exit code 101.

Likely related https://github.com/apache/arrow-datafusion/issues/2453 - the DataFusion logic for handling column projection to parquet is currently silently broken and likely only working because of the schema adapter logic

🤔  I suppose we'll have to fix datafusion then...

the DataFusion logic for handling column projection to parquet is currently silently broken and likely only working because of the schema adapter logic

I don't understand how things can be broken but also be working...

I've not had time to look properly yet, but my suspicion is that the schema adapter logic knows what the expected output schema is and rearranges the columns - masking the fact what was returned by the parquet reader did not respect the projection order.

Filed https://github.com/apache/arrow-datafusion/issues/2543 to track


Proposal: co-locate queries with fragments

From my point of way, query without fragments are not complete and it would be better if we colocate query with fragments it need, like with fragments. I suggest to create new function createQuery which will accept Document and FragmentDefinition.

Neat idea! I think it would be great if you could pass queries and fragments around as one object rather than passing in options to watchQuery, mutate, etc.
Mind adding a code snippet of what it could look like?

It would be awesome if this allowed us to remove the fragments option from the API entirely, since that should really be part of the query.

This will be implemented in graphql-tag and can be tracked there.

It's done! https://github.com/apollostack/graphql-tag/pull/17

Still working on docs, here's a PR to GitHunt: https://github.com/apollostack/GitHunt-React/pull/147