Crash in GADMAdapterFlurryAppCircle.m line 185

Using version 7.9.2 and GoogleMobileAdsSDK 7.20
Fatal Exception: NSInvalidArgumentException
*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]

I'm facing the same issue, on iOS 11 devices, which made me disable Flurry mediation until this get fixed. Judging from my Podfile.lock, this adapter uses an old Google-Mobile-Ads-SDK (~> 7.12), which may be the cause of the crashes. Any updated would be greatly appreciated.

I have the same issue. Very annoying, it is the largest crash in my app. I have the latest SDK and AdMob adaptor ..

Here is a crash log
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'
Last Exception Backtrace:
0   CoreFoundation                       0x000000018f0fafe0 __exceptionPreprocess + 124
1   libobjc.A.dylib                      0x000000018db5c538 objc_exception_throw + 52
2   CoreFoundation                       0x000000018efe19b4 -[_NSPlaceholderDictionary initWithObjects:forKeys:count:] + 360
3   CoreFoundation                       0x000000018efe1824 +[NSDictionary dictionaryWithObjects:forKeys:count:] + 60
4   Xx                          0x000000010022ba78 -[GADMAdapterFlurryAppCircle adBanner:adError:errorDescription:] (GADMAdapterFlurryAppCircle.m:185)
5   Xx.                         0x00000001002e9904 -[FlurryAdBanner spaceClickActionDidFail:error:] + 148
6    Xx                          0x00000001002ceec0 -[FlurryAd reportClickFailedWithError:] + 260
7   EasyMeasure                          0x0000000100269d70 -[FlurryAdFullscreenController safariViewController:didCompleteInitialLoad:] + 548
8   SafariServices                       0x000000019db1e4a0 -[SFSafariViewController remoteViewController:didFinishInitialLoad:] + 116
9   SafariServices                       0x000000019db15eec -[SFBrowserRemoteViewController didFinishInitialLoad:] + 60
10  CoreFoundation                       0x000000018f100e80 invoking + 140
11  CoreFoundation                       0x000000018eff62c4 -[NSInvocation invoke] + 288
12  FrontBoardServices                   0x0000000190ca4884 FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK + 32
13  FrontBoardServices                   0x0000000190ca46f0 -[FBSSerialQueue _performNext] + 172
14  FrontBoardServices                   0x0000000190ca4aa0 -[FBSSerialQueue _performNextFromRunLoopSource] + 52
15  CoreFoundation                       0x000000018f0a942c CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 20
16  CoreFoundation                       0x000000018f0a8d9c __CFRunLoopDoSources0 + 536
17  CoreFoundation                       0x000000018f0a69a8 __CFRunLoopRun + 740
18  CoreFoundation                       0x000000018efd6da4 CFRunLoopRunSpecific + 420
19  GraphicsServices                     0x0000000190a41074 GSEventRunModal + 96
20  UIKit                                0x0000000195291c9c UIApplicationMain + 204
21  xx                          0x00000001000adf94 main (main.m:14)
22  libdyld.dylib                        0x000000018dfe559c start + 0

@cujo30227 I don't think they are going to fix it. I have reported the issue 4 months ago and nobody follows up. Better remove the Flurry adapter if the ad revenue is low

The current version of our adapter is 8.2.1. Note the highest version of iOS Flurry supports now is iOS 8. If you use adapter version 7.9.2 you will be forced to download an older Flurry sdk version that has the crash issue you refer to here.
To be clear you need Flurry adapter 8.2.1 and Flurry sdk version 8.3.4.
Please use the following in your Podfile:
platform :ios, '8.0'

target 'NativeAdvancedExample' do
  pod 'Google-Mobile-Ads-SDK'

  pod 'Flurry-iOS-SDK/FlurrySDK' #Analytics Pod
  pod 'Flurry-iOS-SDK/FlurryAds' #Advertising Pod (requires Analytics)

  pod 'AdMobMediationAdapterFlurry', '~> 8'
end

Here is the expected output:
Installing AdMobMediationAdapterFlurry (8.2.1)
Installing Flurry-iOS-SDK (8.3.4)
Installing Google-Mobile-Ads-SDK (7.28.0)

Hello,
Yes, I have that all. In my live build I have the Flurry SDK 8.3.4. I have
the latest adaptor from Github (there is no version number mentioned).
When running the exact Podfile you description, it downloads lower versions
than you mentioned. The adaptor I have in my build, however, is exactly the
same date stamp and size, so I'm really using the last versions of both the
adaptor and the SDK....!
Installing AdMobMediationAdapterFlurry (8.2.1)
Installing Flurry-iOS-SDK (8.3.1)
Installing Google-Mobile-Ads-SDK (7.25.0)
The crash is 75% of my crashes in the app...
On Mon, Feb 5, 2018 at 11:51 PM, Flurry Bot<EMAIL_ADDRESS>wrote:

The current version of our adapter is 8.2.1. Note the highest version of
iOS Flurry supports now is iOS 8. If you use adapter version 7.9.2 you will
be forced to download an older Flurry sdk version that has the crash issue
you refer to here.
To be clear you need Flurry adapter 8.2.1 and Flurry sdk version 8.3.4.
Please use the following in your Podfile:
platform :ios, '8.0'
target 'NativeAdvancedExample' do
pod 'Google-Mobile-Ads-SDK'
pod 'Flurry-iOS-SDK/FlurrySDK' #Analytics Pod
pod 'Flurry-iOS-SDK/FlurryAds' #Advertising Pod (requires Analytics)
pod 'AdMobMediationAdapterFlurry', '~> 8'
end
Here is the expected output:
Installing AdMobMediationAdapterFlurry (8.2.1)
Installing Flurry-iOS-SDK (8.3.4)
Installing Google-Mobile-Ads-SDK (7.28.0)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flurry/flurry-adapter-admob-ios/issues/10#issuecomment-363248586,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AExmJHt5nH5zvvcAK2hHgEALMjw6hqYNks5tR4XkgaJpZM4PlGZT
.

Run 'pod update' instead of 'pod install'. I expect this to pull in Flurry 8.3.4
But if that doesn't work for you use this:
pod 'Flurry-iOS-SDK/FlurrySDK', '~>8.3.4' #Analytics Pod
pod 'Flurry-iOS-SDK/FlurryAds', '~>8.3.4'  #Advertising Pod (requires Analytics)
Let me know if you get an error.
We have spent some hours testing apps today using the adapter. I have not yet been able to reproduce any crash. To be clear I believe the older sdk is causing the crash, and not the adapter.

@cujo30227 Can you send over these details to<EMAIL_ADDRESS>-Flurry api key
-Flurry ad unit name
-AdMob ad unit
I'll do some further testing.

5 months after the initial issue was posted, there is still no resolution. From the crash log, it should be a pretty straightforward crash to solve ?! Even the line number in the code is mentioned! Still, a couple of hundreds of users per day are experiencing a crash due to Flurry ads.

the crash pertains to the banner ad serving - we are in the process of rebuilding this offering (instead of fixing the broken parts). apologies for the inconvenience

Hello
Thanks for the response and update ! When do you expect this new build to become available to us?

+1

+1

Hello, we are waiting on a fix since months now. Is there any info on the ETA of the promised update?
Thanks

I was told that 8.6.0 resolves this issue. https://github.com/flurry/flurry-adapter-admob-ios/pull/13

It doesn't :( it is crashing even more than the previous version. I now see two major crashes, first one is the same as before:

[GADMAdapterFlurryAppCircle adBanner:adError:errorDescription:] line 185
SIGABRT - 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'

+[FlurryiOSUtil getIdentifierForVendor]
SIGSEGV
Very disappointed..

+1, any resolution to the increased crash behavior of the last version?

+1


android: ensure only one FlutterEngine gets created

When handling multiple messages in a row, UnifiedPushReceiver could create multiple FlutterEngines: onReceive() is called, but Plugin.pluginChannel stays null before Plugin.onAttachedToEngine() is invoked.
Ensure we create only a single FlutterEngine per UnifiedPushReceiver.

Gentle ping

@p1gp1g?


Optimize macros

