Flutter framework collision when embedding in a VST or AudioUnit DAW plugin

Use case
I'm exploring using Flutter in a DAW plugin, VST and AudioUnit. A Host like Ableton Live running a plugin is a different environment than a standalone desktop application. In this context, two plugins both using Flutter collide. The first App.framework to be linked is the one that plugin instance will load. This means that loading Plugin B, will actually launch the flutter application for Plugin A.
I'm currently using JUCE, which is a convenient way to build a plugin. The JUCE window creates an NSView, and I add the FlutterViewController to it, embedding the App.framework and the FlutterMacOS.framework into the plugin bundle. I've attached an example with two flutter Hello Word apps embedded into a JUCE plugin. One uses the standard blue theme while the other uses red.
Example Videos
Two plugins colliding:
https://user-images.githubusercontent.com/246982/169207486-35296119-6d3b-490b-a7c9-c86a81a9ea56.mov
One red plugin loads correctly:
https://user-images.githubusercontent.com/246982/169207735-291979b8-b0ba-48ab-85d5-51dc2e7290e3.mov
Example Source Code
JUCE/Flutter example projects with included README:
https://www.dropbox.com/s/juib7oqnsyzu2qd/FlutterDAWPluginExample.zip?dl=0
Proposal
I believe the above issue could be resolved if we could optionally add a naming prefix to all of the generated frameworks including plugin packages.
App.framework and FlutterMacOS.framework would become MySpecialNameApp.framework and MySpecialNameFlutterMacOS.framework. Flutter would have to be told to link these frameworks instead.
Not just the framework packages would have to be renamed, but all the files needed to keep the symbols from colliding.
If we only do this for App.framework to solve the described issue, there would still be collisions with mismatched versions of the FlutterMacOS.framework as well as commonly used flutter plugin packages. That's why I believe it should be done for all the embedded frameworks.
I'm very open to alternative solutions that may solve this issue.
Thank you for your consideration,
Hayden Bursk

@darshankawar I have manually embedded the flutter frameworks as mentioned in that thread successfully. The issue that I describe is unique to a DAW plugin where flutter frameworks with the same name collide.
While my example is for MacOS, I would need this feature for Windows as well since a similar issue would occur with the DLLs.
So I’m not looking for add to app functionality like iOS or Android. I’m looking for a way to give the generated frameworks more unique names to avoid collision.

Thanks for the feedback. Keeping this issue open and labeling for further insights from the team.

I have been working with these examples with JUCE and Ableton Live. It does seem that the frameworks are overwriting each other, but I'm not sure if the naming is the issue.
For clarity, I will refer to a DAW plugin as a "VST".
When running a VST in a DAW, the DAW is the host bundle and process, so I'm guessing that this might not retrieve the appropriate dart bundle.
I was able to partly solve this issue by using explicit paths to refer to the App.framework dart bundle when initializing the FlutterViewController using initWithProject (see flutter_juce.zip which contains two similar demo projects)
However, this only works when integrating the debug artifacts from the flutter build, and not when using the release artifacts. After reading this wiki about AOT mode, my theory is that this is due to the fact that both VSTs share the same dart VM (since there is only 1 per process and they are both running in the same DAW host process). After loading a VST built with the release artifacts (AOT), any other VST loaded will show that same project in their window, as Hayden initially described, presumably because the shared VM is initialized to only run that project. On the other hand, when first loading a VST built with the debug artifacts (JIT), then other "JIT" VSTs can be loaded and show their corresponding project, but loading any "AOT" VSTs at this point shows no flutter view at all.
A complete solution to this would mean that we could create a flutter-VST that can be "isolated" from other flutter-VST projects running in the same process. I'm still trying to wrap my head around the flutter engine architecture (dart VM, embedder, shell, etc.), so any advice would be much appreciated. My next step is to understand if this is fundamentally difficult or if there may be at least a workaround solution.
I understand that a minimal reproducible example that doesn't depend on JUCE and DAWs would be helpful, but I'm not entirely sure yet what that would entail. I imagine maybe building the "plugin" projects as separate dynamic libraries that get linked into a "host" app might be sufficient, but I worry it might not cover all the intricacies of DAW plugin hosting.

I found a couple workarounds to fully resolve the collision issue.
First, I inserted an explicit path to App.framework/App to Settings::application_library_path. This way, when the Dart VM is started, it does not resolve the VM snapshot from the current running process (which would be the host DAW), but instead uses that path to directly create a mapping
After building a custom engine with this change, I noticed via debugging that there was a collision with the engine frameworks themselves (e.g. I could not debug the engine if the VST with the flutter pre-built engine was loaded first). As a workaround, I modified the engine build scripts to rename the framework, executable, and Info.plist entries.
With both of these changes, the VST built with this custom engine was essentially isolated from the other VST, and could run its own flutter app regardless of what order the VSTs were loaded in.
For the change to set Settings::application_library_path, I'm not sure yet how to flesh this out into a reasonable PR, since I don't know fully what the implications are, or if there is other work in progress in this area. I noticed that the ios implementation of FlutterDartProject has something similar, plus a lot of other Settings configuration, while the macos version has none.
For the engine framework collision, I need to continue investigating if that can be solved on the VST side with some kind of more explicit library loading.

I was fortunately able to find a workaround to the engine framework name collision in the VST build by manually changing the .framework load path with install_name_tool, rather than relying on load-time @rpath resolution. So this can be disregarded in the context of this issue.
So, the only required change will be to set Settings::application_library_path to the specific dart bundle path, but I'm still working on understanding the implications and how to best implement it.

Just discovered these issues which describe the crux of the issue with this use case:
https://github.com/flutter/flutter/issues/43351
https://github.com/flutter/flutter/issues/43454

Hi @hbursk
Did you ever have any success with Flutter VSTs? I would really like to explore what's possible with Dart and Flutter.

Hey @awood314. How far did you get with the explicit Settings::application_library_path? I want to give this a try myself.

@vladvoina unfortunately I have abandoned this work, but you can take a look at the closed PR to get an understanding of the approach: https://github.com/flutter/engine/pull/34062
I've since lost the plugin code to be able to provide an example, but this feature should fix the collision problem originally described in this issue

@awood314 thanks! It looks like you got very close to the finish line with this PR. I'll try to get it up and running again. It seems that #80339 is also a requirement for proper VST/AU support.

It seems that #80339 is also a requirement for proper VST/AU support.

It's possible without this. I've managed to embed a flutter window in JUCE (on macos at least) using FlutterMacOS.h.

It seems that #80339 is also a requirement for proper VST/AU support.

It's possible without this. I've managed to embed a flutter window in JUCE (on macos at least) using FlutterMacOS.h.