There is a lot of variety here (even gcc and clang can't agree), but lots of compilers support a way to enable or disable optimizations for specific functions.
I'm thinking three macros:

HEDLEY_OPTIMIZE_OFF
HEDLEY_OPTIMIZE_ON
HEDLEY_OPTIMIZE_AGGRESSIVE

Ugh, bit of a mess since compilers are very different here.

GCC has an optimize(X) function attribute
Clang has an optnone function attribute, not sure how to turn them on.
MSVC has #pragma optimize, which applies to the first function after the pragma
IBM XL has #pragma option_override(funcname, "opt(level,X)")
ARM has #pragma Onum (as well as #pragma push/pop)
ODS has #pragma opt X (funcname)
Cray has #pragma _CRI [no]opt
I don't see anything for TI.

So:

For just HEDLEY_OPTIMIZE_*, we could cover GCC/MSVC and maybe clang.
HEDLEY_OPTIMIZE_*(funcname) (which must come immediately before the function you want to optimize, so we can also cover GCC/MSVC/clang) could also cover IBM XL and ODS.
ARM would require a second macro after the function to pop the stack. Ugly and fragile, but possible.

I don't see a reasonable way to implement Cray's version ☹. I'm not aware of push/pop pragmas, so there is no way to restore the default value after the function.
My inclination is the first variant. It's unsurprising, and GCC/MSVC/clang covers most users.

I decided not to do this. Disabling optimizations should really only be done to work around a compiler bug, so I don't see a need to do it portably. Increasing optimizations is pretty hard to do portably, and again you should probably be doing it globally instead of for a single function (perhaps only for release builds, if build time is a problem).
If someone has a legitimate use case I'm happy to reconsider, but for now I'm closing this.


Fix ApplicationController#coerced_query_link

The action that lists the results of a search has changed between master to bootstrap4
add_query_param no longer works because

There's no route to .../index_action + params id: id. So I've appended /id to the path.
And I have to append the query to that.

Note also that there's no helper path to index_action(/:id)
(cherry picked from commit 955070ba984802a79d2dfc6832291273b4e6f9f1)

Hi Joe - yes, add_query_param should be replaced that way.
Those are exactly the methods i'm going to be revising tomorrow. :)

Coverage decreased (-54.0%) to 28.551% when pulling 4151076d04690ebfcf2947869d1efdcad2d81d9c on bootstrap4-coerced_query_link into f44a5a39d21cb67f0da11fbec80ba50b27b87006 on bootstrap-4.

Thanks for the feedback!
I will merge this (and other hotfixes) today so that I don't have to do the
same fix on multiple branches.
On Mon, Jun 29, 2020 at 3:05 PM andrew nimmo<EMAIL_ADDRESS>wrote:

Hi Joe - yes, add_query_param should be replaced that way.
Those are exactly the methods i'm going to be revising tomorrow. :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/594#issuecomment-651394322,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAALDFHU5YHQOIYPIS5VVXDRZEF2VANCNFSM4OLUEB5A
.


Installation instructions

Hi,
Looks like you're done some pretty amazing work here. Some short installation instructions for those of us who aren't pros at vim or vim-plug would be very helpful.
Thanks.

Thanks for the feedback @chaoticbob. What kind of instructions do you imagine? Are you already using a plugin manager of some sort?


UserWarning: Using torch.cross without specifying the dim arg is deprecated.

While running the final prediction step of the pipeline the following warning is displayed
util.py:230: UserWarning: Using torch.cross without specifying the dim arg is deprecated.
Please either pass the dim explicitly or simply use torch.linalg.cross.
The default value of dim will change to agree with that of linalg.cross in a future release. (Triggered internally at ../aten/src/ATen/native/Cross.cpp:63.)
  Z = torch.cross(Xn,Yn)

python                    3.10.14
torch                     2.2.1

Fixed in merged PR #114


Do not hide muted topics in muted streams under "more topics"

As discussed on CZO, hiding muted topics in muted streams under "more topics" creates confusion. Instead, a muted topic in a muted stream should be treated just like a "default" topic in a muted stream for the purposes of ordering in the left sidebar.
Muted topics in unmuted streams should behave just as they do now.

@prakhar1144 @Ddharmani3 @palashb01 Does one of you have time to pick this one up?

@zulipbot claim


Make DatabaseManager Usable Anywhere

Title may change, I'm not good at titles...
The current implementation of the DatabaseManager class expects the instances to be wrapped in a context manager and then passed around. While this is fine, and in my opinion ideal as it guarantees the database connection will be closed, it adds a lot of complexity to GGTTV. Notably, a single instance must be maintained for the lifetime of the application, and there are no protections for accidentally creating a new instance. A new instance would, at best, cause an unhandled exception, or at worst, cause race conditions and data corruption.
My proposal is to make the DatabaseManager a static class that maintains a self-instance, and passes along that self-instance. This means there should only be a single connection to the database, and allows the manager to work between two threads, necessary once the bot introduces a web UI.
On top of this, the DatabaseManager class can implement reference counting as part of its in-built context manager to determine when to finally close the connection.
As the DatabaseManager will no longer be passed around, there is a lot of code to update, with each place it is needed being wrapped in a with statement. To ease the pain of deeply nested indentation, I also propose having a generator function that yields the DatabaseManager inside a with statement. This allows a single function call that can handle cleanup without increasing the scope level anywhere a DB Manager is used.
TL;DR and proposed goals:

[ ] Have DatabaseManager statically wrap a self-instance to be used
[ ] Implement reference counting to determine when to drop the DB connection
[ ] Remove function parameters passing around a single instance of a DatabaseManager
[ ] Implement a generator function to wrap with statements (to prevent nesting an extra scope)

Began doing some testing on this, and a generator is not quite the correct solution. There is also some question about whether or not this is the correct thing to do, more on that below. For now, here is a basic mock example of how to wrap a context manager inside a function that returns the context-wrapped object:
class TestClass:
    def __init__(self):
        pass

    def __enter__(self):
        return self

    def __exit__(_):
        pass

    def test_func(self):
        print("Test!")

    def __del__(self):
        print("TestClass deleted")

def test_generator():
    with TestClass() as t:
        return t

def test_the_class():
    t = test_generator()
    t.test_func()

test_the_class()

While I personally think this is a decent enough solution, it avoids needing to nest arbitrarily-deep, there are some potential reasons to avoid this:

It muddies the execution order significantly. In this example, test_the_class is called, which calls test_generator, which returns an instance of TestClass. However, most people would expect that after the line t = test_generator(), the function test_generator will be finished and have no further execution. However, because it wraps a context manager, test_the_class actually returns first, which then runs the cleanup code in test_generator. So the execution order can be confusing.
This is more of a retrospective on this entire concept: the entire idea that this encapsulates, a reference-count-controlled static class that controls a single instance of itself, is based on one major assumption: there will always be at least one reference to DatabaseManager. While this constraint is provably true in the current codebase, the constraint could be made false in the future. This poses a new question: should the connection to the database always be maintained? There isn't a good answer for this; creating multiple connections throughout the lifetime of the program adds a lot of overhead, since every time the DatabaseManager is instanced, it also checks to ensure the database both exists and has been generated.

With all of this in mind, I still think this is a good idea, but I will sit on this for a while as I suspect this will be worked into 2.0.0 at the earliest and 2.1.0 if 2.0.0 ends up being a much larger update than originally intended (its biggest feature is simply the web UI, but there are a lot of smaller changes slated for that release).


feat(lineage): improved lineage performance + simplified layout logic + some easter eggs

This PR accomplishes a few things:

A variety of lineage performance optimizations:
a) Fetch relationships in batch rather than linear
b) Fetch relationships directly via a method call rather than thru http
c) avoid batch-getting leaf node edges when urn and type are the only two fields being fetched
d) delay rendering upstream / downstream relationships on entity profile until they are scrolled to
e) remove all recursive components of graph rendering logic. The cost of rendering the graph will now always be O(n + e) where n is the number of nodes and e is the number of edges in the graph.

Simplified layout logic. All layout logic is now contained by the layoutTree.ts file. Each node is manually positioned and each edge is manually laid out. The result is much more predictable.

Simplified fetching logic. Now all relationships are fetched via the relationships method- we are able to safely delete downstreamLineage and upstreamLineage graph relationships.

A few easter eggs! Hovering over nodes causes their incoming and outgoing edges to highlight. Clicking and holding on a node lets you drag it around.

Breaking Changes
We are removing the deprecated upstreamLineage and downstreamLineage graphql fields. Users should use the relationship() methods instead for more fine-grained control over relationship fetching.
Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable)

@aseembansal-gogo - thanks for asking. This only removes deprecated read APIs. The write apis are unaffected by this change. Storage layer is also unaffected- no data migration is required.


Does show prop still work?

In the Code Sandbox link below, if you set react-month-picker version greater than or equal to 2.0.1, show prop doesn't work anymore.
https://codesandbox.io/s/holy-lake-636cb?file=/src/index.js

That's what it seems like to me. You will need to call the show() method via refs. For example:
import React from 'react';
import MonthPicker from 'react-month-picker';

const Example = () => {
  const [yearMonth, setYearMonth] = React.useState({ year: 2020, month: 9 });
  const monthPickerRef = React.useRef<MonthPicker>(null);

  const showPicker = () => {
    if (monthPickerRef && monthPickerRef.current) {
      monthPickerRef.current.show();
    }
  };

  const handlePickerChange = (year: number, month: number) => {
    setYearMonth({ year, month });
  };

  return (
    <MonthPicker
      ref={monthPickerRef}
      value={yearMonth}
      onChange={handlePickerChange}
    >
      <span onClick={showPicker}>
        {yearMonth.month} {yearMonth.year}
      </span>
    </MonthPicker>
  );
};


x/blog/content/context: update google/google.go to migrate to the new search API

What version of Go are you using (go version)?

$ go version
1.12.1

Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
Mac OSX darwin amd64
go env Output
$ go env

What did you do?

https://blog.golang.org/context/google/google.go
In func Search the URL
req, err := http.NewRequest("GET", "https://ajax.googleapis.com/ajax/services/search/web?v=1.0", nil)
is no longer valid. Using it directly in my browser with a query gave me the following response:
{"responseData": null, "responseDetails": "The Google Web Search API is no longer available. Please migrate to the Google Custom Search API (https://developers.google.com/custom-search/)", "responseStatus": 403}
What did you expect to see?
Expected to see search results
What did you see instead?
Saw the response above

I'm not able to reproduce this. When I navigate to that URL I see the following:
https://blog.golang.org/context/google/google.go
// +build OMIT
// Package google provides a function to do Google searches using the Google Web
// Search API. See https://developers.google.com/web-search/docs/
//
// This package is an example to accompany https://blog.golang.org/context.
// It is not intended for use by others.
//
// Google has since disabled its search API,
// and so this package is no longer useful.
package google
import (
"context"
"encoding/json"
"net/http"
"golang.org/x/blog/content/context/userip"

)
// Results is an ordered list of search results.
type Results []Result
// A Result contains the title and URL of a search result.
type Result struct {
Title, URL string
}
// Search sends query to Google search and returns the results.
func Search(ctx context.Context, query string) (Results, error) {
// Prepare the Google Search API request.
req, err := http.NewRequest("GET", "https://ajax.googleapis.com/ajax/services/search/web?v=1.0", nil)
if err != nil {
return nil, err
}
q := req.URL.Query()
q.Set("q", query)
// If ctx is carrying the user IP address, forward it to the server.
// Google APIs use the user IP to distinguish server-initiated requests
// from end-user requests.
if userIP, ok := userip.FromContext(ctx); ok {
	q.Set("userip", userIP.String())
}
req.URL.RawQuery = q.Encode()

// Issue the HTTP request and handle the response. The httpDo function
// cancels the request if ctx.Done is closed.
var results Results
err = httpDo(ctx, req, func(resp *http.Response, err error) error {
	if err != nil {
		return err
	}
	defer resp.Body.Close()

	// Parse the JSON search result.
	// https://developers.google.com/web-search/docs/#fonje
	var data struct {
		ResponseData struct {
			Results []struct {
				TitleNoFormatting string
				URL               string
			}
		}
	}
	if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
		return err
	}
	for _, res := range data.ResponseData.Results {
		results = append(results, Result{Title: res.TitleNoFormatting, URL: res.URL})
	}
	return nil
})
// httpDo waits for the closure we provided to return, so it's safe to
// read results here.
return results, err

}
// httpDo issues the HTTP request and calls f with the response. If ctx.Done is
// closed while the request or f is running, httpDo cancels the request, waits
// for f to exit, and returns ctx.Err. Otherwise, httpDo returns f's error.
func httpDo(ctx context.Context, req *http.Request, f func(*http.Response, error) error) error {
// Run the HTTP request in a goroutine and pass the response to f.
c := make(chan error, 1)
req = req.WithContext(ctx)
go func() { c <- f(http.DefaultClient.Do(req)) }()
select {
case <-ctx.Done():
<-c // Wait for f to return.
return ctx.Err()
case err := <-c:
return err
}
}

Are you still experiencing this issue?