@0xchase Can you share an example? I'd love to pick this up. Feels like it's really close.
(it seems there might be some manual work needed to get proper tooling support, I'm trying to understand what all that means)
PS. loved your ADC talk about copy-protection, it has been immensely helpful!

Here's an Objective-C example that embeds flutter in a JUCE component. You can build the JUCE project with cmake and the flutter project with flutter build macos. Then you have to copy various artifacts from both builds into a single package.
At some point in the next few months I'll get around to making a cross-platform version.
#pragma once

#include <FlutterMacOS.h>

#undef Component
#undef Point

#include <JuceHeader.h>

#include "NodusProcessor.h"

class NodusEditor  : public juce::AudioProcessorEditor
{
public:
    NodusEditor (NodusProcessor& p) : AudioProcessorEditor (&p), audioProcessor (p)
    {
        initializeFlutter();
        addAndMakeVisible(nsViewComp);
    }

    ~NodusEditor() override
    {
        shutdownFlutter();
    }

    void paint(juce::Graphics& g) override
    {
        g.fillAll(juce::Colours::black);
    }

    void resized() override
    {
        nsViewComp.setBounds(getLocalBounds());
    }

private:
    NodusProcessor& audioProcessor;
    juce::NSViewComponent nsViewComp;

    FlutterEngine* engine = nullptr;
    FlutterViewController* flutterViewController = nullptr;
    FlutterDartProject* flutterProject = nullptr;

    void initializeFlutter()
    {
        // Determine paths to Flutter assets and ICU data.
        // Typically, these would be in your app’s resource bundle.
        NSString* bundlePath = [[NSBundle mainBundle] resourcePath];
        NSString* icuDataPath = [bundlePath<EMAIL_ADDRESS>        NSString* assetsPath = [bundlePath stringByAppendingPathComponent:@"flutter_assets"];
        NSString* appAotPath = [bundlePath<EMAIL_ADDRESS>// if using AOT snapshots; may not be needed if using JIT

        // Create a FlutterDartProject. Check FlutterDartProject.h for initialization methods.
        // The API for FlutterDartProject may vary depending on the Flutter version.
        flutterProject = [[FlutterDartProject alloc] init];
        if ([flutterProject respondsToSelector:@selector(setAssetsPath:)])
            [flutterProject setAssetsPath:assetsPath];
        if ([flutterProject respondsToSelector:@selector(setICUDataPath:)])
            [flutterProject setICUDataPath:icuDataPath];

        flutterProject.dartEntrypointArguments = @[@"argument1", @"argument2"];

        // If there's an API for setting the AOT snapshot or Dart entrypoint, do it here.
        // e.g. [flutterProject setVMData:appAotPath]; // Pseudocode, depends on Flutter version.

        // Create the Flutter engine. The name is an identifier; it can be anything unique.
        engine = [[FlutterEngine alloc]<EMAIL_ADDRESS>                                            project:flutterProject
                            allowHeadlessExecution:NO];
        if (!engine)
        {
            DBG("Failed to create Flutter engine");
            return;
        }

        // Create a FlutterViewController associated with this engine
        flutterViewController = [[FlutterViewController alloc] initWithEngine:engine nibName:nil bundle:nil];
        if (!flutterViewController) {
            DBG("Failed to create FlutterViewController");
            return;
        }

        // Assign the view controller to the engine BEFORE running the engine
        engine.viewController = flutterViewController;

        // Run the engine with the main Dart entrypoint.
        BOOL engineRan = [engine runWithEntrypoint:nil]; // nil defaults to `main()` in Dart.
        if (!engineRan)
        {
            DBG("Flutter engine failed to run");
            return;
        }

        // Get the Flutter NSView and embed it in the JUCE NSViewComponent.
         This stops the Dart isolate and cleans up resources.
        if (engine)
        {
            [engine shutDownEngine];
            engine = nil;
        }

        flutterViewController = nil;
        flutterProject = nil;
    }

    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NodusEditor)
};


Adds Gitpod support to the playground

Summary
Avoids people having to setup a local environment and instead runs fully in the browser.
This has been requested by our IMs (and some merchants) who are not allowed to install external repositories on their laptop. Using Gitpod (or codespaces) allows them to work without contaminating their local machine. I also allows for a better developer experience, since the yarn process is automated by the .gitpod.yml config.
I had to slightly modify the playground webpack dev server config to go around that issue. Given that we are talking about a playground here, I would argue that this causes not large security threat.
Additional hosts might have to be added if we want to support, say Codespaces.
Happy to answer other questions :).
Tested scenarios
Not relevant
Fixed issue:  Internal, DR-520

Hey @jlengrand do you know how I can test this? My only concern is the playground being served on a *.gitpod.com address which means we would need to access it via HTTPS otherwise secure fields won't work.


Flaky test: PrefetchableTextFilesFirehoseFactoryTest

Test failed on Travis, works on a Mac. Test passed on previous runs. No code in the PR changed anything in the code covered by this test.
[ERROR] Tests run: 13, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 73.209 s <<< FAILURE! - in org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest
[ERROR] org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest.testWithSmallCacheAndLargeFetch  Time elapsed: 60.066 s  <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.TimeoutException
	at org.apache.druid.data.input.impl.prefetch.Fetcher.openObjectFromLocal(Fetcher.java:226)
	at org.apache.druid.data.input.impl.prefetch.Fetcher.next(Fetcher.java:177)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactory$2.next(PrefetchableTextFilesFirehoseFactory.java:239)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactory$2.next(PrefetchableTextFilesFirehoseFactory.java:225)
	at org.apache.druid.data.input.impl.FileIteratingFirehose.getNextLineIterator(FileIteratingFirehose.java:105)
	at org.apache.druid.data.input.impl.FileIteratingFirehose.hasMore(FileIteratingFirehose.java:66)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest.testWithSmallCacheAndLargeFetch(PrefetchableTextFilesFirehoseFactoryTest.java:278)

I have observed other failures in "firehose" tests (can't recall if it is this same test), did some poking around, and noticed that the code, while using concurrency constructs, used them independently with no locking between the various objects. I suspect this leads to race conditions and occasional failures.

Failed again in this run. The test passes when run on the same code branch from an IDE.

Failed again in this run. The test passes when run on the same code branch from an IDE.

Failed again in this run.

Failed again in this run:

[INFO] Running org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest
[ERROR] Tests run: 13, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 21.109 s <<< FAILURE! - in org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest
[ERROR] org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest.testReconnectWithCacheAndPrefetch  Time elapsed: 8.165 s  <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.TimeoutException
	at org.apache.druid.data.input.impl.prefetch.Fetcher.openObjectFromLocal(Fetcher.java:226)
	at org.apache.druid.data.input.impl.prefetch.Fetcher.next(Fetcher.java:177)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactory$2.next(PrefetchableTextFilesFirehoseFactory.java:239)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactory$2.next(PrefetchableTextFilesFirehoseFactory.java:225)
	at org.apache.druid.data.input.impl.FileIteratingFirehose.getNextLineIterator(FileIteratingFirehose.java:105)
	at org.apache.druid.data.input.impl.FileIteratingFirehose.hasMore(FileIteratingFirehose.java:66)
	at org.apache.druid.data.input.impl.prefetch.PrefetchableTextFilesFirehoseFactoryTest.testReconnectWithCacheAndPrefetch(PrefetchableTextFilesFirehoseFactoryTest.java:352)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	...
Caused by: java.util.concurrent.TimeoutException
	... 39 more

Failed again in this build.

PrefetchableTextFilesFirehoseFactoryTest.testWithCacheAndFetch failed again in this build.

PrefetchableTextFilesFirehoseFactoryTest.testReconnectWithCacheAndPrefetch failed again in this build. These failures are a real drag on productivity: I have to rerun the expensive Travis tests again and again so I can get to Phase 2 ITs.

These flaky test will be gone once https://github.com/apache/druid/pull/12852 is merged.

PrefetchableTextFilesFirehoseFactoryTest.testReconnectWithCacheAndPrefetch again in this build. Looking forward to seeing #12852 be merged!


 If additional AIO
completions arrive while the kernel is being woken up, the
wake up will fire again.
Signed-off-by: Jason Dillaman<EMAIL_ADDRESS>

Adding @lxbsz  who just pinged me on this. You lucked out! The ceph team did it for gluster again :)

In my test environment this patch increase performance to 3x times and decrease latency to 3x times.
FIO pattern:  --bs=4k --iodepth=32 --numjobs=4 --direct=1 --refill_buffers --norandommap --randrepeat=0 --ioengine=libaio (--rw=randwrite, --rw=randread)
tcmu-release -> randread iops 7019, lat (msec): min=5, max=226, avg=22.64, stdev=18.78
tcmu-release -> randwrite iops 3395, lat (msec): min=11, max=244, avg=38.80, stdev= 6.09
tcmu-this-patch ->  randread iops 19.1k, lat (usec): min=906, max=37268, avg=6657.18, stdev=1972.39
tcmu-this-patch -> randwrite iops 8406, lat (usec): min=2575, max=83831, avg=15722.03, stdev=6089.71

@mikechristie Yeah, this is what we really needed and thanks very much @dillaman 's great work.
I will test this later.

Hi, all. I tested this patch with one  size=1T lun, 8K randwrite IOPS increase to 2x times.(randwrite: ~121 IOPS to ~243 IOPS. ) I will create more LUN to stress the whole cluster and feedback the result.

Thanks.


Armis-PythonVersionUpdated-3.11 Version

Required items, please complete
Change(s):

Change in Python Version to 3.11
Repackaged the solution for Data Connector Instructions.

Reason for Change(s):

As per requirement (Deprecation of 3.8)

Version Updated:
- Python version - 3.11
- Solution version - 3.0.3
Testing Completed:
- Yes

approved

Approving and merging on behalf of Alex Shevchenko


Update dependencies to latest versions

I have updated dependencies to use ">=" requirements. Also, use Rust 2018 edition

Thank you for the PR! I implemented this myself when updating to Rust 2018.


net::ERR_SSL_PROTOCOL_ERROR

Type: Bug
I have tried everything on every website I could find I am not sure if it helped or made things worse but I cant open any extensions. It is also not showing me any of the photos that go along with them. I updated my laptop and restarted it and redownloaded it and tried every command within vscode that has to do with extensions and nothing fixed it. This is a school laptop so I am not sure if the school has something to do with it but it wasn't blocked before and it is now. It says XHR failure any time I try to open one. Please help me I have already spent hours trying to fix this!
VS Code version: Code 1.89.1 (dc96b837cf6bb4af9cd736aa3af08cf8279f7685, 2024-05-07T05:13:33.891Z)
OS version: Windows_NT x64 10.0.22631
Modes:

Hi @jtb3ats ,
Since we have not received the required information, we are closing the issue. Please feel free to reopen or create a new issue if the problem still persists.
Regards,
VS Marketplace Team


Is somewhere available an Azure Blob Storage Store extension?

There are five methods you need to implement to create this: https://github.com/tusdotnet/tusdotnet/wiki/Custom-data-store
Three here: https://github.com/tusdotnet/tusdotnet/wiki/Custom-data-store#itusstore
Two here: https://github.com/tusdotnet/tusdotnet/wiki/Custom-data-store#ituscreationstore
POC/demo is available here: https://github.com/smatsson/TusAzureStore

@smatsson Thank you ♥

@smatsson thanks! Needed this!


Please change it.

You should change SingleCutSampler to SimpleCutSampler in main/valle/data/datamodule.py.
SingleCutSampler is not function of lhotse

This could be resolved by downgrading lhotse.
You might want to try running pip install lhotse==1.16.
This should allow you to use the SingleCutSampler.

@Arfonium DONE https://github.com/lifeiteng/vall-e/pull/173


Swa dbconnection

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

staticwebapp

Closing this PR, this was just a test PR I made for myself. Main PR is still at https://github.com/Azure/azure-cli-extensions/pull/5819


Lobby page typo fixed #8

Could have been my first open source contribution. I have learned a lot. Thanks!!


feat: Support Humanity, Support Palestine link added

Search keywords
Free Palestine, Support Palestine
Latest version

[X] I have tested the latest version

Summary
I added the new link at the top of the page you so people can contribute to save humanity in GAZA.

Closing as it's not an issue with the code. But the conversation can continue here async.

Adding to what was said above, I think a good way of conducting oneself in professional environments (job, work, programming, etc.) is to leave out family, religion & politics, on principle.

@oliviertassinari you said there is "Ukraine+Russia population: 200M". So According to you population is more important instead of Humanity.

you said there is "Ukraine+Russia population: 200M". So According to you population is more important instead of Humanity.

@Arsil99 I think that we should wish for peace, https://www.economist.com/the-world-if/2017/07/13/a-world-of-free-movement-would-be-78-trillion-richer would be soo much better. The point I would get from this is that it doesn't feel like this project documentation would have much impact on helping to make it happen.

@Arsil99 I thank you for expressing your concern about the devastating situation in Palestine, my heart breaks alike, I think it's not only your concern, but it's also a concern of the whole human race, since the genocide (as declared by the ICJ in its historical ruling related to this issue) being committed since more than last 4 months is certainly something the world has never seen like in ages.
Adding my two cents here, there are a few statements on this thread that I disagree with.

Firstly, IMHO the genocide under discussion is not a political issue, rather it's a severe humanitarian crisis, impacting every individual in some way, and I think, it's the responsibility of every member of the human race who cares about the future of humanity to do whatever in their power is, to immediately put a full stop on. If not, I'm afraid any nation can use this as a reference in the future to exercise brutality on the masses in the name of self-defense.
About the market, I agree that this region is not that saturated with the developer community, but since this is not anymore a regional issue, it kind of escalated globally in a way that can impact every nation in some way, by setting high moral grounds (if the world recognizes the severity of the issue and stops the oppressor in time like we did in Ukraine-Russia conflict) or lowering them if they fail to do that.
About the scale, I think comparing Ukraine-Russia and Palestine-Israel, the latter is certainly more violent, cruel, one-sided, and unjustifiable than the former, one example is the killing of children in only one month in Gaza is more than the children killed in the whole first year of Ukraine-Russia war, let alone elderly, women, pregnant women, in-womb babies, hospitals, churches and what not. source. Another major difference is, Ukraine-Russia conflict is a war, but Palestine-Israel conflict is a genocide, where unlike Ukrainians, who can thankfully fight back to the oppressor, the helpless Gazan civilians got no army to fight, nowhere to go, take shelter, no food to eat, they are literally in a world's biggest open-air prison, not only after October 7th which only worsened it but for the past 17 or more years. They are living like always expecting bombs from above to wipe them from the face of the earth. The extremely shocking and current devastating situation confirmed by credible sources has been thoroughly presented by the lawyers of South Africa in the case put up in the International Court of Justice and could be checked in this court proceeding.
About wanting to get independence and the other nation not letting them have it, I think it's the same situation in this conflict as well, not from recently, but from decades now.

I agree and respect the point of only binding to the professional stuff and not adding details about various conflicts as we work in a professional domain, but I see no reason to not add a Palestinian support banner if we add and keep showing one for Ukraine, to me, both the conflicts are extremely similar, rather the Palestine one is worse in many ways. If other team members rhyme with me on this POV, we could consider adding the banner. Or at the very least we could do is to add something like mdxjs to urge the ceasefire ASAP to have our contribution in putting a stop to this devastating humanitarian crisis.
I'd be interested to hear your thoughts on this. @oliviertassinari @samuelsycamore 🙏

I'd be interested to hear your thoughts on this

@MBilalShafi I would propose we remove the current banner we have. This
looks like the best solution to me.
There is no discussion about this in
https://github.com/search?q=repo%3Avercel%2Fnext.js+Palestine&type=code
(unless these were deleted as a violation of
https://github.com/vercel/next.js/blob/canary/CODE_OF_CONDUCT.md). It feels
like people are triggered here because they see different treatment for
Ukraine vs. Russia.

IMHO the genocide under discussion is not a political issue, rather
it's a severe humanitarian crisis

Agree. I think the point is on whether it's product-related or not.

escalated globally

On the resonance of the message with the docs audience, the simplest way I
can think about it is doing an overlap between where the developers going
to the docs located with who would feel connected to the conflict.

The Arab–Israeli conflict, it looks like a local conflict, but also
religion-based, so look at https://en.wikipedia.org/wiki/Islam_by_country,
https://en.wikipedia.org/wiki/Jewish_population_by_country. I see some Jews
in the main market: US, and some overlap with the Arabic countries.
The Russo-Ukrainian conflict, it looks like a local conflict, but also
the root seems to be https://en.wikipedia.org/wiki/Napoleonic_Wars
(democracy spread vs. autocracy push back), I would look into
https://en.wikipedia.org/wiki/The_Economist_Democracy_Index. The overlap
isn't bad.

About the scale

Merged in point 2, I think it's the same aspect (how much this improves the
user experience in the docs vs. doesn't).

About wanting to get independence and the other nation not letting
them have it, I think it's the same situation in this conflict as well, not
from recently, but from decades now.

As I understand things:

The Arab–Israeli conflict, looks at two different cultures who claim the
same land and struggle to live together:
https://www.youtube.com/watch?v=iRYZjOuUnlU. Jewish immigration has been
going strong in the area since 100 years ago. With the Jewish culture
placing a lot of value on material wealth, they are irresistibly taking
over, without strong consideration of how it impacts the Palestinian
people. I guess Israel's position is to tell them to move to another Arabic
country or to cohabit.
The Russo-Ukrainian conflict, Ukraine has been closely linked to the
Russian culture for >200 years, it seems to be almost the same culture:
https://www.youtube.com/watch?v=uCIp3CF33ms. One wants to trend toward the
democratic model, the other doesn't want to let go.

On Sat, Feb 10, 2024 at 3:19 PM Bilal Shafi @.***>
wrote:

@Arsil99 https://github.com/Arsil99 I thank you for expressing your
concern about the devastating situation in Palestine, my heart breaks
alike, I think it's not only your concern, but it's also a concern of the
whole human race, since the genocide (as declared by the ICJ in its
historical ruling related to this issue) being committed since more than
last 4 months is certainly something the world has never seen like in ages.
Adding my two cents here, there are a few statements on this thread that I
disagree with.

Firstly, IMHO the genocide under discussion is not a political
issue, rather it's a severe humanitarian crisis, impacting every individual
in some way, and I think, it's the responsibility of every member of the
human race who cares about the future of humanity to do whatever in their
power is, to immediately put a full stop on. If not, I'm afraid any nation
can use this as a reference in the future to exercise brutality on the
masses in the name of self-defense.
About the market, I agree that this region is not that saturated
with the developer community, but since this is not anymore a regional
issue, it kind of escalated globally in a way that can impact every nation
in some way, by setting high moral grounds (if the world recognizes the
severity of the issue and stops the oppressor in time like we did in
Ukraine-Russia conflict) or lowering them if they fail to do that.
About the scale, I think comparing Ukraine-Russia and
Palestine-Israel, the latter is certainly more violent, cruel, one-sided,
and unjustifiable than the former, one example is the killing of children
in only one month in Gaza is more than the children killed in the whole
first year of Ukraine-Russia war, let alone elderly, women, pregnant women,
in-womb babies, hospitals, churches and what not. source
https://euromedmonitor.org/en/article/5903/Number-of-Gazan-children-killed-in-under-a-month-is-10-times-higher-than-that-of-Ukrainian-children-killed-in-entire-first-year-of-Russia’s-ongoing-war.
Another major difference is, Ukraine-Russia conflict is a war, but
Palestine-Israel conflict is a genocide, where unlike Ukrainians, who can
thankfully fight back to the oppressor, the helpless Gazan civilians got no
army to fight, nowhere to go, take shelter, no food to eat, they are
literally in a world's biggest open-air prison, not only after October 7th
which only worsened it but for the past 17 or more years. They are living
like always expecting bombs from above to wipe them from the face of the
earth. The extremely shocking and current devastating situation confirmed
by credible sources has been thoroughly presented by the lawyers of South
Africa in the case put up in the International Court of Justice and could
be checked in this court proceeding
https://www.youtube.com/watch?v=g2vQ7suQWGg.
About wanting to get independence and the other nation not letting
them have it, I think it's the same situation in this conflict as well, not
from recently, but from decades now.

I agree and respect the point of only binding to the professional stuff
and not adding details about various conflicts as we work in a professional
domain, but I see no reason to not add a Palestinian support banner if we
add and keep showing one for Ukraine, to me, both the conflicts are
extremely similar, rather the Palestine one is worse in many ways. If other
team members rhyme with me on this POV, we could consider adding the
banner. Or at the very least we could do is to add something like mdxjs
https://mdxjs.com/ to urge the ceasefire ASAP to have our contribution
in putting a stop to this devastating humanitarian crisis.
I'd be interested to hear your thoughts on this. @oliviertassinari
https://github.com/oliviertassinari @samuelsycamore
https://github.com/samuelsycamore 🙏
—
Reply to this email directly, view it on GitHub
https://github.com/mui/material-ui/issues/40977#issuecomment-1937018448,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAYE3Q6YHIIQ7PIY464ZCZLYS56VLAVCNFSM6AAAAABC5R32POVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZXGAYTQNBUHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@oliviertassinari
I believe that merely expressing support for Ukraine is inappropriate.
If we condemn Russia's invasion of Ukraine, we should also condemn NATO’s expansion and the anti-Russia movements in Ukraine from a few years ago, as I see these as the root causes of the Russia-Ukraine war.
Similarly, we should be even more critical of Israel’s invasion of Gaza and of NATO countries that have continuously provided military support to Israel.
Of course, I understand some friends may advocate condemning China for providing economic support to Russia. But let’s not forget that many countries directly purchase Russian goods. Beyond supplying weapons to Israel, both Europe and the United States are also indirectly buying Russian goods. So, except for Ukraine and Palestine, every other country in the world is an accomplice to war.
I understand that many people may not want to condemn their own governments, so please refrain from publicly supporting Ukraine. Let’s keep the open-source community free from politics.
Thank you.


FEATURE(dashboard): Autoscale property in module properties

Add a property to specify if a module is allowed to be autoscaled or not.
A generated AAM containing this property is:
tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
description: atos
imports:
- tosca-normative-types:1.0.0.wd03-SNAPSHOT
topology_template:
  node_templates:
    www:
      type: sc_req.www
      properties:
        autoscale: '1'
      requirements:
      - endpoint: db
    db:
      type: sc_req.db
      properties:
        autoscale: '0'
        mysql_version:
          constraints: []
node_types:
  sc_req.www:
    derived_from: seaclouds.nodes.SoftwareComponent
  sc_req.db:
    derived_from: seaclouds.nodes.database.mysql.MySqlNode
    properties:
      mysql_support:
        constraints:
        - equal: true
      mysql_version:
        constraints: []
groups:
  operation_www:
    members:
    - www
    policies:
    - dependencies:
        operation_db: ''
    - QoSRequirements:
        response_time:
          less_than: 200.0 ms
        availability:
          greater_than: 98.0
        cost:
          less_or_equal: 1000.0 euros_per_month
        workload:
          less_or_equal: 400.0 req_per_min
  operation_db:
    members:
    - db
    policies:
    - dependencies: {}

@adriannieto , @perezp : Please, have a look.

According to @perezp suggestion, autoscale is now boolean.
A generated AAM is:
tosca_definitions_version: tosca_simple_yaml_1_0_0_wd03
description: atos
imports:
- tosca-normative-types:1.0.0.wd03-SNAPSHOT
topology_template:
  node_templates:
    www:
      type: sc_req.www
      properties:
        autoscale: true
    db:
      type: sc_req.db
      properties:
        autoscale: false
        mysql_version:
          constraints: []
node_types:
  sc_req.www:
    derived_from: seaclouds.nodes.SoftwareComponent
  sc_req.db:
    derived_from: seaclouds.nodes.database.mysql.MySqlNode
    properties:
      mysql_support:
        constraints:
        - equal: true
      mysql_version:
        constraints: []
groups:
  operation_www:
    members:
    - www
    policies:
    - dependencies: {}
    - QoSRequirements:
        response_time:
          less_than: 200.0 ms
        availability:
          greater_than: 98.0
        cost:
          less_or_equal: 1000.0 euros_per_month
        workload:
          less_or_equal: 400.0 req_per_min
  operation_db:
    members:
    - db
    policies:
    - dependencies: {}
    - QoSRequirements:
        response_time:
          less_than: 200.0 ms
        availability:
          greater_than: 98.0
        cost:
          less_or_equal: 1000.0 euros_per_month
        workload:
          less_or_equal: 400.0 req_per_min

Same than #178

For me it is OK. Maybe it will require some changes in the future as we don't know well this concept of the scaling policy. Of course it is an advance from the situation of having nothing about the scaling.
+1.


Suggestion for a small change: source modules are initialized to new Const objects rather than null pointers.

This way, null pointer errors don't occur, even when all of a module's
source modules haven't explicitly been set.

Coverage increased (+0.0003%) to 0.108% when pulling b65d25de5d3e979f544e6597976512841a199a77 on jmorrow1:develop into 23db1232d80edd5228c23a4cc0b71485b935b5ba on flow:develop.

Coverage increased (+0.0002%) to 0.108% when pulling 98bcf9254a00609b05387480d01f9a688576bca8 on jmorrow1:develop into 23db1232d80edd5228c23a4cc0b71485b935b5ba on flow:develop.

I'd prefer that modules need to be explicitly set. I think it's OK for the program to require that all modules present for it to fail hard. Soft failing isn't always a good idea.
Furthermore I don't think that the Const module is a good default either since the "identity" module (one that result in no changes) will depend on the transformation being done. For adding two modules, it would be 0, but for multiplying it would be 1.

Yeah, identities make sense when there's only one operation at play, so there's really no way to support the idea of an identity module within the context of this library.


Update manage-addins-in-the-admin-center.md

Updated explicit admin roles needed

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/8638

@msbemba


Documentation for adding Office types

The content in step 9
declare const Excel: any;
Can we get documentation on adding the Office/Excel types as dev dependencies to angular please.

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

ID: 92388aeb-7561-deae-26df-aab50feb71b8
Version Independent ID: aa282880-d613-d7d8-ddb3-6a61c8a155bf
Content: Build an Excel add-in using Angular
Content Source: docs/excel/excel-add-ins-get-started-angular.md
Product: office 365
GitHub Login: @o365devx
Microsoft Alias: o365devx

Hi @dvanurag1308
Thank you for your feedback. @kbrandl is working on rewriting the Excel Angular quick start to use the latest features of yo office. It that iteration, you select Angular and Typescript as options from yo office. That automatically imports all the types from office-js (including Excel).
Try redoing the yo office step selecting Angular and Typescript and see if that works for you. Please let me know how that goes.

I did that as well but it completely alters the usual project setup of angular like making it's own webpack script which I am not used to.

Please see pull request #372

@dvanurag1308 we've significantly revised this quick start, to reflect that the Yeoman generator for Office Add-ins is now the recommended way of generating an Office Add-in project using the Angular framework. Please give the new instructions a try and feel free to reach out again if you have any trouble.
Additional information about the Office.js TypeScript definitions is available in the OfficeDev/office-js README.


added a check to see if the plugin is active.

still need to refactor and figure out the clover issue.

Current coverage is 53.50%

Merging #17 into master will increase coverage by +9.66% as of c1eeaba

@@            master    #17   diff @@
=====================================
  Files            6      6
  Stmts          130    114    -16
  Branches        13     10     -3
  Methods          0      0
=====================================
+ Hit             57     61     +4
+ Partial          4      3     -1
+ Missed          69     50    -19

Review entire Coverage Diff as of c1eeaba

Powered by Codecov. Updated on successful CI builds.


PR: Add default values for color schemes

Description of Changes

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[ ] Included a screenshot or animation (if affecting the UI, see Licecap)

Issue(s) Resolved

Fixes #14440
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: dalthviz

Hello @dalthviz! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file spyder/config/gui.py:

Line 114:80: E501 line too long (118 > 79 characters)

Pinging @ccordoba12 just in case

Just to be sure, I test this locally, and it definitely fixes the issue. Thanks, @dalthviz.


Type instantiation is excessively deep and possibly infinite.

I just added v0.8.0 and ran into a weird issue with the types around the drop function. I've attached a screenshot of the TS error.
My factory is pretty barebones and shown below:
export const dbInstance = factory({
  ingressWorkload: {
    id: primaryKey(faker.datatype.uuid),
    organization: oneOf('organization'),
    state: (): IngressWorkload['state'] => 'Draft',
    name: (): string => 'Untitled',
    notes: nullable(String),
  },
  organization: {
    organizationId: primaryKey(faker.datatype.uuid),
    name: faker.company.companyName,
  },
});

I had this working for a bit then it cropped up in CI. We are running TypeScript 4.5.2.

Magically went away.

Hey, @ericchernuka. Thanks for reporting this.
With the addition of the nested objects support (#113), our type definitions now reference themselves (the depth of the model may be infinite, in theory). I believe the latest releases of TypeScript can tolerate that just fine. Please note that we support TypeScript 4.2.x at the moment. Recursive types should be possible, otherwise, how can one annotate a recursively nested data structure?


[Request] Boss Capture must be enabled by config option

Not every pack will want bosses to be capturable, and this being forced requires the blacklist to contain mobs classified as bosses, it's not the largest issue, but it can definitely be a bother.

Hi. Sorry for the delay.
New option to disable boss capturing has been implemented as of ea693db922c7f459024735319b75840775fae256.
v2.4.0 has been published and it should be available on CurseForge in few minutes.


Add webpack config and npm script

Enhancement
Description
Added a webpack config to transpile SR into a minified bundle.
Why should this be added
A compiled bundle could mitigate webpacker 3 issues.
Checklist

[X] My code follows the style guidelines of this project
[X] Checks (StandardRB & Prettier-Standard) are passing

Yep, this was to start a discussion about #83 back then. Think this can be closed

@julianrubisch should we go ahead and close this then?


Simple quotes at config: namingConvention: enumValues

Is your feature request related to a problem? Please describe.
Is that possible that we could produce the Enums with simple quotes?
export enum Language {   EN = 'EN',   DE = 'DE',   FR = 'FR',   IT = 'IT' }
instead of
export enum Language {   EN = "EN",   DE = "DE",   FR = "FR",   IT = "IT" }
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@gtsopour thank you for opening this issue!
Actually, it's not related to namingConvention.
namingConvention changes the way the names of the enum values are being generated.
If you wish to get an output with single quote instead of double quote, please consider to add prettier to your project, and add a prettier config. The codegen will make sure to run prettier before writing the file, and it will apply your code-style preferences to the output :)

hello @dotansimha, can you please show an example how to integrate prettier.

@alexcibotari just make sure to install prettier as a dependency, that's it.

I've stumbled upon this issue with same question on how to get single quotes instead of double quotes in the graphql code generated files. It appears that by default the prettier config is not applied. For this to happen you need to add a so called hook.
graphql-codegen.yml example file:
overwrite: true
schema: "http://localhost:5000/"
documents: "src/**/*.graphql"
hooks:
  afterAllFileWrite:
    - prettier --write
generates:
  src/graphql/generated/operations.ts:
    plugins:
    - add: '/* eslint-disable */'
    - "typescript"
    - "typescript-operations"
    - "typescript-vue-apollo"

  src/graphql/generated/fragment-matcher.ts:
    - "fragment-matcher"

  ./graphql.schema.json:
    plugins:
    - "introspection"

And of course the prettier.js file in the root of your project where you indicate that you don't want double quotes:
module.exports = {
    singleQuote: true,
    semi: false,
    tabWidth: 2,
    trailingComma: "es5",
    arrowParens: "always",
    printWidth: 80,
}

I stumbled across this and realized that the last comment from @DarkLite1 is a bit outdated. You can find the recent way of implementation here: GraphQL-Codegen > Integration > Prettier & Linters
import { CodegenConfig } from '@graphql-codegen/cli'

const config: CodegenConfig = {
  // ...
  hooks: { afterAllFileWrite: ['prettier --write'] }
  // ...
}
export default config


Autosaving drafts cause cursor jumpings in WYSIWYG editor

enable auto-saving of drafts
enable WYSIWYG editor
type few words and wait for the auto-saving of drafts to kick in
the cursor jumps back at the beginning of the line.

Browser: Firefox

Appears to only do this in the QR area

https://github.com/elkarte/Elkarte/pull/2540/commits/1337ea65fff063dd8cb4fe5988a04f56a372cdce should take care of this ...


Remove debate scheduled emails (revert)

Resurrects #464 (via a revert of #468).
We might want to do this, but at the moment we're not sure the admin users are on board with the idea.  This PR is for discussion and not to be merged until it's clear that we should do it.

Rebased to take into account master having #467 on it which changed some urls.

Closing this because there's no demand for it


Still slow

Even with the change to invoke with --incremental, this plugin is still really slow:
time mypy net_devices2

real    0m3.822s
user    0m3.724s
sys     0m0.092s

time pytest --mypy net_devices2

real    2m54.786s
user    2m52.424s
sys     0m1.944s

mypy==0.620
pytest==3.4.1
pytest-cov==2.5.1
pytest-forked==0.2
pytest-mypy==0.3.2
pytest-xdist==1.22.5

I have also noticed this. Any updates?

0.4.0 will make a single invocation per-session (instead of per-file) 🏎


[bones] Part 1: Joint

This PR adds the decompression functions to joint and has process-drawable call them.  This has the terrible jump table functions and also a few that don't use normal calling convention. I patched mips2c functions to call each other directly, and turned the jump table functions into a switch statement. The setup jump table function was rewritten in GOAL to put the right constants in memory.
At this point, it's hard to know if it's working or not. As far as I can tell, the positions that come out are reasonable and the intro cutscene moves the camera in the right way. There are issues with animations because the animation synchronizes to the audio, which is not working (it probably returns frame -1 the whole time)  The orientations probably come out quaternions somewhere and need to be converted to matrices by bones, and we don't have bones yet.

Bone use

real-main-draw-hook calls foreground-engine-execute. This calls bones-init, then (through the engine system) calls add-process-drawable, which calls the dma-add-func, which is dma-add-process-drawable for most, which calls draw-bones. Then bones-wrapup.
After that, there's a call to bones-mtx-calc-execute.
The math-engine-execute uses the results of bones.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

30 of 2421 (1.24%)  changed or added relevant lines in 10 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-1.4%) to 48.721%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

game/graphics/opengl_renderer/OpenGLRenderer.cpp
0
1
0.0%

goalc/compiler/compilation/Static.cpp
13
15
86.67%

decompiler/ObjectFile/ObjectFileDB_IR2.cpp
0
3
0.0%

decompiler/config.cpp
0
3
0.0%

game/overlord/iso.cpp
0
3
0.0%

decompiler/util/data_decompile.cpp
1
5
20.0%

game/mips2c/mips2c_private.h
0
45
0.0%

decompiler/analysis/mips2c.cpp
0
119
0.0%

game/mips2c/functions/bones.cpp
4
286
1.4%

game/mips2c/functions/joint.cpp
12
1941
0.62%

Files with Coverage Reduction
New Missed Lines
%

game/mips2c/functions/sparticle_launcher.cpp
1
3.98%

game/overlord/iso.cpp
1
76.96%

Totals

Change from base Build<PHONE_NUMBER>:
-1.4%

Covered Lines:
41175

Relevant Lines:
84512

💛  - Coveralls


Move slickgrid css into datagrid component

Modes break for datagrid because css files for slickgrid are not in the component

Updated to retain a 150px minimum width while also being able to correctly 'fill' the full width of the grid

Passed on local branch bug/543/move-slickgrid-css

@cwilmsen can you merge this one if you approve of Dales code?

passed on develop


Safari Invalid Date

I noticed that in Safari, when going particularly to a Post page, the page fails to render due to an Invalid Date issue.
Looks like in the GraphQL query, the modified date doesn't return in a correct format
When querying for modified it comes as:
2021-01-24 02:34:18

Which is invalid when adding to a new Date() instance.
But what's needed is
2021-01-24T02:34:18

Which is available inside of modifiedGmt
is this a WPGraphQL issue? expected?

Created an issue for WPGraphQL to check out https://github.com/wp-graphql/wp-graphql/issues/1696

Created an issue for WPGraphQL to check out https://github.com/wp-graphql/wp-graphql/issues/1696

Just spotted this issue in the wild on a project I'm working on. I just updated my query to modifiedGmt which fixes it (as you found out too). Is that enough to fix it in the project?

hey! yeah i think i tried that on spacejelly.dev too. feel free to make a PR if you'd like, otherwise im on vaca for a few days :)

Nice one. I've updated the graphQL fields to modifiedGmt which were crashing the single posts on Safari, leaving the modified graphQL fields everywhere else for now, because that seems to work fine. I'll submit a PR for this.

Fixed by #123


Selki/ff3396 expiring bandit cache

Fixes: #issue
Motivation and Context
//: # We want to use an expiring cache for bandits to dedupe ones from the same session e.g., if a user rapidly refreshes or the assignment is used on multiple parts of a page. We think a 10-minute expiration will be a good starting point for this.
Description
//: # Used TLRU cache on init of EppoClient
How has this been tested?
//: # Unit tests

Yes, the underlaying implementation of cache is here. In this repo I just want to make sure that the tests are working

@rasendubi added with Write access to repo ✔


⚠ Bofrost.at has degraded performance

In ae0d8f6, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1491 ms

Resolved: Bofrost.at performance has improved in 7ee186f after 6 minutes.


Filtering with Relationship

I've noticed a similar question being asked before and while the usual suggestion points to using database.column in the data field, this doesnt seem to work for me. I can list the data just fine initially, its only when filtering that it seems to break down.
I'm currently building my datatables with the following code (This is a short version)
$users = User::all()->with('ext');
$dt = Datatables::of($users)->make(true);

My JS looks a bit like this
	$(document).ready(function () {
		var dTable = $('#accountsList').DataTable({
			scrollY:        400,
			scrollCollapse: true,
			processing: true,
			serverSide: true,
			searching: true,
			lengthChange: true,
			deferRender: true,
			autoWidth: false,
			sorting: [],
			ajax: {
				'url': 'http://<IP_ADDRESS>/sfpr/public/users',
				'type': 'POST',
				'data':	function (d) {
					d._token = '{{ csrf_token() }}'
				}
			},
			columns: [
							{ 'data': 'options', 'name': 'options', 'searchable': 'false', 'sortable': 'false' },
							{ 'data': 'ext.displayname', 'name': 'ext.displayname', 'searchable': 'true', 'sortable': 'false' },
							{ 'data': 'userid', 'name': 'userid', 'searchable': 'true', 'sortable': 'true' },
							{ 'data': 'sex', 'name': 'sex', 'searchable': 'false', 'sortable': 'false' },
							{ 'data': 'group', 'name': 'group', 'searchable': 'false', 'sortable': 'false' },
						],
		});

	});

The error seems to be caused by the relationship not being loaded when filtering? As the query error doesnt show the 'ext' table being included in the query, although the ext.displayname field is being searched.
I know I am still a bit lost on how eager loading works, but if the intiial data load works I'd expect the same query to be used when searching?
I apologize if this has been answered before and I couldnt get my head right around it to understand the actual answer.

@MatiasSW, searching/sorting via eager loaded columns is not yet supported atm. You would need to use join statements for it to work or just use 'searchable': false, 'sortable': false

@yajra Ok, that settles I am still not clear on how eager loading works. Thanks a lot for your answer!


Add endpoint of the public api specification

The public api specification should be accesible from the REST API,
Review https://github.com/Arquisoft/wiq_0/tree/master/gatewayservice

Added swagger gui in 599f7884896c63201e49859bdc4028b89b50d18c


"Loading code failed"

The file list doesn't load in any repo. It works in the current forkhub but not in this master, latest commits broke something?

For sure..

@Meisolsson I double checked the branch of this PR.
It's working fine. But when merged into master, then the code/file list doesn't load.
I'll look more into it.

Alright


Tokenization hangs at "now tokenizing"

Hi there :wave:
I am failing at the tokenization step.
I've tried this in Firefox, Chromium 87 and Chromium 91 and waited between 30 minutes or an hour each.
I click on "Tokenize", I sign a message in MetaMask and nothing happens beyond that point.
Is this a bug or am I doing anything inherently wrong?
One thing that might be a factor (but I guess I'd end up in an error in MetaMask?) is that my account currently only has ~0.01 ETH - but given the current gas prices I was told that should be more than enough.

Thank you for your issue report.
The problem seems to be in the front-end code, as the tokenize transaction you seem to be requesting does not seem to reach the Ethereum network. However, I have not been able to identify the cause of the problem.
Instead, I changed the code to display some additional error messages, and those changes have already been deployed. So can you please try again with the same information?
If you don't even get a new error message, you can also use the Ethereum console called Etherscan instead of Stakes.social to complete the tokenization process manually. Let me know your wallet address, and we can explain the manual process to you.
About gas fees
Even if you only have 0 ETH, MetaMask should open a second dialog asking you for permission to send a tokenization transaction.
Therefore, page hanging is not dependent on your ETH balance.
However, 0.01 ETH is probably not enough to complete the tokenization process.
The level of gas fees will vary depending on the congestion of the Ethereum network. At the current level, I think you need about 0.0436 ETH. But Ethereum will often return about 20~40% of that amount to you unused.
This is because it is difficult to predict in advance the exact computing resources required for an Ethereum transaction. Hence, a wallet asks for slightly more gas money but returns the unused portion to you.
Gas fees are necessary to support the decentralized computing of the Ethereum network, but we apologize that this is a complicated issue for beginners.

This time it just worked!
Thank you for your support - I am sure those new error messages will come very handy for the next person facing these problems :heart:


⚠ Fortnite has degraded performance

In 49f9233, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1633 ms

Resolved: Fortnite performance has improved in 1a90cf8.


Switch import paths to TetrationAnalytics fork

Reviewers:
@hoang-tetration @varmalho

Cool. Thanks @gkalele !


Track new area

Is there a way to allocate more grid points as new areas enter in the scene with new frames and other points/track disappear without relying on multiple inference passes on the full sequence?

Adding new points in dis-occluded areas is possible, but I think it will require multiple inference passes to get the tracks there.

I think that the wrong assumption is that the camera is tracking only dynamics targets. But it could be also that camera is moving and you are tracking non-targets. In this case new appearing areas are impacting more the tracking then in the case of dynamic targets and at some point in time you could have too few (or nothing at all) original points to track.
it could nice to have an off the shell option to this case without making complex multiple passes inferences.


Open room not being deleted after player count drops to 0

Leaving an open room as the last player will result in an empty room. To avoid cluttering in the game browser, empty rooms should be deleted.
https://github.com/Subterfuge-Revived/Remake-Backend/blob/ea0192bda8bc46604fd5713e8bb20be40b165232/app/Http/Controllers/RoomController.php#L260-L285

I agree!
Although, it would make most sense to me to introduce soft deletes for purposes like this, so that we do have a record in the backend that the room ever existed in the first place. The benefit of Laravel's soft deletes is that you don't need to worry about accidentally querying soft-deleted records (unless you really want to).

Should be resolved with #34


How to convert the "transforms.json" data for "instant-ngp-dataparser" into "meta_data.json" for "sdfstudio-dataparser"?

Describe the bug
I have a manually-created dataset which can be correcly loaded by "instant-ngp-dataparser". Now I want to try the monocular depth prior loss, after thorough investigation I found I could only use sdfstudio-dataparser to support monosdf method in SDFStudio. So I wrote a script for that conversion, but the camera poses are not the same in the viewer.
To Reproduce
Steps to reproduce the behavior:
This is my scripts to convert the "transforms.json" data for "instant-ngp-dataparser" into "meta_data.json" for "sdfstudio-dataparser".
def convert_meta_json(transform_json_path, meta_json_path, scene_scale=0.33333):
    """https://github.com/autonomousvision/sdfstudio/blob/master/docs/sdfstudio-data.md#Customize-your-own-dataset

    Args:
        transform_json_path (str): the path of your nerfstudio transforms.json
        meta_json_path (str):the path of your sdfstudio meta_data.json
    """
    with open(transform_json_path, 'r') as f:
        d = json.load(f)
    meta_d = dict()
    meta_d['camera_model'] = 'OPENCV'
    meta_d['pairs'] = True
    meta_d['has_mono_prior'] = True
    meta_d['worldtogt'] = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]
    meta_d['height'] = d['h']
    meta_d['width'] = d['w']

    # in x,y,z order
    # assumes that the scene is centered at the origin
    aabb_scale = 0.5 * d.get("aabb_scale", 1)
    meta_d['scene_box'] = {
            "aabb": [[-aabb_scale, -aabb_scale, -aabb_scale], [aabb_scale, aabb_scale, aabb_scale]],
            "near": 0.05,
            "far": 2.0,
            "radius": 1.0,
            "collider_type": "near_far",
        }
    meta_d['frames'] = list()

    K = [
        [d['fl_x'], 0, d['cx']],
        [0, d['fl_y'], d['cy']],
        [0,0,1],
    ]
    for frame in d['frames']:
        rgb_path = frame["file_path"].split('/')[-1].split('_')[0]+'_rgb.png'
        print(rgb_path)
        c2w = np.array(frame['transform_matrix'])
        # from blender/opengl to colmap/opencv
        c2w[0:3, 1:3] *= -1
        c2w[:3, 3] *= scene_scale
        c2w_colmap = c2w

        new_frame = {
            "rgb_path": rgb_path,
            "camtoworld": c2w_colmap.tolist(),
            "intrinsics": K,
            "mono_depth_path": rgb_path.replace("_rgb.png", "_depth.npy"),
            "mono_normal_path": rgb_path.replace("_rgb.png", "_normal.npy"),
            # "sensor_depth_path": rgb_path.replace("_rgb.png", "_sensor_depth.npy"),
        }
        meta_d['frames'].append(new_frame)
    with open(meta_json_path, "w", encoding="utf-8") as f:
        json.dump(meta_d, f, indent=2)

In fact the script just:

sets y to be -y and z to be -z (because "sdfstudio-dataparser" will do that, so I need to do an "inverse" calculation first to preserve the c2w):
https://github.com/nerfstudio-project/nerfstudio/blob/388fcb09e11c4bd191b4bd6c319e7e388ccef321/nerfstudio/data/dataparsers/sdfstudio_dataparser.py#L110-L122

scale the tranlation (the scaling process just as "instant-ngp-dataparser" do (here self.config.scene_scale=0.33333): https://github.com/nerfstudio-project/nerfstudio/blob/388fcb09e11c4bd191b4bd6c319e7e388ccef321/nerfstudio/data/dataparsers/instant_ngp_dataparser.py#L100-L103

Expected behavior
I think the script above can work well, at least for different dataparsers I can see the same camera poses in the viewer, but it didn't.
Screenshots
The correct camera poses loaded by instant-ngp dataparser:

The camera poses loaded by sdfstudio dataparser:

Additional context
It seems that the rotation has some problems here, but I don't know exactly where the problems are.

I assume that you can close it since you've posted it on SDFStudio already https://github.com/autonomousvision/sdfstudio/issues/192


@2.0.0 - drop node 14<EMAIL_ADDRESS>

close #364

Coverage: 99.245%. Remained the same when pulling 09e0055cc7b4fa7a9e78f30e66f4b3603408884d on rc-2.0.0 into 15464bebce29b45dee87fc37fd4e963d9390fc16 on master.


[SYSTEMML-1995] Implementation of Surrogate data slice sampling

How this fits?

Surrogate slice sampling one of the MCMC method of sampling for hyperparameters, of the covariance function that we've used in mode.dml or in the bayes.dml
It is used for converting integration into the summation. (To my knowledge)

How it works?

It does some calculation in the first steps to get a bound [theta_min, theta_max] on the hyperparameter of covariance function (different from our model hyperparameters!)
From this bound, it draws a candidate hyperparameter theta_dash = rand(min=theta_min, max=theta_max).
with the help of this cond > y condition, theta_dash will be selected.

This is a [WIP]. But, feel free to comment. Thanks.


migration failure when adding fields

I'm getting the following when trying to add 3 fields to the DB:
https://gist.github.com/chrisdrackett/f0841d2dbac19267e2036b40a7319838
to note I'm able to add these myself manually to the DB without issue. This might be related to #960

Can you please tell me the steps to reproduce this?

as far as I can tell the steps are actually in #960. I opened this before I dug in farther.


no_proxy is not compatible with urls without hostname

The no_proxy environment variable causes an exception when a url without a hostname is used.
This happens with conda local file system adapter for instance.
Reproduction Steps
Consider the following example:
import requests
from requests.models import Response
from requests.adapters import BaseAdapter

class LocalFSAdapter(BaseAdapter):
    """Simplified version of
    'conda.gateways.connection.adapters.localfs.LocalFSAdapter'.
    """

    def send(self, request, **kwargs):
        _, pathname = request.url.split('file://')
        resp = Response()
        resp.raw = open(pathname, "rb")
        return resp

    def close(self):
        pass

with requests.Session() as s:
    s.mount("file://", LocalFSAdapter())
    print(s.get('file:///tmp/test').text)

Running with the no_proxy environment variable set:
$ no_proxy=nope python test.py

Expected Result
<the content of '/tmp/test'>

Actual Result
Traceback (most recent call last):
  File "test.py", line 23, in <module>
    print(s.get('file:///tmp/test').text)
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/sessions.py", line 525, in get
    return self.request('GET', url, **kwargs)
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/sessions.py", line 503, in request
    prep.url, proxies, stream, verify, cert
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/sessions.py", line 676, in merge_environment_settings
    env_proxies = get_environ_proxies(url, no_proxy=no_proxy)
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/utils.py", line 760, in get_environ_proxies
    if should_bypass_proxies(url, no_proxy=no_proxy):
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/utils.py", line 716, in should_bypass_proxies
    if is_ipv4_address(parsed.hostname):
  File "/home/vimiche/miniconda/lib/python3.6/site-packages/requests/utils.py", line 640, in is_ipv4_address
    socket.inet_aton(string_ip)
TypeError: inet_aton() argument 1 must be str, not None

System Information
$ python -m requests.help

{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": "2.2.2"
  },
  "idna": {
    "version": "2.7"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.6"
  },
  "platform": {
    "release": "4.15.0-24-generic",
    "system": "Linux"
  },
  "pyOpenSSL": {
    "openssl_version": "100020ff",
    "version": "18.0.0"
  },
  "requests": {
    "version": "2.19.1"
  },
  "system_ssl": {
    "version": "100020ff"
  },
  "urllib3": {
    "version": "1.23"
  },
  "using_pyopenssl": true
}

Hi @vxgmichel, we have an initial proposal in #4723 to resolve this. We’re still reviewing options to address the problem, but are aiming to have the issue resolved within the next week or so.

Resolved with #4723.


feat(addon-table): reorder add possibility to transfer a template

Closes https://github.com/taiga-family/taiga-ui/issues/6914

I see that the text moved a little. I will try to fix it a bit later

I restarted pipelines because e2e-test for calendar failed for some reasons. I think this is because branch was outdated


Suggestion: Mob blacklist

This mod is being applied to BetterEnd's jellyfish (Cubozoa), so they should be blacklisted.

You can exclude entities using the mod config file like this:
"excludeEntities": ['entity.betterend.cubozoa']
I might include that in the default config in the next update

@victorguima you should check out the Issue #6 for all this topic and details

Since this is already here, I guess it doesn't make sense to open a new Issue. Just wanted to say that it would be nice if there was a whitelist so you can set fish from other mods to use the boids AI :)

From what I understand from experience using it, the AI only affects Cod, Salmon and Tropical Fish.
I believe that a lot of modders that create new "basic" fishes use the AI of one of this three vanilla fishes and then, boids AI affect them also, so is like a bug/strange collateral feature that is not bad but for my taste some fishes don't need it and by that reason the blacklist was a requested important feature.
This is the listof fishes I now are affected by boids (by default, so you should put it on the blacklist if you don't want any)

Cod
Salmon
Tropical Fish
End Fish (BetterEnd)
Cubozoa (BetterEnd)
Spinefish (Aquamirae)
Aerglow Fish (Deep Aether)
Perch (Upgrade Aquatic)
All the fishes in the Tide mod

So for now, if you want that the boids AI could affect other mobs like Dolphins, Axolots or something probably the mod creator should add a new AI implementation probably, because actually the number of mobs affected by this mod was "more than expected"

I can concur that being able to whitelist other modded fish would be a great feature, would love to be able to include boids AI in the fish from the Hybrid Aquatic mod. Again though, it does seem like they use different AI over there so it might take a bit to fully integrate.


Record entry confirmation page looks broken or infinitely in-progress

This might be due to the usage of pseudo-columns. You can see what I mean in FaceBase by:

create a Dataset
add 2+ related Biosample records
see the confirmation screen

The issues as I see it are:

the "Experiments" pseudo-column will show up blank and an infinite spinner in the header
the "Species" through "Phenotype" pseudo-columns will all be blank even if you selected them

The model for Biosample has a many-many relationship with Experiment and a direct FKEY relationship with the other (Species etc) fields.
I would suggest that this screen be changed to one of the following:

only show the basic confirmation message, e.g., "4/4 Biosample Records Created Successfully"

This was an issue brought up in the past and having the table of data was more beneficial

filter out the pseudo-columns and show the rest of the columns in the summary table

no harm in doing this for the time being, but it doesn't seem to be more helpful either

A screenshot of the confirmation screen related to the above steps to reproduce.

This is related to #1804.

From above, we are going to go with option 2 that Rob pointed out for a better UX experience:

filter out the pseudo-columns and show the rest of the columns in the summary table

Sounds good :+1:

The changes to ermrestJS to filter out the pseduo-columns have been merged into master. Reassigning to @robes for review.

This is better but not exactly as I had imagined. I was thinking to not even show those pseudo-columns at all (not just not show the values in them). I think this is an improvement but I have a feeling we'll revisit it in the future.


Can't indent using spaces

Issue Description
I'm trying to join an already existing project with already established standards. One of those is using 4 spaces instead of tabs. However, when I format using this extension, it re-formats the whole file using tabs.
Steps to Reproduce

Open a .NET Core project
Format document

Expected Behavior
I should be able to follow the project's standards regardless of my environment.
Actual Behavior
The extension forces tabs upon the project.

I see. I have the following in my user settings :
{
	"editor.detectIndentation": true,
	"editor.formatOnSave": true,
	"editor.insertSpaces": false,
}

I also have the following .editorconfig inside the projet, with the editorconfig.editorconfig extension :
root = true

[*]
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false

Ideally, this should work. However, I found that the only way to make it work was to add a .vscode/settings.json that explicitly sets insertSpaces.
{
    "editor.insertSpaces": true
}

So, I guess it kinda works but differently from other extensions.

editorconfig is also supported but it's off by default - you need to enable it by adding "omnisharp.enableEditorConfigSupport": true setting.

This one is by design because editorConfig isn't on by default. Though we should probably just have it be on by default whenever there is an editorconfig detected.

Please note that I have "editor.detectIndentation": true. The project had spaces in it, and I used format-on-save. It should've detected spaces and used that; and that setting should've been overwritten by .editorconfig-related settings.

Thanks for confirming @NatoBoram, indeed the .editorconfig should overwrite things. If it's not, then that is a bug.

...only in editorconfig support was activated.

A lot has changed with .editorconfig support since this issue was opened. If you are still having problems, please open a new issue.


use Location instead of ConfigMap

Now there is a different approach for customization. Seems that we don't need this anymore. Closing this PR.


update to latest zig I/O stream changes

This is to help when https://github.com/ziglang/zig/pull/4710 is merged. The thing with @ptrCast and anyerror generic types was exploiting undefined behavior (I know you copied the pattern from the std lib, and that had to be changed too).
The diff for GBA is
--- a/GBA/assetconverter/image_converter.zig
+++ b/GBA/assetconverter/image_converter.zig
@@ -51,8 +51,7 @@ pub const ImageConverter = struct {
         var paletteFile = try openWriteFile(targetPaletteFilePath);
         defer paletteFile.close();

-        var paletteOut = paletteFile.outStream();
-        var paletteOutStream = &paletteOut.stream;
+        var paletteOutStream = paletteFile.outStream();

         // Write palette file
         var paletteCount: usize = 0;
@@ -73,8 +72,7 @@ pub const ImageConverter = struct {
             var imageFile = try openWriteFile(convertInfo.imageInfo.target);
             defer imageFile.close();

-            var imageOut = imageFile.outStream();
-            var imageOutStream = &imageOut.stream;
+            var imageOutStream = imageFile.outStream();

             // Write image file
             var pixelCount: usize = 0;

with these 2 things, zig build completes successfully for me on ZigGBA.

Thanks for doing this :) Will merge as soon the branch is merged!

You're welcome. The branch is done, and will be merged as soon as tests pass. The emit raw elf stuff should be fixed too. I checked against readelf but would be nice to get a confirmation that the .gba files were valid


Postinitialize hook on custom ScriptExtensions always produces an error in debug mode

Tested versions
Reproducible in: Godot_v4.2.1-stable.linux.x86_64, Godot_v4.1.1-stable.linux.x86_64, Godot_v4.0-stable_linux.x86_64
System information
Godot v4.2.1.stable - Fedora Linux 37 (Workstation Edition) - X11 - GLES3 (Compatibility) - Mesa Intel(R) UHD Graphics 620 (WHL GT2) () - Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz (8 Threads)
Issue description
I write the following ScriptException class.
extends ScriptExtension

func _get_language():
    # I don't actually care what we return here. The point
    # is that this never even gets called.
    print("CALLED _get_language!")
    return null

Then I try to simply construct it from a main node.
extends Node2D

func _ready():
    var test_script = load("res://TestScript.gd")
    print(test_script.new())

I can run this simple example project from the command line with no problems. However, when running specifically from the editor (i.e., when opening the project in the editor and hitting the F5 key on my keyboard to run from within the editor), I get an error.
ERROR: Required virtual method ScriptExtension::_get_language must be overridden before calling.
   at: _gdvirtual__get_language_call (./core/object/script_language_extension.h:106)

It seems to me that this is originating from https://github.com/godotengine/godot/blob/master/core/object/script_language.cpp#L53
if (EngineDebugger::is_active()) {
	EngineDebugger::get_script_debugger()->set_break_language(get_language());
}

If the engine debugger is active, then the Script class responds to NOTIFICATION_POSTINITIALIZE by calling get_language(), which invokes the virtual function _get_language(). However, at the point that NOTIFICATION_POSTINITIALIZE fires, virtual functions have not been set up for the object. The description for that notification in the docs states (emphasis mine)

Notification received when the object is initialized, before its script is attached. Used internally.

So, as far as I can tell, there's no way that this get_language() call can ever succeed, for a custom ScriptExtension class.
Expected behavior: I would expect to be able to construct custom ScriptExtension instances without producing an error.
Actual behavior: As far as I can tell, any attempt to construct a custom ScriptExtension while the editor debugger is active will result in the aforementioned error being printed to console.
Note: This is the most minimal reproducible example I could come up with, even if it is a bit silly. For what it's worth, I discovered this while writing a GDExtension library that actually constructs the ScriptExtension properly, rather than just instantiating one and printing it like I do here.
Steps to reproduce
I have provided a minimal project below. Open the project in the Godot editor and then hit the "Run Project (F5)" button or the corresponding keyboard shortcut to run the Main.tscn scene. You will immediately see a red error printed in the "Debugger" tab at the bottom of the screen.
If you run the project from the command line (NOT in the editor), the bug will not manifest. You must open the editor to observe this bug.
Minimal reproduction project (MRP)
virtual binding bug.zip

I can confirm this has been a problem throughout 4.2.dev builds and 4.2.1-stable.

I found https://github.com/godotengine/godot/issues/80275 which is very similar. Might be close enough to be a duplicate.

Reproducable in Godot 4.2.1 stable.


SchemaValidationMiddleware

I came across a stackoverflow answer which has a link to SchemaValidationMiddleware which used to be used in json-everything.net. The link has since expired. Is this available anywhere?

Hey there.  Yeah, that middleware was part of the old json-everything.net back end. I've since moved to a WASM site.
I'll see if I can find the last commit for you to browse.  I'll update the SO link as well.

That's brilliant, thank you!


certain 'tiles as prop' props do not align correctly with gridsnap

Props in 'tiles as prop' that have a width or height that is an odd number will have their edge align with the center of a grid tile instead of the edge of a grid tile.

A 1x1 tile being incorrectly aligned on both axis, a 2x1 tile being correctly aligned on the X axis, but not the Y axis, and a 2x2 tile being correctly aligned on both axis.

found issue
working on fix

will be fixed with next release


wifi signal strength indication icon problem

if you check signal strength icon in luci it is quite obvious the second bar from the left is thinner than rest of these. have you got a blind graphic developer when it was made?

That is some sharp eye catching this.

Feel free to provider better icons.


Icons are not initialized if CARGO_TARGET_DIR is used

The way config file is searched doesn't account for CARGO_TARGET_DIR and results in errors like this:
error: failed to run custom build command for `relm4-icons v0.8.2`

Caused by:
  process didn't exit successfully: `/home/nazar-pc/.cache/cargo/target/debug/build/relm4-icons-7ebbb2f82f7cb94e/build-script-build` (exit status: 101)
  --- stderr
  Canonical manifest dir: "/home/nazar-pc/.cache/cargo/target/debug/build/relm4-icons-9b161a11a467e328/out"
  thread 'main' panicked at /home/nazar-pc/.cargo/registry/src/index.crates.io-6f17d22bba15001f/relm4-icons-0.8.2/build.rs:68:17:
  Couldn't find your manifest directory
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

/home/nazar-pc/.cache/cargo/target is my target shared across multiple projects, I don't have target local to each crate.

While this works great, this is still a somewhat hacked together solution because, after disallowing the use of many feature flags, Rust has no proper solution for communicating a lot of configuration options to build scripts. Hopefully, this gap will be filled with a new mechanism in the future.

I wasn't aware that global target dirs are a thing. The question is whether a build script is able to figure out the manifest directory of the root crate (the one which depends on relm4-icons) in this case. As I explained, I think there's no standardized solution for communicating such information to build scripts (or more precisely the only solution got cancelled by crates.io). The only available information are the env variables...

The question is whether a build script is able to figure out the manifest directory of the root crate (the one which depends on relm4-icons) in this case

I don't think there is and it is architecturally wrong in general.
Out of curiosity, what is the issue with including all icons? They are downloaded anyway and compiler should be able to eliminate unused constants (though this might require LTO, didn't check).

Out of curiosity, what is the issue with including all icons? They are downloaded anyway and compiler should be able to eliminate unused constants (though this might require LTO, didn't check).

That's actually the same thing the crates.io team suggested when I asked them to remove the feature flag limitation. No, that doesn't work because GTK loads icons as bundled resources and the Rust compiler does not know what's in the resource bundle.

Well, then the alternative could be to expose a function that user of the library has to call from their build.rs rather than running it in this crate's build.rs.

Well, then the alternative could be to expose a function that user of the library has to call from their build.rs rather than running it in this crate's build.rs.

I already thought about this earlier. We could definitely use macros for archiving the same result, albeit a bit less beautiful (AFAIK you can't tell Rust to rebuild code if files changed through a macro). I can try to get this to work.

AFAIK you can't tell Rust to rebuild code if files changed through a macro

Instructions to Rust (or Cargo?) are just printed to stdout, so should work. And any changes to build.rs trigger rebuilding by default, which is probably sufficient already.

I think I've hit another dead end. If I build the bundle from this crate, it can't see the primary Cargo.toml without some hacks. If I build from the primary crate (e. g. by calling a fn in build.rs or by using a macro), I don't have access to the files of this crate which includes the shipped icons.
Overall, I think the best approach would be to keep this crate as it is for now and rather work on a proper solution that uses a different approach. E. g. relm4-template could be converted into an easily configurable template generator that automatically updates the generated files and supports multiple build systems (e. g. cargo, meson and flatpak). While doing this, we could also add a mechanism to download icons from here to the directory of the primary crate, making it possible to include them there with ease.

Overall, I think the best approach would be to keep this crate as it is for now and rather work on a proper solution that uses a different approach.

Well, I can't upgrade anymore because my development workflow is basically broken with new version.

E. g. by calling a fn in build.rs or by using a macro), I don't have access to the files of this crate which includes the shipped icons

Why not, what is the difficulty?

Well, I can't upgrade anymore because my development workflow is basically broken with new version.

That's how I felt when the crates.io team told me I can't publish a new stable version with the old mechanism that used feature flags. They broke it and didn't want to make an exception so I had to come up with a workaround. It's really unfortunate.

Why not, what is the difficulty?

AFAIK, you can only see the files in your current crate. You can't see the source code of your dependencies. So the build script or the macro wouldn't be able to access the icons shipped with this crate because they are executed by the primary crate.
I just had the idea that we could include every single file in the generated binary of the build library or the macro tough. That would be extremely ugly, but would be a robust solution.

So the build script or the macro wouldn't be able to access the icons shipped with this crate because they are executed by the primary crate.

Build script will still depend on relm4-icons (or build-specific sub-crate) that has its own compilation step. So it can compile some metadata that build.rs of the application can call and get the details necessary.

Yeah, it should work like that.
The thing is though, because the release yesterday already took me more time than a whole work day with all the various steps included and I'm already short on free time, I'm not eager to work on this in the upcoming days. I hope you understand.

Sure, totally understand. I might take a stab at this myself depending on the mood.

I get a similar error:
Caused by:
  process didn't exit successfully: `/home/pieter/Desktop/my-project/target/debug/build/relm4-icons-579924a03f1200f5/build-script-build` (exit status: 101)
  --- stderr
  Canonical manifest dir: "/home/pieter/Desktop/my-project/target/debug/build/relm4-icons-304ce4e06babc756/out"
  thread 'main' panicked at /home/pieter/.cargo/registry/src/index.crates.io-6f17d22bba15001f/relm4-icons-0.8.2/build.rs:75:36:
  called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

CARGO_TARGET_DIR, CARGO_MANIFEST_DIR and SOURCE_DIR are not set for me. My cargo config looks like this:
[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=/usr/bin/mold"]

The error is triggered at this line, not this line like the OP's build did. Is it related to the same issue or is it best if I open a separate thread for this?

@nazar-pc @AaronErhardt: I'm not positive if I understood what was wrong, but it looks like you all are saying icons.toml can't be found when CARGO_TARGET_DIR is set.
If so, it looks like the PWD variable is set to the variable where cargo build is ran, irrespective of the project being built. That currently only works when you're in the directory containing Cargo.toml, but it should work irrespective of the CARGO_TARGET_DIR.
There's a corner case where it wouldn't work when running cargo install, such as if you were to upload your GTK/Adwaita package to crates.io. Most GTK packages need to install other files (like app icons) onto the system though, so I'm not sure how much of an issue that is.
Let me know if I overlooked something you guys already looked into, but there's a PR open at #17 if you want to test things.

You shouldn't rely on PWD for anything (I'm not sure it is guaranteed to be set to what you expect it to be set to), in fact IIRC you can build project from one directory while being in a completely different directory. The only thing you can/should rely on in terms of paths is what Cargo provides you: https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-sets-for-crates
Basically the whole current approach is broadly speaking flawed to begin with.
I think simply letting user pick icons with a call in their own build.rs as suggested above rather than trying to guess things is a much more robust approach.
It was not the highest priority for me for now, but if no one else does that, I will get to it at some point.

You're right about that, it does look like you can build outside of the project directory through the use of --manifest-path. And yeah, PWD isn't documented to be in any certain directory like you said.
I guess writing a new tool from scratch is going to be the best option. Cargo really does make this clunky to deal with :P

I think simply letting user pick icons with a call in their own build.rs as suggested above rather than trying to guess things is a much more robust approach.

Or that too, I think that'd be best honestly. Aaron probably has more insight than me on the best approach between the two though.

I started working on this, mostly based on @nazar-pc suggestions:

I think simply letting user pick icons with a call in their own build.rs as suggested above rather than trying to guess things is a much more robust approach.
and
Build script will still depend on relm4-icons (or build-specific sub-crate) that has its own compilation step. So it can compile some metadata that build.rs of the application can call and get the details necessary.

basically, I created a sub-crate relm4-icons-build that exposes a function to build icons for crate dependents. And as you pointed out, I am facing this issue with accessing shipped icons.

If I build from the primary crate (e. g. by calling a fn in build.rs or by using a macro), I don't have access to the files of this crate which includes the shipped icons.

could you tell more about this approach @AaronErhardt?

If I build from the primary crate (e. g. by calling a fn in build.rs or by using a macro), I don't have access to the files of this crate which includes the shipped icons.

could you tell more about this approach @AaronErhardt?

The "approach" you've cited is actually a statement, so I don't know what I should answer. The general problem is always that you can't access files across crates, but only the resulting library. So if we compile all icons into a library, we could circumvent the problem. Yet, unless we have a mechanism for dead-code elimination, we add bloat to the final binary. Therefore, I suggested storing the icons individually bundled in static variables, that only get accessed (and initialized) if their icon name is derefed (Deref trait). This way, rustc should throw out all other statics from the resulting binary because they are not accessed.

And as you pointed out, I am facing this issue with accessing shipped icons

What is the issue exactly?

And as you pointed out, I am facing this issue with accessing shipped icons

What is the issue exactly?

basically this one:

If I build from the primary crate (e. g. by calling a fn in build.rs or by using a macro), I don't have access to the files of this crate which includes the shipped icons.

I need the path to the icons shipped with this crate in the build script of the application

The reason I mentioned build crate is because build crate can have build.rs. In that build.rs you can trivially store CARGO_MANIFEST_DIR in a constant in generated file.
It will then be available either directly or through a specific function in build.rs of the crate that uses icons alongside with any other information you may need (like static list of all available icons, etc.). It can also do all kinds of processing of icons if necessary and so on.

After https://github.com/Relm4/icons/pull/19 + https://github.com/Relm4/icons/pull/24 + https://github.com/Relm4/icons/pull/25 things work great, closing


Custom Templates

Would it be possible to add support for using custom templates for a subdomain?

This is actually possible now.
docker run .....  -v /path/to/my.tmpl:/app/nginx.tmpl jwilder/nginx-proxy


Mechanism for register_output_renderer to suggest extension or not

datasette-atom only works if the user constructs a SQL query with specific output columns (atom_id ,atom_updated etc).
It would be good if the .atom link wasn't shown on the query/table page unless those columns were present. Right now you get a link which results in a 400 error:

See also #581.

Plugins are currently expected to return this:
@hookimpl
def register_output_renderer(datasette):
    return {
        "extension": "test",
        "callback": render_test
    }

We can add an optional third argument, "should_suggest", which takes the same arguments as the callback but simply returns True or False depending on if the plugin can work for the current set of data.
If that dictionary key is omitted, Datasette will treat this test as returning True.

It should be optionally awaitable - as should the existing "callback". Can use the same pattern as this one:
https://github.com/simonw/datasette/blob/8c642f04e0608bf537fdd1f76d64c2367fb04d57/datasette/views/base.py#L124-L135

I'm going to add unit tests for the hook, and as part of that I'll fix the weird thing at the moment where the plugins for the unit tests are defined inside a quoted string as opposed to their own separate file.

This is a duplicate of a more recent, more developed issue: #770


Make implicit clock and reset final vals

Overriding will always result in a NullPointerException due to https://github.com/freechipsproject/chisel3/blob/aac6e175645960b65eace70d16d0e4df523e0327/chiselFrontend/src/main/scala/chisel3/RawModule.scala#L155 which
This is definitely not source compatible, so I don't think we should backport it. Although if someone is doing this it cannot be a Module they ever actually construct because it's NullPointerException 100% of the time.

Related issue:

Type of change: bug fix

Impact: API modification

Development Phase: implementation
Release Notes
Make implicit clock and reset final vals fixing buggy hole in API

@freechipsproject/chisel-reviewers any opinions on this? Fixes a hole in the API

Nit: it should still work if you use an early initializer so I don't think it is quite 100%

Nit: it should still work if you use an early initializer so I don't think it is quite 100%

Hey @sdtwigg! I honestly had forgotten about that feature. It does provide a potentially better way to express https://github.com/freechipsproject/chisel3/pull/1361, although perhaps esoteric...

Deprecated in 2.14, too

I believe 2.14 has been dropped, but they are removed from dotty, replaced by trait parameters which may provide a better mechanism anyway: https://dotty.epfl.ch/docs/reference/dropped-features/early-initializers.html
I think it's worth reconsidering this and #1361 for longer term, but for the purposes of 3.3 I think this is best.


An  hint should be added

The following text was generated by automatic translation：
If someone forget to add the erased_serde::Serialize restriction to ExampleObj, the code will compile, but the stack will overflow;
like this：
examples/macros.rs  79 line
pub trait ExampleObj:  IdObj + Debug {}
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.11s
     Running `target\debug\examples\macros.exe`
`Foo`   serialized: "A"
`Foo` deserialized: Foo("A")

thread 'main' has overflowed its stack

I am not familiar with this, is erased_serde crate not verified?

Thanks for reporting this! The issue is that erased_serde::Serialize is implemented for all types that implement serde::Serialize, leading to infinite recursion if the trait does not list erased_serde::Serialize as a supertrait.
I fixed this using the same trick from the erased_serde::serialize_trait_object macro in https://github.com/Gohla/serde_flexitos/commit/d6a8b825bfc1649615b8149ef75a73a55fe6c4e7. If you remove the erased_serde::Serialize supertrait from ExampleObj you will now get a compile error.


API sometimes returns 500 and 502 errors

The Instagram API itself sometimes returns 500 and 502 HTTP errors, which throws an InstagramClientError exception, Unable to parse response, not valid JSON. (this comes from lines 123-126 of bind.py).
I added some debug of my own to bind.py and found the content it tries to convert to JSON is Oops, an error occurred..
The errors aren't coming from any specific method.
It'd be nice if bind.py could handle these HTTP errors better, maybe repeating a request if a server error is returned or returning a more helpful exception.

Any resolution to this issue? My python client sometimes gives this error, at totally random intervals

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Seeing this when trying to subscribe to a tag on the real time api too.

Any progress with this issue?

Any update here? It's been happening a lot more frequently


[Create] Get-SecretPermission

Endpoint
GET /secret-permissions/{id}

Link
https://thycotic-ps.github.io/secretserver-apidoc/#get-/secret-permissions/-id-

The way the endpoints are written for secret-permissions the module object is the same between them all (same properties). So not a reason to write this function when you are more likely to search for a permission-based on the filters for Search-SecretPermission. It would be a wasted API call to do this command as well.


[Spotify Genres] [Feature Request] Display genre on artist pages

As requested for the similar extension (https://github.com/Shinyhero36/Spicetify-Genre/issues/13), would be nice to be able to see the artist's genres, e.g., under their name.

Sure, I will do it when i have time

Done 🎉. I noticed that your feature request on Shinyhero36/Spicetify-Genre Page is like 4 months old, Damn. It just took me solid 15 mins.
Hope you like it. If you like it feel free to like this repo 🤗.
Feel free to open a issue if you face any issues.

Great stuff! To be clear, the other request is not mine, I just linked it since it seemed to have some relevant info.

Thanks for implementing this!

Would it be possible to also allow to open the popup menu with the Last.FM tags by right-clicking an artist genre? Should I open a separate request for that?

Would it be possible to also allow to open the popup menu with the Last.FM tags by right-clicking an artist genre?

I will do that in future

Should I open a separate request for that?

Yes please.