Hi,
I am sorry if I was not clear in my previous message. And yes I am still experiencing this issue. Here are the steps I took.
I cut and pasted the code (I liked the tutorial) and tried it straight out. I got a timeout on1 second and then 10 seconds. The URL I entered was
http://localhost:8080/search/?q=Golang&t=10 and it gave me:
0 results in 704.929625ms: timeout 10s
So I took out the url from google.go added a query to it and tried it in my browser.
https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=golang
That is when I got the message telling me that I had to use a different url.
{“responsedata “ : null, “responseDetails “: “The Google Web Search API is no longer available. Please migrate to the Google Custom Search API(https://developers.google.com/custom-search/)”, “responseStatus”= 403}
I pasted this message from my browser in my issue report. Which may be misleading. I hope this email is more helpful.
Thx VincentF

On Sep 5, 2019, at 9:23 AM, katiehockman<EMAIL_ADDRESS>wrote:
I'm not able to reproduce this. When I navigate to that URL I see the following:
https://blog.golang.org/context/google/google.go
Are you still experiencing this issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@iridiscent thanks for the additional context. I'm still not sure I completely understand the issue, but looping in @andybons who may know more.

As it says in the error message:

The Google Web Search API is no longer available. Please migrate to the Google Custom Search API (https://developers.google.com/custom-search/)

We don’t maintain that API. Just the example, which we likely won’t update as blog entries are considered somewhat immutable.
I’m sure there are other APIs you could adapt this workflow to, but we can’t do anything in this case.
Thanks.

No problem. Will work around.
Thx VincentF

On Sep 6, 2019, at 10:39 AM, Andrew Bonventre<EMAIL_ADDRESS>wrote:
As it says in the error message:
The Google Web Search API is no longer available. Please migrate to the Google Custom Search API (https://developers.google.com/custom-search/)
We don’t maintain that API. Just the example, which we likely won’t update as blog entries are considered somewhat immutable.
I’m sure there are other APIs you could adapt this workflow to, but we can’t do anything in this case.
Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Solved issue #85

Solution to issue #85: Burst Balloons

Can you please add comments for easy understanding for beginners.

Please check that if you have added your problem in that particular coding platform folder.


Deploying to Now by Zeit causes 128 error

I'm hosting my website on Now by Zeit. They have a CI that pulls recently pushed changes, build my website and provide a development test url for me. I have added lefthook today and now seeing the below error. Lefthook is installed via a package.json postinstall script and I think this is the issue here because .git isn't available in the CI. I can not find any referrence for CI integrations with lefthook. Do I even need a postinstall command?
[4/4] Building fresh packages...
--
08:12:25 PM | success Saved lockfile.
08:12:25 PM | $ lefthook install
08:12:25 PM | exit status 128
08:12:25 PM | error Command failed with exit code 1.
08:12:25 PM | info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
08:12:25 PM | Error: Exited with 1
08:12:25 PM | at ChildProcess.<anonymous> (/zeit/5a5e1dc84b69412d/.build-utils/.builder/node_modules/@now/static-build/dist/index.js:33884:24)
08:12:25 PM | at ChildProcess.emit (events.js:210:5)
08:12:25 PM | at ChildProcess.EventEmitter.emit (domain.js:475:20)
08:12:25 PM | at maybeClose (internal/child_process.js:1021:16)
08:12:25 PM | at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
08:12:25 PM | worker exited with code 20 and signal null
08:12:28 PM | Done with "package.json"

Postinstall script checking standart CI env variable. Postinstall will be skipped if the variable is present. Try to add it
https://github.com/Arkweid/lefthook/blob/master/.npm/postinstall.js#L4

Yes, that worked! I also noticed that Now sets this env but I had postinstalled lefthook by my own in my package.json, which was the issue. I didn't know lefthook installs itself after installation :)


Problem with information bubble on firefox

Hello! Sorry, I'm not used to github, so I don't know if it's the right place, but I just realize there is a problem on firefox.
When you apply H1, H2, H3 to a selected text, the associated tooltip stays "stuck" when it reappears the next time you want to apply another one. It makes that soon, the first ones (H1, H2...) are not accessible anymore, as seen here :
https://i.imgur.com/g1Rq1WH.png
The problem is not present on chrome.

Should be fixed in 1f5ee77d5fbabc41ac83fdcdf7348ce07a680e65, thanks!


Deprecate the unused AttributedCodeListing type

Bug/issue #, if applicable:
Summary
This removes the AttributedCodeListing type that isn't used for anything. There's no way for developers to pass this form of code listings to DocC (unless they use some other tool that imports the SwiftDocC module). AttributedCodeListing.Line appears in public API DocumentationNode.Name.symbol but DocC only ever creates symbol name values with a single plain text token.
Note, AttributedCodeListing is a feature that was superseded by Snippets and has never been available via the docc command line tool.
Dependencies
None.
Testing
This is a non-functional change. Everything should continue to behave as before. There's nothing in particular to test.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] ~Added~ Updated tests
[x] Ran the ./bin/test script and it succeeded
[x] ~Updated documentation if necessary~ Not applicable

@swift-ci please test

@swift-ci please test

I'm not too familiar with the nuances of the type that is being deprecated so I'm not comfortable approving, but the code does look correct to me.

I think @franklinsch is probably the only other person on the team who remembers this type 😄

@swift-ci please test


How to add annotations to edges of a SimpleDiGraph?

I have a SimpleDiGraph that I want to add the name of each edge on, but I don't know how I can do that. This is my SimpleDiGraph plot:

using Graphs, CairoMakie, GraphMakie

graph = SimpleDiGraph(4)
nodes = ["Q1", "Q2", "Q3", "Q4"]
# edges = [(1, 2), (1, 3), (1, 4), (1, 1), ..., (4, 4)]
for edge in edges
    add_edge!(graph, edge[1], edge[2])
end

graphplot(
    graph,
    names=nodes
)

Suppose I want to add arbitrary numbers as annotations on edges. How can I do that?

Interesting, you are loding GraphMakie but the plot looks more like a `GraphRecipes.jl plot. Check their documentation for that feature.
In GraphMakie there is the elabels keyword argument. See the examples and the graphplot docstring.

Oh, Thanks!Yes, My bad 😅. This mistake is because I had imported many packages into my environment, so I didn't realize I had been using which graphplot, The one that relates to GraphRecipes or GraphMakie.


Safari fingerprint for MacOS v18_0 not matching the fingerprint for v17_0 impersonate

The question
The safari browser v17_0 impersonate fingerprint observed on https://tls.browserleaks.com/json is:
{
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15",
  "ja3_hash": "773906b0efdefa24a7f2b8eb6985bf37",
  "ja3_text": "771,4865-4866-4867-49196-49195-52393-49200-49199-52392-49162-49161-49172-49171-157-156-53-47-49160-49170-10,0-23-65281-10-11-16-5-13-18-51-45-43-27-21,29-23-24-25,0",
  "ja3n_hash": "44f7ed5185d22c92b96da72dbe68d307",
  "ja3n_text": "771,4865-4866-4867-49196-49195-52393-49200-49199-52392-49162-49161-49172-49171-157-156-53-47-49160-49170-10,0-5-10-11-13-16-18-21-23-27-43-45-51-65281,29-23-24-25,0",
  "ja4": "t13d2014h2_a09f3c656075_14788d8d241b",
  "ja4_r": "t13d2014h2_000a,002f,0035,009c,009d,1301,1302,1303,c008,c009,c00a,c012,c013,c014,c02b,c02c,c02f,c030,cca8,cca9_0005,000a,000b,000d,0012,0015,0017,001b,002b,002d,0033,ff01_0403,0804,0401,0503,0203,0805,0805,0501,0806,0601,0201",
  "ja4_o": "t13d2014h2_de3eb69493ac_65135c5c1a6b",
  "ja4_ro": "t13d2014h2_1301,1302,1303,c02c,c02b,cca9,c030,c02f,cca8,c00a,c009,c014,c013,009d,009c,0035,002f,c008,c012,000a_0000,0017,ff01,000a,000b,0010,0005,000d,0012,0033,002d,002b,001b,0015_0403,0804,0401,0503,0203,0805,0805,0501,0806,0601,0201",
  "akamai_hash": "959a7e813b79b909a1a0b00a38e8bba3",
  "akamai_text": "2:0;4:4194304;3:100|10485760|0|m,s,p,a"
}

Whereas, the safari v18_0 fingerprint on a MAC laptop observed on https://tls.browserleaks.com/json is:
{
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15",
  "ja3_hash": "78d450322efcbf3f5d2d92f9d7769566",
  "ja3_text": "771,49199-49171-49191-49200-49172-49192-156-47-60-157-53-61-65-132-49195-49324-49326-49161-49187-49196-49325-49327-49162-49188-158-51-103-159-57-107-69-136-4865-4866-255,0-10-11-13-23-43-51,23-29-24-256-257-258,0",
  "ja3n_hash": "78d450322efcbf3f5d2d92f9d7769566",
  "ja3n_text": "771,49199-49171-49191-49200-49172-49192-156-47-60-157-53-61-65-132-49195-49324-49326-49161-49187-49196-49325-49327-49162-49188-158-51-103-159-57-107-69-136-4865-4866-255,0-10-11-13-23-43-51,23-29-24-256-257-258,0",
  "ja4": "t13d350700_98f6b5ae8975_e74d7d97755c",
  "ja4_r": "t13d350700_002f,0033,0035,0039,003c,003d,0041,0045,0067,006b,0084,0088,009c,009d,009e,009f,00ff,1301,1302,c009,c00a,c013,c014,c023,c024,c027,c028,c02b,c02c,c02f,c030,c0ac,c0ad,c0ae,c0af_000a,000b,000d,0017,002b,0033_0401,0804,0403,0501,0805,0503,0601,0806,0603",
  "ja4_o": "t13d350700_f6fb28e5a594_070f1dc89d25",
  "ja4_ro": "t13d350700_c02f,c013,c027,c030,c014,c028,009c,002f,003c,009d,0035,003d,0041,0084,c02b,c0ac,c0ae,c009,c023,c02c,c0ad,c0af,c00a,c024,009e,0033,0067,009f,0039,006b,0045,0088,1301,1302,00ff_0000,000a,000b,000d,0017,002b,0033_0401,0804,0403,0501,0805,0503,0601,0806,0603",
  "akamai_hash": "",
  "akamai_text": ""
}

Neither the ja3n nor the ja3 fingerprints match. So, it would not be possible to use safari17_0 impersonate with safari version 18_0 and above on a mac.
As for iOS, I see that safari is on v17_6_1 and it still matches the fingerprint of safari17_2_ios. Fingerprint might change for v18_0 for iOS. Will keep you posted.
Is a new impersonate in the works for safari? How should we handle this?

Could please elaborate on your platform details, my Safari does not share the same fingerprints with yours.

Could please elaborate on your platform details, my Safari does not share the same fingerprints with yours.

Curl-Cffi: v0.7.3
MacOS:
Chip: Apple M1 Pro
macOS: macOS Sonoma (v14.7.1)

Safari on Mac: Version 18.1 (196<IP_ADDRESS>.5, 19619)

Could please elaborate on your platform details, my Safari does not share the same fingerprints with yours.

The latest curl-cffi library version available is 0.7.3, but in the documentation, I do see support for safari18_0 and safati18_0_ios. But, this is on v0.8.0 which I am unable to install. Is this version even available for use?

But, this is on v0.8.0 which I am unable to install. Is this version even available for use?

Hey, there is some issue with the GitHub actions, the macOS and Windows wheels were not generated. And that's why v0.8 has not been published.

Hey, there is some issue with the GitHub actions, the macOS and Windows wheels were not generated. And that's why v0.8 has not been published.

I was using safari17_0 for Desktop and safari17_2_ios for Mobile devices until now. I believe the fingerprint has changed for Safari v18 on both Desktop and Mobile devices. Due to this, I am being detected as a bot by websites that use TLS fingerprinting techniques. What can we do until v18 impersonate is available for use to avoid being blocked?

pip install curl-cffi==0.8.0b1

Linux only for now.

pip install curl-cffi==0.8.0b1

Linux only for now.

Yes, this works on a Linux device. Can we expect similar support for a Mac device?


Something to do during account creation

There should be something fun to do during account creation --- something as simple even as an embedded js single player pong game heh i.e. "Press p while you wait to play pong!"

Cool.  Display a price ticker of most recent trades?

So fast now essentially irrelevant + irrelevant come launch


Failed to compile using msys2 on Windows.

I am not sure if there are any issues with installing msys2 on Windows. Here is my compilation process:
`
xxx@xxx UCRT64 ~
$ pacman -S vim make gcc git
warning: vim-9.1.0648-1 is up to date -- reinstalling
warning: make-4.4.1-2 is up to date -- reinstalling
warning: gcc-13.3.0-1 is up to date -- reinstalling
warning: git-2.46.0-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (4) gcc-13.3.0-1  git-2.46.0-1  make-4.4.1-2  vim-9.1.0648-1
Total Installed Size:  274.97 MiB
Net Upgrade Size:        0.00 MiB
:: Proceed with installation?
Resolving deltas: 100% (5904/5904), done.
xxx@xxx UCRT64 ~
$ ./configure
-bash: ./configure: No such file or directory
xxx@xxx UCRT64 ~
$ cd /c/msys64/home/xxx/Melon
xxx@xxx UCRT64 /c/msys64/home/xxx/Melon
$ ./configure
event                   [SELECT]
sendfile                [NOT support]
writev                  [NOT support]
__USE_UNIX98            [support]
mmap                    [NOT support]
constructor             [support]
Installation Path       [/home/xxx/libmelon]
Melang script Path      [/home/xxx/lib/melang]
Melang dylib Path       [/home/xxx/lib/melang_dynamic]
Configure done!
xxx@xxx UCRT64 /c/msys64/home/xxx/Melon
$ make
test -d objs || mkdir objs
test -d lib || mkdir lib
gcc -Iinclude -c -Wall  -Werror -Wno-error=use-after-free -Wno-use-after-free -O3 -fPIC -DMLN_ROOT="C:/msys64/home/xxx/libmelon" -DMLN_NULL="nul" -DMLN_LANG_LIB="C:/msys64/home/xxx/lib/melang" -DMLN_LANG_DYLIB="C:/msys64/home/xxx/lib/melang_dynamic" -DMLN_SELECT   -DMLN_USE_UNIX98    -DMLN_CONSTRUCTOR -DMSYS2  -o objs/mln_aes.o src/mln_aes.c
In file included from include/mln_aes.h:9,
from src/mln_aes.c:8:
include/mln_alloc.h:13:10: fatal error: sys/mman.h: No such file or directory
13 | #include <sys/mman.h>
|          ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:267: objs/mln_aes.o] Error 1
xxx@xxx UCRT64 /c/msys64/home/xxx/Melon
$
`
It seems that the Windows platform does not include the sys/mman.h file, which should only exist in Unix systems. I don't understand Unix at all.
According to the search results,<sys/mman.h>is a Unix header file and is not available on Windows. So, have the compilation instructions in the manual not been updated?

The compilation instructions are: http://doc.melonc.io/en/install.html
msys2
msys2 fully supports Melon's features and is therefore the recommended installation method on Windows.
Installing msys2 and dependencies
msys2 can be downloaded and installed from https://www.msys2.org/. Then, choose MSYS2 UCRT64 to start the msys2 command line environment, and enter the following command to install the required dependencies:
pacman -S vim make gcc git
Installing Melon
### This step is exactly the same as the installation steps in the UNIX environment. After installation, you will get the libmelon.dll and libmelon_static.lib libraries.

I believe the issue arose from my previous attempt to ensure compatibility with MSVC, which inadvertently caused compatibility problems with MSYS2. I'm currently working on a fix.
Thank you for your feedback! I'll let you know here once the fix is ready.

Apologies, the installation documentation contained an error.
I have submitted a new commit to correct the documentation and added checks for the msys2 environment in the configure script. Currently, only MSYS2 MINGW32, MSYS2 MSYS, MSYS2 CLANG64 and MSYS2 CLANGARM64 are supported.
Thank you for your feedback, and you can pull the latest code to give it a try.


Need a better queue purge process

What Operating System are you seeing this problem on?
CBL-Mariner/Linux
What Hardware is this system running?
Azure Standard VM
KumoMTA version
kumod 2023.07.22-d4ae999a
Did you try the latest release to see if the issue is better (or worse!) than your current version?
Yes, and I updated the version box above to show the version that I tried
Describe the bug
In testing, I managed to generate a decent-sized deferred spool of 1.3Gb That is not huge so I expected the admin-bounce API to clear those out quickly, but the config seems to be mangled in a way that is not allowing delivery of the bounces either, so that is just causing the deferred queue to grow and consume resources.  It has effectively locked the server and running with debug reporting I see it constantly posting an overuse of RAM.
2023-03-25T20:06:17.338989Z DEBUG memory-monitor kumod::memory: memory usage 30.72 GB, limit 23.45 GB
2023-03-25T20:07:01.745518Z DEBUG memory-monitor kumod::memory: memory usage 30.72 GB, limit 23.45 GB
2023-03-25T20:07:32.051476Z DEBUG memory-monitor kumod::memory: memory usage 30.76 GB, limit 23.45 GB

Having a method to arbitrarily kill a queue would be helpful.
To Reproduce
No response
Configuration
Not a configuration issue
Expected Behavior
No response
Anything else?
No response

I'd like to understand the failure mode here better.
Right now the response to this is to use the bounce API (eg: via kcli bounce).
That can't catch in-flight messages (we have to wait for their attempts to timeout before they'll get swept up in the bounce), but both the ready and scheduled queues that match should get removed.
Note that kumomta doesn't generate bounce email, so that cannot be part of the issue that you observed.
However, if you have misconfigured webhooks then you can create a cycle where you log-that-you-logged-that-you-logged-that-you-logged.
There's no command that will help you fix that; the way out is to stop the service and remove the cycle from the configuration, then start it back up again and use kcli bounce on the appropriate queues.

This problem was really spawned by a misconfigured webhook (my own fault) that we have since resolved.  The one thing that remains from the original request is the ability to not log the bounces from the bounce command.  For instance, if I accidentally assign a group of messages to the wrong egress source and just want to clear them out and start over, I don't want a billion irrelevant bounce messages clogging up my logs.  something like a --do_no_log option would be handy.


Saving multiple choice doesn't update progress bar or question calculators

Any entries to multiple choice questions save and export fine, but do not amend the progress indicators
In the example below I have answered 3 questions - 1 text field, 1 radio button and 1 multi-choice checkbox

Three things have to be tested in this issue:

Plan progress: The code has been refactored and the N+1 queries problem has been fixed with eager_loading.
Section progress: The code is refactored and considers what is a valid answer adequately (e.g. for option based, having any option selected and for text/textarea having any text)
Optimistic locking: The code has been refactored. It prompts the stale answer as readonly rather than the actual answer stored in the database as readonly.

See the new approach to tackle an stale answer, i.e. two users A and B retrieve the same answer, A modifies and saves, B modifies and tries to save. B is considered stale!
snapshot.pdf

I can confirm the first two progress updates are working. Will try to invoke the co-editing conflict tomorrow

Have tested the locking and this works well, particularly as the top box is greyed out so it is clear where they combine and save their changes.
Only request is to change the language so the first sentence says the answer 'can not be saved' rather than 'can not be persisted'

Thanks @jollopre

@sjDCC done


Failed to analyze RustCrypto repositories

It looks like all RustCrypto repositories started to fail, while previously they were working without issues. For example:

https://deps.rs/repo/github/RustCrypto/traits
https://deps.rs/repo/github/RustCrypto/hashes
https://deps.rs/repo/github/RustCrypto/block-ciphers

#125 could be a relevant issue.
UPD: Funnily enough, https://deps.rs/repo/github/deps-rs/deps.rs also results in the same error page, so it looks like the issue is not with the repos and changes in them, but with the repository processing code.

It looks like the issue was resolved.


Inconsistent use of tabs and spaces in indentation

File "/mnt/c/Users/evant_3shkjf2/linux/knockmail/knock.py", line 23
stdout.write(GREEN + "[*] FOUND - [" + i + "] "+ BLUE + "{line " + str(count) + "}\n" + END)
TabError: inconsistent use of tabs and spaces in indentation
Should I manually change this, or will @4w4k3 deal with this one?

same problem here. What can i manually chane?


Add configuration cache incompatibility notes to the user guide

This is a userguide-only change. A single WARNING is added for pages describing unsupported plugins (like Ivy, Sign, IDE plugins, etc.). If the page describes something else, but a particular snippet is not supported, then the warning is added close to the unsupported snippet. I've tried to provide some guidance in these warnings too.
Part of #21027.

@bot-gradle test BD

OK, I've already triggered the following builds for you:

BuildDistributions build

@bot-gradle test BD

OK, I've already triggered the following builds for you:

BuildDistributions build

Pages with warning for a particular chapter/snippet:

build_lifecycle
common_caching_problems
distribution_plugin
migrating_from_ant
publishing_maven

Pages with a leading warning:

ant
building_cpp_projects
building_swift_projects
cpp_application_plugin
cpp_library_plugin
cpp_testing
cpp_unit_test_plugin
ear_plugin
eclipse_plugin
idea_plugin
native_software
publishing_ivy
publishing_signing
signing_plugin
swift_application_plugin
swift_library_plugin
swift_testing
visual_studio_plugin
xcode_plugin
xctest_plugin

@bot-gradle test BD

OK, I've already triggered the following builds for you:

BuildDistributions build

I really like the callouts! 👍

@bot-gradle test and merge

OK, I've already triggered a build for you.


macOS Quick Start Guide - Step 2 is no longer needed

Briefly summarize your issue:
Not a big deal, but step 2 for installing openssl via Homebrew is no longer needed and may create confusion for new developers.  When you execute step 3 to install curl-openssl, it will bring in openssl as a dependency.  Furthermore, you don't need to link the openssl include directory.  However, you do need to do export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig before running the cmake command so that libcrypto can be found by pkg-config.
Tell us about your environment:
macOS Mojave with Homebrew
What version of the AVS Device SDK are you using?
1.11.0
Tell us what hardware you're using:
Macbook
Tell us about your OS (Type & version):
macOS  Mojave

Thanks for the feedback @seichert we'll look into updating our documentation. Will be closing this issue but feel free to reopen if you have more feedback.


parsing RSA keys is wrong

when passing an RSA key to jwt.verify(token, secretOrPublicKey, {algoriths: ['RS256'] }), it is being parsed wrongly.
when passing a public key it is parsed as { type: "secret" }, and when passing a private key it is parsed as { type: "public" }

This library internaly uses node's crypto.createPublicKey(). When you pass your privateKey createPublicKey derives the public key from the privateKey. Therefore {type: 'public'} is correct.
For the other case where you get {type: 'secret'}, i assume you stored your public key in PEM Format and either are missing -----BEGIN PUBLIC KEY----- / -----END PUBLIC KEY----- or there are whitespaces/indentations.
You can always re export the public key from your private key. You can store and pass the key in jwk or pem format.
const { createPublicKey } = require('node:crypto');

const publicKey = createPublicKey(privateKey);

const publicJwk = publicKey.export({type: 'spki', format: 'jwk'});
const publicPem = publicKey.export({type: 'spki', format: 'pem'});

console.log(publicJwk);
console.log(publicPem);

// node 18
const crypto = require('crypto');
const jwt = require('jsonwebtoken');
const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
});
const payload = { sub: 'user123', role: 'admin' };
const token = jwt.sign(payload, privateKey, { algorithm: 'RS256' });
console.log("token=", token);
jwt.verify(token, publicKey, function (err, user) {
console.log("=====")
console.log(err)
console.log(user) // user info from the token
console.log("=====")
});


Sort tasks by ID as the default output

Not sure what is the current default sorting method, but it does not appear to be either "latest first" or "oldest first".
Let's sort by time created as the default?

By ID or by created time?


implement rho_dne

I implement "rho_dne" in the GCEED part. To distinguish whether a threshold value for convergence is square of absolute values or square of norm, I add "norm_" to previously defined values for a variable "convergence". In addition, since I had noticed that we need not multiply subtle volume to norm, I remove the subtle volume for related parts. Moreover, I had to modify ARTED part related to a backup routine.
I guess automatic tests don't pass because of shutdown of Jenkins. But I checked that the run for both GCEED part and ARTED part successfully finshed.
Conversations are mainly done with @ayamada224 san, so I ask @ayamada224 san to review. But if there are any opinions to this PR, please comment.

I found mistakes in this implementation. Could you wait to review till I commit the modification, @ayamada224 san? Sorry for that.

Thank you @mn2007 san, I'll review the code after you fixed the mistakes. It may take time to review but I'll try it by Monday.

Thank you so much for your reply, @ayamada224 san. I've finished the modification. I'll wait by Monday.


Cannot read properties of undefined (reading 'getViewState')

TypeError: Cannot read properties of undefined (reading 'getViewState')
at Lt.Dc in src/vs/workbench/contrib/scm/browser/scmViewPane.ts:3087:72
at Lt.<anonymous> in src/vs/workbench/contrib/scm/browser/scmViewPane.ts:2630:9
at u.y in src/vs/base/common/event.ts:1148:13
at u.z in src/vs/base/common/event.ts:1159:9
at u.fire in src/vs/base/common/event.ts:1183:9
at S.flush in src/vs/platform/storage/common/storage.ts:589:25
at o.value in src/vs/workbench/browser/workbench.ts:257:20
at u.y in src/vs/base/common/event.ts:1148:13
at u.z in src/vs/base/common/event.ts:1159:9
at u.fire in src/vs/base/common/event.ts:1183:9
at <anonymous> in src/vs/base/common/event.ts:152:97
at o.value in src/vs/base/common/event.ts:169:85
at u.y in src/vs/base/common/event.ts:1148:13
at u.fire in src/vs/base/common/event.ts:1179:9
at o.value in src/vs/base/common/event.ts:118:84
at u.y in src/vs/base/common/event.ts:1148:13
at u.fire in src/vs/base/common/event.ts:1179:9
at o.value in src/vs/base/common/event.ts:152:97
at u.y in src/vs/base/common/event.ts:1148:13
at u.fire in src/vs/base/common/event.ts:1179:9
at ne in src/vs/base/parts/ipc/common/ipc.ts:675:60
at M.t in out/vs/workbench/workbench.desktop.main.js:616:1511
at M.s in src/vs/base/parts/ipc/common/ipc.ts:732:17
at o.value in src/vs/base/parts/ipc/common/ipc.ts:549:63
at u.y in src/vs/base/common/event.ts:1148:13
at u.z in src/vs/base/common/event.ts:1159:9
at u.fire in src/vs/base/common/event.ts:1183:9
at Function.ue in src/vs/base/common/event.ts:559:41

Go to Errors Site

Duplicate of #201821.


Improve the detection of images

Not all images have extension. For example in our application thumbnails and previews are saved in a file using as name base 64 handle without extension.

In several places the image is re-initialized after we already have it loaded in memory. Could you try to consolidate the use of imageWithContentsOfFile: so that we're not calling it multiple times?

Oh, sorry, of course. Let me know if now it is correct

Did a little clean-up to make the diff smaller, we're good to merge now


feat(focus): replace setNativeFocusProperty with formlyNgFocus directive

Pull request looks good did a quick testing on local after deleting node_modules folder and its work as expected.


[SPARK] Move identity column feature out of dev mode

Which Delta project/connector is this regarding?

[x] Spark
[ ] Standalone
[ ] Flink
[ ] Kernel
[ ] Other (fill in here)

Description
This PR is part of https://github.com/delta-io/delta/issues/1959 .
We have implemented identity column support and all the tests passed. We now can move identity column feature out of developer mode.

How was this patch tested?
Existent tests.

Does this PR introduce any user-facing changes?
No.

@zhipengmao-db does this close #1959?
Thanks for all the PRs, now Spark Delta supports all the protocol versions!

@zhipengmao-db does this close #1959?
Thanks for all the PRs, now Spark Delta supports all the protocol versions!

Yes it closes https://github.com/delta-io/delta/issues/1959


fix: render invalid table children as text

Accomplishes this in the normalizeNode step definition for tables.
If an incoming child node is invalid, we:

convert it to a contentful node
gets the plain text value of the contentful node, as we would we with a document (using @contentful/rich-text-plain-text-renderer
renders the plain text value inside a paragraph in place of the invalid node

This works well with insertion in empty table cells as well as within text selections from table cells.

@cribbles I tested this on the preview URL ☝🏻 and it seems to paste undefined all the time. Can you check again?

@z0al discussed this with you separately, but posting here for transparency: This is due to an idiosyncrasy in our rich-text libraries that will be dealt with separately (basically our adapters need to know about the table types, and they don't right now, plus 'undefined' should never be a valid output in most cases).


Proposed specification for a Carbon Model interface.

Background

Carbon models are models that given a certain set of inputs return carbon emissions data (and energy etc...)
There are many models out there, some are APIs, some are just collections of CSV files with instructions on how to use them, some are buried in papers.
Different models need different inputs and might provide different outputs.
We need a common way to call all these models and a common way to interpret and process the outputs.

Scope

This task is NOT going to create new models, this project will create a common interface to existing models so they can be more easily consumed, swapped out, compared, upgraded.
Through creating a common interface and hopefully eventually library of carbon models that can be easily consumed by developers we probably will identify gaps, models that are needed and don't exist.
By just being able to swap out the model and keeping the rest of the code the same we'll be able to more easily see the difference between models and when one is more suitable than another.
As organizations are increasingly going to create their own private, NDA models, as long as they adhere to the interface we describe below they will bne able to use the models in any application/framework that supports CQL model interfaces.

Requirements

Carbon models have different inputs, some use billing data, some use utilization - the interface needs to be flexible to accommodate all the existing types of inputs that we know of and all the future types of inputs.
Carbon models should be muti-language, there should not be the Python ones the Node.js ones, one core code base (rust/c/c++/c-linkable) with bindings to a set of commonly supported languages and not all of those languages will be OO.
Using a carbon module should be very quick, from running the install script to consuming the model should take no longer than a few mins (installing a docker image and launching a local service is not an option here).
Every carbon model implementation should have exactly the same function signature, so swapping them out might just require one line of code change and every use of that model is the same across your application.
Carbon models should have a verbose mode, we should be able to get a detailed dump of HOW this model has calculated a number for verification/debugging purposes.
Carbon models might need different inputs, they will need to provide very detailed instructions to the developer for what data they need to function. E.g. you might swap out one model for another similar one but the new one requires one more config param, the error should be clear and instruct the developer on what's missing.
They will probably need to be stateful, e.g. load a set of coefficients from a file/network on the creation and then in future calls just use the in-mem coeffs.

Proposed Interface
sequenceDiagram
    User->>Model: create(StaticParams: Dict): Model
    Model->>Model: Instantiate

    User->>Model: snapshot(Telemetry: Dict): EmissionsData
    Model->>User: Returns single emissions snapshot

    User->>Model: historical([Telemetry: Dict]): [EmissionsData]
    Model->>User: Returns array of emissions data

    User->>Model: realtime(TelemetrySteam: Stream): EmissionsStream
    Model->>User: Returns array of emissions data

    User->>Model: dispose()
    Model->>Model: Clean up

Create
create(StaticParams: Dict): Model

Pass in static params as a dictionary/hash/object, there will be such variety of potential inputs only a dictionary will guarentee to work.
Return a stateful model object which we can use to call functions with/on.

Returns errors

Missing Params: Some static param is not avaialble.
Incorrent Params: A param has been input but the value is weid, incorrect to just doesn't work with this model.
External Error: Some other problem with perhaps an external service, netowrking, disk etc...

Snapshot
snapshot(Telemetry: Dict): EmissionsData

Pass in a single snapshot of some telemetry data and returns a single snapshot of emissions data.

Returns errors

Missing Telemetry: Some telemetry it needs to function isn't passed in.
Incorrent Telemetry: A param has been input but the value is weid, incorrect to just doesn't work with this model.
External Error: Some other problem with perhaps an external service, netowrking, disk etc...

Historical
historical([Telemetry: Dict]): [EmissionsData]

Pass in a an array of historcal telemetry (e.g. every min for last hour) and returns an array of emissions data for the same frequency of inputs.

Returns errors

Missing Telemetry: Some telemetry it needs to function isn't passed in.
Incorrent Telemetry: A param has been input but the value is weid, incorrect to just doesn't work with this model.
External Error: Some other problem with perhaps an external service, netowrking, disk etc...

Real-Time
realtime(TelemetrySteam: Stream): EmissionsStream

Pass in a stream which contains future telemetry, as that telemetry is fed it in passes the results back in an emissions stream.
This usecase would be for monitoring applications.

Returns errors

Missing Telemetry: Some telemetry it needs to function isn't passed in.
Incorrent Telemetry: A param has been input but the value is weid, incorrect to just doesn't work with this model.
External Error: Some other problem with perhaps an external service, netowrking, disk etc...

Dispose
dispose()

Let the model know it can remove data, clean things up.

Returns errors

External Error: Some other problem with perhaps an external service, netowrking, disk etc...

@srini1978 @Oleg-Zhymolokhov proposed this initial spec just for an interface to a carbon model.

@navveenb Tagging you here

Created a set of sample code files developing to the above specification https://github.com/srini1978/carbonQL. The code is not yet uploaded to this repository as it needs a lot of polishing.
@jawache  @navveenb  @Oleg-Zhymolokhov

The content in this issue is now all inside the PR #46, once that PR is merged we can close this issue

Closing


Nested markdown lists are not rendered as nested list

Summary
Nested markdown lists as below are not rendered as nested lists, but as single-level lists.
Source:
//! * foo
//!     + bar
//!     + baz

Expected output:

foo

bar
baz

Actual output:

foo + bar + baz

Reproduced example
This section in iri-string v0.5.0-beta.1.
On docs.rs:

Local cargo doc:

docs.rs uses the nightly compiler to build the docs.
When I use nightly locally with cargo doc, I can reproduce the issue you are seeing.
So this looks like a bug / changed behaviour in rustdoc, or am I missing something?
cc @GuillaumeGomez

This is a regression. Please open an issue on the rust repository and I'll try to fix it as soon as possible.

Thank you. Reported at rust-lang/rust repository.


Polished the Exception handler

The pull request does the following steps:

Catch JsonProcessingException instead of general Exception.
Wrap the RuntimeException with SpannerConnectorException.

Thank you @halio-g, LGTM except for throwing an exception in the method Scanner.planInputPartitions for which we didn't throw an exception because of the method signature requirements (it is overridden and anyone calling it has to handle the exception of which the chain of calls doesn't have a throws Exception, unless am mistaken)

Do you have the reference btw ? Looks like the interface doesn't have such requirement. https://spark.apache.org/docs/3.0.0-preview/api/java/index.html?org/apache/spark/sql/connector/read/Scan.html

Merging the pull request. We can discuss offline if there are still questions.

Looks good to me @halio-g!


Task has tags

Tags are key/value string/string , key is \S+.
Tags must have same constraint as Docker's labels.
Tasks can be searched by tags, just like Docker objects.

Closed by #40


[release-2.2] Switch GH org to stolostron

https://github.com/stolostron/backlog/issues/18716

/cc @chenz4027


CompileError: import is not supported

Bug report
Packages affected

[ ] sandpack-client
[x] sandpack-react

Description of the problem
What were you doing when the problem occurred?
What steps can we take to reproduce the problem?

Link to sandbox: link (optional)
Your Environment

Software
Name/Version

Sandpack-client version

Sandpack-react version

Browser

Operating System

const data = `export const data = [

];`;

const columns = `export const columns = [
  {
    id: "select",
    enableSorting: false,
    enableHiding: false,
  }

]`;

const App = `import {Table} from "@nextui-org/react";

import {
  useReactTable,
} from "@tanstack/react-table"

import {data} from './data'
import {columns} from './columns'
const colors = ["default", "primary", "secondary", "success", "warning", "danger"];

export default function App() {
  const [selectedColor, setSelectedColor] = React.useState("default");
  const [rowSelection, setRowSelection] = React.useState({})
  const [columnVisibility, setColumnVisibility] =
    React.useState<VisibilityState>({})
  const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(
    []
  )
  const [sorting, setSorting] = React.useState<SortingState>([])

  const table = useReactTable({
    data,
    columns,
    state: {
      sorting,
      columnVisibility,
      rowSelection,
      columnFilters,
    },
    enableRowSelection: true,
    onRowSelectionChange: setRowSelection,
    onSortingChange: setSorting,
    onColumnFiltersChange: setColumnFilters,
    onColumnVisibilityChange: setColumnVisibility,
    getCoreRowModel: getCoreRowModel(),
    getFilteredRowModel: getFilteredRowModel(),
    getPaginationRowModel: getPaginationRowModel(),
    getSortedRowModel: getSortedRowModel(),
    getFacetedRowModel: getFacetedRowModel(),
    getFacetedUniqueValues: getFacetedUniqueValues(),
  })

  return (

  );
}`;

const react = {
  "/App.jsx": App,
  "/data.ts": data,
  "/columns.ts": columns,
};

export default {
  ...react,
};

You haven't included package.json. Are your dependencies included there?

I'm closing this issue as it's been a while without any activity. Please feel free to report it again if the problem persists. Thanks so much!


Leading asterisk dumps directory listing

Beginning a chat message with an asterisk (from Minecraft) posts the directory listing to Slack. (Baaaad wildcard replacement!)

Oh god

Fixed by https://github.com/qrush/pickaxe.club/commit/11bbca93a960e86388c35711265c47d78fc72bfd !


Cocoapods Not Updated

After installing peertalk via Cocoapods (and not changing anything else about my project), I get the following linking error:
4 duplicate symbols for architecture x86_64
I've tried every solution I can find online, so I was hoping it was an issue with the project. Can anyone reproduce my error / offer a solution?
I was using Swift, but I ended up recreating my project as Objective-C and that didn't fix it.
The Cocoapods version available right now is 0.0.1. I noticed in #32 that version 0.0.1 is throwing linking errors. Seeing as there is a Podfile in the repository, it looks like this is meant to be officially on Cocoapods, however the version available is not what is in the Podfile here.

For anyone that is currently encountering this issue, it can be temporarily fixed by adding
pod 'PeerTalk', :git => 'https://github.com/rsms/peertalk'
to your Podfile. This will make it so it analyzes the repository and not the current Spec on the Cocoapods website.

pod 'PeerTalk', :git => 'https://github.com/rsms/peertalk', :tag => '0.1.0' works as of today. Once the pod repo itself is updated, the :tag => '0.1.0' will not be required.


Development of Responsive Content- Test for Images

As a web developer, I want to ensure that an img element is present on every webpage of my website so that images are displayed properly and users can access important information presented in image format.

``// @ts-check
const { test, expect } = require('@playwright/test')
test('Check for Img Test', async ({ page }) => {
// Navigate to the website to test
await page.goto('http://localhost:3000')
// Check if the img element is present on the page
const imgExists = await page.$('img')
expect(imgExists).not.toBeNull()
})


Figure out runtime compilation for EmbeddedFiles

Orthogonal to https://github.com/aspnet/Mvc/issues/8753, RazorViewEngine supports arbitrary file providers including Embedded. Without runtime compilation in MVC by default, we don't have a good story to continue supporting this feature.

The story is really clear. Runtime compilation will be delivered by a package - that includes runtime compilation of embedded files.

@pranavkm please work with @danroth27 as well as @rynowak to get information you need for this work.


Loader plugin: Filtering by version status

Changelog Description
Added simplified filtering by version status into loader plugins.
Additional info
Added another simplified filter to loader plugin similar to product types and representation extensions. The filtering is not used anywhere now.
Testing notes:

Validate the code changes.

I have a feeling this is getting a bit into the realm of over designing the system.
Why couldn't the loader just expose a 'is_compatible' method so that the loader can decide on the full context whether it should show or not where the default behavior may be product types check, but can be overridden for other specialized behavior, like filtering on a status?
Also, having not seen this before - a question for context. What type of loader actions would maybe filter based in status? In what situations does it make sense to completely disallow a loader action to run over other status even if the user wanted to? Like, what is the use case?
The only thing I can think of is maybe the delivery action? But even then it feels overly strict maybe.

I don't know, it's true I've created the task for a client based on mouth of word so I might hear wrong, or it was misinterpreted.

Isn't it a simple case where the studio wants only to show approved versions in the loader?

Isn't it a simple case where the studio wants only to show approved versions in the loader?

That would just mean that the Loader UI would filter versions which is this PR: https://github.com/ynput/ayon-core/pull/752
This PR is about actually making the Loader actions not show at all when certain statuses are set - which I think will become very tricky with e.g. scene inventory and version up behavior - because you may be unable to version up then just because the newer version may not have a matching status and then suddenly it will start telling you the loader is 'incompatible' with the newer version? Anyway, this spawns off potentially a host of other problems and I think https://github.com/ynput/ayon-core/pull/752 does solve the majority of the use cases whilst remaining generic functionally in the loader plug-ins themselves.

Closing for irrelevant change.


How to apply multiple colors for events based on type of events.

Hi,
I have a scenario where I get a list of events with a type(Like finished, unfinished). I want to apply green color for finished and red for unfinished. I have tried to apply "eventBackgroundColor", but it is applying for all the events. So, how could I achieve a solution for my issue? Help is appreciated.
Thank you.

Hi, use event color, https://fullcalendar.io/docs/eventColor
{
 ...
  color: black;
}

Sorry for the late reply. Thank you. But I want to apply different colors for different events at the same time.

exapmple
https://stackblitz.com/edit/ng-fullcalendar-demo-c2zppj?file=app/event.service.ts

Thank you.


SNOW-878135 is_permanent behavior fix

Please answer these questions before submitting your pull requests. Thanks!

What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Fixes #SNOW-878135

Fill out the following pre-review checklist:

[x] I am adding a new automated test(s) to verify correctness of my new code
[ ] I am adding new logging messages
[ ] I am adding a new telemetry message
[ ] I am adding new credentials
[ ] I am adding a new dependency

Please describe how your code solves the related issue.
Please write a short description of how your code change solves the related issue.

Does it make sense to get rid of is_permanent?

Does it make sense to get rid of is_permanent?

Not to me. If we get rid of it, do you suggest we use stage_location as a proxy? I don't think that's intuitive.

e stage_location as a

What about something like permanent_stage_location ? I prefer only having one parameter here but I understand that will be a BCR.


Render body HTML for  from stumptown JSON

From the Stumptown JSON, produce rendered HTML for the "body content" of the MDN page for the <video> HTML element.
This would be, more or less, what you see at view-source:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video?raw&macros.
It's not going to be exactly the same. For example, the Kuma source for live samples expects further post-processing by JavaScript running in the Kuma page (https://github.com/mozilla/kuma/blob/master/kuma/static/js/wiki-samples.js). In general, anywhere there's client-side Kuma JS that the page expects to run, we have to think about whether and how to replicate that outside Kuma.
There is some room for manuva about how much of the MDN page needs to be included, but as a first attempt, it should include:

all the main prose sections (attributes, usage notes, accessibility, etc)
interactive example
all examples, including functional live samples
the "technical summary" box, as far as that's possible given the data we have for it
BCD table

After that we'll see what it looks like.
For now it will be implemented as a standalone CLI tool, using Node.
Acceptance criteria
We have a tool that can render the above HTML from stumptown JSON for the <video> element.

@wbamberg @ddbeck Can this epic be closed?

Yes.


:bug: Fixes small black format syntax error

This pull request makes sure the black success message is not parsed as an error.

@rickstaa Thank you 👍


[HOLD] [iOS] Figure out why setTimeout is needed when viewing SidebarScreen on load, replace with better solution

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Remove setTimeout from this code
Set isActive={true} there so the global create menu should show immediately
Rebuild app
Close app completely on iOS simulator
Reopen app

Expected Result:
Global create menu should show up. Since it doesn't, we were forced to introduce a 200ms timeout here, but we want to understand why & how to remove that and still make the global create menu display when a new expensify user opens the app for the first time (unless they already have a workspace)
Actual Result:
Global create menu doesn't show up
See @mateomorris 's tests in this comment
Workaround:
Keep the code as it is, it works but we don't know why it's necessary 👎
Possible solutions / ideas so far

Idea from @marcaaron here
Some notes from @mateomorris in his comment here

Platform:
Where is this issue occurring?

iOS

Version Number: latest
Notes/Photos/Videos: Any additional supporting documentation
Issue reported by: @mateomorris here
Slack conversation: N/A
View all open jobs on GitHub

Triggered auto assignment to @kadiealexander (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Upwork job: https://www.upwork.com/jobs/~01e9442bc5ff417a90

@Beamanator
I think it will be fixed in this way.
 if (!hasFreePolicy) {                 // For some reason, the menu doesn't open without the timeout                 setTimeout(() => {                     this.toggleCreateMenu();                 }, 200);             }
!hasFreePolicy & this.toggleCreateMenu();
Thanks.

@nhanth1012 please add more detail and explanation to your proposal. Why do you think that will fix the issue?
Also, are you recommending replacing the entire if-statement with !hasFreePolicy && this.toggleCreateMenu();? This doesn't follow our style guidelines, and I don't believe it will help us because the setTimeout is the only way we got this to work without changing code elsewhere

@Beamanator
I think you want me to remove the setTimeout from the code. right?
Of course, I will consider your suggestion carefully.

@nhanth1012 Ideally yes, or if setTimeout is absolutely necessary here, we would like to know why and document it. Thanks 🙏

Please refer to this post for updated information on the n6 hold, we've raised the bonus to $250 for all issues where a PR is created before the N6 hold is lifted.

Just wondering, what made us think this issue is related to react-navigation? I see it mentioned a few times but missing the context.

Ah this maybe?
https://github.com/Expensify/App/blob/6a88aa961b593416371d5b0648b48de7ea95abf5/src/pages/home/sidebar/SidebarScreen.js#L60
Something about drawerContent 🤔 .
First thought is that we might be able to just move it out of the drawer like we do growls.

Removed Help Wanted label since it's on hold

We can keep it on hold another week or two, but I plan to come back to this after!

Back at it after a busy last week, will try to get this done the upcoming week

Not overdue Melvin, please go away!

@Beamanator do you have any update on this one?

I'm dropping this to Monthly since I've got a bunch of other priorities at the moment, I'll try to take a look this month

Haven't gotten to this yet, other priorities keep popping up

Not top priority still

Still in the middle of some high priory tasks (currently Offline First doc)

// This is a short-term workaround

This is precisely why we shouldn't ever put these comments in the code 😬

So true 😅 🤦


Effect class is imported wrong in samples/maps.py

Describe the bug
Effect class is imported wrong in samples/maps.py

Traceback (most recent call last):
  File "maps.py", line 16, in <module>
    from asciimatics.widgets import Effect, Button, Text, Layout, Frame, Divider, PopUpDialog
ImportError: cannot import name 'Effect' from 'asciimatics.widgets' (C:\path\to\python\test\lib\site-> > packages\asciimatics\widgets\__init__.py)

To Reproduce

Install asciimatics package.
clone the repository
navigate to the samples directory
run maps.py

Expected behavior
Maps should be fetched and displayed as ASCII.
Screenshots

System details:

OS and version: Windows 10
Asciimatics version 1.13.0 (latest)

Been a while since I've run this sample....  Can't believe I was importing Effect from widgets!  :-)
Yeah - that needs fixing.

No fixed.  Thanks


add musl target and test compiling C code

:pushpin: Commit 6b46469 has been approved by japaric

@homunkulus r+

:hourglass: Testing commit 6b46469 with merge 48d6d46...

:broken_heart: Test failed - status-travis

:pushpin: Commit dc683b6 has been approved by japaric

@homunkulus r+

:hourglass: Testing commit dc683b6 with merge dc683b6...

:broken_heart: Test failed - status-travis

@homunkulus try

:hourglass: Trying commit 853c88d with merge 853c88d...

:broken_heart: Test failed - status-travis

@homunkulus r+

:pushpin: Commit 5f80105 has been approved by japaric

:hourglass: Testing commit 5f80105 with merge 5f80105...

:broken_heart: Test failed - status-travis

@homunkulus r+

:pushpin: Commit 9660cce has been approved by japaric

:hourglass: Testing commit 9660cce with merge 9660cce...

:broken_heart: Test failed - status-travis

@homunkulus r+

:pushpin: Commit a0e035e has been approved by japaric

:hourglass: Testing commit a0e035e with merge a0e035e...

:sunny: Test successful - status-travis
Approved by: japaric
Pushing a0e035ea27bc91be715f9f84a8f033ce7af55c94 to master...


UE5 Please

Please, build plugin for ue5.0 and later

I've been looking into what's holding it back and there are two things I can see right now.
One is SteamAudioSDK.Build.cs has a reference to the Win32 target platform.  This entire block can be removed (I think).
The second is two vector conversions throwing errors in lines 107 and 291 of SteamAudioScene.cpp
I'm far from an expert but I'm going to see if I can get the plugin to compile after resolving those issues.  There's a good chance I'll hit more snags but if I have luck, I'll report back. :)

I got it to compile with these changes:
https://github.com/devhyper/steam-audio/commit/77d58a76a83e00418e3ccb31fee69a48997612cf

I got it to compile with these changes: devhyper@77d58a7

I could get the plugin to compile but the "Steam Audio" Mode doesn't show up (therefore cannot export the scene nor bake reverbs).
Did you find a way to make it work in your fork?

I could get the plugin to compile but the "Steam Audio" Mode doesn't show up (therefore cannot export the scene nor bake reverbs). Did you find a way to make it work in your fork?

The steam audio mode shows up for me.

Hey @devhyper that's really great news for me, I was going to use the 2.1.1 version since I couldn't make it work but this really gives me hope!
Sad news is that I tried again and again and I still cannot get the Steam Audio Mode to show up 😭
What I'm doing atm is:

Clone your fork

Add shutil.copy("steamaudio/lib/windows-x64/phonon.lib", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64") to line 50 of setup.py (without this one the build fails while looking for "phonon.lib", I guess this is the problematic bit!)

Run setup.py

cd build and mkdir windows-vs2019-x64 and cmake-gui ../..

Configured like this

Double click on Phonon.sln and build solution

Build doesnt finish for phonon_unreal_fmod and phonon_unreal_fmod_setup reporting error below, but I guess that should not matter since I won't use Fmod Studio (not sure if that's needed anyway, also not sure of what's breaking the copy process).
Error copying directory from "C:/sa/steam-audio/unreal/src/SteamAudioUnreal/Plugins/FMODStudio" to "C:/sa/steam-audio/unreal/build/windows-vs2019-x64/src/HostProjectFMOD/Plugins/FMODStudio".
Then build finishes for phonon_unreal_win64  and therefore I can open up unreal\build\windows-vs2019-x64\src\HostProject\HostProject.uproject 🙏
When opened I can select Steam Audio as spatialization plugin in the project settings,

add Steam Audio components to actors ,

but cannot select the Steam Audio Mode in the dropdown! 😭😭😭

If you have time could you please help me finding what's wrong on my side?
And eventually, if that's doable to you, share the working compiled plugin?
Thank you anyway, your screenshot will make me push this until I get it to work anyway

Here is the compiled plugin:
https://github.com/devhyper/steam-audio/releases/download/v4.1.1/steam-audio-package.zip
As for the build, I used the build.py script after running setup.py:

Open steam-audio/unreal/build/FindUnreal.cmake and replace ${UNREAL_EXECUTABLE_DIR} with the path to unrealbuildtool (ENGINEDIR/Engine/Binaries/DotNET/AutomationTool)
Open build.py and find -DSTEAMAUDIOUNREAL_BUILD_DOCS=TRUE, change it to false
Open a command prompt in that directory and run python build.py -o install it will error out, should be fine.
Go to steam-audio/unreal/bin/unreal and copy SteamAudio directory to replace ENGINEDIR/Engine/Plugins/Runtime/Steam/SteamAudio

First of all, thank you a lot for your immediate response, that's very kind of you!
Sad thing is that basically I've been doing same steps you wrote down and the build that come out of that still didn't t show the Steam Audio Mode.
So I tried your compiled plugin package and it does behave the same, no Steam Audio Mode available!
I'm not sure what's the error at this point.
I repaired my 5.0.3 installation and also tried with 5.1 but that the mode just never appears in the editor  🤔 😭

Continuing with strange behaviour, I noticed that if I go in the Tools dropdown menu with a Level opened up nothing shows up

But then, if I move to the Plugins tab and check the Tools dropdown again, a "Bake Indirect Sound" options appears

🤔

So turns out I was using the 2.0 version of the plugin. When I put my build in I wasn't able to see the Steam Audio Mode either. I did find the issue though. https://github.com/devhyper/steam-audio/commit/2ee6775131b0343cf6d1001da3165e522a78331e The mode is now a toolbar button:

@aptrn

Ohhh, that's SO great!
Compiled off your fork, usual two fixes to make it compile and now IT WORKZ 🎉
Thank you a lot for your work, my winter is now unlocked 🤯 🎇

hi, can you give a build for ue5.1?

So turns out I was using the 2.0 version of the plugin. When I put my build in I wasn't able to see the Steam Audio Mode either. I did find the issue though. devhyper@2ee6775 The mode is now a toolbar button:
@aptrn

@whostea
https://github.com/devhyper/steam-audio/releases/tag/v4.1.2

How about the SteamAudioFMODStudio integration plugin?
SteamAudio plugin for unreal works good for me, what is giving me an issue is the integration plugin, and I don't have any idea on how to fix that.
I'm trying to use FMOD in UE 5.1 and using the steam audio too as stated in the documentation.

Nevermind, I decided to go back to UE5.0.3, using @devhyper fork, and it works flawlessly now. Thank you!!!

@whostea https://github.com/devhyper/steam-audio/releases/tag/v4.1.2

Doesn't work on my end, it says it was compiled for 5.0.0

@googleooer Edit the .uplugin file and change 5.0.0 to 5.1.0

@devhyper
After trying to use your prebuild version and following your instructions to compile the plugin, I receive this error no matter what I try.

Do you have any suggestions?

@RYRY1002 I had the same issue. Which version of UE5 are u using? Did you try compiling in Visual Code? If so, what errors did it returned?

@googleooer Edit the .uplugin file and change 5.0.0 to 5.1.0

Yeah I tried that, but I get the errors above

@RYRY1002 I had the same issue. Which version of UE5 are u using? Did you try compiling in Visual Code? If so, what errors did it returned?

I used 5.1. Compiled with the build.py script

@RYRY1002 I had the same issue. Which version of UE5 are u using? Did you try compiling in Visual Code? If so, what errors did it returned?

I used 5.1. Compiled with the build.py script only.

So, what I did was compiling the project with the plugin, not the plugin itself. To do so, you need a c++ unreal project, I would suggest creating a new project with C++ instead of blueprints just for compiling. Delete SteamAudio plugin folders from the engine installation path. On your project, copy the plugins in the folder "Plugins" (you will need to create that folder next to the .uproject). Then you should add the SteamAudio plugin from @devhyper fork, start the project and enable the plugins, close unreal. Open the .snl created and located next to the project .uproject with visual studio.
On Visual Studio you can build your project as in the next image:

It will try to compile. If it compiles, great, you can just copy the plugins of the project to your project. If not (the most probable one), show us what errors visual studio returns.

@RYRY1002 I had the same issue. Which version of UE5 are u using? Did you try compiling in Visual Code? If so, what errors did it returned?

I used 5.1. Compiled with the build.py script only.

So, what I did was compiling the project with the plugin, not the plugin itself. To do so, you need a c++ unreal project, I would suggest creating a new project with C++ instead of blueprints just for compiling. Delete SteamAudio plugin folders from the engine installation path. On your project, copy the plugins in the folder "Plugins" (you will need to create that folder next to the .uproject). Then you should add the SteamAudio plugin from @devhyper fork, start the project and enable the plugins, close unreal. Open the .snl created and located next to the project .uproject with visual studio. In a window you will see a list with your project, right click over your project name and choose "Build".
It will try to compile. If it compiles, great, you can just copy the plugins of the project to your project. If not (the most probable one), show us what errors visual studio returns.

If it worked for you, can you share your successfuly compiled version?

I can, sadly I don't have access to the computer with the compile version until 9 of January. Until then, I cannot share it.

I got it to compile and load, but it's nowhere to be seen in the editor even though it's enabled

Nevermind it worked, i was trying to compile the release instead of the source lol

Replying to #210 (comment)

Thanks! Following this tutorial, I managed to get it to compile.
Here is my compiled version (place in UE_5.1\Engine\Plugins\Runtime\Steam)

Replying to #210 (comment)

Thanks! Following this tutorial, I managed to get it to compile. Here is my compiled version (place in UE_5.1\Engine\Plugins\Runtime\Steam)

Does it actually work properly for you? Whenever I try to play in editor with my version and a SteamAudioSource is active it crashes with an access violation error related to SteamAudioSourceComponent's BeginPlay code.

Replying to #210 (comment)

Thanks! Following this tutorial, I managed to get it to compile. Here is my compiled version (place in UE_5.1\Engine\Plugins\Runtime\Steam)

Does it actually work properly for you? Whenever I try to play in editor with my version and a SteamAudioSource is active it crashes with an access violation error related to SteamAudioSourceComponent's BeginPlay code.

Yes, assuming you've configured it correctly, it works just fine for me.

Replying to #210 (comment)

Thanks! Following this tutorial, I managed to get it to compile. Here is my compiled version (place in UE_5.1\Engine\Plugins\Runtime\Steam)

Does it actually work properly for you? Whenever I try to play in editor with my version and a SteamAudioSource is active it crashes with an access violation error related to SteamAudioSourceComponent's BeginPlay code.

Send the log and I'll take a look.

Replying to #210 (comment)

Thanks! Following this tutorial, I managed to get it to compile. Here is my compiled version (place in UE_5.1\Engine\Plugins\Runtime\Steam)

Does it actually work properly for you? Whenever I try to play in editor with my version and a SteamAudioSource is active it crashes with an access violation error related to SteamAudioSourceComponent's BeginPlay code.

Send the log and I'll take a look.

`Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000030
phonon
phonon
phonon
phonon
phonon
phonon
phonon
phonon
phonon
UnrealEditor_SteamAudio!USteamAudioSourceComponent::BeginPlay() [Y:\Unreal Engine\Projects\steamaudiocompile\Plugins\SteamAudio\Source\SteamAudio\Private\SteamAudioSourceComponent.cpp:235]
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
kernel32
ntdll`

What is the point if it doesn't work on 5.0? You cannot even export static geometry. HRTF seems to be broken too. Need to wait for an official release

Hello !
I try to add Steam audio on my project (Unreal engine 5.0.3) i follow the steps but its not working maybe i miss something si you have a read me with all the steps ?

Hi everyone! Just want to share here - it seems that you can just download the latest version of the plugin made for Unreal here: https://valvesoftware.github.io/steam-audio/downloads.html
Then you just
"Copy the unreal/SteamAudio folder into the Engine/Plugins/Runtime/Steam subfolder of the folder where Unreal Engine has been installed. This will replace the version of Steam Audio bundled with Unreal Engine, and update it to the latest version."
As said in the manual: https://valvesoftware.github.io/steam-audio/doc/unreal/getting-started.html

Here is the compiled plugin: https://github.com/devhyper/steam-audio/releases/download/v4.1.1/steam-audio-package.zip

Any possibility to compile it for 5.1.1 ? Thx

Here is the compiled plugin: https://github.com/devhyper/steam-audio/releases/download/v4.1.1/steam-audio-package.zip

Any possibility to compile it for 5.1.1 ? Thx

https://github.com/devhyper/steam-audio/releases/download/UE-5.1.1/SteamAudio.zip
@SpaceCraft33

Thank you @devhyper for the quick answer ! Unfortunatly, just like @RoflanTsar the Export Static Geometry function isn't working.

LogSteamAudio: Error: No material specified for object.
LogSteamAudioEditor: Error: Failed to export static geometry for level TestWorld.

I guess an official update might be needed at some point. Too bad ! But still, Thank you.

Hey @devhyper, Thanks a lot for the compiled Zip file in a record time. Very much appreciated. And thanks again for the tips on the default mesh material !


Dump model to JSON

Used for python or other package to make calculations on model.
I created another branch after Microsoft/python-package, which will be merged into this branch after python-package finished. So you can review this PR after that.
The tree is dumped as tree structure, for example:
{
    "tree_index": 0,
    "tree_structure": {
        "split_feature": 25,
        "right_child": {
            "leaf_parent": 0,
            "leaf_value": 0.0177513,
            "leaf_index": 1
        },
        "left_child": {
            "split_feature": 25,
            "right_child": {
                "split_feature": 26,
                "right_child": {
                    "leaf_parent": 2,
                    "leaf_value": 0.0350313,
                    "leaf_index": 3
                },
                "left_child": {
                    "leaf_parent": 2,
                    "leaf_value": 0.0213992,
                    "leaf_index": 2
                },
                "split_index": 2,
                "internal_value": 0.657011,
                "threshold": 0.7745,
                "split_gain": 30.3472
            },
            "left_child": {
                "leaf_parent": 1,
                "leaf_value": 0.0206436,
                "leaf_index": 0
            },
            "split_index": 1,
            "internal_value": 0.596097,
            "threshold": 0.5925,
            "split_gain": 45.18
        },
        "split_index": 0,
        "internal_value": 0,
        "threshold": 1.0895,
        "split_gain": 65.198
    },
    "num_leaves": 4
}

Hi @wxchan, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

I came across a problem.
I add functions as follow:
src/c_api.cpp:
LGBM_BoosterDumpModel:
DllExport int LGBM_BoosterDumpModel(BoosterHandle handle,
  const char** out_str) {
  API_BEGIN();
  Booster* ref_booster = reinterpret_cast<Booster*>(handle);
  *out_str = ref_booster->DumpModel().c_str();
  API_END();
}

Booster::DumpModel:
std::string DumpModel() {
  return boosting_->DumpModel();
}

python-package/lightgbm/basic.py:
def dump_model(self):
  tmp_model = ctypes.c_char_p()
  _safe_call(_LIB.LGBM_BoosterDumpModel(self.handle, ctypes.byref(tmp_model)))
  print(tmp_model.value[:100]) # check the output

And the output in last line is:
b'\x01\x00\x00\x00\x00\x00\x00\x00\xd0\xa5\x1b\x00\x01\x00\x00\x00\x95s\x00
\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xfflabel_index":0,\n"max_f
eature_idx":99,\n"objective":"binary",\n"sigmoid'

Why this happens?

@wxchan , the reason is you returning pointer of temporary memory(ref_booster->DumpModel().c_str()).
The solution:

allocate a str_buf in python, and copy from c_str. https://github.com/Microsoft/LightGBM/blob/python-package/python-package/lightgbm/basic.py#L1070-L1075
use a template class to manage these temporary resource, like xgboost do:
https://github.com/dmlc/xgboost/blob/master/src/common/thread_local.h
https://github.com/dmlc/xgboost/blob/master/src/c_api/c_api.cc#L186-L200
https://github.com/dmlc/xgboost/blob/master/src/c_api/c_api.cc#L668-L678
However, these resources only will be freed when application quit.

I think pre-allocate the buffer in the python is a better solution. But it is hard to decide the buffer len. May be you can pass the buffer len of python as well, and return actual len.
If buffer len is smaller than actual len, you do nothing in c_api and re-allocate the buffer in python then call again.

Fixed with 1st solution. Buffer len is set to 2^20 now, for reference, with num_leaf=15 and num_tree=100, the actual len is around 2^18.

@guolinke model loaded from file cannot dump to json now(cause segmentation fault), any clue why?

i think some fields are not loaded from file. e.g. threshold_in_bin_

@guolinke I find the reason, to calculate feature importance needs train_data_->feature_names(). I am going to remove feature importance in dumped string for now.

@wxchan I see. It seem We should load feature_names_ as well when load model from file.
(So we should save feature_names_ to file as well)
I will add this into categorical-feature-support branch.
And we can continue to provide interface of set feature name and get feature importance.

it seems travis is down... I will merge this after some reviews.

@guolinke Feature importance is not needed in dumped string. To use another interface will be fine.
I was doing some small updates with commit --amend, but I finished now. It should also solves #102 .


UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'source' of undefined

What is the issue?
When you run the project on yarn watch, upon update, instead of reloading the project, the application throws the following error
(node:40210) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'source' of undefined
    at /Users/janedoe/tmp/framer/node_modules/webpack-manifest-version-sync-plugin/index.js:18:68
    at _next2 (eval at create (/Users/janedoe/tmp/framer/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:8:1)
    at eval (eval at create (/Users/janedoe/tmp/framer/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:22:1)
    at /Users/janedoe/tmp/framer/node_modules/copy-webpack-plugin/dist/index.js:90:9
(node:40210) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:40210) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

How to reproduce?

Clone the project
Install dependencies yarn install
Build the project yarn build
Watch the project yarn watch
Load the unpacked extension on chrome and use the app
Now, edit any file to auto-reload the extension (for example, edit font-size from 16px to 26px in ./src/assets/styles/global.js)
You'll see the above exception stack trace in the terminal.

What is the expected output?
Ideally, the application should reload with the new changes and update the files appropriately in the ./build directory
From my initial debugging, it looks like the there is some issue in using ExtensionReloader with ManifestVersionSyncPlugin. The path configured in webpack.config.js works well when the app starts but upon update to a file and reload, it cannot find the manifest file in the location it looks for.

Hmm... The ManifestVersionSyncPlugin should skip the watch stage of Webpack build.
I'll check it.
https://github.com/ElForastero/webpack-manifest-version-sync-plugin/blob/master/index.js#L15

Hmm... The ManifestVersionSyncPlugin should skip the watch stage of Webpack build.
I'll check it.
https://github.com/ElForastero/webpack-manifest-version-sync-plugin/blob/master/index.js#L15

Interesting! I think I know what the problem is -- It's using an older version of the plugin: index.js
Which makes sense! The package.json points to version 0.0.1 where as the latest version of it is v0.0.2
Let me open a PR to update this!

@ElForastero Fixed it ^